
/* Contact and clientes Form */
var FormValidate = function(lang, actionForm, formId) {
	var err = new Array();
	var noErr = new Array();
	var formFields = ({ //form fields data
		fNames : new Array('usuario', 'contrasena', 'nome', 'empresa', 'email', 'telefono', 'asunto'), //campos
		errorField : { //errors
			usuario_es : 'El <span class="important1">Identificador de usuario</span> es obligatorio.',
			usuario_gl : 'O <span class="important1">Identificador de usuario</span> é obrigatorio.',
			contrasena_es : 'La <span class="important1">Contraseña</span> es obligatoria.',
			contrasena_gl : 'O <span class="important1">Contrasinal</span> é obrigatorio.',
			nome_es : 'El <span class="important1">Nombre</span> necesita al menos 3 letras.',
			nome_gl : 'O <span class="important1">Nome</span> precisa polo menos 3 letras.',
			empresa_es : 'Debe introducir su <span class="important1">Empresa</span>. Si es un particular introduzca "Particular"',
			empresa_gl : 'Debe intrudicr a súa <span class="important1">Empresa</span>. Se é un particular introduza "Particular".',
			email_es : 'El <span class="important1">e-mail</span> introducido no es correcto.',
			email_gl : 'O <span class="important1">e-mail</span> introducido non é correcto.',
			telefono_es : 'El <span class="important1">teléfono</span> introducido deben ser sólo números y al menos 9 dígitos.',
			telefono_gl : 'O <span class="important1">teléfono</span> introducido deben ser só números e alo menos 9 díxitos.',
			asunto_es : 'El <span class="important1">asunto</span> necesita al menos 10 caracteres.',
			asunto_gl : 'O <span class="important1">asunto</span> precisa alo menos 10 caracteres.'
		},
		regexp : { //validation expresions
			usuario : /^.{1,}$/i,
			contrasena : /^.{1,}$/i,
			nome : /^.{3,}$/i,
			empresa : /^.{1,}$/i,
			email : /^[a-z0-9._%-]+@[a-z0-9.-]+\.[a-z]{2,4}$/i,
			telefono : /^[+]?\d{9,}$/i,
			asunto : /^.{10,}$/im
		}
	});

	formFields.fNames.each(function(f, i){
		if($(f)) {
			if(actionForm && !formFields.regexp[f].test($(f).get('value'))) {
				err.include(f);
				markFormError(lang, f, formFields.errorField[f+'_'+lang], true);
			} else {
				noErr.include(f);
				markFormError(lang, f, '', false);
			}
		}
	});

	if(err.length<=0) {
		if($('errorNote')) $('errorNote').destroy(); //destroy errorNote
		if(actionForm) formId.submit(); //send if we have submit
		return false;
	}
	return false;
};

var markFormError = function(lang, el, errorField, act) {
	var addErrorEffect = new Fx.Morph(el, {
		duration: 750,
		transition: Fx.Transitions.linear
	});

	errorNote = (lang=='es')? '<p><span class="important1">Por favor, complete estos campos!</span></p>' : '<p><span class="important1">Por favor, complete estes campos!</span></p>';

	if(!$('errorNote') && act) { //create errorNote
		var errorNote = new Element('div', {
			'id' : 'errorNote',
			'class': 'error',
			'html': errorNote
		}).inject('formCont', 'top');
	}
	if($('errorNote') && act) { //flashing errorNote
		$('errorNote').highlight('#F66','#FFEBEB');
	}

	if(act) { //new error
		if(!$('errorNote'+el)) {
			var errorNote = new Element ('p', {
					'id' : 'errorNote'+el,
					'class' : 'errorField',
					'html': errorField
			}).inject('errorNote', 'bottom');
		}

		//Problem with IE 7 & 8: border style in one line doesn't work.
		addErrorEffect.start({
			'color':'#000',
			'border-width':'2px',
			'border-style': 'solid',
			'border-color': '#BB6666',
			'background-color':'#FFEBEB'
		});
	} else { //remove error
		if($('errorNote'+el)) $('errorNote'+el).destroy();
		$(el).set('style', '');
	}
};

