(function($){
$.fn.Engo_CountDown = function( options ) {
return this.each(function() {
// get instance of the Engo_CountDown.
new $.Engo_CountDown( this, options );
});
}
$.Engo_CountDown = function( obj, options ){
this.options = $.extend({
autoStart : true,
LeadingZero:true,
DisplayFormat:"
%%D%% DAYS
:%%H%% HOURS
:%%M%% MINS
:%%S%% SECS
",
FinishMessage:"Expired",
CountActive:true,
TargetDate:null
}, options || {} );
if( this.options.TargetDate == null || this.options.TargetDate == '' ){
return ;
}
this.timer = null;
this.element = obj;
this.CountStepper = -1;
this.CountStepper = Math.ceil(this.CountStepper);
this.SetTimeOutPeriod = (Math.abs(this.CountStepper)-1)*1000 + 990;
var dthen = new Date(this.options.TargetDate);
var dnow = new Date();
if( this.CountStepper > 0 ) {
ddiff = new Date(dnow-dthen);
}
else {
ddiff = new Date(dthen-dnow);
}
gsecs = Math.floor(ddiff.valueOf()/1000);
this.CountBack(gsecs, this);
};
$.Engo_CountDown.fn = $.Engo_CountDown.prototype;
$.Engo_CountDown.fn.extend = $.Engo_CountDown.extend = $.extend;
$.Engo_CountDown.fn.extend({
calculateDate:function( secs, num1, num2 ){
var s = ((Math.floor(secs/num1))%num2).toString();
if ( this.options.LeadingZero && s.length < 2) {
s = "0" + s;
}
return "" + s + "";
},
CountBack:function( secs, self ){
if (secs < 0) {
self.element.innerHTML = ' '+self.options.FinishMessage+"
";
return;
}
clearInterval(self.timer);
DisplayStr = self.options.DisplayFormat.replace(/%%D%%/g, self.calculateDate( secs,86400,100000) );
DisplayStr = DisplayStr.replace(/%%H%%/g, self.calculateDate(secs,3600,24));
DisplayStr = DisplayStr.replace(/%%M%%/g, self.calculateDate(secs,60,60));
DisplayStr = DisplayStr.replace(/%%S%%/g, self.calculateDate(secs,1,60));
self.element.innerHTML = DisplayStr;
if (self.options.CountActive) {
self.timer = null;
self.timer = setTimeout( function(){
self.CountBack((secs+self.CountStepper),self);
},( self.SetTimeOutPeriod ) );
}
}
});
$(document).ready(function(){
$('[data-countdown="countdown"]').each(function(index, el) {
var $this = $(this);
var $date = $this.data('date').split("-");
$this.Engo_CountDown({
TargetDate:$date[0]+"/"+$date[1]+"/"+$date[2]+" "+$date[3]+":"+$date[4]+":"+$date[5],
DisplayFormat:"%%D%% DAYS
:
%%H%% HRS
:
%%M%% MINS
:
%%S%% SECS
",
FinishMessage: "Expired"
});
});
});
////
})(jQuery)
//