// Operace s nakupnim kosikem
Basket = {
    forValidation: 0,

    // Provede provereni vsech polozek v kosiku a reload stranky kosiku
    changeBasketItemCount: function(activeProductId) {

        //overovani = new Array(); // novy array pro overovani
		overovani = {}

        Basket.forValidation = $("input[name^='checkproduct[]']").size();
        $("input[name^='checkproduct[]']").each(function(i, input) {
            var productId = $(input).val();

            minQuantity = $("#min_quantity_" + productId).val();
            quantityField = $("#textfield" + productId);
            quantity = $("#textfield" + productId).val();


            if (quantityField.val() > 999) quantityField.val(999);
            if (quantity > 999) quantity = 999;

            if ($("#is_configuration" + productId).val() == 1)
            {
                // Meni-li se pocet produktu u prvku sestavy, prenese se zmena i na ostatni
                $("input[name=^part_of_configuration]").each(function (i, elem) {
                    if (elem.val() == productId) {
                        $("#" + replace("part_of_configuration_", "textfield") ).val(quantity);
                    }
                });
            }

            if ($("#is_required" + productId).val() == 1) {
                // Je-li produkt vyzadovan v sestave, a ubirame ho prilis,
                // nebo ho pozaduje zakaznik v nespravnem min. mnozstvi, bude upozornen
                var idConfiguration = $("#part_of_configuration_" + productId).val();
                var configurationsCount = $("#textfield" + idConfiguration).val();

                if (eval(configurationsCount) > eval(quantity) && eval(quantity) != 0) {
                    $("#textfield" + productId).val(configurationsCount);
                    modalMsgBox(Dict.minimumQuantityAlert + configurationsCount + "!");
                }
                else {
                    quantity = parseInt(quantity);

                    if (!isNaN(quantity)) {
                    }
                    else if ((minQuantity > quantity) && quantity != 0) {
                        quantityField.val(minQuantity);
                        modalMsgBox(Dict.minimumQuantityAlert + configurationsCount + "!");
                    }
                    else if (--Basket.forValidation == 0) {
                        $("#event").val(3);
                        $("#order")[0].submit();
                    }
                }
            }

           // overovani.push(productId+':'+quantity); // plnime array
	overovani[productId] = quantity;

/*
            Basket.checkAvailableQuantity(productId, quantity, false, true, function(isAvailable, altQuantity) {

                if (isAvailable) {
                    //quantity = parseInt(quantity);
                    //minQuantity = parseInt(minQuantity);
					minQuantity = parseInt($("#min_quantity_" + productId).val());
            		quantityField = $("#textfield" + productId);
            		quantity = parseInt($("#textfield" + productId).val());


                    if (!isNaN(altQuantity)) {
                        quantity = altQuantity;
                        $("#textfield" + productId).val(quantity);
                    }

                    if (isNaN(quantity)) {
                    }
                    else if ((minQuantity > quantity) && quantity != 0) {
                        quantityField.value = minQuantity;

                        modalMsgBox(Dict.minimumQuantityAlert + minQuantity + "!");
                    }
                    else if (--Basket.forValidation == 0) {
                        quantityField.value = quantity;
                        $("#event").val(3);
                        $("#order")[0].submit();
                    }
                }
            });
*/

        });


            // Toto zavola jediny ajax dotaz na overeni dostupnosti
         $.ajax({
                type: "POST",
                url: url + "inc/ajax/kontrolabasketu.php?addQuantity=false",
                datatype: "text",
                data: overovani,
				success: function (data, textStatus, XMLHR)
				{
				  eval('data = ' + data);
				  unap = 0;
				  for(var pid in data)
				  {
					if(data[pid] == 'ok')
					{

					}
					else
					{
						var q = parseInt(data[pid]);
                        var textfield = $("#textfield" + pid);
						textfield.val(q);

						if (unap == 0) {
							unap = pid;

							Basket.unavailableQuantity(q, function(isAvailable, altQuantity){

								if (isAvailable) {
									//quantity = parseInt(quantity);
									//minQuantity = parseInt(minQuantity);
									minQuantity = parseInt($("#min_quantity_" + unap).val());
									quantityField = $("#textfield" + unap);
									quantity = parseInt($("#textfield" + unap).val());


									if (!isNaN(altQuantity)) {
										quantity = altQuantity;
										quantityField.val(quantity);
									}
									$("#event").val(3);
				  					$("#order")[0].submit();
								}
							});
						}
					}


				  }
				  if (unap == 0) {
				  	$("#event").val(3);
				  	$("#order")[0].submit();
				  }


				  return;
				  result = data.responseText;
                  resultarray = result.split(',');
                  for(var i in resultarray)
                  {
                    statusarray = resultarray[i].split(':');
                    var idcko = statusarray[0]; // obsahuje id polozky
                    var status = statusarray[1]; // obsahuje status polozky

                         /* toto navrati status bud ok nebo cislo
                    pro kazdou polozku z inputu ke kosiku v promenne
                    status a v promenne idcko id polozky */

                  }


				  if (data.responseText == "ok") {
                        finishFunc(true);
                    }
                    else {
                        var q = parseInt(data.responseText);
                        var textfield = $("#textfield" + id_product);

                        if (textfield.size() > 0) {
                            // Kosik
                            textfield.val(data.responseText);
                            Basket.unavailableQuantity(data.responseText, finishFunc);
                            finishFunc(false);
                        }
                        else {
                            // Vypis ci detail produktu
                            q = q < 0 ? 0 : q;
                            $("#pocet_kusu_" + id_product).val(q);
                            $("#pocet_kusu").val(q);
                            Basket.unavailableQuantity(q, finishFunc);
                        }
                    }


                }});

    },

    // Odstraneni polozky z kosiku (s overenim)
    removeBasketItem: function(activeProductId) {
        modalYesNoMsgBox(Dict.removeConfirmation, function() {
            $("input[name^='count[" + activeProductId + "]']").val(0);
            Basket.changeBasketItemCount(activeProductId);
        });
    },

    // Odstraneni polozky z kosiku
    removeItemsFromBasket: function(productId, count, isConfiguration) {
        modalYesNoMsgBox(Dict.removeConfirmation, function() {
            koupit(productId, count, 1, 0, isConfiguration);
        });

        return false;
    },

    // Odstrani vsechny oznacene polozky v kosiku
    deleteAll: function() {
        modalYesNoMsgBox(Dict.removeConfirmation, function() {
            $("#event").val(2);
            $("#order")[0].submit();
        });
    },

    tryBasketRecountSubmit: function() {
        this.changeBasketItemCount(activeProductId);
    },

    // Zjisteni dostupneho mnozstvi produktu na sklade
    checkAvailableQuantity: function(id_product, quantity, addQuantity, doIt, finishFunc) {
        if (doIt == true) {
            $.ajax({
                type: "GET",
                url: url + "inc/ajax/checkquantity.php",
                datatype: "html",
                data: {
                    id_product: id_product,
                    quantity: quantity,
                    addQuantity: addQuantity
                },
                complete: function(data) {
                    if (data.responseText == "ok") {
                        finishFunc(true);
                    }
                    else {
                        var q = parseInt(data.responseText);
                        var textfield = $("#textfield" + id_product);

                        if (textfield.size() > 0) {
                            // Kosik
                            textfield.val(data.responseText);
                            Basket.unavailableQuantity(data.responseText, finishFunc);
                            finishFunc(false);
                        }
                        else {
                            // Vypis ci detail produktu
                            q = q < 0 ? 0 : q;
                            $("#pocet_kusu_" + id_product).val(q);
                            $("#pocet_kusu").val(q);
                            Basket.unavailableQuantity(q, finishFunc);
                        }
                    }
                }
            });
        }
        else {
            finishFunc(true);
        }
    },

    // Zobrazeni nedostupnosti produktu (z duvodu nedostatecneho mnozstvi na sklade)
    unavailableQuantity: function(availableQuantity, finishFunc) {
        var message = Dict.notEnoughtQuantity;
        message = message.replace("{0}", availableQuantity);
        message = message.replace("{1}", contact_url);
        message = message.replace("{2}", team_title);

        this.buyModalBox(availableQuantity, message, finishFunc);
    },

    // Modalni dialog na omezeni poctu pridavanych produktu
    buyModalBox: function (availableQuantity, message, finishFunc) {
        $("#modalconfirm").modal({
            close: false,
            position: ["20%",],
            overlayId:'confirmModalOverlay',
            containerId:'confirmModalContainer',
            minHeight: "auto",
            autoResize: true,
            onShow: function (dialog) {
                dialog.data.find(".message").append(message);
                dialog.data.find(".yesNo").hide();
                dialog.data.find("#mpItems").val(availableQuantity);
                if (availableQuantity <= 0) {
                    dialog.data.find(".modalItemBuy").hide();
                }
                else {
                    dialog.data.find(".hideAlt").show();
                }
                dialog.data.find("#mpBuy").click(function () {
                    // Value check
                    var q = parseInt($("#mpItems").val());
                    if (isNaN(q) || q <= 0 || q > availableQuantity) {
                        $("#mpItems").val(availableQuantity);
                        return;
                    }

                    $.modal.close();
                    finishFunc(true, q);
                });
                dialog.data.find('.yes').click(function () {
                    $.modal.close();
                });
            }
        });
    }
};

function select_all() {
    var	boxs = document.getElementsByName("checkproduct[]");var i = 0;for (i = 0; i < boxs.length; i++) {
        boxs[i].checked = !boxs[i].checked;
    }
}

// Pro zpetnou kompatibilitu
function change_basket_item_count(activeProductId) {
    Basket.changeBasketItemCount(activeProductId);
}

function delete_all() {
    Basket.deleteAll();
}

function changeShipPay(id,type,call_ajax,id_payment_broker){
    var strType = ''; var arrAcces = []; var strName = '';
    var id_pay = null; var id_ship = null;
    if (type == 0) {
        strType = 'ship'; arrAcces = shippings; strName = 'id_shipping_type'; delName = 'id_payment_type';
    } else {
        strType = 'pay'; arrAcces = payments; strName = 'id_payment_type'; delName = 'id_shipping_type';
        $("input[name^='brand']").removeAttr("checked");
        $('#brandList').hide();
        $('#calcCetelem').hide();
        if (id_payment_broker==3){
            $('#brandList').css("display","table-row");
            $("input[name^='brand']").eq(0).attr("checked","checked");
        }
        if (id_payment_broker==4){
            $('#calcCetelem').css("display","table-row");
        }
    }
    var stat = $('#'+strType+id).attr("checked");
    $("input[name^='"+strName+"']:checked").removeAttr("checked");
    if (stat) {
        $('#'+strType+id).attr("checked","checked");
        $("input[name^='"+delName+"']").attr("disabled","disabled");
        $("input[name^='"+delName+"']:checkbox").each(function(){
            if (jQuery.inArray(this.value * 1, arrAcces[id]) >=0) {
                this.disabled = false;
            }
        });
    } else {
        $("input[name^='"+delName+"']").removeAttr("disabled");
    }
    // uprav cenu v kosiku dle aktualni volby
    id_ship = $("input[name^='id_shipping_type']:checked").val() || null;
    id_pay = $("input[name^='id_payment_type']:checked").val() || null;
    var shipping_date = $("#delivery_date_" + id_ship).val() || null;
    if (call_ajax == true) basket_summ(id_pay, id_ship, shipping_date);
}
function basket_summ(id_payment_type, id_shipping_type, shipping_date) {
    var query_string = new Array();
    if (id_payment_type != null) query_string.push("id_payment_type=" + id_payment_type);
    if (id_shipping_type != null) query_string.push("id_shipping_type=" + id_shipping_type);
    if (shipping_date != null) query_string.push("shipping_date=" + shipping_date);
    getData(url + "inc/ajax/abasket_page.php?" + query_string.join("&"), "basket_summ_id");
}
function showCalcCetelem(price){
    window.open(encodeURI(url + "secure/CalculatorCetelem.php?price="+price),"_blank","toolbar=no,scrollbars=no,location=no,status=no,width=380,height=300,resizable=1,screenX=250,screenY=170", false);
}

function modalYesNoMsgBox(message, yesFunc) {
    $("#modalconfirm").modal({
        close: false,
        position: ["20%",],
        overlayId:'confirmModalOverlay',
        containerId:'confirmModalContainer',
        minHeight: "auto",
        autoResize: true,
        onShow: function (dialog) {
            dialog.data.find('.message').append(message);
            dialog.data.find('.close').hide();
            dialog.data.find('.yes').click(function () {
                $.modal.close();
                yesFunc();
            });
            dialog.data.find('.no').click(function () {
                $.modal.close();
            });
        }
    });
}

// Popup basket
PopupBasket = {
    // ID of active div for show basket
    activeDiv: "buttBask",

    showDelay: 300,
    hideDelay: 900,
    onPanel: false,

    init: function() {
        $("#basket, #" + this.activeDiv).hover(function(evt) {
            PopupBasket.toggleShow(true);
        },
        function(evt) {
            PopupBasket.toggleShow(false);
        });
    },

    toggleShow: function(show) {
        // Vstup mysi na prvek
        this.onPanel = show;
        this.$sTimer = setTimeout(function () {
            if (PopupBasket.onPanel == show) {
                if (show) {
                    if ($.browser.msie && $.browser.version.substr(0,1)=="7") {
                        $("#centerMENU").css({
                            position: "static"
                        });
                        $("#centerMENUCont a").css({
                            position: "static"
                        });
                        $("#seoCategoryContainer").css({
                            position: "static"
                        });
                        $(".prodObsah").find("> a").css({
                            position: "static"
                        });
                        $("#scrollPresent").css({
                            position: "static"
                        });
                    }

                    $("#basket").show();
                } else {

                    if ($.browser.msie && $.browser.version.substr(0,1)=="7") {
                        $("#centerMENU").css({
                            position: "relative"
                        });
                        $("#centerMENUCont a").css({
                            position: "relative"
                        });
                        $("#seoCategoryContainer").css({
                            position: "relative"
                        });
                        $(".prodObsah").find("> a").css({
                            position: "relative"
                        });
                        $("#scrollPresent").css({
                            position: "relative"
                        });
                    }

                    $("#basket").hide();
                }
            }
        }, show ? this.showDelay : this.hideDelay);
    }
};

// Login advanced mechanism
Login = {
    // Test na merge kosiku
    login: function() {
        if ($("#loginpassword").size() == 0 && $("#loginusername").size() == 0) {
            // User je nalogovan
            if ($("input[name^='login_event']").val() == "4") {
                //odhl�en� u�ivatele
                $.post(url + "inc/ajax/checkloginbasket.php",
                {
                    logout: 1
                },
                function (data) {
                    if (data != "") {
                        modalMsgBox(data, function() {
                          $("#log")[0].submit();
                        });
                    }
                    else {
                        $("#log")[0].submit();
                    }
                });
            }
            return false;
        }

        var username = $("#loginusername").val();
        var password = $("#loginpassword").val();

        $.post(url + "inc/ajax/checkloginbasket.php",
        {
            username: username,
            password: password
        },
        function (data) {
            var prefix = data.substr(0, 4);
            if (prefix == "fail") {
//                msgBox(data.substr(4));
//              document.getElementById('user').display='none';
              $("#user").css({
                            padding: "1px 0px 0px 0px"
                        });
              $("#messERROR").fadeIn(100);

            }
            else if (prefix == "nomg") {
                Login.doLogin("continue");
            }
            else if (prefix == "scnt") {
                modalMsgBox(data.substr(4), function() {
                    Login.doLogin("restore");
                });
            }
            else {
                $(document.body).append(data);
                $("#mergeBasket").modal({
                    close: false,
                    position: ["5%",],
                    overlayId:'confirmModalOverlay',
                    containerId:'confirmModalContainer',
                    minHeight: "auto",
                    minWidth: "500px",
                    containerCss: {
                        width: "900px"
                    },
                    autoResize: true,
                    onShow: function (dialog) {
                        dialog.data.find('.continue').click(function () {
                            Login.doLogin("continue");
                        });
                        dialog.data.find('.restore').click(function () {
                            Login.doLogin("restore");
                        });
                        dialog.data.find('.merge').click(function () {
                            Login.doLogin("merge");
                        });
                    }
                });
            }
        });

        return false;
    },

    // Standard submit
    doLogin: function(basket) {
        $("#basketop").val(basket);
        $("#log")[0].submit();
    }
};




mod_basket_finishfunction = function (pid,isAvailable, altQuantity) {

                if (isAvailable) {
                    //quantity = parseInt(quantity);
                    //minQuantity = parseInt(minQuantity);
					minQuantity = parseInt($("#min_quantity_" + pid).val());
            		quantityField = $("#textfield" + pid);
            		quantity = parseInt($("#textfield" + pid).val());


                    if (!isNaN(altQuantity)) {
                        quantity = altQuantity;
                        $("#textfield" + productId).val(quantity);
                    }

                    if (isNaN(quantity)) {
						return 0
                    }
                    else if ((minQuantity > quantity) && quantity != 0) {
                        quantityField.value = minQuantity;
                        modalMsgBox(Dict.minimumQuantityAlert + minQuantity + "!");
						return 0
                    }
                  /*  else if (--Basket.forValidation == 0) {
                        quantityField.value = quantity;
                        $("#event").val(3);
                        $("#order")[0].submit();
                    }*/
                }
				return 1;
            }

