var gbCurrencyName = 'Kč';
var gbCurrencyBeforeAmount = false;
var gbCurrencyDecimalSeparator = ',';
var gbCurrencyThousandSeparator = ' ';
var gbCurrencySuffixNotDecimal = ',-';
var gbCurrencyDigitsAfterDecimalSeparator = 0;


/*------------------------------------------------------------------------------
 * Sezbira hodnoty z formulare a posle je ajaxem ke kontrole
 */ 
function checkForm(sFormName, sMsgElementID, bShowAlert) {
	eval("var form = document." + sFormName);

	if (form == null) {
		alert("Form element Not found.");
		return false;
	}

	//
	// INPUTY
	//
	var sParams = "gli=1";
	var aTemp = form.getElementsByTagName("input");
	for (var i = 0; i < aTemp.length; i++) {
		var inp = aTemp[i];

		if (inp.type == "text" || inp.type == "hidden" || inp.type == "password")
			// input text, hidden, password
			sParams += "&" + inp.name + "=" + escape(inp.value);

		else if (inp.type == "checkbox" || inp.type == "radio") {
			// input checkbox, radio
			if (inp.checked)
				sParams += "&" + inp.name + "=" + escape(inp.value);
		}
	}

	//
	// TEXTAREA
	//
	aTemp = form.getElementsByTagName("textarea");
	for (var i = 0; i < aTemp.length; i++)
		sParams += "&" + aTemp[i].name + "=" + escape(aTemp[i].value);

	//
	// Vytvorime, nastavime a spustime ajax
	//
	var theHttpRequest = getNewHttpObject();
	theHttpRequest.onreadystatechange = function() { processAJAX(); };
	theHttpRequest.open("post", "/includes/ajax_FormCheck.asp");
	theHttpRequest.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
	theHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	theHttpRequest.send(sParams);

	function processAJAX() {
		if (theHttpRequest.readyState == 4) {
			var responseTxt = theHttpRequest.responseText;

			if (theHttpRequest.status == 200) {
				if (trim(responseTxt) != "") {
					if (bShowAlert) {
 						alert(responseTxt);
 					}
 					else if (getE(sMsgElementID) != null) {
 						getE(sMsgElementID).innerHTML = responseTxt;
 						window.scrollTo(0, parseInt(getE(sMsgElementID).offsetTop));
					}
					else {
						alert("Message element not found.");
					}
 				}
 				else {
 					form.js.value = "jsok";
 					form.submit();
 				}
			}
			else if (theHttpRequest.status == 500) {				
				alert("Error: " + responseTxt);
			}
			else {
				alert("Error: " + theHttpRequest.status + "\n" +  responseTxt);
			}

			hideWaitBox();
		}
	}

	return false;
}

/*------------------------------------------------------------------------------
 * Kontrola vyplnenosti inputu pred prihlasenim
 */
function formCheckLogin() {
	if (getE("logon_login"))
		if (trim(getE("logon_login").value) == "") {
			alert("Vyplňte Vaše uživatelské jméno.");
			getE("logon_login").focus();
			return false;
		}

	if (getE("logon_password"))
		if (trim(getE("logon_password").value) == "") {
			alert("Vyplňte Vaše heslo.");
			getE("logon_password").focus();
			return false;
		}

	return true;
}

/*------------------------------------------------------------------------------
 * Kontrola spravnosti zadanych datumu v seznamu uzivatelu
 */
function formCheckUserList(form) {
	var inputs = form.getElementsByTagName("input");

	for (var i = 0; i < inputs.length; i++) {
		if (inputs[i].name == "ExpireDate") {
			if (trim(inputs[i].value) != "" && !dateControl(inputs[i].value, true)) {
				inputs[i].focus();
				return false;
			}
		}
	}

	return true;
}

/*------------------------------------------------------------------------------
 * Kontrola spravnosti mejlu
 */
function emailControl(sEmail) {
	var regEx  = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@(([0-9a-zA-Z])+([-\w]*[0-9a-zA-Z])*\.)+[a-zA-Z]{2,9})$/; 

	regEx.ignoreCase = true;

	if (regEx.test(sEmail) == false) {
		alert("E-mail nemá správný formát.");
		return false;
	}

	return true;
}

/*------------------------------------------------------------------------------
 * Kontrola spravnosti datumu
 */
function dateControl(sDate, bAlert) {
	var regEx = /^((((0[1-9])|([1-2][0-9])|(3[0-1]))|([1-9]))\.(((0[1-9])|(1[0-2]))|([1-9]))\.(([0-9]{2})|(((19)|([2]([0]{1})))([0-9]{2}))))$/;

	var arr = sDate.split(".");
	var err = false;

	if (arr.length != 3) err = true;

	if (!err) {
		var d = parseInt(arr[0]);
		var m = parseInt(arr[1]);
		var y = parseInt(arr[2]);

		if (isNaN(d) || isNaN(m) || isNaN(y)) err = true;

		if (!err) {
			var arrDays = new Array(31, ((y % 4 == 0) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
			if (d < 0 || d > arrDays[m - 1] || arrDays[m - 1] == null) err = true;
		}
	}

	if (err) {
		if (bAlert) alert("Zadané datum nemá správný formát (DD.MM.YYYY).");
		return false;
	}

	return true;	
}

/*------------------------------------------------------------------------------
 * Kontrola pri zadavani cisla v strankovani a pripadne odeslani
 */ 
function ControlNumberPaging(e, elInput, nMaxPage) {
	var keynum
	var keychar
	var numcheck

	if(window.event){
		keynum = e.keyCode
	}
	else if(e.which){
		keynum = e.which
	}

	if (keynum == 13) {
		var value = elInput.value;
		var elForm = elInput.form;

		if (value != parseInt(value)) {
      alert("Zadejte číslo stránky, na kterou si přejete skočit.");
      return false;
		}
		else if(value > nMaxPage || value < 1) {    
      alert("Číslo stránky musí být v rozmezí od 1 - " + nMaxPage);
      return false;
    }
		else {
			if (elForm.action.indexOf("pg-0/") != -1) elForm.action = elForm.action.replace(/pg-0\//, ((value == 1) ? "" : "pg-" + value + "/"));
			else if (elForm.action.indexOf("?PgID=0") != -1) elForm.action = elForm.action.replace(/\?PgID=0/, ((value == 1) ? "" : "?PgID=" + value));
			else if (elForm.action.indexOf("&PgID=0") != -1) elForm.action = elForm.action.replace(/&PgID=0/, ((value == 1) ? "" : "&PgID=" + value));
      elForm.submit();
    }
	}

	return ((keynum >= 48) && (keynum <= 57)) || keynum == 8 || (Br.NS && e.charCode == 0)
}

/*------------------------------------------------------------------------------
 * Nacteni seznamu prihradek pro lokaci
 */
function fillBoxesSelect(sLocationID, elSelect, elTxt) {

	//
	// Vytvorime, nastavime a spustime ajax
	//
	var theHttpRequest = getNewHttpObject();
	theHttpRequest.onreadystatechange = function() { return processAJAX(); };
	theHttpRequest.open("get", "/includes/ajax_Locations.asp?a=getBoxesForLocation&locationID=" + sLocationID + "&gli=1");
	theHttpRequest.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
	theHttpRequest.send(null);

	function processAJAX() {
		if (theHttpRequest.readyState == 4) {
			if (theHttpRequest.status == 200) {
				var responseTxt = theHttpRequest.responseText;

				var aBoxes = responseTxt.split("||");
				var aBox;
				elSelect.options.length = 0;

				for (var i = 0; i < aBoxes.length; i++) {
					aBox = aBoxes[i].split("~~");
					elSelect.options[i] = new Option(aBox[2], aBox[0]);
				}

				if (elTxt) elTxt.value = elSelect.value;
			}
			else if (theHttpRequest.status == 500) {
				alert("ERROR:" + theHttpRequest.responseText);
				return false;
			}
		}
	}
}

/*------------------------------------------------------------------------------
 * Kontrola Count pred odeslanim formu
 */
function controlItemCount(elCount, minCount, maxCount, commodityPk) {

	if (elCount.value != parseInt(elCount.value)) {
		alert("Zadejte množství.");
		return false;
	}

	var sMsg = ""
	var countInBasket = (commodityPk == 0) ? 0 : parseInt(getE("txtCountInBasket" + commodityPk).value);
	var count = parseInt(elCount.value)

	if (maxCount > 0) {
		if (count > maxCount || count < minCount) {
			sMsg = "Množství musí být v rozmezí " + minCount + " - " + maxCount + ".";
		}
		else if (count > (maxCount - countInBasket)) {
			sMsg = replaceVariables("V aktuálním dokladu již máte %1-CountInBasket% produktu.", [countInBasket.toString()]);
			if (maxCount - countInBasket == 0)
				sMsg += "\n\nJiž nelze přidat další."
			else
				sMsg += "\n\nMnožství musí být v rozmezí " + minCount + " - " + (maxCount - countInBasket) + ".";
		}
	}
	else if (count < minCount) {
		sMsg = "Množství musí být větší nebo rovno " + minCount + ".";
	}

	if (sMsg != "") {
		if (minCount == 0) sMsg += "\nPokud zadáte 0, bude položka odebrána.";
		alert(sMsg);
		return false;
	}

	return true;
}

/*------------------------------------------------------------------------------
 * Odesle prevod
 */
function sendTransfer() {

	// nemuze odeslat prazdnou prevodku
	if (sTransferItemsIDS == "") {
		alert("Nelze odeslat prázdný převod.");
		return false;
	}

	// kontrola, jestli nejsou vybrane stejne prihradky
	if (getE("txtLocationBoxFrom").value == getE("txtLocationBoxTo").value) {
		alert("Lokace na kterou se převádí musí být jiná než lokace, na kterou má proběhnout transfer.");
		return false;
	}

	// zkontrolujeme, jestli nezmenil mnozstvi u nejakeho produktu bez ulozeni
	var aItemsIDS = sTransferItemsIDS.split("|");
	for (var i = 0; i < aItemsIDS.length; i++) {
		if (getE("Count" + aItemsIDS[i]).value != getE("Count" + aItemsIDS[i]).defaultValue) {
			alert("Provedli jste změnu množství u produktu, která nebyla potvrzena.");
			return false;
		}
	}

	showDisableBox();
	showWaitBox("Strpení...<br />Probíhá odeslání převodu");

	var form = getF("frmTransferDetail");
	if (form) {
		form.target = "miscIframe";
		form.action = "/TransferFrame.asp"
		form.submit();

		form.target = "";
		form.action = "/store/transfer/";
	}
}

/*------------------------------------------------------------------------------
 * Odesle objednavku
 */
function sendStoreOrder() {

	// nemuze odeslat prazdnou prevodku
	if (sStoreOrderItemsIDS == "") {
		alert("Nelze odeslat prázdnou objednávku.");
		return false;
	}

	// zkontrolujeme, jestli nezmenil mnozstvi u nejakeho produktu bez ulozeni
	var aItemsIDS = sStoreOrderItemsIDS.split("|");
	for (var i = 0; i < aItemsIDS.length; i++) {
		if (getE("Count" + aItemsIDS[i]).value != getE("Count" + aItemsIDS[i]).defaultValue) {
			alert("Provedli jste změnu množství u produktu, která nebyla potvrzena.");
			return false;
		}
	}

	showDisableBox();
	showWaitBox("Strpení...<br />Probíhá založení objednávky");

	var form = getF("frmStoreOrderDetail");
	if (form) {
		form.target = "miscIframe";
		form.action = "/StoreOrderFrame.asp"
		form.submit();

		form.target = "";
		form.action = "/store/order/";
	}
}

/*------------------------------------------------------------------------------
 * Odesle prodej
 */
function sendSale() {

	// nemuze odeslat prazdnou prodejku
	if (sSaleItemsIDS == "") {
		alert("Nelze odeslat prázdnou prodejku.");
		return false;
	}

	// zkontrolujeme, jestli nezmenil mnozstvi u nejakeho produktu bez ulozeni
	var aItemsIDS = sSaleItemsIDS.split("|");
	for (var i = 0; i < aItemsIDS.length; i++) {
		if (getE("Count" + aItemsIDS[i]).value != getE("Count" + aItemsIDS[i]).defaultValue) {
			alert("Provedli jste změnu množství u produktu, která nebyla potvrzena.");
			return false;
		}
	}

	showDisableBox();
	showWaitBox("Strpení...<br />Probíhá odeslání prodejky");

	var form = getF("frmSaleDetail");
	if (form) {
		form.target = "miscIframe";
		form.action = "/SaleFrame.asp"
		form.submit();

		form.target = "";
		form.action = "/sale/detail/?slid=" + form.SaleID.value;
	}
}

/*------------------------------------------------------------------------------
 * Odesle prijem
 */
function sendTransferReceive() {

	/*
	 * Zkontrolujeme, jestli nechteji dodat vice, nez je mozno
	 */
	var nSum = 0;
	var aRows = getE("txtRowsString").value.split("||");
	for (var i = 0; i < aRows.length; i++) {
		if (getE("txtCount" + aRows[i])) {
			nSum += parseInt(getE("txtCount" + aRows[i]).value);
			if (parseInt(getE("txtCount" + aRows[i]).value) > parseInt(getE("txtToReceive" + aRows[i]).value)) {
				alert("Zadali jste větší množství k příjmu, než je možné přijmout.");
				getE("txtCount" + aRows[i]).focus();
				return false;
			}
		}
	}

	if (nSum == 0) {
		alert("Zadejte alespoň u jednoho zboží množství k příjmu větší než 0.");
		return false;
	}

	showDisableBox();
	showWaitBox("Strpení...<br />Probíhá zaúčtování příjmu");

	var form = getF("frmTransferReceive");
	if (form) {
		form.target = "miscIframe";
		form.action = "/TransferReceiveFrame.asp"
		form.submit();

		form.target = "";
		form.action = "";
	}
}

/*------------------------------------------------------------------------------
 * Kontrola pred odeslanim
 */
function sendBasket() {

	/*
	 * Zkontrolujeme vyplnenost
	 */
	if (getF("frmOrder").ExternalNumber.value == "") { alert("Vyplňte číslo externího dokladu."); getF("frmOrder").ExternalNumber.focus(); return false; }
	if (getF("frmOrder").DeliveryCode.value == "") { alert("Zvolte způsob dopravy."); return false; }

	showDisableBox();
	showWaitBox("Strpení...<br />Probíhá založení objednávky");

	var form = getF("frmOrder");
	if (form) form.submit();
}

