function validateContactForm() {
	var fullName = document.getElementById('full_name');
	var email = document.getElementById('email');
	var phone = document.getElementById('phone');
	var query = document.getElementById('query');
	var sourceSelection = document.getElementById('source_id').selectedIndex;
	var sourceId = document.getElementById('source_id').options[sourceSelection].value;
	
	if (fullName.value == "") {
		alert("You must enter your full name.");
		fullName.focus();
		return false;
	}
	if (phone.value == "") {
		alert("You must enter a valid phone 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 a valid 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 (query.value == "") {
		alert("You must enter a query.");
		query.focus();
		return false;
	}
	
	if (sourceId == 0) {
		alert("Please tell us where you heard of us.");
		document.getElementById('source_id').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 showNewSource(sourceId) {
	if (sourceId == '-1') {
		document.getElementById('new_source_div').style.display = 'block';
		document.getElementById('new_source_text').style.display = 'block';
		document.getElementById('new_source').focus();
	} else {
		document.getElementById('new_source_div').style.display = 'none';
		document.getElementById('new_source_text').style.display = 'none';
 	}
}

function openTourWindow(content, windowTitle){
	var divwin=dhtmlwindow.open('divbox', 'div', content, windowTitle, 'width=450px,height=200px,left=300px,top=250px,resize=1,scrolling=1');	
}

function reloadCurrency() {
	document.matrix_form.submit();
}

function reloadOrderPrice() {
	document.order_form.action = baseUrl+"/home/order";
	document.order_form.submit();
}

function validateOrderContact() {
	var fullName = document.getElementById('full_name');
	var agencyName = document.getElementById('agency_name');
	var address1 = document.getElementById('address1');
	var town = document.getElementById('town');
	var postcode = document.getElementById('postcode');
	var email = document.getElementById('email');
	var phone = document.getElementById('phone');
	
	if (fullName.value == "") {
		alert("You must enter your full name.");
		fullName.focus();
		return false;
	}
	if (address1.value == "") {
		alert("You must enter your address.");
		address1.focus();
		return false;
	}
	if (town.value == "") {
		alert("You must enter your town name.");
		town.focus();
		return false;
	}
	if (postcode.value == "") {
		alert("You must enter your postcode.");
		postcode.focus();
		return false;
	}
	if (email.value == "") {
		alert("You must enter an email address.");
		email.focus();
		return false;
	}
	if (phone.value == "") {
		alert("You must enter a phone number.");
		phone.focus();
		return false;
	}
	if (email.value != "") {
		if (!validateEmail(email.value)) {
    		alert("You must enter a valid email address");
    	    email.focus();
    		return false;
    	}
	}
	if (phone.value != "" && !isPhone(phone.value)) {
		alert("The phone number contains invalid characters.");
		email.focus();
		return false;
	}
	return true;
}

function validateOrderConfig() {
	var vatRegSelection = document.getElementById('vat_registered').selectedIndex;
	var vatRegId = document.getElementById('vat_registered').options[vatRegSelection].value;
	var vatNo = document.getElementById('vat_no');
	
	if (vatRegId == "1" && vatNo.value == "") {
		alert("You must enter your VAT number.");
		vatNo.focus();
		return false;
	}
	if (vatRegId == "0" && vatNo.value != "") {
		alert("You cannot enter a VAT number if you are not VAT registered.");
		vatNo.focus();
		return false;
	}
	
	var mgtFee = document.getElementById('mgt_fee_value');
	if (mgtFee.value == "") {
		alert("Please enter your typical management fee.");
		mgtFee.focus();
		return false;
	}
	
	var maintenanceFeeSelection = document.getElementById('maintenance_fee').selectedIndex;
	var maintenanceFeeId = document.getElementById('maintenance_fee').options[maintenanceFeeSelection].value;
	
	if (maintenanceFeeId == 1) {
		var maintFee = document.getElementById('maintenance_flat_fee');
		var maintCommission = document.getElementById('maintenance_commission');
		if (maintFee.value == "" && maintCommission.value == "") {
			alert("You must enter a maintenance fee or commission value.");
			maintFee.focus();
			return false;
		}
		
		if (maintFee.value != "" && !isNumeric(maintFee.value)) {
			alert("The maintenance fee must be a numeric value.");
			maintFee.focus();
			return false;
		}
		
		if (maintCommission.value != "" && !isNumeric(maintCommission.value)) {
			alert("The maintenance commission must be a numeric value.");
			maintCommission.focus();
			return false;
		}
	}
	
	return true;
}

function signup(plan) {
	document.matrix_form.product_id.value = plan;
	document.matrix_form.action = baseUrl + "/home/order";
	document.matrix_form.submit();
}

function checkPromoCode() {
	document.order_form.action = baseUrl+"/home/order";
	document.order_form.submit();
}

function addNewsletterSubscriber() 
{
	
	var email = document.getElementById('newsletter_email');
	
	if (email.value == "") {
		alert("You must enter a valid 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;
    	}
	}	
	
	new Ajax.Updater('newsletter_signup_div', baseUrl+'/home/ajax_add_newsletter_subscriber', 
		{ 
    		method:'post', 
    		postBody:'newsletter_email='+$F('newsletter_email'),
    		onComplete: function() {document.getElementById('newsletter_email').value = "";}
    	}
    );	
}

function showVatNumberField(){
	var vatRegisteredSelection = document.getElementById('vat_registered').selectedIndex;
	var vatRegisteredValue = document.getElementById('vat_registered').options[vatRegisteredSelection].value;	
	
	if(vatRegisteredValue == 1){
		document.getElementById('vat_number_div').style.display = 'inline';
	}
	else {
		document.getElementById('vat_number_div').style.display = 'none';
	}
}

function checkValidSubdomain() 
{
	var subdomain = document.getElementById('instance_prefix');
	
	if (subdomain.value != "") {
		new Ajax.Updater('check_valid_account_result_div', baseUrl+'/home/ajax_check_valid_subdomain', 
			{ 
	    		method:'post', 
	    		postBody:'subdomain='+$F('instance_prefix')
	    	}
	    );	
	}
}

function suggestSubdomain()
{
	subdomain = document.getElementById('agency_name').value;
	document.getElementById('instance_prefix').value = subdomain.replace(/[^a-zA-Z0-9]+/g,'').toLowerCase();
}

function populateTrialForm()
{     
	document.getElementById('instance_owner').value = "Adrian Walls";
	document.getElementById('instance_owner_email').value = "adrian@rentpro.co.uk";
	document.getElementById('instance_owner_phone').value = "028 41754844";
	document.getElementById('address1').value = "8 Osborne Promenade";
	document.getElementById('address2').value = "KPoint Internet Solutions";
	document.getElementById('town').value = "Warrenpoint";
	document.getElementById('postcode').value = "BT34 3NQ";
	document.getElementById('county').value = "County Down";
	document.getElementById('country_id').selectedIndex = 1;
	document.getElementById('agency_name').value = "Warrenpoint Lettings";	
	document.getElementById('vat_registered').selectedIndex = 1;
	document.getElementById('vat_number').value = "GB-123456";
	document.getElementById('plan_id').selectedIndex = 2;
	document.getElementById('instance_prefix').value = "warrenpointlettings";
	document.getElementById('agree').checked = true;
}
