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){
	   return false
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   return false
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
	    return false
	}

	 if (str.indexOf(at,(lat+1))!=-1){
	    return false
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
	    return false
	 }

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

		 return true					
}

function initializeField(event) {
	var element = Event.element(event);
	element.setAttribute('style', 'color:#333;');
	element.value = "";
	Event.stopObserving(element, 'focus');
}
Event.observe($('nombre'), 'focus', initializeField);
Event.observe($('email'), 'focus', initializeField);
Event.observe($('comentarios'), 'focus', initializeField);

function resetNombre(event) {
	Event.stop(event);
	var element = Event.element(event);
	resetField(element, "tu nombre");
}
function resetEmail(event) {
	Event.stop(event);
	var element = Event.element(event);
	resetField(element, "dirección e-mail");
}
function resetComentarios(event) {
	Event.stop(event);
	var element = Event.element(event);
	resetField(element, "comentarios");
}
function resetField(element, text) {	
	if(element.value == "") {
		element.setAttribute('style', 'color:#999;');
		element.value = text;
		Event.observe(element, 'focus', initializeField);
	}
}
Event.observe($('nombre'), 'blur', resetNombre);
Event.observe($('email'), 'blur', resetEmail);
Event.observe($('comentarios'), 'blur', resetComentarios);

function ResizeMyScrollArea(event) {
	strText = $('comentarios').value;
	newNumberOfRows = Math.round(strText.length / 80);
	$('comentarios').rows=Math.max(newNumberOfRows, 4);
}
Event.observe($('comentarios'), 'keyup', ResizeMyScrollArea);

function ValidateForm(event) {
	Event.stop(event);
	if(!echeck($('email').value))
	{
		Effect.Pulsate($('email'),{pulses:2,duration:.8});
		$('email').setAttribute('style', 'background-color:#fcc');
	}
	else
	{
		var values = Form.serialize($('contacto'));
		values += "&async=1" // indicamos que estamos enviando solicitud asíncrona para que no se genere el layout
		Form.disable( $('submitContacto') );
		$('submitContacto').setAttribute('class', 'disabled');
		$('contactoLoader').setAttribute('style', 'visibility:visible');
		$('submitContacto').setAttribute('value', 'Enviando...');
		new Ajax.Updater($('contacto'), 'contacto/feedback?'+values);
	}
}
Event.observe($('submitContacto'), 'click', ValidateForm);