function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function ChangeFrameWidth(ChangeType)
{
	switch (ChangeType)
	{
		case "FULL":
			top.frmMain.cols = "0,*,0";
			top.frmTool.document.all["ShowMenu"].innerHTML = "<img border=0 src='/A00A_Guardian/ImagesHome/top-li02.gif' name='ddd' onMouseOut='MM_swapImgRestore()' onMouseOver=MM_swapImage('ddd','','/A00A_Guardian/ImagesHome/top-li02v.gif',1) width='94' height='21'>"
			return false;
		case "HALF":
			top.frmMain.cols = "210,*,0";
			top.frmTool.document.all["ShowMenu"].innerHTML = "<img border=0 src='/A00A_Guardian/ImagesHome/top-li.gif' name='ddd' onMouseOut='MM_swapImgRestore()' onMouseOver=MM_swapImage('ddd','','/A00A_Guardian/ImagesHome/top-liv.gif',1) width='94' height='21'>"
			return false;		
	}	
}

/*function UpperCaseInput(MyObj) {
  var MyChar;
  MyChar = String.fromCharCode(event.keyCode);
  if (MyChar >= "A" && MyChar <= "Z") { 
     MyObj.value+=MyChar;
     event.returnValue = false;
  }
}*/

function UpperCaseInput(myObj){
  var InputValue = myObj.value;
  var MyStr=(new String(InputValue)).toUpperCase();
  myObj.value = MyStr;
}



// .......................................................................................................
// 以下供 DataGrid Radio Button 不 PostBack 前端處理使用
// .......................................................................................................

// 全域變數，供畫面中多個DataGrid判別使用
var ActiveTable = "";

// 「選擇」的 Radio Button「ONCLICK」事件使用此 function
// rdoName：所選取的 Radio Button 的「name」
// GridName：Radio Button 所屬的 DataGrid ID（Table ID）
function SelectRow(rdoName, GridName)
{
	// 檢查 HTML 中是否已加入「hidSelectIndex」的 Hidden 欄位
	// 「hidSelectIndex」儲存目前選取第幾列
	if (document.all("hidSelectIndex") == null)
	{ 
		alert("請先於「aspx」網頁加入 <input type=hidden value='<%=cvSelectIndex%>' name=hidSelectIndex> 的 Tag"); 
		return false;
	}
	
	var myRdoSelect = document.all(rdoName);		// 所點選的 Radio Button
	var myGrid = document.all(GridName);			// 點選的 Radio Button 所屬的 Table
	var myTRs = myGrid.getElementsByTagName("tr");		// Table 中「TR」物件的 Collection
	var myInputs = myGrid.getElementsByTagName("input");  	// Table 中「INPUT」物件的 Collection
	
	// 先將所有 Radio Checked 設為 False
	if (new String(myInputs.length) == "undefined")		// 如果只有一個 Radio Button
	{
		myInputs.checked = false;
	}
	else							// 如果有兩個以上的 Radio Button
	{
		
		for(var i = 0; i < myInputs.length; i++)
		{
			if ((myInputs[i].name.indexOf("rdo") != -1) && (myInputs[i].name.indexOf("Select") != -1))
			{ myInputs[i].checked = false;	}
		}
	}

	// 處理「TR」Collection 中「name」= trRow 的物件
	// 「name」= trRow 必須於 C# 「Grid_ItemDataBound」事件中設定
	// 所選擇的 TR 必須將其 Class Name 設為「GridSelected」
	// 其他 TR 需將其 Class Name 設為「GridItem」或「GridAlternate」
	for(var i = 0; i < myTRs.length; i++)
	{
		if (myTRs[i].name == "trRow")
		{
			if (myTRs[i].innerHTML.indexOf(rdoName) != -1){
				myRdoSelect.checked = true;
				myTRs[i].className = 'GridSelected';
				document.all("hidSelectIndex").value = i-1;
				ActiveTable = GridName;
			}else{
				if ((i % 2) == 1)
					myTRs[i].className = 'GridItem';
				else
					myTRs[i].className = 'GridAlternate';
			}
		}
	}
}

// 檢查是否已經選取一筆資料
function IsSelectRow(GridName)
{
	if (ActiveTable != '' && ActiveTable != GridName){return true;}
		
	if (document.all("hidSelectIndex").value == "")
	{
		alert("請選擇一筆資料");
		return false;
	}
	
	return true;
}

// 方法二
// 檢查是否已經選取一筆資料
function IsRowSelected(GridName)
{
	var myGrid = document.all(GridName);			// 點選的 Radio Button 所屬的 Table				
	var myInputs = myGrid.getElementsByTagName("input");  	// Table 中「INPUT」物件的 Collection

	var myRadioButtonList  = new Array();
				
	// Grid(Table) 中「INPUT」物件的 Collection中找出RadioButton物件集合				
	for ( var i = 0; i < myInputs.length; i++ )
	{
		if ( (myInputs[i].name.indexOf("rdo") != -1) && (myInputs[i].name.indexOf("Select") != -1) )
		{
			myRadioButtonList.push(myInputs[i]);
		}
	}
	
	for ( var i = 0; i < myRadioButtonList.length; i++ )
	{
		if ( myRadioButtonList[i].checked == true )
		{
			return true;
		}
	}
				
	alert("請選擇一筆資料");
	return false;;
}
			
// 設定顏色			
function SetGridSelectedColor(SelectIndex, GridName)
{
	var Index = parseInt(SelectIndex);
	var myGrid = document.all(GridName);			// 點選的 Radio Button 所屬的 Table
	var myTRs = myGrid.getElementsByTagName("tr");		// Table 中「TR」物件的 Collection
				
	var myTrRows  = new Array();
				
	// Grid(Table) 中「TR」物件的 Collection中找出trRow物件集合				
	for ( var i = 0; i < myTRs.length; i++ )
	{
		if ( myTRs[i].name == "trRow" )
		{
			myTrRows.push(myTRs[i]);
		}
	}								
				
	// 處理「TR」Collection 中「name」= trRow 的物件
	// 「name」= trRow 必須於 C# 「Grid_ItemDataBound」事件中設定
	// 所選擇的 TR 必須將其 Class Name 設為「GridSelected」
	// 其他 TR 需將其 Class Name 設為「GridItem」或「GridAlternate」
	for(var i = 0; i < myTrRows.length; i++)
	{
		if ( i == Index )
		{						
			myTrRows[i].className = 'GridSelected';						
		}
		else
		{
			if ( (i % 2) == 0 )
				myTrRows[i].className = 'GridItem';
			else
				myTrRows[i].className = 'GridAlternate';
		}
	}
}

// 日期格式轉換（1003 => 2004/10/03）
function ToDateTime(objText)
{
	try
	{
		var myResult = null;
			
		// 欄位為空白即離開
		if ( objText.value == "" )return;
				
		// 如果為正常的日期格式即離開
		myResult = objText.value.match(/[0-9]{4}\/{1}[0-9]{1,2}\/{1}[0-9]{1,2}/);
		if ( myResult != null ) return;
								 
		// 檢查輸入格式
		var myResult = null;
		var IsShowTime = false;
				
		if ( objText.value.length == 4 )
			myResult = objText.value.match(/[0-9]{4}/);
		else if ( objText.value.length == 9 ){
			myResult = objText.value.match(/[0-9]{4}\s{1}[0-9]{4}/);
			IsShowTime = true;
		}
		else
			throw "輸入格式錯誤，請輸入「MMDD」或「MMDD HHMM」";
					
		if ( myResult == null )
			throw "輸入格式錯誤，請輸入「MMDD」或「MMDD HHMM」";
				
				
		var myMonth = new Number(objText.value.substr(0, 2));
		var myDay = new Number(objText.value.substr(2, 2));
		var myHour = 0;
		var myMinute = 0;
		if (IsShowTime)
		{
			myHour = new Number(objText.value.substr(5, 2));
			myMinute = new Number(objText.value.substr(7, 2));
		}
				
		var myDate = new Date();
		myDate.setFullYear(myDate.getFullYear());
		myDate.setMonth(myMonth - 1);
		myDate.setDate(myDay);
		myDate.setHours(myHour);
		myDate.setMinutes(myMinute);
				
		// 檢查日期格式
		if ( (myDate.getMonth() + 1) != myMonth )
			throw "日期輸入錯誤，請輸入正確的日期";
		if ( myDate.getHours() != myHour )
			throw "時間輸入錯誤，請輸入正確的時間";
								
		objText.value = myDate.getFullYear() + "/" + PadLeft(myDate.getMonth() + 1) + "/" + PadLeft(myDate.getDate());
		if ( IsShowTime )
		{
			objText.value += " " + PadLeft(myDate.getHours()) + ":" + PadLeft(myDate.getMinutes());
		}
	}
	catch(e)
	{
		alert(e);
		objText.value = "";
		objText.focus();
	}
}
		
// 將一位數數字轉為兩位數字串（補０）
function PadLeft(number)
{
	if ( new String(number).length == 2 )return number;
	return "0" + number;
}

//去除字串左邊的空白虛格
function LTrim(InStr)
{
	return InStr.replace(/^[\s]*/gi,"");
}

//去除字串右邊的空白虛格
function RTrim(InStr)
{
	return InStr.replace(/[\s]*$/gi,"");
}

//去除字串前後的空白虛格
function Trim(InStr)
{
	return InStr.replace(/[\s]*$/gi,"").replace(/^[\s]*/gi,"");
}

function CheckPageSize(objPageSize)
{
	var myErrMsg = "";
	var PageSize = objPageSize.value;
				
	if ( PageSize == "" ) { myErrMsg += "-請輸入每頁筆數10~99\n"; }								
	if ( isNaN(PageSize) == true ) { myErrMsg += "-每頁筆數請輸入10~99\n"; }
	if ( PageSize > 99 || PageSize < 10 ) { myErrMsg += "-每頁筆數請輸入10~99\n"; }
				
	if ( myErrMsg != "" )
	{					
		myErrMsg = "請修正下列錯誤後再繼續：\n\n" + myErrMsg;
		objPageSize.value = 10;
		alert(myErrMsg);
		return false;
	}
	else
	{
		return true;
	}
}

function GoHome()
{				
	location.href = "http://" + document.domain;
}

// 自由行連結下單
function GoToRequest(Product_Type, Package_Name, Hotel_Name, Airline_Id, Redirect_Url)
{
	var myProductType	= escape(Product_Type);
	var myPackageName	= escape(Package_Name);
	var myHotelName		= escape(Hotel_Name);
	var myAirlineId		= escape(Airline_Id);
	
	if ( Product_Type == "航空" )
	{
		// 路徑改成自由行下單第1個步驟
		top.location.href = "/F10E_Package/F10E02_InputOrder.aspx?PackageName=" + myPackageName + "&HotelName=" + myHotelName + "&AirlineId=" + myAirlineId;
	}
	else
	{
		top.location.href = "/F10E_Package/F10E03_InputOrder.aspx?PackageName=" + myPackageName + "&HotelName=" + myHotelName + "&AirlineId=" + myAirlineId;
	}
}

// 國旅連結下單
function GoToDomestic(Tour_Name, Hotel_Name, Conveyance_Id, Domestic_Type, Departure_Date)
{
	var myTourName		= escape(Tour_Name);
	var myHotelName		= escape(Hotel_Name);
	var myConveyanceId	= escape(Conveyance_Id);
	var myDomesticType	= escape(Domestic_Type);
		
	if ( Departure_Date == null )
	{
		top.location.href = "/F10F_Domestic/F10F02_InputOrder.aspx?TourName=" + myTourName + "&HotelName=" + myHotelName + "&ConveyanceId=" + myConveyanceId + "&DomesticType=" + myDomesticType;
	}
	else
	{
		var myDepartureDate	= escape(Departure_Date);
		
		top.location.href = "/F10F_Domestic/F10F02_InputOrder.aspx?TourName=" + myTourName + "&HotelName=" + myHotelName + "&ConveyanceId=" + myConveyanceId + "&DomesticType=" + myDomesticType + "&DepartureDate=" + myDepartureDate;
	}
}

// 動態改變Iframe大小
function ResizeFrame(Iframe) 
{
	var myFrame = null;
	
	if ( document.getElementById )
	{
		myFrame = document.getElementById(Iframe);
	}
	else
	{
		eval('myFrame = ' + Iframe + ';');
	}
	
	if ( myFrame && ! window.opera )
	{	
		myFrame.style.display = "block";
	
		if ( myFrame.contentDocument && myFrame.contentDocument.body.offsetHeight )
		{      
			myFrame.height = myFrame.contentDocument.body.offsetHeight; 
		}
		else if ( myFrame.Document && myFrame.Document.body.scrollHeight )
		{
			myFrame.height = myFrame.Document.body.scrollHeight;
		}
		
		if ( myFrame.contentDocument && myFrame.contentDocument.body.offsetWidth )
		{      
			myFrame.width = myFrame.contentDocument.body.offsetWidth; 
		}
		else if ( myFrame.Document && myFrame.Document.body.scrollWidth )
		{
			myFrame.width = myFrame.Document.body.scrollWidth;
		}		
	}	
}
