// JavaScript Document


var request;

function createRequest() {
  try {
    request = new XMLHttpRequest();
  } catch (trymicrosoft) {
    try {
      request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (othermicrosoft) {
      try {
        request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (failed) {
        request = false;
      }
    }
  }

  if (!request)
    alert("Error initializing XMLHttpRequest!");
}

function Upper(e,r){
	r.value = r.value.toUpperCase();
}

function htmlspecialchars(string, quote_style) {
    // http://kevin.vanzonneveld.net
    // +   original by: Mirek Slugen
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: htmlspecialchars("<a href='test'>Test</a>", 'ENT_QUOTES');
    // *     returns 1: '&lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt'
    
    string = string.toString();
    
    // Always encode
    string = string.replace('/&/g', '&amp;');
    string = string.replace('/</g', '&lt;');
    string = string.replace('/>/g', '&gt;');
	string = string.replace('/£/g', '&pound;');
    
    // Encode depending on quote_style
    if (quote_style == 'ENT_QUOTES') {
        string = string.replace('/"/g', '&quot;');
        string = string.replace('/\'/g', '&#039;');
    } else if (quote_style != 'ENT_NOQUOTES') {
        // All other cases (ENT_COMPAT, default, but not ENT_NOQUOTES)
        string = string.replace('/"/g', '&quot;');
    }
    
    return string;
}

function getSelectedRadio(buttonGroup) {
   // returns the array number of the selected radio button or -1 if no button is selected
   if (buttonGroup[0]) { // if the button group is an array (one button is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            return i
         }
      }
   } else {
      if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero
   }
   // if we get to this point, no radio button is selected
   return -1;
} // Ends the "getSelectedRadio" function

function getSelectedRadioValue(buttonGroup) {
   // returns the value of the selected radio button or "" if no button is selected
   var i = getSelectedRadio(buttonGroup);
   if (i == -1) {
      return "";
   } else {
      if (buttonGroup[i]) { // Make sure the button group is an array (not just one button)
         return buttonGroup[i].value;
      } else { // The button group is just the one button, and it is checked
         return buttonGroup.value;
      }
   }
} // Ends the "getSelectedRadioValue" function

function switchDisabled(target){
	if(document.getElementById(target).disabled == false){
		document.getElementById(target).disabled = true;
	}else{
		document.getElementById(target).disabled = false;
	}
}

function switchSellBox(){
	if(document.getElementById('forSale').checked == false){
		document.getElementById('sellCarDetails').style.display = 'none';
		document.getElementById('updateCarDetails').style.display = 'block';
	}else{
		document.getElementById('sellCarDetails').style.display = 'block';
		document.getElementById('updateCarDetails').style.display = 'none';
	}
}

function switchRegisteredDisabled(){
	if(document.getElementById('acceptTerms').checked == true && document.getElementById('acceptTerms2').checked == true){
		//document.getElementById('registerButton').disabled = false;
		document.getElementById('registerButtonForm').disabled = false;
	}else{
		//document.getElementById('registerButton').disabled = true;
		document.getElementById('registerButtonForm').disabled = true;
	}
}

function sellRequestStage1(){
	createRequest();
	
	var string = "";
	
	string = string + "&askingPrice=" + document.getElementById("sellaskingPrice").value;
	
	string = string + "&extraDetail=" + document.getElementById("sellextraDetail").value;

	string = string + "&uniqueID=" + document.getElementById("selluniqueID").value;

	var url = "sellCarServices.php?action=stage1"+string;

	request.open("GET", url, true);
	request.onreadystatechange = updateSellRequestStage1;
	request.send(null);

}

function updateSellRequestStage1() {
     if (request.readyState == 4){
		 if (request.status == 200){
			var response = request.responseText;
			//alert(response);
			document.getElementById("sellStage1Panel").style.display = "none";
			document.getElementById("sellStage2Panel").style.display = "block";
//			document.getElementById("search_results_content").innerHTML = response;
//			document.getElementById("loading_search").style.display = "none";

			//document.getElementById("registerButton").disabled = false;
			//alert("Search model has been updated.");
		 }else if (request.status == 404){
         	alert("Request URL does not exist");
		 }else{
         	alert("Error: status code is " + request.status);
		 }
	 }
}

function sellRequestStage2(){
	createRequest();
	
	var string = "";
	
	string = string + "&inspectOption=" + getSelectedRadioValue(document.inspection_form.inspectOption);
	
	string = string + "&inspectionYear=" + document.getElementById("inspectionYear").options[document.getElementById("inspectionYear").selectedIndex].value
	string = string + "&inspectionMonth=" + document.getElementById("inspectionMonth").options[document.getElementById("inspectionMonth").selectedIndex].value
	string = string + "&inspectionDay=" + document.getElementById("inspectionDay").options[document.getElementById("inspectionDay").selectedIndex].value
	
	string = string + "&inspectTime=" + getSelectedRadioValue(document.inspection_form.inspectTime);
	string = string + "&uniqueID=" + document.getElementById("selluniqueID").value;
	//alert(string);
	
	var url = "sellCarServices.php?action=stage2"+string;

	request.open("GET", url, true);
	request.onreadystatechange = updateSellRequestStage2;
	request.send(null);

}

function updateSellRequestStage2() {
     if (request.readyState == 4){
		 if (request.status == 200){
			var response = request.responseText;
			//alert(response);
			document.location.href='myprofile.php';
		 }else if (request.status == 404){
         	alert("Request URL does not exist");
		 }else{
         	alert("Error: status code is " + request.status);
		 }
	 }
}


function findRequest(registered){
	
	val1 = findmakesval.validate();
    val2 = findmodelsval.validate();
	
	if(registered==0){
		val3 = findfirstnameval.validate();
		val4 = findlastnameval.validate();
		val5 = findcontactnumberval.validate();
		val6 = findcontactpostcodeval.validate();
	}
	
	if(val1!=true || val2!=true){
		alert("Please enter a Make and Model.");
		return;
	}
	
	if(registered==0){
		if(val3!=true || val4!=true || val5!=true){
			alert("Please enter your contact details.");
			return;
		}
	}
	
	createRequest();
	
	var string = "";
	
	string = string + "&make=" + document.getElementById("findmakes").options[document.getElementById("findmakes").selectedIndex].value;
	string = string + "&model=" + document.getElementById("findmodels").options[document.getElementById("findmodels").selectedIndex].value;
	
	string = string + "&colour=" + document.getElementById("findcolour").value;
	
	string = string + "&from_price=" + document.getElementById("findfrom_price").options[document.getElementById("findfrom_price").selectedIndex].value;
	string = string + "&to_price=" + document.getElementById("findto_price").options[document.getElementById("findto_price").selectedIndex].value;
	
	string = string + "&milage=" + document.getElementById("findmileage").options[document.getElementById("findmileage").selectedIndex].value;
	
	string = string + "&age=" + document.getElementById("findage").options[document.getElementById("findage").selectedIndex].value;
	
	string = string + "&extraDetail=" + escape(document.getElementById("findextraDetail").value);
	string = string + "&userID=" + document.getElementById("finduserID").value;
	
	if(registered != 1){
		val3 = findemailval.validate();
		val4 = findspryconf1.validate();
		
		if(val3!=true){
			alert("Please make sure you enter a valid email address.");
			return;

		}
		
		if(val4!=true){
			alert("Please make sure your passwords match.");
			return;

		}
		
		string = string + "&registered=0";
		string = string + "&nameFirst=" + document.getElementById("find_nameFirst").value;
		string = string + "&nameLast=" + document.getElementById("find_nameLast").value;
		string = string + "&email=" + document.getElementById("find_email").value;
		string = string + "&contactNumDay=" + document.getElementById("find_contactNumDay").value;
		string = string + "&contactPostcode=" + document.getElementById("find_contactPostcode").value;
		string = string + "&password1=" + document.getElementById("find_password1").value;
		
	}else{
		string = string + "&registered=1";	
	}

	//alert(string);
	
	var url = "findCarServices.php?action=send"+string;

	request.open("GET", url, true);

	if(registered == 1){
		request.onreadystatechange = updateFindRequest;
	}else{
		request.onreadystatechange = updateFindRequestUnreg;
	}
	request.send(null);

}

function updateFindRequest() {
     if (request.readyState == 4){
		 if (request.status == 200){
			var response = request.responseText;
			//alert(response);
			hs.close('findCarSearch');
			alert('Thank you for submitting a car request, we will contact you shortly.');
		 }else if (request.status == 404){
         	alert("Request URL does not exist");
		 }else{
         	alert("Error: status code is " + request.status);
		 }
	 }
}

function updateFindRequestUnreg() {
     if (request.readyState == 4){
		 if (request.status == 200){
			var response = request.responseText;
			response = response.replace('<!-- 0  -->','');
			//alert(response);
			exResponse = response.split("%");
			hs.close('findCarSearch');
			alert('Thank you for submitting a car request, we will contact you shortly. We will now log you into MyCarConsole.');
			document.location.href='login.php?username=' + exResponse[0] + '&password=' + exResponse[1];
		 }else if (request.status == 404){
         	alert("Request URL does not exist");
		 }else{
         	alert("Error: status code is " + request.status);
		 }
	 }
}

function updateModel(model, carID){
	if (confirm("Update the model?")){
		createRequest();
		var url = "makeModel_services.php?action=updateModel&string="+escape(model)+"&carID="+escape(carID);
		//alert(url);
		request.open("GET", url, true);
		request.onreadystatechange = updateModelDetails;
		request.send(null);
	}
}

function updateModelDetails() {
     if (request.readyState == 4){
		 if (request.status == 200){
			var response = request.responseText;
			//alert(response);
//			document.getElementById("search_results_content").innerHTML = response;
//			document.getElementById("loading_search").style.display = "none";

			//document.getElementById("registerButton").disabled = false;
			//alert("Search model has been updated.");
		 }else if (request.status == 404){
         	alert("Request URL does not exist");
		 }else{
         	alert("Error: status code is " + request.status);
		 }
	 }
}

function checkEmail(email, inputTarget, textTarget){
		createRequest();
		var url = "checkEmail_services.php?action=check&email="+escape(email)+"&inputTarget="+escape(inputTarget)+"&textTarget="+escape(textTarget);
		//alert(url);
		request.open("GET", url, true);
		request.onreadystatechange = updateCheckEmail;
		request.send(null);
}

function updateCheckEmail() {
     if (request.readyState == 4){
		 if (request.status == 200){
			var response = request.responseText;
			response = response.replace('<!-- 0  -->','');
			splitResponce = response.split("%");
			if(splitResponce[0]==1){
				alert("This email is already registered, please login to your account and try again");
			}
			//alert(response);
//			document.getElementById("search_results_content").innerHTML = response;
//			document.getElementById("loading_search").style.display = "none";

			//document.getElementById("registerButton").disabled = false;
			//alert("Search model has been updated.");
		 }else if (request.status == 404){
         	alert("Request URL does not exist");
		 }else{
         	alert("Error: status code is " + request.status);
		 }
	 }
}

function findCarDetails() {
	var vr = document.getElementById("MXIN_VRM").value;
	if(vr.length > 2){
		//document.getElementById("registerButton").disabled = true;
		document.getElementById("findCarButton").value = "Finding Car";
		document.getElementById("carDetailsPanel").style.display = "none";
		createRequest();
		var url = "/regProxy.php?vr="+escape(vr);
		request.open("GET", url, true);
		request.onreadystatechange = updateFindCarDetails;
		request.send(null);
	}else{
		alert('Please enter a valid Car Registration Number.');	
	}
}

function updateFindCarDetails() {
     if (request.readyState == 4){
		 if (request.status == 200){
			var response = request.responseText;
			//alert(response);
			if (document.implementation && document.implementation.createDocument)
			{
				var parser=new DOMParser();
  				var xmlDoc=parser.parseFromString(response,"text/xml");
			}
			else if (window.ActiveXObject)
			{
				xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
				xmlDoc.loadXML(response);
			}
			else
			{
				alert('Your browser can\'t handle this script');
				return;
			}
			MAKE = xmlDoc.getElementsByTagName("MAKE")[0].childNodes[0].nodeValue;
			document.getElementById("MAKEHTML").innerHTML=MAKE;
			document.getElementById("MAKE").value=MAKE;
			
			MODEL = xmlDoc.getElementsByTagName("MODEL")[0].childNodes[0].nodeValue;
			document.getElementById("MODELHTML").innerHTML=MODEL;
			document.getElementById("MODEL").value=MODEL;
			
			COLOUR = xmlDoc.getElementsByTagName("COLOUR")[0].childNodes[0].nodeValue;
			document.getElementById("COLOURHTML").innerHTML=COLOUR;
			document.getElementById("COLOUR").value=COLOUR;
			
			DOORPLANLITERAL = xmlDoc.getElementsByTagName("DOORPLANLITERAL")[0].childNodes[0].nodeValue;
			document.getElementById("DOORPLANLITERALHTML").innerHTML=DOORPLANLITERAL;
			document.getElementById("DOORPLANLITERAL").value=DOORPLANLITERAL;
			
			FUEL = xmlDoc.getElementsByTagName("FUEL")[0].childNodes[0].nodeValue;
			document.getElementById("FUELHTML").innerHTML=FUEL;
			document.getElementById("FUEL").value=FUEL;
			
			TRANSMISSION = xmlDoc.getElementsByTagName("TRANSMISSION")[0].childNodes[0].nodeValue;
			document.getElementById("TRANSMISSIONHTML").innerHTML=TRANSMISSION;
			document.getElementById("TRANSMISSION").value=TRANSMISSION;
			
			YEAROFMANUFACTURE = xmlDoc.getElementsByTagName("YEAROFMANUFACTURE")[0].childNodes[0].nodeValue;
			document.getElementById("YEAROFMANUFACTUREHTML").innerHTML=YEAROFMANUFACTURE;
			document.getElementById("YEAROFMANUFACTURE").value=YEAROFMANUFACTURE;
			
			document.getElementById("VRM").value=xmlDoc.getElementsByTagName("VRM")[0].childNodes[0].nodeValue;
			document.getElementById("ENGINECAPACITY").value=xmlDoc.getElementsByTagName("ENGINECAPACITY")[0].childNodes[0].nodeValue;
			document.getElementById("DOORPLAN").value=xmlDoc.getElementsByTagName("DOORPLAN")[0].childNodes[0].nodeValue;
			document.getElementById("DATEFIRSTREGISTERED").value=xmlDoc.getElementsByTagName("DATEFIRSTREGISTERED")[0].childNodes[0].nodeValue;
			document.getElementById("SCRAPPED").value=xmlDoc.getElementsByTagName("SCRAPPED")[0].childNodes[0].nodeValue;
			document.getElementById("EXPORTED").value=xmlDoc.getElementsByTagName("EXPORTED")[0].childNodes[0].nodeValue;
			document.getElementById("IMPORTED").value=xmlDoc.getElementsByTagName("IMPORTED")[0].childNodes[0].nodeValue;
			document.getElementById("ENGINENUMBER").value=xmlDoc.getElementsByTagName("ENGINENUMBER")[0].childNodes[0].nodeValue;
			document.getElementById("VINSERIALNUMBER").value=xmlDoc.getElementsByTagName("VINSERIALNUMBER")[0].childNodes[0].nodeValue;
			document.getElementById("MVRISMAKECODE").value=xmlDoc.getElementsByTagName("MVRISMAKECODE")[0].childNodes[0].nodeValue;
			document.getElementById("MVRISMODELCODE").value=xmlDoc.getElementsByTagName("MVRISMODELCODE")[0].childNodes[0].nodeValue;
			document.getElementById("DTPMAKECODE").value=xmlDoc.getElementsByTagName("DTPMAKECODE")[0].childNodes[0].nodeValue;
			document.getElementById("DTPMODELCODE").value=xmlDoc.getElementsByTagName("DTPMODELCODE")[0].childNodes[0].nodeValue;
			document.getElementById("TRANSMISSIONCODE").value=xmlDoc.getElementsByTagName("TRANSMISSIONCODE")[0].childNodes[0].nodeValue;
			document.getElementById("GEARS").value=xmlDoc.getElementsByTagName("GEARS")[0].childNodes[0].nodeValue;
			document.getElementById("CO2EMISSIONS").value=xmlDoc.getElementsByTagName("CO2EMISSIONS")[0].childNodes[0].nodeValue;
			document.getElementById("USEDBEFORE1STREG").value=xmlDoc.getElementsByTagName("USEDBEFORE1STREG")[0].childNodes[0].nodeValue;
			document.getElementById("IMPORTNONEU").value=xmlDoc.getElementsByTagName("IMPORTNONEU")[0].childNodes[0].nodeValue;
			document.getElementById("UKDATEFIRSTREGISTERED").value=xmlDoc.getElementsByTagName("UKDATEFIRSTREGISTERED")[0].childNodes[0].nodeValue;
			document.getElementById("MAKEMODEL").value=xmlDoc.getElementsByTagName("MAKEMODEL")[0].childNodes[0].nodeValue;		
			
			document.getElementById("carDetailsPanel").style.display = "block";
			document.getElementById("guideDiv").style.display = "none";
			document.getElementById("findCarButton").value = "Find";
//			document.getElementById("search_results_content").innerHTML = response;
//			document.getElementById("loading_search").style.display = "none";

			//document.getElementById("registerButton").disabled = false;
		 }else if (request.status == 404){
         	alert("Request URL does not exist");
		 }else{
         	alert("Error: status code is " + request.status);
		 }
	 }
}

function sendMessage(targeBox, targetDiv, userID, carID, toID, message, replyID){
	//document.getElementById(targeBox).disabled = true;
	
	createRequest();
	var url = "/messageServices.php?action=send&userID="+escape(userID)+"&carID="+escape(carID)+"&toID="+escape(toID)+"&replyID="+escape(replyID)+"&message="+escape(message);
	request.open("GET", url, true);
	request.onreadystatechange = updateSendMessage;
	request.send(null);
	
	hs.close(document.getElementById(targetDiv));
	
	//alert("messageServices.php?userID="+escape(userID)+"&carID="+escape(carID)+"&toID="+escape(toID)+"&message="+escape(message));
	document.getElementById(targeBox).value = "";
}

function updateSendMessage() {
     if (request.readyState == 4){
		 if (request.status == 200){
			var response = request.responseText;
			//alert(response);
//			document.getElementById("search_results_content").innerHTML = response;
//			document.getElementById("loading_search").style.display = "none";

			//document.getElementById("registerButton").disabled = false;
			//alert("Your message has been sent.");
		 }else if (request.status == 404){
         	alert("Request URL does not exist");
		 }else{
         	alert("Error: status code is " + request.status);
		 }
	 }
}

function readEmail(id, targetDiv, targetImage){
	//document.getElementById(targeBox).disabled = true;
	
	createRequest();
	var url = "/messageServices.php?action=read&uniqueID="+escape(id);
	request.open("GET", url, true);
	request.onreadystatechange = updateReadEmail;
	request.send(null);
	//alert("read");
	document.getElementById(targetDiv).className = "messageHeaderRead";
	document.getElementById(targetImage).src="img/buttons/emailRead.gif";
}

function updateReadEmail() {
     if (request.readyState == 4){
		 if (request.status == 200){
			var response = request.responseText;
			//alert(response);
//			document.getElementById("search_results_content").innerHTML = response;
//			document.getElementById("loading_search").style.display = "none";

			//document.getElementById("registerButton").disabled = false;
			//alert("Your message has been sent.");
		 }else if (request.status == 404){
         	alert("Request URL does not exist");
		 }else{
         	alert("Error: status code is " + request.status);
		 }
	 }
}

function clearSelect(id){
	var targetSelect = document.getElementById(id);
	while (targetSelect.options.length > 0) {
		targetSelect.options[0] = null;
	}
}

function addSelect(id, text, value, selected){
	var targetSelect = document.getElementById(id);
	targetSelect.options[targetSelect.options.length] = new Option(text,value,selected);
	
}

function changeModels(make, fromFind){
	document.getElementById('models').disabled = true;
	if(fromFind==0){
		document.getElementById('findmakes').selectedIndex = document.getElementById('makes').selectedIndex;
	}
	document.getElementById('findmodels').disabled = true;
	clearSelect('models');
	clearSelect('findmodels');
	addSelect('models','All Models', '');
	addSelect('findmodels','All Models', '');
	for (var i in modelMake[make]){
		//alert(modelMake[make][i]);
		addSelect('models',modelMake[make][i], modelMake[make][i], false);
		addSelect('findmodels',modelMake[make][i], modelMake[make][i], false);
	}
	document.getElementById('models').disabled = false;
	document.getElementById('findmodels').disabled = false;
}

function setupModels(make, model){
	document.getElementById('models').disabled = true;
	clearSelect('models');
	addSelect('models','All Models', '');
	if(document.getElementById('findmodels')){
		document.getElementById('findmodels').disabled = true;
		clearSelect('findmodels');
		addSelect('findmodels','All Models', '');
	}
	
	
	
	for (var i in modelMake[make]){
		if(modelMake[make][i]!=model){
			addSelect('models',modelMake[make][i], modelMake[make][i], false);
			if(document.getElementById('findmodels')){
				addSelect('findmodels',modelMake[make][i], modelMake[make][i], false);
			}
		}else{
			addSelect('models',modelMake[make][i], modelMake[make][i], true);
			if(document.getElementById('findmodels')){
				addSelect('findmodels',modelMake[make][i], modelMake[make][i], true);
			}
		}
	}
	document.getElementById('models').disabled = false;
	if(document.getElementById('findmodels')){
		document.getElementById('findmodels').disabled = false;
	}

}

function calcprice(){
	var baseprice = document.getElementById('deposit').value;
	
	var total = 0;
	warranty_value = getSelectedRadioValue(document.buyForm.warrantySelect);
	warranty_array = warranty_value.split("@");
	document.getElementById('warAmount').innerHTML = warranty_array[0] + " &pound;" + warranty_array[1];
	delivery_value = getSelectedRadioValue(document.buyForm.deliverySelect);
	delivery_array = delivery_value.split("@");
	document.getElementById('delAmount').innerHTML = delivery_array[0] + " &pound;" + delivery_array[1];
	
	total += parseFloat(baseprice);
	total += parseFloat(warranty_array[1]);
	total += parseFloat(delivery_array[1]);
	
	document.getElementById('total').value = total.toFixed(2);

	document.getElementById('buyAmount').innerHTML = "&pound;" + total.toFixed(0);

	//alert(name);
	//-----debuging--------
	//alert_string = "baseprice="+baseprice+"\n";
	//alert_string += "numgroups="+numgroups+"\n";
	//alert(alert_string);
	//-----end debuging--------
}


//v1.7
// Flash Player Version Detection
// Detect Client Browser type
// Copyright 2005-2007 Adobe Systems Incorporated.  All rights reserved.
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

function ControlVersion()
{
	var version;
	var axo;
	var e;

	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry

	try {
		// version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}

	if (!version)
	{
		try {
			// version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			
			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful. 
			
			// default to the first public version
			version = "WIN 6,0,21,0";

			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
			axo.AllowScriptAccess = "always";

			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");

		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}

// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");			
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
}

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString        = tempArray[1];			// "2,0,0,11"
			versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			versionArray      = versionStr.split(".");
		}
		var versionMajor      = versionArray[0];
		var versionMinor      = versionArray[1];
		var versionRevision   = versionArray[2];

        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))
				return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {
				if (versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}

function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '';
  if (isIE && isWin && !isOpera)
  {
    str += '<object ';
    for (var i in objAttrs)
    {
      str += i + '="' + objAttrs[i] + '" ';
    }
    str += '>';
    for (var i in params)
    {
      str += '<param name="' + i + '" value="' + params[i] + '" /> ';
    }
    str += '</object>';
  }
  else
  {
    str += '<embed ';
    for (var i in embedAttrs)
    {
      str += i + '="' + embedAttrs[i] + '" ';
    }
    str += '> </embed>';
  }

  document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
      case "id":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}

// JavaScript Document
		var account_code='PROJE11120';
		var license_code='PC92-DM97-NR18-EW69';
		
		function pcaByPostcodeBegin()
		   {
			  var postcode = document.getElementById("postcode").value;
			  //alert(postcode);
		      var scriptTag = document.getElementById("pcaScriptTag");
		      var headTag = document.getElementsByTagName("head").item(0);
		      var strUrl = "";
		      
		      document.getElementById("divLoading").style.display = '';
		      
		      //Build the url
		      strUrl = "http://services.postcodeanywhere.co.uk/inline.aspx?";
		      strUrl += "&action=lookup";
		      strUrl += "&type=by_postcode";
		      strUrl += "&postcode=" + escape(postcode);
		      strUrl += "&account_code=" + escape(account_code);
		      strUrl += "&license_code=" + escape(license_code);
		      strUrl += "&callback=pcaByPostcodeEnd";
		      
		      //Make the request
		      if (scriptTag)
		         {
		            //The following 2 lines perform the same function and are interchangeable
		            headTag.removeChild(scriptTag);
		            //scriptTag.parentNode.removeChild(scriptTag);
		         }
		      scriptTag = document.createElement("script");
		      scriptTag.src = strUrl
		      scriptTag.type = "text/javascript";
		      scriptTag.id = "pcaScriptTag";
		      headTag.appendChild(scriptTag);
		      
		      document.getElementById("selectaddress").style.display = '';
		      document.getElementById("btnFetch").style.display = '';
		      
		   }

		function pcaByPostcodeEnd()
		   {
			  document.getElementById("divLoading").style.display = 'none';
			  
		      //Test for an error
		      if (pcaIsError)
		         {
		            //Show the error message
		            alert(pcaErrorMessage);
		         }
		      else
		         {
		            //Check if there were any items found
		            if (pcaRecordCount==0)
		               {
		                  alert("Sorry, no matching items found");
		               }
		            else
		               {
						  for (i=document.getElementById("selectaddress").options.length-1; i>=0; i--){
							  document.getElementById("selectaddress").options[i] = null;
							}
						  for (i=0; i<pca_id.length; i++){
		                    document.getElementById("selectaddress").options[document.getElementById("selectaddress").length] = new Option(pca_description[i], pca_id[i]);
		                  }
		               }
		         }
		   }
		
		function pcaFetchBegin(){
			  var address_id = document.getElementById("selectaddress").value;
		      var scriptTag = document.getElementById("pcaScriptTag");
		      var headTag = document.getElementsByTagName("head").item(0);
		      var strUrl = "";

		      //Build the url
		      strUrl = "http://services.postcodeanywhere.co.uk/inline.aspx?";
		      strUrl += "&action=fetch";
		      strUrl += "&id=" + escape(address_id);
		      strUrl += "&account_code=" + escape(account_code);
		      strUrl += "&license_code=" + escape(license_code);
		      strUrl += "&style=raw";
		      strUrl += "&callback=pcaFetchEnd";

		      //Make the request
		      if (scriptTag){
		            //The following 2 lines perform the same function and are interchangeable
		            headTag.removeChild(scriptTag);
		            //scriptTag.parentNode.removeChild(scriptTag);
		      }
		      scriptTag = document.createElement("script");
		      scriptTag.src = strUrl
		      scriptTag.type = "text/javascript";
		      scriptTag.id = "pcaScriptTag";
		      headTag.appendChild(scriptTag);
		      
		      document.getElementById("selectaddress").style.display = 'none';
		      document.getElementById("btnFetch").style.display = 'none';
		   }

		function pcaFetchEnd(){
		      //Test for an error
		      if (pcaIsError){
		            //Show the error message
		            alert(pcaErrorMessage);
		         }else{
		            //Check if there were any items found
		            if (pcaRecordCount==0){
		                  alert("Sorry, no matching items found");
		               }else{
						  document.getElementById("registerButton").disabled = false;
						  
						  document.getElementById("line1").value = '' + pca_line1[0];
						  if(document.getElementById("line1").value!=""){
							  document.getElementById("line1HTML").innerHTML = '' + pca_line1[0];
							  document.getElementById("line1Div").style.display = "block";
						  }
						  document.getElementById("line2").value = '' + pca_line2[0];
						  if(document.getElementById("line2").value!=""){
							  document.getElementById("line2HTML").innerHTML = '' + pca_line2[0];
							  document.getElementById("line2Div").style.display = "block";
						  }
						  document.getElementById("line3").value = '' + pca_line3[0];
						  if(document.getElementById("line3").value!=""){
							  document.getElementById("line3HTML").innerHTML = '' + pca_line3[0];
							  document.getElementById("line3Div").style.display = "block";
						  }
						  document.getElementById("line4").value = '' + pca_line4[0];
						  if(document.getElementById("line4").value!=""){
							  document.getElementById("line4HTML").innerHTML = '' + pca_line4[0];
							  document.getElementById("line4Div").style.display = "block";
						  }
						  document.getElementById("line5").value = '' + pca_line5[0];
						  if(document.getElementById("line5").value!=""){
							  document.getElementById("line5HTML").innerHTML = '' + pca_line5[0];
							  document.getElementById("line5Div").style.display = "block";
						  }
						  document.getElementById("town").value = '' + pca_post_town[0];
						  if(document.getElementById("town").value!=""){
							  document.getElementById("townHTML").innerHTML = '' + pca_post_town[0];
							  document.getElementById("townDiv").style.display = "block";
						  }
						  document.getElementById("county").value = '' + pca_county[0];
						  if(document.getElementById("county").value!=""){
							  document.getElementById("countyHTML").innerHTML = '' + pca_county[0];
							  document.getElementById("countyDiv").style.display = "block";
						  }
						  if (pca_building_flat[1]!=''){
							document.getElementById("flat").value = '' + pca_building_flat[0];
						  }else{
							document.getElementById("flat").value = '' + pca_sub_building_name[0];
						  }
						  document.getElementById("building_number").value = '' + pca_building_number[0];
						  document.getElementById("building_name").value = '' + pca_building_name[0];
						  document.getElementById("street1").value = '' + pca_dependent_thoroughfare_name[0] + ' ' + pca_dependent_thoroughfare_descriptor[0];
						  document.getElementById("street2").value = '' + pca_thoroughfare_name[0] + ' ' + pca_thoroughfare_descriptor[0];
						  document.getElementById("dd_locality").value = '' + pca_double_dependent_locality[0];
						  document.getElementById("d_locality").value = '' + pca_dependent_locality[0];
		               }
		         }
		   }




