$(document).ready(initCancelledBasketBasicHandling);
	
function initCancelledBasketBasicHandling() {
	// init swf object to <div> element with id 'cancelled-basket-swf-object' (Template: metaheader.isml)
	swfobject.embedSWF(
		tWebRoot + "/flash/CancelledBasket.swf", "cancelled-basket-swf-object", "1", "1", "9.0.0", false,
		{}, {}, {}, 
		function(pCallback) {
			if (pCallback.success) {
				var lBrowserURL = document.location.href;
				if ((-1 == lBrowserURL.indexOf("From=Basket")) && (-1 == lBrowserURL.indexOf("SourceOrderId=")) && (-1 == lBrowserURL.indexOf("CreditCard=true"))) {
					if (0 == tBasketProductLineItemsCount) { // inside mini_basket.isml
						getCancelledBasketByExternalInterface();
					}
				} else if (lBrowserURL.indexOf("SourceOrderId=") != -1) {
					deleteOrderedPLIsFromCancelledBasket();
				} else if (lBrowserURL.indexOf("From=Basket" != -1)) {
					setCancelledBasketByExternalInterface();
				}
			}
		}
	);
}

function getCancelledBasketByExternalInterface() {
	$('#cancelled-basket-swf-object')
		.externalInterface({
	        method: 'getCancelledBasket',
	        args: [tSessionID], // defined inside mini_basket.isml
	        success: function(pProductLineItemArray) {
//				alert("success: " + pProductLineItemArray);
	            if (pProductLineItemArray != null && pProductLineItemArray.length > 0) {
	            	var lPliParams  = "&pliCount=" + pProductLineItemArray.length;
	            	for (var i in pProductLineItemArray) {
	            		var lTmpPli = pProductLineItemArray[i];
	            		lPliParams += "&pli_" + i + "_productRef=" + escape(lTmpPli.productRef);
	            		lPliParams += "&pli_" + i + "_imageUrl=" + escape(lTmpPli.imageUrl);
	            		lPliParams += "&pli_" + i + "_name=" + escape(lTmpPli.name);
	            		lPliParams += "&pli_" + i + "_articleNo=" + escape(lTmpPli.articleNo);
	            		lPliParams += "&pli_" + i + "_color=" + escape(lTmpPli.color);
	            		lPliParams += "&pli_" + i + "_dim3=" + escape(lTmpPli.dim3);
	            		lPliParams += "&pli_" + i + "_size=" + escape(lTmpPli.size);
	            		lPliParams += "&pli_" + i + "_quantity=" + escape(lTmpPli.quantity);
	            		lPliParams += "&pli_" + i + "_totalPrice=" + escape(lTmpPli.totalPrice);
					}
	            	tCancelledBasketLayerURL += lPliParams;
	            	tb_show(null, tCancelledBasketLayerURL, 'false'); // function 'tb_show' inside thickbox.js, 'tCancelledBasketLayerURL' inside metaheader.isml
	            }
	        },
	        error: function(pError) {
//	        	alert("error: " + pError);
	        }
	    });
}

function setCancelledBasketByExternalInterface() {
	if (typeof(tProductLineItemArray) != "undefined" && tProductLineItemArray.length > 0) { // 'tProductLineItemArray' inside basket_subs/cancelled_basket_js.isml
		$('#cancelled-basket-swf-object')
			.externalInterface({
		        method: 'setCancelledBasket',
		        args: [tSessionID, tProductLineItemArray], // 'tSessionID' inside mini_basket.isml (for basket inside basket.isml), 'tProductLineItemArray' inside basket_subs/cancelled_basket_js.isml
		        success: function(pData) {
//					alert(pData);
		        },
		        error: function(pError) {
//		        	alert(pError);
		        }
		    });
	}
}

function updatePliCount() {
	$('#pliCount').text($('.pli-info').length);
}

function initCancelledBasketLayerHandling() {
	if (typeof(tCancelledBasketError) != "undefined" && "true" == tCancelledBasketError) {
		tb_remove();
	} else {
		$('div.delete-pli').click(function() {
			var l$Pli = $(this);
	        $('#cancelled-basket-swf-object')
	        	.externalInterface({
	                method: 'deletePliFromCancelledBasket',
	                args: [l$Pli.attr('id')],
	                success: function (pData) {
//	        			alert('success! flash returned: ' + pData);
	        			var l$PliTableTR = l$Pli.parents('tr');
	        			l$PliTableTR.prev().remove(); // remove 'tr' element represents the headline spacer of this pli column
	        			l$PliTableTR.prev().remove(); // remove 'tr' element represents this pli information
	        			l$PliTableTR.next().remove(); // remove 'tr' element represents the bottom spacer of this pli column
	        			l$PliTableTR.next().remove(); // remove 'tr' element represents the bottom line of this pli column
	        			l$PliTableTR.remove();
	        			updatePliCount();
	        			if (0 == $('#pli-table-container tr').length) { // if there are not product line items any more
	        				tb_remove();
	        			}
	                },
	                error: function(pError) {
//	                	alert('there was an error: ' + pError);
	                }
	        	});
	        
	        setLandmark("page","&pc=WKAbbruch_delete_einzeln");
		});
		
		$('div.accept-pli').click(function() {
			var l$Pli = $(this);
			var lDivIdSplit = l$Pli.attr('id').split("||");
			if (lDivIdSplit.length >= 2) {
				$('td.pli-events div.accept-pli').hide();
				$('td.pli-events div.delete-pli').hide();
				var l$AjaxLoader = l$Pli.prev('div.ajax-loader');
				l$AjaxLoader.show();
				$('#header-basket-mini-view').html($('#header-basket-mini-view-loader-wrapper').html()); // show ajax loader
				// update basket with selected article style/variation
				var lAddToBasketAjaxURL = tAddSingleToBasketURL + "?ProductRefID=" + lDivIdSplit[0] + "&Quantity=" + lDivIdSplit[1]; // 'tAddSingleToBasketURL' inside cancelled_basket_layer.isml
				$.get(lAddToBasketAjaxURL, function() {
					// when basket update complete, refresh the header basket mini view
					$.get(tHeaderBasketMiniViewURL, function(pAjaxResponseData) { // 'tHeaderBasketMiniViewURL' inside cancelled_basket_layer.isml
						$('#header-basket-mini-view').html(pAjaxResponseData);
						// when header basket mini view is updated, update cancelled basket layer DOM
						l$Pli.prev().remove(); // remove 'div' element with ajax loader
						l$Pli.next().remove(); // remove 'div' element with delete button
						l$Pli.next().show(); // show message that this pli is in basket
						l$Pli.parents('tr').prev().prev('tr.none').remove(); // remove 'tr' element represents this pli information
						l$Pli.remove(); // remove self 'div' element
						$('td.pli-events div.accept-pli').show();
						$('td.pli-events div.delete-pli').show();
						updatePliCount();
					});
				});
			}
			
			setLandmark("page","&pc=WKAbbruch_WK_einzeln");
		});
		
		$('#delete-all').click(function() {
	        $('#cancelled-basket-swf-object')
	    		.externalInterface({
		            method: 'killCancelledBasket',
		            success: function (pData) {
//		                alert('success! flash returned: ' + pData);
		    			tb_remove();
		            },
		            error: function(pError) {
//		                alert('there was an error: ' + pError);
		            }
		    	});
	        
	        setLandmark("page","&pc=WKAbbruch_delete_all");
		});
		
		$('#accept-all').click(function() {
			tb_remove();
			var lPliCount = $('#pliCount').html();
			if (lPliCount > 0) {
				var lAddToBasketURLParams = "&li_count=" + lPliCount;
				$('.pli-info').each(function() {
					var l$Pli = $(this);
					lAddToBasketURLParams += "&" + $(this).attr('id');
				});
				var lAddToBasketAjaxURL = tAddMultiToBasketURL + lAddToBasketURLParams; // 'tAddMultiToBasketURL' inside cancelled_basket_layer.isml
				$('#header-basket-mini-view').html($('#header-basket-mini-view-loader-wrapper').html()); // show ajax loader
				$.get(lAddToBasketAjaxURL, function() {
					$.get(tHeaderBasketMiniViewURL, function(pAjaxResponseData) { // 'tHeaderBasketMiniViewURL' inside cancelled_basket_layer.isml
						$('#header-basket-mini-view').html(pAjaxResponseData);
					});
				});
			}
			
			setLandmark("page","&pc=WKAbbruch_WK_all");
		});
	}
}

function deleteOrderedPLIsFromCancelledBasket() {
	if (typeof(tOrderedPLIProductRefArray) != "undefined" && tOrderedPLIProductRefArray.length > 0) { // inside basket_placedorder.isml
		$('#cancelled-basket-swf-object')
			.externalInterface({
		        method: 'deleteOrderedPLIsFromCancelledBasket',
		        args: [tOrderedPLIProductRefArray], // inside basket_placedorder.isml
		        success: function(pData) {
	//				alert("success: " + pData);
		        },
		        error: function(pError) {
	//	        	alert("error: " + pError);
		        }
		    });
	}
}

