madisonConcrete = (function() {
    function clearFailureDialog() {
        $('#dialog-failure').dialog('close');
        $('#dialog-failure ul#error-list').empty();
    }
    function addToFailureDialog(message) {
        $('#dialog-failure ul#error-list').append('<li>' + message + '</li>');
    }
    function showFailureDialog() {
        $('#dialog-failure').dialog('open');
				Recaptcha.reload();
    }
    function showThankyouDialog() {
        $('#dialog-thankyou').dialog('open');
				Recaptcha.reload();
    }
    function clearContactForm() {
        $('input[name=fullName]').val('');
        $('input[name=phone]').val('');
        $('input[name=email]').val('');
        $('textarea[name=comments]').val('');
				$('input[name=recaptcha_response_field]').val('');
				Recaptcha.reload();
    }
    
    function validateFullName(fullName) {
        if (fullName.length > 0) {
            return true;
        } else {
            return false;
        }
    }
    function validatePhone(phone) {
        var validateExp = /^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$/;
        return validateExp.test(phone);
    }
    function validateEmail(email) {
        var validateExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
        return validateExp.test(email)
    }
    function validateRecaptcha(recaptcha) {
				if (recaptcha.length > 0) {
						return true;
				} else {
						return false;
				}
		}

    return {
        clearContactForm: clearContactForm,
        submitContactForm: function() {
            var canSubmit = true;
            var valid = {};
            clearFailureDialog();
            
            var fullName = $('input[name=fullName]').val();
            if (!validateFullName(fullName)) {
                addToFailureDialog('You must enter your Full Name');
                canSubmit = false;    
            }
            var phone = $('input[name=phone]').val();
            if (!validatePhone(phone)) {
                addToFailureDialog('You must enter a valid Phone Number');
                canSubmit = false;    
            }
            var email = $('input[name=email]').val();
            if (!validateEmail(email)) {
                addToFailureDialog('You must enter a valid Email address');
                canSubmit = false;    
            }
						var recaptcha = $('input[name=recaptcha_response_field]').val();
						if (!validateRecaptcha(recaptcha)) {
								addToFailureDialog('You must fill out the value in the recaptcha box');
								canSubmit = false;
						}
            var comments = $('textarea[name=comments]').val();
            
            if (canSubmit) {
                var dataString = 'fullName=' + fullName + '&email=' + email + '&phone=' + phone + '&comments=' + comments +
									'&recaptcha_challenge_field=' + $('input[name=recaptcha_challenge_field]').val() +
									'&recaptcha_response_field=' + $('input[name=recaptcha_response_field]').val();
                $.ajax({
                    type: 'POST',
                    url: '/contact/mailer.php',
                    data: dataString,
                    success: function(data) {
                        //console.log(data);
                        showThankyouDialog();
                        clearContactForm();
                    },
                    error: function(e) {
												clearFailureDialog();
												addToFailureDialog(e.responseText);
												showFailureDialog();
                        //console.log(e);
                    }
                });
            } else {
                showFailureDialog();
            }
        }
    };
})();
    
$(function() {
    if ($('#accordion').length > 0) { $('#accordion').accordion({collapsible:true, active: false, autoHeight: false}); }
    if ($("#pikame").length > 0) { $("#pikame").PikaChoose({carousel:true,carouselOptions:{wrap:'circular'}}); console.log('go girl'); }
    if ($('form[name=contact]').length > 0) { 
        $('form[name=contact] input:submit, button').button(); 
        $('#dialog-thankyou').dialog({
            modal: false,
            autoOpen: false,
            width: 350,
            height: 300,
            buttons: {
                Ok: function() {
                    $(this).dialog('close');
                }
            }
        });
        $('#dialog-failure').dialog({
            modal: true,
            autoOpen: false,
            width: 500,
            height: 300,
            buttons: {
                Ok: function() {
                    $(this).dialog('close');
                }
            }
        });
        madisonConcrete.clearContactForm();
        $('form[name=contact] button[name=submit]').click(function() {
            madisonConcrete.submitContactForm();
            return false;
        });
    }
});
