function js_clock() 
{
    var clock_time = new Date;
    var clock_hours = clock_time.getUTCHours();
    var clock_minutes = clock_time.getUTCMinutes();
    var clock_seconds = clock_time.getUTCSeconds();
    var clock_month = clock_time.getUTCMonth();
    var clock_year = clock_time.getUTCFullYear();
    var clock_date = clock_time.getUTCDate();
    var clock_timeout = (61 - clock_seconds) * 1000;
    var clock_pm = false;
    var clock_string = "";
	
	// Roll back date if UTC date is ahead
	if (clock_hours < 7)
	{
    if (clock_date == 1)
    {
      if (clock_month == 0)
      {
        clock_month = 11;
        clock_year = clock_year - 1;
      }
      else
      {
        clock_month = clock_month - 1;
      }
      
      switch(clock_month)
      {
      case 0: clock_date = 31;break;
      case 1: clock_date = 28;break;
      case 2: clock_date = 31;break;
      case 3: clock_date = 30;break;
      case 4: clock_date = 31;break;
      case 5: clock_date = 30;break;
      case 6: clock_date = 31;break;
      case 7: clock_date = 31;break;
      case 8: clock_date = 30;break;
      case 9: clock_date = 31;break;
      case 10: clock_date = 30;break;
      case 11: clock_date = 31;break;
      }
    }
    else
    {
      clock_date = clock_date - 1;
    }
	}
		
	if (clock_hours == 0)
	{
		clock_hours = 17;
	}
	else if (clock_hours < 7)
	{
		clock_hours = (12 - (7 - clock_hours));
		clock_pm = true;
	}
	else
	{
		clock_hours = clock_hours - 7;
	}
	
	switch(clock_month)
	{
		case 0: clock_string = clock_string + "January";break;				
		case 1: clock_string = clock_string + "February";break;					
		case 2: clock_string = clock_string + "March";break;				
		case 3: clock_string = clock_string + "April";break;					
		case 4: clock_string = clock_string + "May";break;				
		case 5: clock_string = clock_string + "June";break;				
		case 6: clock_string = clock_string + "July";break;				
		case 7: clock_string = clock_string + "August";break;				
		case 8: clock_string = clock_string + "September";break;				
		case 9: clock_string = clock_string + "October";break;				
		case 10: clock_string = clock_string + "November";break;				
		case 11: clock_string = clock_string + "December";break;				
	}  
	
  clock_string = clock_string + " " + clock_date + ", " + clock_year + " - ";

	if (clock_hours == 0)
	{
		clock_string = clock_string + '12' + ":";
	}
	else if (clock_hours < 13)
	{
		clock_string = clock_string + clock_hours + ":";
	}
	else
	{
		clock_string = clock_string + (clock_hours - 12) + ":";
	}
	
	if (clock_minutes < 10) 
	{
		clock_string = clock_string + "0" + clock_minutes;
	} 
	else 
	{
		clock_string = clock_string + clock_minutes;
	} 
	
	if (clock_hours < 12 && clock_pm == false)
	{
		clock_string = clock_string + " am";
	}
	else
	{
		clock_string = clock_string + " pm";
	}

    var clock_div = document.getElementById("js_clock");
    clock_div.innerHTML = clock_string;
    setTimeout("js_clock()", clock_timeout);
}

js_clock();
