/**
 * GraphiCounter v0.3
 * 2011 by Patrick Tiedchen
 *
 * Visit: 	CoDInfobase.de
 * Contact: tchibomann@esgn.eu
 * ALL RIGHTS RESERVED - PLEASE ASK IF YOU WANT TO USE IT!
 */

// Falls jQuery noch nicht geladen ist, dynamisch einbinden.
if(typeof jQuery == 'undefined') {
	document.write('<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>');
}

// Diese Funktion wird im HTML-Dokument exakt dort aufgerufen, wo es benötigt wird.
// var what: In der style.css muss zusätzlich zum ID-Selektor ein "tag" hinzugefügt werden. 
//           Beispiel: #countdown-mw3
//           "mw3" ist der Tag, der im Script als Identifikation des Counters und dessen
//           CSS-Klassen genutzt wird. Für weitere Infos bitte in der CSS als Lernhilfe nachschauen.
// var date: Das Datum im Format 'June 21, 2011 00:00:00' - in der Sommerzeit 
//           MUSS eine Stunde vom Zieldatum abgezogen werden!
// var days: Optional. Standardmäßig werden maximal 999 Tage angezeigt, bei zweistelligen Tageszahlen
//           bitte eine 2, bei einer einstelligen Tageszahl 1 verwenden, wenn führende Nullen im Countdown
//           nicht angezeigt werden sollen.
function countdown_setup(what,date,days) {
	var tag = what;
	var pxl = "http://scripts.esgn.eu/countdown/images/pxl.png";
	var showdays = (days == undefined) ? 3 : days;
	var css = document.getElementById("counterstyle");

    // falls die CSS-Datei noch nicht geladen is...
	if(css == null) {
		document.write('<link rel="stylesheet" id="counterstyle" href="http://scripts.esgn.eu/countdown/style.css" type="text/css" /> ');
	}
	
	document.write(''
	+'<div id="countdown-'+tag+'" class="sprite-'+tag+'" onclick="document.location.href=\'http://blog.codinfobase.de\'">'
		+'<div class="wrap-days">');
			if(showdays == 3) { document.write('<img src="'+pxl+'" id="'+tag+'-day-dig-0" class="sprite-'+tag+' imgbg-0" alt=""/>'); }
			if(showdays >= 2) { document.write('<img src="'+pxl+'" id="'+tag+'-day-dig-1" class="sprite-'+tag+' imgbg-0" alt=""/>'); }
			document.write(''
			+'<img src="'+pxl+'" id="'+tag+'-day-dig-2" class="sprite-'+tag+' imgbg-0" alt=""/>'
		+'</div>'
		+'<div class="wrap-hours">'
			+'<img src="'+pxl+'" id="'+tag+'-hrs-dig-0" class="sprite-'+tag+' imgbg-0" alt=""/>'
			+'<img src="'+pxl+'" id="'+tag+'-hrs-dig-1" class="sprite-'+tag+' imgbg-0" alt=""/>'
		+'</div>'
		+'<div class="wrap-minutes">'
			+'<img src="'+pxl+'" id="'+tag+'-min-dig-0" class="sprite-'+tag+' imgbg-0" alt=""/>'
			+'<img src="'+pxl+'" id="'+tag+'-min-dig-1" class="sprite-'+tag+' imgbg-0" alt=""/>'
		+'</div>'
		+'<div class="wrap-seconds">'
			+'<img src="'+pxl+'" id="'+tag+'-sec-dig-0" class="sprite-'+tag+' imgbg-0" alt=""/>'
			+'<img src="'+pxl+'" id="'+tag+'-sec-dig-1" class="sprite-'+tag+' imgbg-0" alt=""/>'
		+'</div>'
	+'</div>');
	
	countdown(tag, date, showdays);
}

// here comes the magic ;)
function countdown(what, date, showdays) {
	var tag 			= what;
	var end 			= new Date(date);
	var start 			= new Date();
	var displayDays 	= true;
	var summerTime 		= true;
	var pxl 			= "http://scripts.esgn.eu/countdown/images/pxl.png";
	
	timeleft 	= (end.getTime()-start.getTime())/1000;
	
	// wenn der Countdown noch nicht abgelaufen ist:
	if(timeleft > 0) { 
		var seconds		= "" + Math.floor(timeleft)%60;
		var minutes		= "" + Math.floor(timeleft/60)%60;
		var hours		= (displayDays == true) ? "" + Math.floor((timeleft/60)/60)%24 : "" + Math.floor((timeleft/60)/60);
		var days		= (displayDays == true) ? "" + Math.floor(((timeleft/60)/60)/24) : "";
//alert(days);
		var secarr = seconds.split("");
		var secstr = "";
		for(var k = 0; k < secarr.length; k++) {
			v = k;
			if(secarr.length == 1) {
				$('#'+tag+'-sec-dig-'+k).attr('class', 'sprite-'+tag+' imgbg-0');
				k = 1;
			}
			$('#'+tag+'-sec-dig-'+k).attr('class', 'sprite-'+tag+' imgbg-'+secarr[v]);
		}

		var minarr = minutes.split("");
		var minstr = "";
		for(var k = 0; k < minarr.length; k++) {
			v = k;
			if(minarr.length == 1) {
				$('#'+tag+'-min-dig-'+k).attr('class', 'sprite-'+tag+' imgbg-0');
				k = 1;
			}
			$('#'+tag+'-min-dig-'+k).attr('class', 'sprite-'+tag+' imgbg-'+minarr[v]);
		}
		
		var hrsarr = hours.split("");
		var hrsstr = "";
		for(var k = 0; k < hrsarr.length; k++) {
			v = k;
			if(hrsarr.length == 1) {
				$('#'+tag+'-hrs-dig-'+k).attr('class', 'sprite-'+tag+' imgbg-0');
				k = 1;
			}
			$('#'+tag+'-hrs-dig-'+k).attr('class', 'sprite-'+tag+' imgbg-'+hrsarr[v]);
		}
		
		var dayarr = days.split("");
		
		if(showdays == 3) {
			if(dayarr.length == 3) {
				$('#'+tag+'-day-dig-0').attr('class', 'sprite-'+tag+' imgbg-'+dayarr[0]);
				$('#'+tag+'-day-dig-1').attr('class', 'sprite-'+tag+' imgbg-'+dayarr[1]);
				$('#'+tag+'-day-dig-2').attr('class', 'sprite-'+tag+' imgbg-'+dayarr[2]);
			}
			if(dayarr.length == 2) {
				$('#'+tag+'-day-dig-0').attr('class', 'sprite-'+tag+' imgbg-0');
				$('#'+tag+'-day-dig-1').attr('class', 'sprite-'+tag+' imgbg-'+dayarr[0]);
				$('#'+tag+'-day-dig-2').attr('class', 'sprite-'+tag+' imgbg-'+dayarr[1]);
			}
			if(dayarr.length == 1) {
				$('#'+tag+'-day-dig-0').attr('class', 'sprite-'+tag+' imgbg-0');
				$('#'+tag+'-day-dig-1').attr('class', 'sprite-'+tag+' imgbg-0');
				$('#'+tag+'-day-dig-2').attr('class', 'sprite-'+tag+' imgbg-'+dayarr[0]);
			}
			if(dayarr.length == 0) {
				$('#'+tag+'-day-dig-0').attr('class', 'sprite-'+tag+' imgbg-0');
				$('#'+tag+'-day-dig-1').attr('class', 'sprite-'+tag+' imgbg-0');
				$('#'+tag+'-day-dig-2').attr('class', 'sprite-'+tag+' imgbg-0');
			}
		}
		if(showdays == 2) {
			if(dayarr.length == 2) {
				$('#'+tag+'-day-dig-1').attr('class', 'sprite-'+tag+' imgbg-'+dayarr[0]);
				$('#'+tag+'-day-dig-2').attr('class', 'sprite-'+tag+' imgbg-'+dayarr[1]);
			}
			if(dayarr.length == 1) {
				$('#'+tag+'-day-dig-1').attr('class', 'sprite-'+tag+' imgbg-0');
				$('#'+tag+'-day-dig-2').attr('class', 'sprite-'+tag+' imgbg-'+dayarr[0]);
			}
			if(dayarr.length == 0) {
				$('#'+tag+'-day-dig-1').attr('class', 'sprite-'+tag+' imgbg-0');
				$('#'+tag+'-day-dig-2').attr('class', 'sprite-'+tag+' imgbg-0');
			}
		}
		
	
	// Wenn der Countdown abgelaufen ist sollten alle Ziffern auf 0 stehen.
	} else {
		$('#countdown-'+tag+' img').attr('class', 'sprite-'+tag+' imgbg-0');
	}
	// Probeausgabe...
	//alert(timeleft + " " + seconds + " " + minutes + " " + hours + " " + days); return false;
	
	// Wenn der Countdown noch nicht abgelaufen ist, dann muss der Counter alle 200 Millisekunden
	// neu berechnet werden. Dazu setTimeout nutzen.
	if(timeleft > 0) { setTimeout(function(){countdown(tag,end,days);}, 200); }
	
}
