function cdtime(container, targetdate)
	{
		if (!document.getElementById || !document.getElementById(container)) return
		this.container=document.getElementById(container)
		this.currentTime=new Date()
		this.targetdate=new Date(targetdate)
		this.timesup=false
		this.updateTime()
	}
	
	cdtime.prototype.updateTime=function(){
	var thisobj=this
	this.currentTime.setSeconds(this.currentTime.getSeconds()+1)
	setTimeout(function(){thisobj.updateTime()}, 1000) //update time every second
	}
	
	cdtime.prototype.displaycountdown=function(baseunit, functionref){
	this.baseunit=baseunit
	this.formatresults=functionref
	this.showresults()
	}
	
	cdtime.prototype.showresults=function(){
	var thisobj=this
	
	
	var timediff=(this.targetdate-this.currentTime)/1000 //difference btw target date and current date, in seconds
	if (timediff<0){ //if time is up
	this.timesup=true
	this.container.innerHTML=this.formatresults()
	return
	}
	var oneMinute=60 //minute unit in seconds
	var oneHour=60*60 //hour unit in seconds
	var oneDay=60*60*24 //day unit in seconds
	var dayfield=Math.floor(timediff/oneDay)
	
	var hourTMP="0"+Math.floor((timediff-dayfield*oneDay)/oneHour)
	var hourfield = hourTMP.substring(hourTMP.length-2);  
	
	var minuteTMP="0"+Math.floor((timediff-dayfield*oneDay-hourfield*oneHour)/oneMinute)
	var minutefield=minuteTMP.substring(minuteTMP.length-2);
	
	var secondTMP="0"+Math.floor((timediff-dayfield*oneDay-hourfield*oneHour-minutefield*oneMinute))
	var secondfield=secondTMP.substring(secondTMP.length-2);  

	
	if (this.baseunit=="HOURS"){ //if base unit is HOURS, set "hourfield" to be topmost level
	hourfield=dayfield*24+hourfield
	dayfield="n/a"
	}
	else if (this.baseunit=="MINUTES"){ //if base unit is MINUTES, set "minutefield" to be topmost level
	minutefield=dayfield*24*60+hourfield*60+minutefield
	dayfield=hourfield="n/a"
	}
	else if (this.baseunit=="seconds"){ //if base unit is seconds, set "secondfield" to be topmost level
	var secondfield=timediff
	dayfield=hourfield=minutefield="n/a"
	}
	this.container.innerHTML=this.formatresults(dayfield, hourfield, minutefield, secondfield)
	setTimeout(function(){thisobj.showresults()}, 1000) //update results every second
	}
	
	/////CUSTOM FORMAT OUTPUT FUNCTIONS BELOW//////////////////////////////
	
	//Create your own custom format function to pass into cdtime.displaycountdown()
	//Use arguments[0] to access "DAYS" left
	//Use arguments[1] to access "HOURS" left
	//Use arguments[2] to access "MINUTES" left
	//Use arguments[3] to access "Seconds" left
	
	//The values of these arguments may change depending on the "baseunit" parameter of cdtime.displaycountdown()
	//For example, if "baseunit" is set to "HOURS", arguments[0] becomes meaningless and contains "n/a"
	//For example, if "baseunit" is set to "MINUTES", arguments[0] and arguments[1] become meaningless etc
	
				//{//if target date/time not yet met
				var displaystring="<table border=0 cellpadding=0><tr align='center'><td height='20' width='80' class='lcdstyle'>"+arguments//[0]+"</td><td height='20' width='5'></td><td height='20' width='80' class='lcdstyle'>"+arguments[1]+"</td><td height='20' width='5'></td>//<td height='20' width='80' class='lcdstyle'>"+arguments[2]+"</td></tr><tr align='center'><td  height='10' width='80'class //='lcdstyle_DHMS'>DAYS</td><td></td><td height='10' width='80'class ='lcdstyle_DHMS'>HOURS</td><td></td><td height='10' width='80' class //='lcdstyle_DHMS'>MINUTES</td></tr></table>"
	//		}
	
	function formatresults()
	{
		if (this.timesup==false)
			{//if target date/time not yet met
				var displaystring="<table border=0 cellpadding=0><br ><tr align='center'><td height='20' width='80' class='lcdstyle'>"+arguments[0]+"</td><td height='20' width='0'></td><td height='20' width='80' class='lcdstyle'>"+arguments[1]+"</td><td height='20' width='5'></td><td height='20' width='80' class='lcdstyle'>"+arguments[2]+"</td></tr></table>"
			}
		else
			{ //else if target date/time met
				var displaystring=""
			}
		return displaystring

	}
	
	function formatresults2()
	{

		if (this.timesup==false)
			{//if target date/time not yet met
				var displaystring="<table border=0 cellpadding=0><tr align='center'><td class='lcdstyle2'>"+arguments[0]+"</td><td>&nbsp;&nbsp;&nbsp;</td><td class='lcdstyle2'>"+arguments[1]+"</td><td>&nbsp;&nbsp;&nbsp;</td><td class='lcdstyle2'>"+arguments[2]+"</td><td>&nbsp;&nbsp;&nbsp;</td><td class='lcdstyle2'>"+arguments[3]+"</td><td>&nbsp;&nbsp;&nbsp;</td></tr><tr align='center'><td class = 'lcdstyle_DHMS2'>DAYS</td><td></td><td class = 'lcdstyle_DHMS2'>HOURS</td><td></td><td class = 'lcdstyle_DHMS2'>MINUTES</td></td><td></td><td class = 'lcdstyle_DHMS2'>SECONDS</td></tr></table>"
			}
		else
			{ //else if target date/time met
				var displaystring=""
			}
		return displaystring
		
	}
	function formatresults3()
	{
		if (this.timesup==false)
			{//if target date/time not yet met
				var displaystring="<table border=0 cellpadding=0><tr align='center'><td class='lcdstyle3'>"+arguments[0]+"</td><td>&nbsp;&nbsp;&nbsp;</td><td class='lcdstyle3'>"+arguments[1]+"</td><td>&nbsp;&nbsp;&nbsp;</td><td class='lcdstyle3'>"+arguments[2]+"</td><td>&nbsp;&nbsp;&nbsp;</td><td class='lcdstyle3'>"+arguments[3]+"</td><td>&nbsp;&nbsp;&nbsp;</td></tr><tr align='center'><td class = 'lcdstyle_DHMS3'>DAYS</td><td></td><td class = 'lcdstyle_DHMS3'>HOURS</td><td></td><td class = 'lcdstyle_DHMS3'>MINUTES</td></td><td></td><td class = 'lcdstyle_DHMS3'>SECONDS</td></tr></table>"
			}
		else
			{ //else if target date/time met
				var displaystring=""
			}
		return displaystring
	}
	
	
