// JavaScript Document
$(document).ready(function(){	
	$('#errors').hide();
	//add submit function to form.  
	$('#frmStory').submit(function () { 
	  $errors = validate();
	  if ($error) {
		$('#errors').show();
		return false;
	  }else{
		return true;  
	  }
	});
});

//validate form
function validate(){
	$error = false;
	$('#lblEmailError').html('');
	$('#lblZipError').html('');
	$('#lblPhoneError').html('');
	
	$fname = jQuery.trim($('#fname').val());
	if($fname==null || $fname==""){
		$error = true;
		$('#fname').addClass('inputError');
	}else{
		$('#fname').removeClass('inputError');	
	}
	
	$lname = jQuery.trim($('#lname').val());
	if($lname==null || $lname==""){
		$error = true;
		$('#lname').addClass('inputError');
	}else{
		$('#lname').removeClass('inputError');
	}
	
	$emp = jQuery.trim($('#emp').val());
	if($emp==null || $emp==""){
		$error = true;
		$('#emp').addClass('inputError');
	}else{
		$('#emp').removeClass('inputError');
	}
	
	$job = jQuery.trim($('#job').val());
	if($job==null || $job==""){
		$error = true;
		$('#job').addClass('inputError');
	}else{
		$('#job').removeClass('inputError');	
	}
	
	$relation = jQuery.trim($('#relation').val());
	if($relation==null || $relation==""){
		$error = true;
		$('#relation').addClass('inputError');
	}else{
		$('#relation').removeClass('inputError');
	}
	
	$rep = jQuery.trim($('#rep').val());
	if($rep==null || $rep==""){
		$error = true;
		$('#rep').addClass('inputError');
	}else{
		$('#rep').removeClass('inputError');
	}
	
	$story = jQuery.trim($('#story').val());
	if($story==null || $story==""){
		$error = true;
		$('#story').addClass('inputError');
	}else{
		$('#story').removeClass('inputError');	
	}
	
	$street = jQuery.trim($('#street').val());
	if($street==null || $street==""){
		$error = true;
		$('#street').addClass('inputError');
	}else{
		$('#street').removeClass('inputError');
	}
	
	$city = jQuery.trim($('#city').val());
	if($city==null || $city==""){
		$error = true;
		$('#city').addClass('inputError');
	}else{
		$('#city').removeClass('inputError');
	}
	
	$state = jQuery.trim($('#state').val());
	if($state==null || $state==""){
		$error = true;
		$('#state').addClass('inputError');
	}else{
		$('#state').removeClass('inputError');	
	}
	
	$zip = jQuery.trim($('#zip').val());
	if($zip==null || $zip==""){
		$error = true;
		$('#zip').addClass('inputError');
	}else if(!checkZip($zip)){ 
		$error = true;
		$('#zip').addClass('inputError');
		$('#lblZipError').html('A vaild Zip Code is required');
	}else{
		$('#zip').removeClass('inputError');
	}
	
	$email = jQuery.trim($('#email').val());
	if($email==null || $email==""){
		$error = true;
		$('#email').addClass('inputError');
	}else if(!checkEmail($email)){
		$error = true;
		$('#email').addClass('inputError');
		$('#lblEmailError').html('A vaild Email Address is required');
	}else{
		$('#email').removeClass('inputError');
	}
	
	$phone = jQuery.trim($('#phone').val());
	if($phone==null || $phone==""){
		$error = true;
		$('#phone').addClass('inputError');
	}else if(!checkPhone($phone)){
		$error = true;
		$('#phone').addClass('inputError');
		$('#lblPhoneError').html('A vaild Phone Number is required');
	}else{
		$('#phone').removeClass('inputError');
	}
	
	return $error;
}


//Utiltiy function to check the email using a regex
function checkEmail(inputvalue){	
    var pattern=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i;
	
    if(pattern.test(inputvalue)){  
		return true;   
    }else{   
		return false; 
    }
}

function checkPhone(inputvalue){
	var pattern=/\(?\d{3}\)?([-\/\.])\d{3}\1\d{4}/;
	
	if(pattern.test(inputvalue)){  
		return true;   
    }else{   
		return false; 
    }
}

function checkZip(inputvalue){
	var pattern = /(^\d{5}$)|(^\d{5}-\d{4}$)/;
		
	if(pattern.test(inputvalue)){  
		return true;   
    }else{   
		return false; 
    }
}

function counterUpdate() {
        var maxSize = 500;
		var curLen = $('#story').val().length;
		
		var remaining = 500 - parseInt(curLen);
		if(remaining >= 0){
			$('#characters').html(remaining);
		}else{
		    $('#characters').html('0');	
		}
		
        if (curLen >= maxSize) {
                $('#story').val($('#story').val().substring(0, maxSize));
        }
}
