// Flat Button
function flatButtonOver(objButton) {
	if (objButton.className != "flatBtnDsd")	{
		objButton.className = "flatBtnOver";
	}
}

function flatButtonOut(objButton) {
	if (objButton.className != "flatBtnDsd")	{
		objButton.className = "flatBtn";
	}
}

// Flat Image Button
function imgOver(objImg) {
	if (objImg.className != "flatBtnDsd")	{
		objImg.className = "flatBtnOver";
	}
}

function imgOut(objImg) {
	if (objImg.className != "flatBtnDsd")	{
		objImg.className = "flatBtn";
	}
}

// Combobox
function getOffsetTop(objElement)
{
	var nTop = 0;
	var objParent = objElement;
	while (objParent != null)
	{
		nTop += objParent.offsetTop;
		objParent = objParent.offsetParent;
	}
	return nTop;	
}

function getOffsetLeft(objElement)
{
	var nLeft = 0;
	var objParent = objElement;
	while (objParent != null)
	{
		nLeft += objParent.offsetLeft;
		objParent = objParent.offsetParent;
	}
	return nLeft;	
}

function syncText(objSelect, objTextbox) {
	var strText = objSelect.options[objSelect.selectedIndex].text;
	var nIndex = strText.lastIndexOf("(");
	if (nIndex > -1) {
		strText = strText.substring(0, nIndex);
	}
	objTextbox.value = strText;	
	
	return strText;
}

function syncSelect(objSelect, objTextbox) {
	var nLength = objSelect.options.length;
	var nSelectedIndex = -1;
	
	for (i = 0; i < nLength; i ++)
	{
		if (objSelect.options[i].text == objTextbox.value) {
			nSelectedIndex = i;
			break;
		}
	}
		
	objSelect.selectedIndex = nSelectedIndex;
	
	return nSelectedIndex;
}

function setComboboxClip(objCombobox, nComboxboxWidth, nScrollWidth)
{
	if (typeof(objCombobox) == "object" && objCombobox != null)
	{
		objCombobox.style.clip = "rect(auto auto auto " + (nComboxboxWidth - nScrollWidth + 2) + ")";
	}
}

// Calendar
var dd = new Date();
var __cal_y = dd.getFullYear();
var __cal_m = dd.getMonth();

var __cal_selyear = __cal_y;
var __cal_selmonth = __cal_m + 1;
var __cal_selday = dd.getDate();

var _cal_current_object = null;

function _gendate(y, m, d)
{
	y = parseInt(y);
	m = parseInt(m);
	d = parseInt(d);
	
	var d = new Date(y,m,d);
	var d2 = d;
	var today = new Date();
	var i = 0;
	var n = d.getDay();
	var curday = d.getDate();
	var curyear = d.getFullYear();
	var curmonth = d.getMonth()+1;
	var tmon;
	spnyear.innerText = d.getFullYear();
	spnmonth.innerText = d.getMonth()+1;
	var ttr,ttd;
	ttr = calmain.insertRow(); 	

	for(i=0; i<n; i++){
		ttd = ttr.insertCell();
		ttd.innerHTML = "";
		ttd.align = "center";
		ttd.style.width = "14%";
	}

	for(i=1; i<38; i++){
		var j = i - 1 + n;
		d2.setDate(i);
		tmon = d2.getMonth() + 1;
		tyear = d2.getFullYear();
		if(j % 7 == 0 && (tmon != curmonth)) return;
		if(j%7 == 0 && i > 1){
			ttr = calmain.insertRow();
		}
		ttd = ttr.insertCell();
		ttd.align = "center";
		ttd.style.width = "14%";
		if(tmon == curmonth){
			if (tmon == __cal_selmonth && tyear == __cal_selyear && i == __cal_selday)
			{
				ttd.style.color = "white";
				ttd.bgColor = "silver";
				ttd.innerHTML= "<a class='nounderline' href=\"javascript:_doSelect(" + tyear + "," + tmon + "," + i + ")\" style=\"color:white\">" + i + "</a>";	
			}
			else
			{
				ttd.innerHTML= "<a class='nounderline' href=\"javascript:_doSelect(" + tyear + "," + tmon + "," + i + ")\" style=\"color:black\">" + i + "</a>";
			}
		}
		else{
			ttd.innerHTML="";
		}
	}
}

function RenderCalendar()
{
	_gendate(__cal_y, __cal_m, 1);
}

function _goToday()
{
	var td = new Date();
	__cal_y = td.getFullYear();
	__cal_m = td.getMonth();
	
	_clearDate();
	
	__cal_selyear = __cal_y;
	__cal_selmonth = __cal_m + 1;
	__cal_selday = td.getDate();

	_gendate(__cal_y, __cal_m, 1);	
}

function _goPrevious(){
	_clearDate();
	if(__cal_m == 0){
		__cal_m = 11;
		__cal_y = __cal_y - 1;
	}
	else{
		__cal_m = __cal_m - 1;
	}

	_gendate(__cal_y, __cal_m, 1);
}

function _goNext(){
	_clearDate();
	if(__cal_m == 11){
		__cal_m = 0;
		__cal_y = __cal_y + 1;
	}
	else{
		__cal_m = __cal_m + 1;
	}
	
	_gendate(__cal_y, __cal_m, 1);
}


function _clearDate(){
	n = calmain.rows.length;
	for (i = 2; i < n; i ++)
	{
		calmain.deleteRow(2);
	}
}

function _doSelect(year, month, day)
{
	__cal_selyear = year;
	__cal_selmonth = month;
	__cal_selday = day;
	
	__cal_m = month - 1;
	__cal_y = year;
	
	_clearDate();
	_gendate(__cal_y, __cal_m, 1);
	
	if (_cal_current_object != null)
	{
		_cal_current_object.value = __cal_selyear + "-" + __cal_selmonth + "-" + __cal_selday;
		
		if (typeof(OnCalendarSelect) == "function")
		{
			OnCalendarSelect();
		}
	}

	if (typeof(HideCalendar) == "function")
		HideCalendar();
}

function UpdateCalendar(obj)
{
	_cal_current_object = obj;
				
	var arrDate = obj.value.split("-");

	var yy = parseInt(arrDate[0]);
	var mm = parseInt(arrDate[1]);
	var dd = parseInt(arrDate[2]);

	var today = new Date();

	if (isNaN(yy) || (yy == ""))
		yy = today.getFullYear();
	else if (yy < 1 || yy > 9999)
		yy = today.getFullYear();

	if (isNaN(mm))
		mm = today.getMonth() + 1;
	else if (mm < 1 || mm > 12)
		mm = today.getMonth() + 1;
		
	if (isNaN(dd))
		dd = today.getDate();
	else if (dd < 1 || dd > 31)
		dd = today.getDate();

	__cal_m = mm - 1;
	__cal_y = yy;

	__cal_selday = dd;
	__cal_selmonth = mm;
	__cal_selyear = yy;

	_clearDate();
	_gendate(__cal_y, __cal_m, 1);
}

function GetSelectYear()
{
	return __cal_selyear;
}

function GetSelectMonth()
{
	return __cal_selmonth;
}

function GetSelectDay()
{
	return __cal_selday;
}
