
//var COMPASS_SE_FrameWorkClientID = "CompassModuleControl_ucCompassSearchEngine_";

var COMPASS_SE_sLoadXMLFromURL = "activeDestinationsByCountry.xml";

var COMPASS_SE_SELECT_COUNTRY_TITLE = CLDIC.COMPASS_SE_SELECT_COUNTRY_TITLE;
var COMPASS_SE_SELECT_CITY_TITLE = CLDIC.COMPASS_SE_SELECT_CITY_TITLE;

var COMPASS_SE_MUST_CHOOSE_CITY = CLDIC.COMPASS_SE_MUST_CHOOSE_CITY;
var COMPASS_SE_MUST_CHOOSE_COUNTRY = CLDIC.COMPASS_SE_MUST_CHOOSE_COUNTRY;
var COMPASS_SE_MUST_CHOOSE_FromDate = CLDIC.COMPASS_SE_MUST_CHOOSE_FromDate;
var COMPASS_SE_MUST_CHOOSE_ToDate = CLDIC.COMPASS_SE_MUST_CHOOSE_ToDate;

var COMPASS_SE_TourismDataURL = CLVAR.COMPASS_SE_TourismDataURL;

var COMPASS_SE_ActiveTabName = "";



/**********************************/

var COMPASS_SE_Main_oLastActiveTR = null;
var COMPASS_SE_Dest_oLastActiveTR = null;

var COMPASS_SE_cityXML=new ActiveXObject("Microsoft.XMLDOM")
COMPASS_SE_cityXML.async=false
var COMPASS_SE_bIsLoaded = false;

/*********************************************/

function COMPASS_SE_InitPage()
{

	COMPASS_SE_sLoadXMLFromURL = COMPASS_SE_TourismDataURL + "activeDestinationsByCountry.xml";
	//alert(COMPASS_SE_sLoadXMLFromURL);
	COMPASS_SE_bIsLoaded = COMPASS_SE_InitCitiesXML();
	
	if(COMPASS_SE_MainDefaultKey != "") // "" means that div is invisible
	{
		COMPASS_SE_InitSelectData_Main();
		document.all("RadioSEType_Main_" + COMPASS_SE_MainDefaultKey).click();
	}
	
	if(COMPASS_SE_DestDefaultKey != "") // "" means that div is invisible
	{
		document.all("RadioSEType_Dest_" + COMPASS_SE_DestDefaultKey).click();
	}
	
	COMPASS_SE_ActiveTabName = COMPASS_SE_GetTabNameFromDefaultTab();
		
	COMPASS_SE_TabClick(COMPASS_SE_ActiveTabName);
	
	COMPASS_SE_LoadPageDefaults();
	
	COMPASS_SE_SetRadioDivDisplay();
	
	if(!COMPASS_SE_bIsOpen)
	{
		COMPASS_SE_SetSEDisplay(false);
	}
	else
	{
		COMPASS_SE_SetSEDisplay(true);
	}
	
}

function COMPASS_SE_SetSEDisplay(bShow)
{
	
	try{
		document.all(COMPASS_SE_FrameWorkClientID + "SEMainTD").style.display = bShow ? '': 'none';
	}catch(e){}
	try{
		document.all(COMPASS_SE_FrameWorkClientID + "SESpacerTD").style.display = bShow ? '': 'none';
	}catch(e){}
	try{
		document.all(COMPASS_SE_FrameWorkClientID + "SEDestTD").style.display = bShow ? '': 'none';
	}catch(e){}
	try{
		document.all.CompassSE_TR1.style.display = bShow ? '': 'none';
	}catch(e){}
	try{
		document.all.CompassSE_TR2.style.display = bShow ? '': 'none';
	}catch(e){}
	try{
		document.all.SE_VisibleOption_Minus.style.display = bShow ? '': 'none';	
	}catch(e){}
	try{
		document.all.SE_VisibleOption_Plus.style.display = bShow ? 'none': '';	
	}catch(e){}
}

function COMPASS_SE_SetRadioDivDisplay()
{
	var iCount = 0;
	if(COMPASS_SE_MainDefaultKey != "")
	{
		if(COMPASS_SE_TR_Main_F_IsVisible) iCount ++;
		if(COMPASS_SE_TR_Main_FD_IsVisible) iCount ++;
		if(COMPASS_SE_TR_Main_P_IsVisible) iCount ++;
		if(COMPASS_SE_TR_Main_S_IsVisible) iCount ++;
		if(iCount < 2)
		{
			document.all.MainRadioDiv.style.display = "none";
		}
	}
	iCount = 0;
	if(COMPASS_SE_DestDefaultKey != "")
	{
		if(COMPASS_SE_TR_Dest_F_IsVisible)	iCount ++;
		if(COMPASS_SE_TR_Dest_FD_IsVisible) iCount ++;
		if(COMPASS_SE_TR_Dest_P_IsVisible)	iCount ++;
		if(COMPASS_SE_TR_Dest_S_IsVisible)	iCount ++;
		if(iCount < 2)
		{
			document.all.DestRadioDiv.style.display = "none";
		}
	}
}

function COMPASS_SE_GetTabNameFromDefaultTab()
{
	return COMPASS_SE_TR_DefaultTab == "MAIN" ? "Main" : "Dest";
}

function COMPASS_SE_LoadPageDefaults()
{
	var s = "";
	var sType = COMPASS_SE_QS_Type;
	
	if (COMPASS_SE_QS_TabName == "") 
	{
		COMPASS_SE_QS_TabName = COMPASS_SE_TR_DefaultTab;
	}
	
	//alert("COMPASS_SE_QS_Source="+COMPASS_SE_QS_Source+"\nCOMPASS_SE_QS_TabName="+COMPASS_SE_QS_TabName+"\nCOMPASS_SE_QS_Type="+COMPASS_SE_QS_Type);
	
	if(COMPASS_SE_QS_Source == "" || COMPASS_SE_QS_Type == "") return false;
	COMPASS_SE_TabClick(COMPASS_SE_QS_TabName);
	try
	{
	document.all("RadioSEType_" + COMPASS_SE_QS_TabName + "_" + sType).click();
	}
	catch(e){}
	
	if(COMPASS_SE_QS_TabName.toLowerCase() == "main")
	{
		var countryNode = COMPASS_SE_cityXML.selectSingleNode("//Country[City/@Code='"+COMPASS_SE_QS_DestCode+"']")
		if(countryNode != null) 
		{	
			COMPASS_SE_QS_CountryCode = countryNode.getAttribute("EN");
		}
		s = COMPASS_SE_QS_CountryCode;
		if(s!="") 
		{ 
			try{
				ListBox_SetItemsSelected(document.all("selectCountry" + sType), s); 
			}catch(e){}
		}
		s = COMPASS_SE_QS_DestCode;
		if(s!="")
		{ 
			try{
				ListBox_SetItemsSelected(document.all("selectCity" + sType), s);
			}catch(e){} 
		}	
		s = COMPASS_SE_QS_HotelCategories + "*"; 
		if(s!="") 
		{ 
			try{
				ListBox_SetItemsSelected(document.all("selectHotelRate"), s); 
			}catch(e){}
		}
		s = COMPASS_SE_QS_MinSeats;
		if(s!="")
		{ 
			try{
				ListBox_SetItemsSelected(document.all("selectPassengersCount"), s);
			}catch(e){}
		}
		s = COMPASS_SE_RunSearch_UnFormatDate(COMPASS_SE_QS_OutboundDate); 
		if(s!="")
		{
			try{
				document.all("FromDate" + sType).value = s; 
			}catch(e){}
		}
		s = COMPASS_SE_RunSearch_UnFormatDate(COMPASS_SE_QS_InboundDate);
		if(s!="")
		{ 
			try{
				document.all("ToDate" + sType).value = s;
			}catch(e){}
		}
	}
	else //if(sKey == "Dest")
	{
		s = COMPASS_SE_QS_DestCode; if(s != "") { ListBox_SetItemsSelected(document.all(COMPASS_SE_FrameWorkClientID + "selectCitiesDest_" + sType), s) }
	}
	
	return true;
}

function COMPASS_SE_TabClick(sKey)
{
	var oMain = null;
	var oDest = null;
	
	var bMain = COMPASS_SE_MainDefaultKey != "";
	var bDest = COMPASS_SE_DestDefaultKey != "";
	if(bMain != "")	oMain = document.all(COMPASS_SE_FrameWorkClientID + "SEMainTD");
	if(bDest != "") oDest = document.all(COMPASS_SE_FrameWorkClientID + "SEDestTD");
	COMPASS_SE_ActiveTabName=sKey;

	if(sKey.toLowerCase() == "main") 
	{
		if(bMain && oMain)	oMain.className = 'tab001_on';
		if(bMain)	document.all(COMPASS_SE_FrameWorkClientID + "SEMainDiv").style.display='block';
		if(bDest)	oDest.className = 'tab001_off';
		if(bDest)	document.all(COMPASS_SE_FrameWorkClientID + "SEMainDestinationDiv").style.display='none';
	}
	else //if(sKey == "Dest")
	{
		if(bMain)	document.all(COMPASS_SE_FrameWorkClientID + "SEMainDiv").style.display='none';
		if(bMain && oMain)	oMain.className = 'tab001_off';
		if(bDest)	oDest.className = 'tab001_on';
		if(bDest)	document.all(COMPASS_SE_FrameWorkClientID + "SEMainDestinationDiv").style.display='block';
	}
}

function COMPASS_SE_RunSearch_DestDirectTarget(sType, sID)
{
	location.href = COMPASS_SE_RunSEOnUrl + "?Source=SE&TabName=" + COMPASS_SE_ActiveTabName + "&Type=" + sType + "&DestCode=" + sID;
}

function COMPASS_SE_RunSearch_Dest(sType)
{
	if(!COMPASS_SE_IsAbleToRunSearchDest(sType)) return;
	var sURL = COMPASS_SE_RunSEOnUrl + "?Source=SE&TabName=" + COMPASS_SE_ActiveTabName + "&Type=" + sType;
	sKey = "selectCitiesDest_"; s = COMPASS_SE_GetListSelectedValue(COMPASS_SE_FrameWorkClientID + sKey, sType);	
	if(s!="")	sURL += "&DestCode=" + s;
	location.href = sURL;
}

function COMPASS_SE_IsAbleToRunSearchDest(sType)
{
	sKey = "selectCitiesDest_";
	o = document.all(COMPASS_SE_FrameWorkClientID + sKey + sType);
	s = o.options[o.options.selectedIndex].value;
	if(s=="" || s=="0") 
	{ 
		alert(COMPASS_SE_MUST_CHOOSE_CITY);
		o.focus();
		return false; 
	}
	return true;
}

function COMPASS_SE_InitSelectData_Main()
{
	var oSelect, sKey, sXMLType;
	sKey = "P"; sXMLType = "p";	
	if(COMPASS_SE_TR_Main_P_IsVisible == true)
	{
		oSelect = document.all("selectCity" + sKey);
		COMPASS_SE_initCitiesList(oSelect);	
		oSelect = document.all("selectCountry" + sKey);
		if(COMPASS_SE_bIsLoaded) 
		{
			COMPASS_SE_fillCountriesList(oSelect,sXMLType,false);
		}
		else 
		{
			COMPASS_SE_initCountriesList(oSelect);
		}
	}
	
	sKey = "S"; sXMLType = "s";	
	if(COMPASS_SE_TR_Main_S_IsVisible == true)
	{
		oSelect = document.all("selectCity" + sKey);
		COMPASS_SE_initCitiesList(oSelect);	
		oSelect = document.all("selectCountry" + sKey);
		if(COMPASS_SE_bIsLoaded) 
		{
			COMPASS_SE_fillCountriesList(oSelect,sXMLType,false);
		}
		else 
		{
			COMPASS_SE_initCountriesList(oSelect);
		}
	}
		
	sKey = "F"; sXMLType = "f";	
	if(COMPASS_SE_TR_Main_F_IsVisible == true)
	{
		oSelect = document.all("selectCity" + sKey); 
		COMPASS_SE_initCitiesList(oSelect);	
		oSelect = document.all("selectCountry" + sKey);
		if(COMPASS_SE_bIsLoaded) 
		{
			COMPASS_SE_fillCountriesList(oSelect,sXMLType,false);
		}
		else 
		{
			COMPASS_SE_initCountriesList(oSelect);
		}
	}
	
	sKey = "FD"; sXMLType = "p";
	if(COMPASS_SE_TR_Main_FD_IsVisible == true)
	{
		oSelect = document.all("selectCity" + sKey); 
		COMPASS_SE_initCitiesList(oSelect);	
		oSelect = document.all("selectCountry" + sKey); 
		if(COMPASS_SE_bIsLoaded)
		{
			COMPASS_SE_fillCountriesList(oSelect,sXMLType,true);
		}
		else 
		{
			COMPASS_SE_initCountriesList(oSelect);
		}
	}
}

function COMPASS_SE_GetDateFromCalendar(params)
{
	var qString = "";
	for(var x in params)
	{
		if(params[x]!="") qString+=("&"+x+"="+params[x]);
	}
	//qString += ("&rand="+Math.random());
	var sURL = CLVAR.COMPASS_SE_CALENDAR_URL+qString;
	try
	{
		if (COMPASS_SE_ISRAEL_HOTELS)
		{
			sURL+="&packLang=he"
		}
	}
	catch(e) {}
	//alert(sURL) //remove this	
	//return window.open(sURL);
	return ShowModalDialog(sURL, params, 410, 320).toString();
}



function COMPASS_SE_Main_GetSelectedDest(sType)
{
	sKey = "selectCity";
	o = document.all(sKey + sType); 
	var oSelectedOption = o.options[o.options.selectedIndex];
	s = oSelectedOption.value;
	if(s=="" || s=="0")	return null;
	else	return oSelectedOption;
}

function COMPASS_SE_Main_GetSelectedPassengersCount()
{
	sKey = "selectPassengersCount"; 
	s = COMPASS_SE_GetListSelectedValue(sKey, "");	
	return s;
}

function COMPASS_SE_ResetDateControl(sType)
{
	document.all("FromDate" + sType).value = "";
	document.all("ToDate" + sType).value = "";
}

function COMPASS_SE_ResetHotelCategory()
{
	var obj=document.getElementById("selectHotelRate");
	if(obj)
		obj.selectedIndex=0;
}

function COMPASS_SE_SelectDate(bIsFromDate, sType)
{
	var oInputFrom = document.all("FromDate" + sType);
	var oInputTo = document.all("ToDate" + sType);
	if(!COMPASS_SE_CheckIsSelectedTarget(sType)) return false;
	if(!bIsFromDate)
	{
		if(!COMPASS_SE_CheckIsSelectedDate(sType, true)) return false;
	}
	oInputTo.value = "";
	if(bIsFromDate) oInputFrom.value = "";
	var oSelectedOption, sSelectedID, sSelectedLabel;
	oSelectedOption = COMPASS_SE_Main_GetSelectedDest(sType);
	if(!oSelectedOption)	return false;	
	sSelectedID = oSelectedOption.value;
	sSelectedLabel = oSelectedOption.text;
	var OutboundDate = "";
	if(!bIsFromDate)
	{
		var sKey = "FromDate";
		OutboundDate = COMPASS_SE_RunSearch_FormatDate(document.all(sKey + sType).value);
	}
	var PassengersCount = "";
	if(sType=="F")
	{
		PassengersCount = COMPASS_SE_Main_GetSelectedPassengersCount();
	}
	var oCalendarParams = {};
	oCalendarParams.Type=sType;							//'F','P','FD'
	oCalendarParams.DestCode=sSelectedID;				//from destinations select - value
	oCalendarParams.DestLabel=escape(sSelectedLabel);	//from destinations select - text
	oCalendarParams.OutboundDate=OutboundDate;			//'2006-03-12'//if exist
	oCalendarParams.MinSeats=PassengersCount;			//if exist
	
	var sDate = COMPASS_SE_GetDateFromCalendar(oCalendarParams);
	if(sDate == "") return false;
	if(bIsFromDate)	oInputFrom.value = sDate;
	else			oInputTo.value = sDate;
	return true;
}


function COMPASS_SE_CheckIsSelectedTarget(sType)
{
	sKey = "selectCountry"; 
	o = document.all(sKey + sType);
	s = o.options[o.options.selectedIndex].value;	
	if(s=="" || s=="0")
	{ 
		alert(COMPASS_SE_MUST_CHOOSE_COUNTRY);
		o.focus();
		return false; 
	}
	sKey = "selectCity";
	o = document.all(sKey + sType);
	s = o.options[o.options.selectedIndex].value;	
	if(s=="" || s=="0")
	{ 
		alert(COMPASS_SE_MUST_CHOOSE_CITY);
		o.focus();
		return false;
	}	
	return true;
}

function COMPASS_SE_CheckIsSelectedDate(sType, bFromDate)
{
	if(bFromDate)
	{
		sKey = "FromDate";
		sMsg = COMPASS_SE_MUST_CHOOSE_FromDate;
	}
	else
	{
		sKey = "ToDate";
		sMsg = COMPASS_SE_MUST_CHOOSE_ToDate;
	}
	s = document.all(sKey + sType).value;
	if(s=="" || s=="0")
	{ 
		alert(sMsg);
		o.focus();
		return ""; 
	}	
	return s;
}

function COMPASS_SE_IsAbleToRunSearchMain(sType)
{
	if(!COMPASS_SE_CheckIsSelectedTarget(sType)) return false;
	return true;
}

function COMPASS_SE_GetListSelectedValue(sKey, sType)
{
	o = document.all(sKey + sType); 
	return o.options[o.options.selectedIndex].value;
}
function COMPASS_SE_GetListSelectedText(sKey, sType)
{
	o = document.all(sKey + sType); 
	return o.options[o.options.selectedIndex].text;
}


function COMPASS_SE_RunSearch_Main(sType)
{
	if(!COMPASS_SE_IsAbleToRunSearchMain(sType)) return;
	var sURL = COMPASS_SE_RunSEOnUrl + "?Source=SE&TabName=" + COMPASS_SE_ActiveTabName + "&Type=" + sType;
	sKey = "selectCountry"; s = COMPASS_SE_GetListSelectedValue(sKey, sType);	
	if(s!="") sURL += "&CountryCode=" + s; 
	sKey = "selectCity"; 
	s = COMPASS_SE_GetListSelectedValue(sKey, sType);	
	if(s!="")	sURL += "&DestCode=" + s;
	s = COMPASS_SE_GetListSelectedText(sKey, sType);	
	if(s!="")	sURL += "&DestLabel=" + s;
	if(sType=="P")
	{
		sKey = "selectHotelRate"; 
		s = COMPASS_SE_GetListSelectedValue(sKey, "").replace("*","");	
		if(s!="")	sURL += "&HotelCategories=" + s 
	}
	else if(sType=="F")
	{
		sKey = "selectPassengersCount";
		s = COMPASS_SE_GetListSelectedValue(sKey, "");	
		if(s!="") sURL += "&MinSeats=" + s;		
	}
	sKey = "FromDate";
	s = COMPASS_SE_RunSearch_FormatDate(document.all(sKey + sType).value);
	if(s!="")	sURL += "&OutboundDate=" + s; 		
	
	sKey = "ToDate";
	s = COMPASS_SE_RunSearch_FormatDate(document.all(sKey + sType).value);
	if(s!="")	sURL += "&InboundDate=" + s;
	location.href = sURL;
}

function COMPASS_SE_RunSearch_FormatDate(s)
{
	var arr = s.split("/");
	if(arr.length != 3) return "";
	return "20" + arr[2] + "-" + arr[1] + "-" + arr[0];
}

function COMPASS_SE_RunSearch_UnFormatDate(s)
{
	var arr = s.split("-");
	if(arr.length != 3) return "";
	return arr[2] + "/" + arr[1] + "/" + arr[0].substring(2);
}

function COMPASS_SE_Main_ShowTRByID(sID)
{
	var oTR = document.all(COMPASS_SE_FrameWorkClientID + "TR_Main_" + sID);
	if(COMPASS_SE_Main_oLastActiveTR == oTR) return;	
	if(COMPASS_SE_Main_oLastActiveTR != null)
	{
		COMPASS_SE_Main_oLastActiveTR.style.display = 'none';
	}
	COMPASS_SE_Main_oLastActiveTR = oTR;
	COMPASS_SE_Main_oLastActiveTR.style.display = 'inline';	
}

function COMPASS_SE_Dest_ShowTRByID(sID)
{
	var oTR = document.all(COMPASS_SE_FrameWorkClientID + "TR_Dest_" + sID);
	if(COMPASS_SE_Dest_oLastActiveTR == oTR) return;	
	if(COMPASS_SE_Dest_oLastActiveTR != null)
	{
		COMPASS_SE_Dest_oLastActiveTR.style.display = 'none';
	}
	COMPASS_SE_Dest_oLastActiveTR = oTR;
	COMPASS_SE_Dest_oLastActiveTR.style.display = 'inline';
}

function COMPASS_SE_InitCitiesXML()
{
	return COMPASS_SE_cityXML.load(COMPASS_SE_sLoadXMLFromURL);
}

function COMPASS_SE_fillCountriesList(select,type,bFlyAndDrive)
{
	//alert("COMPASS_SE_fillCountriesList("+select+","+type+","+bFlyAndDrive+")")
	if(!COMPASS_SE_bIsLoaded) return false;
	var tmp_lang = "HE";
	var xPath = "//Country[@EN!='ISRAEL' and City/@"+type+"='1'"+(bFlyAndDrive?" and City/@FlyAndDrive='1'":"" )+"]"
	
	// in case of israel configuration - select only one country - ISRAEL
	if(COMPASS_SE_ISRAEL_HOTELS==true)
		xPath = "//Country[@EN='ISRAEL' and City/@"+type+"='1']"
	//alert(type + " : " + bFlyAndDrive + " : " + xPath)
	
	var countries = COMPASS_SE_cityXML.documentElement.selectNodes(xPath)
	select.length=countries.length+1;
	select[0].text = COMPASS_SE_SELECT_COUNTRY_TITLE;
	select[0].value = "";
	select[0].selected=true;
	for(var i=1;i<countries.length+1;i++)
	{
		var e = countries.nextNode();
		select[i].text=e.getAttribute(tmp_lang);
		select[i].value=e.getAttribute("EN");
	}
}
function COMPASS_SE_initCitiesList(select)
{
	select.length=1;
	select[0].text = COMPASS_SE_SELECT_CITY_TITLE;
	select[0].value = "";
	select[0].selected=true;
}

function COMPASS_SE_initCountriesList(select)
{
	select.length=1;
	select[0].text = COMPASS_SE_SELECT_COUNTRY_TITLE;
	select[0].value = "";
	select[0].selected=true;
}

function COMPASS_SE_fillCitiesList(select,value,type,bFlyAndDrive)
{
	if(!COMPASS_SE_bIsLoaded) return false;
	if(value == "")
	{
		COMPASS_SE_initCitiesList(select);
		return;
	}

	var tmp_lang = "HE";
	//alert("//Country[@EN='"+value+"']/City[@"+type+"='1'"+(bFlyAndDrive?" and @FlyAndDrive='1'":" and not(@OnlyFlyAndDrive) ")+"]")
	var xPath = "//Country[@EN='"+value+"']/City[@"+type+"='1'"+(bFlyAndDrive?" and @FlyAndDrive='1'":"")+"]"
	//alert(type + " : " + bFlyAndDrive + " : " + xPath)
	var cityes=COMPASS_SE_cityXML.documentElement.selectNodes(xPath);
	//alert(cityes.length)
	
	select.length=cityes.length+1;
	select[0].text = COMPASS_SE_SELECT_CITY_TITLE;
	select[0].value = "";
	select[0].selected=true;
	for(var i=1;i<cityes.length+1;i++)
	{
		var e = cityes.nextNode();
		select[i].text=e.getAttribute(tmp_lang)
		select[i].value=e.getAttribute("Code")
	}
}
