var IE4 = (document.all && !document.getElementById) ? true : false;
var NS4 = (document.layers) ? true : false;
var IE5 = (document.all && document.getElementById) ? true : false;
var N6 = (document.getElementById && !document.all) ? true : false;
var NS = (window.Event) ? 1 : 0;

var type = "ie"; 
var ddlResort;
var updateDiv;
var ControlId;
var xmlHttp;

function checkKey(e) {
  var code = (NS) ? e.which : event.keyCode;
  if (code == "13"){
	return false; }
}
//document.onkeypress = checkKey;



function GetXmlHttpObject() {

	xmlHttp = null;
	
   var ua = navigator.userAgent.toLowerCase();
   if (!window.ActiveXObject)
     xmlHttp = new XMLHttpRequest();
   else if (ua.indexOf('msie 5') == -1)
     xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
   else
     xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

	return xmlHttp;
}

function setSrc(id, url) {
  if (NS4) {eval("document." + id + ".document." + id).src = url}
  else if (IE4) {eval("document.all." + id).src = url}
       else if (IE5 || N6) {document.getElementById(id).src = url};
}

function getObject(object) {
    if (document.getElementById && document.getElementById(object) != null){
        return document.getElementById(object);
	}else if (document.layers && document.layers[object] != null){
		return document.layers[object];
	}else if (document.all){
		return document.all[object];
	}
}

function showHide(object) {

    if (document.getElementById && document.getElementById(object) != null){
		if (document.getElementById(object).style.display == 'none'){
	        document.getElementById(object).style.display ='';
	    }else {
	        document.getElementById(object).style.display ='none';
	    }
	}else if (document.layers && document.layers[object] != null){
        if (document.layers[object].visibility == 'hidden'){
			document.layers[object].visibility = 'visible'
		}else {
			document.layers[object].visibility = 'hidden'
		}
	}else if (document.all){
		if (document.all[object].style.display == 'none'){
			document.all[object].style.display = '';
		}else {
			document.all[object].style.display = 'none';
		}
	}
}

function showHideExt(object,img) {

    if (document.getElementById && document.getElementById(object) != null){
		if (document.getElementById(object).style.display == 'none'){
	        document.getElementById(object).style.display ='';
	        setSrc(img,"img/interior/prodselect_exp.gif");
	    }else {
	        document.getElementById(object).style.display ='none';
	        setSrc(img,"img/interior/prodselect_min.gif");
	    }
	}else if (document.layers && document.layers[object] != null){
        if (document.layers[object].visibility == 'hidden'){
			document.layers[object].visibility = 'visible'
	        setSrc(img,"img/interior/prodselect_exp.gif");
		}else {
			document.layers[object].visibility = 'hidden'
			setSrc(img,"img/interior/prodselect_min.gif");
		}
	}else if (document.all){
		if (document.all[object].style.display == 'none'){
			document.all[object].style.display = '';
	        setSrc(img,"img/interior/prodselect_exp.gif");
		}else {
			document.all[object].style.display = 'none';
			setSrc(img,"img/interior/prodselect_min.gif");
		}
	}
}

function showHideByAction(object,Action) {
    if (document.getElementById && document.getElementById(object) != null){
	        document.getElementById(object).style.display = (Action == 'show') ? '' : 'none';
	}else if (document.layers && document.layers[object] != null){
			document.layers[object].visibility = (Action == 'show') ? 'visible' : 'hidden';
	}else if (document.all){
			document.all[object].style.display = (Action == 'show') ? '' : 'none';
	}
}

function enableDisableByAction(object,Action) {
	
    if (document.getElementById && document.getElementById(object) != null){
        document.getElementById(object).disabled = (Action == 'show') ? false : true;
	}
	else if (document.layers && document.layers[object] != null){
			document.layers[object].disabled = (Action == 'show') ? false : true;
	}
	else if (document.all){
			document.all[object].disabled = (Action == 'show') ? false : true;
	}
}

function ShowHideDetail()
{
	showHide('resinfo_intro');
	showHide('resinfo_photos');
	showHide('resinfo_full');
}


function getYearDays(year)
{
	if (checkleapyear(year) == true)
		return 365;
	else
		return 366;
}


function GetDateBeforeDays(currdate,days)
{
	var oneday = 60 * 1000 * 60 * 24 ;
	var daysbefore = parseInt(days);
	var currdatems = currdate.getTime();

	var addms = oneday * daysbefore;

	var daysbeforedate = new Date();
	daysbeforedate.setTime(currdatems - addms);
	return daysbeforedate;
}

function GetDateAfterDays(currdate,days)
{	
	var oneday = 60 * 1000 * 60 * 24 ;
	var daysafter = parseInt(days);
	var currdatems = currdate.getTime();

	var addms = oneday * daysafter;

	var daysafterdate = new Date();
	daysafterdate.setTime(currdatems + addms);
	return daysafterdate;
}


function DoExpand(divt,divd)
{
	showHide(divd)
	showHide(divt)
}

function DoExpandExt(divt,divd,img)
{
	showHideExt(divt,img)
	showHide(divd)
}


function make_return(ouwardlist,returnlist){
	arr = getObject(ouwardlist).value.split(" - ");
	getObject(returnlist).value = arr[1] + " - " + arr[0];
}

function make_return_nav(x){
	arr = x.Interior_engine1_ddlOutward1.value.split(" - ");
	if (x.Interior_engine1_ddlReturn1 != null)
		x.Interior_engine1_ddlReturn1.value = arr[1] + " - " + arr[0];
}


 
function flipx(id,s,m){
	for(n=1;n<=m;n++){
		div=id+n
		div2=id+n
		if(document.getElementById(div)){
			xImg = document.getElementById(div2)
			n==s?sShow(div):sHide(div)
		}
	}

  }
  
function flip(id,s,m){
	for(n=1;n<=m;n++){
		div=id+n
		div2='img'+n
		if(document.getElementById(div)){
			xImg = document.getElementById(div2)
			n==s?xImg.src='img/int/accom/accom_a2_minimise.gif':xImg.src='img/int/accom/accom_a2_expand.gif'
			n==s?sShow(div):sHide(div)
		}
	}

  }

 function imgflip(id,s,m){
	div2='img'+s
	xImg = document.getElementById(div2)
	xImg.src.indexOf('img/int/accom/accom_a2_expand.gif')>0?flip(id,s,m):flip(id,0,m)
 } 

 function flipimgtxt(div)
 {
	if (GetVisibility('div_' + div) == true) {
		sHide('div_' + div  + '_img');
		sShow('div_' + div  + '_txt');
		sHide('div_' + div);
	}else{
		sShow('div_' + div + '_img');
		sHide('div_' + div + '_txt');
		sShow('div_' + div);
	}
 }

function setDatesIns(Control)
{
	var startdate = getObject(Control + '_txtStartDate').value;
	if (startdate.indexOf('/') > 0)
	{
		
		var iDay   = startdate.split('/')[0];
		var iMonth = startdate.split('/')[1];
		var iYear  = startdate.split('/')[2];
		var pType  = parseInt(getObject(Control + '_ddlPolicyType').value);

		if (!(isNaN(iDay) || isNaN(iMonth) || isNaN(iYear)))
		{
			switch (pType)
			{
				case 1:
					var cDate = new Date(iYear, iMonth-1, iDay);

					var nDate = GetDateAfterDays(cDate,1);
					iDay   = nDate.getDate();
					iMonth = nDate.getMonth() + 1;
					iYear  = nDate.getFullYear();

					iDay   = (iDay < 10)   ? '0' + iDay  : iDay;
					iMonth = (iMonth < 10) ? '0' + iMonth: iMonth;
					
					var newDate = iDay + '/' + iMonth + '/' + iYear;
					getObject(Control + '_txtEndDate').value = newDate;
					break;

				case 3:
					var cDate = new Date(iYear, iMonth-1, iDay);
					var nDate = GetDateAfterDays(cDate,365);

					iDay   = nDate.getDate();
					iMonth = nDate.getMonth() + 1;
					iYear  = nDate.getFullYear();

					iDay   = (iDay   < 10) ? '0' + iDay  : iDay;
					iMonth = (iMonth < 10) ? '0' + iMonth: iMonth;
					var newDate = iDay + '/' + iMonth + '/' + iYear;
					getObject(Control + '_txtEndDate').value = newDate;
					
					break;
			}
		}else{
			alert('Please enter correct date');
		}
	}else{
		alert('Please enter correct date');
	}
}

function EnableDisableControls(Control)
{
	DisableControls(Control);

	var PolicyType  = getObject(Control + '_ddlPolicyType').value;
	var ddlCoverFor = getObject(Control + '_ddlCoverFor').value;
	
	switch (ddlCoverFor)
	{
		case '1':
			getObject(Control + '_ddlInfants').value = 0;
			getObject(Control + '_ddlChildren').value = 0;
			getObject(Control + '_ddlAdults').value = 1;
			break;
		case '2'://Couple
			switch (PolicyType)
			{
				case '1':
					enableDisableByAction(Control + '_ddlInfants','show');			
					getObject(Control + '_ddlChildren').value = 0;
					getObject(Control + '_ddlAdults').value = 2;
					break;
				default :
					getObject(Control + '_ddlInfants').value = 0;
					getObject(Control + '_ddlChildren').value = 0;
					getObject(Control + '_ddlAdults').value = 2;
					enableDisableByAction(Control + '_ddlInfants','hide');			
					break;
			}
			break;
		case '3':
			enableDisableByAction(Control + '_ddlInfants','show');			
			enableDisableByAction(Control + '_ddlChildren','show');			
			getObject(Control + '_ddlAdults').value = 1;
			break;
		case '4':
			enableDisableByAction(Control + '_ddlInfants','show');			
			enableDisableByAction(Control + '_ddlChildren','show');	
			getObject(Control + '_ddlAdults').value = 2;
			break;	
		case '5':
			enableDisableByAction(Control + '_ddlAdults','show');
			getObject(Control + '_ddlInfants').value = 0;
			getObject(Control + '_ddlChildren').value = 0;
			break;
	}
	
	switch (PolicyType)
	{
		case '5':
		getObject(Control + '_ddlCoverFor').value = 1;		
		break;
	}

}

function DisableControls(Control)
{
	enableDisableByAction(Control + '_ddlInfants','hide');			
	enableDisableByAction(Control + '_ddlChildren','hide');	
	enableDisableByAction(Control + '_ddlAdults','hide');			
}


function ResetSelection(Control)
{
	EnableDisableControls(Control);
}

function GetVisibility(div)
 {
   obj = getObject(div);
   if (!document.layers){
		if (obj.style.display=='block')
			return true;
		else
			return false;
   }else{
		if (obj.visibility=='show')
			return true;
		else
			return false;
    }
 }
     
function sShow(div){
	if(document.getElementById)
		obj=eval("document.getElementById('"+div+"')");
	else if(document.all)
		obj=eval("document.all."+div);
	else if(document.layers)
		obj=eval("document.layers['"+div+"']");
	!document.layers?obj.style.display='block':obj.visibility='show'
}

function sHide(div){
	if(document.getElementById)
		obj=eval("document.getElementById('"+div+"')");
	else if(document.all)
		obj=eval("document.all."+div);
	else if(document.layers)
		obj=eval("document.layers['"+div+"']");
	!document.layers?obj.style.display='none':obj.visibility='hidden'
 }
 
 function AskChildAges(id,Quantity,RoomNumber){
	var cdef
	for (def=0; def < 19 ; def++){
		cdef += '<option value='+ def +'>'+ def +'</option>' 
	}

	var div = getObject(id)
	if(div){
		div.innerHTML = ""
		cs=""
		if(Quantity>0){
			cs = '<span style="COLOR: #71b4ef">Please specify the ages of the children in Room '+ RoomNumber +':</span>'
			cs += '<table style="MARGIN-TOP: 10px" border="0" cellpadding="0" cellspacing="0">'
			
				for (ca=1; ca <= Quantity ; ca++){
					cs += '<tr>'
            		cs += '<td style="WIDTH: 75px; HEIGHT: 25px">Child '+ ca + '</td>'
					cs += '    <td style="PADDING-RIGHT: 15px">'
					cs += '    	<select name="'+ id+'_'+ ca +'">'
					cs += cdef 
					cs += '     </select> years'
					cs += '    </td>'
					cs += ' </tr>'
				}
			cs += '</table>'
		} 
		div.innerHTML = cs
	}
}
 
//------------------------------------------ AJAX Caller Functions -----------------------------------------

 function Signup(email,referrer)
 {
	sShow('signupmsg');
	getObject('signupmsg').innerHTML = '<b>Please wait...</b>';
	AjaxHandler.SignupNewsletter(email,referrer,Signup_CallBack);
 }
 
  function SetCountry(value,selcnt,selres)
 {
	ddlResort = selres;
	getObject(selcnt).value = value;
	AjaxHandler.GetResorts(value,GetResorts_CallBack);
 }
 
 function GetResortList(value,selres)
{
	ddlResort = selres;
	AjaxHandler.GetResorts(value,GetResorts_CallBack);
}

function DoResortComparison()
{
	var c1 = getObject('c1').options[getObject('c1').options.selectedIndex].value;
	var r1 = getObject('r1').options[getObject('r1').options.selectedIndex].value;
	var c2 = getObject('c2').options[getObject('c2').options.selectedIndex].value;
	var r2 = getObject('r2').options[getObject('r2').options.selectedIndex].value;
	var c3 = getObject('c3').options[getObject('c3').options.selectedIndex].value;
	var r3 = getObject('r3').options[getObject('r3').options.selectedIndex].value;

	getObject('resortCompare').innerHTML = '<img src="img/preloader/preload.gif">';

	AjaxHandler.GetResortComparison(c1,r1,c2,r2,c3,r3,ResortComparison_CallBack)
}

function SearchComtec(Country,Resort,AirPortCode,DeptDateMin,NightsMax,SortMode,ResultsLimit, AdultPriceMax)
{	
	getObject('divComtecResults').innerHTML ='<img src="img/preloader/preload.gif">';
	
	AjaxHandler.DoComtecSearch(Country,Resort,AirPortCode,DeptDateMin,NightsMax,SortMode,ResultsLimit, AdultPriceMax, Comtec_CallBack);
}


function SearchComtecExt(ResultsLimit, AdultPriceMax)
{
	var Destination	= getObject('destination').value;
	var Country		= Destination.split(' - ')[0];
	var Resort		= Destination.split(' - ')[1];
	var AirPortCode = getObject('ddlAirportCode').value;
	var NightsMax   = getObject('ddlNightsMax').value;
	var DeptDateMin = getObject('DeptDateMin').value;
	var SortMode	= 'resort_name';
	
	getObject('divComtecResults').innerHTML ='<img src="img/preloader/preload.gif">';
	
	AjaxHandler.DoComtecSearch(Country,Resort,AirPortCode,DeptDateMin,NightsMax,SortMode,ResultsLimit, AdultPriceMax, Comtec_CallBack);
}


function ShowVideo(Location, URL)
{
	var embed = '<object width="390" height="304" viewastext><param name="movie" value="{0}" /><param name="wmode" value="transparent" /><embed src="{1}" type="application/x-shockwave-flash" wmode="transparent" width="382" height="304"></embed></object>';
	embed = embed.replace('{0}',URL);
	embed = embed.replace('{1}',URL);
	AjaxHandler.GetPlayList(Location,URL,Video_Callback);
	getObject('divVideo').innerHTML = embed;
}

function GetCarCities(Control,Value,Type)
{
	ControlId = Control;
	switch(Type)
	{
		case 1:
			if (Value == 227){
				getObject(Control + '_ddlPickupCity').options.length = 0;
				getObject(Control + '_ddlPickupCity').options[0] = new Option("--- Select Cities ---","0");
				getObject(Control + '_ddlPickupCity').disabled = true;
				getObject(Control + '_ddlPickupState').disabled = false;
			}else{
				AjaxHandler.GetCitiesByCountry(Value,GetCities_CallBack);
				getObject(Control + '_ddlPickupState').options[0].selected = true;
				getObject(Control + '_ddlPickupState').disabled = true;
			}
			
			break;
		case 2:
			AjaxHandler.GetCitiesByState(Value,GetCities_CallBack);
			break;
	}
}

function DisableState(Control)
{
	if (getObject(Control + '_ddlPickupCountry').options[getObject(Control + '_ddlPickupCountry').selectedIndex].value == 227)
		getObject(Control + '_ddlPickupState').disabled = false;
	else
		getObject(Control + '_ddlPickupState').disabled = true;	
}

function getInformation(div,pid,sid,tab,prod) {

	updateDiv = div;
	document.getElementById(updateDiv).innerHTML = "<img src='img/preloader/preload.gif' width='50px' height='50px'/>";
	xmlHttp = GetXmlHttpObject();
	
	if (xmlHttp == null) {
		alert("Your browser does not support AJAX!");
		return;
	} 

	getObject(pid + 'natab1').className = 'newaccom_tab newaccom_tab_0';
	getObject(pid + 'natab2').className = 'newaccom_tab newaccom_tab_0';
	getObject(pid + 'natab3').className = 'newaccom_tab newaccom_tab_0';
	getObject(pid + 'natab4').className = 'newaccom_tab newaccom_tab_0';
	getObject(pid + tab).className = 'newaccom_tab newaccom_tab_1';
	
	getObject(pid + 'tabsep1').className = 'newaccom_tabsep_0_0';
	getObject(pid + 'tabsep2').className = 'newaccom_tabsep_0_0';
	getObject(pid + 'tabsep3').className = 'newaccom_tabsep_0_0';
	getObject(pid + 'tabsep4').className = 'newaccom_tabsep_0_0';

	switch(pid + tab)
	{
		case pid + 'natab1':
			getObject(pid + 'tabsep1').className = 'newaccom_tabsep_1_0';
			break;
		case pid + 'natab2':
			getObject(pid + 'tabsep1').className = 'newaccom_tabsep_0_1';
			getObject(pid + 'tabsep2').className = 'newaccom_tabsep_1_0';
			break;
		case pid + 'natab3':
			getObject(pid + 'tabsep2').className = 'newaccom_tabsep_0_1';
			getObject(pid + 'tabsep3').className = 'newaccom_tabsep_1_0';
			break;
		case pid + 'natab4':
			getObject(pid + 'tabsep3').className = 'newaccom_tabsep_0_1';
			getObject(pid + 'tabsep4').className = 'newaccom_tabsep_1_0';
			break;
	}

	var url = "usercontrols/accommodation/ajax/accomm_information.aspx?pid=" + pid + "&sid=" + sid + "&prod=" + prod + "&x=" + Math.random();

	xmlHttp.onreadystatechange = AccommDetails_CallBack;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function checkAvailablility(str) { 

	updateDiv = "lblResults";
	getObject(updateDiv).innerHTML= "<img src='img/preloader/preload.gif' />";
	xmlHttp = GetXmlHttpObject();
	if (xmlHttp == null) 	{
		alert("Your browser does not support AJAX!");
		return;
	} 
	
	var url= "usercontrols/accommodation/ajax/accomm_results.aspx" + str + "&sid=" + Math.random();
	xmlHttp.onreadystatechange = AccommResults_CallBack;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

//--------------------------------------------- AJAX Call Back Functions ----------------------------------
function Signup_CallBack(res) { 
	if (res.value != null) {
		getObject('signupmsg').innerHTML = res.value;//'<b>Thank you for sigining up</b>';
	}else
		getObject('signupmsg').innerHTML = 'Failed';
}

function AccommResults_CallBack() { 

	if (xmlHttp.readyState == 4){
		getObject(updateDiv).innerHTML = xmlHttp.responseText;
	}
}

function AccommDetails_CallBack() { 

	if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete"){ 
		getObject(updateDiv).innerHTML = xmlHttp.responseText;
	}
}

function GetResorts_CallBack(res) {
	var dtResorts = res.value;
	if (dtResorts !=null){
		var ddlResorts = getObject(ddlResort);
		if (ddlResorts != null){
			ddlResorts.options.length=0;
			for(var Index = 0; Index < dtResorts.Rows.length; Index++){
				ddlResorts.options[Index] = new Option(dtResorts.Rows[Index]['strLocationName'],dtResorts.Rows[Index]['intPKLocationId']);
			}
		}
	}
}


function GetCities_CallBack(res) {
	var dtCities = res.value;
	if (dtCities !=null){
		getObject(ControlId + '_ddlPickupCity').disabled = false;
		var ddlCities = getObject(ControlId + '_ddlPickupCity');
		if (ddlCities != null){
			ddlCities.options.length=0;
			for(var Index = 0; Index < dtCities.Rows.length; Index++){
				ddlCities.options[Index] = new Option(dtCities.Rows[Index]['CityName'],dtCities.Rows[Index]['Cities_ID']);
			}
		}
	}
}

function ResortComparison_CallBack(res)
{
	if (res.value != null) {
		getObject('resortCompare').innerHTML = res.value;
	}else{
		alert('system is unable to compare the selected resorts');
		//AjaxHandler.GetResortComparison(13,108,30,92,4,79,ResortComparison_CallBack)
	}
	
}

function Comtec_CallBack(res)
{
	if (res.value != null)
	{
		getObject('divComtecResults').innerHTML = res.value;
	}else{
		getObject('divComtecResults').innerHTML = 'No Results Returned';
	}
}


function Video_Callback(res)
{
	if (res.value != null)
	{
		getObject('divPlayList').innerHTML = res.value.split('#')[0];
	}
}

