var calendarObj;

function initEvent() {
	$('eventPopup').hide();
	$('eventForm').hide();

	calendarObj = new Calendar('eventCalendar');
	calendarObj.setMode('edit');
	//calendarObj.setOnMouseOver('popupInfo');
	//calendarObj.setOnMouseOut('closePopupInfo');
	calendarObj.setDateFunction('loadDateInfo');
	calendarObj.setMonthFunction('loadMonthInfo');
	var today = new Date();
	var date = today.getDate();
	var month = today.getMonth() + 1;
	var year = today.getYear();
	if (year < 1000) year += 1900;
	refreshCalendar(month, year);
	loadDateInfo(date, month, year);
}

function refreshCalendar(month, year) {
	calendarObj.resetEvent();
	loadList();
	calendarObj.makeCalendar(month, year);
}

function loadList() {
	var myAjax = new Ajax.Request('event.xml.php', {
		method: 'get',
		parameters: 'act=getList',
		asynchronous: false,
		onComplete: function (transport) {
			
			var data = transport.responseXML.getElementsByTagName('event');
			for (var i = 0; i < data.length; i++) {
				var date = data[i].getAttribute('date');
				var month = data[i].getAttribute('month');
				var year = data[i].getAttribute('year');
				calendarObj.setEvent(date, month, year, 1);
			}
		}
	});
}


function popupInfo(date, month, year) {
	$('eventPopup').update('<img src="../pictures/loading_16x16.gif" alt="Loading.." />').show();
	var htmlText = '';
	var myAjax = new Ajax.Request('event.xml.php', {
		method: 'get',
		parameters: 'act=getInfo&date='+date+'&month='+month+'&year='+year,
		onComplete: function (transport) {
			var data = transport.responseXML.getElementsByTagName('event');
			for (var i = 0; i < data.length; i++) {
				htmlText += '<h4>'+data[i].getElementsByTagName('title')[0].firstChild.nodeValue.escapeHTML()+'</h4>';
				htmlText += '<p>'+data[i].getElementsByTagName('desc')[0].firstChild.nodeValue.escapeHTML().nl2br()+'</p>'
				//htmlText += '<input type="button" value=" ปิด " onclick="javascript: closePopupInfo();" />';
				htmlText += '<hr />';
			}
			$('eventPopup').update(htmlText);
		}
	});
}

function closePopupInfo() {
	$('eventPopup').hide();
}

function loadMonthInfo(month, year) {
	$('eventForm').hide();
}

var showing = new Array();
var dataInfo = new Array();
function loadDateInfo(date, month, year) {
	showing['date'] = date;
	showing['month'] = month;
	showing['year'] = year;

	$('eventForm').hide();
	$('eventContent').update('<img src="../pictures/loading_16x16.gif" alt="Loading.." /> กำลังโหลดข้อมูล');
	var htmlText = '';
	var myAjax = new Ajax.Request('event.xml.php', {
		method: 'get',
		parameters: 'act=getInfo&date='+date+'&month='+month+'&year='+year,
		onComplete: function (transport) {
			var data = transport.responseXML.getElementsByTagName('event');
			var haveTools = false;
			if (transport.responseXML.getElementsByTagName('eventList')[0].getAttribute('tools') == 'yes') haveTools = true;
			htmlText += '<div id="eventToolbar">';
			htmlText += '<span class="num">พบ <b>' + data.length + '</b> รายการในวันที่ <b>' + calendarObj.getDateString(date, month, year) + '</b></span>';
			htmlText += '<a class="add" href="javascript: showEventForm();">เพิ่มรายการใหม่</a>';
			htmlText += '</div>';
			for (var i = 0; i < data.length; i++) {
				dataInfo[data[i].getAttribute('id')] = data[i];
				htmlText += '<div class="eventItem">';
				htmlText += '<h4>';
				if (data[i].getElementsByTagName('title')[0].firstChild != undefined) htmlText += data[i].getElementsByTagName('title')[0].firstChild.nodeValue.escapeHTML();
				if (haveTools) htmlText += ' [ <a href="javascript: showEventForm('+data[i].getAttribute('id')+');">edit</a> | <a href="javascript: delEvent('+data[i].getAttribute('id')+');">del</a> ]';
				htmlText += '</h4>';
				if (data[i].getElementsByTagName('desc')[0].firstChild != undefined) htmlText += '<p>'+data[i].getElementsByTagName('desc')[0].firstChild.nodeValue.escapeHTML().nl2br()+'</p>';
				htmlText += '</div><hr>';
			}

			$('eventContent').update(htmlText).show();
		}
	});
	
}

function showEventForm(id) {
	var frm = $('eventForm');
	frm.show();
	if (id == undefined) {
		$('eventFormHeader').update('เพิ่มรายการใหม่ในวันที่ ' + calendarObj.getDateString(showing['date'], showing['month'], showing['year']));
		$('btnSubmit').value = 'เพิ่ม';
		frm.act.value = 'add';
		frm.id.value = 0;
		frm.txtTitle.value = '';
		frm.txtDesc.value = '';
	} else {
		$('eventFormHeader').update('แก้ไขรายการในวันที่ ' + calendarObj.getDateString(showing['date'], showing['month'], showing['year']));
		$('btnSubmit').value = 'แก้ไข';
		frm.act.value = 'edit';
		frm.id.value = id;
		frm.txtTitle.value = dataInfo[id].getElementsByTagName('title')[0].firstChild.nodeValue;
		frm.txtDesc.value = dataInfo[id].getElementsByTagName('desc')[0].firstChild.nodeValue;
	}
	frm.bdate.value = showing['date'];
	frm.bmonth.value = showing['month'];
	frm.byear.value = showing['year'];
	frm.down('.eng_button').focus();
}

function formSubmit(frm) {
	var pars = frm.serialize();
	$('btnSubmit').disabled = true;
	$('btnSubmit').addClassName('eng_disabled');
	$('btnSubmit').removeClassName('eng_button');
	$('eventFormStatus').update('<img src="../pictures/loading_16x16.gif" alt="Loading.." /> กำลังตรวจสอบข้อมูล');
	
	var myAjax = new Ajax.Request('event.xml.php', {
		method: 'post',
		parameters: pars,
		onComplete: function (transport) {
			var result = transport.responseXML.getElementsByTagName('result');
			if (result != undefined) result = result[0].getAttribute('result');

			if (result == '1') {
				$('eventFormStatus').update('เรียบร้อยแล้ว');
				if (frm.act.value == 'add')
					alert('เพิ่มเรียบร้อยแล้ว Event จะยังไม่ปรากฎในทันที\nกรุณารอผู้ดูแลระบบมายืนยันอีกครั้ง');
				refreshCalendar(showing['month'], showing['year']);
				loadDateInfo(showing['date'], showing['month'], showing['year']);
			} else {
				$('eventFormStatus').update('ล้มเหลว กรุณาตรวจสอบข้อมูล แล้วลองใหม่อีกครั้ง');
			}
			$('btnSubmit').disabled = false;
			$('btnSubmit').addClassName('eng_button');
			$('btnSubmit').removeClassName('eng_disabled');
		}
	});
}

function delEvent(id) {
	if (!confirm('Do you want to delete this event?')) return;
	$('eventStatus').update('<img src="../pictures/loading_16x16.gif" alt="Loading.." /> กำลังดำเนินการ');
	var myAjax = new Ajax.Request('event.xml.php', {
		method: 'get',
		parameters: 'act=del&id=' + id,
		onComplete: function (transport) {
			var result = transport.responseXML.getElementsByTagName('result')[0].getAttribute('result');
			if (result == '1') {
				$('eventStatus').update('Delete เรียบร้อยแล้ว');
				refreshCalendar(showing['month'], showing['year']);
				loadDateInfo(showing['date'], showing['month'], showing['year']);
				setTimeout("$('eventStatus').update('');", 5000);
			} else {
				$('eventStatus').update('เกิดข้อผิดพลาด กรุณาลองใหม่อีกครั้ง');
				setTimeout("$('eventStatus').update('');", 5000);
			}
		}
	});
}
