Hey John! I never really left, just don't always log in when I am around 
Anyway, yes it is the countdown script from here. The problem isn't the functionality, the script works great, but being a count down I need it to use the server time so that everyone has the same days, hours, minutes remaining.
As you know, I run a team game on one of my forums, each round of the game is released about a week or so after the last one has been solved. I edit the timer to count down to the next release date and time so that each team knows exactly when to be online. Since everyone is all over the world, having the script use local time wouldn't work.
The problem, though is that I went from putting the script in its own page to having it in a block on the forum itself. WOrked fine 2 years ago, but after the updates and reconfiguring, the blocks now only hold HTML/JS - OR - php, but not all of them together.
You can see the clock and (broken) countdown right here and the exact code I am using for everything is here:
Code:
<style style="text/css">
.lcdstyle{ /*Example CSS to create LCD countdown look*/
color: #EE0000;
font: bold 14px MS Sans Serif;
padding: 3px;
}
.lcdstyle sup{ /*Example CSS to create LCD countdown look*/
font-size: 80%
}
</style>
<script type="text/javascript">
/***********************************************
* Universal Countdown script- © Dynamic Drive (http://www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/
function cdLocalTime(container, servermode, offsetMinutes, targetdate, debugmode){
if (!document.getElementById || !document.getElementById(container)) return
this.container=document.getElementById(container)
var servertimestring=(servermode=="server-php")? '<? print date("F d, Y H:i:s", time())?>' : (servermode=="server-ssi")? '<!--#config timefmt="%B %d, %Y %H:%M:%S"--><!--#echo var="DATE_LOCAL" -->' : '<%= Now() %>'
this.localtime=this.serverdate=new Date(servertimestring)
this.targetdate=new Date(targetdate)
this.debugmode=(typeof debugmode!="undefined")? 1 : 0
this.timesup=false
this.localtime.setTime(this.serverdate.getTime()+offsetMinutes*60*1000) //add user offset to server time
this.updateTime()
}
cdLocalTime.prototype.updateTime=function(){
var thisobj=this
this.localtime.setSeconds(this.localtime.getSeconds()+1)
setTimeout(function(){thisobj.updateTime()}, 1000) //update time every second
}
cdLocalTime.prototype.displaycountdown=function(baseunit, functionref){
this.baseunit=baseunit
this.formatresults=functionref
this.showresults()
}
cdLocalTime.prototype.showresults=function(){
var thisobj=this
var debugstring=(this.debugmode)? "<p style=\"background-color: #FCD6D6; color: black; padding: 5px\"><big>Debug Mode on!</big><br /><b>Current Local time:</b> "+this.localtime.toLocaleString()+"<br />Verify this is the correct current local time, in other words, time zone of count down date.<br /><br /><b>Target Time:</b> "+this.targetdate.toLocaleString()+"<br />Verify this is the date/time you wish to count down to (should be a future date).</p>" : ""
var timediff=(this.targetdate-this.localtime)/1000 //difference btw target date and current date, in seconds
if (timediff<0){ //if time is up
this.timesup=true
this.container.innerHTML=debugstring+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=debugstring+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 cdLocalTime.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 cdLocalTime.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
//1) Display countdown using plain text
function formatresults(){
if (this.timesup==false){//if target date/time not yet met
var displaystring="<span class='lcdstyle'>"+arguments[0]+" <sup>days</sup> "+arguments[1]+" <sup>hours</sup> "+arguments[2]+" <sup>minutes</sup> "+arguments[3]+" <sup>seconds </sup> LEFT!</span>"
}
else{ //else if target date/time met
var displaystring="Round Released!"
}
return displaystring
}
//2) Display countdown with a stylish LCD look, and display an alert on target date/time
function formatresults2(){
if (this.timesup==false){ //if target date/time not yet met
var displaystring="<span class='lcdstyle'>"+arguments[0]+" <sup>days</sup> "+arguments[1]+" <sup>hours</sup> "+arguments[2]+" <sup>minutes</sup> "+arguments[3]+" <sup>seconds </sup> LEFT!</span>"
}
else{ //else if target date/time met
var displaystring="Round Released!" //Don't display any text
alert("Round Released!") //Instead, perform a custom alert, used to say What Are You Waiting For?!
}
return displaystring
}
</script>
<title>Invasion O'Clock</title>
<font color="#EE0000">
<center>The Current Local Time is:<br>
<applet code="Dgclock.class" codebase="http://cleverwasteoftime.com/java-sys" height="30" width="100">
<param name="TimeFormat" value="">
<param name="ShowDate" value="yes">
<param name="ShowFrame" value="yes">
<param name="fg" value="red">
<param name="bg" value="black">
</applet><br>
<b>Invasion 5 Round 1 Released:<br>
April 29th, 2013 at 8 p.m. (GMT)</b>
<div id="cdcontainer"></div>
<script type="text/javascript">
//cdLocalTime("ID_of_DIV_container", "server_mode", LocaltimeoffsetMinutes, "target_date", "opt_debug_mode")
//cdLocalTime.displaycountdown("base_unit", formatfunction_reference)
//Note: "launchdate" should be an arbitrary but unique variable for each instance of a countdown on your page:
/***********************************************
* BELOW IS WHERE YOU CHANGE THE TIME AND DATE!
* IF YOU CAN'T SEE THIS WE HAVE A PROBLEM
* AND WILL NEED TO GO GET YOUR EYES CHECKED!
***********************************************/
var launchdate=new cdLocalTime("cdcontainer", "server-php", -120, "April 29, 2013 12:00:00")
launchdate.displaycountdown("days", formatresults)
</script>
</center>
</font>
The LCD works, the date and time are displayed, but the countdown refuses to count down. When I remove the php time get the countdown shows NAN for each section (as seen if you clicked my link). However it will work just perfect if I take out that php portion:
PHP Code:
'<? print date("F d, Y H:i:s", time())?>'
and put in a manual time. Obviously hard coding a time into the script is not helpful.
So... what should I do? I know the script is a little old, but if I could fix this part, then all should be well. I am not sure, maybe a rewrite of the entire thing? I just wanted to make the countdown work, with minimal effort. 
Thanks for looking!
Bookmarks