var flyingSpeed = 25;
var url_addProductToBasket = '/gbl/en_script/addProduct.php5';
var url_addCookie = '/gbl/en_script/allgemein/favoriten/index.php5';
var url_removeProductFromBasket = '/gbl/en_script/removeProduct.php5';

var shopping_cart_items = false;
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();

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;
}
	
//Fügt einen Favorit in die DB ein
function addToFavourites(artikelId,produktId,produktgruppeId,einsatzbereichId)
{
	shopping_cart_items = document.getElementById('shopping_cart_items');

	if((shopping_cart_items.getElementsByTagName("tr").length) <= "4"){

		var ajaxIndex = ajaxObjects.length;
		ajaxObjects[ajaxIndex] = new sack();
		ajaxObjects[ajaxIndex].requestFile = url_addProductToBasket;	// Saving product in this file
		ajaxObjects[ajaxIndex].setVar('ID_Artikel',artikelId);
		ajaxObjects[ajaxIndex].setVar('ID_Produkt',produktId);
		ajaxObjects[ajaxIndex].setVar('ID_Produktgruppe',produktgruppeId);
		ajaxObjects[ajaxIndex].setVar('ID_Einsatzbereich',einsatzbereichId);
		ajaxObjects[ajaxIndex].onCompletion = function(){  	// Specify function that will be executed after file has been found
	
			var error = ajaxObjects[ajaxIndex].response;
			
			if(error != "errorKAT"){
				
				if(error != "errorNUM")
				{
					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' + artikelId);
				
					currentXPos = shoppingCart_getLeftPos(currentProductDiv);
					currentYPos = shoppingCart_getTopPos(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';
					flyingDiv.style.width = currentProductDiv.offsetWidth + 'px';
					flyToBasket(artikelId);
				}else{
					alert("Dieser Artikel ist bereits in Ihrer Favoritenliste!","Error!");
				}
				
			}else{
				alert("You can only compare articles from the same category!","Error!");
			}
		};
		ajaxObjects[ajaxIndex].runAJAX();
		
	}else{
			
		alert("Sie können nicht mehr als 5 Artikel in die Favoritenliste legen!","Error!");
			
	}
}

//Funktion für das fliegen des Favoriten-Sterns
function flyToBasket(artikelId)
{
	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("' + artikelId + '")',10); else showAjaxBasketContent(artikelId);	
}

//Nachdem der Favoriten-Stern sein Ziel erreicht hat, fragen wir nochmal alle gespeicherten Werte in der DB ab
function showAjaxBasketContent(artikelId)
{
	
	var ajaxIndex = ajaxObjects.length;
	ajaxObjects[ajaxIndex] = new sack();
	ajaxObjects[ajaxIndex].requestFile = url_addProductToBasket;	// Saving product in this file
	ajaxObjects[ajaxIndex].setVar('searchRecentSave',artikelId);
	ajaxObjects[ajaxIndex].onCompletion = function(){
		
		var itemBox = document.getElementById('shopping_cart_items');
		
		var count = ajaxObjects[ajaxIndex].response.split('|');
		var productItems = count[0].split('-');

		var tr = itemBox.insertRow(-1);
		tr.id = 'shopping_cart_items_product' + productItems[0];
		
		var td = tr.insertCell(-1);
		td.id = 'tdBgColor';
		td.innerHTML = productItems[1]; 	// Description
		
		var td = tr.insertCell(-1);
		td.id = 'tdBgColor';
		td.align = 'center';
		td.innerHTML = '<a href="javascript:removeProductFromBasket('+ productItems[0]+ ');"><img src="http://frontend.schwalbe_v10.pagecon.ath.cx/ger/de_media/allgemein/remove.gif"></a>';	

	}
	ajaxObjects[ajaxIndex].runAJAX();
	
}

//Funktion sucht nach gespeicherten Favoriten
function searchFavourites()
{
	var ajaxIndex = ajaxObjects.length;
	ajaxObjects[ajaxIndex] = new sack();
	ajaxObjects[ajaxIndex].requestFile = url_addProductToBasket;
	ajaxObjects[ajaxIndex].setVar('searchFavourites',"1");
	ajaxObjects[ajaxIndex].onCompletion = function(){
		showFavouritesAtStart(ajaxIndex);
	}
	ajaxObjects[ajaxIndex].runAJAX();
}

//Bekommt den RESULT Wert von searchFavourites() und trägt die Ergebnisse in die Favoriten ein
function showFavouritesAtStart(ajaxIndex)
{
	// Getting a reference to the shopping cart items table
	var itemBox = document.getElementById('shopping_cart_items');
	
	var count = ajaxObjects[ajaxIndex].response.split('|');
	
	var vergleichsLinks = new Array();
	
	for(var i=0;i<=count.length-2;i++){
		var productItems = count[i].split('-');

		var tr = itemBox.insertRow(-1);
		tr.id = 'shopping_cart_items_product' + productItems[0];
		
		var td = tr.insertCell(-1);
		td.id = 'tdBgColor';
		td.innerHTML = productItems[1]; 	// Description
		
		var td = tr.insertCell(-1);
		td.id = 'tdBgColor';
		td.align = 'center';
		td.innerHTML = '<a href="javascript:removeProductFromBasket('+ productItems[0]+ ');"><img src="http://frontend.schwalbe_v10.pagecon.ath.cx/ger/de_media/allgemein/remove.gif"></a>';	
		
	} 

}

function removeProductFromBasket(productId)
{
	var productRow = document.getElementById('shopping_cart_items_product' + productId);
	productRow.parentNode.removeChild(productRow);	
	ajaxRemoveProduct(productId);	
}

function ajaxRemoveProduct(artikelId)
{
	var ajaxIndex = ajaxObjects.length;
	ajaxObjects[ajaxIndex] = new sack();
	ajaxObjects[ajaxIndex].requestFile = url_removeProductFromBasket;	// Saving product in this file
	ajaxObjects[ajaxIndex].setVar('ID_Artikel',artikelId);
	ajaxObjects[ajaxIndex].runAJAX();		// Execute AJAX function		
}