
if (!YAHOO.hmmh) YAHOO.namespace("hmmh.removeFromShoppingCart");
YAHOO.hmmh.removeFromShoppingCart = function() {
	
	listeningElements = new Array();
	
	return { 
		init: function(ev, element) {
			if(!YAHOO.hmmh.removeFromShoppingCart.listeningElements)
				YAHOO.hmmh.removeFromShoppingCart.listeningElements = new Array();
			
			var buttons = YAHOO.util.Selector.query('#accordion dd li.dragItem .removeFromWako, .merkzettel .removeFromWako');
			// do not double Event Listeners
			$E.removeListener(buttons,'click',YAHOO.hmmh.removeFromShoppingCart.remove);
			$E.on(buttons, 'click', YAHOO.hmmh.removeFromShoppingCart.remove);
		},
		/**
		 * Remove Elements from cart or notepad
		 */
		remove: function (ev, element) {

			if (ev) $E.stopEvent(ev);
		
			if(!element) var element = this;
			
			if(YAHOO.hmmh.removeFromShoppingCart.listeningElements.indexOf(element) != -1) return false;

			YAHOO.hmmh.removeFromShoppingCart.listeningElements.push(element);
			if(findClass(element, 'merkzettel')) {
				var nameMerkliste = YAHOO.util.Selector.query(".merkzettelTitel strong b")[0].innerHTML.trim(); 
				//if(name != null) name = name.trim(); // should not be ness.
			} else {
				var nameMerkliste = YAHOO.util.Selector.query("#accordion dt.active span.editable")[0].innerHTML.trim();
				//if(name != null) name = name.trim(); // should not be ness.
			}
			YAHOO.hmmh.Accordion.findInfo(element)
			var pk = YAHOO.hmmh.Accordion.findInfo(element).pk; //id of the li-element to remove... (=> cart entry pk!)
			var removeEntry =$C.asyncRequest("POST", "/remove_entry.htm", {success: function() { 
					if(YAHOO.util.Selector.query('.merkzettelTitel').length) {
						YAHOO.hmmh.extendedNotepad.transferWakoItems();
					}
				}}, "name=" + encodeURIComponent(nameMerkliste) + "&pk=" + encodeURIComponent(pk)  )
		
			var block = findClass(element, 'dragItem');
			if(!block || !block.parentNode) return false;
			
			var img = YAHOO.util.Selector.query("img.thumb", findClass(element, 'dragItem'), true)[0];
			block.parentNode.removeChild(block);
			
			YAHOO.hmmh.Accordion.updateBackground();
			YAHOO.hmmh.Marker.updateItem(img);
			YAHOO.hmmh.Marker.updateClipboards();
		}
	};
}();


if (!YAHOO.hmmh) YAHOO.namespace("hmmh.removeFromCart");
YAHOO.hmmh.removeFromCart = function() {
	return {
		createEvents : function() {
			var buttons = YAHOO.util.Selector.query("#accordion #slot-0 .rollbar .papierkorb, #maxWarenkorb .removeFromExtendedCart");
			
			$E.removeListener(buttons, 'click', YAHOO.hmmh.removeFromCart.remove);
			$E.on(buttons, 'click', YAHOO.hmmh.removeFromCart.remove);
		},
		
		remove : function (ev) {
			var block = findClass(this, 'productBlock');

			if(block.className.match(/pk([0-9]+)/)) {
				pk = block.className.match(/pk([0-9]+)/)[1];
			} else {
				pk = block.id;
			}
			
			var url = document.URL;
				
			var element = findClass(YAHOO.util.Event.getTarget(ev), "productShortText");
			
			element = YAHOO.util.Selector.query(".thumb", element);
			var img = element[0];
			
			var deleteEntry = $C.asyncRequest('POST', '/remove_entry.htm', {
				success: function(o) {
					if(!YAHOO.util.Selector.query('#maxWarenkorb').length) {
						if(block && block.parentNode) {
							block.parentNode.removeChild(block);
						}
						
						YAHOO.hmmh.Accordion.updateCart(o);
						YAHOO.hmmh.Marker.updateClipboards();
						if (img) {
							YAHOO.hmmh.Marker.updateItem(img, false);
						}
						if(YAHOO.util.Selector.query('.merkzettelTitel').length) {
							YAHOO.hmmh.extendedNotepad.transferWakoItems();
						}
					} else {
						// Im grossen WK machen wir 'nen reload
						window.location.href = url;
					}
				}}, 'pk=' + pk);
			
		}
	}
}();



if (!YAHOO.hmmh) YAHOO.namespace("hmmh.updateUnits");
YAHOO.hmmh.updateUnits = function() {
	return {
		createEvents : function() {
			var selects = YAHOO.util.Selector.query("#accordion #slot-0 .rollbar .unitPK, #maxWarenkorb .unitPK");
			
			$E.on(selects, 'change', YAHOO.hmmh.updateUnits.update);
		},
		
		update : function (ev, el) {
			var block = findClass(this, 'productBlock');
			
			if(block.className.match(/pk([0-9]+)/)) {
				pk = block.className.match(/pk([0-9]+)/)[1];
			} else {
				pk = block.id;
			}
			
			var deleteEntry = $C.asyncRequest('POST', 'edit_entry.htm',  { success : function(o) {
				if(!YAHOO.util.Selector.query('#maxWarenkorb').length) {
					window.setTimeout(function() {YAHOO.hmmh.Accordion.updateCart(o)}, 200)
				} else {
					window.location.reload()
					//window.location = "order_overview.htm";
				}
					
				} }, 'entryPK=' + pk + '&unitPK=' + this.value);
		}
	}
}();

// IE
if(YAHOO.env.ua.ie >0) {
	$E.onContentReady("accordion", YAHOO.hmmh.removeFromShoppingCart.init);
	$E.onContentReady("accordion",YAHOO.hmmh.removeFromCart.createEvents, YAHOO.hmmh.removeFromCart.createEvents);
	$E.onContentReady("accordion", YAHOO.hmmh.updateUnits.createEvents, YAHOO.hmmh.updateUnits.createEvents); 
}
else {
	$E.on(window, 'load', YAHOO.hmmh.removeFromShoppingCart.init);
	$E.on(window, 'load', YAHOO.hmmh.removeFromCart.createEvents, YAHOO.hmmh.removeFromCart.createEvents);
	$E.on(window, 'load', YAHOO.hmmh.updateUnits.createEvents, YAHOO.hmmh.updateUnits.createEvents); 
}

