/////////////////////////////////////////////////
// Funciones para controlar las cookies
/////////////////////////////////////////////////
var cont = 2;
var HoraFi=new Date;
var TxtCookie="";
HoraFi.setTime(HoraFi.getTime()+1000*60*60);


// Parametros de entrada:
// form : el objeto formulario
// index: para saber en que caja de texto has introducido las unidades
// codigo : contiene la referencia del producto.
// extra: Datos extra, como tallas, color, etc
function conf(form,index,codigo,importe,extra){ 
  var valor = 0;
  var suma  = 0;
  var unidad= 0;
  var total = 0;
  var k = 0;
  var unidadCookie = 0;
  
  //alert(document.cookie);
  
  unidad = eval('form.unidades'+index+'.value');
      
  if (unidad>0){
    
    //buscamos si en la galleta ya existe este producto, y nos guardamos su valor
    valor = consultarGalleta(codigo);    
    //alert(valor);
    
      //Si valor es distinto de 0, es que el codigo ya exite en la cookie;
       if (valor!=0){  

          // Del resultado anterior buscamos si "valor" contiene :
          // Si lo encontramos cogemos desde 0 hasta donde ha encontrado los :
          // sino lo dejamos como estaba
          k = valor.indexOf(":");
          if (k!=-1){
      	    unidadCookie = unescape(valor.substring(0,k)); 
      	    tallaCookie  = unescape(valor.substring(k+1,valor.length)); 
      	  }
      
         if (extra!=tallaCookie){
                   
            textoGalleta = introducirOtroCodigo(codigo,unidad,extra);
            if (textoGalleta!=0){           
                TxtCookie = textoGalleta;
				alert("Producto añadido a la cesta");
				total = parseFloat(importe) * parseInt(unidad,10);
				sumarImporteCesta(total);
 	            sumarUnidCesta(unidad);
		        document.cookie=TxtCookie;
            }
        
		 }else if (unidadCookie==0){
              suma = parseInt(unidadCookie,10) + parseInt(unidad,10);
  	          TxtCookie = codigo +'='+ suma +':'+ extra +'; expires='+ HoraFi;
		      total = parseFloat(importe) * parseInt(unidad,10);
			  sumarImporteCesta(total);
	          sumarUnidCesta(unidad);
			  document.cookie=TxtCookie;
              
         }else if (confirm('Este producto ya está en la cesta, y su cantidad es de '+unidadCookie+'. Quieres sumarle la nueva cantidad?')){
	    	  suma = parseInt(unidadCookie,10) + parseInt(unidad,10);
	      	  TxtCookie = codigo +'='+ suma +':'+ extra +'; expires='+ HoraFi;
              alert("Cantidad sumada al producto.");
			  total = parseFloat(importe) * parseInt(unidad,10);
    		  sumarImporteCesta(total);
	          sumarUnidCesta(unidad);
		      document.cookie=TxtCookie;
	 	 }

      }else{ 
          TxtCookie = codigo +'='+ escape(unidad)+':'+extra +'; expires='+ HoraFi;    
	  	  alert("Producto añadido a la cesta");
	   	  total = parseFloat(importe) * parseInt(unidad,10);
	      sumarImporteCesta(total);
    	  sumarUnidCesta(unidad);
	      document.cookie=TxtCookie;
		  //alert(document.cookie);
	  }
  	  //alert(document.cookie);

 }else {
 	alert('Introduce un numero entero positivo y mayor que 0 en la casilla unidad.');
 	eval('form.unidades'+index+'.focus();');
 }//fin  	

}

//funcion que introduce en la galleta el mismo codigo -indice
//para identificar el mismo producto pero con otra talla
//Ej: 
//  BIO32=5:m    --> 5 unidades, talla: m
//  BIO32-1=5:xl --> 5 unidades, talla: xl
//  BIO32=BIO32-1 es el mismo producto
function introducirOtroCodigo(codigo,unidad,extra){
 
 var i = 1;       //indice para empezar a buscar
 var uCookie = 0; //unidades en la galleta
 var tCookie = 0; //talla en la galleta
 var txtCookie = 0;
 
 do{
            
     valor = consultarGalleta(codigo+"/"+i);    
     if (valor!=0){
     	    
       //buscamos si ha introducido una talla repetidia
       k = valor.indexOf(":");
       if (k!=-1){
      	    uCookie = unescape(valor.substring(0,k)); 
      	    tCookie  = unescape(valor.substring(k+1,valor.length)); 
      	    
      	    //Si la talla son iguales
      	    //actualizamos su nueva cantidad
      	    if (tCookie==extra){   
      	       if (confirm('Este producto ya está en la cesta con esa misma talla, y su cantidad es de '+uCookie+'. Quieres sumarle la nueva cantidad?')){
             	      suma = parseInt(uCookie,10) + parseInt(unidad,10);
	              txtCookie = codigo +'/'+ i + '='+ suma +':'+ extra +'; expires='+ HoraFi;
               }   
              break;
            }//fin tCookie==extra
       }
     i++;
    }//fin valor!=0
 
 }while (valor!=0);
 //fin while	

 //Si valor=0 es que no se ha introducido aun este producto
 if (valor==0) txtCookie = codigo +'/'+ i +'='+ unidad +':'+ extra +'; expires='+ HoraFi;
 
 return txtCookie;

}

function eliminar(codigo,importe,iva){
alert(codigo);
 var unid  = 0;
 var importeResta = 0;
   
      unid = consultarGalleta(codigo);
      importeResta = parseInt(unid,10) * parseFloat(importe);
      
      //alert ("Hay "+unid+" de ese producto y le tenemos que restar "+importeResta);
      
      //resta de la cookie, la cantidad pasada por parametro
      restarUnidCesta(unid); 
      //resta en la cookie, la cantidad pasada por parametro
      restarImporteCesta(importeResta);
      
      //pone en la cookie, el producto pasado por parametro con codigo igual a 0.
      document.cookie=codigo+'=0:0';
      
      //alert(document.cookie);
      //parent.document.location='FrPresu.html';

      //Actualizamos los campos correspondientes
      //alert(iva);	

}


function sumarImporteCesta(importe){
    
    var cestaTotal = 0;
        
      //buscamos en la galleta el importe total, para saber cuanto hay en la caja.
      cestaTotal = parseFloat(consultarGalleta('cestaTotal')); 
      
      // ---------  alert("El resultado del importe total es es:"+cestaTotal);
      
      //Le sumamos a la cantidad encontrada, el importe pasado como parametro
      cestaTotal += parseFloat(importe);
      //Redondeamos al 2 decimal
      cestaTotal = redondearDecimales(String(cestaTotal),'2');
      
      document.tu_compra.importe.value = cestaTotal;
      document.cookie="cestaTotal=" + cestaTotal;
}

function restarImporteCesta(importe){
   
   var cestaTotal = 0;
     
     //buscamos en la galleta el importe total, para saber cuanto hay en la caja.
     cestaTotal = parseFloat(consultarGalleta('cestaTotal')); 
     
     // ------> alert("El resultado de la cesta es:"+cestaTotal);
     
     //le restamos a la cantidad encontrada, el importe pasado como parametro
     cestaTotal -= parseFloat(importe);
     //Redondeamos al 2 decimal
     cestaTotal = redondearDecimales(String(cestaTotal),'2');
               
     document.tu_compra.importe.value = cestaTotal;
     document.cookie="cestaTotal=" + cestaTotal;
}

function sumarUnidCesta(unidad){
    
    var cestaUnid = 0;
        
      //buscamos en la galleta la cestaUnid, para saber cuantas unidades hay.
      cestaUnid = parseInt(consultarGalleta('cestaUnid'),10); 
      
      // --------> alert("El resultado de la cesta es:"+cestaUnid);
      
      //le sumamos a la cantidad encontrada, las unidades pasadas como parametro
      cestaUnid += parseInt(unidad,10);
      document.tu_compra.unidades.value = cestaUnid;
      document.cookie="cestaUnid=" + cestaUnid;
}

function restarUnidCesta(unidad){
     
     //buscamos en la galleta la cesta,para saber cuantas unidades hay.
     cestaUnid = parseInt(consultarGalleta('cestaUnid'),10); 
          
     // -------> alert("El resultado de la cesta es:"+cestaUnid);
     
     //le restamos a la cantidad encontrada, las unidades pasadas como parametro
     cestaUnid -= parseInt(unidad,10);
     document.tu_compra.unidades.value = cestaUnid;
     document.cookie="cestaUnid=" + cestaUnid;
}

//Oferta:
 // 4: oferta 4+1  --> uOferta=1; oferta=4
 // 5: Oferta 5+1  --> uOferta=1; oferta=5
 // 6: oferta 10+2 --> uOferta=2; oferta=10
 // 7: oferta 3*2  
 // En este caso devolvemos la veces que tenemos que multiplicar el precio, para restarle al importe
 // [ uOferta=1; oferta=3; ]
function unidadesExtra(oferta, unidades){

 var unid;

 uOferta = 1;
 if (oferta==6){
 	 oferta = 10;
 	 uOferta = 2;
 }else if(oferta==7) oferta=3;

 if (unidades>=oferta){
    //Buscamos la parte entera de la division
    resultadoDivision = unidades / oferta;
    strDivision = resultadoDivision.toString();
     
    indice= strDivision.indexOf(".");
    if (indice !=-1){
      	resultParteEntera = strDivision.substring(0,indice+1);
    }else resultParteEntera = strDivision;  
          
    //Calculamos las unidades extras (1 o 2), que es multiple de oferta (4,5 o 10)
    unid = (resultParteEntera * uOferta);
               
 }else unid = 0;
  
 return unid;
}// Fin funcion


//Suma todos los campos de importe
//devuelve el total del importe bruto
function sumarImportes(){
  
  totalImp = 0;
  index = 1;
  longitud = document.presu.length;
  
  while (index<longitud){
   totalImp += parseFloat(document.presu.elements[index].value);
   index += 2;
  }
  return totalImp;
}

// Resta del iva, el importeBruto pasado como parametro,
// del campo iva correspondiente, tambien pasado como parametro
function restarIVA(importeBruto,iva){
	
	importeAnterior = eval("document.impuestos.baseImponible"+iva+".value");
	
	importeAnterior = parseFloat(importeAnterior);
	importeNuevo = parseFloat(redondearDecimales(String(importeBruto),'2'));

	importeTotal = importeAnterior - importeNuevo;
        importeTotal = redondearDecimales(String(importeTotal),'2');
        eval("document.impuestos.baseImponible"+iva+".value="+importeTotal);
	
}

// Suma del iva, el importeBruto pasado como parametro,
// del campo iva correspondiente, tambien pasado como parametro
function sumarIVA(importeBruto,iva){
	
	importeAnterior = eval("document.impuestos.baseImponible"+iva+".value");
	
	importeAnterior = parseFloat(importeAnterior);
	importeNuevo = parseFloat(redondearDecimales(String(importeBruto),'2'));

	importeTotal = importeAnterior + importeNuevo;
    	importeTotal = redondearDecimales(String(importeTotal),'2');
    	
    	eval("document.impuestos.baseImponible"+iva+".value="+importeTotal);
	
}

// Calcula el iva correspondiente de los distintos basesImponibles:
//  IVA de baseImponible 4% + IVA de baseImponible 7% + IVA de baseImponible 16%
function sumarBasesImponibles(){

  total4  = parseFloat(eval("document.impuestos.cuotaIva4.value"));
  total7  = parseFloat(eval("document.impuestos.cuotaIva7.value"));
  total16 = parseFloat(eval("document.impuestos.cuotaIva16.value"));
  
  return total4+total7+total16;
}

function ivaBaseImp(index){
  
  if (index==4) mult = 0.04;
  else if (index==7) mult = 0.07;
  else if (index==16) mult = 0.16;
  
  total  = parseFloat(eval("document.impuestos.baseImponible"+index+".value"))*mult;
  return total;
}

function sumarUnid(index,codigo,precio,descuento,oferta,extra,indiceIVA){

     var i;
     var unidades;
     var extraUd;
     var total = 0;
     var cuotaIva = 0;
     var importeTotal = 0;
     var desc = 0;
     var residuo = 0;
     var restarUnid = 0;
     var importeConDes = 0;
	 var importeIVA = 0;
     
     var unidadesTotales = document.presu.elements[index].value; 
     var importeAnterior = parseFloat(document.presu.elements[index+1].value); 
     
	
     //Por si hay unidades extra (ej. 2+10, 5+1, 4+1)
     //Buscamos si existe el caracter "+"
     //Si existe buscamos las unidades(en este caso:10)
     i = unidadesTotales.indexOf("+");
     if (i!=-1) unidades = unidadesTotales.substring(i+1,unidadesTotales.length); 
     else unidades = unidadesTotales;
     
     //Incremento las unidades
     unidades++;
          
     //Calculo el nuevo importe y el importe con descuento sin IVA de una unidad
     importe = parseFloat(precio);
     importeAplicarIVA = parseFloat(precio);	 	
	 
     //Si descuento es distinto que 1, es que hay que aplicar algun tipo de porcentage
     if (descuento!=1){
        desc=parseFloat(precio)*parseFloat(descuento);
        importe -= parseFloat(desc);
	   
	//Si hay descuento, importeAplicarIVA=importe con descuento sin iva;
	importeAplicarIVA = parseFloat(precio)- (parseFloat(precio)*parseFloat(descuento)); 
     }
	 
     importeAnterior += importe;
	 
     
     //Calculamos si hay unidades extra, si estamos en los casos:
     // 4: 4+1
     // 5: 5+1
     // 6: 10+2
     // 7: 3x2 --> Cada 3 unidades restamos 1 precio
     if ((oferta==4) || (oferta==5) || (oferta==6)){
     
       //Llamada a la funcion, que nos devuelve el numero de
       //unidades extra a aplicar al producto
       extraUd = unidadesExtra(oferta,unidades);
       if (extraUd == 0) extraUd='';
       else if(extraUd>=0) extraUd+='+';
     
     }else if(oferta==7){
        
		importeAnterior = 0;
		restarUnid = parseInt(unidadesExtra(oferta,unidades));
		
		importeSinDes = parseFloat(precio)*parseInt(unidades);
		importeConDes = parseFloat(precio)*parseInt(restarUnid);
		importeAnterior = importeSinDes - importeConDes;
		
		//alert(restarUnid);
		
		//Cuando el resto de 0, es que estamos en la unidad que no se debe contar, y por lo tanto 
		//le restamos
		if ((unidades % 3) == 0){
			 // alert("El resot es:"+unidades % 3);
			 importeActual=parseFloat(precio);//parseInt(restarUnid));
			 restarIVA(parseFloat(importeActual),indiceIVA);
		}
		extraUd='';		
		
      }else extraUd='';

     
     //Vamos incrementando el IVA correspondiente a la base imponible
     importeAplicarIVA = redondearDecimales(String(importeAplicarIVA),'2');
     sumarIVA(parseFloat(importeAplicarIVA),indiceIVA);
	 
     //Actualizo los campos de texto unidades y importe.  
     document.presu.elements[index].value = extraUd + unidades;
     document.presu.elements[index+1].value = redondearDecimales(String(importeAnterior),'2');
     
     //Importe Total bruto
     total = sumarImportes();
     document.presu.total.value = redondearDecimales(String(total),'2');
     
     //Actualiza el campo cuotaIVA
     //cuotaIva = sumarBasesImponibles();
     //document.impuestos.cuotaIva.value = redondearDecimales(String(cuotaIva),'2');
	 
	 //Actualiza los campo cuotaIVA4,cuotaIVA7, cuotaIVA16
     //cuotaIva4 = ivaBaseImp('4');
     //cuotaIva7 = ivaBaseImp('7');
     //cuotaIva16 = ivaBaseImp('16');
     //document.impuestos.cuotaIva4.value = redondearDecimales(String(cuotaIva4),'2');
     //document.impuestos.cuotaIva7.value = redondearDecimales(String(cuotaIva7),'2');
	 //document.impuestos.cuotaIva16.value = redondearDecimales(String(cuotaIva16),'2');

     //Actualiza los campo cuotaIVA4 o cuotaIVA7 o cuotaIVA16 segun el indiceIVA
	 cuotaIvaBaseImp = ivaBaseImp(indiceIVA);
	 eval("document.impuestos.cuotaIva"+indiceIVA+".value = redondearDecimales(String(cuotaIvaBaseImp),'2')");
	 
     //Actualizo los campos destinados a los impuestos: Importe Bruto, Total IVA
     cuotaIva = sumarBasesImponibles();
	 document.impuestos.importeBruto.value=redondearDecimales(String(total),'2');
     document.impuestos.totalIVA.value=redondearDecimales(String(cuotaIva),'2');
    
     //Calculo el total con IVA
     importeTotal = total + cuotaIva;
     
     //Actualizo los campos destinados a los impuestos: total del presupuesto
     document.impuestos.totalPresu.value=redondearDecimales(String(importeTotal),'2');
     	  
     
     //Actualizo los campos de texto unidades y importe.  
     document.presu.elements[index].value = extraUd + unidades;
     document.presu.elements[index+1].value = redondearDecimales(String(importeAnterior),'2');
     
     //Guardo los nuevo datos en la cookie
     sumarImporteCesta(precio);
     sumarUnidCesta(1);
     document.cookie=(codigo+"="+unidades+":"+extra);
}

function restarUnid(index,codigo,precio,descuento,oferta,extra,indiceIVA){
    
     var extraUd;
     var total = 0;
     var cuotaIva = 0;
     var importeTotal = 0;
     var desc = 0;
     var residuo = 0;
     var restarUnid = 0;
     var importeConDes = 0;

     var unidades;
     var unidadesTotales = document.presu.elements[index].value; 
     var importeAnterior = parseFloat(document.presu.elements[index+1].value); 
     var i;
     
     //Por si hay unidades extra (ej. 2+10)
     //Buscamos si existe el caracter "+"
     //Si existe buscamos las unidades(10) y las unidadExtra(2+)
     i = unidadesTotales.indexOf("+");
     if (i!=-1){
     	 unidades = unidadesTotales.substring(i+1,unidadesTotales.length); 
     }else unidades = unidadesTotales;
       
     
     if (unidades>0){  
     
       //Decrementos en 1 las unidades
       unidades--;
       
       //Calculo el nuevo importe y el importe con descuento sin IVA de una unidad
       importe = parseFloat(precio);
       importeAplicarIVA = parseFloat(precio);	 	
	 
	//Si descuento es distinto que 1, es que hay que aplicar algun tipo de porcentage
     	if (descuento!=1){
        	desc=parseFloat(precio)*parseFloat(descuento);
        	importe -= parseFloat(desc);
	   
	   	//Si hay descuento, importeAplicarIVA=importe con descuento sin iva;
		importeAplicarIVA = parseFloat(precio)- (parseFloat(precio)*parseFloat(descuento)); 
     	}
	 
     	importeAnterior -= importe;
	 
     
     	//Calculamos si hay unidades extra, si estamos en los casos:
     	// 4: 4+1
     	// 5: 5+1
     	// 6: 10+2
     	// 7: 3x2 --> Cada 3 unidades restamos 1 precio
     	if ((oferta==4) || (oferta==5) || (oferta==6)){
     
       		//Llamada a la funcion, que nos devuelve el numero de
       		//unidades extra a aplicar al producto
       		extraUd = unidadesExtra(oferta,unidades);
       		if (extraUd == 0) extraUd='';
       		else if(extraUd>=0) extraUd+='+';
     
     	}else if(oferta==7){
        
				
		importeAnterior = 0;
		restarUnid = parseInt(unidadesExtra(oferta,unidades));
		
		importeSinDes = parseFloat(precio)*parseInt(unidades);
		importeConDes = parseFloat(precio)*parseInt(restarUnid);
		importeAnterior = importeSinDes - importeConDes;
		
		/*
		alert(restarUnid);
		alert ("el importeSinDes:"+importeSinDes);
		alert ("el importeConDes:"+importeConDes);
		alert ("el importeAnterior:"+importeAnterior);
		*/
		
		//Cuando el resto de 0, es que estamos en la unidad que no se debe contar, y por lo tanto 
		//le restamos
		
		unid = unidades+1;
		if ((unid % 3) == 0){
			 importeActual=parseFloat(precio);//parseInt(restarUnid));
			 sumarIVA(parseFloat(importeActual),indiceIVA);
		}
		extraUd='';		
		
     	}else extraUd='';

     
     	//Vamos decrementando el IVA correspondiente a la base imponible
     	importeAplicarIVA = redondearDecimales(String(importeAplicarIVA),'2');
     	restarIVA(parseFloat(importeAplicarIVA),indiceIVA);
	 
     	//Actualizo los campos de texto de las unidades y el importe.  
     	document.presu.elements[index].value = extraUd + unidades;
     	document.presu.elements[index+1].value = redondearDecimales(String(importeAnterior),'2');
	     
     	//Importe Total bruto
     	total = sumarImportes();
     	document.presu.total.value = redondearDecimales(String(total),'2');
     
		//Actualiza el campo cuotaIVA
     	//cuotaIva = sumarBasesImponibles();
     	//document.impuestos.cuotaIva.value = redondearDecimales(String(cuotaIva),'2');
        
		//Actualiza los campo cuotaIVA4 o cuotaIVA7 o cuotaIVA16 segun el indiceIVA
	    cuotaIvaBaseImp = ivaBaseImp(indiceIVA);
   	    eval("document.impuestos.cuotaIva"+indiceIVA+".value = redondearDecimales(String(cuotaIvaBaseImp),'2')");
	 
     	//Actualizo los campos destinados a los impuestos: Importe Bruto, Total IVA
     	cuotaIva = sumarBasesImponibles();
		document.impuestos.importeBruto.value=redondearDecimales(String(total),'2');
     	document.impuestos.totalIVA.value=redondearDecimales(String(cuotaIva),'2');
    
     	//Calculo el total con IVA
     	importeTotal = total + cuotaIva;
   
     	//Actualizo los campos destinados a los impuestos: total del presupuesto
     	document.impuestos.totalPresu.value=redondearDecimales(String(importeTotal),'2');
     
     	//Guardo los nuevos datos en la cookie
     	restarImporteCesta(precio);
     	restarUnidCesta(1);
     	document.cookie=(codigo+"="+unidades+":"+extra);
       
     
     	// Si es 0 recargamos página.
     	if (unidades==0) window.location.reload();

    }//if
} 

 
/*function sumarUnid(index,codigo,precio,descuento,oferta,extra,indiceIVA){

     var i;
     var unidades;
     var extraUd;
     var total = 0;
     var cuotaIva = 0;
     var importeTotal = 0;
     var desc = 0;
     var residuo = 0;
     var restarUnid = 0;
     var importeConDes = 0;
	 var importeIVA = 0;
     
     var unidadesTotales = document.presu.elements[index].value; 
     var importe = parseFloat(document.presu.elements[index+1].value); 
          
     //Por si hay unidades extra (ej. 2+10, 5+1, 4+1)
     //Buscamos si existe el caracter "+"
     //Si existe buscamos las unidades(en este caso:10)
     i = unidadesTotales.indexOf("+");
     if (i!=-1) unidades = unidadesTotales.substring(i+1,unidadesTotales.length); 
     else unidades = unidadesTotales;
     
     //Incremento las unidades
     unidades++;
          
     //Calculo el nuevo importe y el importe con descuento sin IVA de una unidad
     importe = parseFloat(precio)*parseInt(unidades);
     importeAplicarIVA = parseFloat(precio);
	
	
     //Si descuento es distinto que 1, es que hay que aplicar algun tipo de porcentage
     if (descuento!=1){
        desc=parseFloat(importe)*parseFloat(descuento);
        importe -= parseFloat(desc);
	   
	   //Si hay descuento, importeAplicarIVA=importe con descuento sin iva;
		importeAplicarIVA = parseFloat(precio)- (parseFloat(precio)*parseFloat(descuento)); 
     }
	 
	 importeAplicarIVA = redondearDecimales(String(importeAplicarIVA),'2');
	 alert(precio);
	 alert(descuento);
	 alert(importeAplicarIVA);
	 
	 
     //Calculamos si hay unidades extra, si estamos en los casos:
     // 4: 4+1
     // 5: 5+1
     // 6: 10+2
     // 7: 3x2 --> Cada 3 unidades restamos 1 precio
     if ((oferta==4) || (oferta==5) || (oferta==6)){
     
       //Llamada a la funcion, que nos devuelve el numero de
       //unidades extra a aplicar al producto
       extraUd = unidadesExtra(oferta,unidades);
       if (extraUd == 0) extraUd='';
       else if(extraUd>=0) extraUd+='+';
     
     }else if(oferta==7){
       
        //Al importe le restamos el (precio x unidades restantes)
        restarUnid = parseInt(unidadesExtra(oferta,unidades));
        importeConDes = parseFloat(precio)*parseInt(restarUnid);
        importe -= importeConDes;
        extraUd='';
     		
			alert(restarUnid);
		importeAplicarIVA -= importeConDes;
			alert(importeAplicarIVA);

	}else extraUd='';
     
     //Actualizo los campos de texto unidades y importe.  
     document.presu.elements[index].value = extraUd + unidades;
     document.presu.elements[index+1].value = redondearDecimales(String(importe),'2');
     
     //Importe Total bruto
     total = sumarImportes();
     document.presu.total.value = redondearDecimales(String(total),'2');
     
     //Calculo la cuota de IVA
     cuotaIva = total * 0.16;
	 sumarIVA(parseFloat(importeAplicarIVA),indiceIVA);

         


//Actualizo los campos destinados a los impuestos: Base Imponible, cuota Iva
     //document.impuestos.baseImponible.value=redondearDecimales(String(total),'2');
     document.impuestos.cuotaIva.value=redondearDecimales(String(cuotaIva),'2');
     
     //Actualizo los campos destinados a los impuestos: Importe Bruto, Total IVA
     document.impuestos.importeBruto.value=redondearDecimales(String(total),'2');
     document.impuestos.totalIVA.value=redondearDecimales(String(cuotaIva),'2');
     
     //Calculo el total con IVA
     importeTotal = total + cuotaIva;
     
     //Actualizo los campos destinados a los impuestos: total del presupuesto
     document.impuestos.totalPresu.value=redondearDecimales(String(importeTotal),'2');
     
     //Guardo los nuevo datos en la cookie
     sumarImporteCesta(precio);
     sumarUnidCesta(1);
     document.cookie=(codigo+"="+unidades+":"+extra);
}

function restarUnid(index,codigo,precio,descuento,oferta,extra){
    
     var extraUd;
     var total = 0;
     var cuotaIva = 0;
     var importeTotal = 0;
     var desc = 0;
     var residuo = 0;
     var restarUnid = 0;
     var importeConDes = 0;

     var unidades;
     var unidadesTotales = document.presu.elements[index].value; 
     var importe = parseFloat(document.presu.elements[index+1].value); 
     var i;
     
     //Por si hay unidades extra (ej. 2+10)
     //Buscamos si existe el caracter "+"
     //Si existe buscamos las unidades(10) y las unidadExtra(2+)
     i = unidadesTotales.indexOf("+");
     if (i!=-1){
     	 unidades = unidadesTotales.substring(i+1,unidadesTotales.length); 
     }else unidades = unidadesTotales;
       
     
     if (unidades>0){  
     
       //Decrementos en 1 las unidades
       unidades--;
       
       //Calculo el nuevo importe
       importe=parseFloat(precio)*parseInt(unidades);
       
       //Si descuento es distinto que 1, es que hay que aplicar algun tipo de porcentage  
       if (descuento!=1){
       	   desc=parseFloat(importe)*parseFloat(descuento);
       	   importe -= parseFloat(desc);
       }
         
       //Calculamos si hay unidades extra, si estamos en los casos:
       // 4: 4+1
       // 5: 5+1
       // 6: 10+2
       //7: 3x2 --> Cada 3 unidades restamos 1 precio
       if ((oferta==4) || (oferta==5) || (oferta==6)){
     
         //Llamada a la funcion, que nos devuelve el numero de
         //unidades extra a aplicar al producto
         extraUd = unidadesExtra(oferta,unidades);
         if (extraUd == 0) extraUd='';
         else if(extraUd>=0) extraUd+='+';
     
       }else if(oferta==7){
          
          //Al importe le restamos el (precio x unidades restantes)
          restarUnid = parseInt(unidadesExtra(oferta,unidades));
          importeConDes = parseFloat(precio)*parseInt(restarUnid);
          importe -= importeConDes;
          extraUd='';
       
       }else extraUd='';
       
       
       //Actualizo los campos de texto de las unidades y el importe.  
       document.presu.elements[index].value = extraUd + unidades;
       document.presu.elements[index+1].value = redondearDecimales(String(importe),'2');
       
       //Calculo del Importe Total Bruto
       total = sumarImportes();
       document.presu.total.value = redondearDecimales(String(total),'2');
       
       //Calculo la cuota de IVA
       cuotaIva = total * 0.16;
        
       //Actualizo los campos destinados a los impuestos: Base Imponible, cuota Iva
       document.impuestos.baseImponible.value=redondearDecimales(String(total),'2');
       document.impuestos.cuotaIva.value=redondearDecimales(String(cuotaIva),'2');

       //Actualizo los campos destinados a los impuestos: Importe Bruto, Total IVA
       document.impuestos.importeBruto.value=redondearDecimales(String(total),'2');
       document.impuestos.totalIVA.value=redondearDecimales(String(cuotaIva),'2');
     
       //Calculo el total con IVA
       importeTotal = total + cuotaIva;
   
       //Actualizo los campos destinados a los impuestos: total del presupuesto
       document.impuestos.totalPresu.value=redondearDecimales(String(importeTotal),'2');
     
       //Guardo los nuevos datos en la cookie
       restarImporteCesta(precio);
       restarUnidCesta(1);
       document.cookie=(codigo+"="+unidades+":"+extra);
       
       // Si es 0 recargamos página.
       if (unidades==0) window.location.reload();
       
    }
    //if
} 

*/
// Funcion que te devuelve al valor de que contiene una variable dentro de la galleta
// Entrada: el codigo a buscar dentro de la galleta
// Salida : el valor de ese codigo
function consultarGalleta(nombre){
  
  var busca;
  var digi=0;
  var i=0, j=0, k=0;
    	
   	busca = nombre;
   	digi = busca.length+1; //le sumamos 1 para ponernos despues del igual
   	
   	if (document.cookie.length>0){
	
		i=document.cookie.indexOf(busca);
		if (i!=-1){ //si lo encontramos
			
		   //Buscamos ;
		   j = document.cookie.indexOf(";",i);
		   if (j == -1) j = document.cookie.length;

                   //Cortamos desde i hasta j, y lo guardamos en valor		
		   valor = unescape(document.cookie.substring(i+digi,j));		   
		   
		   // Del resultado anterior buscamos si la cadena contiene :
		   // Si lo encontramos cogemos desde 0 hasta donde ha encontrado los :
		   // sino lo dejamos como estaba
		   //k = valor.indexOf(":");
		   //if (k!=-1) valor = unescape(valor.substring(0,k)); 
		      		   
		  return valor;
		}   	   
         }		   	   
  return 0;
}


function redondearDecimales(n,d){
	var xx = n.indexOf('.')
	var l = n.length
	var zstr = '0000000000000000000000'
	var theInt = ''
	var theFrac = ''
	var theNo = ''
	rfac = ''
	rfacx = 0
	nx = 0
	var xt = parseInt(d) + 1
	var rstr = '' + zstr.substring(1,xt)
	var rfac = '.' + rstr + '5'
	var rfacx = parseFloat(rfac)
	if (xx == -1 ) 	{    // No fraction
		theFrac = zstr
		theInt = "" + n
	}
	else if (xx == 0) {
		theInt = '0'
		nx = 0 + parseFloat(n) + parseFloat(rfacx)
		n = nx + zstr
		theFrac = '' + n.substring(1, n.length)
	}
	else {
		theInt = n.substring(0,xx)
		nx = parseFloat(n) + rfacx
		n = '' + nx + zstr
		theFrac = '' + n.substring(xx+1,xx + 1 + parseInt(d))
		var astr = 'd = ' + d
	}
	theFrac = theFrac.substring(0,parseInt(d))
	var ii = 0
	theNo = theInt + '.' + theFrac
	return theNo
}



