addLoadListener(init);


function init() {
	document.forms[0].onsubmit = validateFields;
	return true;
}

function validateFields() {
  
  var elements = document.forms["contactForm"].elements;
  var phonePattern1 = /^\(\d{3}\) \d{3}-\d{4}$/;
  var emailPattern = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/;
                  
  //var emailPattern = /^[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+$/;
  var spacePattern = /^\s+$/;

  for (var i = 0; i < elements.length; i++)
  {
    if (/(^| )checkRequired( |$)/.test(elements[i].className) && (elements[i].value == "" || spacePattern.test(elements[i].value)))
    {
      elements[i].focus();
      var thisError = elements[i].getAttribute('error');
      alert(thisError);
      return false;
    }
    
     if (/(^| )checkPhone( |$)/.test(elements[i].className))
    {
		var stripped = (elements[i].value).replace(/[\(\)\.\-\ ]/g, '');
		//strip out acceptable non-numeric characters
		if (isNaN(parseInt(stripped)) || stripped.length != 10) {
			elements[i].focus();
			var thisError = elements[i].getAttribute('error');
			alert(thisError);
			return false;
		}
    }
    
    if (/(^| )noCheckPhone( |$)/.test(elements[i].className) && elements[i].value != '')
    {
		var stripped = (elements[i].value).replace(/[\(\)\.\-\ ]/g, '');
		//strip out acceptable non-numeric characters
		if (isNaN(parseInt(stripped)) || stripped.length != 10) {
			elements[i].focus();
			var thisError = elements[i].getAttribute('error');
			alert(thisError);
			return false;
		}
    }
    
    if (/(^| )checkSelect( |$)/.test(elements[i].className) && (elements[i].selectedIndex == 0))
    {
      elements[i].focus();
      var thisError = elements[i].getAttribute('error');
      alert(thisError);
      return false;
    }
    
     

    if (/(^| )checkEmail( |$)/.test(elements[i].className) && !emailPattern.test(elements[i].value))
    {
      elements[i].focus();
      alert("Please fill in a valid e-mail address.");
      return false;
    }
    
    if (/(^| )noCheckEmail( |$)/.test(elements[i].className) && !emailPattern.test(elements[i].value) && elements[i].value != '')
    {
      elements[i].focus();
      alert("Please fill in a valid e-mail address.");
      return false;
    }
    
	if (/(^| )checkPref( |$)/.test(elements[i].className) && (elements[i].value == 'Email')) {
		if (!emailPattern.test(elements.email.value))
		{
		  elements.email.focus();
		  alert("Please fill in a valid e-mail address.");
		  return false;
		}
	} else if (/(^| )checkPref( |$)/.test(elements[i].className) && (elements[i].value == 'Phone')) {
		var stripped = (elements.phone1.value).replace(/[\(\)\.\-\ ]/g, '');
		//strip out acceptable non-numeric characters
		if (isNaN(parseInt(stripped)) || stripped.length != 10) {
			elements.phone1.focus();
			alert("Please enter a valid telephone number (with area code).");
			return false;
		}
	}
    
 	if (/(^| )botCheck( |$)/.test(elements[i].className) && (elements[i].value != ''))
    {
     return false;
    }
    
    if (/(^| )formCheck( |$)/.test(elements[i].className) && (elements[i].value != 'marmi'))
    {
     return false;
    }
}

	var title = document.forms["contactForm"].title.value;
	var fname = document.forms["contactForm"].fname.value;
	var lname = document.forms["contactForm"].lname.value;
	var datetime = document.forms["contactForm"].datetime.value;
	var email = document.forms["contactForm"].email.value;
	var phone1 = document.forms["contactForm"].phone1.value;
	var message = document.forms["contactForm"].message.value;
	var bot_check = document.forms["contactForm"].bot_check.value;
	var form_check = document.forms["contactForm"].form_check.value;
	
	httpRefresh('submit_apps.php?title=' + title + '&fname=' + fname + '&lname=' + lname + '&datetime=' + datetime + '&email=' + email + '&phone1=' + phone1 + '&message=' + message + '&bot_check=' + bot_check + '&form_check=' + form_check , 'form_content');
  return false;
}