// JavaScript Document
var auth_code;
//============================================================== Recargar Imagen ==========================================//
 function recargar(imgID)
  {
   var img=document.getElementById(imgID);
   img.src="";
   img.src="includes/captcha.php?"+Date();
  }

//==============================================================  Validar Formularios =====================================//
function validar_siNumero(cadena){ //Comprueve si la cadena es un numero o no
	if (isNaN(cadena)){
		return false;
	}else{
		 return true;
		 }	
}
function format_decimal(idcampo){
	campo=document.getElementById(idcampo)
	numero = new  oNumero(campo.value);
	campo.value=numero.formato(2,false);
}
function validar_siEntero(cadena)//Comprueva si la cadena es un numero entero
{
if (!/^([0-9])*$/.test(cadena))
	{
	return false;
	}else{		
	return true;
	}	
}
function validar_longitud(cadena,l){
	cadena = new String (cadena);
	k = cadena.length;
	if (!k==l){		
		return false;
			}else{
		return true;
			}	
	}
function comprobar_email(valor,campoid)//validar si una cadena es una direccion de internet valida
{
campo=document.getElementById(campoid)	
valor=campo.value;
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor)){
//alert("La dirección de email " + valor + " es correcta.") 
return (true);
} else {
//alert("La dirección de email es incorrecta.");
return (false);
}
}//*fin funcion	
//=====copia de mostar y ocultar error edicion para los mensajes
function mostrar_error_msg(elemetId,mensaje,Idcampo,imgId){
	elemet=document.getElementById(elemetId);
	elemet.innerHTML=mensaje;
	elemet.style.display = "inline";

	}
function ocultar_error_msg(elementId,campoId,imgId){	
	element=document.getElementById(elementId);
	element.innerHTML="";
	element.style.display="none";
	} 
//===================  Funciones para mostrar y ocultar errores usuario final ========================================= //
function mostrar_error(elemetId,mensaje,Idcampo,imgId){
	elemet=document.getElementById(elemetId);
	elemet.innerHTML=mensaje;
	elemet.style.display = "inline";
	campo=document.getElementById(Idcampo);
	campo.className="field_red_fu";
	}
function ocultar_error(elementId,campoId,imgId){	
	element=document.getElementById(elementId);
	element.innerHTML="";
	element.style.display="none";
	campo=document.getElementById(campoId);
	campo.className="field_green_fu";
	} 
function limpiar_msg(elemetId,campoid,imgid){	
	span=document.getElementById(spanid);
	span.style.display="none";
	campo=document.getElementById(campoid);
	campo.className="field_star_fu"
	}	
//==============================================================  Funciones para validar campos ========================================================================================== //
function val_texto(IdCampo,Nid,mensaje){
	campo = document.getElementById(IdCampo);//Obener elemento
	if (campo.value.replace(/^\s*|\s*$/g,"")==""){ 
		mostrar_error("msg"+Nid,mensaje,IdCampo,"imgok"+Nid);
		return false;  
	}else{
		ocultar_error("msg"+Nid,IdCampo,"imgok"+Nid);
		return true;
		} 
}//Fin de la Funcion Val texto

function val_coincidir(IdCampo,IdCampo2,Nid,mensaje,mensaje2){
	campo  = document.getElementById(IdCampo);//Obener elemento
	campo2 = document.getElementById(IdCampo2);//Obener elemento
	if (campo.value.replace(/^\s*|\s*$/g,"")==""){ 
		mostrar_error("msg"+Nid,mensaje,IdCampo,"imgok"+Nid);
		return false;  
	}else{
		//Comprobar si coincide
			if (campo.value.replace(/^\s*|\s*$/g,"")==campo2.value.replace(/^\s*|\s*$/g,""))
			{
				ocultar_error("msg"+Nid,IdCampo,"imgok"+Nid);
				return true;
			}else{
				mostrar_error("msg"+Nid,mensaje2,IdCampo,"imgok"+Nid);
				return false;
				}
		} 
}//Fin de la Funcion Val texto



//====================================================================================== Funcion para validar el codigo
function val_codigo(idCampo,Nid){
	campo = document.getElementById(idCampo);//Obener elemento
	if (campo.value.replace(/^\s*|\s*$/g,"")==""){ 
		mensaje="Escribe el codigo de barras"; 
		return false;  		mostrar_error("msg"+Nid,mensaje,idCampo,"imgok"+Nid);

	}else{					
		if (validar_siEntero(campo.value))
			{	
			cadena_codigo = campo.value.replace(/^\s*|\s*$/g,"");
				var respuesta = xajax.call('buscar_codigo', { parameters:[cadena_codigo], mode: 'synchronous' });
				//var respuesta=xajax_buscar_codigo(campo.value.replace(/^\s*|\s*$/g,""));
				//alert(respuesta);									
				if (respuesta=="true"){
				mensaje="Codigo de barras ocupado"; 
				mostrar_error("msg"+Nid,mensaje,idCampo,"imgok"+Nid);
				return false;
				}else{
				ocultar_error("msg"+Nid,idCampo,"imgok"+ Nid);
				return true;
				}
			//ocultar_error("msg"+Nid,idCampo,"imgok"+ Nid);
			//return true;
			}else{
				mensaje="Esto no es un numero entero"; 
				mostrar_error("msg"+Nid,mensaje,idCampo,"imgok"+Nid);
				return false;
			}
		}
}//Fin de la funcion val codigo
//====================================================================================== Funcion para validar el el seudonimo XAJAX
function val_usuario(idCampo,Nid){
	campo = document.getElementById(idCampo);//Obener elemento
	if (campo.value.replace(/^\s*|\s*$/g,"")==""){ 
		mensaje="Escribe tu seudonimo"; 
		mostrar_error("msg"+Nid,mensaje,idCampo);
		return false;  
	}else{					
		cadena = campo.value.replace(/^\s*|\s*$/g,"");
		var respuesta = xajax.call('buscar_usuario', { parameters:[cadena], mode: 'synchronous' });
		//var respuesta=xajax_buscar_codigo(campo.value.replace(/^\s*|\s*$/g,""));
		//alert(respuesta);									
		if (respuesta=="true"){
		mensaje="Seudonimo no disponible"; 
		mostrar_error("msg"+Nid,mensaje,idCampo);
		return false;
		}else{
		ocultar_error("msg"+Nid,idCampo);
		return true;
		}
	}
}//Fin
//================================================================================================= Funcion para Validar el correo con XAJAX
function val_correo(idCampo,Nid){
	campo = document.getElementById(idCampo);//Obener elemento
	if (campo.value.replace(/^\s*|\s*$/g,"")==""){ 
		mensaje="Escribe tu correo"; 
		mostrar_error("msg"+Nid,mensaje,idCampo);
		return false;  
	}else{
	if (comprobar_email(campo,idCampo)){
		ocultar_error("msg"+Nid,idCampo);
		return true;
	  }else{
	    mensaje="Direccion de correo no  valida"; 
		mostrar_error("msg"+Nid,mensaje,idCampo);
		return false;
	  }
	}
}//Fin 
//================================================================================================// Funcion para validar el codigo

function val_captcha(idCampo,Nid){
	campo = document.getElementById(idCampo);//Obener elemento
	cadena = campo.value;
	var respuesta = xajax.call('val_captcha', { parameters:[cadena], mode: 'synchronous' });
	if (respuesta=="false"){
			recargar("codigo")
			mensaje="El codigo no es correcto"; 
			mostrar_error("msg"+Nid,mensaje,idCampo);
			return false;
			}else{	
			ocultar_error("msg"+Nid,idCampo);
			return true;
	}
}
//============================================================ Funciones para decimales ========= // ================================================================================================ //
// Funcion para Formatea un campo de texto a deicmal
function format_decimal(idcampo){
	campo=document.getElementById(idcampo)
	numero = new  oNumero(campo.value);
	campo.value=numero.formato(2,false);
}
//========= // Funcion Para Formatear una cadena a decimales //
function oNumero(numero)
{
//Propiedades
this.valor = numero || 0
this.dec = -1;
//Métodos
this.formato = numFormat;
this.ponValor = ponValor;
//Definición de los métodos
function ponValor(cad)
{
if (cad =='-' || cad=='+') return
if (cad.length ==0) return
if (cad.indexOf('.') >=0)
this.valor = parseFloat(cad);
else
this.valor = parseInt(cad);
}
function numFormat(dec, miles)
{
var num = this.valor, signo=3, expr;
var cad = ""+this.valor;
var ceros = "", pos, pdec, i;
for (i=0; i < dec; i++)
ceros += '0';
pos = cad.indexOf('.')
if (pos < 0)
cad = cad+"."+ceros;
else
{
pdec = cad.length - pos -1;
if (pdec <= dec)
{
for (i=0; i< (dec-pdec); i++)
cad += '0';
}
else
{
num = num*Math.pow(10, dec);
num = Math.round(num);
num = num/Math.pow(10, dec);
cad = new String(num);
}
}
pos = cad.indexOf('.')
if (pos < 0) pos = cad.lentgh
if (cad.substr(0,1)=='-' || cad.substr(0,1) == '+')
signo = 4;
if (miles && pos > signo)
do{
expr = /([+-]?\d)(\d{3}[\.\,]\d*)/
cad.match(expr)
cad=cad.replace(expr, RegExp.$1+','+RegExp.$2)
}
while (cad.indexOf(',') > signo)
if (dec<0) cad = cad.replace(/\./,'')
return cad;
}
}//Fin del objeto oNumero:
 function keyLock(e){
        kc=e.keyCode?e.keyCode:e.which;
        if(kc<32) return true;
        kc=String.fromCharCode(kc);
        if(/[^0-9-.]/.test(kc)) return false;
      }
//===============================================================================	  
//Funcion para  Validar Campos de decimales tipo moneda
function val_moneda(idCampo,Nid){
	campo = document.getElementById(idCampo);//Obener elemento
	if (campo.value.replace(/^\s*|\s*$/g,"")==""){ 
		mensaje="Escribe una cantidad"; 
		mostrar_error("msg"+Nid,mensaje,idCampo,"imgok"+Nid);
		return false;  
	}else{
		if (validar_siNumero(campo.value))
			{
			format_decimal(idCampo);
			ocultar_error("msg"+Nid,idCampo,"imgok"+ Nid);
			return true;
			}else{
				mensaje="Esto no es un numero"; 
				mostrar_error("msg"+Nid,mensaje,idCampo,"imgok"+Nid);
				return false;
			}
		}
}
//===================================================================================== Funcion para validar numeros enteros

function validar_siEntero(cadena)//Comprueva si la cadena es un numero entero
{
if (!/^([0-9])*$/.test(cadena))
	{
	return false;
	}else{		
	return true;
	}	
}
function val_entero(idCampo,Nid){//Valida si un campo de un formulario es entero
	campo = document.getElementById(idCampo);//Obener elemento
	if (campo.value.replace(/^\s*|\s*$/g,"")==""){ 
		mensaje="Escribe una cantidad"; 
		mostrar_error("msg"+Nid,mensaje,idCampo,"imgok"+Nid);
		return false;  
	}else{
		if (validar_siEntero(campo.value))
			{
			//format_texto(idCampo);
			ocultar_error("msg"+Nid,idCampo,"imgok"+ Nid);
			return true;
			}else{
				mensaje="Esto no es un numero entero"; 
				mostrar_error("msg"+Nid,mensaje,idCampo,"imgok"+Nid);
				return false;
			}
		}
}
//==============================================================
function val_select(idCampo,Nid){
	campo = document.getElementById(idCampo);//Obener elemento
	if (campo.selectedIndex==0){ 
		mensaje="Seleciona un opcion"; 
		mostrar_error("msg"+Nid,mensaje,idCampo,"imgok"+Nid);
		return false;  
	}else{
		ocultar_error("msg"+Nid,idCampo,"imgok"+ Nid);
		return true;
		} 
}
function val_banco(idCampo,Nid){
	campo = document.getElementById(idCampo);//Obener elemento
	if (campo.selectedIndex==0){ 
		mensaje="Seleciona un banco"; 
		mostrar_error("msg"+Nid,mensaje,idCampo,"imgok"+Nid);
		return false;  
	}else{
		ocultar_error("msg"+Nid,idCampo,"imgok"+ Nid);
		return true;
		} 			
}
//validad la seleccion del estado
function val_estado(idCampo,Nid){
	campo = document.getElementById(idCampo);//Obener elemento
	if (campo.selectedIndex==0){ 
		mensaje="Seleciona tu entidad"; 
		mostrar_error("msg"+Nid,mensaje,idCampo,"imgok"+Nid);
		return false;  
	}else{
		ocultar_error("msg"+Nid,idCampo,"imgok"+ Nid);
		return true;
		} 		
}
//============================================================== //Funcion para validar la extecion de la imagen 
function val_extencion(extencion_img,extencion){	
	if  (extencion_img!=extencion){
		return true;
		}else{
			 return false;
			 }
	}
function val_imagen(idCampo,Nid,extencion){
	 campo_img = document.getElementById(idCampo);
	 var cadena_img=new String(campo_img.value);
	 partes_cadena = cadena_img.split(".");
	 extencion_img = partes_cadena[partes_cadena.length-1];
	// alert (extencion_img);
	 if (cadena_img=="")
	 	 {
		 mensaje="Selecciona un archivo";
		 mostrar_error("msg"+Nid,mensaje,idCampo,"imgok"+Nid);
		 return false;
		 }else{
				if(val_extencion(extencion_img,extencion))
					{
						 mensaje="Solo archivos '.jpg'";
						 mostrar_error("msg"+Nid,mensaje,idCampo,"imgok"+Nid);
						 return false;
					}else{
					ocultar_error("msg"+Nid,idCampo,"imgok"+Nid);
					return true;
					} 
		     }
}
//====================================================================== Funciones 
function ocultar_colonia(){
	selec = document.getElementById("colonia");
	estado = document.getElementById("estado");
	municipio= document.getElementById("municipio");
	ciudad= document.getElementById("ciudad");
	label= document.getElementById("label_colonia");
	campo =document.getElementById("colonia_txt");
	error =document.getElementById("msg9");
	selec.style.display = "none";
	estado.style.display = "none";
	municipio.style.display = "none";
	ciudad.style.display = "none";
	label.style.display = "none";
	campo.value="";
	campo.style.display = "none";
	error.style.display = "none";
}
function mostrar_colonia(){
	selec = document.getElementById("colonia");
	estado = document.getElementById("estado");
	municipio= document.getElementById("municipio");
	ciudad= document.getElementById("ciudad");
	estado.style.display = "inline";
	municipio.style.display = "inline";
	ciudad.style.display = "inline";
}
//////////////////////////////////////////////////////////////////
function val_postal(idCampo,Nid,num,mensaje,refrescar){
	campo = document.getElementById(idCampo);//Obener elemento
	if (campo.value.replace(/^\s*|\s*$/g,"")==""){ 
		mostrar_error("msg"+Nid,mensaje,idCampo,"imgok"+Nid);
		return false;  
	}else{
		str=(campo.value.replace(/^\s*|\s*$/g,""));
		if (validar_siEntero(str)){
			 if (num==str.length){	
					campo_c = document.getElementById("codigo_postal_txt");
					codigo = campo_c.value;
					mostrar_carga("Cargando colonias");
					var respuesta = xajax.call('buscar_codigo_postal', { parameters:[codigo,refrescar], mode: 'synchronous' });
					if (respuesta=="true"){					
						ocultar_error("msg"+Nid,idCampo,"imgok"+Nid);
						ocultar_carga();
						mostrar_colonia();
						auth_code=true;
						return true;
					}else{
						 mostrar_error("msg"+Nid,"C.P Inexistente",idCampo,"imgok"+Nid);
						 ocultar_colonia();
						 auth_code=false;
						 return false;
					}
				 }else{
					 ocultar_colonia();
					 mostrar_error("msg"+Nid,mensaje,idCampo,"imgok"+Nid);
					 auth_code=false;
					 return false;
				 }
		}else{
		ocultar_colonia();
		mostrar_error("msg"+Nid,mensaje,idCampo,"imgok"+Nid);
		auth_code=false;
		return false;
		}
	} 
}
//================================================================
function introducir_colonia()
	{
	span  =  document.getElementById("label_colonia");
	campo = document.getElementById("colonia_txt");
	lista = document.getElementById("colonia");
	ultimoindex = lista.options.length;
	if (lista.selectedIndex==(ultimoindex-1)){
			campo.style.display = "inline";
			campo.focus();
			span.style.display   = "inline";
			}else{
			campo.style.display = "none";
			lista.focus();
			span.style.display 	= "none";
			//ocultar_error_todo("msg17","ncategoria","imgok17");
			}
	}
function val_colonia(){ 
	lista = document.getElementById("colonia");
	ultimoindex = lista.options.length;
	idCampo	= "colonia";
	Nid="8";
	if ((lista.selectedIndex==0) && (auth_code==true)){
		mensaje="Selecciona tu colonia";
		mostrar_error("msg"+Nid,mensaje,idCampo,"imgok"+Nid);
		return false;
		}else{
		//Validar en caso de que este seleccinada la opcion nueva categoria
		ocultar_error("msg"+Nid,idCampo,"imgok"+Nid);
		return true;
		}
	}//Fin de la Funcion
function val_ncolonia(IdCampo,Nid,mensaje,lista){
	campo = document.getElementById(IdCampo);//Obener elemento
	lista = document.getElementById(lista);
	ultimoindex = lista.options.length;
	if (lista.selectedIndex==(ultimoindex-1) && auth_code==true){
		if (campo.value.replace(/^\s*|\s*$/g,"")=="" ){ 
			mostrar_error("msg"+Nid,mensaje,IdCampo,"imgok"+Nid);
			return false;  
		}else{
			ocultar_error("msg"+Nid,IdCampo,"imgok"+Nid);
			return true;
			}
	}else{
		ocultar_error("msg"+Nid,IdCampo,"imgok"+Nid);
		return true;
		}
}
function val_envio(campo){
	chekado=0;
	mensaje="Selecciona el tipo de envio";
	Nid ="11";
	var i;
	for( i = 0; i<document.frm_envio.radio_envio.length;i++)
	 {
		 if(document.frm_envio.radio_envio[i].checked){
			 chekado++;
			 }
	}
	if (chekado>0){
	 ocultar_error_msg("msg"+Nid,campo,"imgok"+Nid)
	 return true;
	 }else{
	 mostrar_error_msg("msg"+Nid,mensaje,"opt_envio1","imgok"+Nid);
	 return false;
	}
}
function val_hora(campMins,campHrs,msg,Nid){
	select_horas = document.getElementById(campHrs);
	select_mins  = document.getElementById(campMins);	
	if ((select_horas.selectedIndex == 0  )||(select_mins.selectedIndex == 0 )){
		mensaje = "Seleccione la hora exacta";
		mostrar_error("msg"+ Nid,mensaje,campHrs,"imgok"+Nid);
		return false;
	}else{
		 ocultar_error_msg("msg"+Nid,campo,"imgok"+Nid);
		 return true;
	}
}