function showForm(args){
  $("#f_overlay").show().fadeTo(1,0.2).fadeTo('slow',0.7);
	$('#overlay_form').empty();
	$('#overlay_response').hide();
	$('#overlay_inner').show();
	$('#overlay_form').load('/forms.php',args,function(){
		if(args['form']=='contact'){
			$("#contactForm").ajaxForm({
				target: '#overlay_response',
				beforeSubmit: sendto_validate,
				success: response
			});
		}else if(args['form']=='sendto'){
			$("#sendtoForm").ajaxForm({
				target: '#overlay_response',
				beforeSubmit: contact_validate,
				success: response
			});
		}else if(args['form']=='edit_contact'){
			$("#contactForm").ajaxForm({
				target: '#overlay_response',
				beforeSubmit: add_validate,
				success: response
			});
		}else if(args['form']=='delete_contact'){
			$("#contactForm").ajaxForm({
				target: '#overlay_response',
				success: response
			});
		}
		$('#overlay_form').slideDown();
	});
	return false; //prevent jumping
}
function hideForm(){
	$('#overlay_inner').slideUp();
  $('#overlay_form').empty();
  $('#overlay_response').empty();
  $("#f_overlay").fadeOut();
	return false; //prevent jumping
}
function trim(input){
	var s = input.replace(/^(\s)*/, '');
	s = s.replace(/(\s)*$/, '');
	return s;
}
function contact_validate(formData, jqForm, options){
	var emailCheck = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var nameCheck  = /^([a-zA-Z\'\-\.,0-9\/+#()\\ ])+$/;
	var success = true;
	$('#overlay_response').empty().append('<ul id="response_errors"></ul>').slideUp();
	if(trim($('#toName').val()).length == 0){
		$('#response_errors').append('<li><span class="error">Recipient Name is required.</span></li>');
    		success = false;
	}else if (!nameCheck.test($('#toName').val())){
		$('#response_errors').append('<li><span class="error">Recipient Name can only contain alphanumeric characters, or -.,+()\\/</span></li>');
    		success = false;
	}
	if(trim($('#toEmail').val()).length == 0){
		$('#response_errors').append('<li><span class="error">Recipient email address is required.</span></li>');
    		success = false;
	}else if (!emailCheck.test($('#toEmail').val())){
		$('#response_errors').append('<li><span class="error">Please enter a correct recipient email address.</span></li>');
    		success = false;
	}
	if(trim($('#fromName').val()).length == 0){
		$('#response_errors').append('<li><span class="error">Sender Name is required.</span></li>');
    		success = false;
	}else if (!nameCheck.test($('#fromName').val())){
		$('#response_errors').append('<li><span class="error">Sender Name can only contain alphanumeric characters, or -.,+()\\/</span></li>');
    		success = false;
	}
	if(trim($('#fromEmail').val()).length == 0){
		$('#response_errors').append('<li><span class="error">Sender email address is required.</span></li>');
    		success = false;
	}else if (!emailCheck.test($('#fromEmail').val())){
		$('#response_errors').append('<li><span class="error">Please enter a correct sender email address.</span></li>');
    		success = false;
	}
	if(!success)
		$('#overlay_response').slideDown();
	return success;
}

function response(data){
	$('#overlay_form').slideUp();
	$("#overlay_response").height(300).slideDown();
}

function sendto_validate(formData, jqForm, options){
	var emailCheck = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var nameCheck  = /^([a-zA-Z\'\-\.,0-9\/#+()\\ ])+$/;
	var success = true;
	$('#overlay_response').empty().append('<ul id="response_errors"></ul>').slideUp();
	if(trim($('#fromName').val()).length == 0){
		$('#response_errors').append('<li><span class="error">First Name is required.</span></li>');
    		success = false;
	}else if (!nameCheck.test($('#fromName').val())){
		$('#response_errors').append('<li><span class="error">First Name can only contain alphanumeric characters, or -.,+()\\/</span></li>');
    		success = false;
	}
	if(trim($('#fromEmail').val()).length == 0){
		$('#response_errors').append('<li><span class="error">Email address is required.</span></li>');
    		success = false;
	}else if (!emailCheck.test($('#fromEmail').val())){
		$('#response_errors').append('<li><span class="error">Please enter a correct email address.</span></li>');
    		success = false;
	}
	if(trim($('#message').val()).length == 0){
		$('#response_errors').append('<li><span class="error">Message is required.</span></li>');
    		success = false;
	}
	if(!success)
		$('#overlay_response').slideDown();
	return success;
}

function checkName(field,name){
	var nameCheck  = /^([a-zA-Z\'\-\.,0-9\/#&+()\\ ])+$/;
	if(trim($('#'+field).val()).length == 0){
		$('#response_errors').append('<li><span class="error">'+name+' is required.</span></li>');
    		return false;
	}else if (!nameCheck.test($('#'+field).val())){
		$('#response_errors').append('<li><span class="error">'+name+' can only contain alphanumeric characters, or -.,+()\\/</span></li>');
    		return false;
	}
	return true;
}

function add_validate(formData, jqForm, options){
	var emailCheck = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var success = true;
	$('#overlay_response').empty().append('<ul id="response_errors"></ul>').slideUp();
	if(!checkName('name','Contact Name')) success = false;
	if(trim($('#mail').val()).length == 0){
		$('#response_errors').append('<li><span class="error">Email address is required.</span></li>');
    		success = false;
	}else if (!emailCheck.test($('#mail').val())){
		$('#response_errors').append('<li><span class="error">Please enter a correct email address.</span></li>');
    		success = false;
	}
	if(!checkName('title','Title')) success = false;
	if(!checkName('phone','Phone number')) success = false;
	if(!checkName('address','Address')) success = false;
	if(!checkName('city','City')) success = false;
	if(!checkName('state','State')) success = false;
	if(!checkName('zip','Zip')) success = false;	
	if(!success)
		$('#overlay_response').slideDown();
	return success;
}
