// JavaScript Document

  var toBeRemovedIds = new Array();
  var nextPageId = "";
  
  function GetBoldCell(content)
  {
    var theCell = document.createElement('td');
    $(theCell).setStyle({fontSize:'16px',color:'red',fontFamily:'arial',fontWeight:'bold'});
    theCell.innerHTML = content;
    return theCell;
  }
  
  function incrementLoader()
  {
    currentLoaded++;
    if ($('progress_span'))
      $('progress_span').innerHTML = Math.floor(currentLoaded*100/entriesNum);
  }
  
  function arrangeTotal(total)
  {
    pt_str = new String(total)
    re = /\./;
    if (pt_str.search(re) != -1 )
      return pt_str.replace(".", ",")
    else
        return pt_str + ",0"
  }
  
  function addToCart(element, dropon, event)
  {
    if (dropon.id != "cart")
      return;
      
    if (element.id.substr(0, element.id.indexOf("_")) == "bought")
      return; 
      
    imageTag = $("img_" + element.id);
    description = $("descr_" + element.id).innerHTML;
    price_str = $("prix_" + element.id).innerHTML;
    price = price_str.substring(0, price_str.indexOf(" ")).replace(",", ".");
    quantity = $F("qte_" + element.id);
    
    if ($("row_" + element.id) == null)
    {
      BoughtItems++;
      
      var row = document.createElement('tr');
      row.id = "row_" + element.id;
      
      var img_cell = document.createElement('td');
      var draggable_div = document.createElement("div")
      draggable_div.id = "bought_" + element.id 
      draggable_div.setAttribute("align", "center"); 
      var img_tag = document.createElement('img');
      img_tag.src = imageTag.src
      img_tag.height = imageTag.getHeight()/2;
      img_tag.width = imageTag.getWidth()/2;
      $(img_tag).setStyle=({align:'center'});
      draggable_div.appendChild(img_tag);
      
      descr_div = document.createElement("div")
      $(descr_div).setAttribute("align", "center");
      descr_div.id = "bought_descr_" + element.id  ;
      descr_div.innerHTML = "[" + description + "]";
      $(descr_div).setStyle({fontSize:'10px'})
      $(descr_div).hide();
      
      img_cell.appendChild(draggable_div);
      img_cell.appendChild(descr_div);
      row.appendChild(img_cell);
      
//       var descr_cell = document.createElement('td');
//       descr_cell.setAttribute("align", "center");
//       descr_cell.id = "bought_descr_" + element.id  ;
//       descr_cell.innerHTML = "[" + description + "]";
//       descr_cell.setStyle({fontSize:'10px'})
//       descr_cell.hide();
//       row.appendChild(descr_cell);
      
      var prix_cell = document.createElement('td');
      prix_cell.innerHTML = price_str;  
      $(prix_cell).setStyle({fontSize:'16px', textAlign:'right'});
      row.appendChild(prix_cell);
      
      row.appendChild(GetBoldCell("X"));
      
      var qte_cell = document.createElement('td');
      qte_cell.innerHTML = quantity;
      qte_cell.id = "quantity_" + element.id;
      $(qte_cell).setStyle({fontSize:'16px', textAlign:'right'});
      row.appendChild(qte_cell);
  
      row.appendChild(GetBoldCell("="));
      
      partial_total =  eval(price + "*" + quantity)
      var total_cell = document.createElement('td');
      $(total_cell).setStyle({fontSize:'16px', textAlign:'right'});
      total_cell.id = "total_" + element.id
      total_cell.innerHTML = arrangeTotal(partial_total) + " &euro;";
      row.appendChild(total_cell);
      
      if (BoughtItems<=8)
        table_id = "cart_table";
      else
        table_id = "cart_table_1";
        
      if ($("total_row") == null)// || BoughtItems==9)
      {
        $(table_id).appendChild(row);
          
        total_row = document.createElement('tr');
        total_row.id = "total_row";
        total_label = GetBoldCell("TOTALE");
        $(total_label).setAttribute("colspan", "4");
        total_row.appendChild(total_label);
        total_row.appendChild(GetBoldCell("="));
        global_total_cell = document.createElement('td');
        global_total_cell.innerHTML =  arrangeTotal(partial_total) + " &euro;";
        global_total_cell.id = "global_total"
        $(global_total_cell).setStyle({fontSize:'16px', textAlign:'right'});
        total_row.appendChild(global_total_cell);
        $(table_id).appendChild(total_row);
      }
      else
      { 
        var total_row = $("total_row").remove();
        $(table_id).appendChild(row);
        $(table_id).appendChild(total_row);
        help_str = $("global_total").innerHTML;
        global_tot= (eval(help_str.substring(0, help_str.indexOf(" ")).replace(",", ".")) + partial_total) * 1.0;
        
        $("global_total").innerHTML = arrangeTotal(global_tot) + " &euro;";
      }
      
      
      new Draggable("bought_" + element.id,{snap:false,revert:true});
    }      
    else
    {
      $("quantity_"+ element.id).innerHTML = eval($("quantity_"+ element.id).innerHTML) + eval(quantity);
      
      additional_total =  eval(price + "*" + quantity)
      help_str = $("total_" + element.id).innerHTML;
      partial_tot= eval(help_str.substring(0, help_str.indexOf(" ")).replace(",", ".")) + additional_total;
      $("total_" + element.id).innerHTML = arrangeTotal(partial_tot) + " &euro;";
      help_str = $("global_total").innerHTML;
      global_tot= eval(help_str.substring(0, help_str.indexOf(" ")).replace(",", ".")) + additional_total;
      $("global_total").innerHTML = arrangeTotal(global_tot) + " &euro;";
      // Effect.Shake($("quantity_"+ element.id))
    }
  }
  
  function throwAway(element, dropon, event)
  {
    if (dropon.id != "recycle")
      return;
      
    if (element.id.slice(0, element.id.indexOf("_")) != "bought")
      return;
      
    id = element.id.substr(element.id.indexOf("_")+1)
    containerId = $('row_' + id).ancestors()[0].id;
    help_tot = $("global_total").innerHTML;
    help_rem = $("total_" + id).innerHTML;
    global_tot = eval(help_tot.substring(0, help_tot.indexOf(" ")).replace(",", ".")) - eval(help_rem.substring(0, help_rem.indexOf(" ")).replace(",", "."));
    
    if (global_tot   <=0)
      new Effect.Puff("total_row", {afterFinish: function(effect){clearCart(effect.effects[0].element);}});
    else
      $("global_total").innerHTML = arrangeTotal(global_tot) + " &euro;";
    
    new Effect.Puff("row_" + id, {afterFinish: function(effect){clearCart(effect.effects[0].element);}});
    BoughtItems--;
  }
    
  function clearCart(element)
  {
    var container = element.ancestors()[0];
    var containerAncestor = container.ancestors()[0];
    removed = $(element.id).remove()
    if (container.innerHTML != "")
    {
      if (container.id == 'cart_table')
      {
        if ($("cart_table_1").descendants().length > 0)
          $("cart_table").appendChild($("cart_table_1").descendants()[0].remove());
      }

      if ($("cart_table_1").immediateDescendants().length == 1)
      {
        $("cart_table").appendChild($("cart_table_1").descendants()[0].remove());
        if ($("cart_table_1").innerHTML == "")
          $("cart_table_1").innerHTML = "<tbody id='cart_table_1'></tbody>";
      } 
    }
    else
      containerAncestor.innerHTML = "<tbody id='" + container.id + "'></tbody>";
  }
  
  function removeCurrentElements()
  {    
      for (i=1; i<=8; i++)
      {
        var toRemove = $("box_" + i).down();
        if (toRemove)
        {
          toBeRemovedIds.push($(toRemove).id);
          new Effect.Puff($(toRemove).id, {afterFinish: function(effect){storeElement(effect.effects[0].element);}});
        }
      } 
      if (toBeRemovedIds.length == 0)
        fillNextPage();
  }
  
  function storeElement(element)
  {
    var nextContainer = $('depot').down()
    
    while(nextContainer)
    {
      if (nextContainer.innerHTML == "")
      {
          nextContainer.appendChild(element.remove().show());   
          toBeRemovedIds = toBeRemovedIds.without(element.id)   
          if (toBeRemovedIds.length == 0)
          {   
            fillNextPage();
            break;
          }
      } 
        
      nextContainer = nextContainer.next();
    }
  }
  
  function getPage(id)
  {
    if (nextPageId)
      $(nextPageId + "_selector").setStyle({color:'blue',fontSize:'9px'})
    nextPageId = id;
    removeCurrentElements();
  }
  
  function fillNextPage()
  {
    var nextContainer = $('depot').down()
 
    while(nextContainer)
    {
      var item = nextContainer.down()
      if (item && item.id.substring(0, item.id.indexOf("_")) == nextPageId)
      {
          $('box_' + item.id.substring(item.id.indexOf("_")+1, item.id.length)).appendChild(item.remove())
          //new Effect.Grow(item.id);
          $('qte_' + item.id).value = '1';
          new Draggable(item.id,{snap:false,revert:true});
      } 
        
      nextContainer = nextContainer.next();
    }
    $(nextPageId + "_selector").setStyle({color:'red',fontSize:'16px'})
  }
  
  function sendOrder(offset)
  {
    var ajax = assegnaXMLHttpRequest();
    if (ajax)
    {
      $('loading').show();
      ajax.open("post", "cart_management.php");
      ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded"); // header necessario per i POST
     
      ajax.setRequestHeader("connection", "close");
      // impostazione controllo e stato della richiesta
      //cart_tag = document.getElementById("cart");
      ajax.onreadystatechange = function() 
      {
          // verifica dello stato
          if(ajax.readyState === 4) 
          {
              // verifica della risposta da parte del server
              if(ajax.status === 200) // operazione avvenuta con successo
              { 
                var responses = ajax.responseText.split("\|");     
                $('outcome').innerHTML = responses[0];
                if (responses[1] == "OK")
                  resetOrderForm();
                $('loading').hide();
              }
              else 
              {
                // errore di caricamento
                cart_tag.innerHTML = "Impossibile effettuare l'operazione richiesta.<br />";
                cart_tag.innerHTML += "Errore riscontrato: " + statusText[ajax.status];
              }
          } 
      }
      var OrderContent = $('cart').innerHTML
      OrderContent = OrderContent.gsub('display: none', 'display: block');
      OrderContent = OrderContent.gsub('DISPLAY: none', 'display: block');
      // invio delle variabili con relativi contenuti
      ajax.send("order="+escape(OrderContent)+"&name="+escape($('name').value)+"&surname="+escape($('surname').value)+"&email="+escape($('email').value)+"&notes="+escape($('notes').value));
    }
  }
  
  function resetOrderForm()
  {
    $('name').value=""
    $('surname').value=""
    $('email').value=""
    $('notes').value=""
    $('cart_table').ancestors()[0].innerHTML = "<tbody id='cart_table'></tbody>"
    $('cart_table_1').ancestors()[0].innerHTML = "<tbody id='cart_table_1'></tbody>"
  }

