/**
 * DHTML email validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

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){
		   alert("Invalid e-mail address")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("Invalid e-mail address")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		   alert("Invalid e-mail address")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		   alert("Invalid e-mail address")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		   alert("Invalid e-mail address")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		   alert("Invalid e-mail address")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		   alert("Invalid e-mail address")
		    return false
		 }

 		 return true					
	}

function ValidateForm(field){
	var emailID=field
	
	if ((emailID.value==null)||(emailID.value=="")){
		alert("Please enter your e-mail address!")
		emailID.focus()
		return false
	}
	if (echeck(emailID.value)==false){
		emailID.value=""
		emailID.focus()
		return false
	}
	return true
 }



window.addEvent('domready', function(){
	
	var box = $('newsletterbox');
	box.set('opacity',0);
	var fx = new Fx.Morph(box, ({duration: 500, transition: Fx.Transitions.Quart.easeOut}));
	
	
	$('mailForm').addEvent('submit', function(event){
		event.stop();

		if(ValidateForm($('email'))){
		//prevent the page from changing
	
			var req = new Request({
				method: 'get',
				url: $('mailForm').get('action'),//'putEmailAddress.php',//
				data:  $('mailForm'),//'mailaddress=John',
				onRequest: function() { 
					fx.start({}).chain(function() {
						box.set('html','<p>Saving ...<p>');
						this.start.delay(0, this, {'height' : '20px','opacity' : 1});			
					});
				
				},
				onComplete: function(response) {
					fx.start({}).chain(function() {	
						this.start.delay(2000, this, {'opacity' : 1});		
					}).chain(function() {	
						box.set('html',response);
						this.start.delay(2000, this, {'opacity' : 0});
					}).chain(function() {
						this.start.delay(0, this, {'height': 0});
					});
				}
			}).send();
			
		}
	
	});
});