/* ****************************************************************************************** *
 * Das Script kann frei verwendet werden, dieser Kommentar sowie die Nennung des Nicks
 * und der URL müssen jedoch erhalten bleiben.
 *
 *                                                           (c) Quaese (www.quaese.de), 2009
 * ****************************************************************************************** */

(function($){$.fn.qp_countdown=function(options){var settings=$.extend({number:1,height:40,width:36,digitSpace:1,groupSpace:9,format:'ddd-hh-mm-ss',clDigit:null,xmlFile:'date.xml',xmlType:'get',start:Math.round(new Date().getTime()/1000),img:['0.gif','1.gif','2.gif','3.gif','4.gif','5.gif','6.gif','7.gif','8.gif','9.gif'],preload:[],imgPath:'bilder/36x40/',onStart:null,afterCountdown:null,time:[],countdownHTML:'<div id="countdownID_'+(new Date().getTime())+'"></div>'},options);if(this.length>1)
var _this=this[0];else
var _this=this;function init(){$(_this).html(settings.countdownHTML);$(_this).find('div').css({'height':settings.height+'px'});settings.format=settings.format.trim();var arrSplit=settings.format.split("-");for(var i=0;i<arrSplit.length;i++){settings.time[arrSplit[i].charAt(0)]=[];for(var j=0;j<arrSplit[i].length;j++){settings.time[arrSplit[i].charAt(0)][j]=document.createElement("span");$(_this).find('div').append(settings.time[arrSplit[i].charAt(0)][j]);$(settings.time[arrSplit[i].charAt(0)][j]).css({'margin-right':((j+1==arrSplit[i].length)?(settings.groupSpace+'px'):(settings.digitSpace+'px'))})}}
$(_this).find('span').each(function(i){if(settings.clDigit==null){$(this).css({'background-image':'url('+settings.imgPath+settings.img[0]+')',height:settings.height+'px',width:settings.width+'px',display:'block',float:'left'});}else{this.className=settings.clDigit;$(this).css({});}});settings.preload.length=0;for(var i=0;i<settings.img.length;i++){settings.preload[i]=new Image();settings.preload[i].src=settings.imgPath+settings.img[i];}
$.ajax({url:settings.xmlFile,type:settings.xmlType,dataType:'xml',success:function(data,txtStatus){var objBody=null;var arrEvent=data.getElementsByTagName("event");for(var i=0;i<arrEvent.length;i++){if(i==0){objBody=data.getElementsByTagName("event")[i];}
if(data.getElementsByTagName("event")[i].getElementsByTagName("id")[0].firstChild.nodeValue==settings.number){objBody=data.getElementsByTagName("event")[i];break;}}
settings.countdown={year:parseInt(Number(objBody.getElementsByTagName("targetdate")[0].getAttribute('year'))),month:parseInt(Number(objBody.getElementsByTagName("targetdate")[0].getAttribute('month'))),day:parseInt(Number(objBody.getElementsByTagName("targetdate")[0].getAttribute('day'))),hour:parseInt(Number(objBody.getElementsByTagName("targetdate")[0].getAttribute('hour'))),minute:parseInt(Number(objBody.getElementsByTagName("targetdate")[0].getAttribute('minute'))),title:objBody.getElementsByTagName("title")[0].firstChild.nodeValue,target:objBody.getElementsByTagName("target")[0].firstChild.nodeValue,id:objBody.getElementsByTagName("id")[0].firstChild.nodeValue}
_this.info={year:parseInt(Number(objBody.getElementsByTagName("targetdate")[0].getAttribute('year'))),month:parseInt(Number(objBody.getElementsByTagName("targetdate")[0].getAttribute('month'))),day:parseInt(Number(objBody.getElementsByTagName("targetdate")[0].getAttribute('day'))),hour:parseInt(Number(objBody.getElementsByTagName("targetdate")[0].getAttribute('hour'))),minute:parseInt(Number(objBody.getElementsByTagName("targetdate")[0].getAttribute('minute'))),title:objBody.getElementsByTagName("title")[0].firstChild.nodeValue,target:objBody.getElementsByTagName("target")[0].firstChild.nodeValue}
settings.end=Math.round(new Date(settings.countdown.year,settings.countdown.month-1,settings.countdown.day,settings.countdown.hour,settings.countdown.minute).getTime()/1000);settings.diff=settings.end-settings.start;if(settings.diff>0){if($.isFunction(settings.onStart))
settings.onStart(_this.info);countdown();}else if($.isFunction(settings.afterCountdown))
settings.afterCountdown(_this.info);},error:function(){$(_this).empty();alert("FEHLER:\nXML-File ("+settings.xmlFile+") konnte nicht geladen werden");}});}
function countdown(){var intDiff=settings.diff;var intHelp=(60*60*24);var intDays=Math.floor(intDiff/intHelp);intDiff=intDiff%intHelp;intHelp=(60*60);var intHours=Math.floor(intDiff/intHelp);intDiff=intDiff%intHelp;intHelp=60;var intMinutes=Math.floor(intDiff/intHelp);intDiff=intDiff%intHelp;var parts=[];parts['d']=String((intDays<10)?"00"+intDays:((intDays<100)?"0"+intDays:intDays));parts['h']=String((intHours<10)?"0"+intHours:intHours);parts['m']=String((intMinutes<10)?"0"+intMinutes:intMinutes);parts['s']=String((intDiff<10)?"0"+intDiff:intDiff);for(var strEntry in settings.time){for(var i=settings.time[strEntry].length-1,j=parts[strEntry].length-1;i>=0;i--,j--){$(settings.time[strEntry][i]).css({'background-image':'url('+settings.preload[parts[strEntry].charAt(j)].src+')'});}}
if(settings.diff--){hCountdownTimerHandle=_this.hCountdownTimerHandle=window.setTimeout(function(){countdown()},1000);}else if($.isFunction(settings.afterCountdown)){settings.afterCountdown(_this.info);}}
_this.stop=function(){window.clearTimeout(_this.hCountdownTimerHandle);}
_this.restart=function(){_this.stop();settings.start=Math.round(new Date().getTime()/1000),settings.diff=settings.end-settings.start;countdown();}
String.prototype.trim=function(){var strHelp=this;strHelp=strHelp.replace(/[^dhms-]/,'');return strHelp.replace(/^\s+|^[^dhms]+|[^dhms]+$|\s+$/g,'');}
init();return this;};})(jQuery);