// ***** READ ME ***** //
/**
 * The target date and time MUST be in UTC.
 * Some time zones observe Daylight Savings Time while others do not.
 * This can create problems calculating the target date and time between
 * different time zones.
 *
 * UTC time provides a reference for ALL time zones.
 * Use your current time zone offset and Daylight Savings Time observance
 * to determine the UTC date and time for your target.
 *
 * I.E. if your time zone is Eastern (UTC - 5) and it is winter then you
 * need to add 5 hours to your target event date and time to determine 
 * the UTC date and time.
 * Sunday 9:30 AM EST is Sunday 2:30 PM UTC
 * The startUTCHour value range is 0 to 23 so we would use the value 14
 * in this case for startUTCHour
 *
 * During Daylight Savings Time EST is UTC - 4 because clocks are set 
 * ahead one hour.
 */
 
targetUTCDay = 0; // 0 - 6, 0 = Sunday, 1 = Monday, etc.
startUTCHour = 13; // 0 - 23
startUTCMinute = 55; // 0 - 59
programLength = 205; // in minutes
 
nowDate = new Date(); // now
 
// find days to target
daysToTarget = 0;
if( nowDate.getUTCDay() > targetUTCDay ) {
  daysToTarget = 1 + targetUTCDay + 6 - nowDate.getUTCDay();
}
else if( nowDate.getUTCDay() < targetUTCDay ) {
  daysToTarget = targetUTCDay - nowDate.getUTCDay();
}
 
// calculate the local web browser target date
targetDate = new Date(nowDate.getTime() + daysToTarget * 24 * 60 * 60 * 1000);
targetDate.setUTCHours(startUTCHour, startUTCMinute, 0);
 
// calculate program end
endDate = new Date(targetDate.getTime() + programLength * 60 * 1000);
 
// if now is past the endDate then the event already occured today, jump ahead a week
if( nowDate.getTime() > endDate.getTime() ) {
  targetDate.setDate(targetDate.getDate() + 7);
  endDate.setDate(endDate.getDate() + 7);
}
 
function countDown() {
  msg = '';
  nowDate = new Date();
 
  // if now is past the endDate then the event already occured today, jump ahead a week
  if( nowDate.getTime() > endDate.getTime() ) {
    targetDate.setDate(targetDate.getDate() + 7);
    endDate.setDate(endDate.getDate() + 7);
  }
 
  if( nowDate.getTime() >= targetDate.getTime() && nowDate.getTime() <= endDate.getTime() ) {
    // time now is within program window
    msg = 'JOIN NOW!';
  }
  else {
    // build count down message
    timeDiff = (targetDate.getTime() - nowDate.getTime()) / 1000;
    dv = Math.floor(timeDiff / (24 * 60 * 60));
    msg += dv + ' : ';
    timeDiff = timeDiff % (24 * 60 * 60);
    dv = Math.floor(timeDiff / (60 * 60));
	if( dv < 10 ) {
		msg += '0' + dv + ' : ';
	}
	else {
		msg += dv + ' : ';
	}
    timeDiff = timeDiff % (60 * 60);
    dv = Math.floor(timeDiff / 60);
    if( dv < 10 ) {
		msg += '0' + dv + ' : ';
	}
	else {
		msg += dv + ' : ';
	}
    timeDiff = timeDiff % 60;
    dv = Math.floor(timeDiff);
    if( dv < 10 ) {
		msg += '0' + dv;
	}
	else {
		msg += dv;
	}
  }
 
  document.getElementById("cd").innerHTML = msg;
  setTimeout("countDown()", 1000);
}
