	//age check
	function twoDigits(dig){
		var str = dig.toString();
		var digit = (str.length == 2) ? str : '0'+str;
		return digit;
	}
	
	
	function realMonth(mm){
		var realmonth = (mm < 12) ? mm + 1 : mm = 1;
		return realmonth;
	}
			
	// returns true if the string is a US phone number formatted as...
	// (000)000-0000, (000) 000-0000, 000-000-0000, 000.000.0000, 000 000 0000, 0000000000
	function isPhoneNumber(str){
		var re = /^\(?[2-9]\d{2}[\)\.-]?\s?\d{3}[\s\.-]?\d{4}$/
		return re.test(str);
	}
	
	// returns true if the string only contains characters A-Z, a-z or 0-9 or . or #
	function isAddress(str){
		var re = /[^a-zA-Z0-9\#\.]/g
		if (re.test(str)) return true;
		return false;
	}
	
	// returns true if the string is 5 digits
	function isZip(str){
		var re = /\d{5,}/;
		if(re.test(str)) return true;
		return false;
	}
	
	// returns true if the string only contains characters A-Z or a-z
	function noSpaces(str){
		var re = /[' ']/g
		if (re.test(str)) return false;
		return true;
	}
	
	
	// returns true if the string only contains characters A-Z or a-z
	function isAlpha(str){
		var re = /[^a-zA-Z-\s]/g
		if (re.test(str)) return false;
		return true;
	}
	
	// returns true if the string only contains characters A-Z or a-z or 0-9
	function isAlphaNumeric(str){
		var re = /[^a-zA-Z0-9]/g
		if (re.test(str)) return false;
		return true;
	}
	
	// returns true if the string only contains characters 0-9
	function isNumeric(str){
		var re = /[^0-9]/g
		if (re.test(str)) return false;
		return true;
	}

	function isEmpty(str){
		if(str == null || str.length == 0){
			return true;
		}else{
			return false;
		}
	}
	
	function isEmail(str){
	if(str == '') return false;
	var re = /^[^\s()<>@,;:\/]+@\w[\w\.-]+\.[a-z]{2,}$/i
	return re.test(str);
	}
	
function stripWhitespace(str, replacement){
	if (replacement == null) replacement = '';
	var result = str;
	var re = /\s/g
	if(str.search(re) != -1){
		result = str.replace(re, replacement);
	}
	return result;
}

//function for colouring the fields with errors
function hasErrors(fieldID, err){
	if(err){
		document.getElementById(fieldID).style.backgroundColor = '#f9d1d1';
	}else{
		document.getElementById(fieldID).style.backgroundColor = 'white';
	}
}



function sendContact(){ 
   var cnm = $("#contact_name").val();
   var cem = $("#contact_email").val();
   var cms = $("#contact_message").val();
   if(isEmpty($("#contact_phone").val())){ var cph = 'NULL'; }else{ var cph = $("#contact_phone").val(); }
  
   var pars = 'cname='+cnm+'&cemail='+cem+'&cmess='+cms+'&cphn='+cph;
 
	$.ajax({
	type: "POST",
	url: "/ajax.contact.php",
	data: pars,
	success: function(msg){
		$("#contactform .confirm").removeClass('hide');
		$("#contactform .confirm").html(msg);
		waitToHide('#contactform');
	}
	});
   return false;
}




function sendReminder(){ 
   var rem = $("#remind_email").val();
   var pars = 'remail='+rem;
 
	$.ajax({
	type: "POST",
	url: "/ajax.remind.php",
	data: pars,
	success: function(msg){
		if(msg == 'Username cannot be found.'){
			$("#remind_email_lbl").html(msg);
			$("#remind_email_lbl").addClass('err');
		} else {
			$("#pwremind .confirm").removeClass('hide');
			$("#pwremind .confirm").html(msg);
			$("#remind_email_lbl").html('Username/E-mail Address:');
			$("#remind_email_lbl").removeClass('err');
			waitToHide('#pwremind');
		}
	}
	});
   return false;
} 		


function sendChange(){ 
   var cun = $("#change_email").val();
   var cpw = $("#change_pass").val();
   var cnp = $("#change_newpwa").val();
  
   var pars = 'cuser='+cun+'&cpass='+cpw+'&cnewpass='+cnp;
 
	$.ajax({
	type: "POST",
	url: "/ajax.pwchange.php",
	data: pars,
	success: function(msg){
		$("#pwchange").addClass('nopadbot');
		$("#pwchange .confirm").removeClass('hide');
		$("#pwchange .confirm").html(msg);
		if(msg != 'Username cannot be found.'){
			waitToHide('#pwchange');
		}
	}
	});
   return false;
}


function validateForm(){
	var this_form = document.registration_form;
	var errors=0;
		
		if(isEmpty(this_form.first_name.value)){
		$('#first_name_lbl').addClass('err');
		errors++;
		}else{
		$('#first_name_lbl').removeClass('err');
		}
		
		if(isEmpty(this_form.last_name.value)){
		$('#last_name_lbl').addClass('err');
		errors++;
		}else{
		$('#last_name_lbl').removeClass('err');
		}
		
		if(isEmpty(this_form.employer.value)){
		$('#employer_lbl').addClass('err');
		errors++;
		}else{
		$('#employer_lbl').removeClass('err');
		}
		
		if(isEmpty(this_form.business_street.value)){
		$('#business_street_lbl').addClass('err');
		errors++;
		}else{
		$('#business_street_lbl').removeClass('err');
		}
		
		if(isEmpty(this_form.city.value)){
		$('#city_lbl').addClass('err');
		errors++;
		}else{
		$('#city_lbl').removeClass('err');
		}
		
		if(isEmpty(this_form.country.value)){
			if(this_form.state.selectedIndex == '0'){
			$('#state_lbl').addClass('err');
			errors++;
			}else{
			$('#state_lbl').removeClass('err');
			}
		} else {
			$('#state_lbl').removeClass('err');
		}

		if(isEmpty(this_form.zip.value)){
		$('#zip_lbl').addClass('err');
		errors++;
		}else{
		$('#zip_lbl').removeClass('err');
		}
		
		if(isEmpty(this_form.business_phone.value)){
		$('#business_phone_lbl').addClass('err');
		errors++;
		}else{
		$('#business_phone_lbl').removeClass('err');
		}
		
		if(isEmpty(this_form.email.value) || !isEmail(this_form.email.value)){
		$('#email_lbl').addClass('err');
		errors++;
		}else{
		$('#email_lbl').removeClass('err');
		}
		
		if(isEmpty(this_form.password.value)){
		$('#password_lbl').addClass('err');
		errors++;
		}else{
		$('#password_lbl').removeClass('err');
		}
		
		if(isEmpty(this_form.passwordagain.value)){
		$('#passwordagain_lbl').addClass('err');
		errors++;
		}else{
		$('#passwordagain_lbl').removeClass('err');
		}
		
		if(!isEmpty(this_form.password.value)){
			if(this_form.password.value != this_form.passwordagain.value){
				$('#password_lbl').addClass('err');
				$('#password_lbl').html('Password: (Passwords must match)');
				$('#passwordagain_lbl').addClass('err');
				errors++;
			}else{
				$('#password_lbl').removeClass('err');
				$('#password_lbl').html('Password');
				$('#passwordagain_lbl').removeClass('err');
			}
		}
	
		var indchkd = $('#typeind:checked').val();
		var prochkd = $('#typepro:checked').val();
		
		if(indchkd != 'individual' && prochkd != 'professional'){
  			$('#type_lbl').addClass('err');
  			errors++;	
  		} else {
  			$('#type_lbl').removeClass('err');
  		}
  		
  		
  		if(indchkd == 'individual'){
  			
  			if(isEmpty(this_form.home_street.value)){
			$('#home_street_lbl').addClass('err');
			errors++;
			}else{
			$('#home_street_lbl').removeClass('err');
			}
		
			if(isEmpty(this_form.home_city.value)){
			$('#home_city_lbl').addClass('err');
			errors++;
			}else{
			$('#home_city_lbl').removeClass('err');
			}
			
			if(isEmpty(this_form.home_country.value)){
				if(this_form.home_state.selectedIndex == '0'){
				$('#home_state_lbl').addClass('err');
				errors++;
				}else{
				$('#home_state_lbl').removeClass('err');
				}
			} else {
				$('#home_state_lbl').removeClass('err');
			}

		
			if(isEmpty(this_form.home_zip.value)){
			$('#home_zip_lbl').addClass('err');
			errors++;
			}else{
			$('#home_zip_lbl').removeClass('err');
			}
			
			if(isEmpty(this_form.home_phone.value)){
			$('#home_phone_lbl').addClass('err');
			errors++;
			}else{
			$('#home_phone_lbl').removeClass('err');
			}
			
			if(isEmpty(this_form.dob.value)){
			$('#dob_lbl').addClass('err');
			errors++;
			}else{
			$('#dob_lbl').removeClass('err');
			}
			
			var marchkd = $('#marital_status1:checked').val();
			var sglchkd = $('#marital_status2:checked').val();
		
			if(marchkd != 'Married' && sglchkd != 'Single'){
				$('#marital_status_lbl').addClass('err');
  				errors++;	
  			} else {
  				$('#marital_status_lbl').removeClass('err');
  			}
  			
  			var marchkd = $('#networth1:checked').val();
			var sglchkd = $('#networth2:checked').val();
		
			if(marchkd != 'Less than $1,500,000' && sglchkd != 'More than $1,500,000'){
				$('#networth_lbl').addClass('err');
  				errors++;	
  			} else {
  				$('#networth_status_lbl').removeClass('err');
  			}
  			
  			var exp1chkd = $('#experience1:checked').val();
  			var exp2chkd = $('#experience2:checked').val();
  			var exp3chkd = $('#experience3:checked').val();
  			var exp4chkd = $('#experience4:checked').val();
  			var exp5chkd = $('#experience5:checked').val();
  			var exp6chkd = $('#experience6:checked').val();
  			
  			if(exp1chkd != 'stocks' && exp2chkd != 'mutuals' && exp3chkd != 'futures' && exp4chkd != 'real_estate' && exp5chkd != 'private_funds' && exp6chkd != 'other'){
  				$('#experience_lbl strong').addClass('err');
  				errors++;	
  			} else {
  				$('#experience_lbl strong').removeClass('err');
  			}
  			
  			if(exp6chkd == 'other'){
  				if(isEmpty(this_form.exother.value)){
  					$('#experience_lbl strong').addClass('err');
  					errors++;
  				} else {
  					$('#experience_lbl strong').removeClass('err');
  				}
			}
			
			
  			
  		}
  		
  		if(prochkd == 'professional'){
  			
  			if(isEmpty(this_form.investor_pos.value)){
			$('#investor_pos_lbl').addClass('err');
			errors++;
			}else{
			$('#investor_pos_lbl').removeClass('err');
			}
			
			var typ1chkd = $('#investor_type1:checked').val();
			var typ2chkd = $('#investor_type2:checked').val();
			var typ3chkd = $('#investor_type3:checked').val();
			var typ4chkd = $('#investor_type4:checked').val();
		
			if(typ1chkd != 'institutional investor' && typ2chkd != 'wealth advisor' && typ3chkd != 'consultant' && typ4chkd != 'other'){
  				$('#investor_type_lbl').addClass('err');
  				errors++;	
  			} else {
  				$('#investor_type_lbl').removeClass('err');
  			}
  			
  			if(typ4chkd == 'other'){
  				if(isEmpty(this_form.other.value)){
  					$('#investor_type_lbl').addClass('err');
  					errors++;
  				} else {
  					$('#investor_type_lbl').removeClass('err');
  				}
  			}

		}
		
		var meth1chkd = $('#method1:checked').val();
		var meth2chkd = $('#method2:checked').val();
		var meth3chkd = $('#method3:checked').val();
		
		if(meth1chkd != 'Email' && meth2chkd != 'Mail to business' && meth3chkd != 'Mail to home'){
  			$('#method_lbl').addClass('err');
  			errors++;	
  		} else {
  			$('#method_lbl').removeClass('err');
  		}
		
		if(isEmpty(this_form.signature.value)){
		$('#signature_lbl').addClass('err');
		errors++;
		}else{
		$('#signature_lbl').removeClass('err');
		}
		
		if(isEmpty(this_form.signdate.value)){
		$('#signdate_lbl').addClass('err');
		errors++;
		}else{
		$('#signdate_lbl').removeClass('err');
		}
		
		
		if(errors > 0){
			scrollToLink('.err');
			return false;
		} else {
			this_form.submit();
		}
	
}

function validateContactForm(){
	var this_form = document.contact_form;
	var errors=0;
		
		if(isEmpty(this_form.contact_name.value)){
		$('#contact_name_lbl').addClass('err');
		errors++;
		}else{
		$('#contact_name_lbl').removeClass('err');
		}
		
		if(isEmpty(this_form.contact_email.value) || !isEmail(this_form.contact_email.value)){
		$('#contact_email_lbl').addClass('err');
		errors++;
		}else{
		$('#contact_email_lbl').removeClass('err');
		}
		
		if(isEmpty(this_form.contact_message.value)){
		$('#contact_message_lbl').addClass('err');
		errors++;
		}else{
		$('#contact_message_lbl').removeClass('err');
		}


		if(errors > 0){
			return false;
		} else {
			return sendContact();
		}
	
}

function validatePWForm(){
	var this_form = document.pwremind_form;
	var errors=0;

		
		if(isEmpty(this_form.remind_email.value) || !isEmail(this_form.remind_email.value)){
		$('#remind_email_lbl').addClass('err');
		errors++;
		}else{
		$('#remind_email_lbl').removeClass('err');
		}

		if(errors > 0){
			return false;
		} else {
			return sendReminder();
		}
	
}

function validatePWChange(){
	var this_form = document.pwchange_form;
	var errors=0;

		
		if(isEmpty(this_form.change_email.value) || !isEmail(this_form.change_email.value)){
		$('#change_email_lbl').addClass('err');
		errors++;
		}else{
		$('#change_email_lbl').removeClass('err');
		}
		
		if(isEmpty(this_form.change_pass.value)){
		$('#change_pass_lbl').addClass('err');
		errors++;
		}else{
		$('#change_pass_lbl').removeClass('err');
		}
		
		if(isEmpty(this_form.change_newpwa.value)){
		$('#change_newpwa_lbl').addClass('err');
		errors++;
		}else{
		$('#change_newpwa_lbl').removeClass('err');
		}
		
		if(isEmpty(this_form.change_newpwb.value)){
		$('#change_newpwb_lbl').addClass('err');
		errors++;
		}else{
		$('#change_newpwb_lbl').removeClass('err');
		}
		
		if(!isEmpty(this_form.change_newpwa.value) && !isEmpty(this_form.change_newpwb.value)){
		if(this_form.change_newpwa.value != this_form.change_newpwb.value){
		$('#change_newpwa_lbl').addClass('err');
		$('#change_newpwb_lbl').addClass('err');
		$('#change_newpwa_lbl').html('New Password: <- must match ->');
		errors++;
		}else{
		$('#change_newpwa_lbl').removeClass('err');
		$('#change_newpwb_lbl').removeClass('err');
		$('#change_newpwa_lbl').html('New Password:');
		}
		}

		if(errors > 0){
			return false;
		} else {
			return sendChange();
		}
	
}