// ----------------------------------------------
// cistella.js
// Script per gestionar una cistella de compra basica, monopagina i
// conectada a PayPal via un botó estandard sense encriptació
//
// Es tracta en defintiva d'una cistella de compra basada 100% en 
// javascript, sense suport extern en el servidor (PHP, ...)
//
// Daniel Ribes 2009
// 
// Versió 0.1
// ----------------------------------------------
//
// Els items de la cistella es guarden en una matriu anomenada cistella
// Cada item de cistella es una matriu amb la següent estructura
//
// [0] etiqueta     
// [1] preu
// [2] id
// [3] estat
// [4] quantitat
// [5] tipus
// ----------------------------------------------

var cistella= new Array();
var tipusrevista= 0;
var tipussubscripcio=0;
var flagmostra=0;
var id=0;
var iddesti=0;
var iddesti_index=0;
var imp_env_subs=9.90;
var imp_env_rvst=4.95;
var total=0;
var totalenvio=0;
var conceptes="";

var img_normal=new Image();
var img_over=new Image();
	
function mostracistella()
{
   
    // pinta taula cistella
    total=0;
    sortida="";
    sortida=sortida+"<form name='formcistella'><table>";
    
    sortida=sortida+"<tr>"+
                    "<th class='numero'>N&deg;</th>"+
                    "<th class='producto' style='text-align:center;'>Producto</th>"+
                    "<th class='eliminar' >Eliminar</th>"+
                    "<th class='cantidad'>Cantidad</th>"+
                    "<th class='precio'>Precio</th>"+
                    "</tr>";
    
    conceptes="";
    for(i=0; i<cistella.length;i++){
        if(cistella[i][3]==0){
            preu_unitat=(cistella[i][1])*(cistella[i][4]);
            preu_unitat=Math.round(preu_unitat*100)/100;
            sortida=sortida+"<tr>"+
                            "    <td>"+(i+1)+"</td>"+
                            "    <td>"+cistella[i][0]+"</td>"+
                            "    <td><input type='checkbox' name='e_"+i+"' value='1' onclick='esborra("+i+");' /></td>"+
                            "    <td><input type='text' class='cantidad' value='"+cistella[i][4]+"'  id='"+i+"' onkeyup='quants("+i+",this.id);' /></td>"+
                            "    <td>"+preu_unitat+" &euro;</td>"+
                            "</tr>";                
            total=total+preu_unitat;
            conceptes=conceptes+" + "+cistella[i][4]+" "+cistella[i][0];
        }
    }
    
    
    // calcula totals i preus enviament si desti es fora d'espanya
    if(iddesti>0){
        env_subscrip=tipussubscripcio*imp_env_subs;
        env_revista=tipusrevista*imp_env_rvst;
        
        totalenvio=env_revista+env_subscrip;
        totalenvio= Math.round(totalenvio*100)/100;
        
        total=total+totalenvio;
        total= Math.round(total*100)/100;
        conceptes=conceptes+" (todo env. fuera de España)"
    } else {
        totalenvio=0;
        total= Math.round(total*100)/100;
    }

    // fila select desti enviament                
    sortida=sortida+"<tr>"+   
                    "<td class='white'></td>"+
                    "<td class='white'></td>"+
                    "<td class='white'></td>"+
                    "<td class='gastos-envio'>Destino</td>"+  
                    "<td>"+
                    "   <select class='gastos-envio' name='desti' onclick='reculldesti();'>"+
                    "       <option value='0'>España</option>"+
                    "       <option value='1'>Fuera de España</option>"+
                    "   </select>"+
                    "</td>"+
                    "</tr>";
    
    // fila dels gastos de envio
    sortida=sortida+"<tr>"+
                        "    <td class='white'></td>"+
                        "    <td class='white'></td>"+
                        "    <td class='white'></td>"+
                        "    <td class='gastos-envio'>Gastos envío (gratuito en España)</td>"+
                        "    <td><b>"+totalenvio+"  &#128;</b></td>"+
                    "</tr>";
                    
    // fila del total
    sortida=sortida+"<tr>"+
                        "    <td class='white'></td>"+
                        "    <td class='white'></td>"+
                        "    <td class='white'></td>"+
                        "    <td class='white total'>TOTAL</td>"+
                        "    <td><b>"+total+"  &#128;</b></td>"+
                    "</tr>";
                    
    sortida=sortida+"</table></form>";
    
    
    
    // botons
    // sortida=sortida+"<a href='javascript:mostracistella();' class='refresh'>actualizar</a>"
    
    // boto PAYPAL
    sortida=sortida+"<form action='https://www.paypal.com/cgi-bin/webscr' method='post'>"+
                   "<INPUT TYPE='hidden' name='charset' value='utf-8'>"+
                   "<input type='hidden' name='business' value='tiar@madriz.com'>"+
                   "<input type='hidden' name='cmd' value='_xclick'> "+
                   "<input type='hidden' name='item_name' value='"+conceptes+"'>"+
                   "<input type='hidden' name='amount' value='"+total+"'>"+
                   "<input type='hidden' name='currency_code' value='EUR'>"+
                   "<input type='image' id='botopaypal' class='checkout' name='submit' border='0'"+
                   "src='http://www.barcelones.com/wp-content/themes/barcelones/img/checkout-es.png'"+
                   " onmouseover='cimg("+'"botopaypal","http://www.barcelones.com/wp-content/themes/barcelones/img/checkout-es-over.png"'+")'"+
                   
                   " onmouseout='cimg("+'"botopaypal","http://www.barcelones.com/wp-content/themes/barcelones/img/checkout-es.png"'+")'"+
                                      
                   "alt='PayPal - The safer, easier way to pay online'>"+
                   "<img alt='' border='0' width='1' height='1' "+
                   "src='https://www.paypal.com/en_US/i/scr/pixel.gif' > "+
                   "</form>";  


    
     //alert("PINTA");
    elem=document.getElementById("zonaviva");
    elem.innerHTML =  sortida;
    document.formcistella.desti.options[iddesti_index].selected="1";

}



function tancacistella()
{
    elem=document.getElementById("lacistella");
    elem.style.visibility='hidden';
    
    document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none';
}

function afegir(etiqueta,preu)
{
    // tipus:
    //          1=subscripcio 1 any,
    //          2=subscripcio 2 anys,
    //          3=subscripcio 3 anys,
    //          4=revista individual
    
    id=id+1;
    var estat=0;
    var quantitat=1;
    
    // separa items info preu
    var dadespreu=preu.split("|");
    var elpreu=dadespreu[0];
    var tipus=dadespreu[1];
    //desglosa subscripcio
    if(tipus<4){
        for(i=0; i< tipus; i++){
            tipussubscripcio++;   
        }     
    } else {
        tipusrevista++;
    }
    
    //conceptes=conceptes+" * "+etiqueta;
    var linia= new Array(etiqueta,elpreu,id,estat,quantitat,tipus);
    cistella.push(linia);
    
}



// recull la quantitat indicada d'un item de la cistella i actualitza 
// cistella per refer calculs
function quants(id,idobjecte)
{
    var increment=0;
    var nova=document.getElementById(idobjecte).value;
    var actual=cistella[id][4];
    
    nova=parseInt(nova);
    actual=parseInt(actual);
    
    //actualitza per preus enviament
    tipus=cistella[id][5];
    
    text="nova: "+nova+"  actual: "+actual;
    //alert(text);
    
    if(nova > actual){
    	increment=nova-actual;
    	
    	//desglosa subscripcio
    	if(tipus<4){
    		for(z=0; z< increment ; z++){    
        		for(i=0; i< tipus; i++){
            		tipussubscripcio++;   
        		}
        	}
    	} else {
    		
        		tipusrevista=tipusrevista+increment;
        		//alert("suma: "+tipusrevista);
        	
    	}
    	
    } 
    
    if(nova < actual) {
    	
    	//alert("aqui!!");
    	
    	increment=actual-nova;
    	
    	//desglosa subscripcio
    	if(tipus<4){
    		for(z=0; z< increment ; z++){    
        		for(i=0; i< tipus; i++){
            		tipussubscripcio--;   
        		}
        	}       
    	} else {
    		
        		tipusrevista=tipusrevista-increment;
        		//alert("resta: "+tipusrevista);
        
    	}
    }  
    
    cistella[id][4]=nova;
    mostracistella();
    elem=document.getElementById(idobjecte)
    elem.focus();
}


function reculldesti()
{
    totalenvio=0;
    iddesti=document.formcistella.desti.value;
    iddesti_index=document.formcistella.desti.selectedIndex;
    mostracistella();
}


// esborra un item de la cistella, d'acord al 
// num de linia que rep
function esborra(idlinia)
{
	var quantstreu=0;
	cistella_copia=new Array();
	for(i=0;i<cistella.length;i++){
		if(i!=idlinia){ 
			cistella_copia.push(cistella[i]);
		}
	}
	
	// treu del recompte d'envios
	quantstreu=cistella[idlinia][4];
	tipus=cistella[idlinia][5];
	//desglosa subscripcio
    if(tipus<4){
    	for(z=0; z< quantstreu ; z++){    
       		for(i=0; i< tipus; i++){
           		tipussubscripcio--;   
       		}
       	}       
    } else {	
    	tipusrevista=tipusrevista-quantstreu;
       	//alert("treu: "+tipusrevista);
    }
	
	
	cistella=cistella_copia;
	mostracistella();
}

function cispreloadimatges()
{
	img_normal.src='http://www.barcelones.com/wp-content/themes/barcelones/img/checkout-es.png';
	img_over.src='http://www.barcelones.com/wp-content/themes/barcelones/img/checkout-es-over.png';
}

function cimg(idimatge,srcnova)
{
	elem=document.getElementById(idimatge)
	elem.src = srcnova;
	
}