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 
	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 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" ) { //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
}


function formatresults() {
	if ( this.timesup == false ) {//if target date/time not yet met
		var displaystring = "<h4 id='counter'>Count Down: " + ( arguments[0] < 10 ? "0" + arguments[0] : arguments[0] ) + " day" + ( arguments[0] == 1 ? "" : "s" ) + " " + ( arguments[1] < 10 ? "0" + arguments[1] : arguments[1] ) + " hour" + ( arguments[1] == 1 ? "" : "s" ) + " " + ( arguments[2] < 10 ? "0" + arguments[2] : arguments[2] ) + " minute" + ( arguments[2] == 1 ? "" : "s" ) + " " + ( arguments[3] < 10 ? "0" + arguments[3] : arguments[3] ) + " second" + ( arguments[3] == 1 ? "" : "s" ) + "</h4>"
	} else { //else if target date/time met
		var displaystring = "<h4 id='counter'>Lets Braindance!</h4>"
	}
	return displaystring
}


