web/wp-includes/js/wp-lists.js
changeset 204 09a1c134465b
parent 194 32102edaa81b
equal deleted inserted replaced
203:f507feede89a 204:09a1c134465b
     1 (function(b){var a={add:"ajaxAdd",del:"ajaxDel",dim:"ajaxDim",process:"process",recolor:"recolor"},c;c={settings:{url:ajaxurl,type:"POST",response:"ajax-response",what:"",alt:"alternate",altOffset:0,addColor:null,delColor:null,dimAddColor:null,dimDelColor:null,confirm:null,addBefore:null,addAfter:null,delBefore:null,delAfter:null,dimBefore:null,dimAfter:null},nonce:function(g,f){var d=wpAjax.unserialize(g.attr("href"));return f.nonce||d._ajax_nonce||b("#"+f.element+' input[name="_ajax_nonce"]').val()||d._wpnonce||b("#"+f.element+' input[name="_wpnonce"]').val()||0},parseClass:function(h,f){var i=[],d;try{d=b(h).attr("class")||"";d=d.match(new RegExp(f+":[\\S]+"));if(d){i=d[0].split(":")}}catch(g){}return i},pre:function(i,g,d){var f,h;g=b.extend({},this.wpList.settings,{element:null,nonce:0,target:i.get(0)},g||{});if(b.isFunction(g.confirm)){if("add"!=d){f=b("#"+g.element).css("backgroundColor");b("#"+g.element).css("backgroundColor","#FF9966")}h=g.confirm.call(this,i,g,d,f);if("add"!=d){b("#"+g.element).css("backgroundColor",f)}if(!h){return false}}return g},ajaxAdd:function(g,m){g=b(g);m=m||{};var h=this,l=c.parseClass(g,"add"),j,d,f,i,k;m=c.pre.call(h,g,m,"add");m.element=l[2]||g.attr("id")||m.element||null;if(l[3]){m.addColor="#"+l[3]}else{m.addColor=m.addColor||"#FFFF33"}if(!m){return false}if(!g.is('[id="'+m.what+'-add-submit"]')){return !c.add.call(h,g,m)}if(!m.element){return true}m.action="add-"+m.what;m.nonce=c.nonce(g,m);j=b("#"+m.element+" :input").not('[name="_ajax_nonce"], [name="_wpnonce"], [name="action"]');d=wpAjax.validateForm("#"+m.element);if(!d){return false}m.data=b.param(b.extend({_ajax_nonce:m.nonce,action:m.action},wpAjax.unserialize(l[4]||"")));f=b.isFunction(j.fieldSerialize)?j.fieldSerialize():j.serialize();if(f){m.data+="&"+f}if(b.isFunction(m.addBefore)){m=m.addBefore(m);if(!m){return true}}if(!m.data.match(/_ajax_nonce=[a-f0-9]+/)){return true}m.success=function(e){i=wpAjax.parseAjaxResponse(e,m.response,m.element);k=e;if(!i||i.errors){return false}if(true===i){return true}jQuery.each(i.responses,function(){c.add.call(h,this.data,b.extend({},m,{pos:this.position||0,id:this.id||0,oldId:this.oldId||null}))});h.wpList.recolor();b(h).trigger("wpListAddEnd",[m,h.wpList]);c.clear.call(h,"#"+m.element)};m.complete=function(e,n){if(b.isFunction(m.addAfter)){var o=b.extend({xml:e,status:n,parsed:i},m);m.addAfter(k,o)}};b.ajax(m);return false},ajaxDel:function(k,i){k=b(k);i=i||{};var j=this,d=c.parseClass(k,"delete"),h,g,f;i=c.pre.call(j,k,i,"delete");i.element=d[2]||i.element||null;if(d[3]){i.delColor="#"+d[3]}else{i.delColor=i.delColor||"#faa"}if(!i||!i.element){return false}i.action="delete-"+i.what;i.nonce=c.nonce(k,i);i.data=b.extend({action:i.action,id:i.element.split("-").pop(),_ajax_nonce:i.nonce},wpAjax.unserialize(d[4]||""));if(b.isFunction(i.delBefore)){i=i.delBefore(i,j);if(!i){return true}}if(!i.data._ajax_nonce){return true}h=b("#"+i.element);if("none"!=i.delColor){h.css("backgroundColor",i.delColor).fadeOut(350,function(){j.wpList.recolor();b(j).trigger("wpListDelEnd",[i,j.wpList])})}else{j.wpList.recolor();b(j).trigger("wpListDelEnd",[i,j.wpList])}i.success=function(e){g=wpAjax.parseAjaxResponse(e,i.response,i.element);f=e;if(!g||g.errors){h.stop().stop().css("backgroundColor","#faa").show().queue(function(){j.wpList.recolor();b(this).dequeue()});return false}};i.complete=function(e,l){if(b.isFunction(i.delAfter)){h.queue(function(){var m=b.extend({xml:e,status:l,parsed:g},i);i.delAfter(f,m)}).dequeue()}};b.ajax(i);return false},ajaxDim:function(h,n){if(b(h).parent().css("display")=="none"){return false}h=b(h);n=n||{};var i=this,m=c.parseClass(h,"dim"),g,d,f,k,j,l;n=c.pre.call(i,h,n,"dim");n.element=m[2]||n.element||null;n.dimClass=m[3]||n.dimClass||null;if(m[4]){n.dimAddColor="#"+m[4]}else{n.dimAddColor=n.dimAddColor||"#FFFF33"}if(m[5]){n.dimDelColor="#"+m[5]}else{n.dimDelColor=n.dimDelColor||"#FF3333"}if(!n||!n.element||!n.dimClass){return true}n.action="dim-"+n.what;n.nonce=c.nonce(h,n);n.data=b.extend({action:n.action,id:n.element.split("-").pop(),dimClass:n.dimClass,_ajax_nonce:n.nonce},wpAjax.unserialize(m[6]||""));if(b.isFunction(n.dimBefore)){n=n.dimBefore(n);if(!n){return true}}g=b("#"+n.element);d=g.toggleClass(n.dimClass).is("."+n.dimClass);f=c.getColor(g);g.toggleClass(n.dimClass);k=d?n.dimAddColor:n.dimDelColor;if("none"!=k){g.animate({backgroundColor:k},"fast").queue(function(){g.toggleClass(n.dimClass);b(this).dequeue()}).animate({backgroundColor:f},{complete:function(){b(this).css("backgroundColor","");b(i).trigger("wpListDimEnd",[n,i.wpList])}})}else{b(i).trigger("wpListDimEnd",[n,i.wpList])}if(!n.data._ajax_nonce){return true}n.success=function(e){j=wpAjax.parseAjaxResponse(e,n.response,n.element);l=e;if(!j||j.errors){g.stop().stop().css("backgroundColor","#FF3333")[d?"removeClass":"addClass"](n.dimClass).show().queue(function(){i.wpList.recolor();b(this).dequeue()});return false}};n.complete=function(e,o){if(b.isFunction(n.dimAfter)){g.queue(function(){var p=b.extend({xml:e,status:o,parsed:j},n);n.dimAfter(l,p)}).dequeue()}};b.ajax(n);return false},getColor:function(e){var d=jQuery(e).css("backgroundColor");return d||"#ffffff"},add:function(k,g){k=b(k);var i=b(this),d=false,j={pos:0,id:0,oldId:null},l,h,f;if("string"==typeof g){g={what:g}}g=b.extend(j,this.wpList.settings,g);if(!k.size()||!g.what){return false}if(g.oldId){d=b("#"+g.what+"-"+g.oldId)}if(g.id&&(g.id!=g.oldId||!d||!d.size())){b("#"+g.what+"-"+g.id).remove()}if(d&&d.size()){d.before(k);d.remove()}else{if(isNaN(g.pos)){l="after";if("-"==g.pos.substr(0,1)){g.pos=g.pos.substr(1);l="before"}h=i.find("#"+g.pos);if(1===h.size()){h[l](k)}else{i.append(k)}}else{if("comment"!=g.what||0===b("#"+g.element).length){if(g.pos<0){i.prepend(k)}else{i.append(k)}}}}if(g.alt){if((i.children(":visible").index(k[0])+g.altOffset)%2){k.removeClass(g.alt)}else{k.addClass(g.alt)}}if("none"!=g.addColor){f=c.getColor(k);k.css("backgroundColor",g.addColor).animate({backgroundColor:f},{complete:function(){b(this).css("backgroundColor","")}})}i.each(function(){this.wpList.process(k)});return k},clear:function(h){var g=this,f,d;h=b(h);if(g.wpList&&h.parents("#"+g.id).size()){return}h.find(":input").each(function(){if(b(this).parents(".form-no-clear").size()){return}f=this.type.toLowerCase();d=this.tagName.toLowerCase();if("text"==f||"password"==f||"textarea"==d){this.value=""}else{if("checkbox"==f||"radio"==f){this.checked=false}else{if("select"==d){this.selectedIndex=null}}}})},process:function(e){var f=this,d=b(e||document);d.delegate('form[class^="add:'+f.id+':"]',"submit",function(){return f.wpList.add(this)});d.delegate('a[class^="add:'+f.id+':"], input[class^="add:'+f.id+':"]',"click",function(){return f.wpList.add(this)});d.delegate('[class^="delete:'+f.id+':"]',"click",function(){return f.wpList.del(this)});d.delegate('[class^="dim:'+f.id+':"]',"click",function(){return f.wpList.dim(this)})},recolor:function(){var f=this,e,d;if(!f.wpList.settings.alt){return}e=b(".list-item:visible",f);if(!e.size()){e=b(f).children(":visible")}d=[":even",":odd"];if(f.wpList.settings.altOffset%2){d.reverse()}e.filter(d[0]).addClass(f.wpList.settings.alt).end().filter(d[1]).removeClass(f.wpList.settings.alt)},init:function(){var d=this;d.wpList.process=function(e){d.each(function(){this.wpList.process(e)})};d.wpList.recolor=function(){d.each(function(){this.wpList.recolor()})}}};b.fn.wpList=function(d){this.each(function(){var e=this;this.wpList={settings:b.extend({},c.settings,{what:c.parseClass(this,"list")[1]||""},d)};b.each(a,function(g,h){e.wpList[g]=function(i,f){return c[h].call(e,i,f)}})});c.init.call(this);this.wpList.process();return this}})(jQuery);
     1 (function($) {
       
     2 var fs = {add:'ajaxAdd',del:'ajaxDel',dim:'ajaxDim',process:'process',recolor:'recolor'}, wpList;
       
     3 
       
     4 wpList = {
       
     5 	settings: {
       
     6 		url: ajaxurl, type: 'POST',
       
     7 		response: 'ajax-response',
       
     8 
       
     9 		what: '',
       
    10 		alt: 'alternate', altOffset: 0,
       
    11 		addColor: null, delColor: null, dimAddColor: null, dimDelColor: null,
       
    12 
       
    13 		confirm: null,
       
    14 		addBefore: null, addAfter: null,
       
    15 		delBefore: null, delAfter: null,
       
    16 		dimBefore: null, dimAfter: null
       
    17 	},
       
    18 
       
    19 	nonce: function(e,s) {
       
    20 		var url = wpAjax.unserialize(e.attr('href'));
       
    21 		return s.nonce || url._ajax_nonce || $('#' + s.element + ' input[name="_ajax_nonce"]').val() || url._wpnonce || $('#' + s.element + ' input[name="_wpnonce"]').val() || 0;
       
    22 	},
       
    23 
       
    24 	parseData: function(e,t) {
       
    25 		var d = [], wpListsData;
       
    26 
       
    27 		try {
       
    28 			wpListsData = $(e).attr('data-wp-lists') || '';
       
    29 			wpListsData = wpListsData.match(new RegExp(t+':[\\S]+'));
       
    30 
       
    31 			if ( wpListsData )
       
    32 				d = wpListsData[0].split(':');
       
    33 		} catch(r) {}
       
    34 
       
    35 		return d;
       
    36 	},
       
    37 
       
    38 	pre: function(e,s,a) {
       
    39 		var bg, r;
       
    40 
       
    41 		s = $.extend( {}, this.wpList.settings, {
       
    42 			element: null,
       
    43 			nonce: 0,
       
    44 			target: e.get(0)
       
    45 		}, s || {} );
       
    46 
       
    47 		if ( $.isFunction( s.confirm ) ) {
       
    48 			if ( 'add' != a ) {
       
    49 				bg = $('#' + s.element).css('backgroundColor');
       
    50 				$('#' + s.element).css('backgroundColor', '#FF9966');
       
    51 			}
       
    52 			r = s.confirm.call(this, e, s, a, bg);
       
    53 
       
    54 			if ( 'add' != a )
       
    55 				$('#' + s.element).css('backgroundColor', bg );
       
    56 
       
    57 			if ( !r )
       
    58 				return false;
       
    59 		}
       
    60 
       
    61 		return s;
       
    62 	},
       
    63 
       
    64 	ajaxAdd: function( e, s ) {
       
    65 		e = $(e);
       
    66 		s = s || {};
       
    67 		var list = this, data = wpList.parseData(e,'add'), es, valid, formData, res, rres;
       
    68 
       
    69 		s = wpList.pre.call( list, e, s, 'add' );
       
    70 
       
    71 		s.element = data[2] || e.attr( 'id' ) || s.element || null;
       
    72 
       
    73 		if ( data[3] )
       
    74 			s.addColor = '#' + data[3];
       
    75 		else
       
    76 			s.addColor = s.addColor || '#FFFF33';
       
    77 
       
    78 		if ( !s )
       
    79 			return false;
       
    80 
       
    81 		if ( !e.is('[id="' + s.element + '-submit"]') )
       
    82 			return !wpList.add.call( list, e, s );
       
    83 
       
    84 		if ( !s.element )
       
    85 			return true;
       
    86 
       
    87 		s.action = 'add-' + s.what;
       
    88 
       
    89 		s.nonce = wpList.nonce(e,s);
       
    90 
       
    91 		es = $('#' + s.element + ' :input').not('[name="_ajax_nonce"], [name="_wpnonce"], [name="action"]');
       
    92 		valid = wpAjax.validateForm( '#' + s.element );
       
    93 
       
    94 		if ( !valid )
       
    95 			return false;
       
    96 
       
    97 		s.data = $.param( $.extend( { _ajax_nonce: s.nonce, action: s.action }, wpAjax.unserialize( data[4] || '' ) ) );
       
    98 		formData = $.isFunction(es.fieldSerialize) ? es.fieldSerialize() : es.serialize();
       
    99 
       
   100 		if ( formData )
       
   101 			s.data += '&' + formData;
       
   102 
       
   103 		if ( $.isFunction(s.addBefore) ) {
       
   104 			s = s.addBefore( s );
       
   105 			if ( !s )
       
   106 				return true;
       
   107 		}
       
   108 
       
   109 		if ( !s.data.match(/_ajax_nonce=[a-f0-9]+/) )
       
   110 			return true;
       
   111 
       
   112 		s.success = function(r) {
       
   113 			res = wpAjax.parseAjaxResponse(r, s.response, s.element);
       
   114 
       
   115 			rres = r;
       
   116 
       
   117 			if ( !res || res.errors )
       
   118 				return false;
       
   119 
       
   120 			if ( true === res )
       
   121 				return true;
       
   122 
       
   123 			jQuery.each( res.responses, function() {
       
   124 				wpList.add.call( list, this.data, $.extend( {}, s, { // this.firstChild.nodevalue
       
   125 					pos: this.position || 0,
       
   126 					id: this.id || 0,
       
   127 					oldId: this.oldId || null
       
   128 				} ) );
       
   129 			} );
       
   130 
       
   131 			list.wpList.recolor();
       
   132 			$(list).trigger( 'wpListAddEnd', [ s, list.wpList ] );
       
   133 			wpList.clear.call(list,'#' + s.element);
       
   134 		};
       
   135 
       
   136 		s.complete = function(x, st) {
       
   137 			if ( $.isFunction(s.addAfter) ) {
       
   138 				var _s = $.extend( { xml: x, status: st, parsed: res }, s );
       
   139 				s.addAfter( rres, _s );
       
   140 			}
       
   141 		};
       
   142 
       
   143 		$.ajax( s );
       
   144 		return false;
       
   145 	},
       
   146 
       
   147 	ajaxDel: function( e, s ) {
       
   148 		e = $(e);
       
   149 		s = s || {};
       
   150 		var list = this, data = wpList.parseData(e,'delete'), element, res, rres;
       
   151 
       
   152 		s = wpList.pre.call( list, e, s, 'delete' );
       
   153 
       
   154 		s.element = data[2] || s.element || null;
       
   155 
       
   156 		if ( data[3] )
       
   157 			s.delColor = '#' + data[3];
       
   158 		else
       
   159 			s.delColor = s.delColor || '#faa';
       
   160 
       
   161 		if ( !s || !s.element )
       
   162 			return false;
       
   163 
       
   164 		s.action = 'delete-' + s.what;
       
   165 
       
   166 		s.nonce = wpList.nonce(e,s);
       
   167 
       
   168 		s.data = $.extend(
       
   169 			{ action: s.action, id: s.element.split('-').pop(), _ajax_nonce: s.nonce },
       
   170 			wpAjax.unserialize( data[4] || '' )
       
   171 		);
       
   172 
       
   173 		if ( $.isFunction(s.delBefore) ) {
       
   174 			s = s.delBefore( s, list );
       
   175 			if ( !s )
       
   176 				return true;
       
   177 		}
       
   178 
       
   179 		if ( !s.data._ajax_nonce )
       
   180 			return true;
       
   181 
       
   182 		element = $('#' + s.element);
       
   183 
       
   184 		if ( 'none' != s.delColor ) {
       
   185 			element.css( 'backgroundColor', s.delColor ).fadeOut( 350, function(){
       
   186 				list.wpList.recolor();
       
   187 				$(list).trigger( 'wpListDelEnd', [ s, list.wpList ] );
       
   188 			});
       
   189 		} else {
       
   190 			list.wpList.recolor();
       
   191 			$(list).trigger( 'wpListDelEnd', [ s, list.wpList ] );
       
   192 		}
       
   193 
       
   194 		s.success = function(r) {
       
   195 			res = wpAjax.parseAjaxResponse(r, s.response, s.element);
       
   196 			rres = r;
       
   197 
       
   198 			if ( !res || res.errors ) {
       
   199 				element.stop().stop().css( 'backgroundColor', '#faa' ).show().queue( function() { list.wpList.recolor(); $(this).dequeue(); } );
       
   200 				return false;
       
   201 			}
       
   202 		};
       
   203 
       
   204 		s.complete = function(x, st) {
       
   205 			if ( $.isFunction(s.delAfter) ) {
       
   206 				element.queue( function() {
       
   207 					var _s = $.extend( { xml: x, status: st, parsed: res }, s );
       
   208 					s.delAfter( rres, _s );
       
   209 				}).dequeue();
       
   210 			}
       
   211 		}
       
   212 
       
   213 		$.ajax( s );
       
   214 		return false;
       
   215 	},
       
   216 
       
   217 	ajaxDim: function( e, s ) {
       
   218 		if ( $(e).parent().css('display') == 'none' ) // Prevent hidden links from being clicked by hotkeys
       
   219 			return false;
       
   220 
       
   221 		e = $(e);
       
   222 		s = s || {};
       
   223 
       
   224 		var list = this, data = wpList.parseData(e,'dim'), element, isClass, color, dimColor, res, rres;
       
   225 
       
   226 		s = wpList.pre.call( list, e, s, 'dim' );
       
   227 
       
   228 		s.element = data[2] || s.element || null;
       
   229 		s.dimClass =  data[3] || s.dimClass || null;
       
   230 
       
   231 		if ( data[4] )
       
   232 			s.dimAddColor = '#' + data[4];
       
   233 		else
       
   234 			s.dimAddColor = s.dimAddColor || '#FFFF33';
       
   235 
       
   236 		if ( data[5] )
       
   237 			s.dimDelColor = '#' + data[5];
       
   238 		else
       
   239 			s.dimDelColor = s.dimDelColor || '#FF3333';
       
   240 
       
   241 		if ( !s || !s.element || !s.dimClass )
       
   242 			return true;
       
   243 
       
   244 		s.action = 'dim-' + s.what;
       
   245 
       
   246 		s.nonce = wpList.nonce(e,s);
       
   247 
       
   248 		s.data = $.extend(
       
   249 			{ action: s.action, id: s.element.split('-').pop(), dimClass: s.dimClass, _ajax_nonce : s.nonce },
       
   250 			wpAjax.unserialize( data[6] || '' )
       
   251 		);
       
   252 
       
   253 		if ( $.isFunction(s.dimBefore) ) {
       
   254 			s = s.dimBefore( s );
       
   255 			if ( !s )
       
   256 				return true;
       
   257 		}
       
   258 
       
   259 		element = $('#' + s.element);
       
   260 		isClass = element.toggleClass(s.dimClass).is('.' + s.dimClass);
       
   261 		color = wpList.getColor( element );
       
   262 		element.toggleClass( s.dimClass );
       
   263 		dimColor = isClass ? s.dimAddColor : s.dimDelColor;
       
   264 
       
   265 		if ( 'none' != dimColor ) {
       
   266 			element
       
   267 				.animate( { backgroundColor: dimColor }, 'fast' )
       
   268 				.queue( function() { element.toggleClass(s.dimClass); $(this).dequeue(); } )
       
   269 				.animate( { backgroundColor: color }, { complete: function() {
       
   270 						$(this).css( 'backgroundColor', '' );
       
   271 						$(list).trigger( 'wpListDimEnd', [ s, list.wpList ] );
       
   272 					}
       
   273 				});
       
   274 		} else {
       
   275 			$(list).trigger( 'wpListDimEnd', [ s, list.wpList ] );
       
   276 		}
       
   277 
       
   278 		if ( !s.data._ajax_nonce )
       
   279 			return true;
       
   280 
       
   281 		s.success = function(r) {
       
   282 			res = wpAjax.parseAjaxResponse(r, s.response, s.element);
       
   283 			rres = r;
       
   284 
       
   285 			if ( !res || res.errors ) {
       
   286 				element.stop().stop().css( 'backgroundColor', '#FF3333' )[isClass?'removeClass':'addClass'](s.dimClass).show().queue( function() { list.wpList.recolor(); $(this).dequeue(); } );
       
   287 				return false;
       
   288 			}
       
   289 		};
       
   290 
       
   291 		s.complete = function(x, st) {
       
   292 			if ( $.isFunction(s.dimAfter) ) {
       
   293 				element.queue( function() {
       
   294 					var _s = $.extend( { xml: x, status: st, parsed: res }, s );
       
   295 					s.dimAfter( rres, _s );
       
   296 				}).dequeue();
       
   297 			}
       
   298 		};
       
   299 
       
   300 		$.ajax( s );
       
   301 		return false;
       
   302 	},
       
   303 
       
   304 	getColor: function( el ) {
       
   305 		var color = jQuery(el).css('backgroundColor');
       
   306 
       
   307 		return color || '#ffffff';
       
   308 	},
       
   309 
       
   310 	add: function( e, s ) {
       
   311 		e = $(e);
       
   312 
       
   313 		var list = $(this), old = false, _s = { pos: 0, id: 0, oldId: null }, ba, ref, color;
       
   314 
       
   315 		if ( 'string' == typeof s )
       
   316 			s = { what: s };
       
   317 
       
   318 		s = $.extend(_s, this.wpList.settings, s);
       
   319 
       
   320 		if ( !e.size() || !s.what )
       
   321 			return false;
       
   322 
       
   323 		if ( s.oldId )
       
   324 			old = $('#' + s.what + '-' + s.oldId);
       
   325 
       
   326 		if ( s.id && ( s.id != s.oldId || !old || !old.size() ) )
       
   327 			$('#' + s.what + '-' + s.id).remove();
       
   328 
       
   329 		if ( old && old.size() ) {
       
   330 			old.before(e);
       
   331 			old.remove();
       
   332 		} else if ( isNaN(s.pos) ) {
       
   333 			ba = 'after';
       
   334 
       
   335 			if ( '-' == s.pos.substr(0,1) ) {
       
   336 				s.pos = s.pos.substr(1);
       
   337 				ba = 'before';
       
   338 			}
       
   339 
       
   340 			ref = list.find( '#' + s.pos );
       
   341 
       
   342 			if ( 1 === ref.size() )
       
   343 				ref[ba](e);
       
   344 			else
       
   345 				list.append(e);
       
   346 
       
   347 		} else if ( 'comment' != s.what || 0 === $('#' + s.element).length ) {
       
   348 			if ( s.pos < 0 ) {
       
   349 				list.prepend(e);
       
   350 			} else {
       
   351 				list.append(e);
       
   352 			}
       
   353 		}
       
   354 
       
   355 		if ( s.alt ) {
       
   356 			if ( ( list.children(':visible').index( e[0] ) + s.altOffset ) % 2 ) { e.removeClass( s.alt ); }
       
   357 			else { e.addClass( s.alt ); }
       
   358 		}
       
   359 
       
   360 		if ( 'none' != s.addColor ) {
       
   361 			color = wpList.getColor( e );
       
   362 			e.css( 'backgroundColor', s.addColor ).animate( { backgroundColor: color }, { complete: function() { $(this).css( 'backgroundColor', '' ); } } );
       
   363 		}
       
   364 		list.each( function() { this.wpList.process( e ); } );
       
   365 		return e;
       
   366 	},
       
   367 
       
   368 	clear: function(e) {
       
   369 		var list = this, t, tag;
       
   370 
       
   371 		e = $(e);
       
   372 
       
   373 		if ( list.wpList && e.parents( '#' + list.id ).size() )
       
   374 			return;
       
   375 
       
   376 		e.find(':input').each( function() {
       
   377 			if ( $(this).parents('.form-no-clear').size() )
       
   378 				return;
       
   379 
       
   380 			t = this.type.toLowerCase();
       
   381 			tag = this.tagName.toLowerCase();
       
   382 
       
   383 			if ( 'text' == t || 'password' == t || 'textarea' == tag )
       
   384 				this.value = '';
       
   385 			else if ( 'checkbox' == t || 'radio' == t )
       
   386 				this.checked = false;
       
   387 			else if ( 'select' == tag )
       
   388 				this.selectedIndex = null;
       
   389 		});
       
   390 	},
       
   391 
       
   392 	process: function(el) {
       
   393 		var list = this,
       
   394 			$el = $(el || document);
       
   395 
       
   396 		$el.delegate( 'form[data-wp-lists^="add:' + list.id + ':"]', 'submit', function(){
       
   397 			return list.wpList.add(this);
       
   398 		});
       
   399 
       
   400 		$el.delegate( 'a[data-wp-lists^="add:' + list.id + ':"], input[data-wp-lists^="add:' + list.id + ':"]', 'click', function(){
       
   401 			return list.wpList.add(this);
       
   402 		});
       
   403 
       
   404 		$el.delegate( '[data-wp-lists^="delete:' + list.id + ':"]', 'click', function(){
       
   405 			return list.wpList.del(this);
       
   406 		});
       
   407 
       
   408 		$el.delegate( '[data-wp-lists^="dim:' + list.id + ':"]', 'click', function(){
       
   409 			return list.wpList.dim(this);
       
   410 		});
       
   411 	},
       
   412 
       
   413 	recolor: function() {
       
   414 		var list = this, items, eo;
       
   415 
       
   416 		if ( !list.wpList.settings.alt )
       
   417 			return;
       
   418 
       
   419 		items = $('.list-item:visible', list);
       
   420 
       
   421 		if ( !items.size() )
       
   422 			items = $(list).children(':visible');
       
   423 
       
   424 		eo = [':even',':odd'];
       
   425 
       
   426 		if ( list.wpList.settings.altOffset % 2 )
       
   427 			eo.reverse();
       
   428 
       
   429 		items.filter(eo[0]).addClass(list.wpList.settings.alt).end().filter(eo[1]).removeClass(list.wpList.settings.alt);
       
   430 	},
       
   431 
       
   432 	init: function() {
       
   433 		var lists = this;
       
   434 
       
   435 		lists.wpList.process = function(a) {
       
   436 			lists.each( function() {
       
   437 				this.wpList.process(a);
       
   438 			} );
       
   439 		};
       
   440 
       
   441 		lists.wpList.recolor = function() {
       
   442 			lists.each( function() {
       
   443 				this.wpList.recolor();
       
   444 			} );
       
   445 		};
       
   446 	}
       
   447 };
       
   448 
       
   449 $.fn.wpList = function( settings ) {
       
   450 	this.each( function() {
       
   451 		var _this = this;
       
   452 
       
   453 		this.wpList = { settings: $.extend( {}, wpList.settings, { what: wpList.parseData(this,'list')[1] || '' }, settings ) };
       
   454 		$.each( fs, function(i,f) { _this.wpList[i] = function( e, s ) { return wpList[f].call( _this, e, s ); }; } );
       
   455 	} );
       
   456 
       
   457 	wpList.init.call(this);
       
   458 
       
   459 	this.wpList.process();
       
   460 
       
   461 	return this;
       
   462 };
       
   463 
       
   464 })(jQuery);