﻿var tb = 't'; // top or bottom (t or b)
var headbg = '#c4ddf7';  // table heading background colour
var todaybg = '#c4ddf7'; // current selected date background colour
var textclr = '#000000'; // text colour
var linkclr = 'blue'; // link text colour
var noMessage =  ''; // message to display when no entry in array



var dA = new Array(); var x = 0;
// first 8 characters in ccyymmdd format for single date events
// first 8 characters in 0000mmdd format for every year events

dA[x++] = "20100901 1/9: 開學禮";
dA[x++] = "20100905 5/9: 教育主日";
dA[x++] = "20100906 6/9: 中六領袖訓練營(至8/9)";
dA[x++] = "20100909 9/9: ATEC課程開始";
dA[x++] = "20100923 23/9: 中秋節翌日,放假1天";

dA[x++] = "20101001 1/10: 國慶日放假1天";
dA[x++] = "20101016 16/10: 重陽節放假1天";
dA[x++] = "20101018 18/10: 中一二上學期統測開始(至20/10) ; 中三上學期統測開始(至21/10)";
dA[x++] = "20101021 21/10: 中一黃埔軍校訓練營(至23/10)";



dA[x++] = "20101101 1/11: 教師發展日";
dA[x++] = "20101103 3/11: 捐血日";
dA[x++] = "20101108 8/11-12/11: 福音周";
dA[x++] = "20101109 8/11-12/11: 福音周";
dA[x++] = "20101110 8/11-12/11: 福音周";
dA[x++] = "20101111 8/11-12/11: 福音周";
dA[x++] = "20101112 8/11-12/11: 福音周";
dA[x++] = "20101127 27/11: 諸聖嘉年華";
dA[x++] = "20101129 29/11: 嘉年華補假,放假1天";
dA[x++] = "20101130 30/11: 改為星期一課堂、ATEC課取消";

dA[x++] = "20101208 8/12: 中三至六上學期考試開始(至22/12)";
dA[x++] = "20101214 14/12: 中一二第上學期考試開始(至22/12)";
dA[x++] = "20101222 22/12: 聖誕崇拜";
dA[x++] = "20101223 23/12: 聖誕及新年假期開始(至1/1)";

dA[x++] = "20110107 7/1: ATEC課取消(ATEC教師發展日)";
dA[x++] = "20110112 12/1-13/1: 陸運會";
dA[x++] = "20110113 12/1-13/1: 陸運會";
dA[x++] = "20110114 14/1: 陸運會翌日放假1天";
dA[x++] = "20110121 21/1: 便服日";

dA[x++] = "20110129 29/1-30/1: 家長日";
dA[x++] = "20110130 29/1-30/1: 家長日";
dA[x++] = "20110131 31/1: 家長日補假,放假1天";


dA[x++] = "20110201 1/2: 農曆年假開始(至12/2)";
dA[x++] = "20110215 15/2: 中七畢業試開始(至3/3)";

dA[x++] = "20110303 3/3: 專題研習口頭報告綵排";
dA[x++] = "20110312 12/3: 專題研習口頭報告日";
dA[x++] = "20110322 22/3: 中三下學期統測開始(至25/3)";
dA[x++] = "20110323 23/3: 中一二下學期統測開始(至25/3)";



dA[x++] = "20110401 1/4: ATEC課取消(ATEC開放日)";
dA[x++] = "20110404 4/4: ATEC課取消(ATEC開放日)";
dA[x++] = "20110405 5/4: 清明節,放假1天";
dA[x++] = "20110408 8/4: 校外學習日";
dA[x++] = "20110411 11/4: 改為星期五課堂、ATEC課取消";
dA[x++] = "20110412 12/4: 中三級全港性系統評估(中英文說話評估)";
dA[x++] = "20110413 13/4: 中三級全港性系統評估(中英文說話評估)";
dA[x++] = "20110420 20/4: 福音營(至22/4)";
dA[x++] = "20110421 21/4: 復活節假期開始(至28/4)";
dA[x++] = "20110429 29/4: 教師發展日";


dA[x++] = "20110502 2/5: 勞動節翌日,放假1天";
dA[x++] = "20110506 6/5: 中三家長晚會";
dA[x++] = "20110509 9/5: 教師發展日";
dA[x++] = "20110510 10/5: 佛誕節,放假1天";


dA[x++] = "20110601 1/6: 中三至六學年考試開始(至17/6)";
dA[x++] = "20110606 6/6: 端午節,放假1天";
dA[x++] = "20110610 10/6: 中七畢業禮；中一二學年考試開始(至17/6)";
dA[x++] = "20110622 22/6: 中三級全港性系統評估(數學,中文及英文筆試)";
dA[x++] = "20110623 23/6: 中三級全港性系統評估(數學,中文及英文筆試)";
dA[x++] = "20110620 20/6: 試後活動開始(至7/7)";
dA[x++] = "20110630 30/6: 高級程度會考放榜";


dA[x++] = "20110701 1/7: 特區成立紀念日,放假1天";
dA[x++] = "20110706 6/7: 結業禮";

dA[x++] = "20110707 7/7: 中一新生註冊";
dA[x++] = "20110708 8/7: 中一新生註冊<br>及舊生註冊";
dA[x++] = "20110711 11/7: 暑假開始(至31/8)";
dA[x++] = "20110712 12/7: 中一新生入學試";








var pageLoaded = 0; window.onload = function() {pageLoaded = 1;}
function loaded(i,f) {if (document.getElementById && document.getElementById(i) != null) f(); else if (!pageLoaded) setTimeout('loaded(\''+i+'\','+f+')',100);
}
function monthlength(month,year) {var dd = new Date(year, month, 0);return dd.getDate();}

var moy = ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'];
var today = new Date();var selDate = today.getFullYear()+getmmdd(today.getMonth()+1,today.getDate());

function dispCal(yy,mm) {

if (mm < 0 || mm > 12) {alert('month must be between 1 and 12'); return false;}
if (yy != 0 && (yy < 1901 || yy > 2100)) {alert('year must be after 1900 and before 2101'); return false;}


var dow = ['<font style="color:black;">日<\/font>','一','二','三','四','五','六'];
var calendar = new Date();
var today = calendar.getDate();
calendar.setDate(1);

if (yy > 1900)
  calendar.setFullYear(yy);
if (mm > 0)
  calendar.setMonth(mm - 1);

var yy = year = calendar.getFullYear();
var month = calendar.getMonth();
calendar.setDate(today);
var weekday = calendar.getDay();
var daysInMonth = monthlength(month+1,year);

var hilite_start = '<td width="30" style="background:' + todaybg + '" align="center">';
var hilite_start_sun = '<td width="30" style="background: pink" align="center">';
var td_start = '<td width="30" align="center">';
var td_start_sun = '<td width="30" align="center" style="background:#FFECFF">';



if (document.getElementById) {
  var mmb = month;
  mm = month + 1;
  var yya = yyb = yy;
  if (mmb <1) {mmb += 12; yyb--;}
  var mma = month + 2;
  if (mma > 12) {mma -= 12; yya++;}
  var yb = yy -1; var ya = yy +1;

/** 
var cal = '<table style="font-size:9pt;" border="0" cellspacing="0" cellpadding="2" width="160"><tr><td><a href="#" onclick="if (cala = dispCal('+yb+','+mm+')) {document.getElementById(\'cal\').innerHTML = cala; return false;}"><!--上一年--></a></td><td><a href="#" onclick="if (cala = dispCal('+yyb+','+mmb+')) {document.getElementById(\'cal\').innerHTML = cala; return false;}">上月</a></td><td align="right"><a href="#" onclick="if (cala = dispCal('+yya+','+mma+')) {document.getElementById(\'cal\').innerHTML = cala; return false;}">下月</a></td><td align="right"><a href="#" onclick="if (cala = dispCal('+ya+','+mm+')) {document.getElementById(\'cal\').innerHTML = cala; return false;}"><!--下一年--></a></td></tr></table>';
**/

}
/** 
else {cal += '<div style="font-size:9pt;"> </div>';}
**/



var cal = '<div id="cal"><div style="font-family:Arial; font-size:8pt; border:0pt solid #cccccc;height:140px;width:165px"><table style="font-size:8pt;border-bottom:1pt solid #cccccc;border-left:1pt solid #cccccc;border-right:1pt solid #cccccc;" border="0" cellspacing="0" cellpadding="2" align="center"><tr><td style="background:' + headbg + '" align="center"><a href="#" onclick="if (cala = dispCal('+yyb+','+mmb+')) {document.getElementById(\'cal\').innerHTML = cala; return false;}"><b>&lt;&lt;<\/b><\/a><\/td><td colspan="5" style="background:' + headbg + '" align="center"><b>' + moy[month]  + ' ' + year + '<\/b><\/td><td style="background:' + headbg + '" align="center"><a href="#" onclick="if (cala = dispCal('+yya+','+mma+')) {document.getElementById(\'cal\').innerHTML = cala; return false;}"><b>&gt;&gt;<\/b></a><\/td><\/tr><tr>';

for(dex=0; dex < 7; dex++) {
if (dex == 0)
  cal += td_start_sun + dow[dex] + '</td>';
else
  cal += td_start + dow[dex] + '</td>';
}

cal += '<\/tr><tr>';
var day2 = today;

for (dex = today; dex > 6; dex -=7) day2 = dex;
weekday -= day2 - 1;

while (weekday < 0)
  weekday += 7;


//blanks in the first week
for(dex=0; dex < weekday; dex++)
if (dex == 0)
  cal += td_start_sun + ' <\/td>';
else
  cal += td_start + ' <\/td>';

//days in month
for(dex=1; dex <= daysInMonth; dex++) {

if(weekday == 7) {cal += '</tr><tr>'; weekday = 0;}

//highlight today
if(selDate==year+getmmdd(month+1,dex)) {

  if (weekday == 0)
    cal += hilite_start_sun;
  else
    cal += hilite_start;

cal += '<span '+clickDate(dex,month,year) + '>'+ dex + '<\/span><\/td>';
}


else if (weekday == 0)
  cal += td_start_sun + '<span '+clickDate(dex,month,year) + '>' + dex + '<\/span><\/td>';
else
  cal += td_start + '<span '+clickDate(dex,month,year) + '>' + dex + '<\/span><\/td>';


weekday += 1;
}


//remaning blanks in the last week
for(dex=weekday; dex < 7; dex++)
if (dex==0)
  cal += td_start_sun + '<\/td>';
else
  cal += td_start + '<\/td>';

cal += '<\/tr><\/table><\/div>';

cal += '</div>';
return cal;
}


function start() {var x = '<div id="calDate" style="color:blue;font-size:8pt; border:1pt solid #cccccc;height:20px;width:165px"><\/div>'; var y = ''; if (tb == 't') y = x + dispCal(0,0); else y = dispCal(0,0) + x; document.getElementById('calendar').innerHTML = y; ev();}

loaded('calendar',start);
function clickDate(day, month, year) {var ct = nextDate(year + getmmdd(month+1,day));if (ct == '') ct = nextDate('0000' + getmmdd(month+1,day));if (ct == '') return 'style="color:'+textclr+'"'; else return 'style="font-size:9pt;text-decoration:underline;font-weight: bold;cursor:pointer;color:'+linkclr+'" onmouseover="selDate = '+year+ getmmdd(month+1,day)+'; isDate(' + day + ',' + month + ',' + year + ');selDate=today.getFullYear()+getmmdd(today.getMonth()+1,today.getDate());return false;"';}

function isDate(dayVal,monthVal,yearVal) {var ct = nextDate(yearVal + getmmdd(monthVal+1,dayVal));if (ct == '') ct = nextDate('0000' + getmmdd(monthVal+1,dayVal));if (ct == '') ct = noMessage;document.getElementById('calDate').innerHTML = ct; return false;}


function nextDate(yymmdd) {var x = dA.length;for (var i = 0; i < x; i++) {if (dA[i].substr(0,8) == yymmdd) return dA[i].substr(8);}return '';}


function getmmdd(mm,dd) {return (mm > 9 ? '' + mm : '0' + mm) + (dd > 9 ? dd : '0' + dd);}


function ev() {var ct = nextDate(selDate);var ct = nextDate(selDate);if (ct == '') ct = nextDate('0000' + selDate.substr(4));if (ct == '') ct = noMessage; document.getElementById('calDate').innerHTML = ct;}
