var strValErrorMSG = "";
var boolTruckLocations = false;
var clientPrefix = "";

function updatePickupLocation(strLocationName, strLocationId, strLocationCode)
{
	try
	{
		if(window.parent.length > 0)
		{
			if(is_ie)
			{
			
				var objParentSenderId = parent.opener.document.getElementById(parent.senderId + 'Id');
				if( objParentSenderId != null)
				{
					objParentSenderId.value = strLocationId;
					
					var objParentSender = parent.opener.document.getElementById(parent.senderId);
					if( objParentSender != null )
					{
						objParentSender.value = strLocationName;
						
					}
					
					try
					{
					
						var parentSenderString = parent.senderId;
						var strParentSenderNew = parentSenderString.replace('txtPickUpLocation', 'pickupLocation');
						var objParentSenderNew = parent.opener.document.getElementById(strParentSenderNew);
				
						if( objParentSenderNew != null )
						{
							var strLocationCode = document.location.search.split('=');
							for(i = 0; i < objParentSenderNew.options.length; i++)
							{
								if(objParentSenderNew.options[i].value == strLocationCode[1])
								{
									objParentSenderNew.selectedIndex = i;
									break;
								}
							}
						}
					}
					catch(e)
					{
						alert(e.message);
					}
				}
				else if (top.opener.document.getElementById(top.senderId) != null && top.opener.document.getElementById(top.senderId + 'Id') != null)
				{
					top.opener.document.getElementById(top.senderId).value = strLocationName;
					top.opener.document.getElementById(top.senderId + 'Id').value = strLocationId;
				}
			}
			
			///////////////////////////////////
			//
			// tracker id #586-24592 add Terrapgae search map on the budget AU locaiton page
			// We add the code to handle the situation of the target control for location 
			// is a dropdownlist and the selected value should be location code.
			// e.g. http://budget.massive.com.au/new_reservation/default.aspx
			//
			
			if (parent.opener.document.getElementById(parent.senderId) != null)
			{
				var objParentSender = parent.opener.document.getElementById(parent.senderId);
				
				objParentSender.value = strLocationName;
				
				if (objParentSender.value != strLocationName)
				{
					objParentSender.value = strLocationCode;
				}
			}
			
			//
			//
			///////////////////////////////////
			
		}
		else
		{
					
	
		}

		top.window.close();

	}
	catch(e)
	{
		if(String(document.location).indexOf('https://') < 0)
		{
			document.location = ( String(document.location).split('http://').join('https://') );
		}
	}
}



function clearReturnLocation(ctrlPrefix)
{
	try
	{
		var returnLocation = document.getElementById(ctrlPrefix + "_dropoffLocation");
		if(returnLocation != null){	returnLocation.value = ""; }
	}
	catch(e)
	{
		//alert(e.message);
	}
}

function setTruckLocations(value)
{
	boolTruckLocations = value;
}

function setClientPrefix(value)
{
	clientPrefix = value;
}

function clearFields(ctrlPrefix)
{
	var firstName = document.getElementById(ctrlPrefix + "_txtFirstName");
	if(firstName != null){	firstName.value = ""; }
		
	var surname = document.getElementById(ctrlPrefix + "_txtLastName");
	if(surname != null){ surname.value = ""; }
	
	var phoneNumber = document.getElementById(ctrlPrefix + "_txtPhoneNumber");
	if(phoneNumber != null){ phoneNumber.value = ""; }
	
	var emailAddress = document.getElementById(ctrlPrefix + "_txtEmailAddress");
	if(emailAddress != null){ emailAddress.value = ""; }
}

function toggleAirportLocations(ctrlPrefix, boolChecked)
{
	try
	{
		var selectPickup = document.getElementById(ctrlPrefix + "_pickupLocation");
		var selectDropoff = document.getElementById(ctrlPrefix + "_dropoffLocation");
		
		var locationListAll = document.getElementById(ctrlPrefix + "_pickupLocationListAll");
		var locationListAir = document.getElementById(ctrlPrefix + "_pickupLocationListAirport");
		
		// delete existing options -  always same number in both lists
		var numberOfOptions = selectPickup.options.length;
		for (i=0;i<numberOfOptions;i++)
		{ 
			selectPickup.remove(0); 
			selectDropoff.remove(0);
		}
		
		var codeString = "";
		var nameString = "";
		
		// all locations	
		if(!boolChecked)
		{
			var locationDataAll = locationListAll.value.split("#");
			codeString = locationDataAll[0];
			nameString = locationDataAll[1];

			//alert("ALL: codeString = " + codeString + "\r\nnameString = " + nameString);
		}
		else // airport locations only
		{
			var locationDataAir = locationListAir.value.split("#");
					
			var codeString = locationDataAir[0];
			var nameString = locationDataAir[1];
		
			//alert("AIR: codeString = " + codeString + "\r\nnameString = " + nameString);
		}
		
		var codeArray = codeString.split(',');
		var nameArray = nameString.split(',');
		
		for(y=0; y<codeArray.length; y++)
		{
			var newOption = document.createElement('option');
			newOption.text = nameArray[y];
			newOption.value = codeArray[y];
			selectPickup.options.add(newOption);
			var newOption2 = document.createElement('option');
			newOption2.text = nameArray[y];
			newOption2.value = codeArray[y];
			selectDropoff.options.add(newOption2);
		}
		
	}
	catch(ex)
	{
		// alert(ex.message);
	}
}

/// set the hidden input to the location value selected for pickup
function setPickupLocation(strLocationId)
{
	var hiddenLocation = document.getElementById(clientPrefix + '_txtPickUpLocationId');
	
	if(hiddenLocation != null)
	{
		hiddenLocation.value = strLocationId;
	}
}


/// set the hidden input to the location value selected for pickup
function setDropOffLocation(strLocationId)
{
	var hiddenLocation = document.getElementById(clientPrefix + '_txtDropOffLocationId');
	
	if(hiddenLocation != null)
	{
		hiddenLocation.value = strLocationId;
	}
}


/// redirect to other sites
function redirectOtherSites(otherCountrySite)
{
	window.location.href = otherCountrySite;
}

///show block area in qucik booking
function showBlock(objBlockName)
{
	try
	{
		var obDiv = document.getElementById(objBlockName.replace("pnl", "div"));
		var obBlock = document.getElementById(objBlockName)

		if(obBlock)
		{
			obBlock.style.display = (obBlock.style.display == "block") ? "none" : "block";
			if(obDiv) obDiv.className = (obBlock.style.display == "block") ? "orange_arrow_dn" : "orange_arrow";
		}
	}
	catch(e)
	{
		//alert(e.message);
	}
}

///show block area in quick booking
function showBlockCbo(objSender, objBlockName)
{
	try
	{
		if(objSender.checked)
		{
			if(document.getElementById(objBlockName) != null)
			{
				document.getElementById(objBlockName).style.display = "none";
			}
		}
		else
		{
			if(document.getElementById(objBlockName) != null)
			{
				document.getElementById(objBlockName).style.display = "block";
			}		
		}
	}
	catch(e)
	{
		//alert(e.message);
	}
}


///display block area in AU quick booking
function displayBlockCbo(objSender, objBlockName)
{
	try
	{
		if(objSender.checked)
		{
			if(document.getElementById(objBlockName) != null)
			{
				document.getElementById(objBlockName).style.display = "block";
			}
		}
		else
		{
			if(document.getElementById(objBlockName) != null)
			{
				document.getElementById(objBlockName).style.display = "none";
			}		
		}
	}
	catch(e)
	{
		alert(e.message);
	}
}


///hide block area in qucik booking
function hideBlock(objBlockName)
{
	try
	{
		if(document.getElementById(objBlockName) != null)
		{
			document.getElementById(objBlockName).style.display = "none";
		}
	}
	catch(e)
	{
		//alert(e.message);
	}
}

///show block area in reservation area
function showHideDetailsForOnRequest(objSender, objBlockId, sipp, ctrlID, countryId, locationState, isOnRequest, isCommercial)
{
	try
	{
		if(document.getElementById(objBlockId) != null)
		{
			if(document.getElementById(objBlockId).style.display == "block")
			{
				///hide block
				document.getElementById(objBlockId).style.display = "none";
				///change sender bg images
				if(objSender.parentNode != null)
				{
					objSender.parentNode.style.backgroundPosition = "top";
				}
			}
			else
			{				

				var fn_test = function() 
				{
					///change sender bg images
					if(objSender.parentNode != null)
					{
						objSender.parentNode.style.backgroundPosition = "bottom";
					}
					
					///show block
					document.getElementById(objBlockId).style.display = "block";
				}
				
				if	(
						document.getElementById(ctrlID + "_divEstimatedTotal")					!= null 
					&& 
						document.getElementById(ctrlID + "_divEstimatedTotal").innerHTML.length	== 0
					)
				{
					///change sender bg images
					if(objSender.parentNode != null)
					{
						objSender.parentNode.style.backgroundPosition = "0px -20px";
					}
				
					///load rate request
					if(isOnRequest)
					{
						getOnRequestRateDetails(sipp, ctrlID, countryId, locationState, fn_test, true, isCommercial);
					}
					else
					{
						getRateDetails(sipp, ctrlID, countryId, locationState, fn_test, isCommercial);
					}
				}
				else
				{
					///change sender bg images
					if(objSender.parentNode != null)
					{
						objSender.parentNode.style.backgroundPosition = "bottom";
					}
				
					///show block
					document.getElementById(objBlockId).style.display = "block";
				}
			}
		}
	}
	catch(e)
	{
		alert(e.message);
	}
}

///show block area in reservation area
function showHideDetails(objSender, objBlockId)
{

	try
	{
		if(document.getElementById(objBlockId) != null)
		{
			if(document.getElementById(objBlockId).style.display == "block")
			{
				document.getElementById(objBlockId).style.display = "none";
				objSender.parentNode.style.backgroundPosition = "top";
			}
			else
			{
				document.getElementById(objBlockId).style.display = "block";
				objSender.parentNode.style.backgroundPosition = "bottom";
			}
		}
	}
	catch(e)
	{
		alert(e.message);
	}

}

///grab all a-tag chilld element in parnet nav
function loadMenu()
{
	try
	{
		///Left Menu
		var sfEls = document.getElementById("mn_left").getElementsByTagName("li");
		for (var i = 0; i < sfEls.length; i++) 
		{
			sfEls[i].onmouseover = fn_menuTopOnMouseOver
			sfEls[i].onmouseout = fn_menuTopOnMouseOut
		}
		
		///Right Menu
		var sfEls = document.getElementById("mn_right").getElementsByTagName("li");
		for (var i=0; i < sfEls.length; i++)
		{
			if(sfEls[i].parentNode == document.getElementById("mn_right") && sfEls[i].className != "sep")
			{
				sfEls[i].onmouseover	= fn_menuTopOnMouseOver
				sfEls[i].onmouseout		= fn_menuTopOnMouseOut
				
				///bug in IE, a layer cant overlap a select. will fix later on
				if(is_buggy_ie)
				{
					objIFrame = document.createElement("iframe");
					objIFrame.src = "blank.html";
					sfEls[i].appendChild(objIFrame);
				} 
			}
		}
	}
	catch(e)
	{
		//alert(e.message + " x 3");
	}
}


var fn_menuTopOnMouseOver = function()
{
	if(this.getElementsByTagName("ul").length > 0) {
		this.getElementsByTagName("ul")[0].className = "over";
		if(is_buggy_ie && this.getElementsByTagName("iframe").length > 0)
		{
			this.getElementsByTagName("iframe")[0].style.display = "block";
			this.getElementsByTagName("iframe")[0].style.width = this.getElementsByTagName("UL")[0].scrollWidth + 2;
			this.getElementsByTagName("iframe")[0].style.height = this.getElementsByTagName("UL")[0].scrollHeight + 1;
		}
	}
}

var fn_menuTopOnMouseOut = function()
{
	if(this.getElementsByTagName("ul").length > 0) {
		this.getElementsByTagName("ul")[0].className = "";
		if(is_buggy_ie && this.getElementsByTagName("iframe").length > 0)
			this.getElementsByTagName("iframe")[0].style.display = "none";
	}
}


function menuHideAll(senderId)
{
	try
	{
		if(document.getElementById("menu") != null)
		{
			var objULTag = document.getElementById("menu").getElementsByTagName("UL");
			for(var i=0; i<objULTag.length; i++)
			{
				if(objULTag[i].parentNode.parentNode.id.slice(3) != senderId)
				{
					fn_sub(objULTag[i].parentNode.id.slice(3), 0)
				}
			}
		}
	}
	catch(e)
	{
		//alert(e.message);
	}
}

function fn_sub(id, state) {

	var hd = document.getElementById("mn_" + id);
	if (hd) 
	{
		var sm; 
		var hds = hd.getElementsByTagName("div");
		for(var i = 0; i <= hds.length; i++) 
		{
			if (hds[i].className == "sub_wrapper") 
			{
				sm = hds[i];
				break;
			}
		}
		
		hd.style.backgroundPosition = (state ? 'bottom' : 'top');
		
		if (sm) 
		{
			sm.style.display = (state ? 'block' : 'none');
			
			///bug in IE
			///a layer cant overlap a select
			if(is_buggy_ie)
			{
				if(hd.getElementsByTagName("iframe").length <= 0)
				{
					var objIFrame = document.createElement("iframe");
					objIFrame.style.position			= "absolute";
					objIFrame.style.left				= getOffsetLeft(sm, false);
					objIFrame.style.top					= (getOffsetTop(sm, false) + 10);
					objIFrame.style.height				= (sm.offsetHeight - 11);
					objIFrame.style.width				= sm.offsetWidth;
					objIFrame.style.overflow			= "hidden";
					objIFrame.style.display				= "none";
					objIFrame.style.zindex				= (sm.style.zindex - 1);
					objIFrame.frameborder				= "0";
					objIFrame.scrolling					= "no";
					hd.appendChild(objIFrame);
				}
				if(hd.getElementsByTagName("iframe").length > 0)
				{
					var objIframe = hd.getElementsByTagName("iFrame");
					objIframe[0].style.display = sm.style.display;
				}
			}
		}
	}
}


function getOffsetLeft(obj, countBody) 
{
	try
	{
		var ol = obj.offsetLeft;
		
		while((obj = obj.offsetParent) != null)
		{
			if(countBody || obj.tagName.toLowerCase() != "body")
			{
				ol += obj.offsetLeft;
			}
		}
		return ol;
	}
	catch(e)
	{
		//alert(e.message)
	}
}

function getOffsetTop(obj, countBody) 
{
	try
	{
		var ot = obj.offsetTop;
		while((obj = obj.offsetParent) != null)
		{
			if(countBody || obj.tagName.toLowerCase() != "body")
			{
				ot += obj.offsetTop;
			}
		}
		return ot;
	}
	catch(e)
	{
		//alert(e.message)
	}
}
function showXY(obj)
{
	try
	{
		var x = getOffsetLeft(obj, false);
		var y = getOffsetTop(obj, false);
		alert(x+' , '+y);
	}
	catch(e)
	{
		//alert(e.message)
	}
}


function selectDealState(ddlId, selecedIndex)
{
	try
	{
		if(document.getElementById(ddlId) != null)
		{
			
			///select item
			document.getElementById(ddlId).selectedIndex = selecedIndex;
			
			///do a postback
			__doPostBack('+ ddlId.replace("_","$")+ ','');
		}
	}
	catch(e)
	{
		//alert(e.message)
	}
}


function openTerraPagesWin(strSender, isSecure)
{
	try
	{
		var terraPagePopUp = window.open('/terraPagePopUp.aspx?senderId='+ strSender +'&isSecure='+ isSecure +'','winTerraPagePopUp','location=0,menubar=0,width=750,height=580,status=1');
	}
	catch(e)
	{
		//alert(e.message);
	}
}

function openLocationMapWin(locationCode, countryCode)
{
	try
	{
		var terraPagePopUp = window.open('/locationMapPopUp.aspx?locationCode=' + locationCode + '&countryCode=' + countryCode,'winLocationPagePopUp','width=261,height=261,status=no');
	}
	catch(e)
	{
		//alert(e.message);
	}
}


function openLocationPreviousRentalWin()
{
	try
	{
		var terraPagePopUp = window.open('/PreviousRentalPopUp.aspx','_self','width=700,height=670,menubar=1,toolbar=1,status=0,scrollbars=1',false);
	}
	catch(e)
	{
		//alert(e.message);
	}
}

///this will be used in locations on by Suburb or Postcode
function clearFindBySiblingForm(frmSelectId, frmTextId)
{
	try
	{
		if(document.getElementById(frmSelectId) != null && document.getElementById(frmTextId) != null)
		{
			document.getElementById(frmSelectId).selectedIndex = 0;
			document.getElementById(frmTextId).value = "";
		}
	}
	catch(e)
	{
		//alert(e.message);
	}	
}

function LoadCountrySite(objSel)
{
	try
	{
		if(objSel.selectedIndex > 0)
		{
			window.open(objSel.options[objSel.selectedIndex].value, "", "");
		}
	}
	catch(e)
	{
		//alert(e.message);
	}
}


function footerLink(url)
{
	try
	{
		var footerlink = window.open(url, "", "location=0,menubar=0,scrollbars=yes,width=780,height=500");
		return footerlink;
	}
	catch(e)
	{
		//alert(e.message);
	}
}

function openHelp(sender, content, rightOffSet)
{
	if (!document.getElementById("help_popup"))
	{
		var help_popup = document.createElement("div");
		help_popup.id = "help_popup";
		help_popup.innerHTML = '<div class="darkgreyHeaderTitle">Help</div><div class="darkgreybox"><div id="heading"><img src="/images/trans.gif" alt="Help" title="Help" width="104" height="19" border="0" /></div>'
		 + '<div class="content_head"><img src="/images/popup_content_head.gif" alt="" title="" width="251" height="13" /></div>'
		 + '<div class="content">'
		 + '<div class="contentScroll" id="helpContent"></div>'
		 + '</div>'
		 + '<div class="contentClose">'
		 + '<div class="close"><a href="javascript:closeHelp();" onclick="closeHelp(); return false;"><img src="/images/btn_close.gif" alt="Close" title="Close" width="61" height="18" border="0" /></a></div>'
		 + '</div>'
		 + '<div class="content_foot"><img src="/images/popup_content_foot.gif" alt="" title="" width="251" height="15" /></div>'
		 + '</div>'
		 + '</div>'
		document.body.appendChild(help_popup);

		if(is_buggy_ie)
		{
			if(!document.getElementById("help_iframe"))
			{
				var help_iframe = document.createElement("iframe");
				help_iframe.id = "help_iframe";
				help_iframe.src = "blank.html";
				help_iframe.frameborder	= "0";
				help_iframe.scrolling	= "no";
				help_iframe.style.position = "absolute";
				document.body.appendChild(help_iframe);
			}
		}
	}

	if (arguments.length == 4) document.getElementById("helpContent").style.height = arguments[3] + "px";
	else document.getElementById("helpContent").style.height = "90px";

	var help_popup = document.getElementById("help_popup");
	var oL = (is_ie) ? getOffsetLeft(sender, false) : sender.offsetLeft;
	var oT = (is_ie) ? getOffsetTop(sender, false) : sender.offsetTop;
	document.getElementById("helpContent").innerHTML = content;
	help_popup.style.display = 'block';
	help_popup.style.left = oL +'px';
	help_popup.style.top = (oT - help_popup.offsetHeight) +'px';
	
	if(is_buggy_ie)
	{
		var help_iframe = document.getElementById("help_iframe");
		if(help_iframe)
		{
			help_iframe.style.display = 'block';
			help_iframe.style.height = (help_popup.offsetHeight) + "px";
			help_iframe.style.width = (help_popup.offsetWidth) + "px";
			help_iframe.style.left = oL + 'px';
			help_iframe.style.top = (oT - help_popup.offsetHeight) + 'px';
		}
	}
}

function closeHelp()
{
	try 
	{
		document.getElementById("help_popup").style.display = 'none';
		if(is_buggy_ie) document.getElementById("help_iframe").style.display = 'none';
	}
	catch(e)
	{
		//alert(e.message);
	}
}

function helpBox(sender)
{
	try
	{
		var objPopup = window.open('/helpPopUp.aspx?text='+ sender.alt.split("\n").join("<br>").split("#").join("%23").split("&").join("and") + '', 'winHelp', 'location=0,menubar=0,width=251,height=200,status=1');
		return objPopup;
	}
	catch(e)
	{
		//alert(e.message);
	}
}

function hideHelpBox(sender)
{
	try
	{
		if(document.getElementById("helpBox_" + sender.id) != null)	
		{
			document.getElementById("helpBox_" + sender.id).style.display		= "none";
			document.getElementById("helpBox_" + sender.id).style.visibility	= "hidden";
		}
	}
	catch(e)
	{
		//alert(e.message);
	}
}

function hideAlt(sender)
{
	try
	{
		sender.title = sender.alt;
		sender.alt = sender.alt.split("\\n").join("\n").split("<b>").join("");
	}
	catch(e)
	{
		//alert(e.message);
	}
}

function fn_checkDatepostBack(sender, compareStr)
{
	try
	{
		if(isNaN(Date.parse(sender.value)) == false && sender.value != compareStr)
		{
			__doPostBack('"+ sender.id +"','');
		}
	}
	catch(e)
	{
	//	alert(e.message);
	}
}

function fn_addEnterEvent(objId)
{
	try
	{
		if(document.getElementById(objId) != null)
		{
			if(event.which || event.keyCode)
			{
				if ((event.which == 13) || (event.keyCode == 13)) 
				{
					document.getElementById(objId).click();
					return false;
				}
			} 
			else 
			{
				return true;
			}		
		}
	}
	catch(e)
	{
		alert(e.message);
	}	
}

function setLocations()
{
	var txtPickUpLocationId = document.getElementById(clientPrefix + "_txtPickUpLocationId");
	var txtDropOffLocationId = document.getElementById(clientPrefix + "_txtDropOffLocationId");
	var pickupLocation = document.getElementById(clientPrefix + "_pickupLocation");
	var dropoffLocation = document.getElementById(clientPrefix + "_dropoffLocation");

	if(pickupLocation != null)
	{
		for(i = 0; i < pickupLocation.options.length; i++)
		{
			if(pickupLocation.options[i].value == txtPickUpLocationId.value)
			{
				pickupLocation.selectedIndex = i;
				break;
			}
		}
	}

	if(txtPickUpLocationId != null 
	&& txtDropOffLocationId != null 
	&& dropoffLocation != null)
	{
		if(txtPickUpLocationId.value != txtDropOffLocationId.value)
		{
			for(i = 0; i < dropoffLocation.options.length; i++)
			{
				if(dropoffLocation.options[i].value == txtDropOffLocationId.value)
				{
					dropoffLocation.selectedIndex = i;
					break;
				}
			}
		}	
	}

}