function add(codi, quant) {
	
	e = document.getElementById('cant_'+codi);
	e.value = parseInt(e.value) + quant;
	
	// Aprofitem per actualitzar el valor del checkbox de envio massiu...
	if(check = document.getElementById('check_'+codi)) check.value = e.value;
}

function less(codi, quant) {

	e = document.getElementById('cant_'+codi);
	if(parseInt(e.value) > quant) e.value = parseInt(e.value) - quant;
	
	// Aprofitem per actualitzar el valor del checkbox de envio massiu...
	if(check = document.getElementById('check_'+codi)) check.value = e.value;
}

function verify(codi, quant) {

	e = document.getElementById('cant_'+codi);
	var valor = parseInt(e.value);
	
	// Comprobem que l'hagi convertit a numeric...
	if(isNaN(valor)) { alert('Quantitat no numerica'); e.value = quant; }
	else {
		// Comprobem que el valor no sigui inferior al minim...
		if(valor < quant) { alert('Quantitat inferior a la unitat de compra'); valor = quant; }
		// Comprobem que sigui multiple i si no ajustem cap avall...
		var resto = valor % quant;	
		if(resto > 0) { alert('Quantitat no multiple'); valor -=  resto; }
		// Si te decimals deixem nomes la part sencera...
		if((parseFloat(e.value) % 1) > 0) alert('Quantitat decimal no valida');
		e.value = valor;	
	}
	// Aprofitem per actualitzar el valor del checkbox de envio massiu...
	if(check = document.getElementById('check_'+codi)) check.value = e.value;
}

function add_and_mod(codi, quant, preu, template)
{
	add(codi, quant);
	mod_cart(codi, $('cant_'+codi).value, preu, template);
}

function less_and_mod(codi, quant, preu, template)
{
	less(codi, quant);
	mod_cart(codi, $('cant_'+codi).value, preu, template);
}

function verify_and_mod(codi, quant, preu, template)
{
	verify(codi, quant);
	mod_cart(codi, $('cant_'+codi).value, preu, template);
}

function add_cart(codi, quant, unitat, preu, desc, iva, minim_venta)
{
	// Farem servir una mica de Ajax de la llibreria Prototype...
	new Ajax.Updater('cistella', 'add_cart.php', { method: 'get',  parameters: { article: codi , quantitat: quant , unitat: unitat , preu: preu, descripcio: desc, iva: iva, action: 'afegir' } });
	
	// Aprofitem per deixar el camp amb el valor inicial del minim de venta...
	if(cant = document.getElementById('cant_'+codi)) cant.value = minim_venta;

        // I el del checkbox de envio massiu...
	if(check = document.getElementById('check_'+codi)) check.value = minim_venta;
}

function mod_cart(codi, quant, preu, template)
{
	// Actualitzem el total article de la linia actual...
	var total = Math.round(quant * preu * 100) / 100;
	//document.getElementById('total_'+codi).innerHTML = total;
	$('total_'+codi).update(total);
	
	// I actualitzem els totals de la cistella amb Ajax...
	new Ajax.Updater('totals_cistella', 'mod_cart.php', { method: 'get',  parameters: { codi: codi , quantitat: quant, action: 'actualitzar', template: template } }); 
}

function change_cart(codi, quant, preu, template)
{
	// Canviem la info de la quantitat demanada per la confirmada...
	var total = Math.round(quant * preu * 100) / 100;
	$('total_'+codi).update(total);
	
	$(codi).className = "llista_productes";
	$('quantd_'+codi).innerHTML = $('quant_'+codi).innerHTML;
	$('accions_'+codi).innerHTML = "<img src=\"images/ok.png\" title=\"Quantitat Ok\"/>";

	// I actualitzem els totals de la cistella amb Ajax...
	new Ajax.Updater('totals_cistella', 'mod_cart.php', { method: 'get',  parameters: { codi: codi , quantitat: quant, action: 'actualitzar', template: template } }); 
}

function del_cart(codi, missatge, template)
{
	// Primer demanem confirmacio amb un missatge personalitzat per l'article....
	if (confirm(missatge))
	{
		// Treiem la linia actual i despres actualitzarem la cistella / totals...
		$(codi).remove(); 
		new Ajax.Updater('totals_cistella', 'mod_cart.php', { method: 'get',  parameters: { codi: codi , action: 'eliminar', template: template } }); 
	}
}

function lock_unlock_cart()
{
	// Canviem el estat de movil / immovil de la cistella en pantalla...
	if($('taula_cistella').className == "unlock") estat="lock"; else estat="unlock"; 
	
	new Ajax.Updater('cistella', 'add_cart.php', { method: 'get',  parameters: { estat: estat, action: 'lock_unlock' } }); 
}

function pregunta(missatge, url)
{
	// Demanem confirmacio amb un missatge personalitzat....
	if (confirm(missatge))
	{
		// I carreguem la url en cas afirmatiu.
		window.location.href=url;	
	}
}

function check_uncheck_all(list, sender_id, canviar)
{
	// Verifiquem l'estat dels checkboxes i possem si s'han de marcar / desmarcar...
	sender = document.getElementById(sender_id);
	if( sender.checked == true ) { if(canviar==true) check = false; else check = true; }
	else { if(canviar==true) check = true; else check = false; }
	
	// Recorrem els elements del formulari i marquem / desmarquem els checkboxes ...
	for (i=0; i < list.length; i++) 
	{
		if(list[i].type == "checkbox") { 
			if(list[i].disabled == false) list[i].checked = check;
		}
	}
}

function canvi_dia_entrega(dia, mes)
{
	// Actualitzem el calendari al dia de entrega indicat...
	new Ajax.Updater('calendari', 'canvi_dia_entrega.php', { method: 'get',  parameters: { dia: dia , mes: mes } }); 
}

function desar_observacions(observacions)
{
        // Desem les observacions si les han canviat.
        new Ajax.Request('desar_observacions.php', { method: 'post', parameters: {observacions: observacions}, asynchronous: false });
}

function detall_albara(albara)
{
    // Mostrem les linies del albarà actual...
    new Ajax.Updater('albara_'+albara, 'detall_albara.php', { method: 'get', parameters: { albara: albara } });
}

function limitChars(textarea, limit, infodiv, lang)
{
  var text = textarea.value;
  var textlength = text.length;
  var info = document.getElementById(infodiv);

  if(textlength > limit)
  {
    if(lang == 'ca') info.innerHTML = 'No pot escriure més de '+limit+' caràcters';
    else info.innerHTML = 'No puede escribir más de '+limit+' carácteres';

    textarea.value = text.substr(0,limit);
    return false;
  }
  else
  {
    if(lang == 'ca') info.innerHTML = '(Max. 200 caràcters) Li resten '+ (limit - textlength) +' caracters per escriure.';
    else info.innerHTML = '(Max. 200 carácteres) Le quedan '+ (limit - textlength) +' carácteres por escribir.';
    return true;
  }
}

function obrirFinestra ( url )
{
     leftPos = 0;
     topPos = 0;
     if (screen) {
         leftPos = (screen.width/2)-300;
         topPos = (screen.height/2)-200;
     }
     window.open( url ,'info','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,left='+leftPos+',top='+topPos+',width=600,height=400');
}

function del_list(codi, missatge)
{
	// Primer demanem confirmacio amb un missatge personalitzat per l'article....
	if (confirm(missatge))
	{
		// Treiem la linia actual i despres esborrem la llista de la bbdd...
		$(codi).remove(); 
	        new Ajax.Request('desar_cistella.php', { method: 'post', parameters: {action: 'remove', id: codi}, asynchronous: false });
	}
}

function add_list(nom)
{
	// Desem la cistella de la compra actual amb el nom que ens hagin passat...
        new Ajax.Request('desar_cistella.php', { method: 'post', parameters: {action: 'add', nom_llista: nom}, asynchronous: false });
}

