
/*** EDIT *******/
var tzOffset = -8; // location timezone offset from GMT
var dstOffset = 1; // offset for daylight savings time (0 if standard time, 1 if daylight savings (march to november))
/*** END EDIT ***/
function loadTime(){
timeAjax.makeRequest('GET', '/date', onClockResponse, true);
}
var timeAjax = new Ajax();
function onClockResponse(){
if (timeAjax.checkReadyState() == "success") {
//alert(timeAjax.getAllResponseHeaders());
var txtDoc = timeAjax.request.responseText;
if (txtDoc == undefined) {txtDoc = "";}
getServerTime(txtDoc,0);
} else {
//alert("There was a problem retrieving the XML data:\n" + req.statusText);
getServerTime(txtDoc,0);
}
}
//********************************************************
// Event time clock
//********************************************************
var months = new Array("jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec");
var timeDisp;
function updateTime(eventDate) {
if(typeof eventDate == "string") {
eventDate = new Date(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();
var hours = eventDate.getHours();
var minutes = eventDate.getMinutes()<10?"0"+eventDate.getMinutes():eventDate.getMinutes();
var TOD = hours<12?" a.m.":" p.m.";
hours = hours>12?(hours-12):hours;
hours = hours==0?(12):hours;
timeDisp = hours+":"+minutes + "<span class=\"smallCountdownText\">"+TOD+"</span>";
var dateDisp = eventDate.getDate()+" "+month+" "+year;
document.getElementById('tabCurrentDate').innerHTML = "Time: " + timeDisp + " PST";
}
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 offset = 0;
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 remoteTime = Date.UTC(year,month,day,hours,minutes,seconds,0)
remoteTime += ((tzOffset + dstOffset) * 3600000);
var remoteNow = new Date(remoteTime);
remoteNow = new Date(remoteNow.getUTCFullYear(),remoteNow.getUTCMonth(),remoteNow.getUTCDate(),remoteNow.getUTCHours(),remoteNow.getUTCMinutes(),remoteNow.getUTCSeconds(),0);
setTimeout("updateTime('" + remoteNow + "');",1000);
} else {
// if server time is unavailable use system time
//alert("here");
/*
var remoteNow = new Date();
remoteTime = remoteNow.getTime();
//alert(remoteNow.getTimezoneOffset());
remoteTime += ((tzOffset + dstOffset + (remoteNow.getTimezoneOffset()/60)) * 3600000);
remoteNow = new Date(remoteTime);
//updateTime(remoteNow);*/
}
}
/* FUNCTIONS BELOW DO NOT APPEAR TO BE IN USE *** (sam) ***/
//****************************************
// 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);
}
}
}
