// Default text for the inputs
//var nameInputDefaultValue = "My name is...";
//var phoneOrEmailInputDefaultValue = "My phone or email address are...";
//var commentsInputDefaultValue = "Message... Please be specific";


$(document).ready(function() {

	// Fix IE6 png transparency
	if(jQuery().pngfix) {
		$("#contact-us-submit").pngfix();
	}
	
	$('input[type="text"], textarea').focus(function() {  
        $(this).addClass("input-focus");  
    });
    
    $('input[type="text"], textarea').blur(function() {  
        $(this).removeClass("input-focus");  
    });   
    /*
    // Attach focus/blur events, and init with the onblur event 
    $("#contact-us-name").focus(function () {
    	clearIfDefValue($(this), nameInputDefaultValue);
    }).blur(function () {
        setDefaultValue($(this), nameInputDefaultValue);
    }).blur();
    // Attach focus/blur events, and init with the onblur event 
    $("#contact-us-phone-or-email").focus(function () {
    	clearIfDefValue($(this), phoneOrEmailInputDefaultValue);
    }).blur(function () {
        setDefaultValue($(this), phoneOrEmailInputDefaultValue);
    }).blur();
    // Attach focus/blur events, and init with the onblur event 
    $("#contact-us-comments").focus(function () {
    	clearIfDefValue($(this), commentsInputDefaultValue);
    }).blur(function () {
        setDefaultValue($(this), commentsInputDefaultValue);
    }).blur();
	*/
    $("#contact-us-subject").focus();
    
    
    /*
    $("#contact-us-form").submit(function () {
    	if ($("#contact-us-name").val() == nameInputDefaultValue) {
    		$("#contact-us-name").attr("value", "");
    	}
    	if ($("#contact-us-phone-or-email").val() == phoneOrEmailInputDefaultValue) {
    		$("#contact-us-phone-or-email").attr("value", "");
    	}
    	if ($("#contact-us-comments").val() == commentsInputDefaultValue) {
    		$("#contact-us-comments").attr("value", "");
    	}
    });
    */
    
    // Handle click on submit button
	$("#contact-us-submit").click(function (e) {
		e.preventDefault();
		// validate form
		if (validate()) {
			// Submit
			$("#contact-us-form").submit();
		}
	});
    
    
    /*
	// Validate the form on submit
	$("#contact-us-form").validate({
		// Define validation to the appropriate fields
		rules: {
			firstName: "required",
			phoneOrEmail: "required",
			comments: "required"
		},
		messages: {
			firstName: "Required",
			phoneOrEmail: "Required",
			comments: "Required"
		},
		onfocusout: false,
		onkeyup: false,
		onclick: false,
		/*errorClass: "field-validation-error",*//*
		errorElement: "span",
		// Group the validation of first/last name
		errorPlacement: function(error, element) {
			error.insertAfter(element).addClass("field-validation-error");
			//$('<span></span>').insertAfter(element).addClass("xxx");
	   }
	});
	*/
	
	// When the first option (which is a prompt) is selected, add a 'prompt' class. Otherwise, remove it
	/*
	$("#contact-us-subject").change(function () {
        
        if ($("#contact-us-subject option:selected").is(":first-child")) {
        	$(this).addClass("input-prompt-text");
        }
        else {
        	$(this).removeClass("input-prompt-text");
        }
        
      })
      */
});

function validate() {
	var valid = true;

	var name = $("#contact-us-name");
	// Clear old validation messages
	name.parent().next().removeClass("field-validation-visible").removeClass("field-validation-visible-contact-us");
	valid = validateMandatoryField(name, name.parent().next(), "field-validation-visible-contact-us");
	
	var phoneOrEmail = $("#contact-us-phone-or-email");
	// Clear old validation messages
	phoneOrEmail.parent().next().removeClass("field-validation-visible");
	phoneOrEmail.parent().next().next().removeClass("field-validation-visible");
	var isPhoneOrEmailValid = validateMandatoryField(phoneOrEmail, phoneOrEmail.parent().next(), null);
	if (isPhoneOrEmailValid) {
		if (phoneOrEmail.val().indexOf("@") > 0) {
			// Validate email
			isPhoneOrEmailValid = validateEmailField(phoneOrEmail, phoneOrEmail.parent().next().next().next(), null);
			// Remove visibility from phone error (if exist)
			phoneOrEmail.parent().next().next().removeClass("field-validation-visible");
			phoneOrEmail.parent().next().next().removeClass("field-validation-visible-contact-us");

		}
		else {
			// Validate phone number
			isPhoneOrEmailValid = validatePhoneField(phoneOrEmail, phoneOrEmail.parent().next().next(), null, phoneLengths);
			// Remove visibility from email error (if exist)
			phoneOrEmail.parent().next().next().next().removeClass("field-validation-visible");
			phoneOrEmail.parent().next().next().next().removeClass("field-validation-visible-contact-us");
		}
		
	}
	// If still valid, set according to validation of phone/email
	if (valid) {
		valid = isPhoneOrEmailValid;	
	}

	var comment = $("#contact-us-comments");
	// Clear old validation messages
	comment.parent().next().removeClass("field-validation-visible").removeClass("field-validation-visible-contact-us");
	var isCommentValid  = validateMandatoryField(comment, comment.parent().next(), "field-validation-visible-contact-us");
	// If still valid, set according to validation of comment
	if (valid) {
		valid = isCommentValid;	
	}
	
	
	return valid;
}