/**
 * Perform Group - Adam Coogan begin_of_the_skype_highlighting     end_of_the_skype_highlighting
 *
 * Built on top of the jQuery library
 * http://jquery.com
**/
(function($) {
       
    /**
     * Creates a match countdown for all matched elements.
     **/
     
    $.fn.countdown = function(o) {
        return this.each(function() {
            new $cd(this, o);
        });
    };

    // Default configuration properties.
    var defaults = {
        type: "url",
        days: "days",
        hours: "hours",
        mins: "mins",
        secs: "secs"
    };
            function performTSToDate(timestamp) {
            //timestamp = "20100501150000";
                //functino to convert wierdy datestamp to epoch using regexp
                //input has to be in this format: 20100501150000
                var regex=/^([0-9]{4})([0-1][0-9])([0-3][0-9])([0-2][0-9])([0-5][0-9])([0-5][0-9])?$/;
                var results = regex.exec(timestamp);
                return new Date(results[1],results[2]-1,results[3],results[4],results[5],results[6]);
            }
    $.countdown = function(e, o) {
       
        this.options = $.extend({}, defaults, o || {});
        options = this.options;
        var serverTimeDate;
        var matchTimeDate;        
        
		var endDate = performTSToDate(this.options.endDate);
			
		var serverTimeDate = new Date();
			
		function createTimer(endDate,serverTimeDate) { 
            var serverTimeDate = new Date();
                 
            mssec = 1000;
            msmin = 60 * mssec;
            mshour =  60 * msmin;
            msday = 24 * mshour;    
            msmonth = 24 * msday; 
                
            var timeleft = endDate.getTime() - serverTimeDate.getTime(); 
            dayremaining = (timeleft / msday);
            hourremaining =((timeleft / mshour) % 24);
            minremaining = ((timeleft/ msmin) % (60));
            secremaining = ((timeleft / mssec) % (60));

            //countDownTimeDate matchTimeDate serverTimeDate;
            //$(e).html('<div class="days"><span>'+Math.floor(dayremaining)+'</span><p>'+options.days+'</p></div><div class="hours"><span>'+Math.floor(hourremaining)+'</span><p>'+options.hours+'</p></div><div class="minutes"><span>'+Math.floor(minremaining)+'</span><p>'+options.mins+'</p></div><div class="seconds"><span>'+Math.floor(secremaining)+'</span><p>'+options.secs+'</p></div>');
            if(secremaining >= 0){
				//tweak labels for singular 
				if(Math.floor(dayremaining) == 1){
				options.days = "day";
				}else{
				options.days = "days";
				}
				if(Math.floor(hourremaining) == 1){
					options.hours = "hour";
				}else{
					options.hours = "hours";
				}
				if(Math.floor(minremaining) == 1){
					options.mins = "min";
				}else{
					options.mins = "mins";
				}			
				if(Math.floor(secremaining) == 1){
					options.secs = "sec";
				}else{
					options.secs = "secs";
				}
				$(e).html('<div class="days"><span>'+Math.floor(dayremaining)+'</span><p>'+options.days+'</p></div><div class="hours"><span>'+Math.floor(hourremaining)+'</span><p>'+options.hours+'</p></div><div class="minutes"><span>'+Math.floor(minremaining)+'</span><p>'+options.mins+'</p></div><div class="seconds"><span>'+Math.floor(secremaining)+'</span><p>'+options.secs+'</p></div>');
	  
            }else{
			  $(e).html('<div class="days"><span>0</span><p>'+options.days+'</p></div><div class="hours"><span>0</span><p>'+options.hours+'</p></div><div class="minutes"><span>0</span><p>'+options.mins+'</p></div><div class="seconds"><span>0</span><p>'+options.secs+'</p></div>');
			  //clear interval
			  clearInterval(counterid);
			  //process callback function
			  if(typeof(this.options.zeroCallBack) == 'function'){
                   this.options.zeroCallBack.call(this);
              } 
			}
        } 
			
		//createTimer(endDate,serverTimeDate);
		var counterid = setInterval(function () {createTimer(endDate,serverTimeDate)}, 1000);
		    
			
        
        
    };
    
    var $cd = $.countdown;
    
})(jQuery);
