//
function initEmailToAFriend(){
    $('#emailToAFriendPromo a').click(function(){
       $('#emailFormContainer').toggle();
       $('#emailToAFriendPromo a').toggleClass('on');
    });
}
/** FORMS **/
var ERROR_MSG='There are errors with the form. Please fill in all required fields correctly and make sure emails are formatted correctly.';
var PROCESS_ERROR='Sorry, but there was an error processing your request. Please refresh the page and try again. ';
var TIMEOUT_ERROR='Sorry, but your request timed out. Please refresh the page and try again. ';
var ERROR_MSG_CLASS='.errorMessage';
var ERROR_CLASS='error';
var POST_PAGE='/forms/';
var SUBMIT_MSG='SUBMIT';
var SENDING_MSG='SENDING...';

var EMAIL_ID="#contact_email_address";
var FORM_ID="#contactForm";
var NAME_ID="#contact_name";
var MESSAGE_ID="#contact_message";
var SUBMIT_BTN="#sendEmail";

function checkForm(id){
	var canSubmit=true;
	$(id + ' .required').each(function(e){
		if (this.value == '' || !validateEmail(this)) {
			canSubmit = false;
			$(this).addClass(ERROR_CLASS);
			throwError(ERROR_MSG, id);
		}
	});
	return canSubmit;
}
function clearError(e){
	$(this).removeClass(ERROR_CLASS);
}
function submitForm(formId, action){
	if(!checkForm(formId)) return false;
	
	$(SUBMIT_BTN).unbind('click');
	$(SUBMIT_BTN).html(SENDING_MSG);
	
	var data= {email:$(EMAIL_ID).val(), name:$(NAME_ID).val(), message:escape($(MESSAGE_ID).val())};
	$.getJSON(POST_PAGE+action,data,function(data){
	    onSubmitComplete(data, formId);
	});
}
function throwError(msg, formId){
    $(formId + ' ' + ERROR_MSG_CLASS).html(msg);
}
function validateEmail(field) {
	if(field.id.indexOf('email') < 0) return true;
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test($.trim(field.value))) return true;
	return false;
}
function validateField(e){
	if ($.trim(this.value) == '' || !validateEmail(this)) $(this).addClass(ERROR_CLASS);
}
/* EVENT HANDLERS */
function onError(e){throwError(PROCESS_ERROR+e.error)}
function onSubmitComplete(e, formId){
	if (e.success == 1) {
	    $(formId).html(e.message);
	} else {
	    initForm();
	    throwError(e.error, formId);
	}
}
function onTimeOut(e, formId){throwError(TIMEOUT_ERROR, formId);}


/** WINDOW ONLOAD **/
$(document).ready(function(){
    initEmailToAFriend();
});