var POWERMAIL = {

	//-------------------------------------------------------------------------

	lang:null,
	errorClass:'powermail_error',

	//-------------------------------------------------------------------------

	pattern:{
		email:/\S+@{1}\S+\.{1}\S+/
	},
	errorTexts:{
		'de':{
			'email':'Keine gültige E-Mail Adresse (test@test.ch)',
			'text':'Dies ist ein Pflichtfeld'
		}, 'en':{
			'email':'No valid e-mail address (test@test.ch)',
			'text':'This is a mandatory field'
		}, 'fr':{
			'email':'Adresse e-mail non valide (test@test.ch)',
			'text':'Ce champs est nécessaire'
		}, 'it':{
			'email':'Indirizzo e-mail non valido (test@test.ch)',
			'text':'Questo è un dato necessario'
		}
	},

	//-------------------------------------------------------------------------
	/**
	 *
	 * @param lang string (optional)
	 * @return void
	 *
	 */
	init:function( lang ) {

		this.lang = lang || 'de';

		var forms = document.forms;

		if( forms.length > 0 ) {
			for( var f=0;f<forms.length; f++ ) {
				if( forms[f].className.indexOf('tx_powermail_pi1_form') > -1 ) {
					var frm = forms[f];
					frm.items = new Array();
					if( frm.elements.length > 0 ) {
						this.set_selects(frm);
						for( var i=0;i<frm.elements.length;i++) {
							var item = frm.elements[i];
							if( item.attributes.required != undefined ) {
								this.attach_item(frm,item);
							} else if( item.attributes.type != undefined && item.attributes.type.value == 'submit' ) {
								this.set_submitButton( frm, item );
							} else {
								continue;
							}
						}
					} else {
						continue;
					}
				} else {
					continue;
				}
			}
		}

		delete forms;
		delete frm;
		delete item;
	},

	//-------------------------------------------------------------------------

	set_submitButton:function( frm, button ) {
		button.frm = frm;
		button.onclick = function() {
			POWERMAIL.check(this.frm);
			return false;
		}
	},

	//-------------------------------------------------------------------------

	attach_item:function( frm, item ) {

		item.powermail = {};

		if( item.attributes.type != undefined && item.attributes.type.value != undefined ) {
			item.powermail.type = item.attributes.type.value;
		} else if( item.tagName == 'TEXTAREA' ) {
			item.powermail.type = 'text';
		}

		frm.items.push(item);
		item.errorText = document.createElement('div');
		item.errorText.className = 'powermail_errorText';
		item.parentNode.appendChild(item.errorText);
		item.errorText.innerHTML = this.get_errorText(item);
	},

	//-------------------------------------------------------------------------
	
	get_errorText:function( item ) {
		if( this.errorTexts[this.lang][item.powermail.type] != undefined ) {
			return this.errorTexts[this.lang][item.powermail.type];
		} else {
			return null;
		}
	},

	//-------------------------------------------------------------------------

	check:function( frm ) {
		if( frm.items.length > 0 ) {

			var error = new Array();

			for( var i=0; i<frm.items.length; i++ ) {
				var item = frm.items[i];
				item.className = item.className.replace(' '+this.errorClass, '');
				this.show_errorText(item, false);
				if( item.powermail.type == 'email' ) {
					if( !item.value.match(this.pattern.email) ) error.push(item);
				} else {
					if( item.value == '' ) error.push(item);
				}
			}

			if( error.length > 0 ) {
				for( i=0;i<error.length;i++ ) {
					error[i].className = error[i].className + ' ' + this.errorClass;
					this.show_errorText(error[i], true);
				}
			} else {
				frm.submit();
			}
		} else {
			frm.submit();
		}
		AJAXLOADER.fade_content();
		delete error;
	},

	//-------------------------------------------------------------------------

	show_errorText:function( item, display ) {
		if( item.errorText != undefined ) {
			item.errorText.style.display = ( display === true ) ? 'block' : 'none';
		}
	},

	//-------------------------------------------------------------------------

	set_selects:function( frm ) {
		frm.items = new Array();
		for( var i=0;i<frm.elements.length;i++) {
			var el = frm.elements[i];
			if( el.className.indexOf('powermail_set_option') > -1 ) {
				var sel = frm.elements[i-1];
				sel.selectedIndex = el.value;
				el.parentNode.parentNode.removeChild(el.parentNode);
			}
		}
	}
	
	//-------------------------------------------------------------------------
};

window.addEvent('domready',function(){
	//POWERMAIL.init(LANG);
});
