var countdownUpdated = false;
var melbourneTime = "";
function processReqChange(){
if (loadDate.checkReadyState() == "success") {
//alert(loadDate.getAllResponseHeaders());
var txt = loadDate.request.responseText;
c(txt,0);
} else {
//alert("There was a problem retrieving the XML data:\n" + req.statusText);
}
}
//var loadDate = new Ajax();
$.ajax({
url: '/date',
type: 'GET',
dataType: 'html',
timeout: 1000,
error: function(){
//alert('Error loading document');
},
success: function(txt){
getServerTime(txt,0)
}
});
//********************************************************
// Event time clock
//********************************************************
var months = new Array("jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec");
var startMonth;
var endMonth;
var startMonth;
var endMonth;
var startHour;
var startMin;
var startSec;
var endHour;
var endMin;
var endSec;
var prevTime = "";
var timeDisp;
var dstOffset = 0;
function setOffsets(){
eventOffset = 36000000; //10 hours
startMonth = 9;
endMonth = 2;
startHour = 1;
startMin = 59;
startSec = 59;
endHour = 2;
endMin = 59;
endSec = 59;
}
function setOffsets2(eventDate){
var year = eventDate.getFullYear();
var startDate = lastSunday(year,startMonth,startHour,startMin,startSec);
var endDate = lastSunday(year,endMonth,endHour,endMin,endSec);
//alert(eventDate + " " + startDate + " " + endDate);
if (eventDate > startDate || eventDate <= endDate){
dstOffset = 3600000;
}
}
function updateTime() {
var eventTime = new Date().getTime() + offset + eventOffset;
eventDate = new Date();
eventDate.setTime(eventTime);
setOffsets2(eventDate);
eventTime = eventTime + dstOffset;
eventDate.setTime(eventTime);
//if (!countdownUpdated)
//updateCountdown(eventDate);
var month = eventDate.getMonth();
switch (month) {
case 0 : month = "January"; break;
case 1 : month = "February"; break;
case 2 : month = "March"; break;
case 3 : month = "April"; break;
case 4 : month = "May";	break;
case 5 : month = "June"; break;
case 6 : month = "July"; break;
case 7 : month = "August"; break;
case 8 : month = "September"; break;
case 9 : month = "October"; break;
case 10 : month = "November";	break;
case 11 : month = "December";	break;
}
//var year = eventDate.getYear()+1900;
var year = eventDate.getYear();
var hours = eventDate.getHours();
var minutes = eventDate.getMinutes()<10?"0"+eventDate.getMinutes():eventDate.getMinutes();
var TOD = hours<12?"AM":"PM";
hours = hours>12?(hours-12):hours;
hours = hours==0?(12):hours;
//var timeDisp = hours+":"+minutes + TOD;
timeDisp = hours+":"+minutes + "<span class=\"smallCountdownText\">"+TOD+"</span>";
var dateDisp = eventDate.getDate()+" "+month+" "+year;
if((prevTime == "") || (prevTime != timeDisp)){
//document.getElementById('date').innerHTML = "Masters Time: <br>" + timeDisp + " EST";
//alert(timeDisp);
//document.getElementById("dateField").innerHTML = timeDisp;
}
prevTime = timeDisp;
updateCountdown(eventDate);
setTimeout("updateTime()",1000);
}
function getServerTime(date,age){
//alert(date);
if (date){
if (date.indexOf("\n") > -1)
date= date.substr(0,date.indexOf("\n"));
var d = date.split(" ");
for (var x=0; x<d.length; x++){
if (d[x] == "")
d.splice(x,1);
}
var t = d[3].split(":");
var year = parseInt(d[4]);
var day = parseInt(d[2]);
var month;
for (var i=0; i<months.length; i++){
if (d[1].toLowerCase() == months[i]){
month = i;
}
}
if (t[0].indexOf("0") == 0){
t[0] = t[0].substring(1);
}
var hours = parseInt(t[0]);
var minutes = parseInt(t[1]);
var seconds = parseInt(t[2]);
var localNow = new Date();
var remoteTime = Date.UTC(year,month,day,hours,minutes,seconds,0)
remoteTime += age*1000;
var remoteNow = new Date(remoteTime);
remoteNow = new Date(remoteNow.getUTCFullYear(),remoteNow.getUTCMonth(),remoteNow.getUTCDate(),remoteNow.getUTCHours(),remoteNow.getUTCMinutes(),remoteNow.getUTCSeconds(),0);
melbourneTime = remoteNow.getTime();
offset = remoteNow.getTime() - localNow.getTime();
setOffsets();
updateTime();
} else {
updateTime();
}
}
//****************************************
// calculate if a leap year
//****************************************
function isLeapYear(year) {
if ((year/4) != Math.floor(year/4)) return false;
if ((year/100) != Math.floor(year/100)) return true;
if ((year/400) != Math.floor(year/400)) return false;
return true;
}
//****************************************
// calculate number of days in a month
// @param year the year
// @param month the month
//****************************************
function monthLength(year,month){
var daysofmonth = new Array( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var days = daysofmonth[month];
if (isLeapYear(year)){
days++;
}
return days;
}
//****************************************
// return date for last sunday in a month
// @param year the year
// @param month the month
//****************************************
function lastSunday(year,month){
var mLen = monthLength(year,month);
for (var x=mLen; x>=1; x--){
var d = new Date(year,month,x);
if (d.getDay() == 0){
return new Date(year,month,x);
}
}
}
//****************************************
// return date for first sunday in a month
// @param year the year
// @param month the month
//****************************************
function firstSunday(year,month){
var mLen = monthLength(year,month);
for (var x=1; x<=mLen; x++){
var d = new Date(year,month,x);
if (d.getDay() == 0){
return new Date(year,month,x);
}
}
}
//****************************************
// update Countdown graphic
// @param date Melbourne date
//****************************************
// one day in milliseconds = 86400000
// one hour in milliseconds = 3600000
// one minute in milliseconds = 60000
// one second in milliseconds = 1000
function updateCountdown(date){
countdownUpdated = true;
startDate = new Date(2011,0,17,11,0,0);
difference = (startDate - date);
if (difference > 0 ) {
days = (difference - (difference % 86400000)) / 86400000;
difference = difference - (days * 86400000);
hours = (difference - (difference % 3600000)) / 3600000;
if(hours<10){hours = "0"+hours;}
difference = difference - (hours * 3600000);
minutes = (difference - (difference % 60000)) / 60000;
if(minutes<10){minutes = "0"+minutes;}
difference = difference - (minutes * 60000);
seconds = (difference - (difference % 1000)) / 1000;
if(seconds<10){seconds = "0"+seconds;}
} else {
days = "00";
hours = "00";
minutes = "00";
seconds = "00";
}
document.getElementById("countdownDays").innerHTML = days + " DAYS TO GO";
// document.getElementById("countdownHrs").innerHTML = hours;
// document.getElementById("countdownMin").innerHTML = minutes;
// document.getElementById("countdownSec").innerHTML = seconds;
// document.getElementById("melTime").innerHTML = prevTime;
}