	/*
		NOTA: La mayoría de las funciones requieren de la librería sexyalert
		
		@collaboratorEmail	Thalia Infante <thalinfa@gmail.com>
	*/
	
	//----------------------------
	//-------   TIPO ENTERO   ----
	//----------------------------
	/*
		@lastModified	6 mayo 2009
		@modifiedBy		Thalia Infante
	*/
	function tipo_entero(id)
	{
		var campo = document.getElementById(id);
		var cadena = campo.value;
		var msj = "\nEl código postal sólo puede contener caracteres númericos.";
		if (solo_enteros(cadena, msj)==false)
		{
			campo.focus();
			return true;
		}   
	
	    return false;
	}

	//----------------------------
	//-------   SOLO ENTERO   ----
	//----------------------------
	/*
		@lastModified 	6 mayo 2009
		@modifiedBy		Thalia Infante	
	*/
	function solo_enteros(cadena, msj)
	{
		for (i=0;i<cadena.length;i++)
		{
			var ch=cadena.substring(i,i+1);
			
			if ((ch < "0" || "9" < ch) && ch!=' ')
			{
				Sexy.alert (msj);
				return false;
			}
		} 
	
		return true;
	}

	//----------------------------
	//--------  VACIO   ------
	//----------------------------	
	/*
		@lastModified	6 mayo 2009
		@modifiedBy		Thalia Infante
	*/
	function vacio(id, cadena)
	{
		var campo = document.getElementById(id);
	
		if (campo.value == "")
		{
			Sexy.alert(cadena);	
			campo.focus();					
			return true;
		}
		else
			return false;
	}              

	//----------------------------
	//------ VALIDA EMAIL --------
	//----------------------------
	/*
		@lastModified 	7 mayo 2009
		@modifiedBy		ThaliaInfante
	*/
	function valida_email(id, cadena)
	{
		var campo = document.getElementById(id);
		var f=document.forma;
		    
	    var strValue = campo.value;
	    var regExEmail = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/; //regular expression email
	
	    if (!regExEmail.test(strValue))
	    {
	      	Sexy.alert(cadena);
	        campo.focus();
	        return true;
		}		
	}

	//----------------------------
	//----- VALIDA PASSWORD ------
	//----------------------------
	/*
		@lastModified	6 mayo 2009
		@modifiedBy		Thalia Infante
	*/
	function valida_password()
	{
		var campo1 = document.getElementById('cliente_password');
		var f=document.forma;
		
		if (campo1.value=="")
		{
			Sexy.alert("El campo Password no puede permanecer vacío");
			campo1.focus();
			return true;
		}
	
		if (f.cliente_confirma.value=="")
		{
			Sexy.alert("Confirme el password");
			f.cliente_confirma.focus();
			return true;
		}        
	
		if (campo1.value != f.cliente_confirma.value)
		{
			Sexy.alert("Campo de confirmar password incorrecto");
			campo1.focus();
			return true;
		}
	
		return false;
	}	

	//----------------------------
	//------ NOMBRE FACTURA ------
	//----------------------------
	function nombreFactura ()
	{
		var f=document.forma;
		var nombre="";
	
	    if (f.cliente_factura_nombre.value=="")
	    {	
			nombre+=f.cliente_nombre.value;
			nombre+=" " + f.cliente_paterno.value;
			nombre+=" " + f.cliente_materno.value;
			f.cliente_factura_nombre.value=nombre;
		}
		else
		{
			f.cliente_factura_nombre.value="";	
		}
	}
	
	/*
		@author		Thalia Infante
		@since 		7 mayo 2009
	*/
	function generaDireccion(idCalle, idColonia, idDelmun, idCp, idCboPais, idCboEdo, idOtroEdo, idCiudad)
	{
		var direccion = "";
		calle = document.getElementById(idCalle);
		colonia = document.getElementById(idColonia);
		delmun = document.getElementById(idDelmun);
		cp = document.getElementById(idCp);
		cboPais = document.getElementById(idCboPais);
		cboEdo = document.getElementById(idCboEdo);
		otroEdo = document.getElementById(idOtroEdo);
		ciudad = document.getElementById(idCiudad);
		
		pais = cboPais[cboPais.selectedIndex].text;
					
		direccion += calle.value;
							
		if (pais == "México")
		{			
			direccion += " Col. " + colonia.value;	
			estado = cboEdo[cboEdo.selectedIndex].text;
						
			if(estado == "Distrito Federal")
				direccion += " Del. " + delmun.value;
			else
				direccion += " Municipio " + delmun.value;
			
			direccion+=" C.P. " + cp.value;
		}											
		else
		{
			if(colonia.value != "")
				direccion += ", " + colonia.value;
			direccion += " " + cp.value;	
			estado = otroEdo.value;
		}						
					
		direccion+=" " + ciudad.value;																			
		direccion+=", " + estado; 
		direccion+=". " + pais;
		
		return direccion;
	}

	//----------------------------
	//---- DIRECCION FACTURA -----
	//----------------------------
	/*
		@author			Thalia Infante
		@since 			6 mayo 2009
	  	@lastModified 	7 mayo 2009
	*/
	function direccionFactura (tipo)
	{
		var sinRecibo = document.getElementById('sinRecibo');
		if(sinRecibo.checked == false)
		{
			var f = document.forma;
			var direccion = "";
			var domFiscal = document.getElementById('domFiscal');
			var domFiscalResumen = document.getElementById('domFiscalResumen');
			
			if(tipo == 'personal')
			{
				if(valida_direccion('cliente_direccion', 'cliente_colonia', 'cliente_delmun', 'cliente_cp', 'cliente_pais', 'cliente_estado', 'cliente_estado_otro', 'cliente_ciudad'))
				{
					if(domFiscal.style.display == '')
					{
						domFiscal.style.display = 'none';
						domFiscalResumen.style.display = '';
					}
					direccion = generaDireccion('cliente_direccion', 'cliente_colonia', 'cliente_delmun', 'cliente_cp', 
						'cliente_pais', 'cliente_estado', 'cliente_estado_otro', 'cliente_ciudad');					
				}
			}	
			else if(tipo == 'laboral')
			{
				if(valida_direccion('lcalle', 'lcolonia', 'ldelmun', 'lcp', 'lpais', 'lestado', 'lestado_otro', 'lciudad'))
				{
					if(domFiscal.style.display == '')	
					{	
						domFiscal.style.display = 'none';
						domFiscalResumen.style.display = '';
					}
					direccion = generaDireccion('lcalle', 'lcolonia', 'ldelmun', 'lcp', 'lpais', 'lestado', 'lestado_otro', 
						'lciudad');									
				}		
			}
			else if(tipo == 'fiscal')
			{	
				domFiscal.style.display = '';
				domFiscalResumen.style.display = 'none';
			}
			f.cliente_factura_direccion.value=direccion;
		} // sólo si se desea un recibo
	}// end direccionFactura

	//----------------------------
	//----- VALIDA TELEFONO ------
	//----------------------------
	/*
		@lastModified 	6 mayo 2009
		@modifiedBy		Thalia Infante		
	*/
	function valida_telefono(id, cadena)
	{
		var valid = "1234567890-+()ext. ";
		var temp;
		var campo = document.getElementById(id);	
		var longitud = campo.size;
	
		for (var i=0; i<longitud; i++) 
		{
			temp = "" + campo.value.substring(i, i+1);
			if (valid.indexOf(temp) == "-1") 
			{
				Sexy.alert (cadena);
				campo.focus();
				return true;
			}
		}
	
		return false;
	}
	
	/*
		@author	http://www.forosdelweb.com/f13/obtener-valores-input-radio-con-javascript-617238/
		@since 	6 mayo 2009		
	*/
	function checkselected(radio)
	{
		for (i=0; i<radio.length; i++)
		{
		    if (radio[i].checked)
		    	return radio[i].value;
		}
		return false;
	}  
	
	/*
		@author			Thalia Infante
	 	@since 			6 de mayo de 2009
	 	@lastModified 	8 de mayo de 2009
	*/
	function valida_direccion(calle, colonia, delmun, cp, cboPais, cboEdo, otroEdo, ciudad)
	{
		var combo = document.getElementById(cboPais);		
		pais=combo[combo.selectedIndex].text;
		
		if (vacio(calle,"El campo de Calle y Número no puede permanecer vacío"))
			return false;				
					
		var campoEdo = document.getElementById(otroEdo);
		var combo2 = document.getElementById(cboEdo);
		
		if (pais=="México")
		{
			var estado = combo2[combo2.selectedIndex].text; 
			campoEdo.value="";
			
			if (estado=="")
			{
				Sexy.alert("Tiene que indicar el estado");
				combo2.focus();
				return false;
			}
			
			if (vacio(colonia,"Tiene que proporcionar su colonia"))
				return false;
				
			if(estado == "Distrito Federal")
			{
				if (vacio(delmun,"Tiene que proporcionar la delegación"))
					return false;
			}
			else
			{
				if (vacio(delmun,"Tiene que proporcionar el municipio"))
					return false;
			}
		} 
		else
		{
			if (campoEdo.value == "")
			{
				Sexy.alert("Para otros paises diferentes de México, utilizar el campo Otro Estado");
				var indice=combo2.options.length - 1;
				combo2.selectedIndex=0;
				campoEdo.focus();
				return false;
			} 
		}
		
		if (vacio(cp,"El Código Postal no puede permanecer vacío"))
			return false;
		if (tipo_entero(cp))
			return false;	                                                	
		if (vacio(ciudad,"Tiene que indicar la ciudad o población"))
			return false;
			
		return true;
	}// end valida_direccion

	/*
		@author			Thalia Infante
	 	@since 			12 de mayo de 2009
	*/
	function valida_datos_personales()
	{	
		var f=document.forma;	
			
		if (vacio('cliente_email', 'El Correo Electr\363nico no puede permanecer vac\355o'))
	    	return false;
	    if (valida_email('cliente_email',"Correo Electrónico inválido."))
			return false;
		if(f.email_alternativo.value != "")
		{			
			if (valida_email('email_alternativo',"Correo Electrónico inválido."))
				return false;
		}            
		if (vacio('cliente_nombre',"El campo de Nombre no puede permanecer vacío"))
			return false;
		if (vacio('cliente_paterno',"El campo de Apellido Paterno no puede permanecer vacío"))
			return false;
		if (vacio('cliente_nick',"Necesitamos saber cómo dirigirnos a usted"))
			return false;	
		if (vacio('cliente_telCasa',"El Teléfono de casa no puede quedar vacio"))
			return false;
		if (valida_telefono('cliente_telCasa', "El campo de Teléfono es incorrecto favor de corregir"))
			return false;    
		if (valida_telefono('celular', "El celular es incorrecto favor de corregir"))
			return false;
		
		return true;
	}
	
	//----------------------------
	//------ VALIDA FORMA --------
	//----------------------------
	/*
		@lastModified 	27 mayo 2009	
		@modifiedBy		Thalia Infante	
	*/
	function valida()
	{
		var f=document.forma;
	    
	    if(!valida_datos_personales())
	    	return;
	    	
		if (valida_password())
			return;					       				
			
		if(!valida_direccion('cliente_direccion', 'cliente_colonia', 'cliente_delmun', 'cliente_cp', 'cliente_pais', 
				'cliente_estado', 'cliente_estado_otro', 'cliente_ciudad'))
			return;
			 			
		if (valida_telefono('cliente_telOficina', "El campo de Teléfono es incorrecto favor de corregir"))
			return;	     		
		if(f.lcalle.value != "")
		{
			if(!valida_direccion('lcalle', 'lcolonia', 'ldelmun', 'lcp', 'lpais', 'lestado', 'lestado_otro', 'lciudad'))
				return; 
		}
		
		if(f.ex_al.value == "")
		{
			var sinRecibo = document.getElementById('sinRecibo');
			if(sinRecibo.checked == false)
			{
				if (vacio('cliente_factura_nombre',"Tiene que indicar a nombre de quién se emitirá el recibo"))
					return;
	
				selected = checkselected(f.dir_factura);
				if (!selected)
				{
					Sexy.alert("Tiene que indicar el domicilio fiscal");
				}
				else
				{
					if(selected != 'fiscal')
					{
						if (vacio('cliente_factura_direccion',"Tiene que indicar el domicilio fiscal"))
							return;
					}
					else
					{
						if(!valida_direccion('fcalle', 'fcolonia', 'fdelmun', 'fcp', 'fpais', 'festado', 'festado_otro', 'fciudad'))
							return; 
						else
						{
							f.cliente_factura_direccion.value = generaDireccion('fcalle', 'fcolonia', 'fdelmun', 'fcp', 'fpais', 
								'festado', 'festado_otro', 'fciudad');
						}									
					}		
				}  							
				
				if (vacio('cliente_factura_rfc',"Nos tiene que proporcionar el RFC"))
					return;
			}    	
		}	  
	
		f.cliente_nombre_completo.value=f.cliente_nombre.value+" "+f.cliente_paterno.value+" "+f.cliente_materno.value;
		f.submit();  
	}

	/*
		@author			Thalia Infante
		@since 			6 mayo 2009
	*/
	function domicilioLaboral()
	{
		var domLaboral = document.getElementById('domLaboral');
		if(domLaboral.style.display == '')
		{
			domLaboral.style.display = 'none';
			document.getElementById('muestraDomLaboral').style.display = '';
			document.getElementById('lcalle').value = '';
			document.getElementById('lreferencia').value = '';
			document.getElementById('lcolonia').value = '';
			document.getElementById('ldelmun').value = '';
			document.getElementById('lcp').value = '';
			document.getElementById('lciudad').value = '';
		}
		else
		{
			domLaboral.style.display = '';
			document.getElementById('muestraDomLaboral').style.display = 'none';
		}
	}
	
	/*
		@author			Thalia Infante
		@since 			6 mayo 2009
	*/
	function datosFactura()
	{
		var sinRecibo = document.getElementById('sinRecibo');
		var cliente_factura_nombre = document.getElementById('cliente_factura_nombre');
		var cliente_factura_rfc = document.getElementById('cliente_factura_rfc');
		var cliente_factura_direccion = document.getElementById('cliente_factura_direccion');
		var domFiscalResumen = document.getElementById('domFiscalResumen');
		if(sinRecibo.checked == true)
		{
			var domFiscal = document.getElementById('domFiscal');
			domFiscal.style.display = 'none';
			domFiscalResumen.style.display = '';
			cliente_factura_nombre.disabled = true;
			cliente_factura_rfc.disabled = true;
			cliente_factura_direccion.value = '';
			cliente_factura_direccion.disabled = true;
		}
		else
		{
			cliente_factura_nombre.disabled = false;
			cliente_factura_rfc.disabled = false;
			cliente_factura_direccion.disabled = false;
		}
	}
	
	/**
	* @since 28 mayo 2009
	* @author Thalia Infante
	*/
	function tipoEstado()
	{
		var id_direccion = document.getElementById('id_direccion');	
		var edoMex = document.getElementById('edoMex');
		var edoOtro = document.getElementById('edoOtro');			
		if(id_direccion.value == 0)
		{
			edoMex.style.display = '';
			edoOtro.style.display = '';
		}
		else
		{
			var pais = document.getElementById('pais');
			if(pais.options[pais.selectedIndex].text == "México")
			{
				edoMex.style.display = '';
				edoOtro.style.display = 'none';				
			}
			else
			{
				edoMex.style.display = 'none';
				edoOtro.style.display = '';				
			}
		}
	}