jQuery.fn.counter=function(params){var self=this;self.display=$(this);self.hour=params.hour?params.hour:"0";self.min=params.min?params.min:"0";self.sec=params.sec?params.sec:"0";self.hour_end=params.hour_end?params.hour_end:"0";self.min_end=params.min_end?params.min_end:"0";self.sec_end=params.sec_end?params.sec_end:"0";self.message=params.message?params.message:"FINISHED";self.delimiter=params.delimiter?params.delimiter:":";self.return_url=params.return_url?params.return_url:"";self.finish_function=params.finish_function?params.finish_function:"";self.interval=params.interval?params.interval*1e3:"1000";self.iteration=params.iteration?params.iteration:"1";self.direction=params.direction?params.direction:"down";self.timestamp=self.hour*60*60+self.min*60+self.sec*1;self.timestamp_end=self.hour_end*60*60+self.min_end*60+self.sec_end*1;self.onTick=params.onTick?params.onTick:function(){return true};self.onFinish=params.onFinish?params.onFinish:function(){return true};self._updateCounter=function(a){self.change_hour=a.change_hour?a.change_hour:"0";self.change_min=a.change_min?a.change_min:"0";self.change_sec=a.change_sec?a.change_sec:"0";self.change_direction=a.change_direction?a.change_direction:"up";self.hour=a.hour?a.hour:self.hour;self.min=a.min?a.min:self.min;self.sec=a.sec?a.sec:self.sec;self.hour_end=a.hour_end?a.hour_end:self.hour_end;self.min_end=a.min_end?a.min_end:self.min_end;self.sec_end=a.sec_end?a.sec_end:self.sec_end;self.message=a.message?a.message:self.message;self.delimiter=a.delimiter?a.delimiter:self.delimiter;self.return_url=a.return_url?a.return_url:self.return_url;self.finish_function=a.finish_function?a.finish_function:self.finish_function;self.interval=a.interval?a.interval*1e3:self.interval;self.iteration=a.iteration?a.iteration:self.iteration;self.direction=a.direction?a.direction:self.direction;self.timestamp_end=self.hour_end*60*60+self.min_end*60+self.sec_end*1;if(self.change_hour!=0||self.change_min!=0||self.change_sec!=0){var b=self._createTimestamp(self.change_hour,self.change_min,self.change_sec);if(self.change_direction.match(/up/)){self.timestamp+=b}else if(self.change_direction.match(/down/)){self.timestamp-=b}else{return}}else{self.timestamp=self.hour*60*60+self.min*60+self.sec*1}return};self._createTimestamp=function(a,b,c){return a*60*60+b*60+c*1};self._getCounterFromTimestamp=function(a){if(a>0){hours=Math.floor(a/3600);minutes=Math.floor((a/3600-hours)*60);seconds=Math.round(((a/3600-hours)*60-minutes)*60)}else{hours=0;minutes=0;seconds=0}if(seconds==60){seconds=0}if(seconds==0){if(hours!=0){minutes=minutes/1+1}}if(minutes<10){if(minutes<0){minutes=0}minutes="0"+minutes}if(seconds<10){if(seconds<0){seconds=0}seconds="0"+seconds}if(hours<10){if(hours<0){hours=0}hours="0"+hours}if(hours>0){return hours+self.delimiter+minutes+self.delimiter+seconds}else if(minutes>0){return minutes+self.delimiter+seconds}else{return seconds}};self._tick=function(){if(self.timestamp>0&&self.timestamp!=self.timestamp_end){var counter=self._getCounterFromTimestamp(self.timestamp);self.display.html(counter);if(self.direction=="down"){self.timestamp=self.timestamp*1-self.iteration*1}else if(self.direction=="up"){self.timestamp=self.timestamp*1+self.iteration*1}else{return}}else{window.clearInterval(self._interval);if(!self.onFinish(self.display)){return}self.display.html(self.message);if(self.finish_function!=""){eval(self.finish_function)}if(self.return_url!=""){window.location.href=self.return_url}return}};self._tick();self._interval=window.setInterval(self._tick,self.interval);return this}
