function cdLocalTime(container_id, offsetMinutes, targetdate, servertimestring, redirect_url){
	if (!$(container_id)) {
		return;
	}
	this.container=$(container_id);
	this.redirect_url=redirect_url;
	this.localtime=this.serverdate=new Date(servertimestring);
	this.targetdate=new Date(targetdate);
	this.timesup=false;
	this.localtime.setTime(this.serverdate.getTime()+offsetMinutes*60*1000);
	this.updateTime();
}
cdLocalTime.prototype.updateTime=function(){
	var thisobj=this;
	this.localtime.setSeconds(this.localtime.getSeconds()+1);
	setTimeout(function(){thisobj.updateTime();}, 1000);
};
cdLocalTime.prototype.displaycountdown=function(baseunit){
	this.baseunit=baseunit;
	this.showresults();
};
cdLocalTime.prototype.formatresults=function(){
	if (this.timesup===false){
		var DisplayString='';
		if(arguments[0]>0) {
			DisplayString+=arguments[0]+" ";
			if(arguments[0]==1) {
				DisplayString+=message.day+" ";
			} else {
				DisplayString+=message.days+" ";
			}
		} 
		if(arguments[1]>0 || arguments[0]>0) {
			DisplayString+=arguments[1]+" ";
			if(arguments[1]==1) {
				DisplayString+=message.hour+" ";
			} else {
				DisplayString+=message.hours+" ";
			}
		} 
		DisplayString+=arguments[2]+" ";
		if(arguments[2]==1) {
			DisplayString+=message.minute+" ";
		} else {
			DisplayString+=message.minutes+" ";
		}
		
		DisplayString+=arguments[3]+" ";
		if(arguments[3]==1) {
			DisplayString+=message.second+" ";
		} else {
			DisplayString+=message.seconds+" ";
		}
		
		return DisplayString;
	} else if (this.redirect_url) {
		window.location = this.redirect_url;
		return '';
	}
};
cdLocalTime.prototype.showresults=function(){
	var thisobj=this;
	var timediff=(this.targetdate-this.localtime)/1000;
	if (timediff<0){
		this.timesup=true;
		this.container.innerHTML=this.formatresults();
		return;
	}
	var oneMinute=60;
	var oneHour=60*60;
	var oneDay=60*60*24;
	var dayfield=Math.floor(timediff/oneDay);
	var hourfield=Math.floor((timediff-dayfield*oneDay)/oneHour);
	var minutefield=Math.floor((timediff-dayfield*oneDay-hourfield*oneHour)/oneMinute);
	var secondfield=Math.floor((timediff-dayfield*oneDay-hourfield*oneHour-minutefield*oneMinute));
	if (this.baseunit=="hours") {
		hourfield=dayfield*24+hourfield;
		dayfield="n/a";
	} else if (this.baseunit=="minutes") { 
		minutefield=dayfield*24*60+hourfield*60+minutefield;
		dayfield=hourfield="n/a";
	} else if (this.baseunit=="seconds") {
		secondfield=timediff;
		dayfield=hourfield=minutefield="n/a";
	}
	if(thisobj.formatresults(dayfield, hourfield, minutefield, secondfield) !== null)
	{
		this.container.innerHTML=thisobj.formatresults(dayfield, hourfield, minutefield, secondfield);
		setTimeout(function(){thisobj.showresults();}, 1000);
	}
};