$(document).ready(function() {

 // hides the emailbox as soon as the DOM is ready (a little sooner that page load)
  $('#emailbox').hide();
  
 // shows and hides and toggles the emailbox on click  
  $('#email-show').click(function() {
    $('#emailbox').show('slow');
    return false;
  });
  $('#email-hide').click(function() {
    $('#emailbox').hide('fast');
    return false;
  });
  $('#email-toggle').click(function() {
    $('#emailbox').toggle(400);
    return false;
  });

 // slides down, up, and toggle the emailbox on click    
  $('#email-down').click(function() {
    $('#emailbox').slideDown('slow');
    return false;
  });
  $('#email-up').click(function() {
    $('#emailbox').slideUp('fast');
    return false;
  });
  $('#email-slidetoggle').click(function() {
    $('#emailbox').slideToggle(400);
    return false;
  });
  
 // function to check validity of email address
function echeck(str) {
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
	   return false
	}
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   return false
	}
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		return false
	}
	if (str.indexOf(at,(lat+1))!=-1){
		return false
	}
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		return false
	}
	if (str.indexOf(dot,(lat+2))==-1){
		return false
	}
	if (str.indexOf(" ")!=-1){
		return false
	}
	return true					
}

	 $(".send").click(function() {
	 
		// validate and process form
		// first hide any error messages
		$('#msgbox').hide();
		
		// submission url
		var post_submission_url = $("input#post_submission_url").val();

		// form field details
		var sender_name = $("input#sender_name").val();
		var recipient_name = $("input#recipient_name").val();
		var recipient_email = $("input#recipient_email").val();
		var summary_message = $("textarea#summary_message").val();
		
		// field details which are sent but set internally
		var link = $("input#link").val();
		
		if (sender_name == "") {
			$("div#msgbox").show();
			$("div#msgbox").html("Please enter your name");
			$("input#sender_name").focus();
			return false;
		}
		if (recipient_name == "") {
			$("div#msgbox").show();
			$("div#msgbox").html("Please enter recipients name");
			$("input#recipient_name").focus();
			return false;
		}
		if ((recipient_email == null)||(recipient_email == "")) {
			$("div#msgbox").show();
			$("div#msgbox").html("Please enter recipients email address");
			$("input#recipient_email").focus();
			return false;
		}
		if (echeck(recipient_email) == false) {
			$("div#msgbox").show();
			$("div#msgbox").html("Recipients email address is invalid");
			$("input#recipient_email").focus();
			return false
		}

		var dataString = 'sender_name='+sender_name+'&recipient_name='+recipient_name+'&recipient_email='+recipient_email+'&summary_message='+summary_message+'&link='+link;

		//alert(dataString);
		//alert(post_submission_url);
		
			$.ajax({
				type: "POST",
				url: post_submission_url,
				data: dataString,
				beforeSend: function() {
					$("div#msgbox").fadeIn(1000).show();
					$("div#msgbox").html("Sending ...");
					$("div#msgbox").css({'border-color' : 'green'});
				},
				timeout: 3000,
				error: function() {
					$("div#msgbox").html("Sorry internal error.\r\n\r\nPlease try again later.");
					$("div#msgbox").fadeOut(3000);
				},
				success: function(success) {
					$("div#msgbox").html("Your email has been sent to " + recipient_name + "");
					// $("div#msgbox").fadeOut(3000);
					$('div#emailbox').fadeOut(5000);
				}
				
			});
			return false;

	});
  
});

