if (window.strDefinitionFile == null) window.strDefinitionFile = "{$strDefinition}";
if (window.strBasketTitle == null) window.strBasketTitle = "";
if (window.nBasketWidth == null) window.nBasketWidth = 800;
if (window.nBasketHeight == null) window.nBasketHeight = 600;

function DeleteProduct(nID)
{
	if (confirm(decode_html_entities("{$strAreYouSureDelete}")))
	{
		ChangeWindowLocation(window, "{$strTarget}&basketdelete=" + nID);
	}
}

function BasketIntValidation(el)
{
	if (!ValidateNumeric(el)) {alert(unescape('<?php echo urlencode(utf8_decode(GetLabel("The value must be an integer"))); ?>').replace(/\+/g, ' ')); MakeNumeric(el); el.onchange(); ControlSetFocus(el); return false;};
}

function BasketFloatValidation(el)
{
	if (!ValidateFloat(el)) {alert(unescape('<?php echo urlencode(utf8_decode(GetLabel("The value must be a number"))); ?>').replace(/\+/g, ' ')); MakeFloat(el); el.onchange(); ControlSetFocus(el); return false;};
}

function BasketIntNonZeroValidation(el)
{
	if (!ValidateNumeric(el) || (parseInt(el.value, 10) == 0)) {alert(unescape('<?php echo urlencode(utf8_decode(GetLabel("The value must be an integer"))); ?>').replace(/\+/g, ' ')); MakeNumeric(el, true); el.onchange(); ControlSetFocus(el); return false;};
}

function BasketFloatNonZeroValidation(el)
{
	if (!ValidateFloat(el) || (parseFloat(el.value) == 0)) {alert(unescape('<?php echo urlencode(utf8_decode(GetLabel("The value must be a number"))); ?>').replace(/\+/g, ' ')); MakeFloat(el, true); el.onchange(); ControlSetFocus(el); return false;};
}

function AfterAddToBasket(strResult)
{
	if ((strResult == "1") && (strAddMessage != ""))
	{
		alert(strAddMessage);
		window.location.reload();
	}
}

function AddToBasket()
{
	var strArgs = "";
	for (var i = 0; i < arguments.length; i++)
	{
		if (strArgs != "") strArgs += ","; 
		strArgs += escape(arguments[i]);
	}
	jsrsExecute(g_strRootPath + "rs/objaccess.php", AfterAddToBasket, "AddToBasket", Array(strDefinitionFile, strArgs), g_bDebug);
}

function OpenBasket()
{
	OpenPopup('managedetail.php?{$strSessionArgs}&e=basketcontent&definition=' + escape(strDefinitionFile), strBasketTitle, nBasketWidth, nBasketHeight)
}

function AfterEmptyBasket(strResult)
{
	ChangeWindowLocation(window, SetURLArg(window.location.href.toString(), "basketdelete", ""));
}

function EmptyBasket(bSkipConfirm)
{
	if (bSkipConfirm || confirm(decode_html_entities("{$strAskEmptyBasket}")))
	{
		jsrsExecute(g_strRootPath + "rs/objaccess.php", AfterEmptyBasket, "RemoteEmptyBasket", Array(strDefinitionFile), g_bDebug);
	}
}

function AfterUpdateBasket(strResult)
{
	ChangeWindowLocation(window, SetURLArg(window.location.href.toString(), "basketdelete", ""));
}

function UpdateBasket(bSkipConfirm)
{
	var arrTmp;
	var arrArgs = new Array();
	var arrElements = document.getElementsByTagName("input");
	for (var obj in arrElements)
	{
		if (!g_bIE) { if (typeof(arrElements[obj]) == "object") obj = arrElements[obj].id.toString(); else obj = ""; }
		if (obj.substr(0, 7) == "basket_")
		{
			arrTmp = document.getElementById(obj).id.split("_");
			if (arrArgs[arrTmp[2]] == null) arrArgs[arrTmp[2]] = new Array();
			arrArgs[arrTmp[2]][arrTmp[1]] = document.getElementById(obj).value;
		}
	}
	arrElements = document.getElementsByTagName("select");
	for (var obj in arrElements)
	{
		if (!g_bIE) { if (typeof(arrElements[obj]) == "object") obj = arrElements[obj].id.toString(); else obj = ""; }
		if (obj.substr(0, 7) == "basket_")
		{
			arrTmp = document.getElementById(obj).id.split("_");
			if (arrArgs[arrTmp[2]] == null) arrArgs[arrTmp[2]] = new Array();
			arrArgs[arrTmp[2]][arrTmp[1]] = document.getElementById(obj).value;
		}
	}
	var strArgs = "";
	for (var i in arrArgs)
	{
		if (strArgs != "") strArgs += " ";
		var strLine = "";
		for (var j in arrArgs[i])
		{
			if (strLine != "") strLine += "&";
			strLine += j + "=" + escape(arrArgs[i][j]);
		}
		strArgs += strLine;
	}
	if (bSkipConfirm || confirm(decode_html_entities("{$strAskUpdateBasket}")))
	{
		jsrsExecute(g_strRootPath + "rs/objaccess.php", AfterUpdateBasket, "RemoteUpdateBasket", Array(strDefinitionFile, strArgs), g_bDebug);
	}
}

function IsBasketDirty()
{
	var bDirty = false;
	var arrElements = document.getElementsByTagName("input");
	for (var obj in arrElements)
	{
		if (!g_bIE) { if (typeof(arrElements[obj]) == "object") obj = arrElements[obj].id.toString(); else obj = ""; }
		if (obj.substr(0, 7) == "basket_")
		{
			if ((document.getElementById(obj).prevValue != null) && (document.getElementById(obj).value != document.getElementById(obj).prevValue))
			{
				bDirty = true;
				break;
			}
		}
	}
	arrElements = document.getElementsByTagName("select");
	for (var obj in arrElements)
	{
		if (!g_bIE) { if (typeof(arrElements[obj]) == "object") obj = arrElements[obj].id.toString(); else obj = ""; }
		if (obj.substr(0, 7) == "basket_")
		{
			if ((document.getElementById(obj).prevValue != null) && (document.getElementById(obj).value != document.getElementById(obj).prevValue))
			{
				bDirty = true;
				break;
			}
		}
	}
	return bDirty;
}

function IsBasketEmpty()
{
	var bEmpty = true;
	var arrElements = document.getElementsByTagName("input");
	for (var obj in arrElements)
	{
		if (!g_bIE) { if (typeof(arrElements[obj]) == "object") obj = arrElements[obj].id.toString(); else obj = ""; }
		if (obj.substr(0, 7) == "basket_")
		{
			bEmpty = false;
			break;
		}
	}
	if (bEmpty)
	{
		arrElements = document.getElementsByTagName("select");
		for (var obj in arrElements)
		{
			if (!g_bIE) { if (typeof(arrElements[obj]) == "object") obj = arrElements[obj].id.toString(); else obj = ""; }
			if (obj.substr(0, 7) == "basket_")
			{
				bEmpty = false;
				break;
			}
		}
	}
	return bEmpty;
}

function CommandBasket()
{
	var bEmpty = IsBasketEmpty();
	if (bEmpty)
	{
		alert("{$strEmptyBasket}");
		return;
	}
	var bChanged = IsBasketDirty();
	if (bChanged)
		bChanged = g_bIE ? MessageBox("{$strAskDirtyBasket}", "yesnocancel") : confirm("{$strAskDirtyBasket}");
	if (bChanged == -1) return; 
	if (bChanged)
	{
		window.AfterUpdateBasket = new Function("DoSave(true);");
		UpdateBasket(true);
	}
	else
		DoSave(true);
}