function validateLogin() {
	var username = document.login_form.username.value;
	var password = document.login_form.password.value;

	if (username == "") {
		alert("You must enter a username.");
		document.login_form.username.focus();
		return false;
	}
	if (password == "") {
		alert("You must enter a password.");
		document.login_form.password.focus();
		return false;
	}

	encodePassword(password);
}

function encodePassword(password) {
	var hash = hex_md5(password);
	document.login_form.password.value = hash;
	return true;
}

function cancelAdmin(section) {
	document.forms[0].action = baseUrl+"/"+section;
	document.forms[0].submit();
}

function validateContactForm() {
	var titleIdIndex = document.getElementById('title_id').selectedIndex;
	var titleId = document.getElementById('title_id')[titleIdIndex].value;	
	var firstName = document.getElementById('first_name');
	var lastName = document.getElementById('last_name');
	var phone = document.getElementById('phone');	
	var email = document.getElementById('email');
	var queryTypeIdIndex = document.getElementById('query_type_id').selectedIndex;
	var queryTypeId = document.getElementById('query_type_id')[queryTypeIdIndex].value;	
	var query = document.getElementById('query');

	if (titleId == -1) {
		alert("You must select a title.");
		document.getElementById('title_id').focus();
		return false;	
	}	
	if (firstName.value == "") {
		alert("You must enter your first name.");
		firstName.focus();
		return false;
	}
	if (lastName.value == "") {
		alert("You must enter your last name.");
		lastName.focus();
		return false;
	}
	if (phone.value == "") {
		alert("You must enter a contact number.");
		phone.focus();
		return false;
	}		
	if (phone.value != "" && !isPhone(phone.value)) {
		alert("The phone number contains invalid characters.");
		phone.focus();
		return false;
	}
	if (email.value == "") {
   		alert("You must enter an email address");
   	    email.focus();
   		return false;
	}		
	if (email.value != "") {
		if (!validateEmail(email.value)) {
    		alert("You must enter a valid email address");
    	    email.focus();
    		return false;
    	}
	}	
	if (queryTypeId == -1) {
		alert("You must select a query type.");
		document.getElementById('query_type_id').focus();
		return false;	
	}
	if (query.value == "") {
		alert("You must enter a query.");
		query.focus();
		return false;
	}
	return true;
}

function validateRegisterFreeSeminarForm() {
	var titleIdIndex = document.getElementById('title_id').selectedIndex;
	var titleId = document.getElementById('title_id')[titleIdIndex].value;	
	var firstName = document.getElementById('first_name');
	var lastName = document.getElementById('last_name');
	var address = document.getElementById('address');
	var phone = document.getElementById('phone');	
	var email = document.getElementById('email');
	var noProperties = document.getElementById('no_properties');


	if (titleId == -1) {
		alert("You must select a title.");
		document.getElementById('title_id').focus();
		return false;	
	}	
	if (firstName.value == "") {
		alert("You must enter your first name.");
		firstName.focus();
		return false;
	}
	if (lastName.value == "") {
		alert("You must enter your last name.");
		lastName.focus();
		return false;
	}
	if (address.value == "") {
		alert("You must enter your address.");
		address.focus();
		return false;
	}	
	if (phone.value == "") {
		alert("You must enter a contact number.");
		phone.focus();
		return false;
	}		
	if (phone.value != "" && !isPhone(phone.value)) {
		alert("The phone number contains invalid characters.");
		phone.focus();
		return false;
	}
	if (email.value == "") {
   		alert("You must enter an email address");
   	    email.focus();
   		return false;
	}	
	if (email.value != "") {
		if (!validateEmail(email.value)) {
    		alert("You must enter a valid email address");
    	    email.focus();
    		return false;
    	}
	}	
	if (noProperties.value == "") {
		alert("You must specify number of properties.");
		noProperties.focus();
		return false;
	}	
	if (noProperties.value != "" && !isNumeric(noProperties.value)) {
		alert("Number of properties must be numeric.");
		noProperties.focus();
		return false;
	}
	return true;
}

function validateTenantRegistrationForm() {
	var titleIdIndex = document.getElementById('title_id').selectedIndex;
	var titleId = document.getElementById('title_id')[titleIdIndex].value;	
	var firstName = document.getElementById('first_name');
	var lastName = document.getElementById('last_name');
	var address = document.getElementById('address');
	var postcode = document.getElementById('postcode');
	var homePhone = document.getElementById('home_phone');	
	var mobilePhone = document.getElementById('mobile_phone');
	var email = document.getElementById('email');
	var ownTransportIndex = document.getElementById('own_transport').selectedIndex;
	var ownTransport = document.getElementById('own_transport')[ownTransportIndex].value;	
	var adultsOver25 = document.getElementById('adults_over_25');
	var noChildren = document.getElementById('no_children');
	var petsIndex = document.getElementById('pets').selectedIndex;
	var pets = document.getElementById('pets')[petsIndex].value;	
	var workingIndex = document.getElementById('working').selectedIndex;
	var working = document.getElementById('working')[workingIndex].value;	

	if (titleId == -1) {
		alert("You must select a title.");
		document.getElementById('title_id').focus();
		return false;	
	}	
	if (firstName.value == "") {
		alert("You must enter your first name.");
		firstName.focus();
		return false;
	}
	if (lastName.value == "") {
		alert("You must enter your last name.");
		lastName.focus();
		return false;
	}
	if (address.value == "") {
		alert("You must enter your address.");
		address.focus();
		return false;
	}
	if (postcode.value == "") {
		alert("You must enter your postcode.");
		postcode.focus();
		return false;
	}
	if (homePhone.value == "") {
		alert("You must enter a home number.");
		homePhone.focus();
		return false;
	}		
	if (homePhone.value != "" && !isPhone(homePhone.value)) {
		alert("The home number contains invalid characters.");
		homePhone.focus();
		return false;
	}
	if (mobilePhone.value == "") {
		alert("You must enter a mobile number.");
		mobilePhone.focus();
		return false;
	}		
	if (mobilePhone.value != "" && !isPhone(mobilePhone.value)) {
		alert("The mobile number contains invalid characters.");
		mobilePhone.focus();
		return false;
	}
	if (email.value == "") {
		alert("You must enter an email adddress.");
		email.focus();
		return false;
	}	
	if (email.value != "") {
		if (!validateEmail(email.value)) {
    		alert("You must enter a valid email address");
    	    email.focus();
    		return false;
    	}
	}	
	if (ownTransport == -1) {
		alert("You must specify if you have your own transport.");
		document.getElementById('own_transport').focus();
		return false;	
	}
	if (adultsOver25.value == "") {
		alert("You must specify number of adults over 25.");
		adultsOver25.focus();
		return false;
	}	
	if (adultsOver25.value != "" && !isNumeric(adultsOver25.value)) {
		alert("Number of adults over 25 must be numeric.");
		adultsOver25.focus();
		return false;
	}
	if (noChildren.value == "") {
		alert("You must specify number of children in household.");
		noChildren.focus();
		return false;
	}
	if (noChildren.value != "" && !isNumeric(noChildren.value)) {
		alert("Number of children in household must be numeric.");
		noChildren.focus();
		return false;
	}
	if (pets == -1) {
		alert("You must specify if you have pets.");
		document.getElementById('pets').focus();
		return false;	
	}
	if (working == -1) {
		alert("You must specify if anyone in the household works.");
		document.getElementById('working').focus();
		return false;	
	}	
	return true;
}

function validateEmail(email) {
	// E-mail Validation by Henrik Petersen / NetKontoret
	// Explained at www.echoecho.com/jsforms.htm
	// Please do not remove this line and the two lines above.
	apos=email.indexOf("@"); 
	dotpos=email.lastIndexOf(".");
	lastpos=email.length-1;
	if (apos<1 || dotpos-apos<2 || lastpos-dotpos>3 || lastpos-dotpos<2) {
		return false;
	} else {
		return true;
	}
}

function isNumeric(strString) {
	var strValidChars = "0123456789";
	var strChar;
	var blnResult = true;

	if (strString.length == 0) return false;
	//  test strString consists of valid characters listed above
	for (i = 0; i < strString.length && blnResult == true; i++) {
		strChar = strString.charAt(i);
		if (strValidChars.indexOf(strChar) == -1) {
			blnResult = false;
		}
	}
	return blnResult;
}

function isPhone(strString) {
	var strValidChars = "0123456789()+- ";
	var strChar;
	var blnResult = true;

	if (strString.length == 0) return false;
	//  test strString consists of valid characters listed above
	for (i = 0; i < strString.length && blnResult == true; i++) {
		strChar = strString.charAt(i);
		if (strValidChars.indexOf(strChar) == -1) {
			blnResult = false;
		}
	}
	return blnResult;
}

function hideBlock(divId) {
	document.getElementById(divId).style.display = "none";
}

function showBlock(divId) {
	document.getElementById(divId).style.display = "block";
}

function inlineBlock(divId) {
	document.getElementById(divId).style.display = "inline";
}

function toggleMenuItems(divId, menuId){
	var menuId = document.getElementById(menuId);
	var divId = document.getElementById(divId);
	if (divId.style.display == "none"){
		divId.style.display = "inline";
	}
	else {
		divId.style.display = "none";
	}
}