/**
 * fire an eConda tracking event for buy and basket
 * @param event 'view', 'c_add', 'c_rmv' or 'buy'
 * @param productItemId The selected Item Id
 * @param priceTestString The property - value for 'PRICE_PER_MONTH'
 * @param chorId The promotion number
 * @param countP The count of the items
 */
function eCondaBuyAndBasket(event, productItemId, priceTestString, chorId, countP) {
		if (productItemId == "NULL") {
			if (dojo.byId("item_price").children.length > 0) {
				eCondaBuyAndBasket(event, dojo.byId("item_price").firstChild.id.substr(11), priceTestString, chorId, countP);
			}
		} else {
			var id = dojo.byId("productdetails_item_sapOrderNumber_"+productItemId).innerHTML;
			emos_ecEvent(event, id, 
					dojo.byId("product_desc_name").innerHTML, 
					getPrice(productItemId, priceTestString), 
					getGroup()+'/'+id,
					countP, 
					getMedia(),
					getLicense(), 
					chorId);
		}
}

/**
 * fire an eConda tracking event for deleting in basket
 * @param event 'view', 'c_add', 'c_rmv' or 'buy'
 * @param productItemId The selected Item Id
 * @param priceTestString The property - value for 'PRICE_PER_MONTH'
 * @param chorId The promotion number
 * @param countP The count of the items
 * @param statusCount The index in the order (starting at 1)
 */
function eCondaBuyAndBasketDelete(event, productItemId, priceTestString, chorId, countP, statusCount) {
	var itemName = (!dojo.byId("orderItemTitle_"+statusCount)) ? 'NULL' : dojo.byId("orderItemTitle_"+statusCount).innerHTML;
	var orderNumber = getOrderNumberCart(statusCount);
	var media = (!dojo.byId("item_attribute_mediaType_"+statusCount).innerHTML) ? 'NULL' : dojo.byId("item_attribute_mediaType_"+statusCount).innerHTML;
	var license = (!dojo.byId("item_attribute_license_"+statusCount)) ? 'NULL' : dojo.byId("item_attribute_license_"+statusCount).innerHTML;
	
	emos_ecEvent(event, orderNumber, itemName, getPriceDelete(statusCount), getGroupDelete()+'/'+itemName+'/'+orderNumber, countP, media, license, chorId);
}

/**
 * fire an eConda tracking event for checkout in basket
 * @param priceTestString The property - value for 'PRICE_PER_MONTH'
 * @param chorId The promotion number
 */
function eCondaBuyAndBasketBuy(priceTestString, chorId) {
	var productCount = dojo.query(".amount").length -1;
	
	for (var i = 1; i <= productCount; i++) {		
		var hrefsplit = dojo.byId("WC_MiniShopCartDisplay_link_1_"+i).href.split("_");
		var id = hrefsplit[hrefsplit.length-2];		
		var orderNumber = getOrderNumberCart(i);
		var itemName = (!dojo.byId("orderItemTitle_"+i)) ? 'NULL' : dojo.byId("orderItemTitle_"+i).innerHTML;
		var media = (!dojo.byId("item_attribute_mediaType_"+i)) ? 'NULL' : dojo.byId("item_attribute_mediaType_"+i).innerHTML;
		var license = (!dojo.byId("item_attribute_license_"+i)) ? 'NULL' : dojo.byId("item_attribute_license_"+i).innerHTML;

		emos_ecEvent('buy', orderNumber, itemName, getPriceDelete(i), getGroupDelete()+'/'+itemName+'/'+orderNumber, dojo.byId("qty_"+i).value, media, license, chorId);
	}
}

/**
 * compute the price
 * @param selectedItemID The selected Item of the product to print
 * @param priceTestString The property - value for 'PRICE_PER_MONTH'
 * @return the price of the selected item
 */
function getPrice(selectedItemID, priceTestString) {
	var elem = dojo.byId('item_price_'+selectedItemID).cloneNode(true);
	var currentPrice = elem.children[0].innerHTML;
	
	// test if price is per month or not
	if (currentPrice.search(priceTestString.replace("{0}","")) != -1) {
		// Item Price
		var priceStr = elem.children[1].innerHTML.match(/[0-9]/g).join('');
	} else {
		// item price
		var priceStr = elem.children[0].innerHTML.match(/[0-9]/g).join('');
		if (elem.children[1].innerHTML.match(/[0-9]/g)) {
			var priceStr1 = elem.children[1].innerHTML.match(/[0-9]/g).join('');
			if (priceStr1 != null && priceStr1.length > 0) {
				// promotion price
				priceStr = priceStr1;
			}
		}
	}
	
	if (priceStr.length == 0) priceStr = '0';

	// return the price
	return (parseFloat(priceStr)/100).toFixed(2).toString();
}

/**
 * get the String for the group of this item
 * @return group
 */
function getGroup() {
	if (dojo.query('#WC_BreadCrumbTrailDisplay_div_1').length > 0) {
		var breadElems = dojo.byId('WC_BreadCrumbTrailDisplay_div_1').children;
		var group = breadElems[2].innerHTML;
		
		for (var i = 3; i < breadElems.length-1; i++) {
			group = group.concat('/' + breadElems[i].innerHTML);
		}
		
		return group;
	} else {
		return "Shop/" + dojo.query('.art_txt h1')[0].innerHTML;
	}
}

/**
 * get the license for the selected item
 * @param productItemId the id of the selected item
 * @return license
 */
function getLicense() {
	var selected = dojo.byId('selectbox_license');
	if (!selected) return 'NULL';
	var result = selected.options[selected.selectedIndex].text;
	if (result.length > 0) return result
	else return 'NULL';
}

/**
 * get the selected media
 * @return media
 */
function getMedia() {
	var selected = dojo.byId('selectbox_version');
	if (!selected) return 'NULL';
	var result = selected.options[selected.selectedIndex].text;
	if (result.length > 0) return result
	else return 'NULL';
}


/**
 * get the order number in the basket view
 * @param statusCount The index in the order (starting at 1)
 * @return order number
 */
function getOrderNumberCart(statusCount) {
	if (dojo.query(".txt a#WC_MiniShopCartDisplay_link_1_"+statusCount).length == 0) return 'NULL';
	var productLink = dojo.query(".txt a#WC_MiniShopCartDisplay_link_1_"+statusCount)[0];
	var parentN = productLink.parentNode;
	var parentsChilds = parentN.childNodes;
	var proLink = false;
	
	for (var i = 0; i < parentsChilds.length; i++) {
		if (parentsChilds[i].nodeName == 'P') {
				return parentsChilds[i].childNodes[0].data.split(".: ")[1]
		}
	}
}

/**
 * get the price for the selected item in the basket view
 * @param statusCount The index in the order (starting at 1)
 * @return price
 */
function getPriceDelete(statusCount) {
	var elem1 = dojo.byId('qty_'+statusCount);
	if (!elem1) return 'NULL';
	var count = 0;
	while (elem1.nodeName != 'TR') {
		count++;
		elem1 = elem1.parentNode;
	}
	return elem1.children[elem1.children.length-1].innerHTML.match(/\d*,\d*/g)[0].replace(',','.'); 
}

/**
 * get the group in the basket view
 * @param statusCount The index in the order (starting at 1)
 * @return group
 */
function getGroupDelete() {
	var childs = dojo.byId("contentEcondaTracking").children;
	for(var i = 0; i < childs.length; i++) {
		if(childs[i].title == 'content') return childs[i].rel;
	}
}
