/************************************************************************************************************
(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 = 'addToBasket.aspx';

var flyTo_div = false;
var flyingDiv = false;
var currentProductDiv = false;

var flyTo_x = false;
var flyTo_y = false;

var slide_xFactor = false;
var slide_yFactor = false;

var diffX = false;
var diffY = false;

var currentXPos = false;
var currentYPos = false;

var ajax = new sack();

function getTop(obj) {
  var returnValue = obj.offsetTop;
  while((obj = obj.offsetParent) != null)if(obj.tagName!='HTML')returnValue += obj.offsetTop;
  return returnValue;
}

function getLeft(obj){
  var returnValue = obj.offsetLeft;
  while((obj = obj.offsetParent) != null)if(obj.tagName!='HTML') returnValue += obj.offsetLeft;
  return returnValue - 100;
}

function addToBasket(productId, catRef, tbQuantity, photo, inBasket, pType, kw, sSKU, aux) {
    qty = (tbQuantity == '') ? '1' : document.getElementById(tbQuantity).value;
    if (qty <= 0) {
        alert("Quantity must be greater than 0");
        return true;
    }

    flyTo_div = $get('flyTo');
    if (!flyingDiv) {
        flyingDiv = document.createElement('DIV');
        flyingDiv.style.position = 'absolute';
        document.body.appendChild(flyingDiv);
    }

    flyTo_x = getLeft(flyTo_div);
    flyTo_y = getTop(flyTo_div);
    currentXPos = getLeft(document.getElementById(productId.replace('flyX', 'base')));
    currentYPos = getTop(document.getElementById(productId.replace('flyX', 'base')));
    currentProductDiv = document.getElementById(productId);
    diffX = flyTo_x - currentXPos;
    diffY = flyTo_y - currentYPos;

    var ContentCopy = currentProductDiv.cloneNode(true);
    ContentCopy.id = '';
    ContentCopy.style.display = '';

    flyingDiv.innerHTML = '';
    flyingDiv.style.left = currentXPos + 'px';
    flyingDiv.style.top = currentYPos + 'px';
    flyingDiv.appendChild(ContentCopy);
    flyingDiv.style.display = 'block';
    flyingDiv.style.width = currentProductDiv.offsetWidth + 'px';

    flyToBasket(productId, catRef, tbQuantity, photo, inBasket, pType, kw, sSKU, aux);

    return false;
}


function flyToBasket(productId, catRef, tbQuantity, photo, inBasket, pType, kw, sSKU, aux) {
    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 > flyTo_x) flyingDiv.style.display = 'none';
    if (moveX < 0 && currentXPos < flyTo_x) flyingDiv.style.display = 'none';
    if (flyingDiv.style.display == 'block') setTimeout('flyToBasket("' + productId + '","' + catRef + '","' + tbQuantity + '","' + photo + '","' + inBasket + '","' + pType + '","' + kw + '","' + sSKU + '","' + aux + '")', 10); else ajaxAddProduct(productId, catRef, tbQuantity, photo, inBasket, pType, kw, sSKU, aux);
}

/////////////////////////////////////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

var basketMinHeight = 60
var yOffset = basketMinHeight
var basketMaxHeight = 260
var keepOpen = false

function dropTheBasket(direction, andUp)
{
    if (!flyTo_div) flyTo_div = document.getElementById('flyTo');
    if(flyTo_div.innerText=='Your basket is empty') return false;

    if (keepOpen == false) 
        yOffset += (direction * 10)	
    else 
        yOffset = basketMaxHeight
    
    if (yOffset < basketMinHeight) yOffset=basketMinHeight;
    document.getElementById("downBasket").style.height = yOffset + 'px';

    if (direction > 0) {
	    if (yOffset < basketMaxHeight) 
	        setTimeout('dropTheBasket(1,' + andUp + ')',30); 	        
        else if (andUp==true) setTimeout('dropTheBasket(-1)',1500);
    } else {
        if (keepOpen == false)
	        if (yOffset > basketMinHeight) 
	            setTimeout('dropTheBasket(-1)',30);
    } 
}

function dropBasket() {
    yOffset = basketMinHeight;
    dropTheBasket(1, false);
}

function hideBasket() {
    yOffset = basketMaxHeight;
    dropTheBasket(-1,false);
}

function ClosePanes(obj) {
    var acc = $find(obj+'_AccordionExtender');
    acc.set_SelectedIndex(-1);
}
    
//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/////////////////////////////////////////////////////////////////////////

function ajaxAddProduct(productId, catRef, tbQuantity, photo, inBasket, kw) {
    qty = (tbQuantity == '') ? '1' : document.getElementById(tbQuantity).value;

    ajax = new sack();
    ajax.requestFile = url_addProductToBasket;
    ajax.setVar('CatRef', catRef);
    ajax.setVar('Quantity', qty);
    ajax.setVar('ProductID', productId);
    ajax.setVar('Photo', photo);
    ajax.setVar('InBasket', inBasket);
    ajax.setVar('KW', kw);
    ajax.onCompletion = whenCompleted;
    ajax.runAJAX();
}

function ajaxRemoveProduct(catRef) {
    keepOpen = false;

    ajax = new sack();
    ajax.requestFile = 'addToBasket.aspx';
    ajax.setVar('CatRef', catRef);
    ajax.setVar('Quantity', -1);
    ajax.setVar('ProductID', '');
    ajax.setVar('Photo', '');
    ajax.setVar('InBasket', '');
    ajax.setVar('KW', '');
    ajax.onCompletion = whenCompleted;
    ajax.runAJAX();
}

function whenCompleted(){
    if (!ajax.response) return;

    var response = ajax.response.split('~');
    var productID = response[0];
    var quantity = response[1];
    var itemCount = response[2];
    var catRef = response[3];
    var photo = response[4];
    var inBasket = response[5];
    var basketTotal = response[6];

    if (inBasket != '') $get(inBasket).innerHTML = '<a href="viewitems.aspx" class="inBasket">' + quantity + ' in basket</a>'
    $get("ctl00_lblBasketFooter").innerHTML = $get("ctl00_lblBasket").innerHTML = itemCount == '1' ? '1 item' : itemCount + ' items'
    $get("ctl00_lblSubtotal").innerHTML = basketTotal
    $get("ctl00_imgBasketPhoto").src = photo
    $get("ctl00_lblBasketCatRef").innerHTML = catRef
    $get("ctl00_lblBasketQuantity").innerHTML = quantity

	dropTheBasket(1,true);
}