jQuery.fn.extend({everyTime:function(A,B,C,D){return this.each(function(){jQuery.timer.add(this,A,B,C,D)})},oneTime:function(A,B,C){return this.each(function(){jQuery.timer.add(this,A,B,C,1)})},stopTime:function(A,B){return this.each(function(){jQuery.timer.remove(this,A,B)})}});jQuery.extend({timer:{global:[],guid:1,dataKey:"jQuery.timer",regex:/^([0-9]+(?:\.[0-9]*)?)\s*(.*s)?$/,powers:{ms:1,cs:10,ds:100,s:1000,das:10000,hs:100000,ks:1000000},timeParse:function(C){if(C==undefined||C==null){return null}var A=this.regex.exec(jQuery.trim(C.toString()));if(A[2]){var B=parseFloat(A[1]);var D=this.powers[A[2]]||1;return B*D}else{return C}},add:function(D,B,C,F,H){var A=0;if(jQuery.isFunction(C)){if(!H){H=F}F=C;C=B}B=jQuery.timer.timeParse(B);if(typeof B!="number"||isNaN(B)||B<0){return }if(typeof H!="number"||isNaN(H)||H<0){H=0}H=H||0;var G=jQuery.data(D,this.dataKey)||jQuery.data(D,this.dataKey,{});if(!G[C]){G[C]={}}F.timerID=F.timerID||this.guid++;var E=function(){if((++A>H&&H!==0)||F.call(D,A)===false){jQuery.timer.remove(D,C,F)}};E.timerID=F.timerID;if(!G[C][F.timerID]){G[C][F.timerID]=window.setInterval(E,B)}this.global.push(D)},remove:function(C,B,D){var E=jQuery.data(C,this.dataKey),A;if(E){if(!B){for(B in E){this.remove(C,B,D)}}else{if(E[B]){if(D){if(D.timerID){window.clearInterval(E[B][D.timerID]);delete E[B][D.timerID]}}else{for(var D in E[B]){window.clearInterval(E[B][D]);delete E[B][D]}}for(A in E[B]){break}if(!A){A=null;delete E[B]}}}for(A in E){break}if(!A){jQuery.removeData(C,this.dataKey)}}}}});jQuery(window).bind("unload",function(){jQuery.each(jQuery.timer.global,function(A,B){jQuery.timer.remove(B)})});