/**
 * @author marc & cristian
 */


var busquedaLanzada=false;// para controlar se se ha echo ya la petición de buscar o es un boton atras.
var temporizador; // variable global que se utiliza para controlar el temporizador de revision de url
var velocidadTemporizador=1000;
var idHistorialActual=0; // proporciona historial de buscquedas
var idHistorialAnterior=0;
var idHistorialAnteriorIE=0;
var RUTA_EXTERNA= ObtenerRutaExterna();//'http://sintoner.com/';
var administrador=false;
//var historial=new Array(); Ya no hace falta


/**
 *  Este es el sistema que vigila las url's en busca de cambios.
 */
function GuardianUrl(){
	temporitzador=setTimeout("GuardianUrl()",velocidadTemporizador); //1000= 1 seg.
	//repite esa funcion cada tanto tiempo. para pararlo se utilizatria un clearTimeout(variable_de_tiempo)
	
	// consiguiendo el HASH de las rutas pagina principal e IFRAME.
		// HASH URL NORMAL CASO FirefoxF3	
		var urlActual = window.location.toString();
	    var busquedaUrl = window.location.hash.substr(1); // Nos devuelve el string de detras de la # de la url
		// HASH URL IFRAME CASO IE7,IE6
		var urlActualIframe = top.document.getElementById('historial').contentWindow.document.location; 
		var busquedaUrlIE = String(urlActualIframe.hash.substr(1)); // lo mismo pero del iframe.
	
	// Debuguear
	/*	var contadorHistori = history.length;
		var urlIframe= Obtenir("historial").src
		var texto= CrearTexto(contadorHistori +' hisotories ||urlIFRAME:'+urlIframe + ' || hasIFrame: '+busquedaUrlIE);
		ReemplazarContenidoNodo("contingutCarrito",texto);
	*/
		
	//siempre va a pasar que: el de la ur es menor o igual al Actual + Diferente al ultimo mirado (primer if detecta si ha cambiado la url en alguno de los 2 sistemas IE o FF3)
	//if( (busquedaUrlIE!= idHistorialAnteriorIE && idHistorialAnteriorIE > 0 ) || busquedaUrl<=idHistorialActual && idHistorialAnterior!=busquedaUrl && busquedaUrl>0 && idHistorialActual>0){ 	
	if( (busquedaUrlIE!= idHistorialAnteriorIE && idHistorialAnteriorIE !="" ) || busquedaUrl!=idHistorialActual && idHistorialAnterior!=busquedaUrl && busquedaUrl!="" && idHistorialActual!=""){
		if(!busquedaLanzada){
			//si no se ha lanzado la busqueda querrá decir que es un botón atras o alante. 
			if(Obtenir('buscador')) { 
				//if ((busquedaUrlIE!= idHistorialAnteriorIE && idHistorialAnteriorIE > 0 )) {
				if ((busquedaUrlIE!= idHistorialAnteriorIE && idHistorialAnteriorIE !="" )) {
					//caso entramos por cambio en id por IFRAME IE
					//Obtenir('buscador').value=historial[busquedaUrlIE];
					Obtenir('buscador').value=urlDecode(busquedaUrlIE);
				}else {
					// caso normal, entramos por el hash de  la url superior FF3
					//Obtenir('buscador').value=historial[busquedaUrl];
					Obtenir('buscador').value=urlDecode(busquedaUrl);
				}
				
				Cargando();
				EnviarFormulari(RUTA_EXTERNA+'Articulo/resultadoBusquedaAjax.php','formularioBuscador',true);	 
			}
		}else{
			//este caso es para cuando existe un cambio de url, pero ha sido provocado por nosotros, no e sun boton atras! desactivamos el flag!
			busquedaLanzada=false;
		}
	}

	// despues de lanzar o no la busqueda igualo el cambio de las urls.
	if (busquedaUrl!="")idHistorialAnterior=busquedaUrl;
	//if (busquedaUrlIE!="")
	idHistorialAnteriorIE= busquedaUrlIE;
} 

/**
 *  urlDecode
 */

 // private method for UTF-8 decoding
   function urlDecode(url) {
   	
	var linea = new String();
	linea= url;
	linea=linea.replace(/%20*/gi,' '); //espacio Safari
	linea=linea.replace(/%C3%AD*/gi,"i"); // �
	linea=linea.replace(/%C3%B3*/gi,'o'); // �
	linea=linea.replace(/%C2%B*/gi,'?'); // ?
	
	
	return linea;
}; 

   
/**
 * Detectar IE, mediante objetos
 */
function esNavegadorIE(){
	
	// este componente solo tiene Internet Explorer apartir de la versión 5.5
	if (window.ActiveXObject) {
		return true;
	}
	else{
		return false;
	}
}


/**
 * Existe un problema de denegacion de servicio por cross domain,
 * para ello es necesrio que lso javascrips esten todos llamados desde ficheros bajo el mismo protocolo y dominio,
 * distingue entre bisuarts.com y www.bisuarts.com
 * Esta funcion recoge los parametros de la url cargada para saber como hemos de cargar los escripts
 */

function ObtenerRutaExterna(){
	
 		//existe el problema de across domain denegation Script
		 var protocoloUrlPrincipal='http:';//pordefecto usamos http:
		 if (document.location.protocol =='https:') protocoloUrlPrincipal='https:'; // si exste https lo propagamos
		 var dominioUrlPrincipal=document.location.host;
		 //alert('url: '+protocoloUrlPrincipal+"//"+dominioUrlPrincipal)
		 return protocoloUrlPrincipal+"//"+dominioUrlPrincipal+'/';
}


function LimpiarUrl(){
	var urlSinId='';
	// buscando la #
	var urlActual= new String(window.location);
	urlSinId = urlActual.replace(/(\#[\w |\W ]{0,}){0,}/g,'');
	/* 
	 * Finalmente la expresion regular la he cambiado por esta otra donde:
	 * (\#[\w |\W ]{0,}){0,}
	 * incluimos un parentesis (\#[\w |\W ]{0,}) este agrupa  toda la espresion que contiene y permite darle un grado de repeticiones.
	 * asi remplazar�amos ejemplos del estiolo #dsfksdf #sewerwe Quizas no sea necesario, pero por si acaso.
	 * ahora hemos introducido entre los primeros corchetes [\w | \W ] -> los espacios influyen y decien que puedan existir. 
	 * Aqui decimos que puede venir o caracteres alfan�mercos o no alfa numericos que es lo mismo que decir que puedes poner cualquier cosas
	 * con unas repeticiones de 0 o mas... asi que # sola tambien se sustituiria.
	 * 
	 * Para aprender a probar expresiones regulares e smuy util esta p�gina: http://regexpal.com/ donde se puede probar al vuelo las espresiones que queramos.
	 * 
	 * antigua expresion.
	 * en java escript toda regExp va entre dos / /
		en este caso a espresion completa es: \#[\w]{0,}
		donde  \# siginifica el caracter almohadilla que al ser especial necesita escaparse
		[\w] significa que el siguiente caracter es cualquier caracter alfanum�rico
		{0,} que significa que la anterior expresion se repinte 0 o mas veces, asi
		[\w]{0,} significa cualquier cadena de caracteres desde la amoadilla
		
	*/
	
	//urlSinId = RUTA_EXTERNA;//window.location.hash.substr(0);
	//ReemplazarContenidoNodo("provas",'url:'+urlSinId);
	
	return urlSinId;
}
/* ***********************************************************************************
 * Obtenir: Consigue el objeto del id que se pase
 * 
 * ***********************************************************************************/


Obtenir = function (id) { // Retorna un elemento en base al id
   return document.getElementById(id);
}




/*  ***********************************************************************************
 *  FormatoNumeroSeparadorMiles: Cambia el formato de un numero. Pone puntos en los
 *  	separadores de miles y una coma como separador decimal (formato espa�ol)
 *  
 * ***********************************************************************************/

function FormatoNumeroSeparadorMiles(valor)
{
	
	// primero miro que sea un numero para poderle dar formato
 if (isNaN(parseFloat(valor))) {//no es un n�mero
    
     return valor; // si es un texto, devuelvo el texto
	 
 }else{ // es un numero
 	
	
 	var miles= true; //True pone separador miles y false no lo pone
    var dec= 2; // numero de decimales
	var num = valor, signo=3, expr;
	var cad = ""+valor;
	var ceros = "", pos, pdec, i;
	
	for (i=0; i < dec; i++)	ceros += '0';
	
	pos = cad.indexOf('.')
	if (pos < 0){ cad = cad+","+ceros; }// a�ade ceros por detras no kiero poner ceros si no tienen
	
	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('.')
			pdec = cad.length - pos -1;
			if (pdec <= dec)
			{
				for (i=0; i< (dec-pdec); i++)	cad += '0';
			}
			
		}
	}
	
	// numero de decimales correcto +1
	cad = cad.replace(/\./,',')
	
	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;


 }
}

/*  ***********************************************************************************
 *  FormatoNumero: Cambia el formato de un numero con separadores miles y decimal
 *  
 * ***********************************************************************************/

function FormatoNumero(valor)
{
	
	// primero miro que sea un numero para poderle dar formato
 if (isNaN(parseFloat(valor))) {//no es un n�mero
    
     return valor; // si es un texto, devuelvo el texto
	 
 }else{ // es un numero
 	
	
 	var miles= false; //True pone separador miles y false no lo pone
    var dec= 2; // numero de decimales
	var num = valor, signo=3, expr;
	var cad = ""+valor;
	var ceros = "", pos, pdec, i;
	
	//for (i=0; i < dec; i++)	ceros += '0';
	
	pos = cad.indexOf('.')
	if (pos < 0){}// cad = cad+"."+ceros; // a�ade ceros por detras no kiero poner ceros si no tienen
	
	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);
		}
	}
	
	// numero de decimales correcto +1
	
	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;


 }
}


/*  ***********************************************************************************
 *  FormatoNumeroInverso: Cambia el formato de un numero a formato ingl�s y sin separador de miles
 *  
 * ***********************************************************************************/

function FormatoNumeroInverso(valor){
	
	//miramos si existe una coma, esto significa que ya est� en el formato deseada
	var cad = valor;
	var coma = valor.indexOf('.');
	if(coma<0) {
		return(cad);	
	}
	else {	//Hay coma, por lo tanto tenemos que sustituir puntos por nada y la coma por un punto
		cad = cad.replace(/\./,'');
		cad = cad.replace(',','.');
		return(cad);
	}
}


function AnadirEvento(evento, funcion, elemento) {
   
    if (elemento.addEventListener)  // standard W3C DOM
        return elemento.addEventListener(evento,funcion,false);
    else if (elemento.attachEvent) { // IE cabron DOM
		 return elemento.attachEvent("on"+evento, funcion);
    }else{ // resto navegadores
    	try{
    	elemento["on"+evento] = funcion;
		}
		catch(e){throw 'No es posible añadir evento';}
	 }
	 
}


function IrA(url) {
	//window.location=url;
	location.href=url;
}


/*********************************************************************************************
*	CanviMissatgePais: en la pantalla del proc�s de compra "Datos Env�o", mostra el missatge
*		de les dades adicionals que s'han d'incloure en el camp "poblaci�n", segons el pa�s,�
*		quan es produeix un canvi en el desplegable del pa�s
**********************************************************************************************/

function MostraMissatgePais() {
	//Primer hem d'ocultar tots els missatges ja que n'hi haur� algun que estar� desocultat
	elementSelect = Obtenir('idPais_1').options;
	for(i=0;i<elementSelect.length;i++) {
		idPais = elementSelect[i].value
		Obtenir('pais_'+idPais).style.display = "none";
	}
	
	//Ara desocultem el missatge dels pa�s seleccionat
	idPais = Obtenir('idPais_1').value;
	Obtenir('pais_'+idPais).style.display = "";
}


/*********************************************************************************************
*	MostraCajasCategoria: en la pantalla de la introducción de los artículos, cuando se 
*		selecciona una categoría de artículo en el desplegable correspondiente, se deben
*		mostrar las cajas propias del tipo de artículo seleccionado.
*		
**********************************************************************************************/

function MostrarCajasCategoria() {
	
	categoriaSeleccionada = parseInt(Obtenir('idCategoria_1').value);
		
	switch(categoriaSeleccionada) {
		case 1:
		case 2:
			Obtenir('idColor_p').style.display = "";
			Obtenir('capacidad_p').style.display = "";
			Obtenir('contenido_p').style.display = "";
			Obtenir('altaCapacidad_p').style.display = "";
		break;
		case 3:
		case 4:
		case 5:
		case 6:
			Obtenir('idColor_p').style.display = "none";
			Obtenir('capacidad_p').style.display = "none";
			Obtenir('contenido_p').style.display = "none";
			Obtenir('altaCapacidad_p').style.display = "none";
		break;
		default:
			
		break;
	}	
		
}


/* EnviarFormulari: Envia les variables del formulari per ara només sutilitza per 
 *  				la url:  Carrito/CarritoArticuloAjax.php.
 * 
 */
function EnviarFormulari(url,nomFormulari,sinHistorial){
	
	if(sinHistorial==true){
		busquedaLanzada=false; //para indicar que se no hay que voler a lanzarla
		//sin hisotiral no hace nada.
	}else{
		
	   	idHistorialActual++;//contador para explorer
		//historial[idHistorialActual]=Obtenir("buscador").value;
		var busqueda=Obtenir("buscador").value;

		if (busqueda !='')	document.title=busqueda + ' - SinToner.com';
		else document.title='SinToner.com - Buscador de consumibles originales';
		
			// Ahora segun el navegador cambiamos la ur del iframe o la del document
			if (esNavegadorIE() && busqueda!=idHistorialAnteriorIE){
							
					var rutaExterna= ObtenerRutaExterna();
					//Obtenir("historial").src=rutaExterna + "/historial.php?paginaActual=" + idHistorialActual+ "#"+idHistorialActual;		
					Obtenir("historial").src=rutaExterna + "/historial.php?paginaActual=" + idHistorialActual+ "#"+busqueda;
		
					busquedaLanzada=true;//indica al guardianURL que esta peticion se ha realizado ya.
			
			}else if (!esNavegadorIE() && busqueda!=idHistorialAnterior){
				//window.location=LimpiarUrl(window.location)+'#'+idHistorialActual;
				window.location=LimpiarUrl(window.location)+'#'+busqueda;		
		
				busquedaLanzada=true;//indica al guardianURL que esta peticion se ha realizado ya.
			}
		
	}
    
	   
	var variables="";	
	
		for (i=0;i<document.forms[nomFormulari].elements.length;i++){
			
			switch(document.forms[nomFormulari].elements[i].type){
				
				case undefined:
				break;
				
				case "radio":
					if(document.forms[nomFormulari].elements[i].checked) variables+=document.forms[nomFormulari].elements[i].name+"="+document.forms[nomFormulari].elements[i].value+"&";
				break;
				
				case "checkbox":
					if(document.forms[nomFormulari].elements[i].value == 1) {
						variables+=document.forms[nomFormulari].elements[i].name+"="+document.forms[nomFormulari].elements[i].value+"&";
					}
				break;
				
				default:
				  if(document.forms[nomFormulari].elements[i].value == ""){ 
						variables+=document.forms[nomFormulari].elements[i].name+"=NULL&";
					}else{
						variables+=document.forms[nomFormulari].elements[i].name+"="+document.forms[nomFormulari].elements[i].value+"&";
					}
				
				break;
				
			}//fi swithc tipus form
			//if (document.forms[nomFormulari].elements[i].type!=undefined){// evito algun campo raro del formulario.
				
				
			//} //fi if
		} // for lementos de cada form   (t1="+t1+"&)
			
		variables+="nomFormulari="+nomFormulari; //a�ado el nombre del formulario y el IDexpediente
	
	Envio(url,variables,nomFormulari); // Envio ya afegeix id expedient y idFinca
}

/**
 *   Se usa para sustituir los tags <javascript> por el contenido html que pretendia generar, Para ello
 *   sustituye todos los documente.write por directamente el tag que trae dentro con un innerHTML.
 *   Se utiliza a hacer las llamadas AJAX que no ejecutan javascript
 */

function EjecutarJavascript(idContenidor){

	var contenidor = Obtenir(idContenidor);
	var elementos = contenidor.getElementsByTagName('script');

	for(i=0;i<elementos.length;i++) {
		var elemento = elementos[i];
		
		
		var linea = new String();
		linea= elemento.innerHTML;
		linea=unescape(linea.replace(/document.write[(]'/gi,'')); // quitamos el document.write('  , las espresiones deben ir entre dos /xxx/ gi indica remplazar todas las ocurrencias
		linea=linea.replace(/\\/gi,''); // remplazamos las todas las contrabarras
		var posicionFinal=linea.lastIndexOf('\');'); // se calcula la longitud hasta el ultimo  '); el final del documet.write
		linea=linea.substr(0,posicionFinal); // va desde la posicion incial hasta el final marcado
			
		
		var nuevoScript= document.createElement('span');
		nuevoScript.innerHTML= linea;
		
		/* sirve para determinar la url de un escript externo
		 if(elemento.src!=null && elemento.src.length>0) nuevoScript.src = elemento.src;
		*/
		

		elemento.parentNode.replaceChild(nuevoScript,elemento)
		i--; // esto tiene su explicación. Debido a remplazar el nodo por otro no escript, este sale de la lista y la longitud disminuye. por lo que hay que coger siempre el primero de la lista.
		// deberia de ser un for each
		}
}
/**
 *  Crear MiniFicahas
 * @param {mensaje} mensaje array con los datos a mostrar
 * @param {i}  vuelta iteradora del mensaje
 */

function CrearMiniFichas(mensaje, i,relacionados){
		
		// Obtenemos las variables para que sea mas facil ponerlas en la estructura DOM;
		idArticulo=mensaje[i]['idArticulo'];
		extension=mensaje[i]['extensionImagen'];
		referenciaFabricante=mensaje[i]['referenciaFabricante'];
		fabricante=mensaje[i]['fabricante'];
		idFabricante=mensaje[i]['idFabricante'];
		nombreFabricante=mensaje[i]['nombreFabricante'];
		modelo=mensaje[i]['modelo'];
		imagenGotaTinta=mensaje[i]['imagenGotaTinta'];
		tituloImagenTinta=mensaje[i]['tituloImagenTinta'];
		extensionFabricante=mensaje[i]['extensionFabricante'];
		precio=mensaje[i]['precio'];
		categoriaLarga=mensaje[i]['categoriaLarga'];
		categoriaCorta=mensaje[i]['categoriaCorta'];
		tituloTabla=mensaje[i]['tituloTabla'];
		numeroPaginas=mensaje[i]['numeroPaginas'];
		altaCapacidad=mensaje[i]['altaCapacidad'];
		
		//alert(altaCapacidad);
		//Evitar nulls
		if(extension==null)extension="";
		if(modelo==null) modelo=""; //evitar null en el modelo
		if(categoriaCorta==null) categoriaCorta=""; //evitar null en el categoriaCorta
		if (categoriaLarga==null) categoriaLarga="";
    	if(tituloTabla==null) tituloTabla=""; //evitar null en el tituloTabla
    	if(numeroPaginas==null)numeroPaginas=0;
		if(altaCapacidad==null)altaCapacidad=false;
    	
		
		nombreProducto= categoriaCorta +' '+ nombreFabricante+' '+modelo; //+ ' '+referenciaFabricante;
		textoLinkProducto= categoriaCorta +' '+ nombreFabricante+' '+modelo + ' '+referenciaFabricante;	
		textoImagen= categoriaLarga +' '+ modelo+' '+nombreFabricante + ' '+referenciaFabricante;
		
		
	// DIV CONTENEDOR ARTICULO
		div= Crear('DIV');
		div.className='contenedorArticulo';
		
	// FORMULARIO	
		formulario=Crear('FORM');
		formulario.id='formularioArticulo'+idArticulo;
		formulario.name='formularioArticulo'+idArticulo;
		//formulario.onsubmit="EnviarFormulari('http://sintoner.com/Carrito/carritoAjax.php','formularioArticulo'+idArticulo); return false;"		
		formulario.action="http://google.com"//RUTA_EXTERNA+"Carrito/carrito.php";
		formulario.method='post';
		formulario.enctype='multipart/form-data';
		formulario.className="NULL";
		AnadirEvento("submit",function(event){ 
			try {	event.preventDefault();  }catch(e){} // para evitar fallos en IE
			try {   event.returnValue=false; }catch(e){} // para eviar fallos en FF
			EnviarFormulari(RUTA_EXTERNA+'Carrito/carritoAjax.php',NodoEvento(event).getAttribute('name'));  
			//return false;
		},formulario);
		
		//div.appendChild(formulario); Se hace abajo
	
	// TABLA
		tablaPrincipal= Crear('table');
		tablaPrincipal.className='tablaListaBusqueda';
	
	//Tbody
		taulaBody=Crear('tbody');
		//tablaPrincipal.appendChild(taulaBody); // se hace al final
		tabla=taulaBody;
		
	
		//Fila 1
			fila=Crear('tr');
			columna=Crear('td');
			columna.id='celdaDegradado';
			columna.colSpan='6';
			columna.rowSpan='1';
			
			switch (true){
				case (i==0 && !relacionados):
					columna.className='degradadoSobreResultado';
					tituloTabla="";
				break;
				case (i==0 && relacionados):
					columna.className='degradadoSobreRelacionados';
				break;
				default:
					columna.className='taulaTd';
					tituloTabla="";
				break;
				
			}

			columna.appendChild(CrearTexto(' '+tituloTabla));
			
			fila.appendChild(columna);
			tabla.appendChild(fila);
						
		//fila 2: Imagen articulo	
			fila2=Crear('tr');
			
			//columna degradad	
			columna=Crear('td');
			columna.colSpan='1';
			columna.rowSpan='2';
			columna.className='celdaImagen';
			
		// IMAGEN ARTICULO

		if (extension != "") { // filtramos las que no tienen imagen
			var imagen = Crear('img');
			imagen.alt = textoImagen;//categoriaLarga +' '+ modelo+' '+nombreFabricante + ' '+referenciaFabricante;
			imagen.title = textoImagen;//categoriaLarga +' '+ modelo+' '+nombreFabricante + ' '+referenciaFabricante;
			imagen.src = RUTA_EXTERNA + 'Model/generarImatge.php?fitxer=imagen_Articulo_' + idArticulo + '_1&amplada=50&extensio=' + extension;
			imagen.name = 'imagen';
			imagen.id = 'imagen_Articulo_' + idArticulo + '_1';
			imagen.className = 'imagen_Articulo_' + idArticulo + '_1';
			imagen.width = '50';	
			columna.appendChild(imagen);
		}else{
			
		}
			fila2.appendChild(columna);
			
			//columna enlace modelo + referencia
			columna=Crear('td');
			columna.colSpan='1';
			columna.rowSpan='1';
			if( (i % 2)==0 ){columna.className='celdaModeloReferencia';}
			else{ columna.className='celdaModeloReferenciaAzul';}

			// Crear Enlace MODELO							
			enlace=Crear('a');
			enlace.name=textoLinkProducto; //guardando el valor en name :P
			AnadirEvento("click",function(event){EnlaceModelo(NodoEvento(event).getAttribute('name'))},enlace); 
			enlace.appendChild(CrearTexto(nombreProducto))
			columna.appendChild(enlace);
			
			//Separacion espacio entre modelo y partnumber
			columna.appendChild(CrearTexto(' '));
  			
			//link código proveedor
			enlaceCodigoProveedor=Crear('a');
			enlaceCodigoProveedor.className='linkReferencia'
			enlaceCodigoProveedor.appendChild(CrearTexto('('+referenciaFabricante+')'));
			enlaceCodigoProveedor.name=textoLinkProducto; //guardando el valor en name :P
			AnadirEvento("click",function(event){EnlaceModelo(NodoEvento(event).getAttribute('name'))},enlaceCodigoProveedor); 
			columna.appendChild(enlaceCodigoProveedor);//añadimos el splinkan con el codigo proveedor detras del modelo
			
			
			//enlace de editar Administrador loguin
			if(administrador){
				enlace=Crear('a');
				enlace.href = RUTA_EXTERNA+'Administracion/Articulo/articulo.php?idArticulo='+idArticulo;
				enlace.appendChild(CrearTexto(' editar'));
				columna.appendChild(enlace);
			}
				
			
			fila2.appendChild(columna);
			

			//Fila 2: CeldaIconoTinta
			
			//columna Icono tinta	
			columna=Crear('td');
			columna.colSpan='1';
			columna.rowSpan='2';
			if( (i % 2)==0 ){columna.className='celdaIconoTinta';}
			else{ columna.className='celdaIconoTintaAzul';}
			
			if(imagenGotaTinta!=null && imagenGotaTinta!='' ){
				var imagen= Crear('img');
				imagen.alt=tituloImagenTinta;
				imagen.title=tituloImagenTinta;
				imagen.src=RUTA_EXTERNA+'Imagen/'+ imagenGotaTinta;
				imagen.style.padding="2px 0pt"; 
				imagen.style.verticalAlign="middle";
				columna.appendChild(imagen);
			}
										
			fila2.appendChild(columna);
			
			
			//columna Mas info
			columna=Crear('td');
			if( (i % 2)==0 ){columna.className='celdaMasInfo'; filaAzul='';} // filaAzul: Para que se carge en el consultar ficha Los degradados  
			else{ columna.className='celdaMasInfoAzul'; filaAzul='filaAzul=true';} 
			
			enlace=Crear('a'); // SPAN?????
			enlace.alt=String('m\u00e1s Info');
			enlace.title=String('m\u00e1s Info');
			
			AnadirEvento("click",function (event){Envio(RUTA_EXTERNA+'Articulo/consultarFichaArticuloAjax.php','idArticulo='+NodoEvento(event).getAttribute('name')+'&'+filaAzul+'&nomFormulari=formularioFichaArticulo');},enlace);
			
			var imagen4= Crear('img');
			imagen4.alt=String('m\u00e1s Info');
			imagen4.title=String('m\u00e1s Info');
			imagen4.name=idArticulo;// para la funcion que envia el idArticulo
			imagen4.src=RUTA_EXTERNA+'Imagen/mesInfo.gif';
			
			enlace.appendChild(imagen4);
    		columna.appendChild(enlace);					
			fila2.appendChild(columna);
			
			if(precio!=null && precio>0){
				
				// Columna Precio
				columna=Crear('td');
				if( (i % 2)==0 ){columna.className='celdaPrecio';}
				else{ columna.className='celdaPrecioAzul';}
				
				columna.appendChild(CrearTexto(FormatoNumeroSeparadorMiles(parseFloat(precio)) + ' € '));
				fila2.appendChild(columna);
				
				// Columna Celda Comprar / añadir al carrito
				columna= Crear('td');
				if( (i % 2)==0 ){columna.className='celdaComprar';}
				else{ columna.className='celdaComprarAzul';}
				
				//idArticulo escondido
				cajaFormulario= Crear('input');
				cajaFormulario.style.display="none";
				cajaFormulario.className='idArticulo_1';
				cajaFormulario.name='idArticulo_1';
				cajaFormulario.id='idArticulo_1';
				cajaFormulario.value=idArticulo;
				cajaFormulario.type="hidden";
				columna.appendChild(cajaFormulario);
				
				// Cantidad a enviar
				cajaFormulario= Crear('input');
				cajaFormulario.className='cantidad_1';
				cajaFormulario.name='cantidad_1';
				cajaFormulario.id='cantidad_1';
				cajaFormulario.value='1';
				cajaFormulario.type='text';
				columna.appendChild(cajaFormulario);
				
				// Nombre de la Clase 
				cajaFormulario= Crear('input');
				cajaFormulario.style.display="none";
				cajaFormulario.type="hidden";
				cajaFormulario.name='nomClasse';
				cajaFormulario.value='DetallePedido';
				columna.appendChild(cajaFormulario);
								
				// Boton de añadirlo
				cajaFormulario= Crear('input');
				cajaFormulario.className='botonAnadirCarrito';
				cajaFormulario.alt='a\u00f1adir al carrito';
				cajaFormulario.title='a\u00f1adir al carrito';
				cajaFormulario.value=' ';
				cajaFormulario.name='a\u00f1adir al carrito';
				cajaFormulario.src=RUTA_EXTERNA+'Imagen/afegirAlCarrito.gif';
				cajaFormulario.type='image';
				columna.appendChild(cajaFormulario);
				
				
			//fin de articulo no a la venta	
			}else{
				
				columna= Crear('td');
				if( (i % 2)==0 ){columna.className='celdaNoDisponible';}
				else{ columna.className='celdaNoDisponibleAzul';}
				columna.rowSpan=2;
				columna.colSpan=2;
				texto= CrearTexto('Articulo no disponible');
				columna.appendChild(texto);
			}
			
			fila2.appendChild(columna);// esta columna depende de si esta el precio o no.
			tabla.appendChild(fila2);
					
								
		// FILA 3: INFORMACION
		
			fila3=Crear('tr');
			
			columna=Crear('td');
			if( (i % 2)==0 ){columna.className='celdaInformacion';}
			else{ columna.className='celdaInformacionAzul';}
			
			//Imagen Fabricante
			var imagen= Crear('img');
			imagen.src=RUTA_EXTERNA+'Model/generarImatge.php?fitxer=imagen_Fabricante_'+idFabricante+'&amplada=30&extensio=image/'+extensionFabricante;
			imagen.className='imagen_Fabricante_'+idFabricante;
			imagen.name='imagen';
			imagen.title=nombreFabricante;
			imagen.alt=nombreFabricante;
			imagen.width=30;
			columna.appendChild(imagen);
						
		// Número de páginas
			if(numeroPaginas>0){
				columna.appendChild(CrearTexto('  ')); //espacio de separacion
				var imagen= Crear('img');
				imagen.src=RUTA_EXTERNA+'/Imagen/iconaPagines.gif';
				imagen.title='capacidad';
				imagen.alt='capacidad';
				columna.appendChild(imagen);
				columna.appendChild(CrearTexto('  ')); //separacion
				columna.appendChild(CrearTexto(numeroPaginas+' pág.'));				
			}
		
		// Alta capacidad
			if(altaCapacidad==true){
				columna.appendChild(CrearTexto('  ')); //espacio de separacion
				etiqueta=Crear('label');
				etiqueta.className='altaCapacidad';
				etiqueta.appendChild(CrearTexto('Alta Capacidad'))
				columna.appendChild(etiqueta);
			}

			fila3.appendChild(columna);
			
			// MAS info celda
			columna= Crear('td');
			if( (i % 2)==0 ){columna.className='celdaTextoMasInfo'; filaAzul='';} // filaAzul: Para que se carge en el consultar ficha Los degradados
			else{ columna.className='celdaTextoMasInfoAzul'; filaAzul='filaAzul=true'; }
										
			enlace= Crear('a');
			enlace.id='textoMasInfo'+idArticulo;
			enlace.appendChild(CrearTexto('m\u00e1s info'));
			enlace.name=idArticulo;
			//enlace.addEventListener("click", function(event){ Envio(RUTA_EXTERNA+'Articulo/consultarFichaArticuloAjax.php','idArticulo='+event.target.getAttribute('name')+'&nomFormulari=formularioFichaArticulo');} , false);
			AnadirEvento("click",function(event){ Envio(RUTA_EXTERNA+'Articulo/consultarFichaArticuloAjax.php','idArticulo='+NodoEvento(event).getAttribute('name')+'&'+filaAzul+'&nomFormulari=formularioFichaArticulo');}, enlace)
			
		//	enlace.onclick=function(){
		//		Envio(RUTA_EXTERNA+'Articulo/consultarFichaArticuloAjax.php','idArticulo='+mensaje[i]['idArticulo']+'&nomFormulari=formularioFichaArticulo');
		//	}
			
			columna.appendChild(enlace);
			
			enlace= Crear('a');							
			enlace.id='textoOcultarMasInfo'+idArticulo;
			enlace.style.display='none';
			enlace.appendChild(CrearTexto('Ocultar'));
			enlace.name=idArticulo; //Para guardar el estado
			//enlace.addEventListener("click", function(event){EnlaceOcultar(NodoEvento(event).getAttribute('name'));} , false);
			AnadirEvento("click",  function(event){ EnlaceOcultar(NodoEvento(event).getAttribute('name'));},enlace);
			
			//enlace.onclick= function(event){
			//	EnlaceOcultar(NodoEvento(event).getAttribute('name'));
			//}
			
			columna.appendChild(enlace);														
			
			fila3.appendChild(columna);
			
			if (precio!=null && precio>0){
				
				// columna Texto Mas iva
				columna= Crear('td');
				//columna.className='celdaTextoMasIva';
				if( (i % 2)==0 ){columna.className='celdaTextoMasIva';}
				else{ columna.className='celdaTextoMasIvaAzul';}

				etiqueta= Crear('label');
				etiqueta.className='textoIva';
				
				etiqueta.appendChild(CrearTexto('+IVA'));
				columna.appendChild(etiqueta);
				fila3.appendChild(columna);
				
				// Columna LinkAñadirCarrito
				columna=Crear('td');		
				if( (i % 2)==0 ){columna.className='celdaLinkAnadirCarrito';}
				else{ columna.className='celdaLinkAnadirCarritoAzul';}
				
				enlace= Crear('a');
				enlace.href="#";
				enlace.appendChild(CrearTexto('A\u00f1adir al carrito')); // \u00f1 equivale a la ñ
				enlace.name=idArticulo;
				AnadirEvento("click", function(event){EnviarFormulari(RUTA_EXTERNA+'Carrito/carritoAjax.php','formularioArticulo'+NodoEvento(event).getAttribute('name'));},enlace);							
				//enlace.onclick=function(){	EnviarFormulari(RUTA_EXTERNA+'Carrito/carritoAjax.php','formularioArticulo'+idArticulo);}
				
				columna.appendChild(enlace);
				fila3.appendChild(columna);	
				
			}

		tabla.appendChild(fila3);
		
		tablaPrincipal.appendChild(taulaBody);
		formulario.appendChild(tablaPrincipal);
		div.appendChild(formulario);
		
		contenedor = Obtenir('contenedorListadoBusqueda');
		contenedor.appendChild(div);
		
		
		// Div añadido para contenerla ficha del articulo
		div2=Crear('div');
		div2.id='contenedorFichaArticulo'+idArticulo;
		div2.className='contenedorFicha';
		contenedor.appendChild(div2);
}


/**
 * 
 * @param {Object} url
 * @param {Object} variables
 * @param {Object} nomFormulari
 */

function Bocadillo(mensajeBocadillo){
	
	if (mensajeBocadillo!=null && mensajeBocadillo!=''){
		divBocadillo=Crear('div');
		divBocadillo.id='bocadillo';
		divBocadilloArriba=Crear('div');
		divBocadilloArriba.className='vinetaComentariosSuperior';
		divBocadillo.appendChild(divBocadilloArriba);
		divBocadilloMedio=Crear('div');
		divBocadilloMedio.className='vinetaComentariosIntermedia';
		divBocadilloMedio.innerHTML=mensajeBocadillo;
		
		textoBocadillo=CrearTexto(' ');
		textoBocadillo=Crear('div');
	//	textoBocadillo.innerHTML=mensajeBocadillo;
//		divBocadillo.appendChild(textoBocadillo);
		
		divBocadillo.appendChild(divBocadilloMedio);
		
		divBocadilloAbajo=Crear('div');
		divBocadilloAbajo.className='vinetaComentariosInferior';
		divBocadillo.appendChild(divBocadilloAbajo);
		try {
			Obtenir('contenedorListadoBusqueda');
		}catch(e){
			// si peta la linea anterior es que no existe el contenedor para le bocadillo, asi que lo añadimos :P
			//alert('no hay contenedor para el bocadillo')
			//Obtenir('contenedorListadoBusqueda').appendChild(divBocadillo);
		}
		
		divBr=Crear('div');
		br=Crear('br');
		divBr.appendChild(divBocadillo);
		divBr.appendChild(br);
		ReemplazarContenidoNodo('contenedorListadoBusqueda',divBr); //elimina el cargando Y añade e bocadillo
		//ReemplazarContenidoNodo('contenedorListadoBusqueda',divBocadillo); //elimina el cargando Y añade e bocadillo
		//Obtenir('contenedorListadoBusqueda').appendChild(divBocadillo);
		
	}else{
		divVacio=Crear('div');
		ReemplazarContenidoNodo('contenedorListadoBusqueda',divVacio); //elimina el cargando Y añade div Vacio
		
	}

}//fin Bocadillo


/*  ***********************************************************************************
 *  Envio: Envia la peticion a un php con la url de destinacion y las variables necesarias.
 *  el mismo recoge la respuesta y la pone en el div name='contenidor'.
 *  url: contiene solo 2 url la de modificacion y la de guardar.
 *  variables: incluye el nombre del formulario y el id del expediente.
 *  
 * ***********************************************************************************/

function Envio(url,variables,nomFormulari){ 
	//var contenidor = Obtenir('contingut');// div para mostar el resultado.
	var nomDelFormulari="";// per cuan no hi ha aquesta variable no peti.
	
	tiempoInicial= microtime(true);
	
	try{ 
		ajax.abort();//detiene la peticion anterior
	}catch(e){}
	
	ajax=ObjecteAjax();
	ajax.open("POST", url,true); //Envio de los datos del formulario a la url
	
	
/*	Ya no hacemos peticiones get. suponems que son igual de rápidas...
	ajax=ObjecteAjax();
	if(nomFormulari=='formularioBuscador'){
		//envio GET en caso del buscador para pruebas de rendimiento
		ajax.open("GET", url+'?'+variables,true); //Envio de los datos del formulario a la url	
	}else{
		ajax.open("POST", url,true); //Envio de los datos del formulario a la url
	}
*/		
	
	// habria que hacer un control de tiemp de las peticiones para abortar las de mas de N segundos...
/*	myrequest._timeout=setTimeout(function(){
 myrequest.abort()
 },
 5000
) //end setTimeout
*/
	
	tiempo0= microtime(true)-tiempoInicial;
	
	ajax.onreadystatechange=function() {
		/*  Estados de AJAX
		 0 Uninitialized
		 1 Loading
		 2 Loaded
		 3 Interactive
	 	 4 Complete */

		if (ajax.readyState==4) { // recoje el resultado. solo si la peticion ajax ha sido aceptada
		
		
			tiempo1= microtime(true) - tiempoInicial;
			eval(ajax.responseText);// obtengo la variable nomDelFormulari del PHP. EXECUTA TOT EL CODI que retorna el php com si fos javascript.
						
			switch(nomDelFormulari){// segun el formulario la respuesta ir� a un sitio o a otro y actualitzara la pagina en funci� de si ha anat be o malament.
				
				case 'formularioBuscador':
					//Actualitzem el contingut de la caixa on es mostra el resum del Carrito de la cap�alera 
					//node = CrearTexto(mensaje);
					//ReemplazarContenidoNodo('contenedorListadoBusqueda',node);
					//contenedor = Obtenir('contenedorListadoBusqueda');
					//contenedor.innerHTML=mensaje;
					//contenedor = Obtenir('contenedorLinksBusqueda');
					//contenedor.innerHTML=mensajePie;					
										
				//Bocadillo
				Bocadillo(mensajeBocadillo); //Quita el cargadno, añade el bocadillo o un div vacio	
					
				//Crea los listados de articulos con las respuestas html
					if (mensaje!=null) for (i=0;i<mensaje.length;i++)CrearMiniFichas(mensaje,i,false); //false-> No hay relacionados
				//Crea los listados de articulos RELACIONADOS con las respuestas html
					if (mensajeRelacionados!=null) for (i=0;i<mensajeRelacionados.length;i++)	CrearMiniFichas(mensajeRelacionados,i,true); //true-> Relacionados
					
					tiempo2= microtime(true) - tiempoInicial;
					EjecutarJavascript('contenedorListadoBusqueda');
					tiempo3= microtime(true) - tiempoInicial;										
				break;
			
				case 'formularioArticulo':
					contenedor = Obtenir('contingutCarrito');
					contenedor.innerHTML=mensaje;
					contenedor = Obtenir('linksCarrito');
					contenedor.innerHTML=linksCarrito;
					contenedorTotal = Obtenir('totalCarrito');
					contenedorTotal.innerHTML=total;
										
					Obtenir('celdaDegradado').className="";
					var textoBocadillo;
					if(accion=='eliminar')	textoBocadillo = 'Artículo eliminado del carrito de la compra';
					else textoBocadillo = 'Artículo añadido al carrito de la compra.';
					elementoBocadillo = Crear('DIV');
					elementoBocadillo.id="bocadillo";
					elementoBocadillo.innerHTML = '<div class="vinetaComentariosSuperior"></div><div class="vinetaComentariosIntermedia">'+textoBocadillo+'</div><div class="vinetaComentariosInferior"></div>';
					ReemplazarContenidoNodo('bocadillo',elementoBocadillo);
					//Bocadillo(textoBocadillo);
										
				break;
				
				case 'formularioFichaArticulo':
					Obtenir('textoMasInfo'+idArticulo).style.display="none";
					Obtenir('textoOcultarMasInfo'+idArticulo).style.display="block";
						
					contenedor = Obtenir('contenedorFichaArticulo'+idArticulo);
					contenedor.style.display="block";
					contenedor.innerHTML=mensaje;
					
					EjecutarJavascript('contenedorFichaArticulo'+idArticulo);
				break;
								
			}//fi switch
		//Temporal para testeos muestra tiempos de carga		
			try{
	
				//	elementoBocadillo = Crear('DIV');
				//	tiempoTotal= microtime(true)- tiempoInicial;
				//	elementoBocadillo.innerHTML = '<div class="vinetaComentariosSuperior"></div><div class="vinetaComentariosIntermedia"> <b>WEB EN PRUEBAS DE RENDIMIENTO,PROXIMA APERTURA</b> <br/>________________________________________  <br/> Envio de la peticion AJAX '+tiempo0+' segundos <br> Respuesta del servidor Obtenida '+tiempo1+' segundos <br>Eval Codigo respuesta (2): '+tiempo2+' segundos <br>Funcion de sustitucion script(3): '+tiempo3+' segundos <br>Total transaccion '+tiempoTotal+' segundos <br>_______________________________<br>   Tiempo de carga de los resultados es: '+tiempoCarga+' segundos <br> Tiempo fase1: '+tiempoCarga1+' segundos. (#Fabricante + M.Textual) <br>Tiempo fase2: '+tiempoCarga2+' segundos. (#Comercial)<br> Tiempo fase3: '+tiempoCarga3+' segundos. (Fabricante)<br> Tiempo fase4: '+tiempoCarga4+' segundos. (Categoria)<br> Tiempo fase5: '+tiempoCarga5+' segundos. (Color)<br> Tiempo fase6: '+tiempoCarga6+' segundos. (Alta capadidad)<br> Tiempo fase7: '+tiempoCarga7+' segundos. (M. NO Textual)<br> Tiempo fase8: '+tiempoCarga8+' segundos. (Ejecucion Busqueda)<br> Tiempo fase9: '+tiempoCarga9+' segundos. (Localizacion Relacionados)<br> Tiempo fase10: '+tiempoCarga10+' segundos. (Listado Resultados)<br></div><div class="vinetaComentariosInferior"> </div><br/>';
				//	ReemplazarContenidoNodo('bocadillo',elementoBocadillo);
					//Obtenir('bocadillo').appendChild(elementoBocadillo);
						
			}catch(error){}
			

			
	 	}else{	
	 	// temps espera de la funcio AJAX
		}
	}//fin function canvi estat peticio AJAX
	
//	if(nomFormulari=='formularioBuscador'){
		//envio por GET para probar
//		ajax.send(null);	
//	}else{
		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // metod envio POST
		ajax.send(variables);	
//	}
	
	
}

/**
 *  Para poder usar indiferente mente del navegador event.target
 * @param {Object} event el evento
 */
function NodoEvento(event){

    if (event.srcElement) return event.srcElement; // Internet explorer
    if (event.target) return event.target; // Navegador Estandard

}//fin funcion recoger elemento que provoca un evento



/**
 * Onclicl del enlace ocultar de las fichas
 */

function EnlaceOcultar(idArticulo){
	
	Obtenir('contenedorFichaArticulo'+idArticulo).style.display='none'; 
	Obtenir('textoMasInfo'+idArticulo).style.display='block'; 
	Obtenir('textoOcultarMasInfo'+idArticulo).style.display='none';
	return false;
}


/**
 * EnlaceModelo: esta funcion es para poder asignar multiples funciones a un evento de un elemento DOM
 * @param {Object} CadenaBuscar: parametro que genera la peticion con un enlace
 * 
 * 
 */

function EnlaceModelo(cadenaBuscar){
	Obtenir('buscador').value=cadenaBuscar;
	Cargando();
	EnviarFormulari(RUTA_EXTERNA+'Articulo/resultadoBusquedaAjax.php','formularioBuscador');
	return false;						
}
						
/**
 * 
 * @param {Object} calcular el tiempo com en php
 * @param {Object} 
 */

function microtime(get_as_float) {
    // http://kevin.vanzonneveld.net
    // +   original by: Paulo Ricardo F. Santos
    // *     example 1: timeStamp = microtime(true);
    // *     results 1: timeStamp > 1000000000 && timeStamp < 2000000000
 
    var now = new Date().getTime() / 1000;
    var s = parseInt(now);
 
    return (get_as_float) ? now : (Math.round((now - s) * 1000) / 1000) + ' ' + s;
}


/* ***********************************************************************************
 * ReemplazarContenidoif(isset($_POST) && !empty($_POST)) {
		//Actualizamos el carrito
		include('gestionCarrito.php');	
	}Nodo : A partir de l'id d'un contenidor, elimina tots els nodes
 * 			que cont� i en crea un de nou amb el contingut que li passem com a par�metre
 * 
 *    Autor: Marc
 *    data: 24/01/2008
 * 
 * ***********************************************************************************/

function ReemplazarContenidoNodo(idContenidor,nuevoNodo) {
	try{
		var elemento = Obtenir(idContenidor);
		while(elemento.firstChild) {
			elemento.removeChild(elemento.firstChild);
		}
		elemento.appendChild(nuevoNodo);
		
	}catch(e){
		if(idContenidor=='bocadillo'){
			var contenedor=Obtenir('contenedorListadoBusqueda');	
//			var divBr=Crear('div');
//	 		var br=Crear('br'); //dentro lleva el bocadillo mas un br para separr
//			divBr.appendChild(nuevoNodo);
	//		divBr.appendChild(br);
//			contenedor.appendChild(divBr);
			contenedor.appendChild(nuevoNodo);
			//Bocadillo(nuevoNodo);
		}else{
			alert('No puedo mostrar mensajes. Detalles: RemplazarContenidoNodo id:'+idContenidor+'  #E: '+e);	
		}
		
	}
}




Crear= function (tag) { // Crea un elemento

	return document.createElement(tag);
}

CrearTexto= function (tag) { // Crea un elemento
   return document.createTextNode(tag);
}


/*  ***********************************************************************************
 *  nuevoAjax: Crea un objeto Ajax en funcion del navegador detectado.
 *  
 * ***********************************************************************************/

function ObjecteAjax(){
	var xmlhttp=false;
	// Explorer y sus dos versiones de XMLHTTP
 	try {
 		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 	} catch (e) {
 		try {
 			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 		} catch (E) {
 			xmlhttp = false;
 		}
  	}
	//FireFox
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
 		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}


function Cargando() {
	contenedor = Obtenir('contenedorListadoBusqueda');
	contenedor.innerHTML='<img src="'+RUTA_EXTERNA+'Imagen/loading.gif" /> <b>Cargando<blink>...</blink></b>';
}

/*
 *  funcions per a poder deplegar el menu del administrador.
 */
function desplegarPanelControl()
{
	 document.getElementById('panelControl').style.display='block';	
}
function plegarPanelControl(){
	document.getElementById('panelControl').style.display='none';
}


