//---------------------------------------------------------
// JavaScript Function Library for PayPal Shopping Carts
// Version 0.3
//
// Copyright 2004-05, Mike Brittain (www.embimedia.com)
// Permission is granted to use this free of charge on
// your web site as long as all instructions, credits
// and URLs are maintained in the comments of this script.
//*************************************************
// 10/02/2007 Traduzione Italiana:      Sergio Gandrus
//                                                             www.sergiogandrus.it
//*************************************************
// Disclaimer:
// L'utilizzo di questo software è a proprio rischio. 
// Non c'è alcuna garanzia che questo script funzioni
// adeguatamente che gestisca tutte le possibili configurazioni
// col sistema PayPal.  In altre parole è tua cura testare lo script
// perchè questo funzioni correttamente sul tuo sito
//
//
//
// Questa libreria di funzioni è d'aiuto per allestire un carello
// elettronico usando i servizi online offerti da PayPal
// Visita www.paypal.it per maggiori informazionisu come usare
// il loro carrello elettronico.
//
// Le funzioni ti permettono di aggiungere un prodotto al
// carrello tramite un link o un form HTML.
//
// -- USO DEI LINK --
// Il link invia parametri per id_prodotto, nome, quantita,
// costo, taglia, coloree, e 2 costo_spedizione.  Queste
// opzioni sono passate al carrello che si apre in una
// finestra popup.
//
// ISTRUZIONI:
// Per aggiungere un prodotto:
//   <a href="#" onclick="addToCart('1', '00231',
//       'Custom T-Shirt','12.00','XXL','Red','7.00','2.50');
//       return false;">Custom T-Shirt</a>
	
//
//Ad ogni parametro dovrebbe essere associato un argomento
// anche se non hai dati da passare.  In altre parole, se non hai
// dati da passare, invia una stringa vuota:
//
//   <a href="#" onclick="addToCart('1', '00231',
//          'One-taglia Hat','28.00','','','','');
//           return false;">One-taglia Hat</a>
//
// Per visualizzare il carrello corrente:
//   <a href="#" onclick="showCart();return false;">
//     Guarda il carrello
//   </a>
//
//
// USO DEL FORM:
// In più può essere utilizzato un form HTML per aggiungere
// prodotti al tuo carrello PayPal.  Il form deve utilizzare un evento
// onSubmit  "handleCartItem()".  Questa funzione legge i valori dal
// form HTML e li invia al carrello di PayPal alll'interno di una nuova
// finestra del browser.
//
//
//---------------------------------------------------------
	
//---------------------------------------------------------
// MODIFICA QUESTE VARIABILI DI CONFIGURAZIONE
// A SECONDA DELLE TUE ESIGENZE.
//
// Qui devi inserire l'email che hai utilizzato per la registrazione con PayPal
// E' spezzata in due per prevenire gli spambot.
var business = 'danifoschi' + '@' + 'gmail.com';
// Moneta di transazione.
var currencyCode = 'EUR';
//
//---------------------------------------------------------
	
// URL del carrello di PayPal.
var paypal_url = 'https://www.paypal.com/cart/';
	
//Proprietà della finestra popup.
var cartWin = null;
var winname = 'cartwindow';
var winProps = 'width=900,height=600,scrollbars,location,resizable,status';
	
//---------------------------------------------------------
	
function addToCart (qta, id_prodotto, nome, prezzo, taglia,
                    colore, spedizione, spedizione2)
{
  // Creo l'URL per aggiungere un prodotto
  var cartUrl = paypal_url
        + 'add=1'
        + '&business=' + escape(business)
        + '&currency_code=' + escape(currencyCode)
        + '&amount=' + escape(prezzo);
  if (id_prodotto != '') {
    cartUrl += '&item_number=' + escape(id_prodotto);
  }
  if (nome != '') {
    cartUrl += '&item_name=' + escape(nome);
  }
  if (taglia != '') {
    cartUrl += '&on0=' + escape("taglia");
    cartUrl += '&os0=' + escape(taglia);
  }
  if (colore != '') {
    cartUrl += '&on1=' + escape("colore");
    cartUrl += '&os1=' + escape(colore);
  }
  if (qta != '' && qta != 0) {
    cartUrl += '&quantity=' + escape(qta);
    cartUrl += '&undefined_quantity=1';
  }
  if (spedizione != '') {
    cartUrl += '&shipping=' + escape(spedizione);
  }
  if (spedizione2 != '') {
    cartUrl += '&shipping=' + escape(spedizione2);
  }
  // Aggiunge il prodotto
  openCartWin(cartUrl);
}
	
/**
 * Preleva valori all'interno del form utilizzato
 * e li invia al carrello PayPal.
 * Supporta la selezione delle opzioni per taglia e colore.
 */
function handleCartItem (form)
{
  var id_prodotto = '';
  var nome = '';
  var prezzo = '';
  var taglia = '';
  var colore = '';
  var spedizione = '';
  var spedizione2 = '';
  var quantity = 1;
	
  // Recupera i valori del form se questi esistono
  // ID, nome, spedizione e prezzo dovrebbero
  // essere campi nascosti.
  if (form.id_prodotto) {
    id_prodotto = form.id_prodotto.value;
  }
  if (form.item_nome) {
    nome = form.item_nome.value;
  }
  if (form.item_prezzo) {
    prezzo = form.item_prezzo.value;
  }
  if (form.spedizione) {
    spedizione = form.spedizione.value;
  }
  if (form.spedizione2) {
    spedizione2 = form.spedizione2.value;
  }
  // taglia, colore e quantità possono essere realizzati
  // come una select, un radio, o un campo testo del tuo
  // form.
  if (form.item_taglia) {
    taglia = getInputValue(form.item_taglia);
  }
  if (form.item_colore) {
    colore = getInputValue(form.item_colore);
  }
  if (form.item_quantity) {
    quantity = getInputValue(form.item_quantity);
  }
	
  // Aggiungi questo prodotto nel tuo carrello.
  addToCart(quantita, id_prodotto, nome, prezzo, taglia,
            colore, spedizione, spedizione2);
}
	
/**
 * Apre una finestra popup mostrando il carrello PayPal.
 */
function showCart()
{
  // Crea l'URL per vedere il carrello
  var viewUrl = paypal_url + 'display=1'
        + '&business=' + escape(business);
  // Mostra il carrello
  openCartWin(viewUrl);
}
	
/**
 * Controlla che la finestra del carrello esista.
 */
function openCartWin (loadUrl) {
  if (!cartWin || cartWin.closed) {
    // No - Apri una nuova finestra
    cartWin = window.open(loadUrl,winname,winProps);
  } else {
    // Sì - Il focus rimane sulla finestra esistente e viene caricata una nuova URL
    cartWin.location = loadUrl;
    cartWin.focus();
  }
}
	
/**
 * Chiude la finestra col carrello se la pagina viene cambiata.
 */
function killCart()
{
  cartWin.close();
  cartWin = null;
}
window.onunload = function() {
  killCart();
};
	
/**
 *Restituisce il valore corrente (o il valore selezionato) 
 *del campo input... Il campo puòà esssere di tipo radio, select,
 * input o textarea. Restituisce null se il valore non è trovato.
 */
function getInputValue (inputObj)
{
  if (inputObj.type == 'select-one') {  // box select
    return inputObj.options[inputObj.selectedIndex].value;
  } else if (inputObj.length) {  // bottoni radio
    return getRadioValue(inputObj);
  } else {
    return inputObj.value;
  }
  return null;
}
	
/**
 * Restituisce il valore selezionato da un gruppo di pulsanti radio
 * 'radioObj' dovrebbe essere un oggetto pulsante radio.
 */
function getRadioValue (radioObj)
{
  for (var i=0; i < radioObj.length; i++) {
    if (radioObj[i].checked) {
      return radioObj[i].value;
    }
  }
  return null;
}
