var flyingSpeed = 20;
var url_addProductToBasket = shoppfad_js + 'ajax_wk_actions.php';
var url_mz_add = shoppfad_js + 'ajax_mz_actions.php';
var url_benach_add = shoppfad_js + 'ajax_benach_actions.php';
var txt_totalPrice = 'Summe: ';
var wk_leer_txt = 'Ihr Warenkorb ist leer.';
var wk_artikel_txt = 'Artikel';
var wk_preis_txt = 'Preis';
var wk_del_img = shoppfad_js + 'templates/xtc2_div/buttons/german/delete.gif';
var mz_vorne = '';
var mz_hinten = ' Produkte';
var mz_error_box = '<img src="' + shoppfad_js + 'templates/xtc2_div/img/ajax_error.gif">' + ' <strong>Bitte erst Anmelden!</strong>';
var loader_small = shoppfad_js + 'templates/xtc2_div/img/ajax-loader_small.gif';
var ok_gif = shoppfad_js + 'templates/xtc2_div/img/ajax_ok.gif';

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 ausgabeXPos = false;


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 shoppingCart_getRightPos(inputObj)
{
  var returnValue = inputObj.offsetLeft + inputObj.offsetWidth;
  while((inputObj = inputObj.offsetParent) != null){
  	if(inputObj.tagName!='HTML')returnValue += inputObj.offsetLeft;
  }
  return returnValue;
}

function updateTotalPrice()
{
	var itemBox = $('shopping_cart_items');
	var gesamtbetrag;
	// Calculating total price and showing it below the table with basket items
	var totalPrice = 0;
	if($('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[3].innerHTML);
			
		}		
		$('shopping_cart_totalprice').innerHTML = txt_totalPrice + totalPrice.toFixed(2) + ' EUR';
		gesamtbetrag = totalPrice;
	}
	if(gesamtbetrag == 0){ $('shopping_cart_totalprice').hide();}
	//Versandkostenfrei-Modul
	var versandfrei_betrag = $('sc_versandfrei').innerHTML;
	var differenz = '';
	differenz = versandfrei_betrag - gesamtbetrag;
	if(versandfrei_betrag > 0)
	{
		if(differenz > 0)
		{
			$('shopping_cart_versandfrei_frei').hide();$('shopping_cart_versandfrei').show();$('shopping_cart_versandfrei_diff').innerHTML = differenz.toFixed(2);
		}
		if(differenz <= 0) /* Blende aus und blende "Versandkostenfrei!" ein! */
		{
			$('shopping_cart_versandfrei_frei').show();
            $('shopping_cart_versandfrei').hide();
        }
		if(differenz == versandfrei_betrag)
		{
			$('shopping_cart_versandfrei_frei').hide();
            $('shopping_cart_versandfrei').hide();
        }
	} else {
			$('shopping_cart_versandfrei_frei').hide();
            $('shopping_cart_versandfrei').hide();
    }
}

function addToBasket(productId, infoseite)
{
	ajaxAddProduct(url_addProductToBasket, productId, infoseite);	
}


function showAjaxBasketContent_without_fly(alle_hinzu)
{
	// Getting a reference to the shopping cart items table
	var itemBox = $('shopping_cart_items');
	
	if(alle_hinzu.length > 2){
		//alert('machdies');
		while(itemBox.rows.length>0)
		{
			itemBox.deleteRow(0);
		}
		//alert('ende1');
		if(alle_hinzu == 'nix'){
			var tr = itemBox.insertRow(-1);
			tr.id = 'wk_leer_text';
			var td = tr.insertCell(-1);
			td.colSpan = 5;
			td.style.textAlign = 'center';
			td.innerHTML = wk_leer_txt;
			$('shopping_cart_totalprice').innerHTML = ' ';
		} else {
			//Make the Headline!
			var tr = itemBox.insertRow(-1);
			var th = tr.insertCell(-1);
			th.innerHTML = '<strong>'+wk_artikel_txt+'</strong>';
			th.colSpan = 3;
			var th = tr.insertCell(-1);
			th.style.textAlign = 'right';
			th.innerHTML = '<strong>'+wk_preis_txt+'</strong>';	
			var th = tr.insertCell(-1);
			var products = alle_hinzu.split('---');
			var i = 0;
			//alert('Fuege hinzu');
			while(i < products.length){
				var productItems = products[i].split('|||');
				var tr = itemBox.insertRow(-1);
				tr.id = 'shopping_cart_items_product' + productItems[0];
				
				var td = tr.insertCell(-1);
				td.innerHTML = productItems[3]; 	// Number of items
				
				var td = tr.insertCell(-1);
				td.innerHTML = 'x'; 	// Dat x
				
				var td = tr.insertCell(-1);
				td.innerHTML = productItems[1]; 	// Description
				
				var td = tr.insertCell(-1);
				td.style.textAlign = 'right';
				td.innerHTML = productItems[2]; 	// Price	
				
				var td = tr.insertCell(-1);
				var a = document.createElement('A');
				td.appendChild(a);
				td.id = productItems[0];
				a.onclick = function(){ removeProductFromBasket(this); };
				var img = document.createElement('IMG');
				img.src = wk_del_img;
				a.appendChild(img);
				
				i = i + 1;
				//alert('schleife_durch');
			} //ende schleife
		} //ende if
	} //ende if
	updateTotalPrice();
	setTimeout('set_style_height();', 1000);
	alle_hinzu = false;		
}

function showAjaxBasketContent(alle_hinzu)
{
	
	// Getting a reference to the shopping cart items table
	var itemBox = $('shopping_cart_items');
	
	if(itemBox.rows.length < 2){
		//Make the Headline!
		var tr = itemBox.insertRow(-1);
		var th = tr.insertCell(-1);
		th.innerHTML = '<strong>'+wk_artikel_txt +'</strong>';
		th.colSpan = 3;
		var th = tr.insertCell(-1);
		th.style.textAlign = 'right';
		th.innerHTML = '<strong>'+wk_preis_txt+'</strong>';	
		var th = tr.insertCell(-1);
	}
	var productItems = alle_hinzu.split('|||');
	
	if($('shopping_cart_items_product' + productItems[0])){
		var row = $('shopping_cart_items_product' + productItems[0]);
		//var items = row.cells[0].innerHTML /1;
		//items = items + 1;
		row.cells[0].innerHTML = productItems[3];
	}else{	// Product isn't allready in the basket - add a new row
		var tr = itemBox.insertRow(-1);
		tr.id = 'shopping_cart_items_product' + productItems[0];
		
		var td = tr.insertCell(-1);
		td.innerHTML = productItems[3]; 	// Number of items
		
		var td = tr.insertCell(-1);
		td.innerHTML = 'x'; 	// Dat x
		
		var td = tr.insertCell(-1);
		td.innerHTML = productItems[1]; 	// Description
		
		var td = tr.insertCell(-1);
		td.style.textAlign = 'right';
		td.innerHTML = productItems[2]; 	// Price	
		
		var td = tr.insertCell(-1);
		var a = document.createElement('A');
		td.appendChild(a);
		td.id = productItems[0];
		a.onclick = function(){ removeProductFromBasket(this); };
		var img = document.createElement('IMG');
		img.src = wk_del_img;
		a.appendChild(img);
	}
	updateTotalPrice();
	alle_hinzu = false;		
}

function removeProductFromBasket(obj)
{
	var productId = obj.parentNode.id;
	var productRow = $('shopping_cart_items_product' + productId);
	var productTable = $('shopping_cart_items');
	var itemBox = $('shopping_cart_items');
	var numberOfItemCell = productRow.cells[0];
	
	productRow.parentNode.removeChild(productRow);	
	
	if(productTable.rows.length < 2){
		//Zeige WK leer Text!
		var tr = itemBox.insertRow(-1);
		tr.id = 'wk_leer_text';
		var td = tr.insertCell(-1);
		td.colSpan = 5;
		//td.setAttribute('colspan',5);
		td.style.textAlign = 'center';
		td.innerHTML = wk_leer_txt;
		productTable.deleteRow(0);
		updateTotalPrice();
		$('shopping_cart_totalprice').innerHTML = ' ';
	} else {
		updateTotalPrice();
	}
	
	ajaxRemoveProduct(productId);	
}

function addToMerkzettel(productId)
{
	ajaxAddProductMZ(url_mz_add, productId);
}

function addToBenach(productId)
{
	ajaxAddProductBenach(url_benach_add, productId);
}

function Update_MZ(anzahl, productId){
	//Menue verändern
	if($('mz_text')){
		var divmz = $('mz_text');
		var divnotforgot = $('box_not_forgot');
		var divnotforgot_guest = $('box_not_forgot_logout');
		//Angemeldet???
		if(anzahl == 'guest'){
			divnotforgot.hide();
            divnotforgot_guest.show();
        } else {
			divnotforgot.show();
            divnotforgot_guest.hide();
            divmz.innerHTML = mz_vorne+'<strong>' + anzahl + '</strong>'+mz_hinten;
		}
	}	
	if(productId > 0){
		loading = $('mz_loading');
		loading.parentNode.removeChild(loading);
		
		var container = $('container');
		currentProductDiv = $('slidingProductMZ' + productId);
		
		currentXPos = shoppingCart_getLeftPos(currentProductDiv);
		currentYPos = shoppingCart_getTopPos(currentProductDiv);
		
		var MZContent = false;
		MZContent = document.createElement('DIV');
		MZContent.id = 'MZ_add' + productId;
		if(anzahl != 'guest'){
			var img = document.createElement('IMG');
			img.src = ok_gif;
			MZContent.appendChild(img);
			MZContent.style.left = (currentXPos) + 'px';
			MZContent.style.top = (currentYPos - 20) + 'px';
		} else {
			MZContent.className = 'ajax_popup';
			MZContent.innerHTML = mz_error_box;
			MZContent.style.border = '1px solid #FF0000';
			MZContent.style.left = (currentXPos - 100) + 'px';
			MZContent.style.top = (currentYPos - 20) + 'px';
		}
		
		MZContent.style.position = 'absolute';
		MZContent.style.zIndex = '5000';
		MZContent.style.display='block';
		document.body.appendChild(MZContent);
		setTimeout('set_style_height();', 1000);
		setTimeout('MZ_del_add("MZ_add' + productId + '")',3000);
	}
	$('loadBar_mz').hide();
}

function Update_Benach(anzahl, productId){
	//Menue verändern
	var divbenach = $('benach_text');
	var divnotforgot = $('box_not_forgot');
	var divnotforgot_guest = $('box_not_forgot_logout');
	
	if(anzahl == 'guest'){
		divnotforgot.hide();
        divnotforgot_guest.show();
    } else {
		divnotforgot.show();
        divnotforgot_guest.hide();
        divbenach.innerHTML = mz_vorne+'<strong>' + anzahl + '</strong>'+mz_hinten;
	}

	if(productId > 0){
		loading = $('benach_loading');
		loading.parentNode.removeChild(loading);
		
		var container = $('container');
		currentProductDiv = $('slidingProductBenach' + productId);
		
		currentXPos = shoppingCart_getLeftPos(currentProductDiv);
		currentYPos = shoppingCart_getTopPos(currentProductDiv);
		
		var MZContent = false;
		MZContent = document.createElement('DIV');
		MZContent.id = 'Benach_add' + productId;
		if(anzahl != 'guest'){
			var img = document.createElement('IMG');
			img.src = ok_gif;
			MZContent.appendChild(img);
			MZContent.style.left = (currentXPos) + 'px';
			MZContent.style.top = (currentYPos - 30) + 'px';
		} else {
			//MZContent.style.padding = '3px';
			MZContent.className = 'ajax_popup';
			MZContent.innerHTML = mz_error_box;
			MZContent.style.border = '1px solid #FF0000';
			MZContent.style.left = (currentXPos - 20) + 'px';
			MZContent.style.top = (currentYPos - 30) + 'px';
		}
		MZContent.style.position = 'absolute';
		MZContent.style.zIndex = '5000';
		MZContent.style.display = 'block';
		container.appendChild(MZContent);
		setTimeout('set_style_height();', 1000);
		setTimeout('MZ_del_add("Benach_add' + productId + '")',3000);
	}
}

function MZ_del_add(id){
	var div = $(id);
	div.parentNode.removeChild(div);
}

function Loading_MZ(anzahl){
	//Zeige Ladebalken!
	var loadBar_mz = $('loadBar_mz');
	loadBar_mz.show();
	ajaxGetProductMZ(url_mz_add);
}

function Loading_Benach(anzahl){
	ajaxGetProductBenach(url_benach_add, 1);
}


function ajaxRemoveProduct(productId)
{
	new Ajax.Request(url_addProductToBasket, {
	  method: 'post',
	  parameters: {'action': 'remove','productId': productId}
	});			
}

function ajaxGetProductMZ(url)
{
	new Ajax.Request(url, {
	  method: 'post',
	  parameters: {'action': 'get_anzahl'},
	  onSuccess: function(transport) {
	     Update_MZ(transport.responseText, '');
	  }
	});		
}

function ajaxGetProductBenach(url, login)
{
	new Ajax.Request(url, {
	  method: 'post',
	  parameters: {'action': 'get_anzahl'},
	  onSuccess: function(transport) {
	     Update_Benach(transport.responseText, '');
	  }
	});		
}

function ajaxAddProductMZ(url, productId)
{
	//Ladegif an PositioN!
	var container = $('container');
	currentProductDiv = $('slidingProductMZ' + productId);
	currentXPos = shoppingCart_getLeftPos(currentProductDiv);
	currentYPos = shoppingCart_getTopPos(currentProductDiv);
	var MZContent = false;
	MZContent = document.createElement('DIV');
	MZContent.id = 'mz_loading';
	var img = document.createElement('IMG');
	img.src = loader_small;
	MZContent.appendChild(img);
	MZContent.className = 'ajax_popup';
	MZContent.style.left = (currentXPos) + 'px';
	MZContent.style.top = (currentYPos - 20) + 'px';
	MZContent.style.position = 'absolute';
	MZContent.style.zIndex = '5000';
	MZContent.style.display='block';
	document.body.appendChild(MZContent);
	new Ajax.Request(url, {
	  method: 'post',
	  parameters: {'action': 'add','productId': productId},
	  onSuccess: function(transport) {
	     Update_MZ(transport.responseText, productId);
	  }
	});		
}

function ajaxAddProductBenach(url, productId)
{
	//Ladegif an PositioN!
	var container = $('container');
	currentProductDiv = $('slidingProductBenach' + productId);
	
	currentXPos = shoppingCart_getLeftPos(currentProductDiv);
	currentYPos = shoppingCart_getTopPos(currentProductDiv);
	var MZContent = false;
	MZContent = document.createElement('DIV');
	MZContent.id = 'benach_loading';
	var img = document.createElement('IMG');
	img.src = loader_small;
	img.alt = 'Loading';
	MZContent.appendChild(img);
	MZContent.className = 'ajax_popup';
	MZContent.style.left = (currentXPos) + 'px';
	MZContent.style.top = (currentYPos - 30) + 'px';
	MZContent.style.position = 'absolute';
	MZContent.style.zIndex = '5000';
	MZContent.style.display = 'block';
	container.appendChild(MZContent);
	new Ajax.Request(url, {
	  method: 'post',
	  parameters: {'action': 'add','productId': productId},
	  onSuccess: function(transport) {
	     Update_Benach(transport.responseText, productId);
	  }
	});		
}



function ajaxAddProduct(url, productId, infoseite)
{
	if(!infoseite)
	{
		if($('shopping_cart_items_product' + productId)){
			var row = $('shopping_cart_items_product' + productId);
			var items = row.cells[0].innerHTML /1;
			items = items + 1;
		}
	} else {
		if($('shopping_cart_items_product' + productId)){
			var row = $('shopping_cart_items_product' + productId);
			var items = row.cells[0].innerHTML /1;
			items = items + ($('QTY_'+ productId).value /1);
		} else {
			var items = $('QTY_'+ productId).value;
		}
	}
	
		
	if($('wk_leer_text')){
		var row = $('wk_leer_text');
		row.parentNode.removeChild(row);	
	}

	//UMBAU AUF PROTOTYPE!!!
	new Ajax.Request(url, {
	  method: 'post',
	  parameters: {'action': 'add','productId': productId, 'qty': items},
	  onSuccess: function(transport) {
	     showAjaxBasketContent(transport.responseText);
	  }
	});		
	

	hide_wk_button(productId);
	//Show Lightbox
	//myLightWindow.activateWindow({href: 'ajax_wk_add.php?action=add&productId='+productId, title: 'Warenkorb aktualisiert', type: 'page', width:600, height:180});
}


function hide_wk_button(productId){
	currentProductDiv = $('slidingProductBenach' + productId);

	new Effect.Opacity('buybutton_' + productId, { from: 1.0, to: 0, duration: 0.2, child: true });
		
	setTimeout('show_wk_load('+productId+')', 300);
}

function show_wk_load(productId){	
	var container = $('container');
	currentProductDiv = $('slidingProductBenach' + productId);

	var MZContent = false;
	MZContent = document.createElement('DIV');
	MZContent.id = 'WK_add' + productId;
	MZContent.style.marginTop = '-2px';
    MZContent.style.position = 'absolute';

	var img = document.createElement('IMG');
	img.src = loader_small;
	MZContent.appendChild(img);
	MZContent.style.width='130px';
	
	currentProductDiv.firstChild.display = 'none';
	currentProductDiv.appendChild(MZContent);
	
	setTimeout('show_wk_ok('+productId+')', 600);
}

function show_wk_ok(productId){
	MZ_del_add('WK_add' + productId);
	
	var container = $('container');
	currentProductDiv = $('slidingProductBenach' + productId);
	
	var MZContent = false;
	MZContent = document.createElement('DIV');
	MZContent.id = 'WK_add' + productId;
	MZContent.style.marginTop = '-2px';
    MZContent.style.position = 'absolute';
	
	var img = document.createElement('IMG');
	img.src = ok_gif;
	MZContent.appendChild(img);
	MZContent.style.width='130px';
	
	currentProductDiv.appendChild(MZContent);
	setTimeout('show_wk_button('+productId+')', 1500);
}

function show_wk_button(productId){
	
	currentProductDiv = $('slidingProductBenach' + productId);	
	MZ_del_add('WK_add' + productId);
	new Effect.Opacity('buybutton_' + productId, { from: 0, to: 1, duration: 1, child: true });
}


function ajaxGetProducts()
{
	var loadBar_wk = $('loadBar_wk');
	var itemlist = $('shopping_cart_items');
	var summe = $('shopping_cart_totalprice');
	
	new Ajax.Request(url_addProductToBasket, {
	  method: 'post',
	  parameters: {'action': 'get_all'},
	  onLoading : function(transport) {
		loadBar_wk.show();
        itemlist.hide();
        summe.hide();
      },
	  onSuccess: function(transport) {
		 loadBar_wk.hide();
         itemlist.show();
         summe.show();
         showAjaxBasketContent_without_fly(transport.responseText);
	  }
	});		
}
