﻿function isNullOrEmpty(value) {
    if (value == null) {
        return true;
    }
    value = jQuery.trim(value);
    return (value.length == 0);
}

function setupEmailOnFocus(elem, evt) {
    elem.removeClass('invalid');
    if (elem.val() == 'e-mail address...' || elem.val() == 'valid email required...') {
        elem.val("");
        elem.style.color='#333';
    }
}

function validateEmail(elem, evt) {
    var email = elem.val();
    var succeeds = isNullOrEmpty(email) ? false : true;
    if (!succeeds) {
        elem.val("valid email required...");
        elem.addClass('invalid');
        evt.stopPropagation();
        return false;
    }

    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (!filter.test(email)) {
        elem.val("valid email required...");
        elem.addClass('invalid');
        evt.stopPropagation();
        return false;
    }
    else {
        subscribeToMailChimp(email, 'NoFirstName', 'NoLastName');
        elem.val("Thanks!");
    }
}

function validateContactForm(fnameElem, lnameElem, emailElem, messageElem, evt) {

    var succeeds = testElement(fnameElem);
    succeeds = succeeds & testElement(lnameElem);
    succeeds = succeeds & testElement(messageElem);

    var email = emailElem.val();
    if (isNullOrEmpty(email)) {
        emailElem.addClass('invalid');
        succeeds = false;
    }
    else {
        var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
        if (!filter.test(email)) {
            emailElem.addClass('invalid');
            succeeds = false;
        } else {
            emailElem.removeClass('invalid');
        }
    }

    if (!succeeds) {
        evt.stopPropagation();
        return false;
    }
    else {
        subscribeToMailChimp(email, fnameElem.val(), lnameElem.val());
        $('#contact_form').submit();
    }
}

function testElement(elem) {
    var succeeds;
    if (isNullOrEmpty(elem.val())) {
        elem.addClass('invalid');
        succeeds = false;
    }
    else {
        elem.removeClass('invalid');
        succeeds = true;
    }
    return succeeds;
}

function subscribeToMailChimp(email, fname, lname) {
    var url = "http://api.mailchimp.com/1.2/?method=listSubscribe" +
                             "&apikey=2585e565854a1a6ade451bc81ad780e3-us1" +
                             "&id=21de7f2cd5" +
                             "&email_address=" + email +
                             "&merge_vars[FNAME]=" + fname +
                             "&merge_vars[LNAME]=" + lname + 
                             "&output=json";

    $.getJSON(url, function(data) {
        var debug = 1;
    });
}

function toggleSection(elemId) {
	 $("#" + elemId).fadeIn();
	 $("#" + elemId + "Link").fadeOut();
}

