<!--
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 MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}

function LoanTypeIsTenant() {
	ResidentialStatusBox = MM_findObj('ResidentialStatus');

	if (ResidentialStatusBox.selectedIndex != 0) {
		return true;
	} else {
		return false;
	}
}

function JointBoxHidden() {
	NoOfClientsBox = MM_findObj('NoOfClients');
	C1StatusBox = MM_findObj('C1Status');

	if ( (NoOfClientsBox.selectedIndex != 0) || (C1StatusBox.value=='Married') || (C1StatusBox.value=='Co-habiting') ) {
		flag = false;
	} else {
		flag = true;
	}
	return flag;
}

function ShowHideJointBox() {
	flag = JointBoxHidden();

	block = document.getElementById('Joint'); 
	block.style.visibility = flag ? 'hidden' : 'visible'; 
	block.style.display = flag ? 'none' : 'block';
	parent.document.getElementById('appf').style.height='1690';
}

function validateLoanForm() {
	if (JointBoxHidden()) {
		MM_validateForm('LoanAmount','','RinRange500:250000','Forename','','R','Surname','','R','C1DOB','','R','Email','','RisEmail','ContactTel','','RisNum','ContactTel2','','RisNum','C1AnnualIncome','','RinRange8000:100000','C1HouseNumber','','R','C1Street','','R','C1Town','','R','C1County','','R','C1Postcode','','R','PropertyValue','','RisNum','MortgageBalance','','RisNum');
	} else {
		MM_validateForm('LoanAmount','','RinRange500:250000','Forename','','R','Surname','','R','C1DOB','','R','C2Forename','','R','C2Surname','','R','C2DOB','','R','Email','','RisEmail','ContactTel','','RisNum','C2ContactTel','','RisNum','C1AnnualIncome','','RinRange10000:100000','C2AnnualIncome','','RinRange6000:100000','C1HouseNumber','','R','C1Street','','R','C1Town','','R','C1County','','R','C1Postcode','','R','PropertyValue','','RisNum','MortgageBalance','','RisNum');
	}
	validatedob()
	return document.MM_returnValue;
}

function valdrop() {
	var failed = false;
	if (JointBoxHidden()) {
		if((document.loanapp.PurposeofLoan.selectedIndex == 0)
			|| (document.loanapp.C1Title.selectedIndex == 0)
			|| (document.loanapp.C1Status.selectedIndex == 0)
			|| (document.loanapp.C1EmploymentStatus.selectedIndex == 0))		{
			failed = true;
		}
	} else {
		if((document.loanapp.PurposeofLoan.selectedIndex == 0)
			|| (document.loanapp.C1Title.selectedIndex == 0)
			|| (document.loanapp.C1Status.selectedIndex == 0)
			|| (document.loanapp.C1EmploymentStatus.selectedIndex == 0)
			|| (document.loanapp.C2Title.selectedIndex == 0)
			|| (document.loanapp.C2Status.selectedIndex == 0)
			|| (document.loanapp.C2EmploymentStatus.selectedIndex == 0))		{
			failed = true;
		}
	}
	
	//Also check for tenant, if other fields are validated
	if (!failed) {
		if (LoanTypeIsTenant()) {
			if ( (document.loanapp.C1Occupation.selectedIndex == 0)
				|| (document.loanapp.BankName.selectedIndex == 0) ) {
				failed = true;
			}
		}
	}
	
	if(failed) {
		alert('You must make a selection from each drop down list.');
		return false;
	} else {
		return true;
	}
}



function validatedob(){
	var dt=document.loanapp.C1DOB;
	if (isDate(dt.value)==false){
		dt.focus()
		return false
	}
	if (!JointBoxHidden()) {
		dt=document.loanapp.C2DOB;
		if (isDate(dt.value)==false){
			dt.focus()
			return false
		}
	}
	//Also check for tenancy date fields
	if (LoanTypeIsTenant()) {
		dt=document.loanapp.C1Employer_Start_Date;
		if (isDate(dt.value)==false){
			dt.focus()
			return false
		}
		dt=document.loanapp.C1Address_Start_Date;
		if (isDate(dt.value)==false){
			dt.focus()
			return false
		}
	}
	//C1Employer_Start_Date
	//C1Address_Start_Date
    return true
 }











// Declaring valid date character, minimum year and maximum year
var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isInteger(sdob){
	var idob;
    for (idob = 0; idob < sdob.length; idob++){   
        // Check that current character is number.
        var cdob = sdob.charAt(idob);
        if (((cdob < "0") || (cdob > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(sdob, bag){
	var idob;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (idob = 0; idob < sdob.length; idob++){   
        var cdob = sdob.charAt(idob);
        if (bag.indexOf(cdob) == -1) returnString += cdob;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(ndob) {
	for (var idob = 1; idob <= ndob; idob++) {
		this[idob] = 31
		if (idob==4 || idob==6 || idob==9 || idob==11) {this[idob] = 30}
		if (idob==2) {this[idob] = 29}
   } 
   return this
}

function isDate(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strDay=dtStr.substring(0,pos1)
	var strMonth=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var idob = 1; idob <= 3; idob++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		alert("The date format should be : dd/mm/yyyy")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		alert("Please enter a valid month")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		alert("Please enter a valid day")
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		alert("Please enter a valid date")
		return false
	}
return true
}

//-->