var requiredFields = new Array('first_name','email','phone');
function checkForm(myForm) {
	var fields = new Array();
	var values = new Array();
	var errorMsg = "";
	
	var myInputs = myForm.getElementsByTagName('input');
	for(var i=0;i<myInputs.length;i++) {
		if(myInputs[i].name!="submit") {
			fields[i] = myInputs[i].name;
			values[i] = myInputs[i].value;
			if(in_array(fields[i],requiredFields) && values[i]=="") {
				errorMsg += fields[i].replace("_"," ").capitalize()+" is a required field.<br />\n";		
			}
			if(myInputs[i].name=="email") {
				errorMsg += echeck(values[i]);
			}
		}
	}
	
	var mySelects = myForm.getElementsByTagName('select');
	for(var x=0;x<mySelects.length;x++) {
		fields[i] = mySelects[x].name;
		values[i] = mySelects[x].value;
		i++;
	}
	
	var myTextareas = myForm.getElementsByTagName('textarea');
	for(var x=0;x<myTextareas.length;x++) {
		fields[i] = myTextareas[x].name;
		values[i] = myTextareas[x].value;
		i++;
	}
	
	if(errorMsg=="") {
		sendEmail(fields,values);
	} else {
		document.getElementById('errorMsg').innerHTML = errorMsg;
		return false;
	}
}

String.prototype.capitalize = function(){
   return this.replace( /(^|\s)([a-z])/g , function(m,p1,p2){ return p1+p2.toUpperCase(); } );
  };

function sendEmail(fields,values) {
	var queryString = "";
	for(var i=0;i<fields.length;i++) {
		if(i>0) {
			queryString += "&";	
		}
		queryString += fields[i]+"="+values[i];
	}
	
	var client = new HttpClient();
	
	
	client.callback = function(result) {
		if(result==1) {
			window.location = "/thankyou";
		} else {
			document.getElementById('errorMsg').innerHTML = "We're sorry.  We were unable to process your message. Please either try again or contact us directly by email.  Thank you!";
		}
	}

	client.makeRequest('/ajax/sendEmail.php?'+queryString,null);
	
}

function showThankyou(data) {
	if(data=="success") {
		window.location = "/thankyou";	
	} else {
		document.getElementById('errorMsg').innerHTML = "We're sorry.  We were unable to process your message. Please either try again or contact us directly by email.  Thank you!";
	}
}

function in_array (needle, haystack, argStrict) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: vlado houba
    // +   input by: Billy
    // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
    // *     example 1: in_array('van', ['Kevin', 'van', 'Zonneveld']);
    // *     returns 1: true
    // *     example 2: in_array('vlado', {0: 'Kevin', vlado: 'van', 1: 'Zonneveld'});
    // *     returns 2: false
    // *     example 3: in_array(1, ['1', '2', '3']);
    // *     returns 3: true
    // *     example 3: in_array(1, ['1', '2', '3'], false);
    // *     returns 3: true
    // *     example 4: in_array(1, ['1', '2', '3'], true);
    // *     returns 4: false

    var key = '', strict = !!argStrict;

    if (strict) {
        for (key in haystack) {
            if (haystack[key] === needle) {
                return true;
            }
        }
    } else {
        for (key in haystack) {
            if (haystack[key] == needle) {
                return true;
            }
        }
    }

    return false;
}

function echeck(str) {
	var at="@";
	var dot=".";
	var lat=str.indexOf(at);
	var lstr=str.length;
	var ldot=str.indexOf(dot);
	if (str.indexOf(at)==-1){
	   return "Sorry. Invalid E-mail.<br />\n";
	}
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   return "Sorry. Invalid E-mail.<br />\n";
	}
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
	    return "Sorry. Invalid E-mail.<br />\n";
	}
	if (str.indexOf(at,(lat+1))!=-1){
	    return "Sorry. Invalid E-mail.<br />\n";
	}
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
	    return "Sorry. Invalid E-mail.<br />\n";
	}
	if (str.indexOf(dot,(lat+2))==-1){
	   return "Sorry. Invalid E-mail.<br />\n";
	}
	if (str.indexOf(" ")!=-1){
	    return "Sorry. Invalid E-mail.<br />\n";
	}
	return "";					
}
