function removeSpaces(string)
{
	return string.split(' ').join('');
}

function stopDefault(e) 
{
	if(e && e.preventDefault)
	{
		e.preventDefault();
	}
	else
	{
		window.event.returnValue = false;
	}
	return false;
}

function ValidatePostcode(e)
{
	if(isValidPostcode())
	{
		document.location.href = "/member-results/?pc=" + removeSpaces(escapeHTML(document.getElementById("pcode").value));
		//document.location.href = "/member_results/?pc=" + escapeHTML(document.getElementById("pcode").value);
	}
	else
	{
		document.getElementById("pcodeMsg").innerHTML = "Invalid postcode - please try again";
	}
	stopDefault(e);
}

function isValidPostcode() 
{
	var code = document.getElementById("pcode").value; 

	var postcodeRegEx = /(^((([BEGLMNS][1-9]\d?)|(W[2-9])|((A[BL]|B[ABDHLNRST]|C[ABFHMORTVW]|D[ADEGHLNTY]|E[HNX]|F[KY]|G[LUY]|H[ADGPRSUX]|I[GMPV]|JE|K[ATWY]|L[ADELNSU]|M[EKL]|N[EGNPRW]|O[LX]|P[AEHLOR]|R[GHM]|S[AEGKL-PRSTWY]|T[ADFNQRSW]|UB|W[ADFNRSV]|YO|ZE)\d\d?)|(W1[A-HJKSTUW0-9])|(((WC[1-2])|(EC[1-4])|(SW1))[ABEHMNPRVWXY]))(\s*)?([0-9][ABD-HJLNP-UW-Z]{2}))$|^(GIR\s?0AA)$)/i;
	
	return postcodeRegEx.test(code);
}


function PostcodeCheckOK() //check postcode format is valid
{ 
	test = document.getElementById("pcode").value; 
	size = test.length
	test = test.toUpperCase(); //Change to uppercase
	
	while (test.slice(0,1) == " ") //Strip leading spaces
	{
		test = test.substr(1,size-1);size = test.length
	}
	
	while(test.slice(size-1,size)== " ") //Strip trailing spaces
	{
		test = test.substr(0,size-1);size = test.length
	}

	document.getElementById("pcode").value = test; //write back to form field
	
	if(size < 6 || size > 8) //Code length rule
	{ 
		//alert(test + " is not a valid postcode - wrong length");
		//document.getElementById("pcode").focus();
		return false;
	}
	if(!(isNaN(test.charAt(0)))) //leftmost character must be alpha character rule
	{ 
		//alert(test + " is not a valid postcode - cannot start with a number");
		//document.getElementById("pcode").focus();
		return false;
	}
	if (isNaN(test.charAt(size-3))) //first character of inward code must be numeric rule
	{ 
		//alert(test + " is not a valid postcode - alpha character in wrong position");
		//document.getElementById("pcode").focus();
		return false;
	}
	if (!(isNaN(test.charAt(size-2)))) //second character of inward code must be alpha rule
	{ 
		//alert(test + " is not a valid postcode - number in wrong position");
		//document.getElementById("pcode").focus();
		return false;
	}
	if (!(isNaN(test.charAt(size-1)))) //third character of inward code must be alpha rule
	{
		//alert(test + " is not a valid postcode - number in wrong position");
		//document.getElementById("pcode").focus();
		return false;
	}
	if (!(test.charAt(size-4) == " ")) //space in position length-3 rule
	{
		//alert(test + " is not a valid postcode - no space or space in wrong position");
		//document.getElementById("pcode").focus();
		return false;
	}

	count1 = test.indexOf(" ");count2 = test.lastIndexOf(" ");
	
	if (count1 != count2) //only one space rule
	{
		//alert(test + " is not a valid postcode - only one space allowed");
		//document.getElementById("pcode").focus();
		return false;
	}
	
	//alert("Postcode Format OK");
	return true;
}


function escapeHTML(str)
{
	var div = document.createElement('div');
	var text = document.createTextNode(str);
	div.appendChild(text);
	return div.innerHTML;
};

function ClickButton(e, buttonId)
{ 
	var button = document.getElementById(buttonId); 

	if (typeof(button) == 'object')
	{ 
		if(navigator.appName.indexOf("Netscape")>(-1))
		{ 
			if(e.keyCode == 13)
			{ 
				button.click(); 
				return false; 
			} 
		}
	} 

	if (navigator.appName.indexOf("Microsoft Internet Explorer")>(-1))
	{ 
		if (event.keyCode == 13)
		{ 
			button.click(); 
			window.event.returnValue=false;
			return false; 
		} 
	} 
}
