/*
 *  Ajax Mail To A Friend Script
 *  By Ben Griffiths
 *  06/09/2006
 */

// tracker variables needed to keep track of elements style information
var mailFormVisible = false;
var responseContainerVisible = false;
var numberRecipients = 1;

function toggleMailForm(element_ID,blogEntryId) {
	
	var form = document.getElementById(element_ID);

		// ensure response isn't visible, reset the number of recipients to one and clear the form
	
	if(responseContainerVisible) {
		
		toggleResponseContainer(blogEntryId);
	}
	for(i=2; i<=numberRecipients; i++) {
		document.getElementById("recipient" + i + blogEntryId).style.display = "none";
	}
	numberRecipients = 1;
	clearForm(form);
	
	if (mailFormVisible) {
		form.style.display = "none";
		document.getElementById("mailtofriendboxtop" + blogEntryId).style.display = "none";
		document.getElementById("mailtofriendboxbottom" + blogEntryId).style.display = "none";
		mailFormVisible = false;
	}
	else {
		form.style.display = "block";
		document.getElementById("mailtofriendboxtop" + blogEntryId).style.display = "block";
		document.getElementById("mailtofriendboxbottom" + blogEntryId).style.display = "block";
		mailFormVisible = true;
	}
}

function toggleResponseContainer(blogEntryId) {
	var responseContainer = document.getElementById("responseContainer" + blogEntryId);

	if (responseContainerVisible) {
		responseContainer.style.display = "none";
		responseContainerVisible = false;
	}
	else {
		responseContainer.style.display = "block";
		responseContainer.innerHTML = "";
		responseContainerVisible = true;
	}
}

function clearForm(form) { 

	var elm;
	elements = form.getElementsByTagName('input');
	for( i=0, elm; elm=elements.item(i++); )
	{
		if (elm.getAttribute('clear') == "true")
		{
			elm.value = '';
		}
	}
}

function addRecipient (blogEntryId) {
	if (numberRecipients < 5) {
		numberRecipients++;
		document.getElementById("recipient" + numberRecipients + blogEntryId).style.display = "block";
	}
}

function removeRecipient (blogEntryId) {
	if (numberRecipients > 1) {
		document.getElementById("recipient" + numberRecipients + blogEntryId).style.display = "none";
		numberRecipients--;
	}
}

// ajax based script for submitting form

var http_request_staf = false;
var submit_OK = true;
var error_string = "";

function sendRequest(blogEntryId) {
	var requestParams =
		"$receiverName$=" + escape(recieverNameArray) + "&" +
		"$receiverAddress$=" + escape(recieverEmailArray) + "&" +
		"error=" + escape(errorAddress) + "&" +
		"success=" + escape(successAddress) + "&" +
		"$subject$=" + escape(emailSubject) + "&" +
		"body=" + escape(emailBody) + "&" +
		"$senderName$=" + escape(senderName) + "&" +
		"$senderAddress$=" + escape(senderEmail);
	
	var pic1= new Image(1,1); 
	pic1.src="/email/prepareMailServlet?" + requestParams;
	
	toggleMailForm("mailFriendContainer" + blogEntryId,blogEntryId);
	toggleResponseContainer(blogEntryId);
	document.getElementById("responseContainer" + blogEntryId).innerHTML = "<h3 class='mailFriendResponse'>Your message has been sent</h3>"
}


// email validation script

var recieverNameArray = "";
var recieverEmailArray = "";
var senderName = "";
var senderEmail = "";
var senderMessage = "";

// error and success response pages

var errorAddress = "/fansite/resources/sendtoafriend/error.html";
var successAddress = "/fansite/resources/sendtoafriend/success.html";

// Email subject and body text can be changed here

var emailSubject = "";
var emailBody = "";

function sendEmails(blogEntryId) {
	submit_OK = true;
	error_string = "";
	recieverNameArray = "";
	recieverEmailArray = "";
	
	validateAddresses(blogEntryId);
	
	if(submit_OK) {
		buildEmailStrings(blogEntryId);
		sendRequest(blogEntryId);
	} else {
		alert(error_string);
	}
		
	return false;
}

function validateAddresses(blogEntryId) {
	
	if (document.getElementById("senderName" + blogEntryId).value == "") {
		submit_OK = false;
		error_string += emailValidTxt1 + "\n";
	}
	
	if (!validEmailAddress(document.getElementById("senderEmail" + blogEntryId).value)) {
		submit_OK = false;
		error_string += emailValidTxt2 + "\n";
	}
	
	for (i=1; i<=numberRecipients; i++) {
		if (document.getElementById("recipientName_" + i + blogEntryId).value == "") {
			submit_OK = false;
			error_string += emailValidTxt3 + " " + i + "\n";
		}
		if (!validEmailAddress(document.getElementById("recipientEmail_" + i + blogEntryId).value)) {
			submit_OK = false;
			error_string += emailValidTxt4 + " " + i + "\n";
		}
	}
	
}

	// valid and invalid regular expressions for validating email addresses

var invalid = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;
var valid = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;

function validEmailAddress(emailAddress) {
  if (!invalid.test(emailAddress) && valid.test(emailAddress)) {
    return true;
  }
  else {
  	return false;
  }
}

function buildEmailStrings(blogEntryId) {
	
	for (i=1; i<=numberRecipients; i++) {
		recieverNameArray += document.getElementById("recipientName_" + i + blogEntryId).value + "||||";
		recieverEmailArray += document.getElementById("recipientEmail_" + i + blogEntryId).value + "||||";
	}
	
	senderName = document.getElementById("senderName" + blogEntryId).value;
	senderEmail = document.getElementById("senderEmail" + blogEntryId).value;
	senderMessage = document.getElementById("senderMessage" + blogEntryId).value;
	
	if (IncludeTypePadTags) {
		senderUrl = document.getElementById("dni-blogs-staf-entry-url-" + blogEntryId).innerHTML;
		senderUrl = senderUrl.replace(/%3A/g, ":");
		senderUrl = senderUrl.replace(/%2F/g, "/");
	}
	else {
		senderUrl = location.href;
	}
	
	emailSubject = senderName + " " + emailBodySubject;
	
	emailBody = "";
	emailBody += "<span style='font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; color: #082F57; font-size: 12px; text-decoration: none;'>";
	emailBody += "<p>" + "$receiverName$" + ",</p>";
	emailBody += "<p>" + senderName +" "+ emailBodyTxt1 +".</p>";
	emailBody += "<p><a href='" + senderUrl + "' target='_blank'>" + emailBodyTxt2 + "</a> " + emailBodyTxt3 + ".</p>";
	emailBody += "<p>" + senderUrl + "</p>";

	if (senderMessage != "") {
		emailBody += "<p>" + emailBodyTxt4 + ": " + senderMessage + "</p>";
	}
	emailBody += "</span>";

	
}


