$(document).ready(function(){
    if (document.getElementById('cContainer')) {
        $.ajax({
            url: 'ajax/captcha.php',
            success: function(result){
                $('#cContainer').append(result)
            }
        });
    }
});

var requiredFields = new Array('first_name', 'email', 'phone');
var errorMsg = "";
function checkForm(myForm){
    var fields = new Array();
    var values = new Array();
    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++;
    }
    
    //checkCaptcha(fields, values);
    
    if (errorMsg != "") {
        document.getElementById('errorMsg').innerHTML = errorMsg;
        return false;
    }
    else {
        sendEmail(fields, values);
    }
}

function checkCaptcha(fields, values){
    var s = document.getElementById('mollomSessionId').value;
    var c = document.getElementById('c').value;
    
    $.ajax({
        url: 'ajax/c.php?c=' + c + '&s=' + s,
        success: function(result){
            if (result != 1) {
                errorMsg += "The information you entered for the secret code did not match. Please try again.";
            }
            if (errorMsg != "") {
                document.getElementById('errorMsg').innerHTML = errorMsg;
                return false;
            }
            else {
                sendEmail(fields, values);
            }
        }
        
    });
}

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];
    }
    
    $.ajax({
        url: 'ajax/sendEmail.php?' + queryString,
        success: 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!";
            }
        }
    });
}

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 "";
}

