document.oncontextmenu="return false";

/*
if (navigator.userAgent.indexOf("Firefox")!=-1)
	navegador="f";
else if (navigator.userAgent.indexOf("Opera")!=-1)
	navegador="o";
else if (navigator.userAgent.indexOf("MSIE")!=-1)
	navegador="e";
else 
	navegador="e";
	document.write('<link rel="stylesheet" href="css/'+navegador+'.css" type="text/css" />');
*/

var IE4 = ((navigator.userAgent.indexOf("MSIE")!=-1) && navigator.appVersion.substring(0,1) >= 4);	

ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false

function clikker(a) {
	if(IE4) {
		if (a.style.display =='') {
			a.style.display = 'none';
		}
		else {
			a.style.display='';
		}
	}
	else {
		if (a.style.visibility == "visible")
		{
			a.style.visibility = "hidden";
			a.style.display = "none";
		}
		else
		{
			a.style.visibility = "visible";
			a.style.display = "block";
		}
	}
}

function favoritos(){
	if ((navigator.appName=="Microsoft Internet Explorer") && (parseInt(navigator.appVersion)>=4)) { 
		var url="http://www.finlux.fi"; 
		var titulo="Finlux"; 
		window.external.AddFavorite(url,titulo); 
	} 
	else { 
		alert ("Presione Crtl+D para agregar la web de Finlux entre sus sitios Favoritos "); 
	} 
}

function inicio(){
	obj_pagina_inicio.style.behavior='url(#default#hom epage)';
	obj_pagina_inicio.setHomePage("http://www.finlux.fi"); 
}

function rayarTbl(id)
{
  var normal = false;
  var normalClass = arguments[1] ? arguments[1] : "rayadoclaro";
  var otraClass = arguments[2] ? arguments[2] : "rayadonormal";

	var tables = document.getElementsByClassName(id);

	for (var t = 0; t < tables.length; t++) {
		var tbodies = tables[t].getElementsByTagName("tbody");
		for (var h = 0; h < tbodies.length; h++) {
			var trs = tbodies[h].getElementsByTagName("tr");
			for (var i = 0; i < trs.length; i++) {
				if (! hasClass(trs[i]) ) {
					trs[i].className =  normal ? normalClass : otraClass;
			 }
			// cambiar entre otra y normal, o vice-versa
				normal =  ! normal;
			}
		}
	}
}

document.getElementsByClassName = function (dato)
{
  var         my_array = document.getElementsByTagName("*");
  var         resultados = new Array();
  var        i;
  var        j;

  for (i = 0, j = 0; i < my_array.length; i++)
  {
    var c = " " + my_array[i].className + " ";
    if (c.indexOf(" " + dato + " ") != -1)
      resultados[j++] = my_array[i];
  }
  return resultados;
}

function hasClass(obj) {
     var result = false;
     if (obj.className) {
         result = obj.className;
     }
     return result;
  }   
  
  
function soloNumeros(evt){
	var e = event || evt;
	var charCode = e.which || e.keyCode;
	if (charCode > 31 && (charCode < 48 || charCode > 57))
		return false;
	return true;
}

function actualizaPrecio(campo, precio, stock, destino){
		destino=eval(destino);
		if (campo.value > stock) campo.value=stock;
		importe=campo.value * precio;
		destino.innerHTML=importe;
		var precioTotal=0;
		
		var spantags = document.getElementsByTagName("span");
		for (var s = 0; s < spantags.length; s++) {
			if (spantags[s].id.indexOf("precio_")===0){
				precioProducto=eval(spantags[s].id+".innerHTML");
				precioTotal += parseFloat(precioProducto);
//				alert ("precio de "+spantags[s].id+" es "+precioProducto);
			}
		}
		totalPedido.innerHTML=precioTotal;
}

function validaContacto(formulario)
{
	eval ("form=document."+formulario);
	error=false;
	avisado=false;
  for(i=0;i<form.length;i++) //recorremos cada campo del formulario recibido como parámetro
  {
	   	 campo=form.elements[i];
	   	 if (campo.name=="nombre")
	   	 {
				if(campo.value=="")
					error="Rellene el campo Nombre";
		   }
	   	 else if (campo.name=="telefono")
	   	 {
				if (campo.value!="" && (esNumero(campo.value)==false || campo.value.length<9))
					error="El Teléfono es incorrecto";
		   }
	   	 else if (campo.value!="" && campo.name=="email")
	   	 {
				if (ValidarCorreo(campo.value)==false)
					error="El EMail es incorrecto";
		   }
	   	 else if (campo.value=="" && campo.name=="comentario")
	   	 {
					error="Rellene el campo Comentario";
		   }

	  	if (error && !avisado)
	  	{
				avisado=true;
	  		alert(error);
				campo.focus();
			}
	}

	if (!error && form.telefono.value=="" && form.email.value=="")
		{
				form.telefono.focus();
				error="Indique al menos un dato de contacto"
	  		alert(error);
		}

	if (!error)
		  form.submit();
}

function esNumero(campo)
{
	esValido=false;
	arrayCaracteresPermitidos = new Array('0','1','2','3','4','5','6','7','8','9');
	for (f = 0; f < campo.length; f++)
	{     
		caracterRecibido=campo.charAt(f);
		esValido=false;
		for(x=0; x<arrayCaracteresPermitidos.length;x++)
		{
			//y ahora comparo
			if(caracterRecibido==arrayCaracteresPermitidos[x])
			{
				esValido = true;
				break;
			}
		}
		if(!esValido)// Si el caracter recibido coincide con alguno del array será true.
		{
			return false;
			break;
		}
	}
	if(!esValido)// Si el caracter recibido coincide con alguno del array será true.
	{
		return false;
	}
	else return true;
}

function ValidarCorreo(email)
{ 
	var foundError = false; 
	var contador = 0; 
	var posicion = 1;
	var encontrada = false;
	var posicionpunto = 0;
	var posicionarroba = 0;
	var uno = "";
	var ultimo = 0;  
	var longitud = 0;
	var arrobaux = 0;
	var uno;
	uno = " ";
         
	// Bloque que quita los blancos por la derecha y por la izquierda
	sinblancos = Trim(email);   
   
	// Bloque para comprobar que no hay blancos entre medias de la cadena
	for (x=0 ; x < sinblancos.length ; x++) 
	{
		uno = sinblancos.substring(x, x +1); 
		if (uno.charAt() == " ")
		{ 
			foundError = true;
		} 
	}
  
	// Bloque para controlar que el primer caracter no sea una arroba
	if (foundError == false && sinblancos.charAt(0) == "@" ) 
	{ 
		foundError = true;              
	}

	// Bloque para controlar que el primer caracter no sea un punto
	if (foundError == false && sinblancos.charAt(0) == "." ) 
	{ 
		foundError = true;              
	}
	
	//Bloque para controlar que el ultimo caracter no sea un punto
	if (foundError == false) 
	{     
		longitud = sinblancos.length;
		if (sinblancos.charAt(longitud - 1) == ".")
		{
			foundError = true;      
		} 
	} 
	
	//Bloque para controlar que el ultimo caracter no sea una arroba
	if (foundError == false) 
	{     
		longitud = sinblancos.length;
		if (sinblancos.charAt(longitud - 1) == "@")
		{
			foundError = true;      
		} 
	} 

	// Bloque para comprobar que no hay mas de una arroba
	if (foundError == false) 
	{
		for (x=0 ; x < sinblancos.length ; x++) 
		{
			uno = sinblancos.substring(x, x +1); 
			if (uno == "@")
			{ 
				contador++;
			} 
		}
    
		if (contador < 1 || contador > 1 )      
		{
			foundError = true;
		}
	} 
	// Bloque para comprobar que al menos hay un punto
	if (foundError == false) 
	{ 
		var contador=0;
		for (x=0 ; x < sinblancos.length ; x++) 
		{
			uno = sinblancos.substring(x, x +1); 
			if (uno.charAt() == ".")
			{ 
				contador = contador + 1;
			} 
   	}
		if (contador == 0)      
		{      
			foundError = true;
		}
	} 

	// Bloque para comprobar el sitio donde esta la arroba 
	if (foundError == false) 
	{
		for (x=0 ; x < sinblancos.length ; x++) 
		{
			uno = sinblancos.substring(x, x +1); 
			if (uno.charAt() == "@")
			{
				encontrada = true; 
				posicionarroba = posicion;
				break; 
			}
   
			if (encontrada == false)
			{  
				posicion = posicion + 1; 
			} 
		} 
	} 
	var HayPuntoDespArroba='N';    

	// Bloque para controlar si hay un punto tras la arroba y caracteres entre punto y punto
	if (foundError == false) 
	{
		posicion = 1;
		uno = "";
		for (x=0 ; x < sinblancos.length ; x++) 
		{
			uno = sinblancos.substring(x, x +1); 
			if (uno.charAt() == ".")
			{
				posicionpunto = posicion; 
				if ((posicionpunto - 1) == posicionarroba)
				{        
					foundError = true; 
				}   
				if (posicion - 1 == ultimo)
				{
					foundError = true; 
				}
			} 
			posicion = posicion +1 ;
			ultimo = posicionpunto;
		}
		var buscaPunto=sinblancos.indexOf('.',posicionarroba);
		if(buscaPunto!='-1')
		{
			HayPuntoDespArroba='S';
		}
		if ( HayPuntoDespArroba=='N')
		{
			foundError = true; 
		}
	}
	if (foundError)
	{	
		return false;
	}
	else
		return true; 
}

function Trim(str)
{
	return LTrim(RTrim(str));
}

function LTrim(str)
{
	var whitespace = new String("\t\n\r");
	var s = new String(str);
	
	if(whitespace.indexOf(s.charAt(0))!= -1)
	{
		var j = 0,i=s.length;
		while(j<i&&whitespace.indexOf(s.charAt(j))!= -1) j++
			s = s.substring(j,i);
	}
	return s;
}

function RTrim(str)
{
	var whitespace = new String("\t\n\r");
	var s = new String(str);
	
	if(whitespace.indexOf(s.charAt(s.length-1))!= -1)
	{	
		var i = s.length-1;
		while(i>0&&whitespace.indexOf(s.charAt(i))!=-1) i--
			 s = s.substring(0,i+1);
	}
	return s;
}

function validarNIF(nif) {
	letra=nif.substring(nif.length, nif.length-1);
	dni=nif.substring(0, nif.length-1);
	var valida=true;
	var tabla=new Array('T','R','W','A','G','M','Y','F','P','D','X','B','N','J','Z','S','Q','V','H','L','C','K','E');
	var esnum = esNumero(dni);
	if(esnum==false)
	{
		valida=false;
		//alert("El NIF / NIE es incorrecto");
		return valida;
	}
	if(!validarNum(dni))
	{
		valida=false;
		//alert("El NIF / NIE es incorrecto");
		return valida;
	}
	if(valida) 
	{
		var num=dni%23;
		if(letra.toUpperCase()!=tabla[num]) 
		{
			valida=false;
			//alert("El NIF / NIE es incorrecto");
			return valida;
		}
	}
	return valida;
}

function validarNum(cosa)
{
	for(f=0;f<cosa.length;f++) 
	{
		if(cosa.charCodeAt[f]<48||cosa.charCodeAt[f]>57)
		{
			return false;
		}
		else
		{
			return true;
		}
	}
}

function validarNie(dato)
{
	if (dato.charAt(0) == 'x' || dato.charAt(0) == 'X')
	{
		if(validarNIF(dato.substring(1,dato.length)))return true;
		else return false;
	}
	else return false;
}

function validarCif(cif)
{
	var cifsinletra=cif.substring(1,cif.length);
  var letracif=cif.substring(0,1);
  cif=letracif+rellenar(cifsinletra,'8');
	var correcto=true;
	arrayA_H = ['1','2','3','4','5','6','7','8','9','0'];
	arrayP_S = ['A','B','C','D','E','F','G','H','I','J'];
	var cifsinletra=cif.substring(1,cif.length);
	var cifsolonumero=cif.substring(1,cif.length-1);
	var letracif=cif.substring(0,1).toUpperCase();
	var ultimoCaracter=cif.substring(8,9).toUpperCase();
	var multiplicados= cifsolonumero.substring(0,1)+cifsolonumero.substring(2,3)+cifsolonumero.substring(4,5)+cifsolonumero.substring(6,7);
	var yamultiplicado = (multiplicados * 2);
	yamultiplicado=''+yamultiplicado;
	yamultiplicado=rellenar(yamultiplicado,'5');
	var sumandotodos = (Number(yamultiplicado.substring(0,1))+Number(yamultiplicado.substring(1,2))+Number(yamultiplicado.substring(2,3))+Number(yamultiplicado.substring(3,4))+Number(yamultiplicado.substring(4,5))+Number(cifsolonumero.substring(1,2))+Number(cifsolonumero.substring(3,4))+Number(cifsolonumero.substring(5,6)));
	var paso3= Number(sumandotodos/10);
	paso3=Math.floor(paso3);
	paso3=Number(paso3)+1;
	paso3=paso3*10;
	var paso4=Number(paso3)-Number(sumandotodos);
		if (arrayA_H [paso4-1]==ultimoCaracter)
		{
			correcto=true;
		}
		else
		 {
			if (arrayP_S[paso4-1]==ultimoCaracter)
			{
				correcto=true;
			}
			else
			{
				correcto=false;
			}
		}
 		var esnum = cuentaCeros(cif);
        if(esnum==false)
		{
			correcto=false;
		}
		 return correcto;
}


function rellenar(contenido,longitudcampo)
{
	var relleno=contenido.length;
	var finaltotal='';
	for (var z=0;relleno<longitudcampo;relleno++)
	{
		finaltotal='0'+finaltotal;
	}
	return finaltotal+contenido;
}

function cuentaCeros(campo)
{
	esValido=false;
	for (f = 0; f < campo.length; f++)
	{     
		caracterRecibido=campo.charAt(f);
		esValido=false;
			//y ahora comparo
			if(caracterRecibido!='0')
			{
				return true;
				break;
			}
	}	
	if(!esValido)// Si el caracter recibido coincide con alguno del array será true.
	{
	return false;
	}
}

function muestra_capa(id)
{
	if (ie4) {
		capa = document.all(id);
		obj = capa.style;
		obj.display = "inline";
	}
	else{
		obj = document.getElementById(id);
		obj.style.visibility = "visible";
		obj.style.display = "inline";
	}
}

function oculta_capa(id)
{
	if (ie4) {
		capa = document.all(id);
		obj = capa.style;
		obj.display = "none";
	}
	else{
		obj = document.getElementById(id);
		obj.style.visibility = "hidden";
		obj.style.display = "none";
	}
}

function valFrmDatosUsuario(){
	form=document.frmDatosUsuario;
	error="";
	otros=false;
  for(i=0; i < form.length; i++) //recorremos cada campo del formulario
  {
		campo=form.elements[i];
		if (campo.name=="nick")
		{
			if(campo.value=="")
				error="Indique el nombre de usuario con que desea registrarse en el sistema";
		}
		else if (campo.name=="pass")
		{
			if(campo.value=="")
				error="Indique la contraseña con que desea registrarse en el sistema";
		}
		else if (campo.name=="repass")
		{
			if(campo.value!=form.pass.value)
				error="Las contraseñas no coinciden";
		}
		else if (campo.name=="nombre")
		{
			if(campo.value=="")
				error="Rellene el campo nombre";
		}
		else if (campo.name=="apellidos")
		{
			if(campo.value=="")
				error="Rellene el campo Apellidos";
		}
		else if (campo.name=="direccion")
		{
			if(campo.value=="")
				error="Rellene el campo Dirección";
		}
		else if (campo.name=="numero")
		{
			if(campo.value=="")
				error="Rellene el campo Número";
		}
		else if (campo.name=="nif")
		{
			if(campo.value=="")
				error="Rellene el campo NIF";
			else if (!validarNIF(campo.value) && !validarNie(campo.value) && !validarCif(campo.value))
				error="El NIF/CIF/NIE es incorrecto";
		}
		else if (campo.name=="cp")
		{
			if(campo.value=="")
				error="Rellene el campo Código Postal";
			else if (esNumero(campo.value)==false || campo.value.length!=5)
				error="El Código Postal es incorrecto";
		}
		else if (campo.name=="localidad")
		{
			if(campo.value=="")
				error="Rellene el campo Localidad";
		}
		else if (campo.name=="provincia")
		{
			if(campo.value=="")
				error="Rellene el campo Provincia";
		}
		else if (campo.name=="telefono")
		{
			if (campo.value=="")
				error="Debe indicar su número de teléfono";
			if (campo.value!="" && (esNumero(campo.value)==false || campo.value.length!=9))
				error="El Teléfono es incorrecto";
		}	   
		else if (campo.name=="movil")
		{
			if (campo.value=="")
				error="Debe indicar su número de teléfono móvil";
			if (campo.value!="" && (esNumero(campo.value)==false || campo.value.length<9 || campo.value.substring(0,1)!=6))
				error="El Móvil es incorrecto";
		}
		else if (campo.name=="email")
		{
			if(campo.value=="")
				error="Rellene el campo EMail";
			else if (ValidarCorreo(campo.value)==false)
				error="El EMail es incorrecto";
		}
		else if (campo.name=="entrega")
		{
			if(campo.value=="otros" && campo.checked)
				otros=true;
		}
		else if (campo.name=="entnombre" && otros)
		{
			if(campo.value=="")
				error="Rellene el campo Nombre para la entrega";
		}
		else if (campo.name=="entapellidos" && otros)
		{
			if(campo.value=="")
				error="Rellene el campo Apellidos para la entrega";
		}
		else if (campo.name=="entdireccion" && otros)
		{
			if(campo.value=="")
				error="Rellene el campo Dirección para la entrega";
		}
		else if (campo.name=="entnif" && otros)
		{
			if(campo.value=="")
				error="Rellene el campo NIF para la entrega";
			else if (!validarNIF(campo.value) && !validarNie(campo.value) && !validarCif(campo.value))
				error="El NIF/CIF/NIE para la entrega es incorrecto";
		}
		else if (campo.name=="entcp" && otros)
		{
			if(campo.value=="")
				error="Rellene el campo Código Postal para la entrega";
			else if (esNumero(campo.value)==false || campo.value.length!=5)
				error="El Código Postal para la entrega es incorrecto";
		}
		else if (campo.name=="entlocalidad" && otros)
		{
			if(campo.value=="")
				error="Rellene el campo Localidad para la entrega";
		}
		else if (campo.name=="entprovincia" && otros)
		{
			if(campo.value=="")
				error="Rellene el campo Provincia para la entrega";
		}
		else if (campo.name=="enttelefono" && otros)
		{
			if (campo.value=="")
				error="Debe indicar su número de teléfono para la entrega";
			if (campo.value!="" && (esNumero(campo.value)==false || campo.value.length!=9))
				error="El Teléfono para la entrega es incorrecto";
		}	   
		else if (campo.name=="entmovil" && otros)
		{
			if (campo.value=="")
				error="Debe indicar su número de teléfono móvil para la entrega";
			if (campo.value!="" && (esNumero(campo.value)==false || campo.value.length<9 || campo.value.substring(0,1)!=6))
				error="El Móvil para la entrega es incorrecto";
		}
		else if (campo.name=="entemail" && otros)
		{
			if(campo.value=="")
				error="Rellene el campo EMail para la entrega";
			else if (ValidarCorreo(campo.value)==false)
				error="El EMail para la entrega es incorrecto";
		}

  	if (error!=""){
  		alert (error);
  		error="";
			campo.focus();
			return false;
  	}
  }
	return true;
}

function tiendaCerrada(){
	alert ("La tienda electrónica se encuentra temporalmente cerrada. Disculpe las molestias.");
}

function noStock(){
	alert ("En este momento no hay Stock disponible de este producto. Disculpe las molestias.");
}
	
function aceptaCondiciones(){
	if (frmConfirmar.condiciones.checked)
		return true;
	else{
		alert ("Debe leer y aceptar las condiciones de contratación");
		return false;
	}
}

function abreCondiciones(){
	window.open("http://www.finlux.es/condiciones_venta.htm","condiciones","top=30,left=30,scrollbars=yes,resizable=no,width=800,height=600");
}

function abreUso(){
	window.open("http://www.finlux.es/condiciones_uso.htm","condiciones","top=30,left=30,scrollbars=yes,resizable=no,width=800,height=600");
}

