//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


/////////////////// 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(){
	var pieza = null
	var i = 0

	if(CojerCookie('Datos') != null) {
		nombre = CojerCookie('Datos')
		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( entero ) {
	var gall = CojerCookie('Datos');
	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('Datos') != null) {
			nombre = CojerCookie('Datos')
			IntroducirCookie(nombre+entero+separador)
		}else{
			IntroducirCookie(separador+entero+separador)
		}
		//alert('Producte afegit correctament');
	}else{
		//alert('El producte ja estŕ a la lista');
	}
}

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

function CojerValorCookie(indice) {
	//indice indica el comienzo del valor
	var galleta = 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 = 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(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 null					//no se encuentra el nombre del valor
}

function GuardarCookie (nombre, valor, caducidad) {
	if(!caducidad)
		caducidad = Caduca(0)

	//crea la cookie: incluye el nombre, la caducidad y la ruta donde esta guardada
	//cada valor esta separado por ; y un espacio
	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())
}

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

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

function ActualizarCookie(nombre) {
	var gall = CojerCookie('Datos')
	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 = 'Datos' + "=; expires=" + Caduca(-1) + "; path=/"
	var _31dias = Caduca(31)				//crea la fecha de caducidad si 31 dias
	// afegim els valors nets dels vins
	GuardarCookie("Datos", nueva_galleta, _31dias)
	//alert('Producte borrat correctament');
	//window.location.reload( false );
}

function AfegirCookie(nombre) {
	var gall = CojerCookie('Datos')
	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;
		}else if( galleta2[0]==nombre){
			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);
	// borrem cookie
	document.cookie = 'Datos' + "=; expires=" + Caduca(-1) + "; path=/";
	var _31dias = Caduca(31);				//crea la fecha de caducidad si 31 dias
	// afegim els valors nets dels vins
	GuardarCookie("Datos", nueva_galleta, _31dias);
}

function RestarCookie(nombre) {
	var gall = CojerCookie('Datos');
	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;
		}else if( galleta2[0]==nombre ){
			if(parseInt(galleta2[1])==1){
				var nuevo_valor=parseInt(galleta2[1]);
				nueva_galleta = nueva_galleta+galleta[i]+separador;
			}else{
				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;';
			}
		}
	}
	// borrem cookie
	document.cookie = 'Datos' + "=; expires=" + Caduca(-1) + "; path=/";
	var _31dias = Caduca(31);				//crea la fecha de caducidad si 31 dias
	// afegim els valors nets dels vins
	GuardarCookie("Datos", 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;
};