var dtCh= "/";
var minYear=1900;
var maxYear=2100;
				function isInteger(s){
					var i;
				    for (i = 0; i < s.length; i++){
				        // Check that current character is number.
				        var c = s.charAt(i);
				        if (((c < "0") || (c > "9"))) return false;
				    }
				    // All characters are numbers.
				    return true;
				}
				function stripCharsInBag(s, bag){
					var i;
				    var returnString = "";
				    // Search through string's characters one by one.
				    // If character is not in bag, append to returnString.
				    for (i = 0; i < s.length; i++){
				        var c = s.charAt(i);
				        if (bag.indexOf(c) == -1) returnString += c;
				    }
				    return returnString;
				}
				function daysInFebruary (year){
					// February has 29 days in any year evenly divisible by four,
				    // EXCEPT for centurial years which are not also divisible by 400.
				    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
				}
				function DaysArray(n) {
					for (var i = 1; i <= n; i++) {
						this[i] = 31
						if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
						if (i==2) {this[i] = 29}
				   }
				   return this
				}

				function isDate(dtStr){
					var daysInMonth = DaysArray(12)
					var pos1=dtStr.indexOf(dtCh)
					var pos2=dtStr.indexOf(dtCh,pos1+1)
					var strMonth=dtStr.substring(0,pos1)
					var strDay=dtStr.substring(pos1+1,pos2)
					var strYear=dtStr.substring(pos2+1)
					strYr=strYear
					if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
					if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
					for (var i = 1; i <= 3; i++) {
						if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
					}
					month=parseInt(strMonth)
					day=parseInt(strDay)
					year=parseInt(strYr)

					if (pos1==-1 || pos2==-1){
						alert("The date format should be : mm/dd/yyyy")
						return false
					}
					if (strMonth.length<1 || month<1 || month>12){
						alert("Please enter a valid month")
						return false
					}
					if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
						alert("Please enter a valid day")
						return false
					}
					if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
						alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
						return false
					}
					if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
						alert("Please enter a valid date")
						return false
					}
				return true
				}

				function validateDate(field){
					var dt=field
					if (field.value!=""){
						if (isDate(field.value)==false){
							field.value = "";
							field.focus()
							return false
						}
					}
				    return true
				}

				function validate_phone( strValue )
				{
					var objRegExp  = /(^\d{3}-\d{3}-\d{4}$)/;
					return objRegExp.test(strValue);

				}

function checkForm()
{

	var ok = "yes";
	var message = "The following fields are required:\n";
	var bad_data;
	var focus;

	if ($F('first_name') == "")
	{
		ok = "no";
		message += " - First Name\n";
		focus = "first_name";
	}

	if ($F('last_name') == "")
	{
		ok = "no";
		message += " - Last Name\n";
		if (!focus) focus = "last_name";
	}
	if ($F('firm') == "")
	{
		ok = "no";
		message += " - Firm\n";
		if (!focus) focus = "firm";
	}
	
	if ($F('city') == "")
	{
		ok = "no";
		message += " - City\n";
		if (!focus) focus = "city";
	}

	if ($F('state') == "")
	{
		ok = "no";
		message += " - State\n";
		if (!focus) focus = "state";
	}
		
	if ($F('zip') == "")
	{
		ok = "no";
		message += " - Zip Code\n";
	}	
	else
	{
		if ($F('zip').length != 5 || !isInteger($F('zip')))
		{
			ok = "no";
			message += " - Valid 5 Digit Zip Code\n";
		}	
		
	}
	
	if ($F('phone') == "")
	{
		ok = "no";
		message += " - Daytime Phone\n";
		if (!focus) focus = "phone";
	}
	
	if ($F('email') == "")
	{
		ok = "no";
		message += " - Email\n";	
		if (!focus) focus = "email";	
	}	
	else
	{
		var EMAIL = "^[a-zA-Z0-9_-]+(\.([a-zA-Z0-9_-])+)*@[a-zA-Z0-9_-]+[.][a-zA-Z0-9_-]+([.][a-zA-Z0-9_-]+)*$";
		var re = new RegExp(EMAIL);

		if (!$F('email').match(re))
		{
			message += " - Email. That does not appear to be a valid email.\n";
			ok = "no";
			if (!focus) focus = "email";
		}
	}
	if ($F('referral') == "Make Selection" || $F('referral') == "")
	{
		ok = "no";
		message += " - How Did You Hear About Us?\n";
		if (!focus) focus = "referral";
	}
		
	if (ok == "no")
	{
		alert(message);
		$(focus).focus();
		return false;
	 }
   	return true;
}

