var filter = /^[\w\.\-]+@[a-z][\w\-\.]+\.(\w{2}\.\w{2,3})|^[\w\.\-]+@[a-z][\w\-\.]+\.(\w{3,4})$/
var PostCodeFilter = /^\D\w{1,3}\s*\w{2,4}$/
var PhoneFilter = /^\d{8,12}$/
var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
var reg2 = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]*\.)+[a-zA-Z]{2,9})$/; // valid
var t,n,sn,e,e2,p,s,so,a,tn,c,pc,cn,o;

function d_Init_Validation() {
	t = document.getElementById('frmTitle');
	n = document.getElementById('frmFirstName');
	sn = document.getElementById('frmSurname');
	o = document.getElementById('frmOrganisation');
	e = document.getElementById('frmEmail');
	e2 = document.getElementById('frmReTypeEmail');
	p = document.getElementById('frmPhone');
	a = document.getElementById('frmAddress2');
	tn = document.getElementById('frmTown');
	c = document.getElementById('frmCounty');
	pc = document.getElementById('frmPostcode');
	cn = document.getElementById('frmCountry');
}

function d_ValidateDetails(type){
	
	d_Init_Validation();
	var errMessage = '';
	var dx = document.getElementById('frmDX');
	var pass = document.getElementById('frmPasswordSelect');
	var pass2 = document.getElementById('frmReTypePassword');
	if(t.options.selectedIndex == 0) errMessage += 'Please Select Your Title.\n';
	if(n.value == '') errMessage += 'You must enter your First Name.\n';
	if(sn.value == '') errMessage += 'You must enter your Surname.\n';
	if(o.value == '') errMessage += 'You must enter your Firm/Company Name.\n';	
	if((reg1.test(e.value)) || (!reg2.test(e.value))) errMessage += 'You must enter a valid e-mail address.\n';
	
	if(e.value != e2.value){
		errMessage += 'Your e-mails do not match. Please re-enter both.\n';
		e.value = '';
		e2.value = '';
	}
	
	if(!PhoneFilter.test(p.value)) errMessage += 'You must enter a valid Contact Phone Number.\n';
	bt = document.getElementById('frmBusinessType');
	bto = document.getElementById('frmBusinessTypeOther');
	if((bt.options.selectedIndex == 0 || bt.options.selectedIndex == 3) && bto.value == '') errMessage += 'Please tell us your business type.\n';
	
	if(type == 'register'){
		s = document.getElementById('frmSource');
		so = document.getElementById('frmSourceOther');
		if((s.options.selectedIndex == 0 || s.options.selectedIndex == 7) && so.value == '') errMessage += 'Please tell us where you heard about us.\n';
	}
	
	if(a.value == '')errMessage += 'Please tell us your Contact Street Address.\n';
	if(tn.value == '')errMessage += 'Please tell us your Town.\n';
	if(c.options.selectedIndex == 0)errMessage += 'Please Select Your County.\n';
	if(cn.value == '')errMessage += 'Please tell us Your Country.\n';
	if(!PostCodeFilter.test(pc.value))errMessage += 'You must enter a valid Postcode.\n';
	
	if((pass.value == '')&&(pass2.value == '')&&(type == 'register')) errMessage += 'You must enter a password to enable you to login to your account.\n';
	if(pass.value != pass2.value){
		errMessage += 'Your passwords do not match. Please re-enter both.\n';
		pass.value = '';
		pass2.value = '';
	}
	
	if(type == 'register'){
		var ld = document.getElementById('frmLaunder');
		var tc = document.getElementById('frmTCs');
		if(!tc.checked)errMessage += '\nYou must agree to our Terms and Conditions to proceed.\n';
		if(!ld.checked)errMessage += '\nTo complete your registration you must check the box to confirm\nthat you will comply with the Money Laundering Regulations stated.\n';
	}

	if(errMessage != ''){
		alert('The information you have submitted is incomplete.\n\n' + errMessage + '\nPlease correct the errors above and re-submit the form.');
		return false;
	}else{
		return true;
	}
}

function d_ValidateUser(type){
	
	var errMessage = '';
	var n = document.getElementById('frmUserName');
	var e = document.getElementById('frmUserEmail');
	var pass = document.getElementById('frmPasswordSelect');
	var pass2 = document.getElementById('frmUserPassword');
	if(n.value == '') errMessage += 'You must enter the user\'s name.\n';
	if((reg1.test(e.value)) || (!reg2.test(e.value))) errMessage += 'You must enter a valid e-mail address for this user\s login.\n';
	if((pass.value == '')&&(pass2.value == '')&&(type == 'new')) errMessage += 'You must enter a password to enable this user to login to their account.\n';
	if(pass.value != pass2.value){
		errMessage += 'Your passwords do not match. Please re-enter both.\n';
		pass.value = '';
		pass2.value = '';
	}

	if(errMessage != ''){
		alert('The information you have submitted is incomplete.\n\n' + errMessage + '\nPlease correct the errors above and re-submit the form.');
		return false;
	}else{
		return true;
	}
}

function d_ValidateContact(){

	//var tt = document.getElementById('frmTitle');
	var n = document.getElementById('frmFirstName');
	var sn = document.getElementById('frmSurName');
	var a = document.getElementById('frmAddress');
	var e = document.getElementById('frmEmail').value;
	var t = document.getElementById('frmTel');
	var en = document.getElementById('frmEnquiry');
	var s = document.getElementById('frmspecificenquiry');
	
	var errMessage = '';
	
	/* Check Errors */
		
	//if(tt.options.selectedIndex == 0) errMessage += 'Please Select Your Title.\n';
	if(n.value == '') errMessage += 'You must enter your Name.\n';
	//if(sn.value == '') errMessage += 'You must enter your Surame.\n';
	if (a.value == '' && t.value == '') errMessage += 'You must enter your Address OR Telephone Number.\n';
	if ((e.value != '')&&(!filter.test(e))) errMessage += 'You must enter a valid e-mail address.\n\n';
		
	
	if(s.options.selectedIndex == 0) errMessage += 'Select The Product you are interested.\n';
	if (en.value == '') errMessage += 'Please Tell us about your enquiry.\n';
		
	/* Validate Form */
	if(errMessage != ''){
		alert('The information you have submitted is incomplete.\n\n' + errMessage + '\nPlease correct the errors above and re-submit the form.');
		return false;
	}else{
		return true;
	}
}

function d_ValidateOfficer(){
	var ot = document.getElementById('frmOfficerType'),errMessage = '';
	if(ot.options.selectedIndex == 0) errMessage += 'Please select the type of officer before proceeding.\n';
	
	if(errMessage != ''){
		alert('The information you have submitted is incomplete.\n\n' + errMessage + '\nPlease correct the errors above and re-submit the form.');
		return false;
	}else{
		//return true;
		return false;
	}
}