function init(){

	// INITIAL STATES
	$('#feedback-body').show(500);
	$('#feedback-form').hide(500);
	$("#feedback-sent").hide(500);
	$("#feedback-cancel").hide(500);
	$("#feedback-send").hide(500);
	$("#in_submit").hide(0);

	$("#feedback-expand").click( function() {
		$('#feedback-body').hide(500);
		$('#feedback-form').show(500);
		$('#feedback-cancel').show(500);
		$('#feedback-send').show(500);
		$("#feedback-sent").hide(500);
		/* $("#body_id").val(""); */
		// scroll to bottom of suggestion form
		var targetOffset = $("#feedback-form").offset().top + $("#feedback-form").innerHeight();
		$('html,body').animate({scrollTop: targetOffset}, 1000);
		
		return false;
	});
	$("#feedback-cancel").click( function() {
		$('#feedback-body').toggle(500);
		$('#feedback-form').toggle(500);
		$('#feedback-cancel').toggle(500);
		$('#feedback-send').toggle(500);
		return false;
	});

	function submitSuggestionForm() {
		$("#suggestionForm").submit();
		return false;
	}

	$("#feedback-send").click(submitSuggestionForm);

	$("#suggestionForm").submit(function() {
		if (checkSuggestion()) {
			$("#feedback-send span").text("Sending...");
			$("#feedback-send").unbind("click", submitSuggestionForm);
			$.ajax({
				type: $(this).attr("method"),
				url: $(this).attr("action"),
				data: "emailUser=" + this.emailUser.value + "&suggestionBody=" + this.suggestionBody.value + "&emailName=" + this.emailName.value ,
				success: function(){
					$("#feedback-send span").text("Send");
					$('#feedback-body').toggle(500);
					$('#feedback-form').hide(500);
					$('#feedback-expand').hide(0);
					$("#feedback-body").prepend("<div id='mailSent'><h4>Thank you!</h4>Your email was successfully sent. We appreciate your feedback!</div>");
					$("#feedback-send").bind("click", submitSuggestionForm);
				}
			});
		}	
		return false;
	});
	
}

$(document).ready(init);

//displays an error message relating to the element
function displayError(element,message) {
	var errorMsg = "<span class='error_message'>" + message + "</span>";
	$(element).parent("p").append(errorMsg).attr('class','error_wrap');
}

function checkSuggestion() {

		var bool=true;
		var success=true;
		var currentElement = "";
		var msg = "";		
		
		// clear all error messages
		$("#suggestionForm .error_message").remove();
		$("#suggestionForm p").removeClass("error_wrap");		

		currentElement = $('#name_id').val();
		bool = true;
		if (currentElement == '') {
			bool = false;
			msg = "Please enter your name!";
		} 
		if (!bool) {
			displayError("#name_id",msg);
			success=false;
		}

		if ($('#email_id').attr("disabled") != "disabled") {
			currentElement = $('#email_id').val();
			currentElement = currentElement.replace(/^\s+|\s+$/g,'');
			$('#email_id').attr("value",currentElement);
			
			if (currentElement == '') {
				bool = false;
				msg = "Please input an email address!";
			} 
			else {
				if(checksugemail(currentElement)){
					bool=true;
				} 
				else {
					bool=false;
					msg = "Please input a valid email address!"
				}
			}
			if (!bool) {
				displayError("#email_id",msg);
				success=false;
			}
		}

		currentElement = $('#body_id').val();
		bool = true;
		if (currentElement == '') {
			bool = false;
			msg = "Please enter a message!";
		} 
		if (!bool) {
			displayError("#body_id",msg);
			success=false;
		}
		
		if(success) {
			return true;
		}
		else return false;
	}			

	//validate email
	function checksugemail(email) {
		//var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
		//var filter = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
		//var filter = /^[a-zA-Z0-9\.-_]{1,}\@([0-9a-zA-Z-]{1,}\.){1,}[0-9a-zA-Z-]+$/;	
		var filter = /^((([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 (filter.test(email))
			testresults=true;
		else {		
			testresults=false;
		}
		return (testresults)
	} //end validate email

 

