var originalQuantities = [];
var originalCodes = [];
var originalPrices = [];
var originalCatNames1 = [];
var originalCatNames2 = [];
var originalCatNames3 = [];
var originalCatNames4 = [];
var originalNames = [];

var originalQuantitiesMini = [];
var originalCodesMini = [];
var originalPricesMini = [];
var originalCatNames1Mini = [];
var originalCatNames2Mini = [];
var originalCatNames3Mini = [];
var originalCatNames4Mini = [];
var originalNamesMini = [];

function initialize(codes, quantities, prices, categoryNamesLevel1, categoryNamesLevel2, categoryNamesLevel3, categoryNamesLevel4,	articleNames, miniWishlist) {
	if (miniWishlist == "true") {
		originalPricesMini = prices.split(';');
		originalCatNames1Mini = categoryNamesLevel1.split(';');
		originalCatNames2Mini = categoryNamesLevel2.split(';');
		originalCatNames3Mini = categoryNamesLevel3.split(';');
		originalCatNames4Mini = categoryNamesLevel4.split(';');
		originalNamesMini = articleNames.split(';');
	} else {
		originalPrices = prices.split(';');
		originalCatNames1 = categoryNamesLevel1.split(';');
		originalCatNames2 = categoryNamesLevel2.split(';');
		originalCatNames3 = categoryNamesLevel3.split(';');
		originalCatNames4 = categoryNamesLevel4.split(';');
		originalNames = articleNames.split(';');
	}
	originalQuantities = [];
	jQuery(".quantityInput").each(function(intIndex){
		originalQuantities[intIndex] = jQuery(this).val(); 
	});
	originalQuantitiesMini = [];
	jQuery(".quantityInputMini").each(function(intIndex){
		originalQuantitiesMini[intIndex] = jQuery(this).val(); 
	});
	originalCodes = [];
	jQuery(".articleCode").each(function(intIndex){
		originalCodes[intIndex] = jQuery(this).text(); 
	});
	originalCodesMini = [];
	jQuery(".articleCodeMini").each(function(intIndex){
		originalCodesMini[intIndex] = jQuery(this).text(); 
	});
}

function getIndex(code, list) {
	var codes = list.split(';');
	var result = -1;
	for (var i = 0; i < codes.length; i++) {
		if (code == codes[i]) {
			return i;
		}
	}
	return result;
}
function getElementAt(list, index) {
	var elements = list.split(';');
	return elements[index];
}

function findDeleted(newArticleCodes, miniWishlist) {
	var deleted = [];
	var cnt = 0;
	if (miniWishlist == "true") {
		originalCodesTemp = originalCodesMini;
	} else {
		originalCodesTemp = originalCodes;
	}
	for (var i = 0; i < originalCodesTemp.length; i++) {
		var found = false;
		for (var j = 0; j < newArticleCodes.length; j++) {
			if (originalCodesTemp[i] == newArticleCodes[j]) {
				found = true;
				break;
			}
		}
		if (!found) {
			deleted[cnt++] = i;
		}
	}
	return deleted;
}
function trackQuantities(codes, quantities, prices, categoryNamesLevel1, categoryNamesLevel2, categoryNamesLevel3, categoryNamesLevel4, articleNames, miniWishlist) {
	var sendingCodes = "";
	var sendingQuantities = "";
	var sendingPrices = "";
	var sendingCategoryNamesLevel1 = "";
	var sendingCategoryNamesLevel2 = "";
	var sendingCategoryNamesLevel3 = "";
	var sendingCategoryNamesLevel4 = "";
	var sendingArticleNames = "";
	var changed = false;
	var codeList = [];
	var newQuantitiesList = [];
	if (miniWishlist == "true") {
		jQuery(".quantityInputMini").each(function(intIndex){
			newQuantitiesList[intIndex] = jQuery(this).val(); 
		});
		jQuery(".articleCodeMini").each(function(intIndex){
			codeList[intIndex] = jQuery(this).text(); 
		});
		originalCodesTemp = originalCodesMini;
		originalQuantitiesTemp = originalQuantitiesMini;
	} else {
		jQuery(".quantityInput").each(function(intIndex){
			newQuantitiesList[intIndex] = jQuery(this).val(); 
		});
		jQuery(".articleCode").each(function(intIndex){
			codeList[intIndex] = jQuery(this).text(); 
		});
		originalCodesTemp = originalCodes;
		originalQuantitiesTemp = originalQuantities;
	}
	for (var i = 0; i < originalCodesTemp.length; i++) {
		for (var j = 0; j < codeList.length; j++) {
			if (originalCodesTemp[i] == codeList[j]) {
				if (originalQuantitiesTemp[i] != newQuantitiesList[j]) {
					changed = true;
					var index = getIndex(codeList[j], codes);
					if (sendingCodes != "") {
						sendingCodes += ";";
						sendingQuantities += ";";
						sendingPrices += ";";
						sendingCategoryNamesLevel1 += categoryNamesLevel1 == "" ? "" : ";";
						sendingCategoryNamesLevel2 += categoryNamesLevel2 == "" ? "" : ";";
						sendingCategoryNamesLevel3 += categoryNamesLevel3 == "" ? "" : ";";
						sendingCategoryNamesLevel4 += categoryNamesLevel4 == "" ? "" : ";";
						sendingArticleNames += ";";
					}
					sendingCodes += codeList[j];
					sendingQuantities += newQuantitiesList[j];
					sendingPrices += getElementAt(prices, index);
					sendingCategoryNamesLevel1 += categoryNamesLevel1 == "" ? "" : getElementAt(categoryNamesLevel1, index);
					sendingCategoryNamesLevel2 += categoryNamesLevel2 == "" ? "" : getElementAt(categoryNamesLevel2, index);
					sendingCategoryNamesLevel3 += categoryNamesLevel3 == "" ? "" : getElementAt(categoryNamesLevel3, index);
					sendingCategoryNamesLevel4 += categoryNamesLevel4 == "" ? "" : getElementAt(categoryNamesLevel4, index);
					sendingArticleNames += getElementAt(articleNames, index);
				}
			}
		}
	}
	var deleted = findDeleted(codeList, miniWishlist);
	if (deleted.length > 0) {
		if (sendingCodes != "") {
			sendingCodes += ";";
			sendingQuantities += ";";
			sendingPrices += ";";
			if (miniWishlist == "true") {
				sendingCategoryNamesLevel1 += originalCatNames1Mini == "" ? "" : ";";
				sendingCategoryNamesLevel2 += originalCatNames2Mini == "" ? "" : ";";
				sendingCategoryNamesLevel3 += originalCatNames3Mini == "" ? "" : ";";
				sendingCategoryNamesLevel4 += originalCatNames4Mini == "" ? "" : ";";
			} else {
				sendingCategoryNamesLevel1 += originalCatNames1 == "" ? "" : ";";
				sendingCategoryNamesLevel2 += originalCatNames2 == "" ? "" : ";";
				sendingCategoryNamesLevel3 += originalCatNames3 == "" ? "" : ";";
				sendingCategoryNamesLevel4 += originalCatNames4 == "" ? "" : ";";
			}
			sendingArticleNames += ";";
		}
		for (var i = 0; i < deleted.length; i++) {
			if (miniWishlist == "true") {
				sendingCodes += originalCodesMini[deleted[i]];
				sendingQuantities += "0";
				sendingPrices += originalPricesMini[deleted[i]];
				sendingCategoryNamesLevel1 += originalCatNames1Mini == "" ? "" : originalCatNames1Mini[deleted[i]];
				sendingCategoryNamesLevel2 += originalCatNames2Mini == "" ? "" : originalCatNames2Mini[deleted[i]];
				sendingCategoryNamesLevel3 += originalCatNames3Mini == "" ? "" : originalCatNames3Mini[deleted[i]];
				sendingCategoryNamesLevel4 += originalCatNames4Mini == "" ? "" : originalCatNames4Mini[deleted[i]];
				sendingArticleNames += originalNamesMini[deleted[i]];
			} else {
				sendingCodes += originalCodes[deleted[i]];
				sendingQuantities += "0";
				sendingPrices += originalPrices[deleted[i]];
				sendingCategoryNamesLevel1 += originalCatNames1 == "" ? "" : originalCatNames1[deleted[i]];
				sendingCategoryNamesLevel2 += originalCatNames2 == "" ? "" : originalCatNames2[deleted[i]];
				sendingCategoryNamesLevel3 += originalCatNames3 == "" ? "" : originalCatNames3[deleted[i]];
				sendingCategoryNamesLevel4 += originalCatNames4 == "" ? "" : originalCatNames4[deleted[i]];
				sendingArticleNames += originalNames[deleted[i]];
			}
			if (i < deleted.length - 1) {
				sendingCodes += ";"
				sendingQuantities += ";"
				sendingPrices += ";"
				if (miniWishlist == "true") {
					sendingCategoryNamesLevel1 += originalCatNames1Mini == "" ? "" : ";";
					sendingCategoryNamesLevel2 += originalCatNames2Mini == "" ? "" : ";";
					sendingCategoryNamesLevel3 += originalCatNames3Mini == "" ? "" : ";";
					sendingCategoryNamesLevel4 += originalCatNames4Mini == "" ? "" : ";";
				} else {
					sendingCategoryNamesLevel1 += originalCatNames1 == "" ? "" : ";";
					sendingCategoryNamesLevel2 += originalCatNames2 == "" ? "" : ";";
					sendingCategoryNamesLevel3 += originalCatNames3 == "" ? "" : ";";
					sendingCategoryNamesLevel4 += originalCatNames4 == "" ? "" : ";";
				}
				sendingArticleNames += ";"
			}
		}
	}
	if (changed || deleted.length > 0) {
		dcsCleanTrack('DCSext.event_cat', 'Listen', 
			'DCSext.event_loc', 'Merkliste', 
			'DCSext.event_act', 'change',
			'WT.pn_sku', sendingCodes,
			'WT.tx_u', sendingQuantities,
			'DCSext.pn_price', sendingPrices,
			'WT.pn_gr', sendingCategoryNamesLevel1,
			'WT.pn_fa', sendingCategoryNamesLevel2,
			'WT.pn_c', sendingCategoryNamesLevel3,
			'WT.pn_sc', sendingCategoryNamesLevel4,
			'WT.pn', sendingArticleNames,
			'WT.dl', '99');
		initialize(codes, quantities, prices, categoryNamesLevel1, categoryNamesLevel2, categoryNamesLevel3, categoryNamesLevel4, articleNames, miniWishlist);
	}
}

jQuery(document).ready(function() {
	backButton = jQuery("a[href*=history.back()]");
	if (backButton) {
		onclick = "dcsMultiTrack('DCSext.hb_btn','back','WT.dl','99');";
		backButton.attr("onclick", onclick);
	}
});

