//GESTION DE COOKIES
//Autor: Iván Nieto Pérez
//Mejora: Sergio Ruiz
//Este script y otros muchos pueden
//descarse on-line de forma gratuita
//en El Código: www.elcodigo.com

function leerCookie(nombre) {
   //a = document.cookie.substring(document.cookie.indexOf(nombre + '=') + nombre.length + 1,document.cookie.length);
   a = document.cookie.substring(document.cookie.indexOf(nombre + '=') ,document.cookie.length);
   if(a.indexOf(';') != -1)a = a.substring(0,a.indexOf(';'))
   return a; 
}
/////////////////// CONFIGURACION ////////////////////////////////////
var separador = "ˇ"		//caracter separador de campos en el texto de la cookie
var numElementos = 4		//numero de campos en el formulario


/////////////////// DATOS QUE SE MOSTRARAN ///////////////////////////
function MostrarMiCookie(nombreCk){
	var pieza = null
	var i = 0

	if(CojerCookie(nombreCk) != null) {
		nombre = CojerCookie(nombreCk);
		alert(nombre);
		/*
		pieza = nombre.split(separador)
	
		for(i = 0; i < pieza.length; i++) 
			if (pieza[i] != null) {
				formulario.elements[ i ].value = pieza[ i ]
			}
		*/
	}else{
		alert('Carrito buit');
	}
}



/////////////////////////DATOS QUE SE GUARDARAN /////////////////////////////////////
function JuntarPiezas( nombreCk,entero ) {
	var gall = CojerCookie(nombreCk);
	var correcto=1;
	if(gall){
		var galleta = gall.split(separador);
		for(var i=0;galleta[i]!=null;i++) {
			var galleta2 = galleta[i].split(':');
			var entero2 = entero.split(':');
			if(galleta2[0]!=entero2[0]){ correcto=1; }else{ correcto=0;break; }
		}
	}
	if(correcto){
		if(CojerCookie(nombreCk) != null) {
			nombre = CojerCookie(nombreCk)
			IntroducirCookie(nombreCk,nombre+entero+separador)
		}else{
			IntroducirCookie(nombreCk,separador+entero+separador)
		}
		//alert('Producte afegit correctament');
	}else{
		//alert('El producte ja estŕ a la lista');
	}
}

////////////////////////////////// FIN DE VARIABLES A CAMBIAR /////////////////////////////////

function CojerValorCookie(nombre,indice) {
	//indice indica el comienzo del valor
	var galleta = leerCookie(nombre); //document.cookie
	//busca el final del valor, dado por ;, a partir de indice
	var finDeCadena = galleta.indexOf(";", indice)
	//si no existe el ;, el final del valor lo marca la longitud total de la cookie
	if (finDeCadena == -1)
		finDeCadena = galleta.length

	return unescape(galleta.substring(indice, finDeCadena))
}

function CojerCookie(nombre) {
	var galleta = leerCookie(nombre); //document.cookie;
	//construye la cadena con el nombre del valor
	var arg = nombre + "=";
    var alen = arg.length;			//longitud del nombre del valor
	var glen = galleta.length;		//longitud de la cookie
	var i = 0;
	while (i < glen) {
		var j = i + alen;			//posiciona j al final del nombre del valor
		if (galleta.substring(i, j) == arg){	//si en la cookie estamo ya en nombre del valor
		return CojerValorCookie(nombre,j);	//devuelve el valor, que esta a partir de j
		}

		i = galleta.indexOf(" ", i) + 1;		//pasa al siguiente
		if (i == 0)
			break;				//fin de la cookie
	}
	return '';					//no se encuentra el nombre del valor
}

function GuardarCookie (nombre, valor, caducidad) {
	if(!caducidad) { caducidad = Caduca(1); }

	//crea la cookie: incluye el nombre, la caducidad y la ruta donde esta guardada
	//cada valor esta separado por ; y un espacio
	//alert(nombre + "=" + escape(valor) + "; expires=" + caducidad + "; path=/");
	document.cookie = nombre + "=" + escape(valor) + "; expires=" + caducidad + "; path=/";
}

function Caduca(dias) {
	//var hoy = new Date()					//coge la fecha actual
	//var msEnXDias = eval(dias) * 24 * 60 * 60 * 1000	//pasa los dias a mseg.

	//hoy.setTime(hoy.getTime() + msEnXDias)			//fecha de caducidad: actual + caducidad
	//return (hoy.toGMTString())
	var date = new Date();
	date.setTime(date.getTime()+(dias*24*60*60*1000));
	return date.toGMTString();
}

function BorrarCookie(nombreCk) {
	//para borrar la cookie, se le pone una fecha del pasado mediante Caduca(-1)
	document.cookie = nombreCk + "=; expires=" + Caduca(-1) + "; path=/"
	//alert('Carrito buidat correctament');
	//window.location.reload( false );
}

function IntroducirCookie(nombreCk,nombre) {
	//establece la cookie: la caducidad es de 31 dias
	var _31dias = Caduca(31);			//crea la fecha de caducidad si 31 dias
	valores=CojerCookie(nombreCk);
	if (nombre!=""){ 
		GuardarCookie(nombreCk, nombre, _31dias);
	}
} 

function ActualizarCookie(nombreCk,nombre) {
	var gall = CojerCookie(nombreCk)
	var galleta = gall.split(separador);
	var nueva_galleta=separador;
	for(var i=0;galleta[i]!=null;i++) {
		var galleta2 = galleta[i].split(':');
		if(galleta2[0]!=nombre && galleta2[0]!=''){ nueva_galleta = nueva_galleta+galleta[i]+separador }
	}
	//alert(gall+'\n'+nueva_galleta)
	// borrem cookie
	document.cookie = nombreCk + "=; expires=" + Caduca(-1) + "; path=/"
	var _31dias = Caduca(31)				//crea la fecha de caducidad si 31 dias
	// afegim els valors nets dels vins
	GuardarCookie(nombreCk, nueva_galleta, _31dias)
	//alert('Producte borrat correctament');
	//window.location.reload( false );
}

function AfegirCookie(nombreCk,nombre) {
	// nombre.charAt(1) -> si es preu de dia valdrŕ 'i', si es de tarda valdrŕ 'a'
	// aqui treiem el nom de l'altre valor per calcular el subtotal
	if(nombre.charAt(1)=='i'){
		nombre2 = nombre.replace("dia","tarda");
		subtotalTxt = nombre.replace("dia","");
	}else{
		nombre2 = nombre.replace("tarda","dia");
		subtotalTxt = nombre.replace("tarda","");
	}
	var gall = CojerCookie(nombreCk);
	var galleta = gall.split(separador);
	if (galleta.length==1 && galleta[0]=='') { galleta=new Array(); }
	var nueva_galleta=separador;
	var nuevo_valor2=0;
	var nuevo_valor=0;
	var galleta2=new Array();
	for(var i=0;i<galleta.length;i++) {
		galleta2 = galleta[i].split(':');
		if(galleta2[0]!=nombre && galleta2[0]!=''){
			nueva_galleta = nueva_galleta+galleta[i]+separador;
			if(galleta2[0]==nombre2){
				nuevo_valor2=parseInt(galleta2[1]);
			}
		}else if( galleta2[0]==nombre){
			nuevo_valor=parseInt(galleta2[1])+1;
			nueva_galleta = nueva_galleta+galleta2[0]+':'+(parseInt(galleta2[1])+1)+separador;
		}
	}
	document.getElementById(nombre).innerHTML=nuevo_valor;
	
	var pT = document.getElementById('preuTotal').firstChild.nodeValue;
	
	var pP = document.getElementById(nombre+'_preu').firstChild.nodeValue;
	var nou_preu = parseFloat(pT)+parseFloat(pP);
	//var nou_preu = parseFloat(document.getElementById('preuTotal').innerHTML)+parseFloat(document.getElementById(nombre+'_preu').innerHTML);
	nou_preu=(nou_preu==0)?'0':((Math.round(nou_preu*100))/100).toFixed(2);
	replaceHtml('preuTotal',nou_preu);
	
	// calculem preu del subtotal
		var pP2 = document.getElementById(nombre2+'_preu').firstChild.nodeValue;
		var nou_subpreu = (parseFloat(pP)*parseFloat(nuevo_valor))+(parseFloat(pP2)*parseFloat(nuevo_valor2));
		nou_subpreu=(nou_subpreu==0)?'0':((Math.round(nou_subpreu*100))/100).toFixed(2);
		replaceHtml(subtotalTxt,nou_subpreu);
	
	// borrem cookie
	document.cookie = nombreCk + "=; expires=" + Caduca(-1) + "; path=/";
	var _31dias = Caduca(31);				//crea la fecha de caducidad si 31 dias
	// afegim els valors nets dels vins
	GuardarCookie(nombreCk, nueva_galleta, _31dias);
}

function RestarCookie(nombreCk,nombre) {
	// nombre.charAt(1) -> si es preu de dia valdrŕ 'i', si es de tarda valdrŕ 'a'
	// aqui treiem el nom de l'altre valor per calcular el subtotal
	if(nombre.charAt(1)=='i'){
		nombre2 = nombre.replace("dia","tarda");
		subtotalTxt = nombre.replace("dia","");
	}else{
		nombre2 = nombre.replace("tarda","dia");
		subtotalTxt = nombre.replace("tarda","");
	}
	var gall = CojerCookie(nombreCk);
	var galleta = gall.split(separador);
	var nueva_galleta=separador;
	var calcularSubtotal='0';
	for(var i=0;galleta[i]!=null;i++) {
		var galleta2 = galleta[i].split(':');
		if((galleta2[0]!=nombre && galleta2[0]!='')){
			nueva_galleta = nueva_galleta+galleta[i]+separador;
			if(galleta2[0]==nombre2){
				var nuevo_valor2=parseInt(galleta2[1]);
			}
		}else if( galleta2[0]==nombre ){
			if(parseInt(galleta2[1])==0){
				var nuevo_valor=parseInt(galleta2[1]);
				nueva_galleta = nueva_galleta+galleta[i]+separador;
			}else{
				calcularSubtotal='1';
				var nuevo_valor=parseInt(galleta2[1])-1;
				nueva_galleta = nueva_galleta+galleta2[0]+':'+(parseInt(galleta2[1])-1)+separador;
	document.getElementById(nombre).innerHTML=nuevo_valor;
	var pT = document.getElementById('preuTotal').firstChild.nodeValue;
	var pP = document.getElementById(nombre+'_preu').firstChild.nodeValue;
	var nou_preu = parseFloat(pT)-parseFloat(pP);
	//var nou_preu = parseFloat(document.getElementById('preuTotal').innerHTML)-parseFloat(document.getElementById(nombre+'_preu').innerHTML);
	nou_preu=(nou_preu==0)?'0':((Math.round(nou_preu*100))/100).toFixed(2);
	replaceHtml('preuTotal',nou_preu);
	//document.getElementById('preuTotal').innerHTML=nou_preu+' &euro;';
			}
		}
	}
	if(calcularSubtotal!='0'){
		var pP2 = document.getElementById(nombre2+'_preu').firstChild.nodeValue;
		var nou_subpreu = (parseFloat(pP)*nuevo_valor)+(parseFloat(pP2)*nuevo_valor2);
		nou_subpreu=(nou_subpreu==0)?'0':((Math.round(nou_subpreu*100))/100).toFixed(2);
		replaceHtml(subtotalTxt,nou_subpreu);
	}
	// borrem cookie
	document.cookie = nombreCk + "=; expires=" + Caduca(-1) + "; path=/";
	var _31dias = Caduca(31);				//crea la fecha de caducidad si 31 dias
	// afegim els valors nets dels vins
	GuardarCookie(nombreCk, nueva_galleta, _31dias)
}

function replaceHtml(el, html) {
	var oldEl = (typeof el === "string" ? document.getElementById(el) : el);
	/*@cc_on // Puro innerHTML para IE (que es más rápido)
	oldEl.innerHTML = html;
	return oldEl;
	@*/
	var newEl = oldEl.cloneNode(false);
	newEl.innerHTML = html;
	oldEl.parentNode.replaceChild(newEl, oldEl);
	return newEl;
};