﻿/************************************************************************************************************
(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 = 20;


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;


function addToBasket(cartdiv, productdiv) {

    if (!shopping_cart_div) shopping_cart_div = document.getElementById(cartdiv);
    if (!flyingDiv) {
        flyingDiv = document.createElement('DIV');
        flyingDiv.style.position = 'absolute';
        document.body.appendChild(flyingDiv);
    }

    shopping_cart_x = findPosX(shopping_cart_div);
    shopping_cart_y = findPosY(shopping_cart_div);

    currentProductDiv = document.getElementById(productdiv);

    currentXPos = findPosX(currentProductDiv);
    currentYPos = findPosY(currentProductDiv);

    diffX = shopping_cart_x - currentXPos;
    diffY = shopping_cart_y - currentYPos;

    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';
    flyToBasket();

}

function flyToBasket() {
    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()', 10);
}

/*############################################
# Functions om de x en y posities van een element op te halen 
##############################################*/
function findPosX(obj) {
    var curleft = 0;
    if (obj.offsetParent) {
        while (obj.offsetParent) {
            curleft += obj.offsetLeft
            obj = obj.offsetParent;
        }
    }
    else if (obj.x)
        curleft += obj.x;
    return curleft;
}

function findPosY(obj) {
    var curtop = 0;
    if (obj.offsetParent) {
        while (obj.offsetParent) {
            curtop += obj.offsetTop
            obj = obj.offsetParent;
        }
    }
    else if (obj.y)
        curtop += obj.y;
    return curtop;
}


