/**
 * @author marc & cristian
 */



/** 
 * 
 * @param {Object} id
 */

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()+'/marcarturopa2010/';
//'http://ctrlz.dyndns.org/marcarturopa2010/';
//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=document.location.protocol;
		 var dominioUrlPrincipal=document.location.host;
		 
		 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);
}





function CalcularPreu(tipoArticulo,precio,anchoMax,anchoMin,altoMax,altoMin,idMoneda,cambioMoneda,descuento,impuesto) {
	switch(tipoArticulo) {
		case 1:
			//Cortina
			//Fem la verificaci� que alto, ancho i cantidad siguin num�rics
			alto = Obtenir('alto_1').value;
			ancho = Obtenir('ancho_1').value;
			cantidad = Obtenir('cantidad_1').value;
			idTipo = Obtenir('idTipo_1').value;
			if (!isNaN(alto) && parseInt(alto) >= parseInt(altoMin) && parseInt(alto) <= parseInt(altoMax)) {
				Obtenir('alto_1').style.border = '1px solid';
				Obtenir('alto_1').style.borderColor = '#adadad';
				Obtenir('alto_1').style.backgroundColor = '#FFF';
			} else {
				Obtenir('alto_1').style.border = '1px solid #E32C24';
				Obtenir('alto_1').style.backgroundColor = '#FCDACA';
			}	
			if (!isNaN(ancho) && parseInt(ancho) >= parseInt(anchoMin) && parseInt(ancho) <= parseInt(anchoMax)) {
				Obtenir('ancho_1').style.border = '1px solid';
				Obtenir('ancho_1').style.borderColor = '#adadad';
				Obtenir('ancho_1').style.backgroundColor = '#FFF';
			} else {
				Obtenir('ancho_1').style.border = '1px solid #E32C24';
				Obtenir('ancho_1').style.backgroundColor = '#FCDACA';
			}	
			if (!isNaN(cantidad) && parseInt(cantidad) >= 1 && parseInt(cantidad) <= 100) {
				Obtenir('cantidad_1').style.border = '1px solid';
				Obtenir('cantidad_1').style.borderColor = '#adadad';
				Obtenir('cantidad_1').style.backgroundColor = '#FFF';
			} else {
				Obtenir('cantidad_1').style.border = '1px solid #E32C24';
				Obtenir('cantidad_1').style.backgroundColor = '#FCDACA';
			}
			if(!isNaN(alto) && parseInt(alto) >= parseInt(altoMin) && parseInt(alto) <= parseInt(altoMax) && !isNaN(ancho) && parseInt(ancho) >= parseInt(anchoMin) && parseInt(ancho) <= parseInt(anchoMax) && !isNaN(cantidad) && parseInt(cantidad) >= 1 && parseInt(cantidad) <= 100) {
				precio = precio*(parseInt(ancho)/100)*cantidad;
				if(idTipo==2)	precio = precio*(0.85);
				
				//Calculem el descompte i l'iva si l'usuari �s distribuidor
				if(descuento!='' && impuesto!='') {
					//Extreiem l'IVA
					//precioSinIva = precio/(1.16);
					precioSinIva = precio/(1.18);
					//Apliquem el descompte
					precioDescuento = precioSinIva * ( 1 - (descuento/100) );
					//Apliquem l'IVA propi del distribuidor
					precio = precioDescuento * ( 1 + (impuesto/100) );
				}				
				
				if (idMoneda == 2) {
					precio = precio * (cambioMoneda);
					precio = FormatoNumero(precio);
					Obtenir('precio').innerHTML = precio + ' &#36;';
				} else {
					precio = FormatoNumeroSeparadorMiles(precio);
					Obtenir('precio').innerHTML = precio + ' &#8364;';	
				}	
				/*precio = FormatoNumeroInverso(precio);*/
				/*Obtenir('textoTotal').style.visibility='visible';*/
				
			} else {
				if (idMoneda == 2) {
					Obtenir('precio').innerHTML = '0.00 &#36;';
				} else {
					Obtenir('precio').innerHTML = '0,00 &#8364;';	
				}	
				/*Obtenir('textoTotal').style.visibility='hidden';*/
			}
		break;
		case 2:
			//Tela
			altoMin = 100;
			altoMax = 3000;
			//Fem la verificaci� que alto i cantidad siguin num�rics
			alto = Obtenir('alto_1').value;
			cantidad = Obtenir('cantidad_1').value;
			if (!isNaN(alto) && parseInt(alto) >= parseInt(altoMin) && parseInt(alto) <= parseInt(altoMax)) {
				Obtenir('alto_1').style.border = '1px solid';
				Obtenir('alto_1').style.borderColor = '#adadad';
				Obtenir('alto_1').style.backgroundColor = '#FFF';
			} else {
				Obtenir('alto_1').style.border = '1px solid #E32C24';
				Obtenir('alto_1').style.backgroundColor = '#FCDACA';
			}	
			if (!isNaN(cantidad) && parseInt(cantidad) >= 1 && parseInt(cantidad) <= 100) {
				Obtenir('cantidad_1').style.border = '1px solid';
				Obtenir('cantidad_1').style.borderColor = '#adadad';
				Obtenir('cantidad_1').style.backgroundColor = '#FFF';
			} else {
				Obtenir('cantidad_1').style.border = '1px solid #E32C24';
				Obtenir('cantidad_1').style.backgroundColor = '#FCDACA';
			}
			if(!isNaN(alto) && parseInt(alto) >= parseInt(altoMin) && parseInt(alto) <= parseInt(altoMax) && !isNaN(cantidad) && parseInt(cantidad) >= 1 && parseInt(cantidad) <= 100) {
				precio = precio*(parseInt(alto)/100)*parseInt(cantidad);
				
				//Calculem el descompte i l'iva si l'usuari �s distribuidor
				if(descuento!='' && impuesto!='') {
					//Extreiem l'IVA
					//precioSinIva = precio/(1.16);
					precioSinIva = precio/(1.18);
					//Apliquem el descompte
					precioDescuento = precioSinIva * ( 1 - (descuento/100) );
					//Apliquem l'IVA propi del distribuidor
					precio = precioDescuento * ( 1 + (impuesto/100) );
				}
				
				if (idMoneda == 2) {
					precio = precio * (cambioMoneda);
					precio = FormatoNumero(precio);
					Obtenir('precio').innerHTML = precio + ' &#36;';
				} else {
					precio = FormatoNumeroSeparadorMiles(precio);
					Obtenir('precio').innerHTML = precio + ' &#8364;';	
				}	
				
			} else {
				if (idMoneda == 2) {
					Obtenir('precio').innerHTML = '0.00 &#36;';
				} else {
					Obtenir('precio').innerHTML = '0,00 &#8364;';	
				}	
			/*	Obtenir('textoTotal').style.visibility='hidden';*/
			}
		break;
		case 3:
			//Pachetto
			//Fem la verificaci� que alto, ancho i cantidad siguin num�rics
			alto = Obtenir('alto_1').value;
			ancho = Obtenir('ancho_1').value;
			cantidad = Obtenir('cantidad_1').value;
			if (!isNaN(alto) && parseInt(alto) >= parseInt(altoMin) && parseInt(alto) <= parseInt(altoMax)) {
				Obtenir('alto_1').style.border = '1px solid';
				Obtenir('alto_1').style.borderColor = '#adadad';
				Obtenir('alto_1').style.backgroundColor = '#FFF';
			} else {
				Obtenir('alto_1').style.border = '1px solid #E32C24';
				Obtenir('alto_1').style.backgroundColor = '#FCDACA';
			}	
			if (!isNaN(ancho) && parseInt(ancho) >= parseInt(anchoMin) && parseInt(ancho) <= parseInt(anchoMax)) {
				Obtenir('ancho_1').style.border = '1px solid';
				Obtenir('ancho_1').style.borderColor = '#adadad';
				Obtenir('ancho_1').style.backgroundColor = '#FFF';
			} else {
				Obtenir('ancho_1').style.border = '1px solid #E32C24';
				Obtenir('ancho_1').style.backgroundColor = '#FCDACA';
			}	
			if (!isNaN(cantidad) && parseInt(cantidad) >= 1 && parseInt(cantidad) <= 100) {
				Obtenir('cantidad_1').style.border = '1px solid';
				Obtenir('cantidad_1').style.borderColor = '#adadad';
				Obtenir('cantidad_1').style.backgroundColor = '#FFF';
			} else {
				Obtenir('cantidad_1').style.border = '1px solid #E32C24';
				Obtenir('cantidad_1').style.backgroundColor = '#FCDACA';
			}
			if(!isNaN(alto) && parseInt(alto) >= parseInt(altoMin) && parseInt(alto) <= parseInt(altoMax) && !isNaN(ancho) && parseInt(ancho) >= parseInt(anchoMin) && parseInt(ancho) <= parseInt(anchoMax) && !isNaN(cantidad) && parseInt(cantidad) >= 1 && parseInt(cantidad) <= 100) {
				precio = precio*(alto/100)*cantidad;
				
				//Calculem el descompte i l'iva si l'usuari �s distribuidor
				if(descuento!='' && impuesto!='') {
					//Extreiem l'IVA
					//precioSinIva = precio/(1.16);
					precioSinIva = precio/(1.18);
					//Apliquem el descompte
					precioDescuento = precioSinIva * ( 1 - (descuento/100) );
					//Apliquem l'IVA propi del distribuidor
					precio = precioDescuento * ( 1 + (impuesto/100) );
				}
				
				if (idMoneda == 2) {
					precio = precio * (cambioMoneda);
					precio = FormatoNumero(precio);
					Obtenir('precio').innerHTML = precio + ' &#36;';
				} else {
					precio = FormatoNumeroSeparadorMiles(precio);
					Obtenir('precio').innerHTML = precio + ' &#8364;';	
				}	
			} else {
				if (idMoneda == 2) {
					Obtenir('precio').innerHTML = '0.00 &#36;';
				} else {
					Obtenir('precio').innerHTML = '0,00 &#8364;';	
				}	
			/*	Obtenir('textoTotal').style.visibility='hidden';*/
			}
		break;
		
	}
	
}

/*  ***********************************************************************************
 *  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 vincles(identificadorJs) {
	alert('hello');
	switch(identificadorJs) {
		case 'comprarTelaPorMetros':
			/*
			listen('keypress',calcul,document.getElementById('alto_1'));
			listen('keypress',calcul,document.getElementById('cantidad_1'));
			*/
		break;
		default:
		break;
	}
}


function listen(event, func, elem) {
   // elem = $(elem);
    if (elem.addEventListener)  // standard W3C DOM
        elem.addEventListener(event,func,false);
    else if (elem.attachEvent) { // IE cabron DOM
         var r = elem.attachEvent("on"+event, func);
	return r;
    }
    else throw 'No es posible añadir evento';

}
/*
 * 
 */
function desplegarPanelControl()
{
	 document.getElementById('panelControl').style.display='block';	
}
function plegarPanelControl(){
	document.getElementById('panelControl').style.display='none';
}



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

function IrACarrito(url) {
	var url = url;
	var textMoneda = 'idMoneda'; 
	
	idTipoArticulo = Obtenir('idTipoArticulo_1').value;
	
	switch(idTipoArticulo) {
		case '1':
			//Cortina
			idArticulo = Obtenir('idArticulo_1').value;
			idColor = Obtenir('idColor_1').value;
			alto = Obtenir('alto_1').value;
			ancho = Obtenir('ancho_1').value;
			cantidad = Obtenir('cantidad_1').value;
			
			if(Obtenir('radioOllado').checked)	radioTipo = 1;
			else radioTipo = 2;
			
			if(url.indexOf(textMoneda) != -1) url = url+'&idTipoArticulo='+idTipoArticulo+'&idArticulo='+idArticulo+'&idColor='+idColor+'&radioTipo='+radioTipo+'&alto='+alto+'&ancho='+ancho+'&cantidad='+cantidad;
			else	url = url+'?idTipoArticulo='+idTipoArticulo+'&idArticulo='+idArticulo+'&idColor='+idColor+'&radioTipo='+radioTipo+'&alto='+alto+'&ancho='+ancho+'&cantidad='+cantidad;
		break;
		case '2':
			//Tela
			idArticulo = Obtenir('idArticulo_1').value;
			idColor = Obtenir('idColor_1').value;
			alto = Obtenir('alto_1').value;
			ancho = Obtenir('ancho_1').value;
			cantidad = Obtenir('cantidad_1').value;
			
			if (url.indexOf(textMoneda) != -1)	url = url + '&idTipoArticulo=' + idTipoArticulo + '&idArticulo=' + idArticulo + '&idColor=' + idColor + '&alto=' + alto +'&ancho=' + ancho + '&cantidad=' + cantidad;
			else	url = url + '?idTipoArticulo=' + idTipoArticulo + '&idArticulo=' + idArticulo + '&idColor=' + idColor + '&alto=' + alto +'&ancho=' + ancho + '&cantidad=' + cantidad;
		break;
		default:
		
		break;
	}
		
	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;
	}	
		
}

var boolEtiquetaEnCarrito = false;

var ultimaEtiquetaAnadida = '';

function EnviarEtiquetaCarrito(tipoEnvio) {
	
	if(!boolEtiquetaEnCarrito) {
		boolEtiquetaEnCarrito = true;
	
		//comprovamos que haya texto1 en la etiqueta, sino no es valida
		texto1Aux = Obtenir('textoEtiqueta1').value;
		texto1Aux = texto1Aux.replace(/^(\s|\&nbsp;)*|(\s|\&nbsp;)*$/g,"");
		
		/*if(texto1Aux == '') {
			ponerMensajeCarrito(1);
			boolEtiquetaEnCarrito = false;
		} else {*/
		if(true) {
			animarCarritoCompra();
			
			switch(tipoEnvio) {
				case 'anadir':
					ponerMensajeCarrito(2);
					numElementosCarrito++;
					
					ultimaEtiquetaAnadida = document.getElementById('imagenEtiqueta').src;
										
					EnviarFormulari(RUTA_EXTERNA+'Carrito/carrito.php','formComprar',true,'tipoEnvio='+tipoEnvio+'&ajax=true');
					if(numElementosCarrito>0) {
						Obtenir('enlaceCarritoCompra').innerHTML = numElementosCarrito+' etiquetas en tu cesta';
					} else {
						Obtenir('enlaceCarritoCompra').innerHTML = 'carrito de compra';
					}
					break;
				case 'finalizar':
					
					if(ultimaEtiquetaAnadida == document.getElementById('imagenEtiqueta').src) {
						window.location= RUTA_EXTERNA+'ProcesoCompra/datosEnvio.php';
					} else {
						boolIrAFinalizar = true;
						EnviarFormulari(RUTA_EXTERNA+'Carrito/carrito.php','formComprar',true,'tipoEnvio='+tipoEnvio+'&ajax=true');
					}
					//EnviarFormulariFinalizarCompra(RUTA_EXTERNA+'Carrito/carrito.php','formComprar',true);
					break;
			}
		}
	}
}



/* EnviarFormulari: Envia les variables del formulari per ara només sutilitza per 
 *  				la url:  Carrito/CarritoArticuloAjax.php.
 * 
 */
function EnviarFormulari(url,nomFormulari,sinHistorial,variables2){

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;
	
		// 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+"="+escape(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+'&'+variables2; //a�ado el nombre del formulario y el IDexpediente
	Envio(url,variables); // Envio ya afegeix id expedient y idFinca
	boolEtiquetaEnCarrito = false;
}




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

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= CrearTexto(linea);
		
		//var nuevoScript = document.createElement('script');
		//nuevoScript.text = elemento.innerHTML;
		//nuevoScript.type = 'text/javascript';
		
		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.appendChild(nuevoScript);
		elemento.parentNode.replaceChild(nuevoScript,elemento)
		//contenidor.appendChild(nuevoScript);
		//document.body.appendChild(nuevoScript);
		
		//ReemplazarContenidoNodo(elemento.id,nuevoScript)
		//elemento.replaceChild(nuevoScript,elementos);
		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
		}
}


/*  ***********************************************************************************
 *  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){ 
	//var contenidor = Obtenir('contingut');// div para mostar el resultado.
	//var nomDelFormulari="";// per cuan no hi ha aquesta variable no peti.
	ajax=ObjecteAjax();
	ajax.open("POST", url,true); //Envio de los datos del formulario a la url
	
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4) { // recoje el resultado. solo si la peticion ajax ha sido aceptada
		
			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 'formularioAnadirCarrito':
					switch(tipoEnvio) {
						case 'anadir':

							break;
						case 'finalizar':
							window.location=RUTA_EXTERNA+'ProcesoCompra/datosEnvio.php';
							break;
					}
					
				break;
				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;
					
					EjecutarJavascript('contenedorListadoBusqueda');
					
					elementoBocadillo = Crear('DIV');
					elementoBocadillo.innerHTML = '<div class="vinetaComentariosSuperior"></div><div class="vinetaComentariosIntermedia"> Tiempo de carga de los resultados es: '+tiempoCarga+' segundos.</div><div class="vinetaComentariosInferior"></div><br/>';
					ReemplazarContenidoNodo('bocadillo',elementoBocadillo);										
				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.innerHTML = '<div class="vinetaComentariosSuperior"></div><div class="vinetaComentariosIntermedia">'+textoBocadillo+'</div><div class="vinetaComentariosInferior"></div>';
					ReemplazarContenidoNodo('bocadillo',elementoBocadillo);
				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
		
		
			
	 	}else{
	 		
	 	// temps espera de la funcio AJAX
		}
	}//fin function canvi estat peticio AJAX
	
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // metod envio POST
	ajax.send(variables);

}



/* ***********************************************************************************
 * 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) {
	var elemento = Obtenir(idContenidor);
	while(elemento.firstChild) {
		elemento.removeChild(elemento.firstChild);
	}
	elemento.appendChild(nuevoNodo);
}


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>';
}
