//------------------------------------------------------------------------------
// Class:  EmailToFriend
//------------------------------------------------------------------------------
// Author:  CL
// Date:  2007/06/27
// Description:  This class defines the functions used by the Email To Friend section.
//------------------------------------------------------------------------------

function EmailToFriend()
{
	// Variables:
	var maxMsgLength = 4000;
	
	//--------------------------------------------------------------------------

	// Methods:
	this.updateCharCount = updateCharCount;
	this.preview = preview;
	this.send = send;
	this.regenerate = regenerate;
	this.escapeHTML = escapeHTML;

	//--------------------------------------------------------------------------
	function escapeHTML(str)
	{
		var div = document.createElement('div');
		var text = document.createTextNode(str);
		div.appendChild(text);
		return div.innerHTML;
	}

	//--------------------------------------------------------------------------
		
	function updateCharCount(textarea, alertField)
	{
		if (textarea.value.length > maxMsgLength)
		{
			textarea.value = textarea.value.substr(0, maxMsgLength);
			alertField.value = maxMsgLength - textarea.value.length;
		}
		else
		{
			alertField.value = maxMsgLength - textarea.value.length;
		}
	}
	
	//--------------------------------------------------------------------------

	function preview(idString)
	{
		var sYourEmail = document.frmEmailToFriend.senderEmail.value;
		var sTheirEmail = document.frmEmailToFriend.recipientEmail.value;
		var sSubject = document.frmEmailToFriend.subject.value;
		
		/*if((!((sYourEmail.length == 0) || (sYourEmail.match(/^\s+$/))))
			&& (!((sTheirEmail.length == 0) || (sTheirEmail.match(/^\s+$/))))
			&& (!((sSubject.length == 0) || (sSubject.match(/^\s+$/))))
		)
		{*/
			theElement = document.getElementById(idString);
			
			if (theElement.style.display == "none")
			{
				theElement.style.display = "block";
			}
			
			document.getElementById('emailPreviewSenderName').innerHTML = this.escapeHTML(document.frmEmailToFriend.senderName.value);
			document.getElementById('emailPreviewSenderEmail').innerHTML = this.escapeHTML(document.frmEmailToFriend.senderEmail.value);
			document.getElementById('emailPreviewRecipientName').innerHTML = this.escapeHTML(document.frmEmailToFriend.recipientName.value);
			document.getElementById('emailPreviewRecipientEmail').innerHTML = this.escapeHTML(document.frmEmailToFriend.recipientEmail.value);
			document.getElementById('emailPreviewSubject').innerHTML = this.escapeHTML(document.frmEmailToFriend.subject.value);
			document.getElementById('emailPreviewUserMessage').innerHTML = this.escapeHTML(document.frmEmailToFriend.message.value);
		/*}
		else
		{
			document.getElementById('frmErr').style.display = "block";
			document.getElementById('frmErr').innerHTML = "Please enter your email, recipient email and the subject before Preview.";
		}
		*/
	}
	
	//--------------------------------------------------------------------------

	function send()
	{
		var sYourEmail = document.frmEmailToFriend.senderEmail.value;
		var sYourName = document.frmEmailToFriend.senderName.value;
		var sTheirEmail = document.frmEmailToFriend.recipientEmail.value;
		var sTheirName = document.frmEmailToFriend.recipientName.value;
		var sSubject = document.frmEmailToFriend.subject.value;
		var sSecurity = document.frmEmailToFriend.securityText.value;
		var sErrorMsg = "";
		
		if( ((sYourEmail.length == 0) || (sYourEmail.match(/^\s+$/))))
		{
			var sErrorMsg = sErrorMsg + "* Please enter your email address. <br/>";
		}
		
		if( ((sYourName.length == 0) || (sYourName.match(/^\s+$/))))
		{
			var sErrorMsg = sErrorMsg + "* Please enter your name. <br/>";
		}
		
		if( ((sTheirEmail.length == 0) || (sTheirEmail.match(/^\s+$/))))
		{
			var sErrorMsg = sErrorMsg + "* Please enter the recipient's email address. <br/>";
		}
		
		if( ((sTheirName.length == 0) || (sTheirName.match(/^\s+$/))))
		{
			var sErrorMsg = sErrorMsg + "* Please enter the recipeint's name. <br/>";
		}
		
		if( ((sSubject.length == 0) || (sSubject.match(/^\s+$/))))
		{
			var sErrorMsg = sErrorMsg + "* Please enter the subject. <br/>";
		}
		
		if( ((sSecurity.length == 0) || (sSecurity.match(/^\s+$/))))
		{
			var sErrorMsg = sErrorMsg + "* Please enter the security code. <br/>";
		}
		
		/*if((!((sYourEmail.length == 0) || (sYourEmail.match(/^\s+$/))))
			&& (!((sYourName.length == 0) || (sYourName.match(/^\s+$/))))
			&& (!((sTheirEmail.length == 0) || (sTheirEmail.match(/^\s+$/))))
			&& (!((sTheirName.length == 0) || (sTheirName.match(/^\s+$/))))
			&& (!((sSubject.length == 0) || (sSubject.match(/^\s+$/))))
			&& (!((sSecurity.length == 0) || (sSecurity.match(/^\s+$/))))
		)
		*/
		if(sErrorMsg.length == 0)
		{
			document.frmEmailToFriend.isEmail.value = 1;
			document.frmEmailToFriend.submit();
		}
		else
		{
			document.getElementById('frmSuccessErr').style.display = "none";
			document.getElementById('frmErr').style.display = "block";
			document.getElementById('frmErr').innerHTML = sErrorMsg;
		}
	}
	
	//--------------------------------------------------------------------------
	
	function regenerate()
	{
		document.frmEmailToFriend.submit();
	}
}

// Create Object
oEmailToFriend = new EmailToFriend();

//--------------------------------------------------------------------------

YAHOO.namespace("emailToFriend.container");

function init() {
		YAHOO.emailToFriend.container.previewEmailToFriend = new YAHOO.widget.ResizePanel("previewEmailToFriend", { width:"500px", visible:false, constraintoviewport:false } );
		YAHOO.emailToFriend.container.previewEmailToFriend.render(document.getElementById('EmailToFriendSection'));
		YAHOO.util.Event.addListener("preview", "click", YAHOO.emailToFriend.container.previewEmailToFriend.show, YAHOO.emailToFriend.container.previewEmailToFriend, true);
}
	
YAHOO.util.Event.addListener(window, "load", init);
