function CountDown(){
	
	var serverDate = null;
	var offset = null;
	
    this.init = function(){
    	(function($) {
    		$('.countDownItem').not('initalized').each(function(i, e) {
    			var goalDate = e.title.split(",");	
    			countDown.start(goalDate[0], goalDate[1], goalDate[2], goalDate[3], goalDate[4], goalDate[5], e.id)
    			$(e).addClass('initialized');
    		})
    	})(jQuery);
    }
	
    this.setServerDate = function(iYear, iMonth, iDay, iHour, iMinute, iSecond){
    	startDate=new Date(); 
    	
    	serverDate = new Date(iYear,iMonth-1,iDay,iHour,iMinute,iSecond);
    	offset = serverDate.getTime() - startDate.getTime();
    }
    
	this.start = function(iYear, iMonth, iDay, iHour, iMinute, iSecond, elementToUpdate){
		(function($) {
			 startDate=new Date(); // Aktuelles Datum 
			 
			 //console.log(startDate.getTimezoneOffset());
			 //alert(offset);
			 startDate.setTime(startDate.getTime()-(startDate.getTimezoneOffset()*60*1000));
			  
			  
			 if(offset)
			 startDate.setTime(startDate.getTime()+offset);
			 
			 goalDate=new Date(iYear,iMonth-1,iDay,iHour,iMinute,iSecond);
			 goalDate.setTime(goalDate.getTime()-(goalDate.getTimezoneOffset()*60*1000));
			 
		        // Countdown berechnen und anzeigen, bis Ziel-Datum erreicht ist
		        if(startDate<goalDate)  {

		          var days=0, hours=0, minutes=0, seconds=0;

		          
		          days=Math.floor((goalDate-startDate)/(24*60*60*1000));
		          startDate.setTime(startDate.getTime()+(days*24*60*60*1000));

		          // hours
		          hours=Math.floor((goalDate-startDate)/(60*60*1000));
		          //console.log(startDate);
		          startDate.setTime(startDate.getTime()+hours*60*60*1000);
		          
		          // minutes
		          minutes=Math.floor((goalDate-startDate)/(60*1000));
		          startDate.setTime(startDate.getTime()+minutes*60*1000);

		          // seconds
		          seconds=Math.floor((goalDate-startDate)/1000);
		          

		          
		          //alert(elementToUpdate);
		          var text = "<table width='100%' class='cd' cellspacing='0' cellpadding='0'>";
		          text += "<tr><th class='cdD'>Tage</th><th class='cdH'>Stunden</th><th class='cdH'>Minuten</th><th class='cdS'>Sekunden</th></tr>"
		          text += "<tr><td class='cdD'>"+days+"</td><td class='cdH'>"+hours+"</td><td class='cdM'>"+minutes+"</td><td class='cdS'>"+seconds+"</td></tr>"
		          text += "</table>"
		          
		          $('#' + elementToUpdate).html(text);

		          setTimeout('countDown.start('+iYear+','+iMonth+','+iDay+','+iHour+','+iMinute+','+iSecond+',"'+elementToUpdate+'")',200);
		        }
		        // Anderenfalls alles auf Null setzen
		        else { 
			          var text = "<table width='100%' class='cd' cellspacing='0' cellpadding='0'>";
			          text += "<tr><th class='cdD'>Tage</th><th class='cdH'>Stunden</th><th class='cdH'>Minuten</th><th class='cdS'>Sekunden</th></tr>"
			          text += "<tr><td class='ended' colspan='4'>beendet</td></tr>"
			          text += "</table>"
			        	  
		        	$('#' + elementToUpdate).html(text) 
		        };

		})(jQuery);
	}
    

    var self = this;
}

var countDown = new CountDown();


(function($) {
	$(document).ready(function(){
		countDown.init();
	});

})(jQuery);
