
var POSTCODE_LOOKUP_PAGE = "/pages/ajax/postcode.asp"

	

function checkChoice(elementID){
	var selected = document.getElementById(elementID).value;
	
	if(selected == "other"){
		document.getElementById(elementID + "other").style.display = "inline";
	} else {
		document.getElementById(elementID + "other").style.display = "none";
	}
}

function searchSelect(elementID, origValue){

	var elmtValue = document.getElementById(elementID).value;
	if(elmtValue == origValue){
	
		document.getElementById(elementID).value = "";
		
	}else{
	
		document.getElementById(elementID).select();
	
	}
	
}

function getPageWithArraySync(Pagename,destination,selType,namesArray,valuesArray,loaderDestination){
	
	if(selType!='') {
		var doc = null; 
		if (typeof window.ActiveXObject != 'undefined' ) {
			doc = new ActiveXObject("Microsoft.XMLHTTP");
		} 
		else { 
			doc = new XMLHttpRequest();
		}

		if (doc) { 	
			var querystring = "?Type="+selType
			for(var qs=0;qs<namesArray.length;qs++) {
				querystring = querystring + "&"+namesArray[qs]+"="+valuesArray[qs]
			}
			doc.open("GET", Pagename+querystring, false);
			doc.send(null);
			document.getElementById(destination).innerHTML = doc.responseText;
		}
		else {
			destination.innerHTML = 'Browser unable to create XMLHttp Object';
		}
	}
	else {
			//destination.innerHTML= '' ;//
	}
}

function testPageWithArraySync(Pagename,destination,selType,namesArray,valuesArray,loaderDestination){
	
	if(selType!='') {
		var doc = null; 
		if (typeof window.ActiveXObject != 'undefined' ) {
			doc = new ActiveXObject("Microsoft.XMLHTTP");
		} 
		else { 
			doc = new XMLHttpRequest();
		}

		if (doc) { 	
			var querystring = "?Type="+selType
			for(var qs=0;qs<namesArray.length;qs++) {
				querystring = querystring + "&"+namesArray[qs]+"="+valuesArray[qs]
			}
			doc.open("GET", Pagename+querystring, false);
			doc.send(null);
			return doc.responseText;
		}
		else {
			destination.innerHTML = 'Browser unable to create XMLHttp Object';
		}
	}
	else {
			//destination.innerHTML= '' ;//
	}
}

function getPageWithArray(Pagename,destination,selType,namesArray,valuesArray,loaderDestination){
	var pageLoader
	
	pageLoader = ''
	pageLoader = pageLoader + '<img src="../../CMS/images/loading.gif" width="10" height="10" border="0">'
	
	if(selType!='') {
		var doc = null; 
		if (typeof window.ActiveXObject != 'undefined' ) { 
			doc = new ActiveXObject("Microsoft.XMLHTTP"); 
		} 
		else { 
			doc = new XMLHttpRequest(); 
		}
		if (doc) { 	
		    var querystring = "?Type="+selType
			for(var qs=0;qs<namesArray.length;qs++) {
				querystring = querystring + "&"+namesArray[qs]+"="+valuesArray[qs]
			}
			doc.onreadystatechange=function() {
				if(doc.readyState==4) {
					if (loaderDestination!="None") {
						document.getElementById(loaderDestination).innerHTML= ''
					}
					document.getElementById(destination).innerHTML = doc.responseText;
					document.getElementById(destination).style.display="";
				}
				else {
					if (loaderDestination!="None") {
						document.getElementById(loaderDestination).innerHTML = pageLoader
					}
				}
			}
			//alert(querystring);
			doc.open("GET", Pagename+querystring, true);
			doc.send(null);
		}
		else {
			destination.innerHTML = 'Browser unable to create XMLHttp Object';
		}
	}
	else {
			//destination.innerHTML= '' ;//
	}
}


	function openCenteredWindow(url, height, width, name, parms)
		{
		if (height <= 1) { height = Math.floor(screen.height * height); }
		if (width <= 1) { width = Math.floor(screen.width * width); }
		var left = Math.floor( (screen.width - width) / 2);
		var top = Math.floor( (screen.height - height) / 2);
		if (top>25) {top=25}
		var winParms = "top=" + top + ",left=" + left + ",height=" + height + ",width=" + width;
		if (parms) { winParms += "," + parms; }
		var win = window.open(url, name, winParms);
		if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
		return win;
		}

	function getDirections(ccPCode)
		{
		openCenteredWindow("http://maps.google.com/maps?f=q&hl=en&geocode=&q="+ccPCode,"0.85","0.85","mapPopup","resizable=yes");
		}
		
	
		// Declaring required variables
	var digits = "0123456789";
	// non-digit characters which are allowed in phone numbers
	var phoneNumberDelimiters = "()- ";
	// characters which are allowed in international phone numbers
	// (a leading + is OK)
	var validWorldPhoneChars = phoneNumberDelimiters + "+";
	// Minimum no of digits in an international phone no.
	var minDigitsInIPhoneNumber = 10;

	function isInteger(s)
	{   var i;
	for (i = 0; i < s.length; i++)
	{   
	// Check that current character is number.
	var c = s.charAt(i);
	if (((c < "0") || (c > "9"))) return false;
	}
	// All characters are numbers.
	return true;
	}
	function trim(s)
	{   var i;
	var returnString = "";
	// Search through string's characters one by one.
	// If character is not a whitespace, append to returnString.
	for (i = 0; i < s.length; i++)
	{   
	// Check that current character isn't whitespace.
	var c = s.charAt(i);
	if (c != " ") returnString += c;
	}
	return returnString;
	}
	function stripCharsInBag(s, bag)
	{   var i;
	var returnString = "";
	// Search through string's characters one by one.
	// If character is not in bag, append to returnString.
	for (i = 0; i < s.length; i++)
	{   
	// Check that current character isn't whitespace.
	var c = s.charAt(i);
	if (bag.indexOf(c) == -1) returnString += c;
	}
	return returnString;
	}

	function checkInternationalPhone(strPhone){
		var bracket=3
		strPhone=trim(strPhone)
		if(strPhone.indexOf("+")>1) return false
		if(strPhone.indexOf("-")!=-1)bracket=bracket+1
		if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false
		var brchr=strPhone.indexOf("(")
		if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false
		if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false
		s=stripCharsInBag(strPhone,validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
	}
	
	
	
		
	function echeck(str) {
		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
			alert("Invalid E-mail Address")
			return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
			alert("Invalid E-mail Address")
			return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
			alert("Invalid E-mail Address")
			return false
		}

		if (str.indexOf(at,(lat+1))!=-1){
			alert("Invalid E-mail Address")
			return false
		}

		if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
			alert("Invalid E-mail Address")
			return false
		}

		if (str.indexOf(dot,(lat+2))==-1){
			alert("Invalid E-mail Address")
			return false
		}

		if (str.indexOf(" ")!=-1){
			alert("Invalid E-mail Address")
			return false
		}

	return true					
	}

	function ValidateForm(){
		var emailID = document.inforequest.emailadd
		var confEmailID = document.inforequest.conemailadd
		var phone = document.inforequest.contactnumber
		
		if(checkInternationalPhone(phone.value) == false){
			alert("Please enter a valid contact number");
			return false;
		}
		
		if (emailID.value != confEmailID.value){
			alert("Please make sure you have confirmed your email address correctly");
			return false;
		}
		
		if (echeck(emailID.value)==false){
			emailID.value = ""
			confEmailID.value = ""
			return false
		}
	return true
	}
	
	
	
	function checkEmails(){
		if(document.getElementById('emailadd').value != document.getElementById('conemailadd').value){
			alert("Please ensure you have confirmed your email address correctly");
			return false;
		}
		return true;
	}
	
	
	function lookupPostcode(){
		
		$('#ajaxLoading').removeClass('invisible');
		$('#ajaxLoading').show();
		
		var args = { 
			postcode: $('#postcode').val(), 
			premises: $('#houseNumber').val()
		};
		
		$.get(POSTCODE_LOOKUP_PAGE, args,
			function(data){
				$('#addressOptions').html(data).hide();
				
				if(data == "No Matches"){
				
					$('#addressOptions').show();
					$('#selectPrompt').hide();
					$('#ajaxLoading').hide();
					return;
					
				}
				
				if($('#foundvals option').length > 1){
				
					$('#addressOptions').show();
					$('#selectPrompt').removeClass('invisible');
					$('#selectPrompt').show();
					
				}else{
				
					$('#selectPrompt').hide();
				
				}
				
				$('#ajaxLoading').hide();
				insertVals($('#foundvals').val());
				
			},"html");
		
	}
	
	function insertVals(vals, removePrompt){

		if (removePrompt){
		
			$('#addressOptions').hide();
			$('#selectPrompt').hide();
		
		}
		
		var valArray = vals.split("|",3);
		
		$('#houseNumber').val(valArray[0].replace(/\+/g," "));
		$('#addressLine1').val(valArray[1].replace(/\+/g," "));
		$('#addressLine2').val(valArray[2].replace(/\+/g," "));
		$('#houseNumber').effect("highlight", {}, 1000);
		$('#addressLine1').effect("highlight", {}, 1000);
		$('#addressLine2').effect("highlight", {}, 1000);
		
	}
		
