// JavaScript Document

/*
Variables globales
*/
//Direccion base
var url_global = "..";

//Versiones del navegador que posee el usuario
ie4 = ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4 )) 
ns4 = ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) >= 4 )) 

/******************************************************
DESCRIPCION	: Verifica y convierte las entidades segun sea netscape o IE
SALIDA 		: etiquetas del navegador
PARAMETROS				
	e   : objeto
	f   : capa
******************************************************/
function getElement(e,f){
	
    if(document.layers){
        f=(f)?f:self;
        if(f.document.layers[e]) {
            return f.document.layers[e];
        }
        for(W=0;i<f.document.layers.length;W++) {
            return(getElement(e,fdocument.layers[W]));
        }
    }
    if(document.all) {
        return document.all[e];
    }
    return document.getElementById(e);
}

/******************************************************
DESCRIPCION	: Verifica si una direccion de correo es valida
SALIDA 		: false si no es correcta   o true si lo es
PARAMETROS				
	email   : Direccion de correo a verificar
******************************************************/
function Valida_Email(email)
{
   if (email.indexOf('@',0)==-1 || email.indexOf('@',0)== 0 || email.indexOf('.',0)==-1) 
	   		{
				alert("\nDirección de correo inválida.\nP.E. sucorreo@dominio.com.co");
				return false;
			}
	return true;		
}

/******************************************************
DESCRIPCION	: Parche para simular accion de click
SALIDA 		: vacio
PARAMETROS				

******************************************************/
function On_Click()
{
	//No hace nada
	
}


/******************************************************
DESCRIPCION	: Realiza validacion sobre los campos de un formulario
SALIDA 		: Un mensaje de alerta si queda algun campo vacio o tru en caso contrario
PARAMETROS				
	forma   : Objeto de formulario con todos sus elementos
******************************************************/
function Valida_Forma_Completa(forma,email,cual, parche, validarC)
{
    var variables;
	variables 	= "";
	total 		= forma.elements.length;
    
	for(i=0;i<total;i++)
		{
			 if( forma.elements[i].value=="")
			 	{
					alert("\nEl campo  * " +  forma.elements[i].name + " *  debe contener un valor");
					forma.elements[i].focus();
					return false;
			    }
			
			 //Se verifica la direcion de correo
			if(forma.elements[i].name=="correo")
			  	{
					temp =  Valida_Email(forma.elements[i].value);
					if(temp==false)
						{
							forma.elements[i].focus();
							return false;
						}
				}//fin if correo
				
		}//fin for
	
	//Formulario de registro
	
	if(cual==1 && parche==1)
		{
			pas1 	= window.document.registro.pass1.value;
			pas2 	= window.document.registro.pass2.value;
			if(pas1!=pas2)
				{
					alert("La contraseña y su confirmación no coinciden.\nDigitelas de nuevo.");
					window.document.registro.pass1.value = window.document.registro.pass2.value = "";
					return false;
				}
				
			if(validarC=="" || validarC==null) {	
					//Clientes especiales o normales
					ce 	= window.document.registro.clienteEspecial.value;
					cf 	= window.document.registro.codFactura.value;
					if(ce=="tvcable")
						if(cf=="")
							alert("Si es usuario tvcable, digite el número de su factura.");
			}		
		}//fin cual==1
	
return true;
}

/******************************************************
DESCRIPCION	: cierra la ventana actual y recarga la ventana padre
SALIDA 		: 
PARAMETROS				
	
******************************************************/
function salida()
{
	window.opener.location.reload();
	window.close();
}


/******************************************************
DESCRIPCION	: Muestra una ventanna de confirmacion con dos botones
SALIDA 		:  true(aceptar) o false(cancelar)
PARAMETROS
		tipo 	: Opcion que selecciona la pagina a cargar
		reg		: Identificador del registro a eliminar
		opc 1,2 : Opciones adicionales					
******************************************************/
function Eliminar_Registro(tipo,reg,opc1,opc2)
{
	switch(tipo)
		{
			case 1://Elimina una foto del servidor
				direccion = url_global + "/admin/productos_fotos.php?elimina=" + reg + "&idproducto=" + opc1;
				break;
			case 2://Elimina registro del carro de compras
				direccion = url_global + "/tvirtual/actualiza_carro.php?idEliminaItemCarro=" + reg;
				break;
		}

if (confirm("¿ Esta seguro de eliminar este Registro ?"))
	 {
		location.replace(direccion);
	 }

}

/******************************************************
DESCRIPCION	: Realiza validacion sobre los campos de un formulario
SALIDA 		: Un mensaje de alerta si queda algun campo vacio o tru en caso contrario
PARAMETROS				
	forma   : Objeto de formulario con todos sus elementos
******************************************************/
function Completa_Checks(forma, opc)
{
    var variables;
	variables 	= "";
	total 		= forma.elements.length;
    //alert(total);
	for(i=0;i<total-1;i++)
		{
			forma.elements[i].checked = opc;
			forma.elements[i].checked;
			//alert(forma.elements[i].checked);
		}


}


function Verifica_Elimina(forma)
{
		if (confirm("¿ Esta seguro de eliminar este Registro ?\nEsta operacion eliminará todos los registros hijos de otras tablas que esten relacionadas"))
			 {
				return true;
			 }
		else
			return false;
		return false;	
}

/******************************************************
DESCRIPCION	 : Desactiva el boton derecho del mouse
SALIDA 		:  Ventana de alerta con mensaje
PARAMETROS
******************************************************/
function click()
{
 if (event.button==2) 
 	{
    	alert("Opción no disponible.");
		window.status="Click derecho desactivado";
 	}
}


/******************************************************
DESCRIPCION	: Abre una nueva ventana
SALIDA 		:  Ventana
PARAMETROS
		tipo 		: Opcion que selecciona la pagina a abrir
		reg			: Identificador principal para la pagina a cargar
		opc 1,2,3 	: Opciones adicionales					
******************************************************/
function Nueva_Ventana(tipo,reg,opc1,opc2,opc3)
{	
	var ventana;
	
	switch(tipo)
		{
			case 1://Detalles de cliente en admin
				caracteristicas = "top=10,left=10,width=500,height=370,scrollbars=no";
				url = url_global + "/admin/usuarios_detalle.php?user=" + reg;
				vent="usuarios";				
				break;
			case 2://inicio de sesion
				caracteristicas = "scrollbars=yes,resizeable=yes,status=yes";
				url = url_global + "/admin/sesion.php";
				vent="sesion";				
				break;
			case 3://Categoria
				caracteristicas = "top=10,left=10,width=470,height=330,scrollbars=no,resizeable=no,status=no";
				if(reg!=0 && reg!="")
					url = url_global + "/admin/categorias_edit.php?idcategoria=" + reg;
				else
					url = url_global + "/admin/categorias_edit.php";
				
				vent="categoria";				
				break;
			case 4://Nueva foto en administrador
				caracteristicas = "top=10,left=10,width=500,height=300,scrollbars=no,resizeable=no,status=no";
				url = url_global + "/admin/productos_fotos_edit.php?idprod=" + reg + "&idfoto=" + opc1;
				vent="";				
				break;
			case 5://Ventana con fotografia ampliada
				caracteristicas = "top=10,left=10,width=450,height=600,scrollbars=no,resizeable=no,status=no";
				url = url_global + "/tvirtual/foto_grande.php?idfoto=" + reg;
				vent="Foto";				
				break;
			case 6://Detalle producto-agregar al carro
				caracteristicas = "top=1,left=100,width=620,height=600,scrollbars=yes,resizeable=yes,status=yes";
				url = url_global + "/tvirtual/detalle_producto.php?idproducto=" + reg;
				vent="Producto";				
				break;
			case 7://generar bono
				caracteristicas = "top=10,left=10,width=550,height=600,scrollbars=yes,resizeable=no,status=no";
				url = url_global + "/tvirtual/solicitud_bono.php?idproducto=" + reg;
				vent="Bono";				
				break;
			case 8://Detalle producto
				caracteristicas = "top=100,left=100,width=620,height=470,scrollbars=no,resizeable=yes,status=yes";
				url = url_global + "/tvirtual/detalle_producto.php?idproducto=" + reg + "&oculta_carro=" + opc1;
				vent="Producto";				
				break;
			case 9://Terminos de uso
				caracteristicas = "top=100,left=100,width=620,height=470,scrollbars=yes,resizeable=yes,status=yes";
				url = url_global + "/tvirtual/terminos.php";
				vent="Terminos";				
				break;
			case 10://Detalle de factura imprimible
				caracteristicas = "top=100,left=100,width=700,height=500,scrollbars=yes,resizeable=yes,status=yes";
				url = url_global + "/tvirtual/factura_imprimible.php";
				vent="FacturaPrint";				
				break;
			case 11://Detalle de orden
				caracteristicas = "top=100,left=100,width=620,height=400,scrollbars=yes,resizeable=yes,status=yes";
				url = url_global + "/cliente/detalle_orden.php?orden_cliente=" + reg + "&codFactura=" + opc1;
				vent="DetOrdenCliente";				
				break;
			case 12://Significado del estado de la orden
				caracteristicas = "top=200,left=200,width=370,height=180,scrollbars=yes,resizeable=yes,status=no";
				url = url_global + "/cliente/estado_detalle.php?estadoOrden=" + reg ;
				vent="detalleEstado";				
				break;
			case 13://Detalle de orden admin
				caracteristicas = "top=100,left=100,width=620,height=400,scrollbars=yes,resizeable=yes,status=yes";
				url = url_global + "/admin/detalle_orden.php?orden_cliente=" + reg + "&codFactura=" + opc1;
				vent="FacturaAdmin";				
				break;
			case 14://Historial de cambios de estado.
				caracteristicas = "top=100,left=100,width=620,height=400,scrollbars=yes,resizeable=yes,status=yes";
				url = url_global + "/admin/historial_orden.php?orden_cliente=" + reg + "&codFactura=" + opc1;
				vent="Historial";				
				break;
			case 15://Detalles de bono admin
				caracteristicas = "top=10,left=10,width=430,height=465,scrollbars=auto,resizeable=no,status=no";
				url = url_global + "/admin/bono_detalle.php?idbono=" + reg + "&codFactura=" + opc1;
				vent="Historial";				
				break;
			case 16://Cambio de estado para bonos admin
				caracteristicas = "top=10,left=10,width=390,height=390,scrollbars=no,resizeable=yes,status=no";
				url = url_global + "/admin/bono_estado.php?idBono=" + reg + "&codigoBono=" + opc1;
				vent="bonosEstado";				
				break;
			case 17://Detalles de bono cliente
				caracteristicas = "top=10,left=10,width=430,height=465,scrollbars=auto,resizeable=no,status=no";
				url = url_global + "/cliente/bono_detalle.php?idbono=" + reg + "&codFactura=" + opc1;
				vent="Historial";				
				break;	
			case 18://Cambio de estado para bonos cliente
				caracteristicas = "top=10,left=10,width=390,height=360,scrollbars=no,resizeable=yes,status=no";
				url = url_global + "/cliente/bono_estado.php?idBono=" + reg + "&codigoBono=" + opc1;
				vent="BonosEstado";				
				break;
			case 19://chat
				caracteristicas = "top=10,left=10,width=500,height=400,scrollbars=no,resizeable=yes,status=yes";
				url = "http://www.colombianfashion.net/chat_colombianfashion/chat_flash/chat/login.php?cirujano=32&store=www.colombianfashion.com-tienda_virtual&tipoUsuario=1020";
				vent="Chat";				
				break;					
		   	case 20://Para pistas musicales
				caracteristicas = "top=10,left=10,width=100,height=70,scrollbars=auto,resizeable=no,status=no";
				url = reg;
				//alert("No disponible");
				vent="Musica";				
				break;						
		}
	ventana = window.open(url,vent,caracteristicas);
	ventana.focus();
}

/******************************************************
DESCRIPCION	: Agrega una pagina a favoritos
SALIDA 		:  cuadro de agregar a favoritos en IE, una ventana alert en NS
PARAMETROS
		direccion 		: direccion url para agregar al historia
		Descripcion		: Detalle de la pagina					
******************************************************/
function favoritos(direccion,descripcion)
{
	if ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion)>3))
		{
			window.external.AddFavorite(direccion,descripcion);
		}
		else if(navigator.appName == "Netscape")	
		 {
			alert("Presione Crtl+D para agregar esta página a sus 'Bookmarks'");
		 }
		else
		{
			alert("Su navegador no dispone de esta opción");
		}
}//End function


/******************************************************
DESCRIPCION	: Activa el check del padre inmediatamente superior
SALIDA 		: Elemento check padre activado
PARAMETROS
		padre	: Padre del elemento actual
		yo		: elemento actual					
******************************************************/
function changeP(padre,yo) {
	var papa
	if ( yo.checked ) {
		if (padre != "c0") {
			papa = eval("cate." + padre)
			papa.checked = 1;
		}
	} else {
		for (i=0;i<cate.length;i++) {
			if (cate.elements[i].padre == yo.name) {
				cate.elements[i].checked = 0;
			}
		}		
	}	
}

function setCheckboxes(the_form, do_check)
{
    var elts      = (typeof(document.forms[the_form].elements['selected_db[]']) != 'undefined')
                  ? document.forms[the_form].elements['selected_db[]']
                  : (typeof(document.forms[the_form].elements['selected_tbl[]']) != 'undefined')
          ? document.forms[the_form].elements['selected_tbl[]']
          : document.forms[the_form].elements['selected_fld[]'];
    var elts_cnt  = (typeof(elts.length) != 'undefined')
                  ? elts.length
                  : 0;

    if (elts_cnt) {
        for (var i = 0; i < elts_cnt; i++) {
            elts[i].checked = do_check;
        } // end for
    } else {
        elts.checked        = do_check;
    } // end if... else

    return true;
} // end of the 'setCheckboxes()' function

/******************************************************
DESCRIPCION	: Despliega o esconde un elemento html
SALIDA 		: 
PARAMETROS
		elemento 		: identificador del elemento html
******************************************************/
function Despliega_Repliega(elemento) 
{
	 if(getElement(elemento).style.display == 'none')
		getElement(elemento).style.display = 'block';
	 else
		getElement(elemento).style.display = 'none';

}

/******************************************************
DESCRIPCION	: Despliega o esconde un elemento html
SALIDA 		: 
PARAMETROS
		opc				: Opcion para elementos radio
		elemento 		: identificador del elemento html
******************************************************/
function Oculta_Pago(opc,elemento,temp)
{
	if(opc!="" )
		opc = parseInt(opc);
	
	if(opc==1 && elemento=="metodo_pago")//Acepto terminos
		getElement(elemento).style.display = 'block';
	
	if(opc==2 && elemento=="metodo_pago")//no acepto terminos
		{	
			getElement(elemento).style.display = 'none';
			if(getElement("pagoTarjetaCredito").style.display == 'block')
							getElement("pagoTarjetaCredito").style.display = 'none';
			if(getElement("pagoAbono").style.display == 'block')
							getElement("pagoAbono").style.display = 'none';
		
		}	
		
	if(elemento=="pagos")//Algun metodo de pago
		{
			//alert("El metodo es : " + opc);
			switch (opc)
				{
					case 1: //tarjeta de credito
						if(getElement("pagoAbono").style.display == 'block')
							getElement("pagoAbono").style.display = 'none';
						getElement("pagoTarjetaCredito").style.display = 'block';
						//Poner  a nulo los campos de TC
						window.document.formaMetPag.tc_nombre.value = "";
						window.document.formaMetPag.tc_tipo.options[0].selected = true ;
						window.document.formaMetPag.tc_banco.value= "";
						window.document.formaMetPag.tc_numero.value= "";
						window.document.formaMetPag.tc_cuotas.options[0].selected = true ;
						window.document.formaMetPag.tc_vence_mes.options[0].selected = true ;
						window.document.formaMetPag.tc_vence_anio.options[0].selected = true ;
						window.document.formaMetPag.tc_codigo.value= "";
						break;
					case 7: //Abono a cuenta
						if(getElement("pagoTarjetaCredito").style.display == 'block')
							getElement("pagoTarjetaCredito").style.display = 'none';
						getElement("pagoAbono").style.display = 'block';
						//Poner  algun valor en los campos de tc
						window.document.formaMetPag.tc_nombre.value = "1";
						window.document.formaMetPag.tc_tipo.options[1].selected = true ;
						window.document.formaMetPag.tc_banco.value= "1";
						window.document.formaMetPag.tc_numero.value= "1";
						window.document.formaMetPag.tc_cuotas.options[1].selected = true ;
						window.document.formaMetPag.tc_vence_mes.options[1].selected = true ;
						window.document.formaMetPag.tc_vence_anio.options[1].selected = true ;
						window.document.formaMetPag.tc_codigo.value= "1";
						break;	
					default : //Ninguna seleccion o campo vacio
						if(getElement("pagoTarjetaCredito").style.display == 'block')
							getElement("pagoTarjetaCredito").style.display = 'none';
						if(getElement("pagoAbono").style.display == 'block')
							getElement("pagoAbono").style.display = 'none';
	
				}
		}

}


/******************************************************
DESCRIPCION	: Despliega una ventana informativa
SALIDA 		: 
PARAMETROS
		msg				: Tipo de mensaje a mostrar
******************************************************/
function Mensajes_Alerta(msg)
	{
		switch(msg)
			{
				case "registro":
					texto = "Para revisar el detalle de su compra completo,es necesario\nque ingrese su dirección de correo y su contraseña\n(Soy usuario registrado, en la parte izquierda de la ventana),\nen caso de ser usuario registrado.\n\nSí no se ha registrado, haga click en el icono registrarse.";
					alert(texto);
					break;
				case "registro_bono":
					texto = "Sí desea solicitar un bono para este producto, es necesario\nque autentique con su dirección de correo y su contraseña.\n\nSí no se ha registrado, haga click en el enlace registrarse.";
					alert(texto);
					break;
				case "catalogo":
					texto = "Para solicitar catalogo de productos a domicilio,es necesario\nque ingrese su dirección de correo y su contraseña\n(Soy usuario registrado, en la parte izquierda de la ventana),\nen caso de ser usuario registrado.\n\nSí no se ha registrado, haga click en el icono registrarse.";
					alert(texto);
					break;
				case "registro_compra":
					texto = "Si desea realizar la compra de cualquiera de nuestros productos\nes necesario que autentique con usuario y \ncontraseña( En caso de ser usuario registrado).\n\nSi no se ha registrado, haga click en el enlace registrarse  y \ndigite los datos solicitados.";
					alert(texto);
					break;	
				default: 
					alert("Opcion no existente.");	
			}
	
	}

/******************************************************
DESCRIPCION	: Fija ciertos valores en campos de formulario
SALIDA 		: 
PARAMETROS
		valor			: Tipo de mensaje a mostrar
******************************************************/
function Carga_Valor_Campos(valor,opc)
	{
		if(valor==1)//Exitosa
			{
				document.formaTC.ingresarT.value 			= "Transaccion exitosa";
				document.formaTC.codigoTransaccion.value 	= "";
				document.formaTC.fechaT.value 				= "";
				if(opc==1)//Consignacion
					{
						document.formaTC.banco.value  = "";
						document.formaTC.ingresarT.value 			= "Consignacion exitosa";
					}
				
			}
		else//Invalida
			{
				document.formaTC.codigoTransaccion.value 	= "Sin codigo";
				document.formaTC.ingresarT.value 			= "Transaccion invalida. Cancelar orden";
				document.formaTC.fechaT.value 				= "0000-00-00";
				if(opc==1)//Consignacion
					{
						document.formaTC.banco.value  = "Sin banco";
						document.formaTC.ingresarT.value = "Consignacion invalida. Cancelar orden";
					}
			}
	}

function Bono_Confirmado(forma)
{
	if(forma.estado_bono.value==3 || forma.estado_bono.value==2)//bono confirmado
		{
				total 		= forma.elements.length;
    			for(i=0;i<total;i++)
					{
						 if( forma.elements[i].value=="")
							{
								alert("\nEl campo  * " +  forma.elements[i].name + " *  debe contener un valor. \n\nRecuerde que para confirmar un bono todos los campos son necesarios.");
								forma.elements[i].focus();
								return false;
						   }
					}//fin for
				
				if(confirm("¿ Realmente desea pasar a estado exitoso este bono ?")==false)
					return false;
						
				return true;
		}
	if(forma.estado_bono.value=="")
		{
			alert("El estado del bono no puede ser vacio");
			forma.estado_bono.focus();
			return false;
		}
		
	return true;
}	

function Bono_Datos(forma)
{
	total 		= forma.elements.length;
    for(i=0;i<total;i++)
		{
			 if( forma.elements[i].value=="")
				{
					alert("\nEl campo  * " +  forma.elements[i].name + " *  debe contener un valor. \n\nRecuerde que para confirmar el bono, todos los datos son necesarios.");
					forma.elements[i].focus();
					return false;
			   }
		}//fin for
		
	if(confirm("¿ Realmente desea ingresar los datos de este bono ?")==false)
		return false;
						
	return true;
}	

function Validar_Entero(valor)
{
     //Intento convertir a entero. Si era un entero no le afecta, si no lo era lo intenta convertir
     valor = parseInt(valor);

     //Compruebo si es un valor numérico
     if (isNaN(valor))//No es entero 
         return "";
	 else//Es entero
	     return valor;
}

function Ventana_Prompt(cual,msg,reg,valorNumerico,maximo)
{
	
	
	numero = prompt(msg,valorNumerico);
	
	//Verifico y valido que el numero sea entero
	if(numero!=null)
		{	
			while(numero!=null)
				{	if(Validar_Entero(numero)!="" && numero<=maximo)
						{
							break;
						}
					else//No es entero
						{
							numero = prompt("Por favor digite un numero entero no mayor a " + maximo,valorNumerico);
						}	
				}//fin while
			
			if(numero!=null) 
				{	switch (cual)
						{
							case 1:
								url = url_global + "/tvirtual/actualiza_carro.php?idActualizaItemCarro=" + reg + "&cantidadArticulos=" + numero;
								break;
						}
		
					location.replace(url);
				}//fin numero null interno
		}//fin  numero null externo
	
}

function CambiaCodigo()
{
	//Se determina cual es la opcion seleccionada
	opcion = document.registro.clienteEspecial[document.registro.clienteEspecial.selectedIndex].value;
	//alert(opcion);
	
	if(opcion=="tvcable")
		{
				document.registro.codFactura.disabled = false;
				document.registro.codFactura.value 		= "";
		}
		
	if(opcion=="colombianfashion")
		{
				document.registro.codFactura.disabled = true;
				document.registro.codFactura.value 		= "Cliente colombianfashion";
		}	
	
	if(opcion=="" ) 
		{	
			document.registro.codFactura.disabled = true;
			document.registro.codFactura.value 		= "Cliente colombianfashion";
		
		}

}	