/* ***************************************

Designweb standard Javascript Functions

*************************************** */

function ChangePic(img_name,img_src){
	document[img_name].src=img_src;
}


function checkPostcode(){

	if(!document.driving.saddr.value){
		alert("Please enter your postcode to get driving directions");
		return false;
	} else {
		return true;
	}
	
}

function checkForm(){
	
	document.contact.email.value=validateEmail(document.contact.email.value);
	var report="There is a problem\nPlease check the following:\n\n"
	var flag=0;
	
	if(!document.contact.name.value){
		flag=1;
		report+="...Please enter your Name\n";
	}
	
	if(!document.contact.email.value){
		flag=1;
		report+="...Please enter an Email Address\n";
	} else {
		if(document.contact.email.value.indexOf("\@")==-1 && document.contact.email.value.indexOf("\.")==-1){
			flag=1;
			report+="...Please check your Email Address, it appears invalid\n";
		}
	}
	
	if(!document.contact.message.value){
		flag=1;
		report+="...Please enter your Message\n";
	}
	
	if(flag==1){
		alert(report);
		return false;
	} else {
		return true;
	}
	
}

function checkRegister(){

	document.contact.email.value=validateEmail(document.contact.email.value);
	var report="There is a problem\nPlease check the following:\n\n"
	var flag=0;
	
	if(!document.contact.name.value){
		flag=1; report += "...Please enter your Name\n";
	}
	
	if(!document.contact.address.value){
		flag=1; report += "...Please enter your Address\n";
	}
	
	if(!document.contact.town.value){
		flag=1; report += "...Please enter your Town\n";
	}
	
	if(!document.contact.postcode.value){
		flag=1; report += "...Please enter your Postcode\n";
	}
	
	if(!document.contact.county.value){
		flag=1; report += "...Please enter your County\n";
	}

	if(!document.contact.phone.value){
		flag=1; report += "...Please enter your Phone Number\n";
	}
	
	if(!document.contact.password1.value&&!document.contact.password2.value){	
		flag=1; report += "...Please enter a password in both password boxes\n";
	}

	if(document.contact.password1.value!=document.contact.password2.value){
		flag=1; report += "...Please check that your passwords match\n";
	}
		
	if(!document.contact.email.value){
		flag=1; report += "...Please enter an Email Address\n";
	} else {
		if(document.contact.email.value.indexOf("@")==-1 && document.contact.email.value.indexOf(".")==-1){
			flag=1; report += "...Please check your Email Address, it appears invalid\n";
		}
	}
	
	if(flag==1){
		alert(report);
		return false;
	} else {
		return true;
	}
	
}


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 get_radio_value()
{
for (var i=0; i < document.searchform.buyrent.length; i++)
   {
   if (document.searchform.buyrent[i].checked)
      {
      return document.searchform.buyrent[i].value;
      }
   }
}

	
function submitSearch()
    {
	var action="";
	switch(get_radio_value())
	    {
		case "For Sale":
		    action="For Sale";
		    break;
	    case "Lettings":
	        action="Lettings";
		    break;
        default:
   		    alert("Please select 'Buy' or 'Rent' to proceed with your search");
		    break;
	    }
	
	//Progress futher if a type is selected
	if(action!="")
	    {
		//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;
	
	//Interest
	var monthly=(loanAmount*(loanRate*0.01))/12;
	var weekly=(loanAmount*(loanRate*0.01))/52;
	
	if(caltype=='repay') {
	    //Type is repayment
		monthly=monthly+((loanAmount/loanTerm)/12);
		weekly=weekly+((loanAmount/loanTerm)/52);
		};
		
	document.getElementById("loanMonthly").innerHTML=formatNumber(monthly, "£#,###.00");
	document.getElementById("loanWeekly").innerHTML=formatNumber(weekly, "£#,###.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);
	}



function CheckRequiredFields() {
var errormessage = new String();
// Put field checks below this point.

if(WithoutContent(document.contact.name.value))
	{ errormessage += "\n\nPlease complete your name."; }
if(WithoutContent(document.contact.email.value))
	{ errormessage += "\n\nPlease complete your email address."; }
if(WithoutContent(document.list.name.value))
	{ errormessage += "\n\nPlease complete your name."; }
if(WithoutContent(document.list.email.value))
	{ errormessage += "\n\nPlease complete your email address."; }
	
if(WithoutContent(document.contact.message.value))
	{ errormessage += "\n\nPlease complete your message."; }


// Put field checks above this point.
if(errormessage.length > 2) {
	alert('NOTE:' + errormessage);
	return false;
	}
return true;
} // end of function CheckRequiredFields()


function WithoutContent(ss) {
if(ss.length > 0) { return false; }
return true;
}

function NoneWithContent(ss) {
for(var i = 0; i < ss.length; i++) {
	if(ss[i].value.length > 0) { return false; }
	}
return true;
}

function NoneWithCheck(ss) {
for(var i = 0; i < ss.length; i++) {
	if(ss[i].checked) { return false; }
	}
return true;
}

function WithoutCheck(ss) {
if(ss.checked) { return false; }
return true;
}

function WithoutSelectionValue(ss) {
for(var i = 0; i < ss.length; i++) {
	if(ss[i].selected) {
		if(ss[i].value.length) { return false; }
		}
	}
return true;
}









