// importare:
// <script type='text/javascript' src='/tripadvice/dwr/interface/DWRCartSrv.js'></script>
// <script type='text/javascript' src='/tripadvice/dwr/engine.js'></script>
// <script type='text/javascript' src='/tripadvice/dwr/util.js'></script>

// Fly To Cart 
var flyingSpeed = 25;

var ajaxtpbox_div = false;
var flyingDiv = false;
var currentProductDiv = false;

var ajaxtpbox_x = false;
var ajaxtpbox_y = false;

var slide_xFactor = false;
var slide_yFactor = false;

var diffX = false;
var diffY = false;

var currentXPos = false;
var currentYPos = false;


var __isFireFox = navigator.userAgent.match(/gecko/i);   
  
  
//returns the absolute position of some element within document   
function GetElementAbsolutePos(element) {   
    var res = new Object();   
    res.x = 0; res.y = 0;   
    if (element !== null) {   
        res.x = element.offsetLeft;    
        res.y = element.offsetTop;    
           
        var offsetParent = element.offsetParent;   
        var parentNode = element.parentNode;   
  
        while (offsetParent !== null) {   
            res.x += offsetParent.offsetLeft;   
            res.y += offsetParent.offsetTop;   
  
            if (offsetParent != document.body && offsetParent != document.documentElement) {   
                res.x -= offsetParent.scrollLeft;   
                res.y -= offsetParent.scrollTop;   
            }   
            //next lines are necessary to support FireFox problem with offsetParent   
            if (__isFireFox) {   
                while (offsetParent != parentNode && parentNode !== null) {   
                    res.x -= parentNode.scrollLeft;   
                    res.y -= parentNode.scrollTop;   
                       
                    parentNode = parentNode.parentNode;   
                }       
            }   
            parentNode = offsetParent.parentNode;   
            offsetParent = offsetParent.offsetParent;   
        }   
    }   
    return res;   
}  

function findPos(obj) {

    var curleft = 0;
    var curtop = 0;
    if (obj.offsetParent)
    {
        while (obj.offsetParent)
        {
            curleft += obj.offsetLeft-obj.scrollLeft;
            curtop += obj.offsetTop-obj.scrollTop;
            var position='';
            if (obj.style&&obj.style.position) position=obj.style.position.toLowerCase();
            if ((position=='absolute')||(position=='relative')) break;
            while (obj.parentNode!=obj.offsetParent) {
                obj=obj.parentNode;
                curleft -= obj.scrollLeft;
                curtop -= obj.scrollTop;
            }
            obj = obj.offsetParent;
        }
    }
    else {
        if (obj.x)
            curleft += obj.x;
        if (obj.y)
            curtop += obj.y;
    }
    return {left:curleft,top:curtop};
}


function addBrochureToCart(pid, divId)
{
  
    if(!ajaxtpbox_div)ajaxtpbox_div = document.getElementById('ajaxtpbox');
	
    if(!flyingDiv){
        flyingDiv = document.createElement('DIV');
        flyingDiv.style.position = 'absolute';
        document.body.appendChild(flyingDiv);
    }
    ajaxtpbox_pos = GetElementAbsolutePos(ajaxtpbox_div);
    ajaxtpbox_x = ajaxtpbox_pos.x;
    ajaxtpbox_y = ajaxtpbox_pos.y;

    currentProductDiv = document.getElementById(divId);
	
    //currentPos = GetElementAbsolutePos(currentProductDiv);
    currentPos = findPos(currentProductDiv);
    currentXPos = currentPos.left;
    currentYPos = currentPos.top;
	
    diffX = ajaxtpbox_x - currentXPos;
    diffY = ajaxtpbox_y - currentYPos;
	
    var tpboxContentCopy = currentProductDiv.cloneNode(true);
    tpboxContentCopy.id='';
    flyingDiv.innerHTML = '';
    flyingDiv.style.left = currentXPos + 'px';
    flyingDiv.style.top = currentYPos + 'px';
    flyingDiv.appendChild(tpboxContentCopy);
    flyingDiv.style.display='block';
    flyingDiv.style.width = currentProductDiv.offsetWidth + 'px';
    flyToCart(pid, divId);
	
}

function flyToCart(pid, divId)
{
    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 > ajaxtpbox_x){
        flyingDiv.style.display='none';		
    }
    if(moveX<0 && currentXPos < ajaxtpbox_x){
        flyingDiv.style.display='none';		
    }
		
    if(flyingDiv.style.display=='block')
        setTimeout('flyToCart("' + pid + '","' + divId + '")',10); 
    else 
        DWRCartSrv.addToCart(pid,22,addBrochureToCartCallback);	
}

function deleteBrochureFromCart() {
    DWRCartSrv.removeFromCart( "*", 22,  addBrochureToCartCallback);
}

// Add Brochure to cart
function addBrochureToCartCallback(data) {
    //alert(data); 
    updateBrochureBox();
}

function updateBrochureBox() {
    DWRCartSrv.getCartHtml(22,"brochureBoxShow.htm",function(data) {dwr.util.setValue("ajaxtpbox", data, { escapeHtml:false });});
} 



