/**
 * @author Administrador
 */

var aValues = new Array();
function setValue(oInput)
{
	if (oInput.value == '') oInput.value = eval('aValues.' + oInput.id);
}

function clearField(oInput)
{
	var sDefaultValue = eval('aValues.' + oInput.id);
	if (oInput.value == sDefaultValue) oInput.value = '';
}


var bSinErrores = true;
var bCaptchaOk = false;
var bAjaxCalled = false;

function form_enviar(frm)
{
	$('.no-vacio').each(function (){
		var oInput = $(this);
		var sDefaultValue = eval('aValues.' + oInput.attr('id'));
		if (oInput.val() == '' || oInput.val() == sDefaultValue)
		{
			oInput.addClass('form_error');
			bSinErrores = false;
		}
		else
		{
			oInput.removeClass('form_error');
			bSinErrores = true;
		}
	});

	$('.email').each(function (){
		var oInput = $(this);
		var sDefaultValue = eval('aValues.' + oInput.attr('id'));
		if (oInput.val() != '' && oInput.val() != sDefaultValue && !validaEmail(oInput.val()))
		{
			oInput.addClass('form_error');
			bSinErrores = false;
		}
		else
		{
			oInput.removeClass('form_error');
			bSinErrores = true;
		}
	});

	$('.no-vacio-email').each(function (){
		var oInput = $(this);
		var sDefaultValue = eval('aValues.' + oInput.attr('id'));
		if (oInput.val() == '' || oInput.val() == sDefaultValue || !validaEmail(oInput.val()))
		{
			oInput.addClass('form_error');
			bSinErrores = false;
		}
		else
		{
			oInput.removeClass('form_error');
			bSinErrores = true;
		}
	});

	if(bSinErrores){
		bAjaxCalled = true;

		$.ajax({
			type: "POST",
			url: "includes/captcha/captcha-verify.php",
			data: "code=" + $("#captcha").val(),
			dataType: 'json',
			success: function(data){
				if (data.estado == 1) {
					bCaptchaOk = true;
					$("#captcha").removeClass('form_error');
				}
				else
				{
					$("#captcha").addClass('form_error');
				}

				if (bSinErrores && bCaptchaOk)
				{
					$('.form-show-error').css('display', 'none');
				}
				else
				{
					$('.form-show-error').css('display', 'block');
				}

				if(bSinErrores && bCaptchaOk){
					$(frm).attr('onsubmit', '').submit();
				}
			}
		});
	}

	if (bSinErrores && bCaptchaOk)
	{
		$('.form-show-error').css('display', 'none');
	}
	else
	{
		$('.form-show-error').css('display', 'block');
	}

	if(bAjaxCalled){
		return false;
	}
	
	return (bSinErrores && bCaptchaOk);
}

function form_limpiar()
{
	$('form#mainform input:text').each(function (){
		this.value = eval('aValues.' + this.id);
	});
	$('form#mainform textarea').each(function (){
		this.value = eval('aValues.' + this.id);
	});
	$('input, textarea').removeClass('form_error');
}

$(document).ready(function (){
	$('form#mainform input').each(function (){
		var oInput = this;
		eval('aValues.' + this.id + ' = "' + this.value + '";');
	});
	$('form#mainform textarea').each(function (){
		var oInput = this;
		eval('aValues.' + this.id + ' = "' + this.value + '";');
	});
})





function validaEmail (emailStr)
{
	/* Verificar si el email tiene el formato user@dominio. */
	var emailPat=/^(.+)@(.+)$/

	/* Verificar la existencia de caracteres. ( ) < > @ , ; : \ " . [ ] */
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"

	/* Verifica los caracteres que son válidos en una dirección de email */
	var validChars="\[^\\s" + specialChars + "\]"

	var quotedUser="(\"[^\"]*\")"

	/* Verifica si la dirección de email está representada con una dirección IP Válida */
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/

	/* Verificar caracteres inválidos */
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")

	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

	var matchArray=emailStr.match(emailPat)
	if (matchArray==null)
	{
		//alert("Email address seems incorrect (check @ and .'s)")
		return false
	}
	var user=matchArray[1]
	var domain=matchArray[2]

	// Si el user "user" es valido 
	if (user.match(userPat)==null)
	{
		// Si no
		//alert("El nombre de usuario no es válido.")
		return false
	}

	/* Si la dirección IP es válida */
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				//alert("IP de destino inválida")
				return false
			}
		}
		return true
	}

	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		//alert("El dominio parece no ser válido.")
		return false
	}

	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {
		//alert('La dicrección debe tener 3 letras si es ."com" o 2 si en de algún pais.')
		return false
	}
	
	if (len<2) {
		var errStr="La dirección es erronea"
		//alert(errStr)
		return false
	}

	// La dirección de email ingresada es Válida
	return true;
}

function CMS_retrievePass()
{
	oInput = $('#recuperarpass #email');
	if (oInput.val() == '' || !validaEmail(oInput.val()))
	{
		oInput.addClass('form_error');
		return false;
	}
	$('#recuperarpass').submit();
}

