/**
 * @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 = '';
}


function form_enviar()
{
	var bSinErrores = true;
	var bCaptchaOk = false;

	$.ajax({type: "POST", url: "includes/captcha/captcha-verify.php", data: "code=" + $("#captcha").val(), dataType: 'json',
		success: function(data){
/*						case 1: $sClass = 'no-vacio'; break;
						case 2: $sClass = 'email'; break;
						case 3: $sClass = 'no-vacio-email'; break;
*/
			$('.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');
				}
			});
			$('.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');
				}
			});
			$('.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');
				}
			});


			if (data.estado == 1) {
		 		bCaptchaOk = true;
				$("#captcha").removeClass('form_error');
		 	}
			else
			{
				$("#captcha").addClass('form_error');
			}

			if (bSinErrores && bCaptchaOk) $('#mainform').submit();
		}
	});
}

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();
}
