$(document).ready(function(){

	$("#suggestion-content").dialog({
		autoOpen: false,
		width: 600,
		modal: true,
		resizable: false,
		draggable: false,
		title: "Feedback and Support",
		close: function(){
			$('.unhideThis').removeClass('unhideThis').css('visibility', 'visible');
		},
		buttonWrap : "<a href='#' class='button'></a>",
		buttons: {
			"<span id='send-suggestion'>Send</span>": {
				buttonClass: "button-blue",
				action: function(e) {
					var button = $("#send-suggestion");
					var domain = window.location.protocol + "//" + /:\/\/([^\/]+)/.exec(window.location.href)[1] + "/actions/send-suggestion";
					if (checkSuggestion()) {
						$.ajax({
							type: $("#suggestionForm").attr("method"),
							url: domain,
							data: $("#suggestionForm").serialize(),
							beforeSend: function(){
								button.text("Sending...");
							},
							success: function(){},
							error: function() {},
							complete: function() {
								$("#suggestionForm").toggle(500);
								$("#suggestBox").prepend("<div id='mailSent'>Thank you, the email was successfully sent!</div>");
								$("#send-suggestion").parent().hide();
								button.text("Send");
							}
						});
					}
					return false;
				}
			},
			"<span>Close</span>": {
				buttonClass:"button-gray",
				action: function() {
					$(this).dialog('close');
					return false;
				}
			}
		}
	});

	$("#feedback-button a").click(function(){
		$("#suggestionForm").show();
		$("#mailSent").remove();
		$("#send-suggestion").parent().show();
		$("#suggestion-content").dialog("open");
		$('embed:visible, object:visible').addClass('unhideThis').css('visibility', 'hidden');
		return false;
	});

});

//displays an error message relating to the element
function displayError(element,message) {
	var errorMsg = "<span class='error_message'>" + message + "</span>";
	$(element).parent("p").prepend(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 = $('#subject_id').val();
	if (currentElement == '1') {
		bool = false;
		msg = "Please select a subject!";			
	} 
	if (!bool) {
		displayError("#subject_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 = /^((([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