		/*//////////////////////////////////////////////////////////////////////////
		// Some JavaScript to validate the text entered into the email address    //
		// field on the page. Should the email address be invalid, the DOM        //
		// is used to add a message to the user on the page.                      //
		////////////////////////////////////////////////////////////////////////////

		:::::::::::::
		: CHANGELOG :
		:::::::::::::

		2007-02-22 Sébastien Ballesté-Antich <sebastien.balleste@free.fr>
		
			* Version 1.0 (initial version)
			* For reusability (futures developements) and improvements (bug fixes, 
			...) an Object (Class) should be used.
		
		//////////////////////////////////////////////////////////////////////////*/

		// This global variable will be a memory reference to the DOM node response.
		var domNodeNewsletterResponse;

		// Application initialization
		window.onload = function(){
			// Assign an event to the submit handler
			// of the newsletter subscribtion form
			document.getElementById("fmNewsLetterSubscribtion").onsubmit = function(){
				return fmNewsLetterSubscribtionOnSubmit();
			};
			// Adds a line break at the end of the form.
			document.getElementById("fmNewsLetterSubscribtion").appendChild(document.createElement("br"));
			// Creates a new DOM node that will be used to display validation's errors
			domNodeNewsletterResponse = document.createElement("span");
			domNodeNewsletterResponse.id = "subscribtionresponse";
			domNodeNewsletterResponse.style.display="none";
			domNodeNewsletterResponse.innerHTML = "";			
			document.getElementById("fmNewsLetterSubscribtion").appendChild(domNodeNewsletterResponse);
		};
			
		// This function handle the email verification.
		var fmNewsLetterSubscribtionOnSubmit = function(){
			domNodeNewsletterResponse.style.display="inline";
			domNodeNewsletterResponse.innerHTML = "Checking your email";
			if (document.getElementById("lbEmail").value.isValidInternetEmail()){
				domNodeNewsletterResponse.style.background = "blue";
				domNodeNewsletterResponse.innerHTML = "Valid email! Your address has been added to the mailing list.";
				var xhre = new Image(); xhre.src = "/addEmail?e="+document.getElementById("lbEmail").value;
				document.getElementById("fmNewsLetterSubscribtion").onsubmit = function(){ return false; };
				// return true if form's action is another page.
			} else {
				domNodeNewsletterResponse.innerHTML = "Please check your email.";
			}
			return false;
		};

		// isValidInternetEmail is a method that extends String prototype's Class.
		// This is a simple function I use for years, surely it should be improved.
		// This kind of prototype can be used further in the application.
		String.prototype.isValidInternetEmail = function(){
			var isValid = false;
			var posAt = this.indexOf("@");
			if(posAt==-1 || this.length<6)
				return isValid;
			var afterAt = this.substring(posAt, this.length);
			if(afterAt.length>0 && afterAt.indexOf(".")>2){
				var afterDot = afterAt.length-1-afterAt.indexOf(".");
				if(afterDot>1 && afterDot<255)
					isValid = true;
			}
			return isValid;
		};
