var oInsuranceXML, oInsuranceDestinations, oInsuranceGroups;
var iInsuranceMinAdults, iInsuranceMaxAdults, iInsuranceMinChildren, iInsuranceMaxChildren, bLoadDestination;
function LoadInsurance(bLoadDest) {
	bLoadDestination = bLoadDest
	var timestamp = new Date();      
	sURL = '/includes/insurance/insurance_getsearchxml.asp?timestamp='+(timestamp*1);
	if(bDebug) {
		if(confirm('Open XML doc: '+sURL)) {
			window.open(sURL);
		}
	}
	setTimeout("LoadInsuranceXMLDoc('"+sURL+"')", 100);
}

function clearInsTypeList(listElem) {
	if(listElem!=0){
		while(listElem.options.length > 0) {
			listElem.options[0] = null;
		}
		while(listElem.hasChildNodes()) {
			listElem.removeChild(listElem.firstChild);
		}
	}
}

function LoadInsuranceXMLDoc(url) {
	// branch for native XMLHttpRequest object
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
		req.onreadystatechange = processInsuranceSearchBox;
		req.open("GET", url, true);
		req.send(null);
	// branch for IE/Windows ActiveX version
	} else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req) {
			req.onreadystatechange = processInsuranceSearchBox;
			req.open("GET", url, true);
			req.send();
		}
	}
}

function processInsuranceSearchBox() {
	if(req.readyState == 4) {
		if(req.status == 200){
			//alert(req.responseXML.documentElement);
			oInsuranceXML = req.responseXML;
			var ddlDestination = document.getElementById('insDestination');
			oInsuranceDestinations = oInsuranceXML.getElementsByTagName('Destination');
			oInsuranceGroups = oInsuranceXML.getElementsByTagName('Group');
			if(ddlDestination.value && bLoadDestination) {
				ChangeInsuranceDestination(ddlDestination.value);
			}
			var oGroups = document.getElementsByName('insgroup');
			for(x=0;x<oGroups.length;x++) {
				if(oGroups[x].checked) {
					ChangeInsuranceGroup(oGroups[x].value);
					return;
				}
			}
		}
	}
}

function ChangeInsuranceDestination(id) {
	var ddlInsuranceType = document.getElementById('insType');
	var	ddlGroupType = document.getElementById('insgroup');
	if(oInsuranceXML==undefined){
		ddlInsuranceType.disabled=true;
		ddlGroupType.disabled=true;
		clearInsTypeList(ddlInsuranceType);
		ddlInsuranceType.options[0] = new Option('- Loading. Please wait... -','');
		LoadInsurance(true)
		return;
	}
	if(ddlInsuranceType) {
		ddlInsuranceType.selectedIndex=0;
		if(id) {
			for(x=0;x<oInsuranceDestinations.length;x++) {
				if(oInsuranceDestinations.item(x).attributes.getNamedItem("ID").nodeValue==id) {
					clearInsTypeList(ddlInsuranceType);
					ddlInsuranceType.options[0] = new Option('- Select an insurance type -','');
					oInsuranceTypes = oInsuranceDestinations.item(x).getElementsByTagName('InsuranceType');
					if(oInsuranceTypes.length != 0) {
						for(i=0;i<oInsuranceTypes.length;i++) {
							sID = oInsuranceTypes.item(i).attributes.getNamedItem("ID").nodeValue;
							sName = oInsuranceTypes.item(i).attributes.getNamedItem("Name").nodeValue;
							ddlInsuranceType.options[ddlInsuranceType.options.length] = new Option(sName, sID);
						}
						ddlInsuranceType.disabled=false;
						ddlGroupType.disabled=false;
					}
				}
			}
			if (oInsuranceDestinations.length == 1){ddlInsuranceType.selectedIndex=1;}
		}else{
			ddlInsuranceType.disabled=true;
			ddlGroupType.disabled=true;
		}
	}
}
function ChangeInsuranceGroup(id) {
	var divPassengers = document.getElementById('insPassengersDiv');
	if(oInsuranceXML==undefined || id.length == 0){
		LoadInsurance(false)
		return;
	}
	if(divPassengers) {
		for(x=0;x<oInsuranceGroups.length;x++) {
			if(oInsuranceGroups.item(x).attributes.getNamedItem("ID").nodeValue==id) {
				oInsuranceGroupPaxTypes = oInsuranceGroups.item(x).getElementsByTagName('PAXType');
				iInsuranceMinAdults = parseFloat(oInsuranceGroups.item(x).attributes.getNamedItem("minAdults").nodeValue);
				iInsuranceMaxAdults = parseFloat(oInsuranceGroups.item(x).attributes.getNamedItem("maxAdults").nodeValue);
				iInsuranceMinChildren = parseFloat(oInsuranceGroups.item(x).attributes.getNamedItem("minChildren").nodeValue);
				iInsuranceMaxChildren = parseFloat(oInsuranceGroups.item(x).attributes.getNamedItem("maxChildren").nodeValue);
				var sPassengersHTML='<table border="0" cellpadding="2" cellspacing="0">';
				bAdultsSelected = false;
				bChildrenSelected = false;
				for(i=0;i<oInsuranceGroupPaxTypes.length;i++) {
					sID = oInsuranceGroupPaxTypes.item(i).attributes.getNamedItem("ID").nodeValue;
					sName = oInsuranceGroupPaxTypes.item(i).attributes.getNamedItem("Name").nodeValue;
					sAgeFrom = oInsuranceGroupPaxTypes.item(i).attributes.getNamedItem("AgeFrom").nodeValue;
					sAgeTo = oInsuranceGroupPaxTypes.item(i).attributes.getNamedItem("AgeTo").nodeValue;
					sType = oInsuranceGroupPaxTypes.item(i).attributes.getNamedItem("Type").nodeValue;
					sPassengersHTML+='<tr>';
					sPassengersHTML+='<td style="padding-right:10px;">'+sName+' ('+sAgeFrom+'-'+sAgeTo+'yrs):</td>';
					sPassengersHTML+='<td><select name="PaxType_'+sType.toLowerCase()+'_'+sID+'" style="width:50px;" paxtype="'+sType+'">';
					if(sType=='Child'){
						for(y=0;y<=iInsuranceMaxChildren;y++) {
							if(y==iInsuranceMinChildren && !bChildrenSelected) {
								bChildrenSelected = true;
								sPassengersHTML+='<option value="'+y+'" selected="selected">'+y+'</option>';
							}else{
								sPassengersHTML+='<option value="'+y+'">'+y+'</option>';
							}
						}
					}else{
						for(y=0;y<=iInsuranceMaxAdults;y++) {
							if(y==iInsuranceMinAdults && !bAdultsSelected) {
								bAdultsSelected = true;
								sPassengersHTML+='<option value="'+y+'" selected="selected">'+y+'</option>';
							}else{
								sPassengersHTML+='<option value="'+y+'">'+y+'</option>';
							}
						}
					}
					sPassengersHTML+='</select></td>';
					
					sPassengersHTML+='</tr>';
					
				}
				sPassengersHTML+='</table>';
			}
		}
		divPassengers.innerHTML = sPassengersHTML;
	}
	
	tbodyInsPassengers = document.getElementById('insPassengersTBody');
	if(tbodyInsPassengers) {
		tbodyInsPassengers.style.display='';
	}
}

function validateFrmInsurance(frm) {
	var e = '';
	oSelect = document.getElementsByTagName('select');
	iSelectedNumberOfAdults = 0;
	iSelectedNumberOfChildren = 0;
	for(x=0;x<oSelect.length;x++) {
		if(oSelect[x].getAttribute('paxtype')=='Adult') {
			iSelectedNumberOfAdults+=parseFloat(oSelect[x].value);
		}else if(oSelect[x].getAttribute('paxtype')=='Child') {
			iSelectedNumberOfChildren+=parseFloat(oSelect[x].value);
		}
	}
	if(!frm.destination.value){e+='- Select a destination\n'}
	if(!frm.type.value){e+='- Select an insurance type\n'}
	bInsGroupChecked = false
	if(!frm.insgroup.value){e+='- Select a group type\n'}else{bInsGroupChecked = true}
	/*
	oInsGroup = document.getElementsByName('insgroup');
	for(x=0;x<oInsGroup.length;x++) {
		if(oInsGroup[x].checked==true) {
			bInsGroupChecked = true
		}
	}
	if(!bInsGroupChecked){e+='- Select an insurance group\n'}*/
	if(bInsGroupChecked) {
		sExtraText = 'adult';
		if(iInsuranceMinAdults==iInsuranceMaxAdults && iSelectedNumberOfAdults!=iInsuranceMaxAdults) {
			if(iInsuranceMaxAdults!=1){sExtraText+='s';}
			e+='- Select exactly '+iInsuranceMaxAdults+' '+sExtraText+'\n';
		}else if(iSelectedNumberOfAdults > iInsuranceMaxAdults) {
			if(iInsuranceMaxAdults!=1){sExtraText+='s';}
			e+='- Select maximum '+iInsuranceMaxAdults+' '+sExtraText+'\n';
		}else if(iSelectedNumberOfAdults < iInsuranceMinAdults) {
			if(iInsuranceMinAdults!=1){sExtraText+='s';}
			e+='- Select minimum '+iInsuranceMinAdults+' '+sExtraText+'\n';
		}
		sExtraText = 'child';
		if(iInsuranceMinChildren==iInsuranceMaxChildren && iSelectedNumberOfChildren!=iInsuranceMaxChildren) {
			if(iInsuranceMaxChildren!=1){sExtraText+='ren';}
			e+='- Select exactly '+iInsuranceMaxChildren+' '+sExtraText+'\n';
		}else if(iSelectedNumberOfChildren > iInsuranceMaxChildren) {
			if(iInsuranceMaxChildren!=1){sExtraText+='ren';}
			e+='- Select maximum '+iInsuranceMaxChildren+' '+sExtraText+'\n';
		}else if(iSelectedNumberOfChildren < iInsuranceMinChildren) {
			if(iInsuranceMinChildren!=1){sExtraText+='ren';}
			e+='- Select minimum '+iInsuranceMinChildren+' '+sExtraText+'\n';
		}
	}
	if(e){
		alert('More information required\n\n'+e);
		return false;
	}else{
		return true;
	}
}
function InsuranceGoToPricing(policyid, SearchGUID) {
	document.frmResults.txtLevel.value='pricing';
	document.frmResults.Insurance_PolicyCode.value = policyid;
	document.frmResults.SearchGUID.value = SearchGUID;
	document.frmResults.submit();
}

function AddInsuranceToBasket(sValue1, sValue2, sValue3, sValue4, SearchGUID) {
	document.frmResults.SearchGUID.value=SearchGUID;
	return checkPaxForm(sValue1,sValue2,sValue3,sValue4);
}

function AddInsuranceToBasketUpsell(sValue1, sValue2, sValue3, sValue4, SearchGUID, policyid, iPos) {
	if (document.getElementById('Terms'+iPos)){
		if (document.getElementById('Terms'+iPos).checked){
			document.frmResults.Insurance_PolicyCode.value = policyid;
			document.frmResults.SearchGUID.value=SearchGUID;
			document.frmResults.Position.value=iPos;
			setLevel(sValue1);
			frmBYOSubmit(true);
		}else{
			alert('Please make sure you have read and understand the Status Discolsure Agreement!');
			document.getElementById('Terms'+iPos).focus();
			return false;
		}
	}
}

function GetCoverDetailsInfo(sLink, fId) {
	
	if(document.getElementById(fId).style.display=='none') {
		document.getElementById(fId).style.display = '';
		sLink.innerHTML = sLink.innerHTML.replace('Click here for','Click here to hide');
	}else{
		sLink.innerHTML = sLink.innerHTML.replace('Click here to hide','Click here for');
		document.getElementById(fId).style.display = 'none';
	}
}

var tickImageString = "<img src=\"/images/tick.gif\" border=\"0\" alt=\"Included in policy price\" title=\"Included in policy price\" />";
var crossImageString = "<img src=\"/images/cross.gif\" border=\"0\" alt=\"Not Avaliable\" title=\"Not Avaliable\" />";
var circleImageString = "<img src=\"/images/circle_option.png\" border=\"0\" alt=\"Optional, can be added to policy on next page\" title=\"Optional, can be added to policy on next page\" />";

//compare page options section
function DisplayOptionsRollOver(cell,text)
{
 cell.innerHTML = text;
}

function getTotalPriceInsurance(sCode, sRate, sSymbol, bIsPerPerson, iPos, iBaseCost) {
	iTotalPrice = 0
	iDepositPrice = 0
	var qs = new Querystring()
	var sDebug = qs.get("Debug")
	if(sDebug == 'true'){
		bDebug = true;
	}else{
		bDebug = false;
	}
	radio = document.getElementsByTagName('input')
	var numPax = 1;
	if(document.getElementById('numPax')) { 
		numPax = parseFloat(document.getElementById('numPax').value)
	}
	for(x=0;x<radio.length;x++) {
		
		if(radio[x].getAttribute('itemValue'+iPos)!=null && radio[x].getAttribute('itemValue'+iPos)!='NaN') {
			if(bDebug){alert(radio[x].getAttribute('itemValue'+iPos))};
			if((radio[x].type=='radio' || radio[x].type=='checkbox') && radio[x].checked == true){
				iTotalPrice += parseFloat(radio[x].getAttribute('itemValue'+iPos))
				if(bDebug){alert('Added')};
			}
		}
		if(radio[x].getAttribute('depositValue')!=null && radio[x].getAttribute('depositValue')!='NaN') {
			if((radio[x].type=='radio' || radio[x].type=='checkbox') && radio[x].checked == true){
				iDepositPrice += parseFloat(radio[x].getAttribute('depositValue'))
				//break;
			}
		}
	}
	iTotalPrice += parseFloat(iBaseCost)
		
	objSelect = document.getElementsByTagName('select')
	for(x=0;x<objSelect.length;x++) 
	{
		if(objSelect[x].options[objSelect[x].selectedIndex].getAttribute('itemValue'+iPos)!=null && objSelect[x].options[objSelect[x].selectedIndex].getAttribute('itemValue'+iPos)!='NaN')
		{
			iTotalPrice += parseFloat(objSelect[x].options[objSelect[x].selectedIndex].getAttribute('itemValue'+iPos))
		}
	}
	
	if(sCode && sRate) {		
		sTotalPrice = formatCurrency(iTotalPrice/100*parseFloat(sRate),true);
		sPricePerPax = formatCurrency((iTotalPrice / numPax)/100*parseFloat(sRate),true);
		sTotalDeposit = formatCurrency(iDepositPrice/100*parseFloat(sRate),true);
		
		if(sSymbol) {
			sTotalPrice = sSymbol + sTotalPrice;
			sPricePerPax = sSymbol + sPricePerPax;
			sTotalDeposit = sSymbol + sTotalDeposit;
		}else{
			sTotalPrice += ' ' + sCode;
			sPricePerPax += ' ' + sCode;
			sTotalDeposit += ' ' + sCode;
		}
	}else{
		sTotalPrice = formatCurrency(iTotalPrice);
		sPricePerPax = formatCurrency(iTotalPrice / numPax);
		if(bIsPerPerson) {
			sTotalDeposit = formatCurrency(iDepositPrice / numPax);
		}else{
			sTotalDeposit = formatCurrency(iDepositPrice);
		}
	}
	if(document.getElementById('TotalPrice_Top'+iPos)) {
		document.getElementById('TotalPrice_Top'+iPos).innerHTML = sTotalPrice;
	}
	if(document.getElementById('TotalDeposit_Top'+iPos)) {
		document.getElementById('TotalDeposit_Top'+iPos).innerHTML = sTotalDeposit;
	}
	if(document.getElementById('PricePerPax_Top'+iPos)) {
		document.getElementById('PricePerPax_Top'+iPos).innerHTML = sPricePerPax;
	}
}