/*
Frontend de Importadora LUXLED, C.A. - http://www.luxled.com.ve/
Script de funciones de chequeo de formas
*/

<!--
// Función para chequear emails

function checkString(String){ 
	hasACharacter=false;
	EmailPass=false;
	for(j=0;j<String.length;j++){
		if(String.charCodeAt(i)!=13 && String.charCodeAt(i)!=10 && String.charCodeAt(i)!=32){
			hasACharacter=true
		}
	}
}

function emailCheck (emailStr) {
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	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("Disculpe, el E-mail no posee @ y . en el mismo. (usuario@host.com)");
		return false;
	};
	var user=matchArray[1];
	var domain=matchArray[2];
	if (user.match(userPat)==null) {
		alert("Disculpe, el E-mail debe poseer nombre de usuario. (usuario@host.com)");
		return false;
	}
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				alert("Disculpe, el E-mail no posee una dirección IP válida.");
				return false;
			}
		}
		return true;
	};
	var domainArray=domain.match(domainPat);
	if (domainArray==null) {
		alert("Disculpe, el E-mail no posee un dominio 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("Disculpe, el E-mail debe terminar en dos o tres letras. (com, net, org, ve)");
		return false;
	};
	if (len<2) {
		var errStr="Disculpe, el E-mail debe poseer nombre de host. (usuario@host.com)";
		alert(errStr);
		return false;
	}
	return true;
}

// Función para validar ingreso de datos en formaRegistro
vRegistro=new Array();
vRegistro[0]="nombres|Disculpe, debe especificar el nombre.|";
vRegistro[1]="apellidos|Disculpe, debe especificar el apellido.|";
vRegistro[2]="cedula|Disculpe, debe especificar la cédula.|";
vRegistro[3]="tlf|Disculpe, debe especificar un teléfono.|";
vRegistro[4]="email|Disculpe, debe especificar e-mail.|@";
vRegistro[5]="clave|Disculpe, debe especificar contraseña.|";
vRegistro[6]="confirmacion|Disculpe, debe repetir contraseña.|";
vRegistro[7]="confirmacion|Disculpe, su contraseña no coincide con la confirmación de la misma.|a";
vRegistro[8]="direccion1|Disculpe, debe especificar la dirección de facturación.|";
vRegistro[9]="ciudad1|Disculpe, debe especificar la ciudad de la dirección de facturación.|";


function validarRegistro(){
	d=document.formaRegistro;
	var idpaisf = d.pais1[d.pais1.selectedIndex].value;
	
	
	for(i=0;i<d.elements.length;i++){
		obj=d.elements[i];
		checkValue=checkString(obj.value);
		for(k=0;k<vRegistro.length;k++){
			tempArray=vRegistro[k].split("|");
			if(obj.name==tempArray[0]){
				case1="(tempArray[2]=='' && obj.value.length==0)";
				case2="(tempArray[2]==0 && obj.value==0)";
				case3="(tempArray[2]=='a' && compararClaves(obj.value,d.clave.value)!=true)";
				case4="(tempArray[2]=='@' && emailCheck(obj.value)==false)";
				if(eval(case1) || eval(case2) || eval(case3) || eval(case4))
				{
					obj.focus();
					if(tempArray[2]!='@'){alert(tempArray[1])};
					return false;
				}
			}
		}
	}
	
	if (idpaisf == '0') {
		d.pais1.focus();
		alert ('Debe escoger un pais en su dirección de facturación');
		return false;
	}
	return true;
}

// Función para validar ingreso de datos en formaDatos
vEdicion=new Array();
vEdicion[0]="nombres|Disculpe, debe especificar el nombre.|";
vEdicion[1]="apellidos|Disculpe, debe especificar el apellido.|";
vEdicion[2]="cedula|Disculpe, debe especificar la cédula.|";
vEdicion[3]="tlf|Disculpe, debe especificar un teléfono.|";
vEdicion[4]="email|Disculpe, debe especificar e-mail.|@";
vEdicion[5]="actual|Disculpe, debe especificar contraseña actual.|";
vEdicion[6]="confirmacion|Disculpe, su contraseña no coincide con la confirmación de la misma.|a";
vEdicion[7]="direccion1|Disculpe, debe especificar la dirección de facturación.|";
vEdicion[8]="ciudad1|Disculpe, debe especificar la ciudad de la dirección de facturación.|";


function validarDatos(){
	d=document.formaDatos;
	var idpaisf = d.pais1[d.pais1.selectedIndex].value;
	
	
	for(i=0;i<d.elements.length;i++){
		obj=d.elements[i];
		checkValue=checkString(obj.value);
		for(k=0;k<vEdicion.length;k++){
			tempArray=vEdicion[k].split("|");
			if(obj.name==tempArray[0]){
				case1="(tempArray[2]=='' && obj.value.length==0)";
				case2="(tempArray[2]==0 && obj.value==0)";
				case3="(tempArray[2]=='a' && compararClaves(obj.value,d.nueva.value)!=true)";
				case4="(tempArray[2]=='@' && emailCheck(obj.value)==false)";
				if(eval(case1) || eval(case2) || eval(case3) || eval(case4))
				{
					obj.focus();
					if(tempArray[2]!='@'){alert(tempArray[1])};
					return false;
				}
			}
		}
	}
	
	if (d.confirmacion.value != d.nueva.value){
		alert("Disculpe, su contraseña no coincide con la confirmación de la misma.");
		d.nueva.focus();
		return false;
		
	}
	
	if (idpaisf == '0') {
		d.pais1.focus();
		alert ('Debe escoger un pais en su dirección de facturación');
		return false;
	}
	return true;
}

// Función para comparar que una contraseña sea igual a su confirmación
function compararClaves(clave1,clave2){
	if(clave1!=clave2){
		return false;
	}
	return true;
}

// Función para contar y delimitar cantidad de caracteres permitidos en un textarea
function contarChars(obj,maxlong,contador) {
	document.getElementById(contador).innerHTML = obj.length;
	if (obj.length >= maxlong) {
		obj = obj.substr(0,obj.length - 1);
		return false;
	}
}

// Función para chequear login
//Función para validar ingreso de datos en login_frm
vAcceso=new Array();
vAcceso[0]="login|Disculpe, es necesario el login o email.|";
vAcceso[1]="clave|Disculpe, es necesario el password.|";

function validarAcceso(){
	d=document.login_frm;
	for(i=0;i<d.elements.length;i++){
		obj=d.elements[i];
		checkValue=checkString(obj.value);
		for(k=0;k<vAcceso.length;k++){
			tempArray=vAcceso[k].split("|");
			if(obj.name==tempArray[0]){
				case1="(tempArray[2]=='' && obj.value.length==0)";
				case2="(tempArray[2]==0 && obj.value==0)";
				if(eval(case1) || eval(case2))
				{
					obj.focus();
					alert(tempArray[1]);
					return false;
				}
			}
		}
	}
	
	// Se chequea el login/clave
	ChequeaIngreso(d.login.value,d.clave.value,d.o.value);
	//return true;
}

// Funciones ajax para validación de login
function ChequeaIngreso(ema,cl,o) {
	var url = 'login.php';
	var tmptime = "&ms="+new Date().getTime();
	var params = 'chequeo=y' + "&ema=" + ema + "&pass=" + cl + "&o=" + o + tmptime;
	//alert("params: "+params);
	document.getElementById('clavedsp').innerHTML = "<br><br><img src='images/espera.gif' />";
	
	var myAjax = new Ajax.Request(
		url, 
		{
			method: 'post', 
			parameters: params, 
			onComplete: VerificadoL
		});
}

function VerificadoL(originalRequest)
{
		
	document.getElementById('clavedsp').innerHTML = "";
	var datos = originalRequest.responseText;
	var indice = datos.indexOf("!");
	
	var res = '';
	var msj = '';
	if (indice >0) {
		res = datos.substring(0,indice);
		msj = datos.substring(indice+1,datos.length);
			
	}
		
	var login;
	login=document.login_frm;
	
	if (res == 'ok' ) {		
			window.location.href=msj;
	}else {
		alert(msj);
		login.passw.focus();
		return false
	}
}

// Función para validar datos de compra (billing address)

function ValidarMisDatos(){
	

	var d=document.misdatos_frm;
	var bill_pais_nombre;
	vBillAdd=new Array();
	vBillAdd[0]="nombres|Disculpe, El nombre es necesario.|";
	vBillAdd[1]="apellidos|Disculpe, El apellido es necesario.|";
	vBillAdd[2]="cedula|Disculpe, La cédula es necesaria.|";
	vBillAdd[3]="tlf|Disculpe, El teléfono es necesario.|";	
	vBillAdd[4]="email|Disculpe, Un email es necesario.|@";
	vBillAdd[5]="direccion|Disculpe, la dirección es necesaria.|";
	vBillAdd[6]="ciudad|Disculpe, La ciudad es necesaria.|";
	
	// Pais y Estado (billing)
	pais = d.pais[d.pais.selectedIndex].value;
	if (pais == "") {
		alert("Disculpe, el pais es necesario.");
		d.pais.focus();
		return false;
	}else{	
		bill_pais_nombre = d.pais[d.pais.selectedIndex].text;
	}
	
	for(i=0;i<d.elements.length;i++){
	  obj=d.elements[i];
	  if(obj.name.length>0){
	  
		checkValue=checkString(obj.value);
		for(k=0;k<vBillAdd.length;k++){
			tempArray=vBillAdd[k].split("|");
			if(obj.name==tempArray[0]){
				case1="(tempArray[2]=='' && obj.value.length==0)";
				case2="(tempArray[2]==0 && obj.value==0)";
				case3="(tempArray[2]=='a' && compararClaves(obj.value,d.passw.value)!=true)";
				case4="(tempArray[2]=='@' && emailCheck(obj.value)==false)";
				if(eval(case1) || eval(case2) || eval(case3) || eval(case4))
				{
					obj.focus();
					if(tempArray[2]!='@'){alert(tempArray[1])};
					return false;
				}
			}
		}
	  }
	}
	
	//nombres de paises seleccionados
	
	d.bill_pais_nombre.value=bill_pais_nombre;
	
	
}

// Función para validar datos de envío (shipping address)

function ValidaShipOption(){

	if (document.envio_frm.e_flete[1].checked)
		ValidarEnvio();
}

function ValidarEnvio(){	

	var d=document.envio_frm;
	
	vShipAdd=new Array();

	vShipAdd[0]="e_ciudad|Disculpe, Debe indicar la ciudad.|";
	vShipAdd[1]="e_direccion|Disculpe, Debe indicar la dirección de entrega.|";	
	vShipAdd[2]="e_tlf|Disculpe, Debe indicar el teléfono de quien recibe.|";
	vShipAdd[3]="e_nombre|Disculpe, Debe indicar el nombre de quien recibe la compra.|";
	vShipAdd[4]="e_apellido|Disculpe, Debe indicar el apellido de quien recibe la compra.|";

	var ship_pais_nombre;
	
	// Pais y Estado (shipping)
	pais = d.e_pais[d.e_pais.selectedIndex].value;
	if (pais == "") {
		alert("Disculpe, el pais es necesario.");
		d.e_pais.focus();
		return false;
	}else{	
		ship_pais_nombre = d.e_pais[d.e_pais.selectedIndex].text;
	}
	
	for(i=0;i<d.elements.length;i++){
	  obj=d.elements[i];
	  if(obj.name.length>0){
	  
		checkValue=checkString(obj.value);
		for(k=0;k<vShipAdd.length;k++){
			tempArray=vShipAdd[k].split("|");
			if(obj.name==tempArray[0]){
				case1="(tempArray[2]=='' && obj.value.length==0)";
				case2="(tempArray[2]==0 && obj.value==0)";
				if(eval(case1) || eval(case2))
				{
					obj.focus();
					if(tempArray[2]!='@'){alert(tempArray[1])};
					return false;
				}
			}
		}
	  }
	}
	
	//nombres de paises seleccionados
	
	d.ship_pais_nombre.value=ship_pais_nombre;
}

//-->