window.addEvent('domready', function() {
    if ($('newsletter_form')) {
        $('frm_email').store('backup', $('frm_email').get('value'));
        $('frm_email').addEvents({
            'focus': function(){
                if (this.get('value') == this.retrieve('backup')) {
                    this.set('value', '');
                }
            },
            'blur': function(){
                if (this.get('value') == '') {
                    this.set('value', this.retrieve('backup'));
                }
            }
        });

        $('newsletter_form').addEvent('submit', function(event){
            event.stop();
       		$('newsletter_message').set('class', '');
       		$('newsletter_message').set('text', 'Daten werden geprueft');
        	if ($('frm_email').get('value').isEmail()) {
        		var req = new Request({
        		    url: '/scripts/newsletter.php',
        			method: 'post',
        			data: 'frm_email='+$('frm_email').get('value')+'&frm_aktion='+$('frm_aktion').get('value'),
        			onRequest: function() {
                    	$('newsletter_form').setStyle('display', 'none');
            			$('newsletter_message').set('text', 'Daten werden &uuml;bermittelt...');
            		},
        			onComplete: function(t) {
            			$('newsletter_message').set('text', t);
            		},
        			onSuccess: function() {
            			$('newsletter_message').set('class', 'ok');
            		},
        			onFailure: function() {
            			$('newsletter_message').set('class', 'error');
                    	$('newsletter_form').setStyle('display', 'block');
           			}
        		});
        		req.send();
        	} else {
        		$('newsletter_message').set('class', 'error');
        		$('newsletter_message').set('text', 'Bitte geben Sie eine korrekte eMail-Adresse an!');
        	}
        });
    }
});

String.prototype.isEmail = function() {
	//email address has to have at least 5 chars
	if (this.length < 5) {
		return false;
	}
	var iChars = "*|,\":<>[]{}`';()&$#%";
	var eLength = this.length;
	for (var i=0; i < eLength; i++) {
		if (iChars.indexOf(this.charAt(i)) != -1) {
//			trace("Invalid Email Address : Illegal Character in Email Address : -->" + this.charAt(i) + "<--.");
			return false;
		}
	}
	var atIndex = this.lastIndexOf("@");
	if(atIndex < 1 || (atIndex == eLength - 1)) {
//		trace("Invalid Email Address : Email Address must contain @ as at least the second chararcter.");
		return false;
	}
	var pIndex = this.lastIndexOf(".");
	if(pIndex < 4 || (pIndex == eLength - 1)) {
//		trace("Invalid Email Address : Email Address must contain at least one . (period) in a valid position");
		return false;
	}
	if(atIndex > pIndex) {
		this.__error = "Invalid Email Address : Email Address must be in the form of name@domain.domaintype";
		return false;
	}
	return true;
}
