function adjustLayout(){

	//Get natural heights
	var cHeight = xHeight("body");
	var rHeight = xHeight("info")+193;
	
	//Find Maximum height
	var maxHeight = Math.max(cHeight, rHeight);
	
	//Apply the height to all columns
	xHeight("body", maxHeight);
	xHeight("info", maxHeight-193);

}

function verifyMailshot(){
	
	document.add_mailshot.email.value=validateEmail(document.add_mailshot.email.value);
	var report="There is a problem\nPlease check the following:\n\n"
	var flag=0;
	
	if(document.add_mailshot.name.value=="" || document.add_mailshot.name.value=="name")
		{
		flag=1; report += "...Please enter your name\n";
		}
	
	if(document.add_mailshot.email.value=="" || document.add_mailshot.email.value=="email")
	    {
		flag=1; report += "...Please enter an email address to proceed\n";
		} else {
		if(document.add_mailshot.email.value.indexOf("@")==-1 || document.add_mailshot.email.value.indexOf(".")==-1)
		    {
			flag=1; report += "...Please check your email address, it appears invalid\n";
			}
		}
	
	if(flag==1)
	{
		alert(report);
		} else {
		document.add_mailshot.submit();
	}
	
}

function removeMailshot(){

	document.remove_mailshot.email.value=validateEmail(document.remove_mailshot.email.value);
	var report="There is a problem unsubscribing\n\n"
	var flag=0;
	if(document.remove_mailshot.email.value!=document.remove_mailshot.addr.value)
		{
		flag=1; report += "...Please check your email address, it does not match the address the mailing you wish to unsubscribe from was sent to\n";
		report += "...Please ensure that your email address is entirely in lower case\n"
		}
		
	if(flag==1)
	{
		alert(report);
		} else {
		document.remove_mailshot.submit();
	}	
	
}



/* Standard Functions */

function validateNum(string)
    {
    for (var i=0, output='', valid="1234567890"; i<string.length; i++)
    if (valid.indexOf(string.charAt(i)) != -1)
    output += string.charAt(i)
    return output;
	} 
	
function validateAlpha(string)
    {
    for (var i=0, output='', valid="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ "; i<string.length; i++)
    if (valid.indexOf(string.charAt(i)) != -1)
    output += string.charAt(i)
    return output;
	}
	
function validateEmail(string)
    {
    for (var i=0, output='', valid="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_.@+"; i<string.length; i++)
    if (valid.indexOf(string.charAt(i)) != -1)
    output += string.charAt(i)
    return output;
	}
	
function checkboxToggle(control){
	if(control.value==0){
		control.value=1;
		document.checkbox.src='static_images/form_checkbox_selected.gif';
	} else {
		control.value=0;
		document.checkbox.src='static_images/form_checkbox.gif';
	}
}


function formatNumber(number, format, print) {  // use: formatNumber(number, "format")
    var separator = ",";  // use comma as 000's separator
    var decpoint = ".";  // use period as decimal point
    var percent = "%";
    var currency = "£";  // use pound sign for currency
    if (print) document.write("formatNumber(" + number + ", \"" + format + "\")<br>");

    if (number - 0 != number) return null;  // if number is NaN return null
    var useSeparator = format.indexOf(separator) != -1;  // use separators in number
    var usePercent = format.indexOf(percent) != -1;  // convert output to percentage
    var useCurrency = format.indexOf(currency) != -1;  // use currency format
    var isNegative = (number < 0);
    number = Math.abs (number);
    if (usePercent) number *= 100;
    format = strip(format, separator + percent + currency);  // remove key characters
    number = "" + number;  // convert number input to string

     // split input value into LHS and RHS using decpoint as divider
    var dec = number.indexOf(decpoint) != -1;
    var nleftEnd = (dec) ? number.substring(0, number.indexOf(".")) : number;
    var nrightEnd = (dec) ? number.substring(number.indexOf(".") + 1) : "";

     // split format string into LHS and RHS using decpoint as divider
    dec = format.indexOf(decpoint) != -1;
    var sleftEnd = (dec) ? format.substring(0, format.indexOf(".")) : format;
    var srightEnd = (dec) ? format.substring(format.indexOf(".") + 1) : "";

     // adjust decimal places by cropping or adding zeros to LHS of number
    if (srightEnd.length < nrightEnd.length) {
      var nextChar = nrightEnd.charAt(srightEnd.length) - 0;
      nrightEnd = nrightEnd.substring(0, srightEnd.length);
      if (nextChar >= 5) nrightEnd = "" + ((nrightEnd - 0) + 1);  // round up

 // patch provided by Patti Marcoux 1999/08/06
      while (srightEnd.length > nrightEnd.length) {
        nrightEnd = "0" + nrightEnd;
      }

      if (srightEnd.length < nrightEnd.length) {
        nrightEnd = nrightEnd.substring(1);
        nleftEnd = (nleftEnd - 0) + 1;
      }
    } else {
      for (var i=nrightEnd.length; srightEnd.length > nrightEnd.length; i++) {
        if (srightEnd.charAt(i) == "0") nrightEnd += "0";  // append zero to RHS of number
        else break;
      }
    }

     // adjust leading zeros
    sleftEnd = strip(sleftEnd, "#");  // remove hashes from LHS of format
    while (sleftEnd.length > nleftEnd.length) {
      nleftEnd = "0" + nleftEnd;  // prepend zero to LHS of number
    }

    if (useSeparator) nleftEnd = separate(nleftEnd, separator);  // add separator
    var output = nleftEnd + ((nrightEnd != "") ? "." + nrightEnd : "");  // combine parts
    output = ((useCurrency) ? currency : "") + output + ((usePercent) ? percent : "");
    if (isNegative) {
      // patch suggested by Tom Denn 25/4/2001
      output = (useCurrency) ? "(" + output + ")" : "-" + output;
    }
    return output;
  }

  function strip(input, chars) {  // strip all characters in 'chars' from input
    var output = "";  // initialise output string
    for (var i=0; i < input.length; i++)
      if (chars.indexOf(input.charAt(i)) == -1)
        output += input.charAt(i);
    return output;
  }

  function separate(input, separator) {  // format input using 'separator' to mark 000's
    input = "" + input;
    var output = "";  // initialise output string
    for (var i=0; i < input.length; i++) {
      if (i != 0 && (input.length - i) % 3 == 0) output += separator;
      output += input.charAt(i);
    }
    return output;
  }










function updateSearchBox(control){
	//Set the basis for the elements
	el=document.searchform;
	if(document.searchform.type.value==""||document.searchform.tenure.value==""){
		toggleElement(el.pricefrom,0);
		toggleElement(el.priceto,0);
		toggleElement(el.town,0);
		toggleElement(el.established,0);
		toggleElement(el.bedrooms,0);
		toggleElement(el.Connected,0);
		toggleElement(el.furnished,0);
	} else {
		toggleElement(el.pricefrom,1);
		toggleElement(el.priceto,1);
	}

	if(control=='tenure'){
		//Display the prices
		if(document.searchform.tenure.value=='Freehold'||document.searchform.tenure.value=='Leasehold'){
			document.searchform.pricefrom.selectedIndex=0;
			document.searchform.priceto.selectedIndex=0;
			//Set fields to buy rates
			for(i=0; i<12; i++){
				if(i==0){
					document.searchform.pricefrom.options[i] = new Option('Offers', (0));
				} else {
					document.searchform.pricefrom.options[i] = new Option(formatNumber((i)*25000, "£,##0"), ((i)*25000));
				}
				document.searchform.priceto.options[i] = new Option(formatNumber(((i)*25000)+25000, "£,##0"), (((i)*25000)+25000));
			}
				document.searchform.priceto.options[i] = new Option('above ' + formatNumber(((i)*25000)+25000, "£,##0"), (9999999));
		}
		if(document.searchform.tenure.value=='To Let'){
			document.searchform.pricefrom.selectedIndex=0;
			document.searchform.priceto.selectedIndex=0;
			for(i=0; i<12; i++){
				document.searchform.pricefrom.options[i] = new Option(formatNumber((i*100)+200, "£,##0") + ' per month', ((i*100)+200));
				document.searchform.priceto.options[i] = new Option(formatNumber((i*100)+300, "£,##0") + ' per month', ((i*100)+300));
			}
				document.searchform.priceto.options[i] = new Option('above ' + formatNumber((i*100)+300, "£,##0") + ' pm', ((i*100)+300));
		}
	
	}
	
	if(control=="type"||control=="tenure"){
	
		if(document.searchform.type.value=="Residential"&&document.searchform.tenure.value!=""){
			
			toggleElement(el.town,1);
			toggleElement(el.bedrooms,1);
			toggleElement(el.Connected,1);
			toggleElement(el.established,0);
			
			if(document.searchform.tenure.value=="To Let"){
				toggleElement(el.furnished,1);
			} else {
				toggleElement(el.furnished,0);
			}
		} else {
			toggleElement(el.town,0);
			toggleElement(el.bedrooms,0);
			toggleElement(el.Connected,0);
			toggleElement(el.furnished,0);
			if(el.type.value=="Commercial"){
				toggleElement(el.established,1);
			}
		}
	
	}
	
}

function toggleElement(element,flag){
	//Toggle the visible and colors of an element
	if(flag){
		element.style.backgroundColor="#ffffff";
		element.disabled=false;
		//element.style.display='inline';
	} else {
		element.style.backgroundColor="#dddddd";
		element.disabled=true;
		element.selectedIndex=0;
		//element.style.display='none';
	}

}

function submitSearch(action){
	if(action==''){
		alert("Please select your type of property to search for");
	} else {
		//Check that range is not invalid
		if(document.searchform.pricefrom.value-document.searchform.priceto.value>0)
			{
			alert("You need to set an upper price higher than the lower");
			} else {
			document.searchform.submit();
			}
	}
}


	
	
function formatNumber(number, format) {  // use: formatNumber(number, "format")
    var separator = ",";  // use comma as 000's separator
    var decpoint = ".";  // use period as decimal point
    var percent = "%";
    var currency = "£";  // use pound sign for currency
    //if (print) document.write("formatNumber(" + number + ", \"" + format + "\")<br>");

    if (number - 0 != number) return null;  // if number is NaN return null
    var useSeparator = format.indexOf(separator) != -1;  // use separators in number
    var usePercent = format.indexOf(percent) != -1;  // convert output to percentage
    var useCurrency = format.indexOf(currency) != -1;  // use currency format
    var isNegative = (number < 0);
    number = Math.abs (number);
    if (usePercent) number *= 100;
    format = strip(format, separator + percent + currency);  // remove key characters
    number = "" + number;  // convert number input to string

     // split input value into LHS and RHS using decpoint as divider
    var dec = number.indexOf(decpoint) != -1;
    var nleftEnd = (dec) ? number.substring(0, number.indexOf(".")) : number;
    var nrightEnd = (dec) ? number.substring(number.indexOf(".") + 1) : "";

     // split format string into LHS and RHS using decpoint as divider
    dec = format.indexOf(decpoint) != -1;
    var sleftEnd = (dec) ? format.substring(0, format.indexOf(".")) : format;
    var srightEnd = (dec) ? format.substring(format.indexOf(".") + 1) : "";

     // adjust decimal places by cropping or adding zeros to LHS of number
    if (srightEnd.length < nrightEnd.length) {
      var nextChar = nrightEnd.charAt(srightEnd.length) - 0;
      nrightEnd = nrightEnd.substring(0, srightEnd.length);
      if (nextChar >= 5) nrightEnd = "" + ((nrightEnd - 0) + 1);  // round up

 // patch provided by Patti Marcoux 1999/08/06
      while (srightEnd.length > nrightEnd.length) {
        nrightEnd = "0" + nrightEnd;
      }

      if (srightEnd.length < nrightEnd.length) {
        nrightEnd = nrightEnd.substring(1);
        nleftEnd = (nleftEnd - 0) + 1;
      }
    } else {
      for (var i=nrightEnd.length; srightEnd.length > nrightEnd.length; i++) {
        if (srightEnd.charAt(i) == "0") nrightEnd += "0";  // append zero to RHS of number
        else break;
      }
    }

     // adjust leading zeros
    sleftEnd = strip(sleftEnd, "#");  // remove hashes from LHS of format
    while (sleftEnd.length > nleftEnd.length) {
      nleftEnd = "0" + nleftEnd;  // prepend zero to LHS of number
    }

    if (useSeparator) nleftEnd = separate(nleftEnd, separator);  // add separator
    var output = nleftEnd + ((nrightEnd != "") ? "." + nrightEnd : "");  // combine parts
    output = ((useCurrency) ? currency : "") + output + ((usePercent) ? percent : "");
    if (isNegative) {
      // patch suggested by Tom Denn 25/4/2001
      output = (useCurrency) ? "(" + output + ")" : "-" + output;
    }
    return output;
  }

  function strip(input, chars) {  // strip all characters in 'chars' from input
    var output = "";  // initialise output string
    for (var i=0; i < input.length; i++)
      if (chars.indexOf(input.charAt(i)) == -1)
        output += input.charAt(i);
    return output;
  }

  function separate(input, separator) {  // format input using 'separator' to mark 000's
    input = "" + input;
    var output = "";  // initialise output string
    for (var i=0; i < input.length; i++) {
      if (i != 0 && (input.length - i) % 3 == 0) output += separator;
      output += input.charAt(i);
    }
    return output;
  }
  
  
  
  
  
  
function calculateRate(caltype) {
    //Get Values from the controls
	loanAmount=document.mortgageCalc.loanAmount.value;
	loanTerm=document.mortgageCalc.loanTerm.value;
	loanRate=document.mortgageCalc.loanRate.value;
	
	
	var loanamount=document.mortgageCalc.loanAmount.value;
    var interest=document.mortgageCalc.loanRate.value;
	var term=document.mortgageCalc.loanTerm.value;
	var I=interest/12;
	var X=1/(1+I/100);
	var Nmonth=term*12;
	var Nweek=term*52;
	
	
	//Interest
	var monthly=(loanamount-loanamount*Math.pow(X,Nmonth))*(X-1)/(Math.pow(X,Nmonth+1)-X);
	
	if(caltype=='repay') {
	    //Type is repayment
		monthly=loanamount*(X-1)/(Math.pow(X,Nmonth+1)-X);
		weekly=loanamount*(X-1)/(Math.pow(X,Nweek+1)-X);
	}
		
	document.getElementById("loanMonthly").innerHTML=formatNumber(monthly, "€#,###.00");
}
















//Image Swap script
function ChangePic(img_name,img_src){
    document[img_name].src=img_src;
    }
	
function NewWindow(mypage,myname,w,h,scroll,pos){
	if(pos=="random"){LeftPosition=(screen.width)?Math.floor(Math.random()*(screen.width-w)):100;TopPosition=(screen.height)?Math.floor(Math.random()*((screen.height-h)-75)):100;}
	if(pos=="center"){LeftPosition=(screen.width)?(screen.width-w)/2:100;TopPosition=(screen.height)?(screen.height-h)/2:100;}
	else if((pos!="center" && pos!="random") || pos==null){LeftPosition=0;TopPosition=20}
	settings='width='+w+',height='+h+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',location=no,directories=no,status=yes,menubar=no,toolbar=no,resizable=no';
	win=window.open(mypage,myname,settings);
	}



