/**
 *This file contain a number of JavaScript functions that are used on the email forms.
 */

/**
 * The email plugin from jQuery
 */
jQuery.fn.mailto = function() {
	return this.each(function(){
		var email = $(this).attr('href').replace(/\s*\(.+\)\s*/, "@");
		$(this).before('<a class="email" href="mailto:' + email + '" rel="nofollow" title="Email ' + email + '">' + email + '</a>').remove();
	});
};

/**
         * This function is called when the form submission completes.
         * It clears the form and clear the validation errors
         */
function showResponse(responseText, statusText)  {
    $("#dialog").effect("highlight", {}, 10000);
    $('#dialog').dialog('option', 'buttons',{
        'Done':function(){
            $('#dialog').dialog('close');
        }
        });

}


/**
 * Sets up the form validation AFTER it is loaded via AJAX
 */
function setupvalidation() {
    $("#msgform").validate({
        submitHandler: function(form) {
            var options = {
                target:        '#dialog',   // target element(s) to be updated with server response
                success:       showResponse  // post-submit callback
            };
            $(form).ajaxSubmit(options);
        },
        rules: {
            subject: "required",
            phone: "required",
            fromAddress: {
                required: true,
                email: true
        },
            fullName:"required",
            message:"required",
            file:"required"
        },
        messages: {
            subject: "Please enter a subject",
            phone: "Please enter your phone number",
            fromAddress: "Please enter a valid email address",
            fullName:"Please enter your full name",
            message:"Please enter a short question describing your request",
            file:"Please select your resume file"
        }
    });
}

/**
 * Loads the form via AJAX, calls setup validation then opens the dialog box.
 */
var openDialog = function(){
      
//    $('#dialog').load(murl,{},setupvalidation);
//
//    $('#dialog').dialog('option', 'buttons',{
//        "Cancel":function(){
//            $('#dialog').dialog('close');
//        },
//        "Send":function(){
//            $("#msgform").submit();
//        }
//    });
//    $('#dialog').dialog('open');
       
};

$(document).ready(function() {
    //$('#dialog').dialog({
    //    autoOpen:false,
    //    modal:'true',
    //    width:450,
    //    height:550
    //});
   // $('.jqModal').click(openDialog);
   $('.email').mailto();
});


/**
        $(document).ready(function(){
            $('#dialog').jqm({onShow:showContact,onHide:hideContact});
            $("#emailform").addClass('hidden');
            $("#closer").addClass('hidden');

            $("#closer").click(function(){
                $("#emailform").fadeOut('slow');
                $("#contactextra").show();
                $("#closer").hide();
            });

            //What happens when you click the Submit Button
            $("#subbutton").click(function(){
                var options = {
                    target:        '#result',   // target element(s) to be updated with server response
                    success:       showResponse  // post-submit callback
                };
                //First validate the form
                if(contactValidation()){
                    $("#msgform").ajaxSubmit(options);
                    $("#emailform").fadeOut('slow');
                    //$("#contactextra").show();
                    //$("#closer").hide();
                    $("#result").show();
                }else{
                    //If not valid add an event handler to each element on the form
                    //so that the form re-validates after the user changes the fields
                    $('.text').blur(function(event){
                        contactValidation();
                    });
                }
            });


        });
    */

/**
         * Performs contact form validations
         */
function contactValidation() {

    //Clear any error messages
    $(".em_error").addClass('hidden');
    $(".em_error").removeClass('em_error');


    var subj = $('#msgform_email_subject').fieldValue()[0];
    var hasError = false;
    if(subj == null || subj == ''){
        $('#subject_error').removeClass('hidden');
        $('#subject_error').addClass('em_error');
        hasError = true;
    }



    //reset the email error message
    $('#email_error').text("Please enter your email address");
    if (!$('#msgform_email_fromAddress').val()) {
        hasError = true;
        $('#email_error').removeClass('hidden');
        $('#email_error').addClass('em_error');
    }

    var email = $('#msgform_email_fromAddress').val();
    if (!email) {
        hasError = true;
        $('#email_error').removeClass('hidden');
        $('#email_error').addClass('em_error');
    }
    else {
        if (!validateEmail(email)) {
            hasError = true;
            $('#email_error').text("The email address is not valid");
            $('#email_error').removeClass('hidden');
            $('#email_error').addClass('em_error');
        }
    }

    if (!$('#msgform_email_fullName').val()) {
        hasError = true;
        $('#name_error').removeClass('hidden');
        $('#name_error').addClass('em_error');
    }

    if (!$('#msgform_email_message').val()) {
        hasError = true;
        $('#msg_error').removeClass('hidden');
        $('#msg_error').addClass('em_error');
    }

    if($('#msgform_validate_file').val()){
        if (!$('#msgform_file').val()) {
            hasError = true;
            $('#file_error').removeClass('hidden');
            $('#file_error').addClass('em_error');
        }
    }
    return !hasError;
}
