// JavaScript Document	
	
	function doSubmitVisitor_info(frm)
	{
		if(frm.referrer.value=='visitor_HomeBuyer_criteria'){	
			if (!validformHomeBuyer_criteria(frm))
					return false;
			document.getElementById('btnSubmit').disabled=true;	
			document.getElementById('frmCriteria').action = 'visitor_criteria_insert.php';					
			document.getElementById('frmCriteria').target = '_self';
			document.getElementById('frmCriteria').submit();
		}		
		else if(frm.referrer.value=='visitor_cma_criteria'){	
			if (!validformCMA_criteria(frm))
					return false;
			document.getElementById('btnSubmit').disabled=true;	
			document.getElementById('frmCriteria').action = 'visitor_criteria_insert.php';					
			document.getElementById('frmCriteria').target = '_self';
			document.getElementById('frmCriteria').submit();
		}
		else if(frm.referrer.value=='visitor_estatesale_contact'){
			if (!validformVIPbuyers(frm))
					return false;
			document.getElementById('btnSubmit').disabled=true;	
			document.getElementById('frmContact').action = 'visitor_criteria_insert.php';
			document.getElementById('frmContact').target = '_self';
			document.getElementById('frmContact').submit();
						return true;					
		}
		else if(frm.referrer.value=='visitor_foreclosures_contact'){
			if (!validformVIPbuyers(frm))
					return false;
			document.getElementById('btnSubmit').disabled=true;	
			document.getElementById('frmContact').action = 'visitor_criteria_insert.php';
			document.getElementById('frmContact').target = '_self';
			document.getElementById('frmContact').submit();
						return true;					
		}			
		else if(frm.referrer.value=='visitor_avoidforeclosures_contact'){
			if (!validformVIPbuyers(frm))
					return false;
			document.getElementById('btnSubmit').disabled=true;	
			document.getElementById('frmContact').action = 'visitor_criteria_insert.php';
			document.getElementById('frmContact').target = '_self';
			document.getElementById('frmContact').submit();
						return true;					
		}	
		else if(frm.referrer.value=='visitor_vipbuyers_criteria'){
			if (!validformVIPbuyers_criteria(frm))
					return false;
			document.getElementById('btnSubmit').disabled=true;	
			document.getElementById('frmCriteria').action = 'visitor_criteria_insert.php';
			document.getElementById('frmCriteria').target = '_self';
			document.getElementById('frmCriteria').submit();
		}
		else if(frm.referrer.value=='visitor_mortgage_criteria'){
			if (!validformMortgage_criteria(frm))
					return false;
			document.getElementById('btnSubmit').disabled=true;	
			document.getElementById('frmCriteria').action = 'visitor_criteria_insert.php';
			document.getElementById('frmCriteria').target = '_self';
			document.getElementById('frmCriteria').submit();
		}		
		else if(frm.referrer.value=='visitor_cma_contact'){
			if (!validformVIPbuyers(frm))
					return false;
			document.getElementById('btnSubmit').disabled=true;	
			document.getElementById('frmContact').action = 'visitor_criteria_insert.php';
			document.getElementById('frmContact').target = '_self';
			document.getElementById('frmContact').submit();
						return true;					
		}
		else if(frm.referrer.value=='visitor_vipbuyers_contact'){
			if (!validformVIPbuyers(frm))
					return false;	
			document.getElementById('btnSubmit').disabled=true;	
			document.getElementById('frmContact').action = 'visitor_criteria_insert.php';
			document.getElementById('frmContact').target = '_self';
			document.getElementById('frmContact').submit();
						return true;
		}
		else if(frm.referrer.value=='visitor_mortgage_contact'){
			if (!validformVIPbuyers(frm))
					return false;
			document.getElementById('btnSubmit').disabled=true;	
			document.getElementById('frmContact').action = 'visitor_criteria_insert.php';
			document.getElementById('frmContact').target = '_self';
			document.getElementById('frmContact').submit();
						return true;					
		}	
	}
	
	function validformVIPbuyers(frm)
	{
			var errormessage = new String();
			
			if (WithoutContent(frm.emailaddress.value) && WithoutContent(frm.phonenumber.value))
					{ errormessage += "\n\nPlease provide a valid entry in the \"Email Address\" or \"Phone Number\" fields."; }
			if (!WithoutContent(frm.emailaddress.value) && !emailCheck(frm.emailaddress.value))
					{ errormessage += "\n\nPlease provide a valid entry in the \"Email Address\" field."; }
			if(WithoutContent(frm.firstname.value))
					{ errormessage += "\n\nPlease provide a valid entry in the \"First Name\" field."; }
			/*if(WithoutContent(frm.lastname.value))
					{ errormessage += "\n\nPlease provide a valid entry in the \"Last Name\" field."; }
			if(WithoutContent(frm.phonenumber.value))
					{ errormessage += "\n\nPlease provide a valid entry in the \"Phone Number\" field."; }
			if(WithoutContent(frm.address.value))
					{ errormessage += "\n\nPlease provide a valid entry in the \"Address\" field."; }			
			if(WithoutContent(frm.city.value))
					{ errormessage += "\n\nPlease provide a valid entry in the \"City\" field."; }
			if(WithoutSelectionValue(frm.province))
					{ errormessage += "\n\nPlease make a selection from the \"Province\" list."; }
			if(WithoutSelectionValue(frm.country))
					{ errormessage += "\n\nPlease make a selection from the \"Country\" list."; }
			if(WithoutSelectionValue(frm.timing))
					{ errormessage += "\n\nPlease make a selection from the \"Timing\" list."; }
			if(WithoutContent(frm.postalcode.value))
					{ errormessage += "\n\nPlease provide a valid entry in the \"Postal Code\" field."; }*/				

			if(errormessage.length > 2) {
				alert('OOPS. A \"*"\ INDICATES A REQUIRED FIELD:' + errormessage);
				return false;
				}
		return true;
	} // end of function validformVIPBuyers()

	function validformVIPbuyers_criteria(frm)
	{
			var errormessage = new String();
			
			if(WithoutContent(frm.maxprice.value))
					{ errormessage += "\n\nPlease provide a valid entry in the \"Max Price\" field."; }		
			if(WithoutContent(frm.location.value))
					{ errormessage += "\n\nPlease provide a valid entry in the \"Location/Area\" field."; }
			if(WithoutSelectionValue(frm.firsttime))
					{ errormessage += "\n\nPlease make a selection from the \"First Time Buyer\" list."; }
			if(WithoutSelectionValue(frm.preapproval))
					{ errormessage += "\n\nPlease make a selection from the \"Preapproved\" list."; }
			if(WithoutSelectionValue(frm.ownrent))
					{ errormessage += "\n\nPlease make a selection from the \"Own or Rent\" list."; }

			if(errormessage.length > 2) {
				alert('OOPS. A \"*"\ INDICATES A REQUIRED FIELD:' + errormessage);
				return false;
				}
		return true;
	} // end of function validformVIPBuyers_criteria()

	function validformCMA_criteria(frm)
	{
			var errormessage = new String();

			if(WithoutContent(frm.address.value))
					{ errormessage += "\n\nPlease provide a valid entry in the \"Address\" field."; }
			if(WithoutContent(frm.street.value))
					{ errormessage += "\n\nPlease provide a valid entry in the \"Street\" field."; }
			if(WithoutContent(frm.lotwidth.value))
					{ errormessage += "\n\nPlease provide a valid entry in the \"Lot Width\" field."; }
			if(WithoutContent(frm.lotdepth.value))
					{ errormessage += "\n\nPlease provide a valid entry in the \"Lot Depth\" field."; }
			if(WithoutSelectionValue(frm.bed))
					{ errormessage += "\n\nPlease make a selection from the \"Bedrooms\" list."; }
			if(WithoutSelectionValue(frm.bath))
					{ errormessage += "\n\nPlease make a selection from the \"Bathrooms\" list."; }
			if(WithoutContent(frm.sqft.value))
					{ errormessage += "\n\nPlease provide a valid entry in the \"Sq. Ft.\" field."; }
			if(WithoutSelectionValue(frm.heating))
					{ errormessage += "\n\nPlease make a selection from the \"Type of Heating\" list."; }
			if(WithoutSelectionValue(frm.type))
					{ errormessage += "\n\nPlease make a selection from the \"Type of Home\" list."; }			
			if(WithoutContent(frm.age.value))
					{ errormessage += "\n\nPlease provide a valid entry in the \"Age of Home\" field."; }
			if(WithoutSelectionValue(frm.moving))
					{ errormessage += "\n\nPlease make a selection from the \"Moving When?\" list."; }
			if(NoneWithCheck(frm.condition))
					{ errormessage += "\n\nPlease make a selection from the \"Building Condition\" buttons."; }					
			if(NoneWithCheck(frm.purpose))
					{ errormessage += "\n\nPlease make a selection from the \"CMA Purpose\" buttons."; }
					
			if(errormessage.length > 2) {
				alert('OOPS. A \"*"\ INDICATES A REQUIRED FIELD:' + errormessage);
				return false;
				}
		return true;
	} // end of function validformCMA_criteria()

	function validformMortgage_criteria(frm)
	{
			var errormessage = new String();

			if(WithoutContent(frm.loanamount.value))
					{ errormessage += "\n\nPlease provide a valid entry in the \"Loan Amount\" field."; }
			if(WithoutContent(frm.downpayment.value))
					{ errormessage += "\n\nPlease provide a valid entry in the \"Down Payment\" field."; }
			if(WithoutSelectionValue(frm.loanpurpose))
					{ errormessage += "\n\nPlease make a selection from the \"Loan Purpose\" list."; }
			if(WithoutSelectionValue(frm.ownrent))
					{ errormessage += "\n\nPlease make a selection from the \"Own or Rent\" list."; }
			if(NoneWithCheck(frm.purpose))
					{ errormessage += "\n\nPlease make a selection from the \"Reason for Purchase\" buttons."; }					
					
			if(errormessage.length > 2) {
				alert('OOPS. A \"*"\ INDICATES A REQUIRED FIELD:' + errormessage);
				return false;
				}
		return true;
	} // end of function validformCMA_criteria()
	
	/* functions used to ensure required fields of form are completed*/
	function WithoutContent(ss) {
	if(ss.length > 0) { return false; }
	return true;
	}
	
	function NoneWithContent(ss) {
	for(var i = 0; i < ss.length; i++) {
		if(ss[i].value.length > 0) { return false; }
		}
	return true;
	}
	
	function NoneWithCheck(ss) {
	for(var i = 0; i < ss.length; i++) {
		if(ss[i].checked) { return false; }
		}
	return true;
	}
	
	function WithoutCheck(ss) {
	if(ss.checked) { return false; }
	return true;
	}
	
	function WithoutSelectionValue(ss) {
	for(var i = 0; i < ss.length; i++) {
		if(ss[i].selected) {
			if(ss[i].value.length) { return false; }
			}
		}
	return true;
	}
    /**/
	

	function deleteBlanks(entry)
	{
			var len = entry.length ;
			var foundBlank = 1;
			while(foundBlank == 1 && len > 0)
			{
					var indx = entry.indexOf(" ");
					if(indx == -1)
							foundBlank = 0 ;
					else
							entry = entry.substring(0,indx) + entry.substring(indx+1,len);
					len = entry.length;
			}
			return entry;
	}
	
	function emailCheck (emailStr) {
	
	/* The following variable tells the rest of the function whether or not
	to verify that the address ends in a two-letter country or well-known
	TLD.  1 means check it, 0 means don't. */
	
	var checkTLD=1;
	
	/* The following is the list of known TLDs that an e-mail address must end with. */
	
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	
	/* The following pattern is used to check if the entered e-mail address
	fits the user@domain format.  It also is used to separate the username
	from the domain. */
	
	var emailPat=/^(.+)@(.+)$/;
	
	/* The following string represents the pattern for matching all special
	characters.  We don't want to allow special characters in the address.
	These characters include ( ) < > @ , ; : \ ' . [ ] */
	
	var specialChars='\\(\\)><@,;:\\\\\\\'\\.\\[\\]';
	
	/* The following string represents the range of characters allowed in a
	username or domainname.  It really states which chars aren't allowed.*/
	
	var validChars='\[^\\s' + specialChars + '\]';
	
	/* The following pattern applies if the 'user' is a quoted string (in
	which case, there are no rules about which characters are allowed
	and which aren't; anything goes).  E.g. 'jiminy cricket'@disney.com
	is a legal e-mail address. */
	
	var quotedUser='(\'[^\']*\')';
	
	/* The following pattern applies for domains that are IP addresses,
	rather than symbolic names.  E.g. joe@[123.124.233.4] is a legal
	e-mail address. NOTE: The square brackets are required. */
	
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	
	/* The following string represents an atom (basically a series of non-special characters.) */
	
	var atom=validChars + '+';
	
	/* The following string represents one word in the typical username.
	For example, in john.doe@somewhere.com, john and doe are words.
	Basically, a word is either an atom or quoted string. */
	
	var word='(' + atom + '|' + quotedUser + ')';
	
	// The following pattern describes the structure of the user
	
	var userPat=new RegExp('^' + word + '(\\.' + word + ')*$');
	
	/* The following pattern describes the structure of a normal symbolic
	domain, as opposed to ipDomainPat, shown above. */
	
	var domainPat=new RegExp('^' + atom + '(\\.' + atom +')*$');
	
	/* Finally, let's start trying to figure out if the supplied address is valid. */
	
	/* Begin with the coarse pattern to simply break up user@domain into
	different pieces that are easy to analyze. */
	
	var matchArray=emailStr.match(emailPat);
	
	if (matchArray==null) {
	
	/* Too many/few @'s or something; basically, this address doesn't
	even fit the general mould of a valid e-mail address. */
	
	//alert('Email address seems incorrect (check @ and .'s)');
	alert('Please Enter A Valid Email Address');
	return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];
	
	// Start by checking that only basic ASCII characters are in the strings (0-127).
	
	for (i=0; i<user.length; i++) {
	if (user.charCodeAt(i)>127) {
	//alert('Ths username contains invalid characters.');
	alert('Please Enter A Valid Email Address');
	return false;
	   }
	}
	for (i=0; i<domain.length; i++) {
	if (domain.charCodeAt(i)>127) {
	//alert('Ths domain name contains invalid characters.');
	alert('Please Enter A Valid Email Address');
	return false;
	   }
	}
	
	// See if 'user' is valid
	
	if (user.match(userPat)==null) {
	
	// user is not valid
	
	//alert('The username doesn't seem to be valid.');
	alert('Please Enter A Valid Email Address');
	return false;
	}
	
	/* if the e-mail address is at an IP address (as opposed to a symbolic
	host name) make sure the IP address is valid. */
	
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
	
	// this is an IP address
	
	for (var i=1;i<=4;i++) {
	if (IPArray[i]>255) {
	//alert('Destination IP address is invalid!');
	alert('Please Enter A Valid Email Address');
	return false;
	   }
	}
	return true;
	}
	
	// Domain is symbolic name.  Check if it's valid.
	
	var atomPat=new RegExp('^' + atom + '$');
	var domArr=domain.split('.');
	var len=domArr.length;
	for (i=0;i<len;i++) {
	if (domArr[i].search(atomPat)==-1) {
	//alert('The domain name does not seem to be valid.');
	alert('Please Enter A Valid Email Address');
	return false;
	   }
	}
	
	/* domain name seems valid, but now make sure that it ends in a
	known top-level domain (like com, edu, gov) or a two-letter word,
	representing country (uk, nl), and that there's a hostname preceding
	the domain or country. */
	
	if (checkTLD && domArr[domArr.length-1].length!=2 &&
	domArr[domArr.length-1].search(knownDomsPat)==-1) {
	//alert('The address must end in a well-known domain or two letter ' + 'country.');
	alert('Please Enter A Valid Email Address');
	return false;
	}
	
	// Make sure there's a host name preceding the domain.
	
	if (len<2) {
	//alert('This address is missing a hostname!');
	alert('Please Enter A Valid Email Address');
	return false;
	}
	
	// If we've gotten this far, everything's valid!
	return true;
	}