// метод для добавления в корзину зависимых от лицензии товаров
// iElementId - товар (модуль, апгрейд, поддержка)
// iLicenseId - идентификатор объекта "Оплаченная лицензия"
umiBasket.prototype.addRelatedElement = function(iElementId, iLicenseId) {
	if (typeof(iElementId) !== 'undefined') {
		var __self = this;
		var hdl = function(oResponce) {
			var itemId = oResponce.itemId;
			var controlName = oResponce.controlName;
			__self.onAfterAddRelatedElement(itemId, iLicenseId, controlName);
		}
		lLib.getInstance().makeRequest("/eshop/umishop_AddRelatedElement/"+iElementId+"/"+iLicenseId+"/?", hdl);
	}
}

// событие возникает после отправки запроса на добавление
umiBasket.prototype.onAfterAddRelatedElement = function (itemId, iLicenseId, controlName) {
	this.onAfterAddElement(itemId, 1);
	var oButtons = document.getElementsByName(controlName);
	for (iI = 0; iI < oButtons.length; iI++) {
		oButtons[iI].innerHTML = "<a href=\"/eshop/basket/\" style='color:gray'>К оплате</a>";
	}
}

umiBasket.prototype.onAfterAddElement = function (iElementId, iCount) {
	var oButtons = document.getElementsByName("addtobasket_area_" + iElementId);
	for (iI = 0; iI < oButtons.length; iI++) {
		oButtons[iI].innerHTML = "<a href=\"/eshop/basket/\">В корзине " + iCount + 
		" шт.</a> | <a href=\"javascript:umiBasket.getInstance().addElement("+iElementId+");\">+1</a>";
	}

	var oAddedItemRows = document.getElementsByName("basketrow_"+iElementId);
	if (!oAddedItemRows.length) {
		// add new row in basket
		var arrTempNewItems = new Array();
		var arrTempNewItemsParents = new Array();
		var oNewRows = document.getElementsByName('basketnewrow');
		var iCountNewRows = oNewRows.length;
		for (iI = oNewRows.length - 1; iI >=0; iI--) {
			arrTempNewItems[iI] = oNewRows[iI].cloneNode(true);

			var oNextObj = oNewRows[iI];
			oNewRows[iI].id = "basketrow_"+iElementId;
			if (oNewRows[iI]) {
				oNewRows[iI].setAttribute("name", "basketrow_"+iElementId, 0);
			}
			
			arrTempNewItemsParents[iI] = oNextObj.parentNode;
		}

		if (iCountNewRows) {

			var oSelf = this;
			
			var oControls = document.getElementsByName('cnewitm_id');

			for (iI = oControls.length - 1; iI >= 0; iI--) {
				oControls[iI].id = "citm_"+iElementId+"_id";
				if (oControls[iI]) {
					oControls[iI].setAttribute("name", "citm_"+iElementId+"_id", 0);
				}
			}

			var oControls = document.getElementsByName('cnewitm_path');
			for (iI = oControls.length - 1; iI >= 0; iI--) {
				oControls[iI].id = "citm_"+iElementId+"_path";
				if (oControls[iI]) {
					oControls[iI].setAttribute("name", "citm_"+iElementId+"_path", 0);
				}
			}

			var oControls = document.getElementsByName('cnewitm_name');
			for (iI = oControls.length - 1; iI >= 0; iI--) {
				oControls[iI].id = "citm_"+iElementId+"_name";
				if (oControls[iI]) {
					oControls[iI].setAttribute("name", "citm_"+iElementId+"_name", 0);
				}
			}

			var oControls = document.getElementsByName('cnewitm_price');
			for (iI = oControls.length - 1; iI >= 0; iI--) {
				oControls[iI].id = "citm_"+iElementId+"_price";
				if (oControls[iI]) {
					oControls[iI].setAttribute("name", "citm_"+iElementId+"_price", 0);
				}

			}

			var oControls = document.getElementsByName('cnewitm_count');
			for (iI = oControls.length - 1; iI >= 0; iI--) {
				var oControl = oControls[iI];
				oControls[iI].id = "citm_"+iElementId+"_count";
				if (oControls[iI]) {
					oControls[iI].setAttribute("name", "citm_"+iElementId+"_count", 0);
				}

				oControl.onchange = function() {
					oSelf.updateCount(iElementId, this.value);
					return false;
				}
			}

			var oControls = document.getElementsByName('cnewitm_price_total');
			for (iI = oControls.length - 1; iI >= 0; iI--) {
				oControls[iI].id = "citm_"+iElementId+"_price_total";
				if (oControls[iI]) {
					oControls[iI].setAttribute("name", "citm_"+iElementId+"_price_total", 0);
				}
			}

			var oControls = document.getElementsByName('cnewitm_remove');
			for (iI = oControls.length - 1; iI >= 0; iI--) {
				var oControl = oControls[iI];
				oControls[iI].id = "citm_"+iElementId+"_remove";
				if (oControls[iI]) {
					oControls[iI].setAttribute("name", "citm_"+iElementId+"_remove", 0);
				}

				oControl.onclick = function() {
					oSelf.removeBasketItem(iElementId);
					return false;
				}
			}

			// append saved rows
			for (iI = 0; iI < arrTempNewItems.length; iI++) {
				var oParent = arrTempNewItemsParents[iI];
				if (oParent) {
					oParent.appendChild(arrTempNewItems[iI]);
				}
			}
		}
	}

	umiBasket.prototype.onAfterRemoveBasketItem = function (iElementId) {
		var oCartRows = document.getElementsByName('basketrow_'+iElementId);
		for (iI = 0; iI < oCartRows.length; iI++) {
			oCartRows[iI].style.display = 'none';
		}
		var oRows = document.getElementsByName('addtobasket_area_'+iElementId);
		for (iI = 0; iI < oRows.length; iI++) {
			oRows[iI].innerHTML = '<a href="javascript:umiBasket.getInstance().addElement('+iElementId+');">В корзину</a>';
		}
	}

	this.updateBasket();
}
