/************************************************************************************************************
(C) www.dhtmlgoodies.com, March 2006

This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.	

Terms of use:
You are free to use this script as long as the copyright message is kept intact. However, you may not
redistribute, sell or repost it without our permission.

Version:
	1.0	Released	March. 3rd 2006

Thank you!

www.dhtmlgoodies.com
Alf Magne Kalleland

************************************************************************************************************/

var flyingSpeed = 25;
var url_addProductToBasket = 'carrello/addProductClient.php';
var url_removeProductFromBasket = 'carrello/removeProductClient.php';
var txt_totalPrice = 'Totale: ';


var shopping_cart_div = false;
var flyingDiv = false;
var currentProductDiv = false;

var shopping_cart_x = false;
var shopping_cart_y = false;

var slide_xFactor = false;
var slide_yFactor = false;

var diffX = false;
var diffY = false;

var currentXPos = false;
var currentYPos = false;

var ajaxObjects = new Array();

var tipologiaUpdate = false;

var prodottiArray = new Array();
var nextPd = 0;

var prodottoid = 0;


function shoppingCart_getTopPos(inputObj)
{		
  var returnValue = inputObj.offsetTop;
  while((inputObj = inputObj.offsetParent) != null){
  	if(inputObj.tagName!='HTML')returnValue += inputObj.offsetTop;
  }
  return returnValue;
}

function shoppingCart_getLeftPos(inputObj)
{
  var returnValue = inputObj.offsetLeft;
  while((inputObj = inputObj.offsetParent) != null){
  	if(inputObj.tagName!='HTML')returnValue += inputObj.offsetLeft;
  }
  return returnValue;
}
	

function addToBasket(productId, tipologiaSet) // tipoligia = 1 prodotto; tipologia = 2 lotto
{
	if(!shopping_cart_div)shopping_cart_div = document.getElementById('shopping_cart');
	if(!flyingDiv){
		flyingDiv = document.createElement('DIV');
		flyingDiv.style.position = 'absolute';
		document.body.appendChild(flyingDiv);
	}
	
	shopping_cart_x = shoppingCart_getLeftPos(shopping_cart_div);
	shopping_cart_y = shoppingCart_getTopPos(shopping_cart_div);

	currentProductDiv = document.getElementById('slidingProduct' + productId);
	
	currentXPos = shoppingCart_getLeftPos(currentProductDiv);
	currentYPos = shoppingCart_getTopPos(currentProductDiv);
	
	diffX = shopping_cart_x - currentXPos;
	diffY = shopping_cart_y - currentYPos;
	

    tipologiaUpdate = tipologiaSet;
	
	var shoppingContentCopy = currentProductDiv.cloneNode(true);
	shoppingContentCopy.id='';
	flyingDiv.innerHTML = '';
	flyingDiv.style.left = currentXPos + 'px';
	flyingDiv.style.top = currentYPos + 'px';
	flyingDiv.appendChild(shoppingContentCopy);
	flyingDiv.style.display='block';
	flyingDiv.style.width = currentProductDiv.offsetWidth + 'px';
	flyToBasket(productId, tipologiaSet);
	
}


function flyToBasket(productId,tipologia,stile)   // tipologia = 1 prodotto; tipologia = 2 lotto   
{
    if(stile != "2")
    {
        var maxDiff = Math.max(Math.abs(diffX),Math.abs(diffY));
        var moveX = (diffX / maxDiff) * flyingSpeed;;
        var moveY = (diffY / maxDiff) * flyingSpeed;    
        
        currentXPos = currentXPos + moveX;
        currentYPos = currentYPos + moveY;
        
        flyingDiv.style.left = Math.round(currentXPos) + 'px';
        flyingDiv.style.top = Math.round(currentYPos) + 'px';    
        
        
        if(moveX>0 && currentXPos > shopping_cart_x){
            flyingDiv.style.display='none';        
        }
        if(moveX<0 && currentXPos < shopping_cart_x){
            flyingDiv.style.display='none';        
        }     
        if(flyingDiv.style.display=='block')
        setTimeout('flyToBasket("' + productId + ',' + tipologia + '")',10); 
        else ajaxAddProduct(productId,1,tipologia,stile);       
    }else{
	tipologiaUpdate = tipologia;
        ajaxAddProduct(productId,1,tipologia,stile);
    }
    prodottiArray[nextPd] = productId+"-"+tipologia;
    nextPd = nextPd + 1;
     
}

function showAjaxBasketContent(ajaxIndex)
{   

    var idprodotto = prodottoid.split(',');
    var idprodotto = idprodotto[0]+"-"+idprodotto[1];//+'-'+tipologia;
    
    if(ajaxObjects[ajaxIndex].response == "--||P-002||--")
    {
        alert("Devi essere un utente registrato per fruire di questo servizio");
        ajaxObjects[ajaxIndex] = false;
        //sottrai(idprodotto,1,2);
        return false;
    }
    if(ajaxObjects[ajaxIndex].response == "--||P-003||--")
    {
        alert("Hai gi\340 segnalaato l'interesse per questo prodotto");
        ajaxObjects[ajaxIndex] = false;
        sottrai(idprodotto,1,2);
        return false;
    }
    if(ajaxObjects[ajaxIndex].response == "--||P-004||--")
    {
        alert("Grazie per aver segnalato il tuo interesse");
        ajaxObjects[ajaxIndex] = false;
			//sottrai(idprodotto,1,2);
        return false;
    }
    if(ajaxObjects[ajaxIndex].response == "--||P-005||--")
    {
        alert("Hai gi\340 inserito questo prodotto multiplo nel carrello!");
        ajaxObjects[ajaxIndex] = false;
			//sottrai(idprodotto,1,2);
        return false;
    }
    
    var itemBox = document.getElementById('shopping_cart_items');
    var productItems = ajaxObjects[ajaxIndex].response.split('|||');
    
    if(document.getElementById('shopping_cart_items_product' + productItems[0])){ 
        var row = document.getElementById('shopping_cart_items_product' + productItems[0]);
        var items = row.cells[0].innerHTML /1;
        items = items + 1;
        row.cells[0].innerHTML = items;
    }else{
        var tr = itemBox.insertRow(-1);
        tr.id = 'shopping_cart_items_product' + productItems[0]
        var td = tr.insertCell(-1);
        td.style.textAlign = 'center';
	
	var tipologiaProdotto = productItems[0].split('-');
	if(tipologiaProdotto[1]=="2")
	{
		td.style.backgroundColor = '#CCCCCC';
	}
        td.innerHTML = '1';     // Number of items
       
        
        var descrizione = productItems[1].split('#24#');
        var td = tr.insertCell(-1);
        td.style.textAlign = 'center';
	if(descrizione[1]){
		td.innerHTML = descrizione[0]+"<br>"+descrizione[1];     // Description
	}else{
		td.innerHTML = descrizione[0];     // Description
	}
        
            
        var td = tr.insertCell(-1);
        td.style.textAlign = 'center';
        td.innerHTML = productItems[2];     // Price    

        var td = tr.insertCell(-1);
        var a = document.createElement('A');
        td.style.textAlign = 'center';
        td.appendChild(a);
        a.href = '#';
        a.onclick = function(){ removeProductFromBasket(productItems[0]); };
        var img = document.createElement('IMG');
        img.src = 'http://www.negozionweb.net/ecommerce/style/images/cart_remove.png';
        img.border = '0'; 
        a.appendChild(img);   
    }
    ajaxObjects[ajaxIndex] = false; 
    updateTotalPrice();        
} 	

function updateTotalPrice()
{
	var itemBox = document.getElementById('shopping_cart_items');
	// Calculating total price and showing it below the table with basket items
	var totalPrice = 0;
	if(document.getElementById('shopping_cart_totalprice')){
		for(var no=1;no<itemBox.rows.length;no++){
			totalPrice = totalPrice + (itemBox.rows[no].cells[0].innerHTML.replace(/[^0-9]/g) * itemBox.rows[no].cells[2].innerHTML);
			
		}		
		document.getElementById('shopping_cart_totalprice').innerHTML = txt_totalPrice + totalPrice.toFixed(2);
	}	
	
}

function removeAllProductFromBasket()
{
    var i = 0;
    if(prodottiArray)
    {
        while(i<prodottiArray.length) {
          removeProductFromBasket(prodottiArray[i],2)
          i++;
        } 
        document.getElementById('shopping_cart_totalprice').innerHTML = "";        
    }
}

function removeProductFromBasket(productId,stile)
{
	
    if(stile != '2')
    {
        if(!confirm('Stai per eliminare un prodotto dal carrello, sei sicuro?'))
        {
            return false;
        }       
    }
    
	idProdotto=productId.replace(/\s+$|^\s+/g,"");  
    var productRow = document.getElementById('shopping_cart_items_product' + productId);
    elemento = document.getElementById(idProdotto+"-img");
    if(elemento)
    {
        // L'elemento esiste realmente nella pagina
        sottrai(idProdotto,2);
        elemento.src = "http://www.negozionweb.net/ecommerce/style/images/cart.png";
    }
    if(!productRow) return false;
    var numberOfItemCell = productRow.cells[0];
    if(numberOfItemCell.innerHTML == '1'){
        productRow.parentNode.removeChild(productRow);    
    }else{
        numberOfItemCell.innerHTML = numberOfItemCell.innerHTML/1 - 1;
    }
	updateTotalPrice();
	ajaxRemoveProduct(productId);	
}

function ajaxValidateRemovedProduct(ajaxIndex)
{
	//if(ajaxObjects[ajaxIndex].response!='OK')alert('Error while removing product from the database');
	if(ajaxObjects[ajaxIndex].response!='OK')
	{
		//alert(ajaxObjects[ajaxIndex].response);
	}
}

function ajaxRemoveProduct(productId)
{
	var ajaxIndex = ajaxObjects.length;
	ajaxObjects[ajaxIndex] = new sack();
	ajaxObjects[ajaxIndex].requestFile = url_removeProductFromBasket;	// Saving product in this file
	ajaxObjects[ajaxIndex].setVar('productIdToRemove',productId);
	ajaxObjects[ajaxIndex].onCompletion = function(){ ajaxValidateRemovedProduct(ajaxIndex); };	// Specify function that will be executed after file has been found
	ajaxObjects[ajaxIndex].runAJAX();		// Execute AJAX function	
}

function ajaxAddProduct(productId,mode,tipologiaSet,stile)
{
	//mode mio 1:normale // 2:mio
	//alert("tiplogia:"+tipologiaUpdate);
	var ajaxIndex = ajaxObjects.length;
	ajaxObjects[ajaxIndex] = new sack();
	ajaxObjects[ajaxIndex].requestFile = url_addProductToBasket;	// Saving product in this file
	ajaxObjects[ajaxIndex].setVar('productId',productId);
    ajaxObjects[ajaxIndex].setVar('tipologia',tipologiaUpdate);
    ajaxObjects[ajaxIndex].setVar('tipologiaSet',stile);
	ajaxObjects[ajaxIndex].setVar('mode',mode);
    prodottoid = productId;
	ajaxObjects[ajaxIndex].onCompletion = function(){ showAjaxBasketContent(ajaxIndex); };	// Specify function that will be executed after file has been found
	ajaxObjects[ajaxIndex].runAJAX();		// Execute AJAX function		
}

function iscrivi_news(emailA,tipo,modo)
{
	var ajaxIndex = ajaxObjects.length;
	ajaxObjects[ajaxIndex] = new sack();
	ajaxObjects[ajaxIndex].requestFile = "newsletter.php";
	ajaxObjects[ajaxIndex].setVar('tipo',tipo);
    	ajaxObjects[ajaxIndex].setVar('email',emailA);
   	ajaxObjects[ajaxIndex].setVar('modo',modo);
	ajaxObjects[ajaxIndex].onCompletion = function(){ 
							iscrivi_news_result(ajaxIndex);
							};
	ajaxObjects[ajaxIndex].runAJAX();
}

function iscrivi_news_result(ajaxIndex)
{
	if(ajaxObjects[ajaxIndex].response == "--ERR001--")
	{
		alert("L'indirizzo e-mail non risulta valido!");
		return false;
	}
	if(ajaxObjects[ajaxIndex].response == "--ERR003--")
	{
		alert("La newsletter risulta essere attiva!");
		return false;
	}
	if(ajaxObjects[ajaxIndex].response == "--ERR004--")
	{
		alert("E' stata inviata una mail di conferma. Controlla la tua casella di posta!");
		return false;
	}
	if(ajaxObjects[ajaxIndex].response == "--ERR005--")
	{
		alert("Questo indirizzo e-mail risulta gi\u00E0 presente!");
		return false;
	}
	if(ajaxObjects[ajaxIndex].response == "--ERR006--")
	{
		alert("L'indirizzo e-mail inserito non esiste!");
		return false;
	}
	alert(ajaxObjects[ajaxIndex].response);	}
