	nn4 = (document.layers)? true:false;
	ie =  (document.all)? true:false;
	dom = (document.getElementById)? true:false;			
	
	function popup(pag, nombre, parametros){
	    var ventana = window.open(pag,nombre,parametros)
	    ventana.focus();
	}	

	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 Trim(str){
	   return RTrim(LTrim(str));
	}


	function validarNIF(elemento,msg){
		abc = Trim(elemento.value);
		dni=abc.substring(0,abc.length-1)
		let=abc.charAt(abc.length-1)
		if (!isNaN(let))
		 {
		  alert(msg)
		  elemento.focus();
		  return false
		 }
		else
		 {
		  cadena="TRWAGMYFPDXBNJZSQVHLCKET"
		  posicion = dni % 23
		  letra = cadena.substring(posicion,posicion+1)
		  if (letra!=let.toUpperCase())
		   {
			alert(msg)
			elemento.focus();
			return false
		   }
		 }
		elemento = abc;
		return true;
	}
	
	function txtBlanco(elemento, msg){
	   valor = Trim(elemento.value);
	   if(valor==""){
	      alert(msg);
	      elemento.focus();
	      return false;
	   }
	   elemento = valor;
	   return true;
	}

	function validacbo (elemento, msg){
		valor = elemento.options[elemento.selectedIndex].value;
		if(valor==""){
			alert(msg);
		    elemento.focus();
		    return false;
		}
	   return true;
	}
	
	function replaceStr(str, strBuscar, strSustituir){
		var strLon = str.length;	
		var strIni = "", strFin = "";	
		
		for(var i=0;i<=strLon;i++){
			pos = str.indexOf(strBuscar)				
			if(pos != -1){
				strIni = str.substring(0, pos)
				strFin = str.substring(pos + strBuscar.length)
				str = strIni + strSustituir + strFin
			}
		}				
		
		return str
	}	
	
	function validaMoneda(elemento, msg){		
		elemento.value = replaceStr(elemento.value, ",", ".")
		valor = Trim(elemento.value);
		if(valor != "" && isNaN(valor)){
			alert(msg);
		    elemento.focus();
		    return false;
		}
	   return true;
	}
	
	function validaNumero(elemento, msg){		
		valor = Trim(elemento.value);
		if(valor != "" && isNaN(valor)){
			alert(msg);
		    elemento.focus();
		    return false;
		}
	   	return true;
	}
	
	function wipeGetOffset(obj, coord) {
		var val = obj["offset"+coord] ;
		while ((obj = obj.offsetParent )!=null) {
			val += obj["offset"+coord];
			if (obj.border && obj.border != 0) val++;
		}
		return val;
	}	
	
	function clickOferta(){
		var formu = document.forms["formProducto"]
		var chk = formu.oferta.checked					
		formu.txtPrecioDes.disabled = !chk
		formu.FechaFinOferta.disabled=!chk
		if(!chk)	{	
			formu.txtPrecioDes.value = ""
			formu.FechaFinOferta.value = ""
		}
		else
			formu.txtPrecioDes.focus();
	}
	
	function validaLogin(){
		var formu = document.forms["formReg"]
		if(txtBlanco(formu.txtEmail, "Es necesario introducir su Email."))
			if(txtBlanco(formu.txtContrasena, "Es necesario introducir su Clave de acceso."))
				formu.submit()
	}
	
	function validaBusqueda(){
		var formu = document.forms["formBusqueda"]
		if(txtBlanco(formu.txtBusqueda, "Es necesario introducir algo en la busqueda."))
				formu.submit()
	}