﻿// JavaScript Document

<!--
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function YY_checkform() { //v4.66
//copyright (c)1998,2002 Yaromat.com
  var args = YY_checkform.arguments; var myDot=true; var myV=''; var myErr='';var addErr=false;var myReq;
  for (var i=1; i<args.length;i=i+4){
    if (args[i+1].charAt(0)=='#'){myReq=true; args[i+1]=args[i+1].substring(1);}else{myReq=false}
    var myObj = MM_findObj(args[i].replace(/\[\d+\]/ig,""));
    myV=myObj.value;
    if (myObj.type=='text'||myObj.type=='password'||myObj.type=='hidden'){
      if (myReq&&myObj.value.length==0){addErr=true}
      if ((myV.length>0)&&(args[i+2]==1)){ //fromto
        var myMa=args[i+1].split('_');if(isNaN(myV)||myV<myMa[0]/1||myV > myMa[1]/1){addErr=true}
      } else if ((myV.length>0)&&(args[i+2]==2)){
          var rx=new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-z]{2,4}$");if(!rx.test(myV))addErr=true;
      } else if ((myV.length>0)&&(args[i+2]==3)){ // date
        var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);
        if(myAt){
          var myD=(myAt[myMa[1]])?myAt[myMa[1]]:1; var myM=myAt[myMa[2]]-1; var myY=myAt[myMa[3]];
          var myDate=new Date(myY,myM,myD);
          if(myDate.getFullYear()!=myY||myDate.getDate()!=myD||myDate.getMonth()!=myM){addErr=true};
        }else{addErr=true}
      } else if ((myV.length>0)&&(args[i+2]==4)){ // time
        var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);if(!myAt){addErr=true}
      } else if (myV.length>0&&args[i+2]==5){ // check this 2
            var myObj1 = MM_findObj(args[i+1].replace(/\[\d+\]/ig,""));
            if(myObj1.length)myObj1=myObj1[args[i+1].replace(/(.*\[)|(\].*)/ig,"")];
            if(!myObj1.checked){addErr=true}
      } else if (myV.length>0&&args[i+2]==6){ // the same
            var myObj1 = MM_findObj(args[i+1]);
            if(myV!=myObj1.value){addErr=true}
      }
    } else
    if (!myObj.type&&myObj.length>0&&myObj[0].type=='radio'){
          var myTest = args[i].match(/(.*)\[(\d+)\].*/i);
          var myObj1=(myObj.length>1)?myObj[myTest[2]]:myObj;
      if (args[i+2]==1&&myObj1&&myObj1.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
      if (args[i+2]==2){
        var myDot=false;
        for(var j=0;j<myObj.length;j++){myDot=myDot||myObj[j].checked}
        if(!myDot){myErr+='* ' +args[i+3]+'\n'}
      }
    } else if (myObj.type=='checkbox'){
      if(args[i+2]==1&&myObj.checked==false){addErr=true}
      if(args[i+2]==2&&myObj.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
    } else if (myObj.type=='select-one'||myObj.type=='select-multiple'){
      if(args[i+2]==1&&myObj.selectedIndex/1==0){addErr=true}
    }else if (myObj.type=='textarea'){
      if(myV.length<args[i+1]){addErr=true}
    }
    if (addErr){myErr+='* '+args[i+3]+'\n'; addErr=false}
  }
  if (myErr!=''){alert('The required information is incomplete or contains errors:\t\t\t\t\t\n\n'+myErr)}
  document.MM_returnValue = (myErr=='');
}
//-->



<!--
	
	var bFormSubmit = false;
	
	function MM_findObj(n, d) { //v4.0
		var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
		if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
		for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
		if(!x && document.getElementById) x=document.getElementById(n); return x;
	}
	
	function newWin(url,h,w)
	{
		newwindow=window.open(url,'name','width=' + w + ', height=' + h + ', ' +
			'location=no, menubar=no, ' + 'status=no, toolbar=no, scrollbars=yes, resizable=yes');
	}
	
	function getNicePostcode(nastyPostcode){
		
		var nicePostcode;

		// convert to uppercase
		nicePostcode = nastyPostcode.toUpperCase();

		// remove any spaces
		var spaceRemoveReg = / /g;
		nicePostcode = nicePostcode.replace(spaceRemoveReg,"");

		// insert space after 1/2 A-Z and 1/2 1-9
		 var spaceInsertReg = /([0-9]{1}[A-Z]{1,2}$)/;
		nicePostcode = nicePostcode.replace(spaceInsertReg," $1");

		// this will check for normal codes
		var isNicePostcodeReg = /^[A-Z]{1,2}[0-9]{1,2} [0-9]{1}[A-Z]{1,2}/;
		var indexOf = nicePostcode.search(isNicePostcodeReg);

		if (indexOf == -1){
			// if it fails, check for SW1V 3DE codes
			var isNicePostcodeReg= /^[A-Z]{1,2}[0-9]{1}[A-Z]{1} [0-9]{1}[A-Z]{1,2}/;
			var indexOf = nicePostcode.search(isNicePostcodeReg);

			// if it STILL doesnt match, return false
			if (indexOf == -1){
				return null;
			}
			else {
				return nicePostcode;
			}

		}
		else {
			return nicePostcode;
		}
	}
	
	function isNicePostcode(){
		var postCode = MM_findObj('postCodeListField').value;
		if(postCode != ""){
			var nicePostcode = getNicePostcode(postCode);
			
			if (!nicePostcode){
				alert("\"" + postCode + "\" is not a valid postcode!");
				MM_findObj('postCodeListField').value = "";
				MM_findObj('postCodeListField').focus();
			}
			else if(checkLettingAgent())
			{
				MM_findObj('postCodeListField').value = nicePostcode
				MM_findObj('fmrPostcode').submit();
			} else {
				bFormSubmit = false;
			}
		}
		else
		{
			alert("You must enter a value in the postcode field.");
			MM_findObj('postCodeListField').value = "";
			MM_findObj('postCodeListField').focus();
		}
	}
	
	function checkLettingAgent()
	{
		if(MM_findObj('letting_agent_qy').checked == true)
		{	
			if(MM_findObj('agentAgentschemeno'))
			{
				if(MM_findObj('agentName').value == '' && MM_findObj('agentAgentschemeno').value == '')
				{
					alert("Please input your letting agent's scheme no.");
					return false;	
				} else {
					return true;	
				}
			} else {
				return true;	
			}
		} else if(MM_findObj('letting_agent_qn').checked == true) {
			return true;
		} else {
			alert("Please answer the letting agent question");
			return false;
		}
	}		
	
	function openAgentDetails()
	{
		var agentMessage = MM_findObj('agentMessage').value;
		var agentStyle = MM_findObj('agentStyle').value;
		var agentName = MM_findObj('agentName').value;
		agentName = agentName.replace(/&/,'and');
		var agentTown = MM_findObj('agentTown').value;
		var agentAgentschemeno = MM_findObj('agentAgentschemeno').value;
		var oldscheme = MM_findObj('oldscheme').value;
		var values = 0;
//		if(agentName.length) values++;
  //              if(agentTown.length) values++;
//                if(agentAgentschemeno.length) values++;
		
		if (agentAgentschemeno == "" && ((agentName != "" && agentName.length <4) || (agentTown != "" && agentTown.length<4)))
		{
			alert("You must complete either both the agent name and town fields with at least 4 characters or the complete Scheme Number.");
		}
		else
		{
			popUpWindow('/cgi-bin/agentSearch.pl?message='+agentMessage+'&style='+agentStyle+'&name='+agentName+'&town='+agentTown+'&agentschemeno='+agentAgentschemeno+'&oldscheme='+oldscheme,400,320);
		}
	}

	var popUpWin=0;
	function popUpWindow(URLStr, width, height)
	{
	  var left = 10;
	  var top = 10;
	  if(popUpWin)
	  {
		if(!popUpWin.closed) popUpWin.close();
	  }
	  popUpWin = open(URLStr, 'popUpWin', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,copyhistory=yes,width='+width+',height='+height+',left='+left+', top='+top+'');
	}
	
	function checkCookiesEnabled()
	{
		// if i can't retrieve the test cookie, then the browser must have cookies disabled!
		if (getCookie('homeletCheck') != 'cookiesEnabled') {
			window.document.location.href = "http://" + document.domain + "/cgi-bin/frontEnd.cgi?agentSchemeNumber=1503000&policiesToDisplay=|&noRedirect=true&errorMessage=You appear to have cookies disabled in your browser.<BR>Cookies are essential to purchase policies on-line.<BR>Please ensure you have cookies enabled."
		}
	}
	
	function SubmitForm()
	{	return bFormSubmit;
	}	
	
//-->

function clearDefault(el) {
  if (el.defaultValue==el.value) el.value = ""
}
function show() {
	for (var i=0; i<show.arguments.length; i++) {
		var element = document.getElementById(show.arguments[i]);
		element.style.display =  "block";
	}
}
function hide() {
	for (var i=0; i<hide.arguments.length; i++) {
		var element = document.getElementById(hide.arguments[i]);
		element.style.display =  "none";
	}
}


// Standard Ajax Scripts //

var xmlHttp

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;
}

// Steve's Scripts below here //


// Calls a page and passes the parameters using str as a get string//
function ajaxCall(url,parameters,returnTo)
// Test ability to run Ajax scripts //
{ 
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	  {
		  alert ("Your browser does not support AJAX!");
		  return;
	  } 
	 
	
	// set up url of page being called (relative to calling page) //
	var url=url;
	var parameters=parameters;
	var returnTo=returnTo;
	// Append any parameters using get string '?ID=1&name=steve' etc
	url=url+'?'+parameters;
	// Append a random number to ensure caching of called page fails //
	url=url+"&sid="+Math.random();
	
	
	// alert('url='+url+' returnTo='+returnTo); //
	// Call the updating http script to update the page //
	xmlHttp.onreadystatechange= function() { ajaxReturn(returnTo); };
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}


// updating http script  - requires the name of the element being amended //
//CARE IE SEEMS TO ONLY INDERSTAND DIVS CERTAINLY NOT INPUTS//
function ajaxReturn(returnTo)
{ 
	if (xmlHttp.readyState==4)
	// send http info and update the appropriate div //
	{ 
		var id=1
		document.getElementById(returnTo).innerHTML=xmlHttp.responseText;
	}
}

