function GetChar (event,url, urlPreu, article, plantilla, promocio, oferta, veuPreus){
	var quantitat= $('#quantitat_' + article).val();
	var format=$('#unitatVenda_' + article).val();
	var preu= '';

	var keyCode = event.which;
	var ok = false;
	if (keyCode == 13) {
        	keyCode = event.keyCode;

		//alert("article: "+ article + "\nquantitat: " + quantitat + "\npreu: " + preu + "\nFormat: " + format + "\nveupreus: " + veuPreus);
		ajax_carrito(url, urlPreu, article, quantitat, format, preu, plantilla, promocio, oferta, veuPreus);
		$('#quantitat_' + article).blur();
		ok = true;
	}
	//alert ("The Unicode key code is: " + keyCode);
	//Si retorna true, tancara la finestra de detall del producte després de fer Intro.
	return ok;
}

function GetCharObservacions(){
	var observacions = $('#txt_observacions').val();
	var len = 100 - $('#txt_observacions').val().length;
	var obs100 = "";

	if(len <= 0){
		obs100 = observacions.substr(0,100);
		$('#txt_observacions').val(obs100);
		len = 0;
	}

	$('#maxChar').html(len);
}

function GetCharCerca(event, url, capa, titol){
	var keyCode = event.which;
	if (keyCode == 13) {
        	keyCode = event.keyCode;
		cerca_producte(url, capa);
		$('#titol_cerca').html(' - ' + titol);
        }
	//alert ("The Unicode key code is: " + keyCode);
}

function chgIdioma(cat,cast,id)
{
	if(id == 1)
		window.location=cat;
	else if(id == 2)
		window.location=cast;
}

function comprobarCobertura(){
	var cp = $('#cp').attr('value');
	var url = '/general.comprobarCobertura?cp=' + cp;

	ajaxCaller.getPlainText(url, function(html){
		var valor = html.replace(/\n/gi, "");
		window.location = "/form_registre?distrib=" + valor + "&cp=" + cp;
		//jAlert(valor);
	});
}

function preuUnitatVenda(preu,codi){
	var arrPreu = preu.split('¬');

	if(arrPreu[0] == 0)
		$('#preu_' + codi).html('--');
	else
		$('#preu_' + codi).html(arrPreu[0] + ' €');
}

function preuUnitatVendaDetall(preu,codi){
	var arrPreu = preu.split('¬');
	var sel = document.getElementById('unitatVenda_' + codi + '_Detall');
	if(arrPreu[0] == 0){
		$('#preu_' + codi + '_Detall' ).html('--');
		$('#unitatVendaDetall').html('--');	
	}
	else{
		$('#preu_' + codi + '_Detall' ).html(arrPreu[0] + ' €');
		$('#unitatVendaDetall').html('( ' + sel.options[sel.selectedIndex].text + ' )');
	}
}

/*******************************************************************************
* function ajax(url, capa, menu)
* descr:
* 	Utilitzada pel menú de families i subfamilies, deixa marcat el menú clicat.
*******************************************************************************/
function ajax_menu(url, capa, menu){

	var param = "";
	var tipus_menu = '';

        $("#"+capa).html("<div style='position:relative;margin-top:30%;height:60%;left:50%;'><img id='loading' src='/imgfiles/imgs/icos/ajax_loader.gif'/></div>");
	
	//Canvi per als menus de zona gourmet

	tipus_menu = menu.substring(0,3); //Mirem si els 3 primers digits son '999' => familia zona gourmet
	if(tipus_menu == '999'){
		$(".menu_gourmet_actiu").removeClass("menu_gourmet_actiu").addClass("menu_gourmet menu_fill");
		$("#" + menu).attr("class","menu_gourmet_actiu");
	}else{
		$(".menu_fill_actiu").removeClass("menu_fill_actiu").addClass("menu_fill");
		$("#" + menu).attr("class","menu_fill_actiu");
	}
	

	//Es comprova que existeixi el radio button
	if ($("#rdo_ordre_nom").length) {
		//Parametre per ordenar la cerca, per nom o per codi de producte
		if(document.getElementById('rdo_ordre_nom').checked)
			param += '&ordre=DescripcioLLarga';
		else if(document.getElementById('rdo_ordre_codi').checked)
			param += '&ordre=cp';
	}
	
	url += param;

	eBDSection.show(url, function(html){
		//$("#" + capa).html("").fadeOut();
		//$("#" + capa).html(html).fadeIn();

		$("#" + capa).html("").html(html);
	});

}

function ajax(url, capa){
        $("#"+capa).html("<div style='position:relative;margin-top:30%;height:60%;left:50%;'><img id='loading' src='/imgfiles/imgs/icos/ajax_loader.gif'/></div>");
	
	eBDSection.show(url, function(html){
		//$("#" + capa).html("").fadeOut();
		//$("#" + capa).html(html).fadeIn();
		//alert(html);
		$("#" + capa).html("").html(html);
	});
}

/*Funcio que afegeix una unitat d'un producte identificat per CODI al carrito actiu*/
function afegirUnitat(url,urlPreu,codi,format,preu,subtotal,veuPreus){
	//actualitza el textBox amb la nova quantitat.
	var id = 'quantitat_' + codi + '_' + format;
	var val = parseInt(document.getElementById(id).value);
	val = val+1;

	if(val < 100){
		document.getElementById(id).value = val;
		if(veuPreus == 1)
			calculaPreuTotalArticle(codi, format, val, preu);
		//Actualitza el panell del carrito de la dreta
		ajax_carrito(url,urlPreu,codi,1,format,preu,"","","",veuPreus);	//Els 3 ultims parametres (plantilla, promocio i oferta), de moment no s'utilitzen.
		//En aquest cas el parametre plantilla no s'utilitza perque aquesta funcio nomes es crida desde el detall de la comanda.
		setTimeout("ajax('"+subtotal+"','detallSubtotal')",500);
	}
}


/*Funcio que elimina una unitat d'un producte identificat per CODI al carrito actiu*/
function eliminarUnitat(url,urlPreu,codi,format,preu,subtotal,veuPreus){

	//actualitza el textBox amb la nova quantitat.
	var id = 'quantitat_' + codi + '_' + format;
	var val = parseInt(document.getElementById(id).value);
	val = val-1;
	if(val > 0){
		document.getElementById(id).value = val;
		if(veuPreus == 1)
			calculaPreuTotalArticle(codi, format, val, preu);

		//Actualitza el panell del carrito de la dreta
		ajax_carrito(url,urlPreu,codi,"resta",format,preu,"","","",veuPreus);	//Els 3 ultims parametres (plantilla, promocio i oferta), de moment no s'utilitzen.
		//En aquest cas el parametre plantilla no s'utilitza perque aquesta funcio nomes es crida desde el detall de la comanda.
		setTimeout("ajax('"+subtotal+"','detallSubtotal')",500);
	}
	
	if(!isNaN(val))
		BrainUpdProduct(codi, val);
}

/*Actualitza el Preu Total del producte quan s'afegeix o s'elimina una quantitat.*/
function calculaPreuTotalArticle(codi, format, val, preu)
{
	var id = 'preuTotal_' + codi + '_' + format;
	if ($("#" + id).length) {
		val = val * preu;
		val = parseFloat(val);
		var result=Math.round(val*100)/100 ;
		result = result.toFixed(2); //Arrodoneix els decimals a 2.
		preu = result.replace('.',',');
		document.getElementById(id).innerHTML = preu + ' €';
	}
}

/*******************************************************************************
*function  ajax_carrito_Mod(url, capa)
* descr:
* 	Utilitzada per actualitzar el carrito, en comptes d'afegir o eliminar, modifica la quantitat.
*	Quan s'introdueix manualment una quantitat en la modificació (detall) del carrito
*	Munta la url amb el parametre seleccionat
* 	Added on: 02/09/2010
*		Amb la variable "Altura" es comprova l'estat de la capa "subtotal" (links del carrito, etc)
*		Si esta a 50px, és a dir, per defecte, es posa la nova alçada a 150px;
*******************************************************************************/
function ajax_carrito_Mod(url, urlPreu, article, quantitat, preu, format, subtotal, e, veuPreus){
	var tecla = e.keyCode;
	var q = '';
	//Tecla >= 48 && tecla <= 57 == tecles de numeros superiors
	//Tecla >= 96 && tecla <= 105 == tecles del teclat numeric
	//Tecla == 8 == Backspace
	//Tecla == 46 == Suprimir

	var altura = $('#subtotal').css("height");
	
	//urlPreu += '&page=309';

	for(i=0;i<quantitat.length;i++)
	{
		if(quantitat.charAt(i) >= 0 && quantitat.charAt(i) <= 9)
			q += quantitat.charAt(i);
	}

	document.getElementById('quantitat_' + article + '_' + format).value = q;

	if(!isNaN(q) && q> 0 && ((tecla >= 48 && tecla <= 57) || (tecla >= 96 && tecla <= 105) || tecla == 46 || tecla == 8) )
	{
		var ws = '/carrito.modificar_quantitat?article=' + article + '&quantitat=' + q + '&format=' + format;

		ajaxCaller.getPlainText(ws, function(){
			pintaCarrito(url,urlPreu,veuPreus);
		});
		if(veuPreus == 1){
			calculaPreuTotalArticle(article,format,q,preu);
			setTimeout("ajax('"+subtotal+"','detallSubtotal')",500); 
		}
	}

	if(altura != '100%'){
		var navegador = navigator.appName;
	        if (navegador == "Microsoft Internet Explorer")
			$('#subtotal').css("height","100%");
	}
}
/*******************************************************************************
*function ajax_carrito(url, capa)
* descr:
* 	Utilitzada per actualitzar el carrito.
*	Munta la url amb el parametre seleccionat
* 	Added on: 02/09/2010
*		Amb la variable "Altura" es comprova l'estat de la capa "subtotal" (links del carrito, etc)
*		Si esta a 50px, és a dir, per defecte, es posa la nova alçada a 150px;
*******************************************************************************/
function ajax_carrito(url, urlPreu, article, quantitat, format, preu, plantilla, promocio, oferta, veuPreus){
	var error = false;
	var altura = $('#subtotal').css("height");
	
	//alert('url: ' + url + ' urlPreu: ' + urlPreu + ' article: ' + article + ' quantitat: ' + quantitat + ' format: ' + format + ' preu: ' + preu + ' plantilla: ' + plantilla + ' promocio: ' + promocio + ' oferta: ' + oferta + ' veuPreus: ' + veuPreus);

	//urlPreu += '&page=309';
	if(preu == '')
	{
		var arrPreuUnitat; //Variable array que contindra el preu i la unitat de venda
		arrPreuUnitat = format.split('¬');
		preu = arrPreuUnitat[0];
		preu.replace(',','.');
		format = arrPreuUnitat[1];
	}

	if(preu == 0){
		jAlert('Trii una unitat de venda.\n\nEscoja una unidad de venta.','Error');
		error = true;
	}
	//Evitem que entrin valors negatius, també es comprova en la funcio afegir_producte del WS.
	else if( (quantitat != '' && quantitat > 0) || quantitat == ''){
		$("#cos_carrito").html("<div style='position:relative;padding-top:10%;height:60%;padding-left:40%;background:white;'><img id='loading' src='/imgfiles/imgs/icos/ajax_loader_petit.gif'/></div>");

		//var quantitat = document.getElementById('quantitat_'+article).value;
		if (quantitat == ''){ quantitat = 1; }
		var ws = '/carrito.afegir_producte?article=' + article + '&quantitat=' + quantitat + '&preu=' + preu + '&format=' + format + '&plantilla=' + plantilla;

		ajaxCaller.getPlainText(ws, function(html1){
			pintaCarrito(url,urlPreu,veuPreus);
		}); 

		BrainAddProduct(article, quantitat, preu);
	}
	else if(quantitat == 'resta'){
		$("#cos_carrito").html("<div style='position:relative;padding-top:10%;height:60%;padding-left:40%;background:white;'><img id='loading' src='/imgfiles/imgs/icos/ajax_loader_petit.gif'/></div>");

		//var quantitat = document.getElementById('quantitat_'+article).value;
		var ws = '/carrito.afegir_producte?article=' + article + '&quantitat=r&preu=' + preu + '&format=' + format + '&plantilla=' + plantilla;

		ajaxCaller.getPlainText(ws, function(html1){
			pintaCarrito(url,urlPreu,veuPreus);
		});
	}

	if(altura != '100%'){
		var navegador = navigator.appName;
	        if (navegador == "Microsoft Internet Explorer")
			$('#subtotal').css("height","100%");
	}

	//Valor de retorn per al detall d´un producte, si retorna false no hi ha haugt error i es tancara la finestra del detall, si retorna true hi ha hagut error i no es tancara.
	return error;
}


/*******************************************************************************
*function pintaCarrito(url, urlPreu)
* descr:
* 	Utilitzada per actualitzar el carrito (Productes i subtotal a la part de la dreta de la pagina).
*
*******************************************************************************/
function pintaCarrito(url,urlPreu,veuPreus)
{
  eBDSection.show(url, function(html){
	var obj=document.getElementById('cos_carrito');
	obj.innerHTML="";
	if (obj != null) {
		obj.innerHTML=html;

		if(veuPreus == 1){
			$("#subtotal").html("<div style='position:relative;padding-top:10%;height:60%;padding-left:40%;background:white;'><img id='loading' src='/imgfiles/imgs/icos/ajax_loader_petit.gif'/></div>");
		}

		eBDSection.show(urlPreu, function(html2){
			var obj=document.getElementById('subtotal');
			obj.innerHTML="";
			if (obj != null) {
				obj.innerHTML=html2;
			}
		});
	}
  });

}

/*******************************************************************************
*function segur(carro, preu)
* descr:
* 	S'utilitza per esborrar completament el carrito.
*
*******************************************************************************/
function segur(missatge,titol,carro, preu){
	jConfirm(missatge, titol, function(r){
		if(r){
			NetejarCarro(0,carro,preu);
		}
	});
}

/*******************************************************************************
* function CancelarComanda(titol,missatge,carro,link)
* descr:
* 	S'utilitza per cancelar la comanda.
*
*******************************************************************************/
function CancelarComanda(titol,missatge,carro,link){
	jConfirm(missatge, titol,function(r){
		if(r){
			Cancelar(carro,link);
		}
	});
}

/*******************************************************************************
* function Cancelar(carro,link)
* descr:
* 	S'utilitza per cancelar la comanda.
*
*******************************************************************************/
function Cancelar(carro,link){
	var url = '/comanda.cancelar?IdComanda=' + carro;

	ajaxCaller.getPlainText(url, function(html){
		var valor = html.replace(/\n/gi, "");
		if(valor == 'ok')
			window.location = link;
		else
			jAlert('Hi ha hagut un problema','Problema');
	});

	$('#subtotal').css("height","75px");
}

/*******************************************************************************
*function afegirFavorito(producte)
* descr:
* 	Utilitzada per afegir un producte a 'Favorito'
*******************************************************************************/
function afegirFavorito(producte,url,capa)
{
	ajaxCaller.getPlainText('/favorito.afegirProducte?article=' + producte,function(){
			cerca_producte(url,capa);
			return true;
		}
	);
}

/*******************************************************************************
*function eliminarFavorito(producte)
* descr:
* 	Utilitzada per eliminar un producte de 'Favorito'
*******************************************************************************/
function eliminarFavorito(producte,url,capa)
{
	ajaxCaller.getPlainText('/favorito.eliminarProducte?article=' + producte,function(){
			cerca_producte(url,capa);
			return true;
		}
	);
}

/*******************************************************************************
*function eliminarProducte(producte)
* descr:
* 	Utilitzada per eliminar un producte del carrito actiu
*******************************************************************************/
function eliminarProducte(titol, missatge, producte, format, detall,url,urlPreu,subtotal,veuPreus){

	jConfirm(missatge, titol,function(r){
		if(r){
			ajaxCaller.getPlainText('/carrito.eliminar_producte?article=' + producte + '&format=' + format,function(nProds){
				BrainUpdProduct(codi, 0);
				if(nProds > 0){
	  	    			ajax(detall, 'detallComanda');
			    		//Actualitza el panell del carrito de la dreta
			    		pintaCarrito(url,urlPreu,veuPreus);
				}else{
					window.location = "/cerca/";
				}
				
		  	});
		}
	});

}

/*******************************************************************************
*function cerca_producte(url, capa)
* descr:
* 	Utilitzada per filtrar la cerca de productes.
*	Munta la url amb el parametre seleccionat
*******************************************************************************/
function cerca_producte(url, capa)
{
	var i;
	var param = '';

	param = '&input_text=' + document.getElementById('camp_lliure').value;

	//Es comprova que existeixi el radio button
	if ($("#rdo_ordre_nom").length) {
		if(document.getElementById('rdo_ordre_nom').checked)
			param += '&ordre=DescripcioLLarga';
		else if(document.getElementById('rdo_ordre_codi').checked)
			param += '&ordre=cp';
	}
	
	url += param;

	ajax(url,capa);
}

/*******************************************************************************
* function ajax_thickbox(url,capa)
* descr: 
*	Carrega per ajax un contingut dinàmic en una capa.
*	Aquesta capa és la que es mostra en el thickbox.
*******************************************************************************/
function ajax_thickbox(url,capa,titol,config){
        //$("#"+capa).html("<div style='position:relative;top:20%;height:60%;left:50%;'><img id='loading' src='/imgfiles/imgs/icos/ajax_loader.gif'/></div>");
	eBDSection.show(url, function(html){
		var obj=document.getElementById(capa);
		obj.innerHTML="";
		if (obj != null) {
			obj.innerHTML=html;
			tb_show(titol, config + capa, false);
		}
	});
}

function ajax_thickbox2(url,capa,titol,config){
	$("#"+capa).html("<img style='margin:160px 0 0 220px;' id='loading' src='/imgfiles/imgs/icos/ajax_loader_barra.gif'/>");
	tb_show(titol, config + capa, false);
	eBDSection.show(url, function(html){
		var obj=document.getElementById(capa);
		$("#TB_ajaxContent").html("");
		//obj.innerHTML="";
		if (obj != null) {
			obj.innerHTML=html;
			tb_show(titol, config + capa, false);
		}
	});
}


function enviar_comanda(){
	var enviat = $('#boto_enviat').val();

	if(enviat == 0){
		BrainCheckOutStart();
		$('#boto_enviat').val("1");
		$('#boto_enviar_comanda').addClass("bt_cancelar_comanda");
		$('#boto_enviar_comanda').removeClass("bt_finalitzar_comanda");
		$('#boto_enviar_comanda').css("cursor","default");
		
		//$('#boto_enviar_comanda').attr('disabled',true);
		var observacions = $('#txt_observacions').attr('value');
		var comanda2 = $('#IdComanda2').attr('value'); 
		var url = "/comanda.enviar_comanda?observacions=" + observacions + '&comanda2=' + comanda2;
		$("#enviant_comanda").html("<img id='loading' src='/imgfiles/imgs/icos/ajax_loader.gif'/>");
		
		ajaxCaller.getPlainText(url, function(html){
			var valor = html.replace(/\n/gi, "");
			//alert(valor);
			switch(valor)
			{
				case 'ok':
					window.location = "/comanda_confirmada";
					break;
				case 'ko':
					jAlert("Hi ha hagut un error en tramitar la comanda. Torni-ho a intentar.", "Error comanda");
					//document.getElementById('boto_enviar_comanda').disabled = false;
					$('#boto_enviar_comanda').removeClass("bt_cancelar_comanda");
					$('#boto_enviar_comanda').addClass("bt_finalitzar_comanda");
					$('#boto_enviat').val("0");
					tb_remove();
					$("#enviant_comanda").html("");
					break;
				case 'enviat':
					jAlert("La comanda ja s'ha enviat", "Error comanda");
					$("#enviant_comanda").html("");
					break;
				default:
					jAlert("S'ha produit un error", "Error comanda");
					//document.getElementById('boto_enviar_comanda').disabled = false;
					$('#boto_enviar_comanda').removeClass("bt_cancelar_comanda");
					$('#boto_enviar_comanda').addClass("bt_finalitzar_comanda");
					$('#boto_enviat').val("0");
					tb_remove();
					$("#enviant_comanda").html("");
			}
			
		}); 
	}
}

function recuperar_comanda_confirmacio(idComanda,codiClient,codiEmpresa,data,ref,capa,sms){

	var cancelaComanda = false;
	//alert("idComanda = " + idComanda + " codiClient = " + codiClient + "codiEmpresa = " + codiEmpresa + " Data = " + data + " Ref: " + ref);

	if(idComanda > 0){
		
		jConfirm(sms, "Error", function(r){
			if(r){
				recuperar_comanda(codiClient,codiEmpresa,data,ref,capa,function(){
					Cancelar(idComanda,'');
				});
			}
		});
	}
	else if(!cancelaComanda && idComanda == 0)
		recuperar_comanda(codiClient,codiEmpresa,data,ref,capa);
}

function recuperar_comanda(codiClient,codiEmpresa,data,ref,capa){

	var url = '/comanda.crear_comanda?codiClient=' + codiClient + '&codiEmpresa=' + codiEmpresa + '&dataLliurament=' + data + '&refComanda=' + ref;
	//alert("Client: " + codiClient + "Empresa: " + codiEmpresa + "Data: " + data + "Ref: " + ref);

	$("#" + capa).html("<div style='position:relative;top:20%;height:60%;left:50%;'><img id='loading' src='/imgfiles/imgs/icos/ajax_loader.gif'/></div>");
	ajaxCaller.getPlainText(url, function(html){
		//Recuperant comanda...

		//redireccionar a la cerca de productes
		location.href="/cerca";
	}); 
}

//Variable global booleana, per canviar entre "carritos" quan hi ha més d'un, no la toqueu, gràcies!
var mainCarrito = true;
function switchCarritos(url, capa){

	if (mainCarrito){
		document.getElementById('pesCarrito1').className = "";
		document.getElementById('pesCarrito2').className = "sel";
		mainCarrito=false;
		ajax(url,capa);
	}
	else
	{
		document.getElementById('pesCarrito1').className = "sel";
		document.getElementById('pesCarrito2').className = "";	
		mainCarrito=true;
		ajax(url,capa);
	}
}

//Google Maps
var map = null;
var geocoder = null;

function initialize() {
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("map_canvas"));
    geocoder = new GClientGeocoder();
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
  }
}

function showAddress(address) {
  if (geocoder) {
    geocoder.getLatLng(
      address,
      function(point) {
        if (!point) {
          alert(address + " not found");
        } else {
          map.setCenter(point, 13);
          var marker = new GMarker(point);
          map.addOverlay(marker);
          marker.openInfoWindowHtml(address);
        }
      }
    );
  }
}

function showAddressCoords(lat,lon,text)
{	
	map.setCenter(new GLatLng(lat, lon), 15);
	var point = new GLatLng(lat,lon);

	function addtag(point, address) {
        	var marker = new GMarker(point);
	        GEvent.addListener(marker, "mouseover", function() {
		marker.openInfoWindowHtml(address); } );
	        return marker;
        }

        map.addOverlay(new GMarker(point));

        var marker = addtag(point, text);
	map.addOverlay(marker);

}
/*         Neteja el carrito
*************************************************
idcomanda: Identificador de comanda
capsalera: [0 ó 1], si és total o parcial
	si total=0, nomes esborrem les linies
	si total=1, esborrem capsalera i linies
*************************************************/


function NetejarCarro(capsalera,urlcarro,urlpreu){
//$("#cos_carrito").html("<div style='position:relative;padding-top:10%;height:60%;padding-left:40%;background:white;'><img id='loading' src='/imgfiles/imgs/icos/ajax_loader_petit.gif'/></div>");
	var url = '/carrito.netejar?capsalera=' + capsalera;

	ajaxCaller.getPlainText(url, function(){
		pintaCarrito(urlcarro,urlpreu);
	});

	$('#subtotal').css("height","75px");
}

