fileBottomNavCloseImage = "/static/npluk/img/btn_close.gif";

//
// TESTING THE POSTCODE...
//
function initUKPCS()
{
	var idPostcode = document.getElementById("Postcode");
	var idPostcode_part1 = document.getElementById("part1_postcode");
	var idPostcode_part2 = document.getElementById("part2_postcode");
	var idAddress = document.getElementById("Address");
	var idTown = document.getElementById("Town");
	var idAanhef = document.getElementById("Title");

	if (idPostcode)
	{
		if (idPostcode_part1 && idPostcode_part2)
		{
			if (document.addEventListener)
			{
				// REGISTERING THE EVENTS FOR DOM COMPLIANT BROWSERS
				idPostcode_part1.addEventListener("change",postcodePartChanged,false);
				idPostcode_part1.addEventListener("blur",postcodePartChanged,false);
				idPostcode_part2.addEventListener("change",postcodePartChanged,false);
				idPostcode_part2.addEventListener("blur",postcodePartChanged,false);

			}
			else
			{
				// REGISTERING THE EVENTS FOR IE
				idPostcode_part1.attachEvent("onchange",postcodePartChanged);
				idPostcode_part1.attachEvent("onblur",postcodePartChanged);
				idPostcode_part2.attachEvent("onchange",postcodePartChanged);
				idPostcode_part2.attachEvent("onblur",postcodePartChanged);
			}
		}
		if (document.addEventListener)
		{
			// REGISTERING THE EVENTS FOR DOM COMPLIANT BROWSERS
			idPostcode.addEventListener("change",postcodeUKChanged,false);
			idPostcode.addEventListener("blur",postcodeUKChanged,false);

		}
		else
		{
			// REGISTERING THE EVENTS FOR IE
			idPostcode.attachEvent("onchange",postcodeUKChanged);
			idPostcode.attachEvent("onblur",postcodeUKChanged);
		}
		if(idAddress && idTown && (idAddress.value == "" || idTown.value == ""))
		{
			setTimeout("postcodeUKChanged()", 500);
		}

		var rootElm = idPostcode.parentNode.parentNode;
		if (idPostcode_part1 && idPostcode_part2)
		{
			rootElm = idPostcode.parentNode;
		}

		var inputElements = rootElm.getElementsByTagName('input');
		for(var i = 0; i < inputElements.length; i++)
		{
			if ((inputElements[i] != idPostcode && inputElements[i] != idPostcode_part1 && inputElements[i] != idPostcode_part2) && inputElements[i].name != "formpartcode") {
				inputElements[i].parentNode.style.display = "none";
			}
		}

		inputElements = rootElm.getElementsByTagName('br');
		for(var i = 0; i < inputElements.length; i++)
		{
			if (inputElements[i].getAttribute("clear") == "all") {
				inputElements[i].style.display = "none";
				inputElements[i].setAttribute("id", "brtje");
			}
		}
		
		var brClear = document.createElement("br");
		brClear.setAttribute("clear", "all");
		brClear.setAttribute("id", "brtje2");
		rootElm.appendChild(brClear);

		var textP = createP("<b>Select Address</b><br/>Click on your address to select it. If your address isn't shown in the list, you can <a href='javascript:showAddressFields()'>enter your address manually</a>.",rootElm);
		textP.setAttribute("id", "ptxt2");
		
		var inputMultiple = createElm("div","inputMultiple",rootElm);
		inputMultiple.setAttribute("id", "addressselectordiv");
		
		var selectAddress = document.createElement("select");
		selectAddress.setAttribute("size", "5");
		selectAddress.className = "formular";
		selectAddress.style.width = "328px";
		selectAddress.setAttribute("id", "addressselector");
		if (document.addEventListener) {
			selectAddress.addEventListener("click",selectAddressClick,false);
			selectAddress.addEventListener("change",selectAddressClick,false);
		} else {
			selectAddress.attachEvent("onclick",selectAddressClick);
			selectAddress.attachEvent("onchange",selectAddressClick);
		}
		inputMultiple.appendChild(selectAddress);

	}
	
	if (idAanhef)
	{
		var inputs = idAanhef.getElementsByTagName ('input');
		if (inputs)
		{
			var qsAanhef = getQueryParamValue("ah");
			for (var i = 0; i < inputs.length; ++i)
			{
				if ((inputs[i].type == 'radio') && (inputs[i].value == qsAanhef))
				{
					inputs[i].checked = true;
				}
			}
		}
	}
}

function selectAddressClick() 
{

	var idAddressSelector = document.getElementById("addressselector");
	var idAddress = document.getElementById("Address");
	var idTown = document.getElementById("Town");

	if (idAddressSelector && !idAddressSelector.disabled) {
		var optionNumber = idAddressSelector.selectedIndex;

		if (optionNumber >= 0) {
			var selS = idAddressSelector.options[optionNumber].text;
			var selIS = selS.split(", ");
			for(var i = 0; i < selIS.length; i++)
			{
				if (i == 0) {
					idAddress.value = selIS[i];
				} else {
				if (i < selIS.length-1) {
					idAddress.value = idAddress.value + ", " + selIS[i];
				} else {
					idTown.value = selIS[i];
				}}
			}
		}
	}
}

function showAddressFields() 
{
	var idPostcode = document.getElementById("Postcode");
	var idPostcode_part1 = document.getElementById("part1_postcode");
	var idPostcode_part2 = document.getElementById("part2_postcode");


	var rootElm = idPostcode.parentNode.parentNode;

	var inputElements = rootElm.getElementsByTagName('input');
	for(var i = 0; i < inputElements.length; i++)
	{
		if ((inputElements[i] != idPostcode && inputElements[i] != idPostcode_part1 && inputElements[i] != idPostcode_part2) && inputElements[i].name != "formpartcode") {
			inputElements[i].parentNode.style.display = "";
		}
	}
	
	document.getElementById("brtje").style.display = "";
	document.getElementById("brtje2").style.display = "none";
	document.getElementById("ptxt2").style.display = "none";
	document.getElementById("addressselectordiv").style.display = "none";
	if (document.removeEventListener)
	{
		// REGISTERING THE EVENTS FOR DOM COMPLIANT BROWSERS
		idPostcode.removeEventListener("change",postcodeUKChanged,false);
		idPostcode.removeEventListener("blur",postcodeUKChanged,false);

	}
	else
	{
		// REGISTERING THE EVENTS FOR IE
		idPostcode.detachEvent("onchange",postcodeUKChanged);
		idPostcode.detachEvent("onblur",postcodeUKChanged);
	}
}

var lastUKPcChecked = null;

function postcodePartChanged(e)
{
	var idPostcode_part1 = document.getElementById("part1_postcode");
	var idPostcode_part2 = document.getElementById("part2_postcode");

	var part1 = idPostcode_part1.value;
	var part2 = idPostcode_part2.value;

	if (part1 != "" && part1 != null)
	{
		part1 = part1.toUpperCase();
		part1 = part1.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); // trim
		idPostcode_part1.value = part1;
	}

	if (part2 != "" && part2 != null)
	{
		part2 = part2.toUpperCase();
		part2 = part2.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); // trim
		idPostcode_part2.value = part2;	}
	
	
	if (part1 != "" && part2 != "" && part1 != null && part2 != null)
	{
		postcodeUKChanged();
	}
}

function postcodeUKChanged(e)
{
	var errormessage = "This postcode is not in the correct format (example: 'TW9 1AJ'). Please check your postcode and try again.";
	var idPostcode = document.getElementById("Postcode");
	var idAddressSelector = document.getElementById("addressselector");

	var postcode = idPostcode.value;

	if (postcode != null && postcode != "")
	{
		postcode = postcode.toUpperCase();
		postcode = postcode.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); // trim
		idPostcode.value = postcode;
	}

	if (idAddressSelector && postcode != lastUKPcChecked)
	{
		lastUKPcChecked = postcode;
		if (postcode != null && postcode != "") {
			if (0 == postcode.search(/(GIR 0AA|[A-PR-UWYZ]([0-9]{1,2}|([A-HK-Y][0-9]|[A-HK-Y][0-9]([0-9]|[ABEHMNPRV-Y]))|[0-9][A-HJKS-UW]) [0-9][ABD-HJLNP-UW-Z]{2})/))
			{
				testUKPostcode(postcode);
			}
			else
			{
				idAddressSelector.options.length = 0;
				idAddressSelector.disabled = true;
				idAddressSelector.className = 'fieldDis';
				setFormularError(idPostcode, true, errormessage, true);
			}
		}
		else
		{
			idAddressSelector.options.length = 0;
			idAddressSelector.disabled = true;
			idAddressSelector.className = 'fieldDis';
		}
	}
}

function testUKPostcode(postcode)
{
	var errormessage = "This postcode can not be found. Please check your postcode or fill in your address manually.";
	var myPostcodeScript = "/web/wcbservlet/nl.gx.novamedia.nplukformcomponents.servlet.UkFindPostcodeXmlHttpRequestServlet?postcode=" + postcode;

	var xmlHttp = null;
	// Mozilla, Opera, Safari en Internet Explorer 7
	if (typeof XMLHttpRequest != 'undefined')
	{
		xmlHttp = new XMLHttpRequest();
	}
	if (!xmlHttp)
	{
		// IE<7
		try
		{
		xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
			try
			{
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e)
			{
				xmlHttp = null;
			}
		}
	}
	if (xmlHttp)
	{
		xmlHttp.open('GET', myPostcodeScript, true);
		xmlHttp.onreadystatechange = function ()
		{
			var idAddressSelector = document.getElementById("addressselector");
			var idAddress = document.getElementById("Address");
			var idTown = document.getElementById("Town");
			if (idAddressSelector && idAddress && idTown)
			{
				if (xmlHttp.readyState == 4)
				{
					var responseString = xmlHttp.responseText;
					if ((responseString != "") && (responseString.indexOf("|")>0) && (responseString.indexOf("0 records found|") != 0) && (responseString.indexOf("1 records found|Error: Postcode Not Found")<0))
					{
						idAddressSelector.options.length = 0;
						idAddressSelector.disabled = false;
						idAddressSelector.className = 'formular';

						var resultsS = responseString.split("|");
						for(var i = 1; i < resultsS.length-1; i++)
						{
							idAddressSelector.options[i-1] = new Option(resultsS[i]);
						}

						idAddress.value = "";
						idTown.value = "";
						setFormularError(document.getElementById("Postcode"), false, errormessage, true);
					}
					else
					{
						idAddressSelector.options.length = 0;
						idAddressSelector.disabled = true;
						idAddressSelector.className = 'fieldDis';
						idAddress.value = "";
						idTown.value = "";
						setFormularError(document.getElementById("Postcode"), true, errormessage, true);
					}
				}
			}
		};
		xmlHttp.send(null);
	}
	else
	{
		return false;
	}
}
