function validateForgotPass(){
	var bOK=true;
	bOK=(bOK && validateText('txtRefNum') && validateText('txtEmail'));
	return bOK;	
}

function validateRegister(){
	var bOK=true;
	bOK=(bOK  && validateText('txtRef') && validateText('txtName') && validateText('txtEmail') && validateText('txtEmailConfirm') && validateText('txtPassword') && validateText('txtPasswordConfirm'));
	return bOK;	
}

function validateSettings(){
	var bOK=true;
	bOK=(bOK && validateText('txtCurrentPassword') && validateText('txtPassword') && validateText('txtPasswordConfirm'));
	return bOK;	
}

function validateRequest(){
	var bOK=true;
	bOK=(bOK  && validateText('txtName') && validateText('txtRefNum'));
	return bOK;	
}

function validateSales(){
	var bOK=true;
	bOK=(bOK && validateText('txtRefNum')  && validateText('txtAppName') && validateText('txtAdd1C') && validateText('txtCityC') && validateText('txtPostcodeC') && validateText('txtBedrooms') && validateText('txtRecption') && validateText('txtWhenBrought') && validateDD('ddServiceCharge') && validateText('txtServiceCharge') && validateDD('ddAltered') && validateText('txtAltered') && validateCB('cbDeclared'));
	return bOK;	
}

function validateConsent(){
	var bOK=true;
	bOK=(bOK  && validateText('txtName') && validateText('txtRefNum') && validateDD('ddConsentType'));
	return bOK;	
}

function validateUpdate(){
	var bOK=true;
	bOK=(bOK && validateText('txtRefNum')  && validateText('txtName') && validateText('txtEmail'));
	return bOK;	
}

function validatePayment(){
	resetError();
	var bOK=true;
	bOK=(bOK && validateText('txtTitle')  && validateText('txtFirstName') && validateText('txtSurname') && validateText('txtAdd1') && validateText('txtCity') && validateText('txtPostcode') && validateDD('ddCountry') && validateDD('ddCardType') && validateText('txtCardNum') && validateDate('EndDate') && validateText('txtSecNum'));
	if(bOK){
	    document.getElementById('pnlButtons').style.display = 'none';
		document.getElementById('pnlSending').style.display = 'block';	
	}
	return bOK;	
}

function proceedPayment(){
    document.getElementById('pnlConfirm').style.display = 'none';
    document.getElementById('pnlSending').style.display = 'block';
}

function validateDate(sType){
	if(sType == 'EndDate'){
		// DO end date
		return (validateDD('ddExpiryMonth') && validateDD('ddExpiryYear'));
	}else{
		// DO start date	
		return (validateDD('ddStartMonth') && validateDD('ddStartYear'));
	}
}

function sendInfo(){
	document.location = document.location + "#sendinfo";
}

function checkPassword(){
	var obj = document.getElementById('txtPassword');
	var errorSpan = document.getElementById('spError');
	obj.value = Trim(obj.value);
	if(obj.value.length < 5){
		errorSpan.innerHTML = 'Please make your password 5 characters or more long';
		return false;
	}else{
		return true;
	}
}


function uppercase(evt){
/* 
A simple capitaliser.
e.g onKeypress="uppercase(event);"
*/

//key = window.event.keyCode;
var key;
if(navigator.appName=='Netscape'){
		key=evt.charCode;
		if ((key > 0x60) && (key < 0x7B)){
		key = key-0x20;
		var newEvent = document.createEvent("KeyEvents")
		newEvent.initKeyEvent("keypress", true, true, document.defaultView,
                          evt.ctrlKey, evt.altKey, evt.shiftKey,
                          evt.metaKey, 0, String.fromCharCode(key).charCodeAt(0))
		evt.preventDefault()
		evt.target.dispatchEvent(newEvent)	
		}
		if((key==0) && (evt.which==13)){
			//Enter key so suppress
			evt.preventDefault();
		}
}else{
	key = window.event.keyCode ? window.event.keyCode : window.event.which ? window.event.which : window.event.charCode;
	if ((key > 0x60) && (key < 0x7B))
		window.event.keyCode = key-0x20;
	}
	if(key==13){
		//Enter key so suppress
		window.event.cancelBubble = true;
		window.event.returnValue = false;
	}
}

function caseL(obj,evt){
/* 
A lazy word capitaliser.
e.g onKeypress="caseL(this,event);"
*/
var iLen;
var key;
iLen=obj.value.length;
if(navigator.appName=='Netscape'){
		key = evt.charCode;
		if((key==0) && (evt.which==13)){
			//Enter key so suppress
			evt.preventDefault();
		}
	}else{
		key = window.event.keyCode;
		if(key==13){
			//Enter key so suppress
			window.event.cancelBubble = true;
			window.event.returnValue = false;
		}	
	}
if ((iLen==0)||(obj.value.charAt(iLen-1)==" ")||(obj.value.charAt(iLen-1)=="-")){
	
	if ((key > 0x60) && (key < 0x7B)){
		if(navigator.appName=='Netscape'){
			key = key-0x20;
			var newEvent = document.createEvent("KeyEvents")
			newEvent.initKeyEvent("keypress", true, true, document.defaultView, evt.ctrlKey, evt.altKey, evt.shiftKey, evt.metaKey, 0, String.fromCharCode(key).charCodeAt(0))
			evt.preventDefault()
			evt.target.dispatchEvent(newEvent)
		}else{
			window.event.keyCode = key-0x20;
		}
	}
}
}

function keyInt(obj,evt){
	var key;
	if(navigator.appName=='Netscape'){
		key = evt.charCode;
		if(evt.which==13){
			evt.preventDefault();
		}
	}else{
		key = window.event.keyCode;
	}
	if (((key > 0x2F) && (key < 0x3A))||(key == 0x00)){
		//Its numeric carry on
	}else{
		if(navigator.appName=='Netscape'){
			evt.preventDefault();
		}else{
			window.event.cancelBubble = true;
			window.event.returnValue = false;
		}
	}
}

function validateText(sName){
	var obj=document.getElementById(sName);
	var errorSpan = document.getElementById('spError');
	obj.value = Trim(obj.value);
	if(obj.value.length == 0){
		switch(sName){
		    case 'txtIssueNum':
			    //errorSpan.innerHTML = 'Please enter your cards issue number';
			    return false;
			    break;	
		    case 'txtTitle':
			    errorSpan.innerHTML = 'Please enter your title';
			    return false;
			    break;
		    case 'txtFirstName':
			    errorSpan.innerHTML = 'Please enter your first name';
			    return false;
			    break;
		    case 'txtSurname':
			    errorSpan.innerHTML = 'Please enter your surname';
			    return false;
			    break;
		    case 'txtCardNum':
			    errorSpan.innerHTML = 'Please enter your card number';
			    return false;
			    break;
		    case 'txtSecNum':
			    errorSpan.innerHTML = 'Please enter your security number';
			    return false;
			    break;
		    case 'txtAmount':
			    errorSpan.innerHTML = 'Please enter the amount you wish to pay';
			    return false;
			    break;
		    case 'txtEmail':
			    errorSpan.innerHTML = 'Please enter an email address';
			    return false;
			    break;
		    case 'txtRef':
			    errorSpan.innerHTML = 'Please enter a reference number';
			    return false;
			    break;
		    case 'txtRefNum':
			    errorSpan.innerHTML = 'Please enter a reference number';
			    return false;
			    break;
		    case 'txtName':
			    errorSpan.innerHTML = 'Please enter your name';
			    return false;
			    break;
		    case 'txtAppName':
			    errorSpan.innerHTML = 'Please enter the applicant(s) name';
			    return false;
			    break;
		    case 'txtEmailConfirm':
			    errorSpan.innerHTML = 'Please confirm your email address';
			    return false;
			    break; 
			case 'txtCurrentPassword':
			    errorSpan.innerHTML = 'Please enter your current password';
			    return false;
			    break;
		    case 'txtPassword':
			    errorSpan.innerHTML = 'Please enter a password';
			    return false;
			    break;
		    case 'txtPasswordConfirm':
			    errorSpan.innerHTML = 'Please confirm your password';
			    return false;
			    break;
		    case 'txtAdd1':
			    errorSpan.innerHTML = 'Please enter the first line of your address';
			    return false;
			    break;
		    case 'txtCity':
			    errorSpan.innerHTML = 'Please enter your town/city';
			    return false;
			    break;
		    case 'txtCounty':
			    errorSpan.innerHTML = 'Please enter your county';
			    return false;
			    break;
		    case 'txtPostcode':
			    errorSpan.innerHTML = 'Please enter your postcode';
			    return false;
			    break;
		    case 'txtAdd1C':
			    errorSpan.innerHTML = 'Please enter the first line of your correspondence address';
			    return false;
			    break;
		    case 'txtCityC':
			    errorSpan.innerHTML = 'Please enter your correspondence town/city';
			    return false;
			    break;
		    case 'txtPostcodeC':
			    errorSpan.innerHTML = 'Please enter your correspondence postcode';
			    return false;
			    break;
		    case 'txtBedrooms':
			    errorSpan.innerHTML = 'Please enter your number of bedrooms';
			    return false;
			    break;
		    case 'txtRecption':
			    errorSpan.innerHTML = 'Please enter your number of reception rooms';
			    return false;
			    break;
		    case 'txtWhenBrought':
			    errorSpan.innerHTML = 'Please enter when did you buy the property';
			    return false;
			    break;
		    case 'txtAltered':
			    return checkYesBox('ddAltered', 'txtAltered');
			    break;
			case 'txtServiceCharge':
			    return checkYesBox('ddServiceCharge', 'txtServiceCharge');
			    break;	    
		}
	}else{
		switch(sName){
		    case 'txtEmail':
			    return requiredFieldEmail('txtEmail');
			    break;
		    case 'txtPassword':
			    return checkPassword();
			    break;
		    case 'txtEmailConfirm':
			    return checkConfirm('email');
			    break;
		    case 'txtPasswordConfirm':
			    return checkConfirm('password');
			    break;
		    case 'txtAltered':
			    return checkYesBox('ddAltered', 'txtAltered');
			    break;
			case 'txtServiceCharge':
			    return checkYesBox('ddServiceCharge', 'txtServiceCharge');
			    break;
		    default:
			    return true;
		}
	}
}

function validateDD(sName){
	var oDrop = document.getElementById(sName);
	var errorSpan = document.getElementById('spError');
	if (oDrop.selectedIndex != 0){
		return true;
	}else{
		switch(sName){
		case 'ddConsentType':
			errorSpan.innerHTML = 'Please select a consent type';
			return false;
			break;
		case 'ddCountry':
			errorSpan.innerHTML = 'Please select a country';
			return false;
			break;
		case 'ddCardType':
			errorSpan.innerHTML = 'Please select a card type';
			return false;
			break;
		case 'ddStartMonth':
			//errorSpan.innerHTML = 'Please select start date';
			return false;
			break;
		case 'ddStartYear':
			//errorSpan.innerHTML = 'Please select start date';
			return false;
			break;
		case 'ddExpiryMonth':
			errorSpan.innerHTML = 'Please select end date';
			return false;
			break;
		case 'ddExpiryYear':
			errorSpan.innerHTML = 'Please select end date';
			return false;
			break;
		case 'ddAltered':
			errorSpan.innerHTML = 'Please select if you made any alterations or extensions';
			return false;
			break;
		case 'ddServiceCharge':
			errorSpan.innerHTML = 'Please select if you pay a Management or Service Charge fee';
			return false;
			break;
		}
	}
}

function validateCB(sName){
	var oCB = document.getElementById(sName);
	var errorSpan = document.getElementById('spError');
	if (oCB.checked){
		return true;
	}else{
		switch(sName){
		case 'cbDeclared':
			errorSpan.innerHTML = 'Please tick the declared checkbox';
			return false;
			break;
		}
	}	
}

function checkYesBox(DropDown, TextBox){
    var dropDown = document.getElementById(DropDown);
    var textBox = document.getElementById(TextBox);
    var errorSpan = document.getElementById('spError');
    textBox.value = Trim(textBox.value);
    if(dropDown.options[dropDown.selectedIndex].value == "No"){
        return true;
    }else if(dropDown.options[dropDown.selectedIndex].value == "Yes" && textBox.value.length > 0){
        return true;
    }
    switch(TextBox){
	    case 'txtAltered':
			errorSpan.innerHTML = 'Please enter what alterations you have made';
            return false;
			break;
	}
	switch(TextBox){
	    case 'txtServiceCharge':
			errorSpan.innerHTML = 'Please enter the Management contact details';
            return false;
			break;
	}
    
}

function checkConfirm(sName){
	var errorSpan = document.getElementById('spError');
	switch(sName){
		case 'email':
			var obj1 = document.getElementById('txtEmail');
			var obj2 = document.getElementById('txtEmailConfirm');
			if(obj2.value == obj1.value){
				return true;
			}else{
				errorSpan.innerHTML = 'The email address entered does not match';
				return false;
			}
			break;
		case 'password':
			var obj1 = document.getElementById('txtPassword');
			var obj2 = document.getElementById('txtPasswordConfirm');
			if(obj2.value == obj1.value){
				return true;
			}else{
				errorSpan.innerHTML = 'The password entered does not match';
				return false;
			}
			break;
	}
}

function requiredFieldEmail(fieldtovalidate){
	var missingchars = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[(2([0-4]\d|5[0-5])|1?\d{1,2})(\.(2([0-4]\d|5[0-5])|1?\d{1,2})){3} \])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
	var txtField;
	var errorSpan = document.getElementById('spError');
	txtField=document.getElementById(fieldtovalidate);
	txtField.value=Trim(txtField.value);
	if (!isValid(missingchars,txtField.value)) {
		errorSpan.innerHTML = 'Please enter a valid email address';
		return false;
	}
	return true;
}

function isValid(pattern, str) {
	return pattern.test(str)
}

function Trim(TRIM_VALUE){
	if(TRIM_VALUE.length < 1){
		return"";
	}
    TRIM_VALUE = RTrim(TRIM_VALUE);
    TRIM_VALUE = LTrim(TRIM_VALUE);
	if(TRIM_VALUE==""){
		return "";
	}else{
		return TRIM_VALUE;
	}
}

function RTrim(VALUE){
	var w_space = String.fromCharCode(32);
	var v_length = VALUE.length;
	var strTemp = "";
	if(v_length < 0){
		return"";
	}
	var iTemp = v_length -1;
	while(iTemp > -1){
  		if(VALUE.charAt(iTemp) == w_space){
			//
		}else{
			strTemp = VALUE.substring(0,iTemp +1);
			break;
      	}
		iTemp = iTemp-1;
	}
	return strTemp;
}

function LTrim(VALUE){
	var w_space = String.fromCharCode(32);
	if(v_length < 1){
		return"";
	}
	var v_length = VALUE.length;
	var strTemp = "";
	var iTemp = 0;
	while(iTemp < v_length){
		if(VALUE.charAt(iTemp) == w_space){
			//	
		}else{
			strTemp = VALUE.substring(iTemp,v_length);
			break;
		}
		iTemp = iTemp + 1;
	}
	return strTemp;
}

function resetError(){
	var errorSpan = document.getElementById('spError');
	errorSpan.innerHTML = '';
}
