function getTime() {
// initialize time-related variables with current time settings
var now = new Date()
var hour = now.getHours()
var minute = now.getMinutes()
now = null
var ampm = "" 

// validate hour values and set value of ampm
if (hour >= 12) {
hour -= 12
ampm = "PM"
} else
ampm = "AM"
hour = (hour == 0) ? 12 : hour

// add zero digit to a one digit minute
if (minute < 10)
minute = "0" + minute // do not parse this number!

// return time string
return hour + ":" + minute + " " + ampm
}

function leapYear(year) {
if (year % 4 == 0) // basic rule
return true // is leap year
/* else */ // else not needed when statement is "return"
return false // is not leap year
}

function getDays(month, year) {
// create array to hold number of days in each month
var ar = new Array(12)
ar[0] = 31 // January
ar[1] = (leapYear(year)) ? 29 : 28 // February
ar[2] = 31 // March
ar[3] = 30 // April
ar[4] = 31 // May
ar[5] = 30 // June
ar[6] = 31 // July
ar[7] = 31 // August
ar[8] = 30 // September
ar[9] = 31 // October
ar[10] = 30 // November
ar[11] = 31 // December

// return number of days in the specified month (parameter)
return ar[month]
}

function getMonthName(month) {
// create array to hold name of each month
var ar = new Array(12)
ar[0] = "January"
ar[1] = "February"
ar[2] = "March"
ar[3] = "April"
ar[4] = "May"
ar[5] = "June"
ar[6] = "July"
ar[7] = "August"
ar[8] = "September"
ar[9] = "October"
ar[10] = "November"
ar[11] = "December"

// return name of specified month (parameter)
return ar[month]
}

function setCal() {
// standard time attributes
var now = new Date()
var year = now.getYear()
if (year < 1000)
year+=1900
var month = now.getMonth()
var monthName = getMonthName(month)
var date = now.getDate()
now = null

// create instance of first day of month, and extract the day on which it occurs
var firstDayInstance = new Date(year, month, 1)
var firstDay = firstDayInstance.getDay()
firstDayInstance = null

// number of days in current month
var days = getDays(month, year)

// call function to draw calendar
drawCal(firstDay + 1, days, date, monthName, year)
}

function drawCal(firstDay, lastDate, date, monthName, year) {
// constant table settings
var tableWidth = '100%' // height of the table's header cell
var headerHeight = 5 // height of the table's header cell
var border = 1 // 3D height of table's border
var borderColor = '#2B91E3' // 3D height of table's border
var cellspacing = 0 // width of table's border
var headerColor = "red" // color of table's header
var headerSize = "+1" // size of tables header font
var colWidth = 10 // width of columns in table
var dayCellHeight = 15 // height of cells containing days of the week
var dayColor = "#000199" // color of font representing week days
var cellHeight = 10 // height of cells representing dates in the calendar
var todayColor = "red" // color specifying today's date in the calendar
var timeColor = "purple" // color of font representing current time
var headerBgColor = "#1667C0"
var tableBgColor = "#FFF9D9"
var textColor = "#00008B"
var weekColor = "yellow"

// create basic table structure
var text = "" // initialize accumulative variable to empty string
text += '<CENTER>'
text += '<TABLE bgcolor='+tableBgColor+' width='+tableWidth+' BORDER=' + border + ' bordercolor=' + borderColor + ' CELLSPACING=' + cellspacing + ' style="border-collapse:collapse;font-family:Verdana, Arial; font-size:10px">' // table settings
//text += '<TH COLSPAN=7 HEIGHT=' + headerHeight + '>' // create table header cell
//text += '<FONT COLOR="' + headerColor + '" SIZE=' + headerSize + '>' // set font for table header
//text += monthName + ' ' + year 
//text += '</FONT>' // close table header's font settings
//text += '</TH>' // close header cell

// variables to hold constant settings
var openCol = '<TD ALIGN="center" WIDTH=' + colWidth + ' HEIGHT=' + dayCellHeight + '>'
openCol += '<FONT COLOR="' + dayColor + '">'
var closeCol = '</FONT></TD>'

// create array of abbreviated day names
var weekDay = new Array(7)
weekDay[0] = "S"
weekDay[1] = "M"
weekDay[2] = "T"
weekDay[3] = "W"
weekDay[4] = "T"
weekDay[5] = "F"
weekDay[6] = "S"

// create first row of table to set column width and specify week day
text += '<TR VALIGN="center" bgcolor="'+headerBgColor+'">'
for (var dayNum = 0; dayNum < 7; ++dayNum) {
text += openCol +'<b><font color="'+weekColor+'">'+weekDay[dayNum]+'</b>'+ closeCol 
}
text += '</TR>'

// declaration and initialization of two variables to help with tables
var digit = 1
var curCell = 1

for (var row = 1; row <= Math.ceil((lastDate + firstDay - 1) / 7); ++row) {
text += '<TR ALIGN="right" VALIGN="top">'
for (var col = 1; col <= 7; ++col) {
if (digit > lastDate)
break
if (curCell < firstDay) {
text += '<TD></TD>';
curCell++
} else {
if (digit == date) { // current cell represent today's date
text += '<TD HEIGHT=' + cellHeight + '>'
text += '<FONT COLOR="' + todayColor + '">'
text += digit
text += '</FONT>'
//text += '</FONT><BR>'
//text += '<FONT COLOR="' + timeColor + '" SIZE=2>'
//text += '<CENTER>' + getTime() + '</CENTER>'
//text += '</FONT>'
text += '</TD>'
} else
text += '<TD HEIGHT=' + cellHeight + '><FONT COLOR="' + textColor + '">' + digit + '</font></TD>'
digit++
}
}
text += '</TR>'
}
text += '<TR><TD align=\"center\" colspan=\"7\" height=\"10\">'+year+" "+monthName+" "+date+'</TD></TR>';
// close all basic table tags
text += '</TABLE>'
text += '</CENTER>'

// print accumulative HTML string
document.write(text) 
}

function tTokyo(){
var GMT = 9; //GMT for Japan
var str;
var week = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
var month = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
var gmt = new Date();
var now = new Date();
var set = now.getTimezoneOffset();
gmt.setTime(now.getTime()+(set/60+parseFloat(GMT))*60*60*1000); /// Calculate with GMT
//gmt.setTime(now.getTime());
//Mon = gmt.getMonth() + 1;if(Mon < 10)Mon = "0" + Mon;
Mon = month[gmt.getMonth()];
Wee = week[gmt.getDay()];
Dat = gmt.getDate();    if(Dat < 10)Dat = "0" + Dat;
Yr  = gmt.getFullYear();
hor = gmt.getHours();   if(hor < 10)hor = "0" + hor; 
if(hor<=12)
{
 	str = "AM";
}
else
{
	hor = hor - 12;
	//hor = "0" + hor;
	str = "PM";
}
min = gmt.getMinutes(); if(min < 10)min = "0" + min;
sec = gmt.getSeconds(); if(sec < 10)sec = "0" + sec;

timeobj=document.getElementById('timestr');
//timeobj.innerHTML= hor+":"+min+":"+sec+" "+str;
//timeobj.innerHTML= "Japan Standard Time: "+hor+":"+min+":"+sec+" "+str+"&nbsp;"+Wee+", "+Dat+"-"+Mon+" "+Yr;
timeobj.innerHTML= "Japan Standard Time: "+hor+":"+min+":"+sec+" "+str+"&nbsp;"+Wee+", "+Dat+"-"+Mon+" "+Yr;
setTimeout('tTokyo()',500);
}
