var PanelOne = null;
var PanelTwo = null;
function chSearchType(sType)
{
	if(PanelOne==null)PanelOne = document.getElementById("PanelOneTBL");
	if(PanelTwo==null)PanelTwo = document.getElementById("PanelTwoTBL");
	switch(sType){
		case "RoundTrip" : {
			PanelOne.style.display = "block";
			PanelTwo.style.display = "none";
			document.getElementById("ReturnFlightTR").style.display = document.all? "block" : "table-row";
			break;
		}
		case "OneWay" : {
			PanelOne.style.display = "block";
			PanelTwo.style.display = "none";
			document.getElementById("ReturnFlightTR").style.display = "none";
			break;
		}
		case "MultiDestination" : {
			PanelOne.style.display = "none";
			PanelTwo.style.display = "block";
			document.getElementById("ReturnFlightTR").style.display = "none";
			buildPanelTwo();
			break;
		}
	}
}
function buildPanelTwo()
{
	segTotal = document.forms["AirSearchForm"].segCount.value;
	segToAdd = segTotal - (PanelTwo.rows.length-1);
	for(s=0;s<segToAdd;s++)addSegment();
}
function addSegment(){
	rowToAdd = PanelTwo.rows[PanelTwo.rows.length-2];
	rowIndex = PanelTwo.rows.length-1;
	//alert(rowIndex);
	newRow = PanelTwo.insertRow(rowIndex);
	for(i=0;i<rowToAdd.cells.length;i++){
		newCell = newRow.insertCell(i);
		innerHTML = rowToAdd.cells[i].innerHTML;
		switch(i){
			case 1 : {innerHTML = innerHTML.replace("fromCity_" + rowIndex,"fromCity_" + (rowIndex+1));break;}
			case 3 : {innerHTML = innerHTML.replace("toCity_" + rowIndex,"toCity_" + (rowIndex+1));break;}
			case 5 : {innerHTML = innerHTML.replace("flyDate_" + rowIndex,"flyDate_" + (rowIndex+1));break;}
			case 7 : {innerHTML = innerHTML.replace("flyTime_" + rowIndex,"flyTime_" + (rowIndex+1));break;}
		}
		//alert(innerHTML);
		newCell.innerHTML = innerHTML;
	}
	eButtons();
}
function removeSegment(){
	PanelTwo.deleteRow(PanelTwo.rows.length-2);
	eButtons();
}
function eButtons()
{
	segCount = PanelTwo.rows.length-1;
	document.forms["AirSearchForm"].segCount.value = segCount;
	document.getElementById("AddSegmentBTN").disabled = segCount<8 ? false : true;
	document.getElementById("DelSegmentBTN").disabled = segCount>1 ? false : true;
}
function focusObj(obj){
	if(obj.value==obj.getAttribute("defValue"))obj.value="";
}
function blurObj(obj){
	if(obj.value=="")obj.value = obj.getAttribute("defValue");
	window.setTimeout(hideList2,100);
}
function OpenWin(url,name,features){
	window.open(url,name,features);
}
function ValidateSearch()
{

	alert_message = "";
	formObj = document.forms["AirSearchForm"];
	
	//date validation - 04/14/08 - kunjan
	if(formObj.searchType[0].checked==true || formObj.searchType[1].checked==true)
	{			
		if (formObj.flyDate_from.value == "" || formObj.flyDate_from.value == formObj.flyDate_from.getAttribute("defValue"))
			alert_message += " - Departure date\n";
	
			var Error='';
			  if(Error= ValidateDate(formObj.flyDate_from.value))
			  {
			   if (Error!='')
				{
				alert_message += " - Departure Date - " + Error+"\n";
				}
		}
		if(formObj.searchType[0].checked==true)
		{
			if (formObj.flyDate_return.value == "" || formObj.flyDate_return.value == formObj.flyDate_return.getAttribute("defValue"))
			alert_message += " - Return date\n";
			
			if (formObj.flyDate_from.value != "" && formObj.flyDate_return.value != "" &&  formObj.flyDate_from.value != formObj.flyDate_from.getAttribute("defValue") && formObj.flyDate_return.value != formObj.flyDate_return.getAttribute("defValue"))
			{
				Error='';
				if(Error=ValidateDate(formObj.flyDate_return.value))
				{
				
				if(Error!='')
				{
						alert_message += " - Return Date - "+ Error +"\n";
				}
				}
				
				if (formObj.flyDate_from.getAttribute("defValue") == "dd/mm/yyyy")
				{
					var tmp=formObj.flyDate_from.value.split('/');
					var flyDate_from;
					var flyDate_return;
					
					if (tmp.length == 3)
						flyDate_from=tmp[1]+"/"+tmp[0]+"/"+tmp[2];
						
					tmp=formObj.flyDate_return.value.split('/');
					
					if (tmp.length == 3)
						flyDate_return=tmp[1]+"/"+tmp[0]+"/"+tmp[2];
					
					if(new Date(flyDate_from) > new Date(flyDate_return))    
						alert_message += " - Return date should be greater than departure date\n";
					 
					// ValidateDate();
				}
				else
				{
					if(new Date(formObj.flyDate_from.value) > new Date(formObj.flyDate_return.value))    
						alert_message += " - Return date should be greater than departure date\n";
				}
			}
		}
	}
	
	if(formObj.searchType[2]!=null) 
	{
		if(formObj.searchType[2].checked)
		{	
			var isExit = false;
			for(i=1;i<=document.forms["AirSearchForm"].segCount.value;i++)
			{
			var Error='';
				if(Error=ValidateDate(formObj["flyDate_" + i].value))
				{
					if(Error!='')
					{
					alert_message += " - flight #"+ i + " departure date - "+  Error  +"\n";
					}
				}
				if(i>1)
				{
					for(j=1;j<i;j++)
					{
						
						if (formObj["flyDate_" + i].getAttribute("defValue") == "dd/mm/yyyy")
						{
							var tmp=formObj["flyDate_" + i].value.split('/');
							var flyDate_from;
							var flyDate_return;
							
							if (tmp.length == 3)
								flyDate_from=tmp[1]+"/"+tmp[0]+"/"+tmp[2];
							
							tmp=formObj["flyDate_" + j].value.split('/');
							
							if (tmp.length == 3)
								flyDate_return=tmp[1]+"/"+tmp[0]+"/"+tmp[2];
							
							if(flyDate_from < flyDate_return && formObj["flyDate_" + i].value != "" &&formObj["flyDate_" + i].value != formObj["flyDate_" + i].getAttribute("defValue"))
							{
								isExit = true;
								alert_message += " - flight #"+ i +" departure date\n";
								break;
							}
						}
						else
						{
							//alert(formObj["flyDate_" + j].value);
							
							if(Date.parse(formObj["flyDate_" + i].value) < Date.parse(formObj["flyDate_" + j].value) && formObj["flyDate_" + i].value != "" &&formObj["flyDate_" + i].value != formObj["flyDate_" + i].getAttribute("defValue"))
							{
								isExit = true;
								alert_message += " - flight #"+ i +" departure date\n";
								break;
							}
						}
					}
				}
				if (isExit) break;
			}
		}
	}
	//date validation end
	

	if(formObj.searchType[0].checked==false && formObj.searchType[1].checked==false)
	{
		if(formObj.searchType[2]!=null)
		{
			if(formObj.searchType[2].checked==false)
			{
				alert("Please choose trip type");
				return false;
			}	
		}
		else
		{
			alert("Please choose trip type");
			return false;
		}
	}

	if(formObj.searchType[0].checked) {
		if(formObj.fromCity.value == "" || formObj.fromCity.value == formObj.fromCity.getAttribute("defValue"))alert_message += " - departure city\n";
		/*if(formObj.flyDate_from.value == "" || formObj.flyDate_from.value == formObj.flyDate_from.getAttribute("defValue"))alert_message += " - departure date\n";*/
		if(formObj.toCity.value == "" || formObj.toCity.value == formObj.toCity.getAttribute("defValue"))alert_message += " - arrival city\n";
		/*if(formObj.flyDate_return.value == "" || formObj.flyDate_return.value == formObj.flyDate_return.getAttribute("defValue"))alert_message += " - return date\n";*/

	}
	else if(formObj.searchType[1].checked) {
		if(formObj.fromCity.value == "" || formObj.fromCity.value == formObj.fromCity.getAttribute("defValue"))alert_message += " - departure city\n";
		if(formObj.toCity.value == "" || formObj.toCity.value == formObj.toCity.getAttribute("defValue"))alert_message += " - arrival city\n";
		/*if(formObj.flyDate_from.value == "" || formObj.flyDate_from.value == formObj.flyDate_from.getAttribute("defValue"))alert_message += " - departure date\n";*/
	}
	else if(formObj.searchType[2]!=null) 
	{
		if(formObj.searchType[2].checked)
		{				
			for(i=1;i<=document.forms["AirSearchForm"].segCount.value;i++)
			{
				/*if(formObj["fromCity_" + i].value == "" || formObj["fromCity_" + i].value == formObj["fromCity_" + i].getAttribute("defValue"))alert_message += " - flight #"+ i +" departure city\n";
				if(formObj["toCity_" + i].value == "" || formObj["toCity_" + i].value == formObj["toCity_" + i].getAttribute("defValue"))alert_message += " - flight #"+ i +" arrival city\n";
				if(formObj["flyDate_" + i].value == "" || formObj["flyDate_" + i].value == formObj["flyDate_" + i].getAttribute("defValue"))alert_message += " - flight #"+ i +" departure date\n";*/
				
				if(formObj["fromCity_" + i].value == "")alert_message += " - flight #"+ i +" departure city\n";
				if(formObj["toCity_" + i].value == "")alert_message += " - flight #"+ i +" arrival city\n";
				if(formObj["flyDate_" + i].value == "" || formObj["flyDate_" + i].value == formObj["flyDate_" + i].getAttribute("defValue"))alert_message += " - flight #"+ i +" departure date\n";
								
				
			}
		}
	}
	passNum = parseInt(formObj.aCount.value) + parseInt(formObj.cCount.value);
	if(formObj.sCount!=null)
	{
		passNum=passNum + parseInt(formObj.sCount.value) ;
	}	
	if(formObj.yCount!=null)
	{
		passNum=passNum + parseInt(formObj.yCount.value) ;
	}	
	
	if(passNum == 0){
		alert_message += " - the number of passengers travelling \n";
	}
	
	if(alert_message!=""){
		alert("The following information was not provided : \n" + alert_message);
		return false;
	}
	return true;
}	
//--- ADDED	 BY URVI -TO CHECK DATE
function ValidateDate(d1)
{

  
	var curDate=new Date();
	var Error='';
	var d=curDate.getDate();
	var m = parseInt(curDate.getMonth()) + 1;
	var y=parseInt(curDate.getFullYear()) + 2 ;
var y1=curDate.getFullYear();
	var d2= m+'/'+d+'/'+y;
	
	var pastdate = m+'/'+d+'/'+ y1;
   
  
		var dt1=getDateObject(d1,"/");
		var dt2=getDateObject(d2,"/");
		var dt3=getDateObject(pastdate,"/");      
	   
  
		if(dt1=='0')
		{
			Error=' Enter Date as mm/dd/yyyy';
		}
		if(dt1=='01' || dt1=='02')
		{        
					 Error=' Check Days of Month';
		}
		if(Error=='')
		{
		 if(dt1 < dt3)
		 {
				Error='Date Should not be less than current Date';
			   return Error;
		  }

		if(dt1 > dt2)
		{
			 Error='should be Less than 2 years from Current Date';
	 
		}
		else{
			Error='';
			}          
		}
		else
		{
			return Error;
		}
		return Error;
  
}

function getDateObject(dateString,dateSeperator)
{
//This function return a date object after accepting 
//a date string ans dateseparator as arguments

var curValue=dateString;
var sepChar=dateSeperator;
var curPos=0;
var cDate,cMonth,cYear;

//extract day portion
curPos=dateString.indexOf(sepChar);
cMonth=dateString.substring(0,curPos);
//extract month portion				
endPos=dateString.indexOf(sepChar,curPos+1);			
cDate=dateString.substring(curPos+1,endPos);

//extract year portion				
curPos=endPos;
endPos=curPos+5;			
cYear=curValue.substring(curPos+1,endPos);


//Create Date Object
var dtObject;
if(cMonth>12)
{
	  //  alert('Enter Date as mm/dd/yyyy');
dtObject='0';
 //  alert('Error in FormatDate');
}
else
{

if(cMonth=='2' || cMonth=='02')
{
	var days=daysInFebruary(cYear);        
	if(cDate > days)
	{
		   dtObject = '01';
	}
	else
	{
	 dtObject=new Date(cYear,cMonth,cDate);	
	}
}
else
{
	var days=checkDaysInMonth(cMonth);
   
	if(cDate > days)
	{
		
		dtObject='02';
	}
	else
	{
	 dtObject=new Date(cYear,cMonth,cDate);	
	}
 }
}
return dtObject;
}
function checkDaysInMonth(cMonth)
{
var days;
if(cMonth=='1' || cMonth=='01' || cMonth=='3' || cMonth=='03' || cMonth=='5' || cMonth=='05' || cMonth=='7' || cMonth=='07' || cMonth=='8' || cMonth=='08' || cMonth=='10' || cMonth=='12')
{
		days=31; 
}
if(cMonth=='4' || cMonth=='04' || cMonth=='6' || cMonth=='06' || cMonth=='9' || cMonth=='09' || cMonth=='11')
{
	days=30; 
 }
return days;

}
function daysInFebruary (year){
// February has 29 days in any year evenly divisible by four,
// EXCEPT for centurial years which are not also divisible by 400.
return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
	//----------

var cObj;
var hCalInt = null;

function showCalendar(obj){alert("call");
		window.clearInterval(hCalInt)
		cObj = obj;
		cBody = document.getElementById("calBody");
		cBody.style.left=obj.offsetLeft;			
		cBody.style.top=obj.offsetTop + obj.offsetHeight + 1;
		window.frames["calBody"].selectDate(obj.value,obj.attributes["minDate"].value,obj.attributes["maxDate"].value);
		cBody.style.display='block';			
		cObj.select();				
	}
function showCalendar(obj,formatdt){
	window.clearInterval(hCalInt)
	cObj = obj;
	cBody = document.getElementById("calBody");
	if(document.getElementById("ModifySearch")!=null)
	{
		cBody.style.left=document.getElementById("ModifySearch").offsetLeft+obj.offsetLeft;
		cBody.style.top=obj.offsetTop + obj.offsetHeight+document.getElementById("ModifySearch").offsetTop + 1;
	}
	else
	{														 
		cBody.style.left=obj.offsetLeft;
		cBody.style.top=obj.offsetTop + obj.offsetHeight + 1;	
	}
	if(formatdt!=null)
		window.frames["calBody"].setdtfor(formatdt);
	window.frames["calBody"].selectDate(obj.value,obj.attributes["minDate"].value,obj.attributes["maxDate"].value);
	cBody.style.display='block';
	cObj.select();
}
function hideCalendar(obj){
	if(!document.all || document.activeElement.id=='calBody') return;
	window.frames["calBody"].selectDate(obj.value,obj.attributes["minDate"].value,obj.attributes["maxDate"].value);
	doHideCal(obj);
}
function doHideCal(obj){
	window.clearInterval(hCalInt)
	cBody = document.getElementById("calBody");
	cBody.style.display='none';
	cObj.value = window.frames["calBody"].selDate;
	if(cObj.attributes["raiseChangeEvent"].value=='true')calChange(cObj);
}
function calChange(calObj){
	formObj = document.forms["AirSearchForm"];
	switch(calObj.name)
	{
		case "flyDate_from" : formObj["flyDate_return"].attributes["minDate"].value = calObj.value;break;
		case "flyDate_1" : if(formObj["flyDate_2"]){formObj["flyDate_2"].attributes["minDate"].value = calObj.value;}break;
		case "flyDate_2" : if(formObj["flyDate_3"]){formObj["flyDate_3"].attributes["minDate"].value = calObj.value;}break;
		case "flyDate_3" : if(formObj["flyDate_4"]){formObj["flyDate_4"].attributes["minDate"].value = calObj.value;}break;
		case "flyDate_4" : if(formObj["flyDate_5"]){formObj["flyDate_5"].attributes["minDate"].value = calObj.value;}break;
		case "flyDate_5" : if(formObj["flyDate_6"]){formObj["flyDate_6"].attributes["minDate"].value = calObj.value;}break;
		case "flyDate_6" : if(formObj["flyDate_7"]){formObj["flyDate_7"].attributes["minDate"].value = calObj.value;}break;
		case "flyDate_7" : if(formObj["flyDate_8"]){formObj["flyDate_8"].attributes["minDate"].value = calObj.value;}break;
	}
}


var lObj;
var hListInt = null;
function showAirportsList(obj){
	window.clearInterval(hListInt)
	lObj = document.forms["AirSearchForm"][obj];
	lBody = document.getElementById("listBody");

	if(document.getElementById("ModifySearch")!=null)
	{
		lBody.style.left=document.getElementById("ModifySearch").offsetLeft+lObj.offsetLeft;
		lBody.style.top=lObj.offsetTop + lObj.offsetHeight+ document.getElementById("ModifySearch").offsetTop + 1;
	}
	else
	{
		lBody.style.left=lObj.offsetLeft;
		lBody.style.top=lObj.offsetTop + lObj.offsetHeight + 1;
	}
	
	
	//window.frames["listBody"].selectAirport(lObj.value);
	lBody.style.display='block';
	lObj.select();
}
function hideList(obj){
	if(!document.all || document.activeElement.id=='listBody') return;
	doHideList();
}
function doHideList(){
	window.clearInterval(hListInt)
	lBody = document.getElementById("listBody");
	lBody.style.display='none';
}

function buildList(obj)
{
	lObj = obj;
	strVal = lObj.value.toLowerCase();
	lBody = document.getElementById("listBody2");
	lBodyDoc = window.frames["listBody2"].document;
	if(strVal.length > 2)
	{
		
		if(document.getElementById("ModifySearch")!=null)
		{
			lBody.style.left=document.getElementById("ModifySearch").offsetLeft+lObj.offsetLeft;
			lBody.style.top=lObj.offsetTop + lObj.offsetHeight+ document.getElementById("ModifySearch").offsetTop + 1;
		}
		else
		{
			lBody.style.left=lObj.offsetLeft;
			lBody.style.top=lObj.offsetTop + lObj.offsetHeight + 1;
		}
	
		//search
		foundValues = new Array()
		for(a in a_values)
		{
			for(i=0;i<a_values[a].length;i++){
				str = a_values[a][i].split(":");
				if(str[0].toLowerCase().indexOf(strVal)==0)
				{ 
					//foundValues[foundValues.length] = a_values[a][i] +", "+ getCountryAndState(a);
					foundValues.unshift(a_values[a][i] +", "+ getCountryAndState(a));
				}
				else if (str[1].toLowerCase().indexOf(strVal)==0)
				{
					foundValues[foundValues.length] = a_values[a][i] +", "+ getCountryAndState(a);
				}
			}
		}
		
		if(foundValues.length>0)
		{
			lBody.style.display='block';
			//lBody.style.height = foundValues.length > 10 ? 170 : foundValues.length * 17;
			lBodyDoc.clear();
			lBodyDoc.write("<body bgColor='beige' style='font:11px Verdana;margin:0;padding:0'>");
			for(i=0;i<foundValues.length; i++)
			{
				str = foundValues[i].split(":");
				lBodyDoc.write("<div style=\"padding:2;cursor:pointer\" onMouseOver=\"this.style.backgroundColor='wheat'\" onMouseOut=\"this.style.backgroundColor='transparent'\" onClick=\"parent.closeList('"+ str[0] +"')\">["+ str[0] +"] "+ str[1] +"</div>");
			}
			lBodyDoc.write("</body>");
			lBodyDoc.close();
		}
		else lBody.style.display='none';
	}
	else lBody.style.display='none';
}
function getCountryAndState(sCode)
{
	contry_state = sCode.split(":");
	country = "";
	state = contry_state[1];
	for(s in c_values)
	{
		if(c_values[s].indexOf(contry_state[0])==0){
			country = c_values[s].split(":")[1];
		}
	}
	if(state!="All") return state + ", " + country;
	else return country;
}
/*close the click*/
function cllst()
{
		if(document.getElementById("listBody2").style.display=='block')
		{
			document.getElementById("listBody2").style.display='none';
		}
}
function closeList(str){lObj.value = str;hideList2();}
function hideList2(){document.getElementById("listBody2").style.display='none';}
var iframeids=["listBody2"]
var iframehide="no"

var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1]
var FFextraHeight=parseFloat(getFFVersion)>=0.1? 16 : 0 //extra height in px to add to iframe in FireFox 1.0+ browsers

function resizeCaller() 
{
	var dyniframe=new Array()
	for (i=0; i<iframeids.length; i++)
	{
		if (document.getElementById)
			resizeIframe(iframeids[i])
		//reveal iframe for lower end browsers? (see var above):
		if ((document.all || document.getElementById) && iframehide=="no")
		{
			var tempobj=document.all? document.all[iframeids[i]] : document.getElementById(iframeids[i])
			tempobj.style.display="none"
		}
	}
}

function resizeIframe(frameid)
{
	var currentfr=document.getElementById(frameid)
	if (currentfr && !window.opera)
	{
		currentfr.style.display="block"
		if (currentfr.contentDocument && currentfr.contentDocument.body.offsetHeight) //ns6 syntax
			currentfr.height = currentfr.contentDocument.body.offsetHeight+FFextraHeight; 
		else if (currentfr.Document && currentfr.Document.body.scrollHeight) //ie5+ syntax
			currentfr.height = currentfr.Document.body.scrollHeight;
		if (currentfr.addEventListener)
			currentfr.addEventListener("load", readjustIframe, false)
		else if (currentfr.attachEvent)
		{
			currentfr.detachEvent("onload", readjustIframe) // Bug fix line
			currentfr.attachEvent("onload", readjustIframe)
		}
	}
}

function readjustIframe(loadevt) 
{
	var crossevt=(window.event)? event : loadevt
	var iframeroot=(crossevt.currentTarget)? crossevt.currentTarget : crossevt.srcElement
	if (iframeroot)
		resizeIframe(iframeroot.id);
}

function loadintoIframe(iframeid, url)
{
	if (document.getElementById)
		document.getElementById(iframeid).src=url
}

if (window.addEventListener)
{
	window.addEventListener("load", resizeCaller, false);
}
else if (window.attachEvent)
{
	window.attachEvent("onload", resizeCaller);		
}
else
{
	window.onload=resizeCaller;	
}

function togglePanel(link_id, panel_id)
{
	 var link_element = document.getElementById(link_id);
	 var panel_element = document.getElementById(panel_id);

	 if (panel_element.style.display == 'none') 
	 {
		 link_coords = getCoords(link_id);

		 panel_top = (link_coords.y - link_element.offsetHeight+50) + 'px';
		 panel_left = link_coords.x + 50 + 'px';

		 panel_element.style.top = panel_top;
		 panel_element.style.left = panel_left;

		 panel_element.style.visibility = "visible";
		 panel_element.style.display = "block";
	 } 
	 else 
	 {
		 panel_element.style.display = 'none';
		 panel_element.style.visibility = 'hidden';
	 }

	 if (parent.calcHeight) 
	 {
		 parent.calcHeight();
	 }

	 link_element.blur();
}
function getCoords(id)
{
	 var x = 0
	 var y = 0;

	 element = document.getElementById(id);

	 if (element.offsetParent)
	 {
		while (element.offsetParent)
		{
			 x += element.offsetLeft;
			 y += element.offsetTop;
			 element = element.offsetParent;
		 }
	 } 
	 else if (element.x || element.y) 
	 {
		 x = element.x;
		 y = element.y;
	 }

	 /* IE bug */
	 x += document.body.offsetLeft;
	 y += document.body.offsetTop;

	 return { x:x, y:y };
}
document.onkeypress = function hidecal3 ()
{
	if (navigator.appName == "Microsoft Internet Explorer")
	{
	 if (event.keyCode==27)
	 {
		 togglePanel('currency-link', 'currency-box');
	 }
	}	 	
}