//-----------------------------------------------------------------------------
//Module      :   Home.js
//Created By  :   Vinod Joseph
//Created On  :   18th Dec 2006
//Description :   javascript functions used by homepage
//-----------------------------------------------------------------------------
//Modification History:
//-----------------------------------------------------------------------------
//SNo    Who     Date            Description
//-----------------------------------------------------------------------------
//1		Lucio	30-Dec-2006		Added functions to control the child dropdowns
//-----------------------------------------------------------------------------

function SetVisibleFields(rbtnHotel)
{
	if(document.getElementById(rbtnHotel).checked)
	{
		document.getElementById('fromloc1').style.display = "none";
		if(document.getElementById('fromloc2') != null)
			document.getElementById('fromloc2').style.display = "none";
		if(document.getElementById('FltPref1') != null)
			document.getElementById('FltPref1').style.display = "none";
		if(document.getElementById('FltPref2') != null)
			document.getElementById('FltPref2').style.display = "none";
		if(document.getElementById('FltPref3') != null)
			document.getElementById('FltPref3').style.display = "none";
		if(document.getElementById('FltPref4') != null)
			document.getElementById('FltPref4').style.display = "none";
	}
	else
	{
		document.getElementById('fromloc1').style.display = "block";
		if(document.getElementById('fromloc2') != null)
			document.getElementById('fromloc2').style.display = "block";
		if(document.getElementById('FltPref1') != null)
			document.getElementById('FltPref1').style.display = "block";
		if(document.getElementById('FltPref2') != null)
			document.getElementById('FltPref2').style.display = "block";
		if(document.getElementById('FltPref3') != null)
			document.getElementById('FltPref3').style.display = "block";
		if(document.getElementById('FltPref4') != null)
			document.getElementById('FltPref4').style.display = "block";
	}
	return true;
}

function ChildBoxSetVisibility(ddlAges1ID,ddlAges2ID,intSelectedValue)
{
	var ddlAges1=document.getElementById(ddlAges1ID);
	var ddlAges2=document.getElementById(ddlAges2ID);
	var trChildAges=document.getElementById('trChildAge');
	
	if(intSelectedValue==2)
	{
		ddlAges2.style.display="";
		ddlAges1.style.display="";
		trChildAges.style.display="";
	}
	else if(intSelectedValue==1)
	{
		ddlAges1.style.display="";
		ddlAges2.style.display="none";
		trChildAges.style.display="";
	}
	else
	{
		ddlAges1.style.display="none";
		ddlAges2.style.display="none";
		trChildAges.style.display="none";
	}
	
}

function ValidatePax(ddlAdultsID,ddlChildID,strChildAges1ID,strChildAges2ID)
{
	var ddlAdults=document.getElementById(ddlAdultsID);
	var ddlChildren=document.getElementById(ddlChildID);
	var ddlAges1=document.getElementById(strChildAges1ID);
	var ddlAges2=document.getElementById(strChildAges2ID);
	
	
	var noOfAdults=(ddlAdults[ddlAdults.selectedIndex].value);
	var noOfChildren=0;
	var TotalPax=0;
	if(ddlChildren[ddlChildren.selectedIndex].value!='')
	{
		noOfChildren=(ddlChildren[ddlChildren.selectedIndex].value);
	}
	TotalPax=parseInt(noOfAdults)+parseInt(noOfChildren);
	//alert(TotalPax);
	ddlAges1.disabled=false;
	ddlAges2.disabled=false;
	if(TotalPax>4)
	{
		//if(ddlAges1.style.display="")
		//{
			
			ddlAges1.disabled=true;
		//}
		//if(ddlAges2.style.display="")
		//{
			ddlAges2.disabled=true;
		//}
	}
}

function LoadWaitGraphics() {
	var flashVersion;
	if(navigator.plugins && navigator.plugins.length) 
	{
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) 
		{
			// Flash is found!
			var isVersion2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + isVersion2].description; //actual desc.
			var flashVersion = parseInt(flashDescription.substring(16));				
		}
	}
	else if(navigator.mimeTypes && navigator.mimeTypes.length) {			
		var x = navigator.mimeTypes['application/x-shockwave-flash'];
		if (x && x.enabledPlugin)
			flashVersion = 4;
	}
	else {
		var winIEpass
		var NNpass
		winIEpass = ((navigator.appName.indexOf("Microsoft") != -1) && (navigator.appVersion.indexOf("Windows") != -1)) && (parseFloat(navigator.appVersion) >= 4) ? true : false;
		NNpass = ((navigator.appName == "Netscape") && (navigator.userAgent.indexOf("Mozilla") != -1) && (parseFloat(navigator.appVersion) >= 3) && (navigator.javaEnabled())) ? true : false;
		if (winIEpass || NNpass) 
			flashVersion = 4;
	}
	// If we're on msntv (formerly webtv), the version supported is 4 (as of January 1, 2004)
	if(navigator.userAgent.indexOf("WebTV") != -1) 
		flashVersion = 4;  
	if(flashVersion >= 4) 
	{
		var oeTags = '<OBJECT type="application/x-shockwave-flash" data="../images/flash/uv_wait5.swf" '
		+ 'WIDTH="529" HEIGHT="320">'
		+ '<PARAM NAME="MOVIE" VALUE="images/WaitPic.swf">'
		+ '<PARAM NAME="PLAY" VALUE="true">'
		+ '<PARAM NAME="QUALITY" VALUE="high">'
		+ '<PARAM NAME="MENU" VALUE="false">'								
		+ '<\/OBJECT>';
		//document.getElementById('SetImage').innerHTML = oeTags;
	} 
	else 
	{
		var img = '<IMG SRC="images/WaitPic.jpg" WIDTH="529" HEIGHT="320" alt="" border="0">' + '';
		//document.getElementById('SetImage').innerHTML = img;
	}
	var img = '<IMG SRC="images/WaitPic.jpg" WIDTH="529" HEIGHT="320" alt="" border="0">' + '';
	document.getElementById('SetImage').innerHTML = img;
}

var clkcnt = 0;
var preventOnBlur = 0;
var divVisible = 0;

function CheckFocus(_i1, _i3) {  // _i1: iata dd field, _i3 - div field
	
	if(document.getElementById(_i3).style.display == "block")
	{
		document.getElementById(_i1).focus();
	}
	if(preventOnBlur == 0)
	{
		if(document.getElementById(_i3).style.display == "block")
		{
			document.getElementById(_i1).focus();
		}
	}
	
	if(preventOnBlur == 1) preventOnBlur = 0;
	if(preventOnBlur == 2) preventOnBlur = 0;
	return true;
}

function CheckFocus1(_i1, _i3) {  // _i1: iata dd field, _i3 - div field
	if(document.getElementById(_i3).style.display == "block")
	{
		document.getElementById(_i1).focus();
		document.getElementById(_i1).selectedIndex = 0;
	}
}

function ShowDiv(divName)
{
	document.getElementById(divName).style.display == "block";
}

function GetIATAList(_a1, _b1, _i1, _i2) { // _a1 - text field, _b1 - keyevent, _i1: iata dd field, _i2: iata div field
	var cc;
	if(preventOnBlur > 0)
	{
		preventOnBlur = 0;
		return;
	}
	if(_b1){
		cc=_b1.charCode||_b1.keyCode||_b1.which;
		if(cc==40||cc==57386) {
			if(document.getElementById(_i2).style.display == "block") {
				if(preventOnBlur == 0)	preventOnBlur = 1;
				document.getElementById(_i1).focus();
				document.getElementById(_i1).selectedIndex = 0;
				return;
			}
			preventOnBlur = 1;
		}
	}
	if(_a1.value.length < 3) return;
	var character = String.fromCharCode(cc);
	var res = SwainTours.Index.AjaxGetIATA(_a1.value, character);
	var lstIATA = document.getElementById(_i1);
	lstIATA.length = 0;
	if(res == null) { document.getElementById(_i2).style.display="none"; return; }
	if(res.value == null) { document.getElementById(_i2).style.display="none"; return; }
	if(res.value.length == 0) { document.getElementById(_i2).style.display="none"; return; }
	
	for(i = 0;i < res.value.length;i++) {
		lobj = new Option();
		lobj.text	= res.value[i].IATACode;
		lobj.value	= res.value[i].IATAId;
		lstIATA.options.add(lobj);
	}
	
	if(document.getElementById(_i2).style.display = "none") document.getElementById(_i2).style.display = "block";
	if(_i2 == 'divFrom')
		document.getElementById('divTo').style.display = "none";
	else
		document.getElementById('divFrom').style.display = "none";
}

function SelectIATA(_a1, _b1, bi, _i1, _i2) { // _a1 - text field, _b1 - keyevent, bi: bypass field, _i1: iata dd field, _i2: iata div field
	if(bi == 1) {
		document.getElementById(_a1).value = _i1.value;
		preventOnBlur = 2;
		document.getElementById(_a1).focus();
		document.getElementById(_i2).style.display = "none";
		return true;
	}
	
	if(_b1){
		var cc=_b1.charCode||_b1.keyCode||_b1.which;
		
		if( (cc==13) || (cc==9) ) {
			document.getElementById(_a1).value = _i1.value;
			document.getElementById(_i2).style.display = "none";
			preventOnBlur = 2;
			document.getElementById(_a1).focus();
			return false;
		}
		if(cc==27) {
			document.getElementById(_i2).style.display = "none";
			preventOnBlur = 2;
			document.getElementById(_a1).focus();
			return false;
		}
		else if(cc==8) return false;
		if( (cc==38||cc==57385) && (_i1.selectedIndex == 0) ) {
			if(clkcnt >= 0) {
				preventOnBlur = 1;
				document.getElementById(_a1).focus();
				clkcnt = 0;
			}
			else
				clkcnt++;
		}
		else
			clkcnt = 0;
	}
}

function ValidateSearchRequest()
{
	var errMessage = "";
	var obj;
	
	if(!document.getElementById('rbtnHotel').checked)
	{
		obj = document.getElementById('txtFrom');
		if(obj.value.length == 0)		errMessage = errMessage + ', From City/Airport';
		else if(obj.value == "")		errMessage = errMessage + ', From City/Airport';
		
		var res = SwainTours.Index.CheckIATA(obj.value);
		if(res == null)			{ alert("Please select a valid From IATA Code"); return false; }
		if(res.value == null)	{ alert("Please select a valid From IATA Code"); return false; }
		if(res.value != 1)		{ alert("Please select a valid From IATA Code"); return false; }
	}
	
	obj = document.getElementById('txtTo');
	if(obj.value.length == 0)		errMessage = errMessage + ', To City/Airport';
	else if(obj.value == "")		errMessage = errMessage + ', To City/Airport';
	var res = SwainTours.Index.CheckIATA(obj.value);
	if(res == null)			{ alert("Please select a valid To IATA Code"); return false; }
	if(res.value == null)	{ alert("Please select a valid To IATA Code"); return false; }
	if(res.value != 1)		{ alert("Please select a valid To IATA Code"); return false; }
		
	if(errMessage.length > 0)
	{
		alert("Please select the" + errMessage.substring(1));
		return false;
	}
	
	var objDDay		= document.getElementById('ddlDepartDate');
	var objDMonth	= document.getElementById('ddlDepartMonth');
	var retInt		= DateValidate(objDDay[objDDay.selectedIndex].value, objDMonth[objDMonth.selectedIndex].value);
	if(retInt > 27)
	{
		alert('Please select a valid Departure Date.');
		return false;
	}
	
	var objADay		= document.getElementById('ddlReturnDate');
	var objAMonth	= document.getElementById('ddlReturnMonth');
	retInt			= DateValidate(objADay[objADay.selectedIndex].value, objAMonth[objAMonth.selectedIndex].value);
	if(retInt > 27)
	{
		alert('Please select a valid Return Date.');
		return false;
	}
	
	objDDay		= objDDay[objDDay.selectedIndex].value;
	objDMonth	= objDMonth[objDMonth.selectedIndex].value;
	var dtDeparture	= new Date();
	dtDeparture.setDate(1);
	dtDeparture.setFullYear(Number(objDMonth.substring(0, objDMonth.indexOf("-"))));
	dtDeparture.setMonth(Number(objDMonth.substring(objDMonth.indexOf("-") + 1, objDMonth.length)) - 1);
	dtDeparture.setDate(Number(objDDay));
	
	objADay		= objADay[objADay.selectedIndex].value;
	objAMonth	= objAMonth[objAMonth.selectedIndex].value;
	var dtArrival	= new Date();
	dtArrival.setDate(1);
	dtArrival.setFullYear(Number(objAMonth.substring(0, objAMonth.indexOf("-"))));
	dtArrival.setMonth(Number(objAMonth.substring(objAMonth.indexOf("-") + 1, objAMonth.length)) - 1);
	dtArrival.setDate(Number(objADay));
	
	var dtToday	= new Date();
	if(!document.getElementById('rbtnHotel').checked)
	{
		dtToday.setDate(dtToday.getDate()+5);
		if(CompareDatesOnly(dtToday, dtDeparture) != -1)
		{
			alert("Please select a departure date 7 days from today.");
			return false;
		}
	}
	if(CompareDatesOnly(dtToday, dtDeparture) != -1)
	{
		alert("Please select a departure date after today.");
		return false;
	}
		
	if(CompareDatesOnly(dtDeparture, dtArrival) != -1)
	{
		alert("Return date cannot be before or same as Departure date.");
		return false;
	}
	//set hidden date fields
	document.getElementById('hdnDepartureDate').value = dtDeparture.getDate() + " " + GetMonthString(dtDeparture.getMonth()) + " " + dtDeparture.getFullYear();
	document.getElementById('hdnReturnDate').value = dtArrival.getDate() + " " + GetMonthString(dtArrival.getMonth()) + " " + dtArrival.getFullYear();
	obj		= document.getElementById('ddlAdults');
	retInt	= Number(obj[obj.selectedIndex].value);
	obj		= document.getElementById('ddlChildren');
	retInt	= retInt + Number(obj[obj.selectedIndex].value);
	if(retInt > 4)
	{
		alert("Total travelling pax cannot exceed 4.");
		return false;
	}
	
	//Vinod 12 Apr 07 BOC
	if(!document.getElementById('rbtnHotel').checked)
	{
		dtDeparture.setDate(dtDeparture.getDate()+6);
		if(CompareDatesOnly(dtDeparture, dtArrival) != -1)
		{
			alert("A journey must have a minimum of 5 nights accomodation. The dates you have selected result in less than 5 accomodation nights when combined with your flight.");
		//	alert("For journeys less than 2 days, use Advanced search and specify time preferences to avoid clash in flight timings.");
			return false;
		}
		dtDeparture.setDate(dtDeparture.getDate()-4);
	}
	//Vinod 12 Apr 07 EOC
	document.getElementById('midPanel').innerHTML = "test";
	document.getElementById('rightPanel').innerHTML = "test";
	
	document.getElementById('homedisplay').style.visibility = "hidden";
	document.getElementById('waitdisplay').style.visibility = "visible";
	document.getElementById('waitdisplay').style.display = "block";
	setTimeout("document.getElementById('imgHiddenWait').src = 'images/loader.gif';",10); 
	setTimeout("document.getElementById('SetImage').style.backgroundImage = \"url('images/WaitPic.jpg')\";",10); 
}