var ns6=document.getElementById&&!document.all
var ie4=document.all
var xmlhttp2 = null;
var pollingObj = new Polling();
var calendarObj = new Calendar();
var pollingResultObj = new PollingResult();

var Current_Date = new Date();
var Current_Month = Current_Date.getMonth();

var Days_in_Month = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var Month_Label = new Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
//var C_Month_Label = new Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
var C_Month_Label = new Array('一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月');
var calendarImgPath = 'images/calendar/'
var pollingImgPath = 'images/polling/'
var cellWidth = 14;
var cellHeight = 12;
var monthMaxInterval = 3;
var monthMinInterval = -3;
var monthNav = 0;

var Current_Year = Current_Date.getYear();
if (Current_Year < 1000)
Current_Year+=1900

var Today = Current_Date.getDate();

function getxmlHttpObj() {
	// code for Mozilla, etc.
	if (window.XMLHttpRequest) {
		xmlhttp=new XMLHttpRequest();
	}
	// code for IE
	else if (window.ActiveXObject) {
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	return xmlhttp;
}

function Polling(){
	this.pic = "";
	this.question = "";
	this.answer = new Array();
	this.xmlhttp=null;
}

function PollingResult(){
	this.question = "";
	this.answer = new Array();
	this.result = new Array();
	this.xmlhttp=null;
}

function Calendar(){
	this.year = "";
	this.month = "";
	this.calEvents = new Array();
	this.xmlhttp=null;
}

function sendHttpRequest(inObj, url, method, callBackFunction){
	inObj.xmlhttp = getxmlHttpObj();
	if (inObj.xmlhttp) {
		inObj.xmlhttp.onreadystatechange = callBackFunction;
		inObj.xmlhttp.open(method,url,true);
		inObj.xmlhttp.send(null);
	}
}

function getNodeValue(obj,tag)
{
	try {
		return obj.getElementsByTagName(tag)[0].firstChild.nodeValue;
	} catch(err) {
		return "";
	}
}

function getEvents() {
	// if xmlhttp shows "loaded"
	if (calendarObj.xmlhttp.readyState==4)  {
		// if "OK"
		if (calendarObj.xmlhttp.status==200)  {
			doc = calendarObj.xmlhttp.responseXML;
			var days = doc.getElementsByTagName('day');
			delete calendarObj.calEvents;
			calendarObj.calEvents = new Array();
			for (var i=0;i<days.length;i++)
			{
				var events = days[i].getElementsByTagName('event');
				for (var j=0;j<events.length;j++)
				{
					var tmpObj = new Object();
					tmpObj.date = getNodeValue(days[i],'date');
					tmpObj.uid = getNodeValue(events[j],'id');
					tmpObj.etype = getNodeValue(events[j],'type');
					tmpObj.query = getNodeValue(events[j],'query');
					calendarObj.calEvents.push(tmpObj);
				}
			}
		}
		else  {
			alert("Problem retrieving events:" + calendarObj.xmlhttp.statusText)
		}
		Make_Calendar(calendarObj.year, calendarObj.month);
	}
}

function getPolling() {
	// if xmlhttp shows "loaded"
	if (pollingObj.xmlhttp.readyState==4)  {
		// if "OK"
		if (pollingObj.xmlhttp.status==200)  {
			doc = pollingObj.xmlhttp.responseXML;
			if (doc.getElementsByTagName('pic').length > 0)
			{
				pollingObj.pic = getNodeValue(doc,'pic');
			}
			else {
				pollingObj.question = getNodeValue(doc,'question');
				pollingObj.answer = new Array();

				var answers = doc.getElementsByTagName('answer');
				for (var i=0;i<answers.length;i++)
				{
					pollingObj.answer.push(answers[i].firstChild.nodeValue);
				}
			}
		}
		else  {
			alert("Problem retrieving polling:" + pollingObj.xmlhttp.statusText)
		}
		Make_Survey(pollingObj);
	}
}

function getPollingResult() {
	// if xmlhttp shows "loaded"
	if (pollingResultObj.xmlhttp.readyState==4)  {
		// if "OK"
		if (pollingResultObj.xmlhttp.status==200)  {
			doc = pollingResultObj.xmlhttp.responseXML;
			pollingResultObj.question = getNodeValue(doc,'question');
			pollingResultObj.answer = new Array();
			pollingResultObj.result = new Array();

			var answers = doc.getElementsByTagName('answer');
			for (var i=0;i<answers.length;i++)
			{
				pollingResultObj.answer.push(getNodeValue(answers[i],'name'));
				pollingResultObj.result.push(getNodeValue(answers[i],'result'));
			}
		}
		else  {
			alert("Problem retrieving polling result:" + pollingResultObj.xmlhttp.statusText)
		}
		Make_Survey_Result(pollingResultObj);
	}
}

function Header(Year, Month) {
	if (Month == 1) {
		Days_in_Month[1] = ((Year % 400 == 0) || ((Year % 4 == 0) && (Year % 100 !=0))) ? 29 : 28;
	}
	if (charset == 1)
		var Header_String = '<span class="MonthName">'+ Month_Label[Month] + ' </span><span class="YearName">' + Year + '</span>';
	else
		var Header_String = '<span class="MonthName">'+ C_Month_Label[Month] + ' </span><span class="YearName">' + Year + '</span>';
	return Header_String;
}

function Make_Calendar(Year, Month) {
   var First_Date = new Date(Year, Month, 1);
   var Heading = Header(Year, Month);
   var First_Day = First_Date.getDay() + 1;
   if (((Days_in_Month[Month] == 31) && (First_Day >= 6)) ||
       ((Days_in_Month[Month] == 30) && (First_Day == 7))) {
      var Rows = 6;
   }
   else if ((Days_in_Month[Month] == 28) && (First_Day == 1)) {
      var Rows = 6;
   }
   else {
      var Rows = 6;
   }

   var HTML_String = '';

   HTML_String += '<table width="100%" border="0" cellpadding="0" cellspacing="0" bordercolor="#e2e2e2" bgcolor="#FFFFFF">'

   HTML_String += '<tr>'
   HTML_String += '<td colspan="7">'
   HTML_String += '<table width="100%" border="0" cellpadding="0" cellspacing="0">'
   HTML_String += '<tr><td height="5"></td></tr>';
   HTML_String += '<tr bgcolor="FFFFFF" bordercolor="FFFFFF">'
   //HTML_String += '<td align="left"><a href="javascript:Skip(\'-\')" class="caption"><<</a></td>';
   HTML_String += '<td align="left"><a href="javascript:Skip(\'-\')"><img src="images/activities_right_arrow.gif" border="0"></a></td>';
   HTML_String += '<td colspan=5 valign="middle" align="center" class="text_cal_mth">' + Heading + '</td>';
   //HTML_String += '<td align="right"><a href="javascript:Skip(\'+\')" class="caption">>></a></td>';
   HTML_String += '<td align="right"><a href="javascript:Skip(\'+\')"><img src="images/activities_left_arrow.gif" border="0"></a></td>';
   HTML_String += '</tr>';
   HTML_String += '<tr><td height="5"></td></tr>';
   HTML_String += '</table>';
   HTML_String += '</td>'
   HTML_String += '</tr>'

   HTML_String += '<tr valign="middle" align="center">'
   HTML_String += '<td align="center" class="text_cal_bold_red" width="14%" height="'+cellHeight+'">S</td>'
   HTML_String += '<td align="center" class="text_cal_bold" width="14%" height="'+cellHeight+'">M</td>'
   HTML_String += '<td align="center" class="text_cal_bold" width="14%" height="'+cellHeight+'">T</td>'
   HTML_String += '<td align="center" class="text_cal_bold" width="14%" height="'+cellHeight+'">W</td>'
   HTML_String += '<td align="center" class="text_cal_bold" width="14%" height="'+cellHeight+'">T</td>'
   HTML_String += '<td align="center" class="text_cal_bold" width="14%" height="'+cellHeight+'">F</td>'
   HTML_String += '<td align="center" class="text_cal_bold" width="14%" height="'+cellHeight+'">S</td>'
   HTML_String += '</tr>'
   HTML_String += '<tr>'
   HTML_String += '<td colspan="7">'

   HTML_String += '<table width="100%" border="0" cellpadding="1" cellspacing="1" bordercolor="#e2e2e2" bgcolor="#f1f1f1">'

   var Day_Counter = 1;
   var Loop_Counter = 1;
   for (var j = 1; j <= Rows; j++) {
      HTML_String += '<tr ALIGN="center" VALIGN="middle" width="14" height="14">';
      for (var i = 1; i < 8; i++) {
         if ((Loop_Counter >= First_Day) && (Day_Counter <= Days_in_Month[Month])) {
            if ((Day_Counter == Today) && (Year == Current_Year) && (Month == Current_Month)) {
               HTML_String += formattedDay(Year,Month,Day_Counter,i);
            }
            else {
               HTML_String += formattedDay(Year,Month,Day_Counter,i);
            }
            Day_Counter++;
         }
         else {
            HTML_String += '<td width="14%" height="'+cellHeight+'">&nbsp;</td>';
         }
         Loop_Counter++;
      }
      HTML_String += '</tr>';
   }
   HTML_String += '</table>';
   HTML_String += '</td>'
   HTML_String += '</tr>'
   HTML_String += '</table>';
   cross_el=ns6? document.getElementById("Calendar") : document.all.Calendar
   cross_el.innerHTML = HTML_String;
}

function formattedDay(year,month,day,col) {
	month = parseInt(month+1);
	if (month < 10) month='0'+month;
	var dayStr = day;
	if (day < 10) dayStr='0'+day;
	var date = year + '-' + month + '-' + dayStr;
	var holiday = "";
	if (col == 1) holiday = "_red";
	var counter = 0;
	var currUID = "";
	var currType = "";
	var currQuery = "";
	for (var i=0; i<calendarObj.calEvents.length; i++) {
		if (calendarObj.calEvents[i].date==date) {
			counter++;
			currUID = calendarObj.calEvents[i].uid;
			currType = calendarObj.calEvents[i].etype;
			currQuery = calendarObj.calEvents[i].query;
		};
	};
	if (counter > 0)
		return '<td align="center" valign="middle" bgcolor="#FFEC70" class="text_cal' + holiday + '" style="cursor:pointer;" onClick="getURL('+currUID+','+currType+','+year+','+month+','+day+','+counter+',\''+currQuery+'\');" width="14%" height="'+cellHeight+'">' + day + '</td>';
	else
		return '<td align="center" valign="middle" bgcolor="#FFFFFF" class="text_cal' + holiday + '" width="14%" height="'+cellHeight+'">' + day + '</td>';
};

function getURL(uid, type, year, month, day, count, query) {
	if (charset == 2)
		charsetStr = "c-";
	else
		charsetStr = "";
	if (count > 1) {
		openWin = window.open("calendar/" + charsetStr + "eventlist.php?month="+month+"&year="+year+"&day="+day,"eventList","top=0,left=0,width=350,height=200,buttons=no,scrollbars=yes,location=no,menubar=no,resizable=yes,status=no,directories=no,toolbar=no");
		openWin.moveTo(200,150);
		openWin.focus();
	}
	else {
		var foldername = "new/";
		if (query == "a")
			foldername = "activities/";
		var pagename = "seminars";
		if (type == 1)
			pagename = "workshops";
		else if (type == 2)
			pagename = "other";
		document.location = "/" + foldername + charsetStr + pagename + ".php#" + uid;
	}
}

function MakeCalendar() {
   if (!ie4&&!ns6) return;
   //var Mid_Screen = Math.round(document.body.clientWidth / 2);
   calendarObj.year = Current_Year;
   calendarObj.month = Current_Month;
   Make_Calendar(calendarObj.year, calendarObj.month);
   sendHttpRequest(calendarObj, "calendar/calendar.php?month=" + (calendarObj.month+1) + "&year=" + calendarObj.year + "&" + new Date().getTime(), "GET", getEvents)
}


function Skip(Direction) {
   if (Direction == '+') {
	  if (monthNav>=monthMaxInterval) return;
      if (calendarObj.month == 11) {
         calendarObj.month = 0;
         calendarObj.year++;
      }
      else {
         calendarObj.month++;
      }
	  monthNav++;
   }
   else {
	  if (monthNav<=monthMinInterval) return;
      if (calendarObj.month == 0) {
         calendarObj.month = 11;
         calendarObj.year--;
      }
      else {
         calendarObj.month--;
      }
	  monthNav--;
   }
   sendHttpRequest(calendarObj, "calendar/calendar.php?month=" + (calendarObj.month+1) + "&year=" + calendarObj.year + "&" + new Date().getTime(), "GET", getEvents);
}
/*
function Make_Survey(dataObj) {
	if (!charset || charset == 1)
	{
		prefix = "";
		meberStr = "QTSA member?";
		sYes = "Yes";
		sNo = "No";
	} else {
		prefix = "c-";
		meberStr = "QTSA 會員?";
		sYes = "是";
		sNo = "否";
	}

	var HTML_String = '<img src="'+ pollingImgPath + 'spacer.gif" width="155" height="4" border=0><table BORDER=0 CELLSPACING=0 cellpadding=0 width=149>';
	if (dataObj.pic)
	{
		//HTML_String += '<tr><td style="padding:2px 0px" align=center><a href="http://www.hkwtia.org/nfc2007" target=_blank><img src="' + pollingImgPath + 'web_button.jpg" border=0></a></td></tr>'
		//HTML_String += '<tr><td style="padding:2px 0px"><img src="' + dataObj.pic + '" border=0 width=149 height=70></td></tr>'
		HTML_String += '<tr><td><img src="' + dataObj.pic + '" border=0 width=149></td></tr>'
	}
	else {
		HTML_String += '<tr><td class="center" colspan=3><img src="'+ pollingImgPath + prefix + 'poll_title.gif" width="149" height="23"></td></tr>'
		HTML_String += '<tr><td background="'+ pollingImgPath + 'poll_left.gif" width="10" rowspan=2><img src="'+ pollingImgPath + 'spacer.gif" width="10" height="10"></td>'
		HTML_String += '<td width=129 class=caption>' + dataObj.question + '<br>';
		HTML_String += '<form name="surveyform" style="display:inline"><table width="129" border="0" cellspacing="0" cellpadding="0">';
		for(var i=0; i < dataObj.answer.length; i++)
			HTML_String += '<tr><td width=10 class="left"><input type="radio" id="answer" name="answer" value="' + (i+1) + '"></td><td class="poll left" width=119>' + dataObj.answer[i] + '</td></tr>';
		HTML_String += '<tr><td class=poll colspan=2>' + meberStr + '</td></tr>';
		HTML_String += '<tr><td class=poll colspan=2><input type="radio" id="ismember" name="ismember" value="true">' + sYes + ' <input type="radio" id="ismember" name="ismember" value="false">' + sNo + '</td></tr>';
		HTML_String += '</table></form>';
		HTML_String += '</td><td background="'+ pollingImgPath + 'poll_right.gif" width="10" rowspan=2><img src="'+ pollingImgPath + 'spacer.gif" width="10" height="10"></td></tr>';
		HTML_String += '<tr><td class="right"><a href="#" onClick="return SubmitSurveyResult()"><img src="'+ pollingImgPath + prefix + 'btn_submit.gif" border=0></a></td></tr>'
		HTML_String += '<tr><td width="10"><img src="'+ pollingImgPath + 'poll_left_bottom.gif" width="10" height="10"></td>'
		HTML_String += '<td width="129" align="center"><img src="'+ pollingImgPath + 'poll_bottom.gif" width="129" height="10"></td>'
		HTML_String += '<td width="10"><img src="'+ pollingImgPath + 'poll_right_bottom.gif" width="10" height="10"></td></tr>'
	}
	HTML_String += '</table><img src="'+ pollingImgPath + 'spacer.gif" width="155" height="4" border=0>';
	cross_el=ns6? document.getElementById("Survey") : document.all.Survey
	cross_el.innerHTML = HTML_String;
}

function Make_Survey_Result(dataObj) {
	if (!charset || charset == 1)
		prefix = "";
	else
		prefix = "c-";

	var HTML_String = '<img src="'+ pollingImgPath + 'spacer.gif" width="155" height="4" border=0><table BORDER=0 CELLSPACING=0 cellpadding=0 width=149>';
	HTML_String += '<tr><td class="center" colspan=3><img src="'+ pollingImgPath + prefix + 'poll_title.gif" width="149" height="23"></td></tr>'
	HTML_String += '<tr><td background="'+ pollingImgPath + 'poll_left.gif" width="10"><img src="'+ pollingImgPath + 'spacer.gif" width="10" height="10"></td>'
	HTML_String += '<td width=129 class=caption>' + dataObj.question + '<br>';
	HTML_String += '<table width="129" border="0" cellspacing="0" cellpadding="0">';
	for(var i=0; i < dataObj.answer.length; i++)
		HTML_String += '<tr class=poll><td class=left height=20>' + dataObj.answer[i] + '</td><td class=right>' + dataObj.result[i] + '</td></tr>'
	HTML_String += '</table>';
	HTML_String += '</td><td background="'+ pollingImgPath + 'poll_right.gif" width="10"><img src="'+ pollingImgPath + 'spacer.gif" width="10" height="10"></td></tr>';
	HTML_String += '<tr><td width="10"><img src="'+ pollingImgPath + 'poll_left_bottom.gif" width="10" height="10"></td>'
	HTML_String += '<td width="129" align="center"><img src="'+ pollingImgPath + 'poll_bottom.gif" width="129" height="10"></td>'
	HTML_String += '<td width="10"><img src="'+ pollingImgPath + 'poll_right_bottom.gif" width="10" height="10"></td></tr>'
	HTML_String += '</table><img src="'+ pollingImgPath + 'spacer.gif" width="155" height="4" border=0>';
	cross_el=ns6? document.getElementById("Survey") : document.all.Survey
	cross_el.innerHTML = HTML_String;
}

function MakeSurvey() {
	if (!ie4&&!ns6) return
	if (!charset) charset = 1;

	sendHttpRequest(pollingObj, "/polling/polling.php?charset=" + charset + "&" + new Date().getTime(), "GET", getPolling);
}

function SubmitSurveyResult() {
	var resultValue = null;
	var ismember = null;
	if (!charset) charset = 1;
	for (var i=0; i < surveyform.answer.length; i++)
		if (surveyform.answer[i].checked)
			resultValue = surveyform.answer[i].value;
	for (var i=0; i < surveyform.ismember.length; i++)
		if (surveyform.ismember[i].checked)
			ismember = surveyform.ismember[i].value;
	if (resultValue == null)
	{
		if (charset==1)
			alert("Please choose one of the choices");
		else
			alert("請提供您的選擇");
		return false;
	}
	if (ismember == null)
	{
		if (charset==1)
			alert("Are you a QTSA member?");
		else
			alert("您是否QTSA 會員?");
		return false;
	}
	sendHttpRequest(pollingResultObj, "/polling/pollingResult.php?charset=" + charset + "&choice=" + resultValue + "&ismember=" + ismember + "&" + new Date().getTime(), "GET", getPollingResult);
	return false;
}
*/
