﻿var __ATCalendarWin;
var __ATDateTextBox;
var __ATHideTopObjects="";
var __ATAFrmSet;
var __ATAFrmSet_ORows;
var __ATHideCal =true;

//
function __ATShowDatePickerPopup(strDatePickerId,event){    

	if(event==null) return false;
	event.cancelBubble = true;
	
	var objPicker
	//define IE or FireFox
	if (event.target) {
			objPicker = event.target
	} else {
	objPicker = event.srcElement
	}
	
	//find <A>
	if (document.getElementById&&!document.all){
		while(objPicker.nodeName!='A'){
			objPicker=objPicker.parentNode;
		}
		var objContainer=objPicker.parentNode;
		var objTarget=objPicker.previousSibling;
	}
	else{
		while(objPicker.tagName!='A'){
			objPicker=objPicker.parentElement;
		}
		var objContainer=objPicker.parentElement;
		var objTarget=objPicker.previousSibling;
	}	
	
	__ATDateTextBox = objTarget;

	if((__ATDateTextBox.disabled)||(__ATDateTextBox.readOnly)){
		return;
	}

	var aryPos = __ATGetObjectPos(objTarget);
	var intLeft = aryPos[0];
	var intTop = aryPos[2];
	if(__ATCalendarWin==null){
		__ATCalendarWin=document.getElementById(strDatePickerId);
	}

	if(document.addEventListener){
		document.addEventListener("click",__ATHideCalendar,false);
	}
	else{
		document.attachEvent("onclick",__ATHideCalendar);
	}
	
	//initial value
	curDayCell = -1;
	HiLiteCell = -1;
	gstrCal_TYPE = 'null';
	
	if(__ATDateTextBox.getAttribute("CalMonthsString")==null){
		arymonths = document.getElementsByName("GSSCalMonthsString").item(0).value.split(",");}
	else{
		arymonths = __ATDateTextBox.getAttribute("CalMonthsString").split(",");}
	
	if(__ATDateTextBox.getAttribute("CalWeekDayString")==null){	
		arydays = document.getElementsByName("GSSCalWeekDayString").item(0).value.split(",");}
	else{
		arydays = __ATDateTextBox.getAttribute("CalWeekDayString").split(",");}
	
	if(__ATDateTextBox.getAttribute("CalTodayString")==null){	
		strToday = document.getElementsByName("GSSCalTodayString").item(0).value;}
	else{
		strToday = __ATDateTextBox.getAttribute("CalTodayString");}
	
	if(__ATDateTextBox.getAttribute("CalYearString")==null){	
		strYear = document.getElementsByName("GSSCalYearString").item(0).value;}
	else{
		strYear = __ATDateTextBox.getAttribute("CalYearString");}
	
	if(__ATDateTextBox.getAttribute("CalYearSelectType")==null){	
		intYearSelectionType = document.getElementsByName("GSSCalYearSelectType").item(0).value;}
	else{
		intYearSelectionType = __ATDateTextBox.getAttribute("CalYearSelectType");}
		
	if(__ATDateTextBox.getAttribute("CalYearSelectStartToEnd")==null){	
		strYearSelectStartToEnd = document.getElementsByName("GSSCalYearSelectStartToEnd").item(0).value;}
	else{
		strYearSelectStartToEnd = __ATDateTextBox.getAttribute("CalYearString");}
					
	__ATCalendarWin.style.position="absolute";
	//__ATCalendarWin.style.pixelTop=intTop+24;
	__ATCalendarWin.style.top= (intTop + 24) + "px";
	__ATCalendarWin.style.left =intLeft + "px";
	__ATCalendarWin.style.display = "";	
	__ATSetCalendar();
	var intBTop = __ATCalendarWin.style.pixelTop;
	var intETop = __ATCalendarWin.style.pixelTop + __ATCalendarWin.style.posHeight;
	var intBLeft = __ATCalendarWin.style.pixelLeft;
	var intELeft = __ATCalendarWin.style.pixelLeft + __ATCalendarWin.style.posWidth;

	__ATAdjustFrameSetRows(intETop);
	__ATControlTopObjects(__ATCalendarWin,intBLeft,intELeft,intBTop,intETop);
	var strDateBoxID=objTarget.id;
	if(strDateBoxID=="") strDateBoxID=objTarget.name;
	__ATHideCal=false; 
	return false;
}

//當lost focus之後要隱藏小月曆
function __ATHideCalendar(event){

	//document.getElementById("TextBox1").value = __ATHideCal + "-" + flg + "-" + event.target.id;
	if(document.getElementById&&!document.all){
		if(__ATHideCal && event.target.id!=null && event.target.id!="")return;}
	else{
		if(__ATHideCal && event.srcElement.id!=null && event.srcElement.id!="")return;}
		
	if(document.getElementById&&!document.all){

		var evt = document.createEvent("MouseEvents");
  	evt.initMouseEvent("click", false, false, window,0, 0, 0, 0, 0, false, false, false, false, 0, null);
		//document.dispatchEvent(evt);
	}
	else{
		document.detachEvent("onclick",__ATHideCalendar);
	}
	__ATCalendarWin.style.display = "none";
	if(__ATAFrmSet!=null){
		__ATAFrmSet.rows = __ATAFrmSet_ORows;
	}
	if(__ATHideTopObjects=="") return false;
	var aryHideTopObjects = __ATHideTopObjects.split(",");
	__ATHideTopObjects="";
	for(var i=0;i<aryHideTopObjects.length;i++){
		var objControl = document.getElementById(aryHideTopObjects[i]);
		objControl.style.visibility = "visible";
	}
}

//小月曆所涵蓋的範圍內把其他會影響的物件隱藏起來
function __ATControlTopObjects(vobjMe,vintBLeft,vintELeft,vintBTop,vintETop){
		var colTopTypes = new Array("SELECT","OBJECT", "IFRAME", "APPLET","EMBED");
		for (var i=0; i<colTopTypes.length; i++)	{
			var colTopObjects = document.getElementsByTagName(colTopTypes[i]);
			
			for (var j=0; j<colTopObjects.length; j++){
				var objItem = colTopObjects[j];
				var aryPos = __ATGetObjectPos(objItem);
				var blnAllowHPos,blnAllowVPos;
				if((aryPos[0]>vintELeft) || (aryPos[1]<vintBLeft)){
					blnAllowHPos = true;}
				else{
					blnAllowHPos = false;}

				if((aryPos[2]>vintETop) || (aryPos[3]<vintBTop)){
					blnAllowVPos = true;}
				else{
					blnAllowVPos = false;}
				if((vobjMe.id!=objItem.id) && (!blnAllowHPos) && (!blnAllowVPos) 
					&& (objItem.style.visibility!="hidden") && (objItem.style.display!="none")
					&& (objItem.id!="DynaCal_cboMonth")&&(objItem.id!="DynaCal_cboYEAR")){
						__ATHideTopObjects += "," + objItem.id;
						objItem.style.visibility = "hidden";
				}
			}
		}
		if(__ATHideTopObjects.substring(0,1)==","){
			__ATHideTopObjects = __ATHideTopObjects.substr(1);
		}
}


function __ATAdjustFrameSetRows(vintMinHeight){	
	var objCurrentFrame = document.parentWindow;
	//判斷是否有使用Frame切割畫面
	if(objCurrentFrame==null) return;
	var intWindowHeight = document.body.clientHeight;	//取得目前視窗大小
	if(vintMinHeight>intWindowHeight){
		var strCurrentFrameName = __ATGetControlUniqueID(objCurrentFrame);
		if(strCurrentFrameName=="") return;
		var intCurrentFrameIndex = -1;
		var objFrameSet=objCurrentFrame.parent.document.all[strCurrentFrameName].parentElement;
		if(objFrameSet.parentElement!=null){
			if(objFrameSet.parentElement.tagName=="FRAMESET"){
				strCurrentFrameName = __ATGetControlUniqueID(objFrameSet);
				objFrameSet = objFrameSet.parentElement;
			}
		}
		var colFrames = objFrameSet.children;

		for(var i=0;i<colFrames.length;i++){
			if(colFrames[i].uniqueID==strCurrentFrameName){
				intCurrentFrameIndex=i;
				break;
			}
		}
		__ATAFrmSet = objFrameSet;
		__ATAFrmSet_ORows = objFrameSet.rows;
		if(__ATAFrmSet_ORows=="") return;
		var aryRows = objFrameSet.rows.split(",");
		aryRows[intCurrentFrameIndex] = vintMinHeight;
		objFrameSet.rows = aryRows.toString();
	}
}