	function mailMe(sDom, sUser){
	  return("mail"+"to:"+sUser+"@"+sDom.replace(/%23/g,".")+"?subject=Massachusetts Men's Gathering");
	}

function validate_required(field,alerttxt)
{
	with (field)
	{
		if (value==null||value=="")
  		{alert(alerttxt);return false;}
		else {return true}
	}
}

function validate_state(field,alerttxt)
{
	with (field)
	{
		if (selectedIndex==0)
  		{alert(alerttxt);return false;}
		else {return true}
	}
}


function validate_email(field,alerttxt)
{
	with (field)
	{
		if (value==null||value=="")
  		{return true;}
		if (value==""){return true;}
		apos=value.indexOf("@");
		dotpos=value.lastIndexOf(".");
		if (apos<1||dotpos-apos<2) 
		  {alert(alerttxt);return false;}
		else {return true;}
	}
}

function validatePhone(phoneField) {
   var num = phoneField.value.replace(/[^\d]/g,'');
		if (num.length == 0)
  		{return true;}
   if(num.length != 10) {
        //Alert the user that the phone number entered was invalid.
        alert('Please enter a valid phone number including area code');
				return false;                   
   } else {
        //Format was valid.  Format the Phone to the desired style.
               phoneField.value = num.substring(0,3) + "-" +
                                    num.substring(3, 6) + "-" + num.substring(6);
   }
}

function validate_form(thisform)
{
	with (thisform)
	{
		if (validate_required(name,"Name must be entered!")==false)
  		{name.focus();return false;}
		if (validate_required(address1,"Address #1 must be entered!")==false)
  		{address1.focus();return false;}
		if (validate_required(city,"City must be  entered!")==false)
  		{city.focus();return false;}
		if (validate_state(state,"State must be  entered!")==false)
  		{state.focus();return false;}
		if (validate_required(zip_code,"Zip code must be  entered!")==false)
  		{zip_code.focus();return false;}
		if (validate_email(email,"Email is not in a proper format!")==false)
  		{email.focus();return false;}
 		if (validatePhone(phone_no,"Phone number is not in a proper format (111-222-3333)!")==false)
  		{email.focus();return false;}
	}

	returnDoc = sub(thisform);
	ajax_loadContent('Main','inc/thanksForm.html');
}

var xmlReq = null;;
    function sub(f)
    {
       var file = 'http://www.massmensgathering.org/formmail.php'
       var str = getFormValues(f,"");
       xmlReq = getXML(file,str);
    }
    function getXML(file,str)
    {
       var doc = null
       if (typeof window.ActiveXObject != 'undefined' )
       {
           doc = new ActiveXObject("Microsoft.XMLHTTP");
           doc.onreadystatechange = displayState;
       }
       else
       {
	 		  	try {
        	   	doc = new XMLHttpRequest();
       		}
					catch (e) 
					{
							//alert("An exception occurred in the script. Error name: " + e.name + ". Error message: " + e.message); 
					}
	 		  	try {
        	   	doc.onload = displayState;
       		}
					catch (e) 
					{
							//alert("An exception occurred in the script. Error name: " + e.name + ". Error message: " + e.message); 
					}
      	}
      	if (doc){
      		//doc.onreadystatechange = processReqChange;

      		doc.open( "POST", file, false );
       		doc.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
       		doc.send(str);
       		return doc;
       	}
    }


function displayState() {
    // only if req shows "loaded"
    if (doc.readyState == 4) {
        // only if "OK"
        if (doc.status == 200) {
            // ...processing statements go here...
        } else {
            alert("There was a problem retrieving the XML data:\n" +
                doc.statusText);
        }
    }
}


    function getFormValues(fobj,valFunc)
    {
       var str = "";
       var valueArr = null;
       var val = "";
       var cmd = "";
       for(var i = 0;i < fobj.elements.length;i++)
       {
           switch(fobj.elements[i].type)
           {
               case "text":
                    if(valFunc)
                    {
                        //use single quotes for argument so that the value of
                        //fobj.elements[i].value is treated as a string not a literal
                        cmd = valFunc + "(" + 'fobj.elements[i].value' + ")";
                        val = eval(cmd)
                    }
                    str += fobj.elements[i].name +
                     "=" + escape(fobj.elements[i].value) + "&";
                     break;
               case "textarea":
                    if(valFunc)
                    {
                        //use single quotes for argument so that the value of
                        //fobj.elements[i].value is treated as a string not a literal
                        cmd = valFunc + "(" + 'fobj.elements[i].value' + ")";
                        val = eval(cmd)
                    }
                    str += fobj.elements[i].name +
                     "=" + escape(fobj.elements[i].value) + "&";
                     break;
               case "select-one":
                    str += fobj.elements[i].name +
                    "=" + fobj.elements[i].options[fobj.elements[i].selectedIndex].value + "&";
                    break;
           }
       }
       str = str.substr(0,(str.length - 1));
       return str;
    }

