var fancyBackup;

function backupInlineContent(){
    fancyBackup = $("#e_material_form").html();
}

function restoreInlineContent(){
    $("#e_material_form").append( fancyBackup );
}

function fancyBoxShow(){
    $("#e_material_form").empty();
    $("#fancy_content .can_have_error").focus(function(){
		$(this).css('background','White');
	});
	
    // the element in which we will observe all clicks and capture
    // ones originating from AJAX submit button
    var submit = $(".greenSubmit");
    if (submit) {
        submit.click(function() {
            //console.log(validate_form($('#greenForm')));
            if(validate_form($('#greenForm'))){
                $.post(
                    $('#greenForm').attr('action'),
                    $('#greenForm').serialize(),
                    function(xml){
                        $('#green_submit_result').html($(xml).find('response').text());
                        $.fn.fancybox.close();
                    }
                );
            }
            return false;
        });
    }
}

function openResultBox(){
    if($("#green_submit_result").html().trim() != ""){
        $("#inline_result").click();
    }
}

function clearResult(){
    $("#green_submit_result").html("");
}

function validate_form(form){
	valid = true;
	error = "";
	error = validateName(form.find("input[name='first_name']"));
	if(error!=""){
		$("#fn_error").html(error);
		valid=false;
	}else{
		// clear error
		$("#fn_error").html("");
	}
	error = validateName(form.find("input[name='last_name']"));
	if(error!=""){
		//last_name.focus();
		$("#ln_error").html(error);
		valid=false;
	}else{
		// clear error
		$("#ln_error").html("");
	}
	
	error = validateEmail(form.find("input[name='email']"));
	if (error!=""){
		$("#email_error").html(error);
		//email.focus();
		valid=false;
	}else{
		// clear error
		$("#email_error").html("");
	}
	return valid;
}

function trim(s){
  return s.replace(/^\s+|\s+$/, '');
}

function validateEmail(fld){
    var error="";
    var tfld = trim(fld.val());                        // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;

    if (tfld == "") {
        fld.css('background-color','#FFCCCC');
        //error = "You didn't enter an email address.\n";
		error = "This field is required.";
    } else if (!emailFilter.test(tfld)) {              //test email for illegal characters
        fld.css('background-color','#FFCCCC');
        error = "Invalid Email address.";
    } else if (tfld.match(illegalChars)) {
        fld.css('background-color','#FFCCCC');
        error = "Email contains illegal characters.\n";
    } else {
        fld.css('background-color','white');
    }
    return error;
}

// field_name should be "first name" or "last name"
function validateName(fld){
    var error="";
    var tfld = trim(fld.val());                        // value of field with whitespace trimmed off
    if (tfld == "") {
        fld.css('background-color','#FFCCCC');
        error = "This field is required.";
    }else {
        fld.css('background-color','white');
    }
    return error;
}
