!window.jQuery && document.write('<script type="text/javascript" src="/js/jquery-1.4.3.min.js"><\/script>');

$(window).load(function() {
    /* load slideru */
	try{
		$('#slider').nivoSlider();
	}
	catch(ex){
		console.log('NoviSlider nebolo mozne inicializovat: ' + ex);
	}


    //tabs
    try
    {
        $('#tabs').tabs({
            beforeLoad: function(event, ui) {
                ui.jqXHR.fail(function() {
                    ui.panel.html('Pri načítaní obsahu záložky došlo ku chybe.');
                });
            }
        });
        
        $('.tabs .tab-links a').on('click', function(e) {
            var currentAttrValue = $(this).attr('href');
            // Show/Hide Tabs
            $('.tabs ' + currentAttrValue).fadeIn(400).siblings().hide();
            // Change/remove current tab to active
            $(this).parent('li').addClass('active').siblings().removeClass('active');
            e.preventDefault();
        });
    }
    catch(ex){
        console.log('Tabs nebolo mozne inicializovat: ' + ex);
    }
    
    //btn
    $('#registrationShortBtn').button();
    
    //voucher v poslednom kroku obj
    $('#userVoucherBtn').click(function() {
        applyVoucher();
        return false;
    });
    
    $('.removeVoucherBtn').click(function() {
        removeVoucher($(this).attr('vybranyid'));
        return false;
    });
   
   // show or hide top alert depending on cookies (Should be shown for 24 HOURS only)
    if((Cookies.get('showTopAlert') == undefined) && ($("#topAlert").length))
    {
        var topAlertHeight = $("#topAlert").height();
        $("#topAlert").removeClass("hidden");
        $("body").css("background-position", "center 40px, left top");
        topAlertHeight +=6;//alternate height due to dropdown-main margin issues
        $(".dropdown-main").css("top", "+=" + topAlertHeight);
        $('#closeTopAlert').click(function()
        {
            Cookies.set('showTopAlert', 'false', { expires: 1 }); //One day only, for less than a day, see doc.: https://github.com/js-cookie/js-cookie/wiki/Frequently-Asked-Questions#expire-cookies-in-less-than-a-day
            $("body").css("background-position", "center top, left top");
            $(".dropdown-main").css("top", "-=" + topAlertHeight);
            $("#topAlert").addClass("hidden");
        });
    }
    else
    {
        $("#topAlert").addClass("hidden");   
    }

    //toggle responsive menu for small screen resolution
    $("#burger").click(function()
    {
        $("#admin_menu_header").toggleClass("show");
    });

    //get phase of currently shown orders as header

    $("#phase").text($(".v3-wide-btn.selected > div > span").text());


    //doprava v poslednom kroku obj
    $('input[type=radio][name^=doprava]').change(function() {
        if (typeof this.name == "string" && this.name.lastIndexOf("_")!=-1) {
            var parts = this.name.split('_');
            var categoryId = '_' + parts[parts.length-1];
        }
        else
            var categoryId = '';

        if (this.value.indexOf("|") != -1) {
            var amountDelivery = parseFloat(this.value.split('|')[5].replace(/,/g, ''));
            var price = parseFloat(this.value.split('|')[1]) * amountDelivery;
            var name = this.value.split('|')[2];
            var free = parseFloat(this.value.split('|')[3].replace(/,/g, ''));
            var sumInCategory = parseFloat(this.value.split('|')[4].replace(/,/g, ''));
            var previousDeliveryPrice = parseFloat($('#doprava_sel_price' + categoryId).text().replace(/,/g, ''));
            var fullObjPrice = parseFloat($('#objCelkCena').text().replace(/,/g, ''));
            var previousDeliveryPriceDph = parseFloat($('#doprava_sel_price_dph' + categoryId).text().replace(/,/g, ''));
            var fullObjPriceDph = parseFloat($('#objCelkCena_dph').text().replace(/,/g, ''));
            //dph
            var isDphEnabled = $('#isDphEnabled').val().toString() == '1' ? true : false;
            var postDph = parseFloat($('#postDph').val());
            fullObjPrice -= previousDeliveryPrice;
            if (sumInCategory >= free && free > 0) price = 0;
            if (isDphEnabled) fullObjPrice += (price / postDph);
            else fullObjPrice += price;
            fullObjPriceDph -= previousDeliveryPriceDph;
            fullObjPriceDph += price;
            if (isDphEnabled) {
                $('#doprava_sel_price' + categoryId).text(addThousandCommasToPrice((price / postDph).toFixed(2)));
                $('#doprava_sel_price_dph' + categoryId).text(addThousandCommasToPrice(price.toFixed(2)));
                $('#doprava_unit_price' + categoryId).text(addThousandCommasToPrice((price / postDph).toFixed(2)));
            } else {
                $('#doprava_sel_price' + categoryId).text(addThousandCommasToPrice(price.toFixed(2)));
                $('#doprava_unit_price' + categoryId).text(addThousandCommasToPrice(price.toFixed(2)));
            }
            $('#doprava_sel_name' + categoryId).text(name);
            if (isDphEnabled) {
                $('#objCelkCena_dph').text(addThousandCommasToPrice(fullObjPriceDph.toFixed(2)));
                $('#objCelkDph').text(addThousandCommasToPrice( (fullObjPriceDph-fullObjPrice).toFixed(2)));
            }
            $('#objCelkCena').text(addThousandCommasToPrice(fullObjPrice.toFixed(2)));
        }
    });
    
    $('input[type=text][name=productTextParam]').on('input propertychange paste', function() {
        $('input[type=hidden][name=productTextParamH]').val($(this).val());
    });
    
    //pred vlozenim do kosika sa pozbieraju vsetky vlastonosti ak su definovane ku produktu
    $('#vlozDoKosikaForm').submit(function(event) 
    {
        try 
        {
            $('#vlozDoKosikaForm input[type=submit]').attr('disabled', 'disabled');

            var hidValBeforeChange = $('input[type=hidden][name=vlastnosti]').val();
            $('input[type=hidden][name=vlastnosti]').val('');

            var selects = $('div.parametre select');
            if (null != selects && selects.length > 0) 
            {
                for (var i = 0; i < selects.length; i++) 
                {
                    var comma = (i == selects.length - 1) ? '' : ', ';
                    var hVal = $('input[type=hidden][name=vlastnosti]').val();
                    $('input[type=hidden][name=vlastnosti]').val(hVal + $(selects[i]).find(':selected').val().split('|')[0] + comma);
                }
            }

            //logovacie udaje
            var browserInfo = getBrowserInfo();
            var loginfo = 'OS: ' + browserInfo.os +' '+ browserInfo.osVersion + '|' +
                'Browser: ' + browserInfo.browser +' '+ browserInfo.browserMajorVersion +
                  ' (' + browserInfo.browserVersion + ')|' + 
                'Mobile: ' + browserInfo.mobile + '|' +
                'Flash: ' + browserInfo.flashVersion + '|' +
                'Cookies: ' + browserInfo.cookies + '|' +
                'Screen Size: ' + browserInfo.screen + '|' +
                'Full User Agent: ' + navigator.userAgent;

            $('<input />').attr('type', 'hidden')
                .attr('name', 'loginfo')
                .attr('id', 'loginfo')
                .attr('value', loginfo)
            .appendTo('#vlozDoKosikaForm');
        } 
        catch (ex) 
        {
            console.dir(ex);
        } 
        finally 
        {
            if ( null != selects && selects.length > 0 && 
                ($('input[type=hidden][name=vlastnosti]').val() == '' || $('input[type=hidden][name=vlastnosti]').val().length < 1) )
            {
                
            }
            return true;
        }
    });
    //adresy v novej objednavke
    handleCartToOrderAddresses();
    //vyber datumov od/do v admin objednavkach  
    handleAdminOrderDateRange();

    //filter products in category
    checkFilterCheckboxes();

    // change order of products in category
    submitOrderingForm();

    // toggle category filter on mobile device
    toggleFilter();
    // toggle left menu on mobile device
    toggleLeftMenu();

    //check if item in main menu has dropdown, if does then prevent from refreshing and keep dropdown opened
    if ('ontouchstart' in window) {
        $(".menu > ul > li > a").click(function (e) {
            if($(this).siblings(".dropdown-main").find(".cat").length > 0)
                e.preventDefault();
        });
        
    }

    //remove arrow and change item without children to direct link in responsive navigation
    $(".off-canvas-list li").each(function(){
        if($(this).find(".left-submenu").length ==0)
            $(this).removeClass("has-submenu");
    });

    $("section.gallery a").removeClass("disabled"); // enable clicking on gallery imgs

    if (typeof $.fn.fancybox == 'function') {
        $("a.fancybox-button").fancybox();
        $("a.lightbox_form").fancybox();
        $("div.lightbox-wrap a").fancybox();
    }
    if (typeof $.fn.zbox == 'function') {
        $(".zb[rel=zb]").zbox();        // zoom gallery - produkt images
        $(".zb[rel=lightbox]").zbox();  // zoom gallery - produkt gallery images
    }
    if (typeof $.fn.easyZoom == 'function') {
        // Instantiate EasyZoom instances
        var $easyzoom = $(".easyzoom").easyZoom();
        // Setup thumbnails
        var api1 = $easyzoom.filter(".easyzoom--with-thumbnails").data("easyZoom");
        $(".thumbnails").on("click", "a", function(e) {
            var $this = $(this);
            e.preventDefault();
            api1.swap($this.data("standard"), $this.attr("href"));
        });
    }


    //set height of top navbar desktop menu item from .dropdown-main height. <li> doesn't support height in percentage now.
    // Matej Malicky 2019/02/28 
    $("li.cat").height($(".dropdown-main").height() - 35);

    // prod.detail - update price to currently selected product parameter
    $("div.parametre select").trigger("change");
    if ($("#sumUnits").length > 0) {
        $("div.parametre select:first").change(() => UpdateUnitAmount());
        $("input[name=pocetKusov]").change(() => UpdateUnitAmount());
    }

});

function smoothScroll(element)
{
    var dest = document.getElementById(element);
    var to = dest.offsetTop;
    var duration = 500;

    $('html, body').animate({
        scrollTop: to
    }, duration, function(){

        // Add hash (#) to URL when done scrolling (default click behavior)
        $(element).focus();
    });
}

function addThousandCommasToPrice(nStr) {
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    }
    return x1 + x2;
}

function handleAdminOrderDateRange() {
    $('#adminObjFrom').datepicker({
        defaultDate: "+1w",
        changeMonth: false,
        numberOfMonths: 2,
        dateFormat: 'dd.mm.yy',
        showWeek: true,
        firstDay: 1,
        // showOn: "button",
        // buttonImage: "images/calendar.gif",
        // buttonImageOnly: true,
        // buttonText: "Select date",
        onClose: function(selectedDate) {
            $('#adminObjTo').datepicker("option", "minDate", selectedDate);
        }
    });
    $('#adminObjTo').datepicker({
        defaultDate: "+1w",
        changeMonth: false,
        numberOfMonths: 2,
        dateFormat: 'dd.mm.yy',
        showWeek: true,
        firstDay: 1,
        // showOn: "button",
        // buttonImage: "images/calendar.gif",
        // buttonImageOnly: true,
        // buttonText: "Select date",
        onClose: function(selectedDate) {
            $('#adminObjFrom').datepicker("option", "maxDate", selectedDate);
        }
    });
    $('#adminObjSubmitBtn').on('click', function() {
        window.location.href = '/index.php?skript=obj_Admin_' + $('#adminObjPhase').val() + '&adminObjFrom=' + $("#adminObjFrom").val() + '&adminObjTo=' + $("#adminObjTo").val();
    });
    
    var adminObjFrom = getUrlParamValue('adminObjFrom');
    var adminObjTo = getUrlParamValue('adminObjTo');
    
    if (adminObjFrom && adminObjFrom.length > 0) 
      $('#adminObjFrom').datepicker('setDate', adminObjFrom);
    
    if (adminObjFrom && adminObjTo.length > 0) 
      $('#adminObjTo').datepicker('setDate', adminObjTo);
}

function getUrlParamValue(name) {
    var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
    
    if (results == null) {
        return null;
    } else {
        return results[1] || 0;
    }
}
//platba v poslednom kroku obj
function changeTransportOptions(payId) {
    var paymentId = payId;
    
    //cyklus cez vsetky typy dopravy a nastavi disabled pre tie, ktore nie su sparovane s tymto typom platby
    $('input[type=radio][name^=doprava]').each(function() {
        var payTypes = $(this).attr('payments').split(',');
        var disable = true;
        if (null != payTypes && payTypes.length > 0) {
            for (var i = 0; i < payTypes.length; i++) {
                if (payTypes[i] == paymentId) {
                    disable = false;
                    break;
                }
            }
        }
        if (disable) $(this).attr('disabled', 'disabled');
        else $(this).removeAttr('disabled');

    });
    
    // je vybrata disabled doprava
    $('input[type=radio][name^=doprava]:checked:disabled').each(function(idx, item) {
        var inputToCheck = $('input[type=radio][name='+this.name+']:not([disabled]):first');
        if (null != inputToCheck) $(inputToCheck).prop("checked", true).trigger("change");
    });

}

function checkIfPOIsDefault() {
    var isPo = ($('input[name=is_po]').val() == 1);
    //PO
    if (isPo) {
        $('tr[name=poOnly]').show();
        if ($('input[name=fAddressDiff]')[0].checked) $('table[adrTyp=d] tr[fakturacnyUdaj=true]').hide();
        else $('table[adrTyp=d] tr[fakturacnyUdaj=true]').show();
    } else {
        $('tr[name=poOnly]').hide();
    }
}

function handleCartToOrderAddresses() {
    $('#objAdresyZoznam_d,#objAdresyZoznam_f').prop('selectedIndex', -1);
    //btn
    $('#orderPreviewBtn').button();
    var isPo = false;
    //radio change
    $('input[name=is_po]').change(function() {
        isPo = (this.value == 1);
        //PO
        if (isPo) {
            $('tr[name=poOnly]').show();
            if ($('input[name=fAddressDiff]')[0].checked) $('table[adrTyp=d] tr[fakturacnyUdaj=true]').hide();
            else $('table[adrTyp=d] tr[fakturacnyUdaj=true]').show();
        } else {
            $('tr[name=poOnly]').hide();
        }
    });
    //check change
    $('input[name=fAddressDiff]').change(function() {
        var isPo = ($('input[name=is_po]:checked').val() == 1);
        if (this.checked) {
            $('div[name=fPart]').show();
            if (isPo) $('table[adrTyp=d] tr[fakturacnyUdaj=true]').hide();
        } else {
            $('div[name=fPart]').hide();
            if (isPo) $('table[adrTyp=d] tr[fakturacnyUdaj=true]').show();
        }
    });
    //combo change
    $('#objAdresyZoznam_d,#objAdresyZoznam_f').change(function() {
        var adr = JSON.parse($(this).find(":selected").attr('adrobj'));
        var tableFrm = $('table[adrtyp=' + $(this).attr('adrtyp') + ']');
        $(tableFrm).find('input[name="oName_' + $(this).attr('adrtyp') + '"]').val(adr.name);
        $(tableFrm).find('input[name=oFirstSurname_' + $(this).attr('adrtyp') + ']').val(adr.firstSurname);
        $(tableFrm).find('input[name=oStreet_' + $(this).attr('adrtyp') + ']').val(adr.street);
        $(tableFrm).find('input[name=oCity_' + $(this).attr('adrtyp') + ']').val(adr.city);
        $(tableFrm).find('input[name=oPostNumber_' + $(this).attr('adrtyp') + ']').val(adr.postNumber);
        $(tableFrm).find('input[name=oIc_' + $(this).attr('adrtyp') + ']').val(adr.ic);
        $(tableFrm).find('input[name=oIcDph_' + $(this).attr('adrtyp') + ']').val(adr.icDph);
        $(tableFrm).find('input[name=oDic_' + $(this).attr('adrtyp') + ']').val(adr.dic);
        $('input[name=newAddress_d]').attr('disabled', 'disabled');
        $('input[name=newAddress_f]').attr('disabled', 'disabled');
    });
    $('table[adrtyp=d] input[type=text]').keypress(function() {
        $('input[name=newAddress_d]').removeAttr('disabled');
    });
    $('table[adrtyp=f] input[type=text]').keypress(function() {
        $('input[name=newAddress_f]').removeAttr('disabled');
    });
}

function createOrderPreview() {
    $('#kosikObjednavkaPrehlad').html('');
    if (!this.checkOrderRequiredFields()) {
        return false;
    }
    //div pre adresy
    var adrTable = $('<div class="row">');
    //prida dodaciu adresu
    var dTable = $('table[adrtyp=d').clone();
    $(dTable).find('input[type=checkbox]').closest('tr').remove();
    $(dTable).find('td').each(function() {
        //vynechaju sa fakturacne udaje
        if ($($(this).closest('tr')).first().attr('fakturacnyUdaj') && $($(this).closest('tr')).first().attr('fakturacnyUdaj') == 'true') {
            $(this).html('');
        } else {
            $(this).html('<span>' + $(this).find('input').val() + '</span>');
        }
    });
    var dDiv = $('<div class="columns small-12 medium-6">');
    //$(dDiv).append($('table[adrtyp=d').prevAll('h2:first').clone());
    $(dDiv).append('<h4>' + $('div#dPart').attr('dAddrHeader') +'</h4>');
    $(dDiv).append(dTable);
    $(adrTable).append(dDiv);
    //prida fakturacnu adresu  
    var fTable = $('input[name=fAddressDiff]')[0].checked ? $('table[adrtyp=f').clone() : $('table[adrtyp=d').clone();
    $(fTable).find('input[type=checkbox]').closest('tr').remove();
    $(fTable).find('td').each(function() {
        $(this).html('<span>' + $(this).find('input').val() + '</span>');
    });
    var fDiv = $('<div class="columns small-12 medium-6">');
    //$(fDiv).append($('table[adrtyp=f').prevAll('h2:first').clone());
    $(fDiv).append('<h4>' + $('div#dPart').attr('fAddrHeader') +'</h4>');
    $(fDiv).append(fTable);
    $(adrTable).append(fDiv);
    $('#kosikObjednavkaPrehlad').append(adrTable);
    
    //div pre platbu a dopravu
    var payTransTable = $('<div class="row primaryContent secondaryContent">');
    
    //prida typ platby
    var payType = $('input[name=platba]:checked').parent().clone();
    var pDiv = $('<div class="columns small-12 medium-6">');
    $(pDiv).append($('input[name=platba]').closest('table').prevAll('h4:first').clone());
    $(payType).find('input[type=radio]').remove();
    $(pDiv).append($(payType).html());
    $(payTransTable).append(pDiv);
    
    //prida typ dopravy
    var transType = $('input[name^=doprava]:checked').parent().clone();
    var tDiv = $('<div class="columns small-12 medium-6">');
    $(tDiv).append($('input[name^=doprava]').closest('table').prevAll('h4:first').clone());
    $(transType).find('input[type=radio]').remove();
    $(transType).append($('input[name^=doprava]:checked').closest('tr').find('td:nth-of-type(2)').html());
    $(transType).append($('input[name^=doprava]:checked').closest('tr').find('td:nth-of-type(3)').html());
    $(tDiv).append($(transType).html());
    $(payTransTable).append(tDiv);
    $('#kosikObjednavkaPrehlad').append(payTransTable);
    
    //prida kosik s cenou dopravy
    var cart = $('table.objednavkaZakaznik').clone();
    var cartSumtable = $('div.cartSumtable').clone();
    var cartToOrder = $("#cartToOrder");
    var cDiv = $('<div/>');
    $(cDiv).append($('table.objednavkaZakaznik').prevAll('h4:first').clone());
    $(cDiv).append(cart);
    $('#kosikObjednavkaPrehlad').append(cDiv);
    $('#kosikObjednavkaPrehlad').append(cartSumtable);
    //voucher
    var vouchers = $('#usedVouchersTab td[isVoucher=1]');
    if (null != vouchers && vouchers.length > 0)
    {

        var paramTextVisible = ($('th[name=paramTextVisible]').length > 0) ? '<td></td>' : '';
        var deliveryVisible = ($('th[name=deliveryVisible]').length > 0) ? '<td></td>' : '';
        var isDph = $('#isDphEnabled').val().toString() == '1';
        var transport = parseFloat($(cart).find('#doprava_sel_price').text().replace(/,/g, '')).toFixed(2);
        var orderPrice = parseFloat(($(cartToOrder).find('#objCelkCena').text().replace(/,/g, '')) - transport).toFixed(2);
        var orderPriceDph = isDph ? parseFloat(($(cartToOrder).find('#objCelkCena_dph').text().replace(/,/g, '')) - transport).toFixed(2) : 0;
        var discount = 0;
        var discountDph = 0;
        //cyklus cez pouzite kupony
        for (var i = 0; i < vouchers.length; i++)
        {
            //nominalny
            if ($(vouchers[i]).attr('type') == 1)
            {
                var dis = parseFloat($(vouchers[i]).attr('amount'));
                var disDph = parseFloat($(vouchers[i]).attr('amount'));
                discount += dis;
                discountDph += disDph;
            }
            //percentualny
            else if ($(vouchers[i]).attr('type') == 2)
            {
                var dis = discount = parseFloat((parseInt($(vouchers[i]).attr('amount')) / 100) * orderPrice).toFixed(2);
                var disDph = discountDph = parseFloat((parseInt($(vouchers[i]).attr('amount')) / 100) * orderPriceDph).toFixed(2);
            }

            let dphValue = isDph ? ('<br>S DPH -' + parseFloat(disDph).toFixed(2) + ' &euro;') : '';
            let dphString = isDph ? 'bez DPH' : '';
            let voucher = $('<tr><td class="left">' + $(vouchers[i]).text() + '</td><td class="left">Kupón</td>' +
                         paramTextVisible + '<td>1 ks</td>' + deliveryVisible + '<td></td><td class="right">' +
                         dphString + ' -' + 
                        parseFloat(dis).toFixed(2) + ' &euro;' + dphValue + '</td></tr>');

            $(cart).find('#doprava_sel_price').closest('tr').after(voucher);
        }
        
        //nahradenie ceny
        $($('div.cartSumtable')).find('#objCelkCena').text(addThousandCommasToPrice(parseFloat(parseFloat(orderPrice - discount) + parseFloat(transport)).toFixed(2)));
        
        if (isDph) 
          $($('div.cartSumtable')).find('#objCelkCena_dph').text(addThousandCommasToPrice(parseFloat(parseFloat(orderPriceDph - discountDph) + parseFloat(transport)).toFixed(2)));
    }

    //obchodne podmienky
    $('#kosikObjednavkaPrehlad').
    append('<div >' + 
        $('div#dPart').attr('rulesInfo1') + ' <a href="index.php/' + $('div#dPart').attr('notice') + '" rel="external" target="blank" title="' + $('div#dPart').attr('rulesInfo2') + '">' + 
            $('div#dPart').attr('rulesInfo2') + '</a> ' + $('div#dPart').attr('rulesInfo3') + '.');

    $('#kosikObjednavkaPrehlad').dialog({
        title: $('div#dPart').attr('orderPreviewHeader'),
        resizable: false,
        draggable: false,
        position: {
            my: "center",
            at: "top",
            of: window
        },
        width: $(window).width() - 10,
        modal: true,
        close: function(event, ui) {
            $('#kosikObjednavkaPrehlad').html('');
            $('#kosikObjednavkaPrehlad').hide();
        },
        buttons: [
            /*$('div#dPart').attr('createOrder'): function() {
                $(this).dialog('close');
                $('#orderCreateFrm').submit();
            },
            $('div#dPart').attr('back'): function() {
                $(this).dialog('close');
            }*/
            {
                text: $('div#dPart').attr('createOrder'),
                'id': "orderPreviewCreateBtn",
                click : function() {
                    $(this).dialog('close');
                    $('#orderCreateFrm').submit();
                }
            },
            {
                text: $('div#dPart').attr('back'),
                'id': "orderPreviewCloseBtn",
                click : function() {
                    $(this).dialog('close');
                }
            }
        ],
        open: function(event, ui) {
            var dialog = $(this).closest('.ui-dialog');
            //vytvoria sa kopie buttonov
            var originalButtons = $('.ui-dialog-buttonpane', dialog);
            var clonedButtons = originalButtons.clone(true).addClass('clone');
            //ak buttony este neboli duplovane, tak sa pridaju do vrchnej casti dialogu
            if (('.ui-dialog-titlebar', dialog).find('.clone').length == 0) 
              $('.ui-dialog-titlebar', dialog).after(clonedButtons);
        }
    });
}

function checkOrderRequiredFields() {
    var allFilled = true;
    //polia
    var fields = $('div[name=cartToOrder] input[required]:visible');
    for (var i = 0; i < fields.length; i++) {
        //border reset
        $(fields[i]).css("border", $('textarea').css('border'));
        if ($.trim($(fields[i]).val()).length == 0) {
            allFilled &= false;
            $(fields[i]).css("border", "2px solid red");
        }
    }

    //platba
    $('input[name=platba]').closest('table').first().css('border', 'none');
    if (null == $('input[name=platba]').val() || $.trim($('input[name=platba]').val()).length == 0) {
        allFilled &= false;
        $('input[name=platba]').closest('table').first().css('border', '2px solid red');
    }

    //doprava
    $('input[name^=doprava]').closest('table').first().css('border', 'none');
    if (null == $('input[name^=doprava]').val() || $.trim($('input[name^=doprava]').val()).length == 0) {
        allFilled &= false;
        // $('input[name=doprava]').closest('table').first().css('border', '2px solid red');
        $(this).closest('table').first().css('border', '2px solid red');
    }

    if (!allFilled) {
        var target = $('div[name=dPart]');
        if (target.length) {
            var top = target.offset().top;
            $('html,body').animate({
                scrollTop: top
            }, 1000);
            return false;
        }
    }

    return allFilled;
}

function roundNumber(num, dec) {
    var result = Math.round(num * Math.pow(10, dec)) / Math.pow(10, dec);
    
    return result;
}

function ChangeDeliveryPrice() {
    //objCelkCena
}

function SetProductPrice(selValue) 
{
    var splitted = selValue.split('|');
    //je to dvojica hodnota/cena?
    if (selValue.indexOf("|") != -1) 
    {
        var cenabezdph = splitted[1];
        var cenasdph = parseFloat(cenabezdph) * 120 / 100;
        document.getElementById('cenaBezDPH').innerHTML = parseFloat(cenabezdph).toFixed(2);
        if (null != document.getElementById('cenaSDph') && 'undefined' != document.getElementById('cenaSDph')) document.getElementById('cenaSDph').innerHTML = cenasdph.toFixed(2);
        //nastavi vlastnost
        splitted = document.getElementById('selectWithPrice').value.split('|');
        document.getElementById('selectWithPrice').value = splitted[0] + '|' + selValue;
    } 
    else 
    {
        /*var cenabezdph = document.getElementById('cenaBezDPH').innerHTML;
        var cenasdph = parseFloat(cenabezdph)*120/100;
        document.getElementById('cenaBezDPH').innerHTML = parseFloat(cenabezdph).toFixed(2);
        if(null != document.getElementById('cenaSDph') && 'undefined' != document.getElementById('cenaSDph'))
          document.getElementById('cenaSDph').innerHTML = cenasdph.toFixed(2);
    
        //nastavi vlastnost
        splitted = document.getElementById('selectWithPrice').value.split('|');
        document.getElementById('selectWithPrice').value = splitted[0]+'|'+selValue+'|'+cenabezdph;*/
    }
}

function UpdateUnitAmount()
{
    let amount = parseFloat( $("input[name=pocetKusov]").val() );
    let propValuePrice = $("div.parametre select:first").val();
    if (propValuePrice && propValuePrice.indexOf("|") != -1)
    {
        let splitted = propValuePrice.split('|');
        let propValue =  parseFloat( splitted[0] );

        let cenabezdph = parseFloat(splitted[1]);
        let cenasdph = parseFloat(cenabezdph) * 120 / 100;

        document.getElementById('cenaBezDPH').innerHTML = parseFloat(cenabezdph).toFixed(2);
        if (null != document.getElementById('cenaSDph') && 'undefined' != document.getElementById('cenaSDph')) document.getElementById('cenaSDph').innerHTML = cenasdph.toFixed(2);
        
        if (!isNaN(amount) && !isNaN(propValue) && !isNaN(cenabezdph))
        {
            $("#sumUnits").text((amount * propValue).toFixed(2));
            $("#sumPrice").text((amount * cenabezdph).toFixed(2));
            $("#sumPriceVat").text((amount * cenasdph).toFixed(2));
        }
    }
}

function objEditFrmAddNewProd()
{
    if($('#objEditFrm #objEditFrmNewIdProd').attr('prodId').length != 0)
    {
        var curr = $('#objEditFrm #objEditFrmNewIdProd').attr('curr');
        var amount = 1;
        
        if(!isNaN($('#objEditFrm #objEditFrmNewAmount').val()))
            amount = $('#objEditFrm #objEditFrmNewAmount').val();

        var paramTextVisible = ($('th[name=paramTextVisible]').length > 0) ? '<td></td>' : '';
        var deliveryVisible = ($('th[name=deliveryVisible]').length > 0) ? '<td></td>' : '';

        var finalPrice = (+(Math.round($('#objEditFrm #objEditFrmNewIdProd').attr('out_price') * amount + "e+2")  + "e-2")).toFixed(2);
        var finalPriceVat = (+(Math.round($('#objEditFrm #objEditFrmNewIdProd').attr('out_price_vat') * amount + "e+2")  + "e-2")).toFixed(2);

        var dphVisible = '';
        if($('th[name=dphVisible]').length > 0)
            dphVisible = '<td class="right">' + $('#objEditFrm #objEditFrmNewIdProd').attr('vat') + ' %</td>' + 
            '<td class="right">' + finalPriceVat + ' ' + curr + '</td>';

        var newRow = '<tr class="objEditFrmAdd" style="background-color:#95dfa6;" stockId="' + $('#objEditFrm #objEditFrmNewIdProd').attr('stockId') + '">' + 
            '<td>'+ '<a href="' + $('#objEditFrm #objEditFrmNewIdProd').attr('url') + '" class="leftKat">' + 
                $('#objEditFrm #objEditFrmNewIdProd').attr('cat') + '/' +
                $('#objEditFrm #objEditFrmNewIdProd').attr('prodName')+ ', ' + $('#objEditFrm #objEditFrmNewIdProd').attr('value_property') +'</a></td>' + 
            '<td>'+ $('#objEditFrm #objEditFrmNewIdProd').attr('value_property') +'</td>' + 
            paramTextVisible + 
            '<td>'+ '<input type="number" value="' + amount + '" size="7" class="pocetKusov" step=1 />' +'</td>' + deliveryVisible +
            '<td class="right">'+ '<input type="number" value="' + $('#objEditFrm #objEditFrmNewIdProd').attr('out_price') + '" size="7" class="pocetKusov"  step=0.01 />' + 
            '</td><td>' + finalPrice + ' ' + curr + '</td>' +  
            dphVisible + 
            '<tr>'
        $('#objEditFrm table > tbody > tr').eq($('#objEditFrm table tr').length-3).after(newRow);
    }

    $('#objEditFrm #objEditFrmNewIdProd').val('');
    $('#objEditFrm #objEditFrmNewIdProd').attr('prodId', '');
    $('#objEditFrm #objEditFrmNewPrice').val('');
    $('#objEditFrm #objEditFrmNewAmount').val('1');

    return false;
}

function editObj(idObjednavky, idUser) 
{
    var isDph = $('#isDphEnabled').val().toString() == '1';

    $('table.objednavkaZakaznik').clone().appendTo('#objEditFrm');

    ///
    var control = $('#editObjAddRowControl table tr').clone();
    $('#objEditFrm table > tbody > tr').eq($('#objEditFrm table tr').length-1).after($(control));

    $('#objEditFrm #objEditFrmNewIdProd').autocomplete({
        source: "/app/grid/grid_select.php?t=espis&n=false",
        minLength: 3,
        select: function( event, ui ) {
            $('#objEditFrm #objEditFrmNewIdProd').attr('prodId', ui.item.id);
            $('#objEditFrm #objEditFrmNewIdProd').attr('stockId', ui.item.stockId);
            $('#objEditFrm #objEditFrmNewIdProd').attr('value_property', ui.item.value_property);
            $('#objEditFrm #objEditFrmNewIdProd').attr('out_price', ui.item.out_price);
            $('#objEditFrm #objEditFrmNewIdProd').attr('out_price_vat', ui.item.out_price_vat);
            $('#objEditFrm #objEditFrmNewIdProd').attr('prodName', ui.item.name);
            $('#objEditFrm #objEditFrmNewIdProd').attr('url', ui.item.url);
            $('#objEditFrm #objEditFrmNewIdProd').attr('cat', ui.item.cat);
            $('#objEditFrm #objEditFrmNewIdProd').attr('vat', ui.item.vat);
            $('#objEditFrm #objEditFrmNewIdProd').attr('curr', ui.item.curr);

            $('#objEditFrm #objEditFrmNewPrice').val(ui.item.out_price); 
        }
    });
    $('.ui-autocomplete').css('zIndex',1000);
    $('.ui-autocomplete').css('max-height','200px');
    $('.ui-autocomplete').css('overflow-y','auto');
    $('.ui-autocomplete').css('overflow-x','hidden');

    $('#objEditFrm #editObjAddRowControlBtn').button();
    $( "#objEditFrm #editObjAddRowControlBtn" ).click( function( event ) {
      event.preventDefault();
    } );
    ///
    // $('#objEditFrm td[data-pid]').each(function() {
    //     var val = $(this).html();
    //     var splitted = val.split('&');
    //     if (splitted.length > 0) {
    //         $(this).html('<input type="text" value="' + splitted[0].trim() + '" size="7" class="pocetKusov" />');
    //     }
    // });

    var decimal = 2;
    $('#objEditFrm td[data-pid]').each(function() {
        var val = $(this).html();
        decimal = (decimal === 0 ) ? 2 : 0;
        var step = 0;
        if (decimal == 2){ step = 0.01;}
        else if (decimal == 0){
            step = 1;
        }
        var splitted = val.split('&');
        if (splitted.length > 0) {
            $(this).html('<input type="number" width="60px" min="1" value="' + parseFloat(splitted[0].trim()).toFixed(decimal) + '" class="pocetKusov" step=' + step +' required/>');
        }
    });

    //set responsive modal width
    let dialogWidth = $(window).width();
    dialogWidth*=0.8;
    let dialogHeight = $(window).height();
    dialogHeight*= 0.9;

    $('#objEditFrm').dialog({
        height: dialogHeight,
        width: dialogWidth,
        modal: true,
        title: 'Úprava objednávky číslo: ' + idObjednavky,
        close: function(event, ui) {
            $('#objEditFrm').html('');
            $('#objEditFrm').hide();
        },
        buttons: {
            'Uložiť': function() {
                var items = new Array();
                var inputs = $(this).find('td[data-pid] input[type=number]');

                for (var i = 0; i < inputs.length; i += 2) {
                    items.push({
                        'id': $(inputs[i]).parent('td').data('vybranyId'),
                        'count': $(inputs[i]).val(),
                        'price': $(inputs[i + 1]).val()
                    })
                }
                
                var objEditFrmAddItems = new Array();
                var objEditFrmAddRows = $(this).find('tr.objEditFrmAdd');

                for (var i = 0; i < objEditFrmAddRows.length; i++) {
                    objEditFrmAddItems.push({
                        'stockId': $(objEditFrmAddRows[i]).attr('stockId'),
                        'count': $($(objEditFrmAddRows[i]).find('input[type=number]')[0]).val(),
                        'price': $($(objEditFrmAddRows[i]).find('input[type=number]')[1]).val()
                    })
                }

                //update SQL
                $.ajax({
                    url: '/app/ws/wsObjednavkaEdit.php',
                    async: false,
                    type: 'POST',
                    data: {
                        'objId': idObjednavky,
                        'items': items,
                        'addedProducts': objEditFrmAddItems,
                        'user': idUser,
                        'oper': 'edit'
                    },
                    complete: function(data) {
                        if (data.responseText.trim() === 'OK'){
                            location.reload();
                        } 
                        else
                        {
                            alert('Ľutujeme, nepodarilo sa upraviť objednávku');
                        }
                    }
                });
                $(this).dialog('close');
                location.reload();
            },
            'Zavrieť': function() {
                $(this).dialog('close');
            }
        }
    });
}

function chitObj(idObjednavky) 
{
    var isDph = $('#isDphEnabled').val().toString() == '1';

    $('table.objednavkaZakaznik').clone().appendTo('#objEditFrm');

    
    $('#objEditFrm #objEditFrmNewIdProd').autocomplete({
        source: "/app/grid/grid_select.php?t=espis&n=false",
        minLength: 3,
        select: function( event, ui ) {
            $('#objEditFrm #objEditFrmNewIdProd').attr('prodId', ui.item.id);
            $('#objEditFrm #objEditFrmNewIdProd').attr('stockId', ui.item.stockId);
            $('#objEditFrm #objEditFrmNewIdProd').attr('value_property', ui.item.value_property);
            $('#objEditFrm #objEditFrmNewIdProd').attr('out_price', ui.item.out_price);
            $('#objEditFrm #objEditFrmNewIdProd').attr('out_price_vat', ui.item.out_price_vat);
            $('#objEditFrm #objEditFrmNewIdProd').attr('prodName', ui.item.name);
            $('#objEditFrm #objEditFrmNewIdProd').attr('url', ui.item.url);
            $('#objEditFrm #objEditFrmNewIdProd').attr('cat', ui.item.cat);
            $('#objEditFrm #objEditFrmNewIdProd').attr('vat', ui.item.vat);
            $('#objEditFrm #objEditFrmNewIdProd').attr('curr', ui.item.curr);

            $('#objEditFrm #objEditFrmNewPrice').val(ui.item.out_price); 
        }
    });
    $('.ui-autocomplete').css('zIndex',1000);
    $('.ui-autocomplete').css('max-height','200px');
    $('.ui-autocomplete').css('overflow-y','auto');
    $('.ui-autocomplete').css('overflow-x','hidden');


    //add empty <th> to first and last row = create column for checkboxes
    $('#objEditFrm table tr:first th:first').before('<th></th>');
    $('#objEditFrm table tr:last th:first').before('<th></th>');

    
    $('#objEditFrm table').find('tr').each(function()
    { 
        $(this).find('td').eq(0).before('<td><input class="checkbox" type="checkbox"></td>');
    });


    $('#objEditFrm #editObjAddRowControlBtn').button();
    $( "#objEditFrm #editObjAddRowControlBtn" ).click( function( event ) {
      event.preventDefault();
    } );
    ///
    var decimal = 2;
    $('#objEditFrm td[data-pid]').each(function() {
        var val = $(this).html();
        decimal = (decimal === 0 ) ? 2 : 0;
        if (decimal == 2){ step = 0.01;}
        else if (decimal == 0){
            step = 1;
        }
        var split
        var splitted = val.split('&');
        if (splitted.length > 0) {
            $(this).html('<input type="number" width="60px" min="1" value="' + parseFloat(splitted[0].trim()).toFixed(decimal) + '" class="pocetKusov" step=' + step +' required/>');
        }
    });


    //set responsive modal width
    let dialogWidth = $(window).width();
    dialogWidth*=0.8;
    let dialogHeight = $(window).height();
    dialogHeight*= 0.9;

    $('#objEditFrm').dialog({
        height: dialogHeight,
        width: dialogWidth,
        modal: true,
        title: 'Vystavenie dobropisu objednávky číslo: ' + idObjednavky,
        close: function(event, ui) {
            $('#objEditFrm').html('');
            $('#objEditFrm').hide();
        },
        buttons: {
            'Uložiť': function() {
                $('body').addClass('wait');
                let checkedItems = [];
                let table = document.getElementById('objEditFrm');
                if ($('input:checkbox:checked', table).length == 0) {
                    alert("Prosím, vyberte aspoň 1 produkt!");
                    return false;
                }
                $('input:checkbox:checked', table).each(function()
                {
                    // jQuery   data-{attribute} properties & .data() function - just google jQuery doc :)
                    checkedItems.push({
                                        'id':$(this).closest('tr').find('td[data-vybrany-id]').data('vybranyId'),
                                        'count':$(this).closest('tr').find('td[data-vybrany-id] input[type=number]:first').val(),
                                        'price': $(this).closest('tr').find('td[data-vybrany-id] input[type=number]:last').val(),
                                        // 'price': $(this).closest('tr').find('td[data-price]').data('price')
                                        });
                }).get();

                //update SQL
                $.ajax({
                    url: '/app/ws/wsObjednavkaEdit.php',
                    async: false,
                    type: 'POST',
                    data: {
                        'objId': idObjednavky,
                        'items': checkedItems,
                        'addedProducts': null,
                        'oper': 'chit'
                    },
                    complete: function(data) {
                        // received "\nOKOKOKOK" for "some" reason
                        if (data.responseText.trim().includes("OKOK")){
                        // if (data.responseText.trim() === 'OKOK'){
                            location.reload();
                        } 
                        else
                        {
                            alert('Ľutujeme, nepodarilo sa vystaviť dobropis');
                        }
                    }
                });
                $(this).dialog('close');
                // location.reload();
            },
            'Zavrieť': function() {
                $(this).dialog('close');
            }
        }
    });
}

function sendMail(idObj){
    $.ajax({
        url: '/app/ws/wsObjednavkaEdit.php',
        async: false,
        type: 'POST',
        data: {
            'objId': idObj,
            'oper': 'sendMail'
        },
        complete: function(data) {
            if (data.responseText.trim() == 'OK'){
                alert("Mail bol úspešne zaslaný zákazníkovi.");
                location.reload();
            } 
            else
            {
                console.log(data);
                alert('Ľutujeme, nepodarilo sa zaslať mail');
            }
        }
    });
}

function openFilemanager(folder, closeFnDelegate, openUploadAfterLoad) {
    $('#modalTarget').dialog({
        'width': $(window).width() - 50,
        'height': $(window).height() - 50,
        'left': '0px',
        'top': '0px',
        close: function() {
            $('#modalTarget').html('');
            
            //vykonanie delegata ak je definovany
            if(null != closeFnDelegate && typeof closeFnDelegate != 'undefined')
                closeFnDelegate();
        }
    });
    var fmIframe = jQuery('<iframe/>', {
        'src': '/filemanager/filemanager/dialog.php?type=0&relative_url=1&lang=sk&fldr='+folder,
        'width': $(window).width() - 200,
        'height': $(window).height() - 200
    }).on('load', function() 
        {
            if(openUploadAfterLoad)
            {
                $(this).contents().find('.upload-btn').click();
                openUploadAfterLoad = false;
            }

        }
    );

    $('#modalTarget').append(fmIframe);

    //fmIframe.find('.uploader').show(500);
}

function imageManipulator(){
    $('#modalTarget').dialog({
        'width': $(window).width() - 50,
        'height': $(window).height() - 50,
        'left': '0px',
        'top': '0px',
        close: function() {
            $('#modalTarget').html('');
        }
    });

    var content = '<div class="flex">';

    content += '<canvas id="imageBase" width="600px" height="800px"></canvas>';

    content += '<div width="50%" style="margin-left: 20px; text-align: center">';
        content += '<i id="imagePlaceholder" class="far fa-image" style="font-size: 15em;"></i>';
        content += '<img src="" class="hidden" height="200" id="uploadedImage" alt="Image preview...">';
        content += '<input style="display: block;" type="file" id="imageUploader" onchange="previewFile()">';

        content += '<div class="flex">';
            content += '<div class="halfWidth">';
                content += '<a id="applyLayerButton" tabindex="1" class="primaryButton" onclick="applyLayer()">Upraviť</a>';
            content += '</div>';
            content += '<div class="halfWidth">';
                content += '<a id="downloadImageButton" class="primaryButton" onclick="downloadImage(this)" href>Stiahnuť</a>';
            content += '</div>';
        content += '</div>';
    content += '</div>';
    
    //end of main flex div
    content += '</div>';

    $('#modalTarget').append(content);
    $('#applyLayerButton').addClass('inactiveLink');
    $('#downloadImageButton').addClass('inactiveLink');

}

function previewFile() {
    var file    = $('#imageUploader')[0].files[0];
    var reader  = new FileReader();
  
    reader.addEventListener("load", function () {
      $('#uploadedImage').attr('src', reader.result);
    }, false);
  
    if (file) {
        reader.readAsDataURL(file);
        $('#uploadedImage').removeClass('hidden');
        $('#imagePlaceholder').addClass('hidden');
        $('#applyLayerButton').removeClass('inactiveLink');
    }
}

function applyLayer(){
    var imageBaseCanvas= $('#imageBase');
    imageBase = imageBaseCanvas[0].getContext('2d');
    var templateImage = new Image();
    templateImage.crossOrigin='anonymous';
    // new Date() prevents from browser caching of templateImage
    templateImage.src="https://dev.unition.sk/filemanager/source/sablonaNaFoto.png?" + new Date();

    templateImage.onerror = function (){
        alert("Na adrese filemanager/sablonaNaFoto.png nie je obrázok!");
        return;
    }
    
    templateImage.onload = function() {
        imageBase.drawImage(templateImage, 480, 0);
        $('#downloadImageButton').removeClass('inactiveLink');
    }

    var uploadedImage = new Image();
    uploadedImage.onload = function () {imageBase.drawImage(uploadedImage, 0, 0);}
    uploadedImage.src = $('#uploadedImage').attr('src');
}

function downloadImage(element){
    $('#applyLayerButton').removeClass('inactiveLink');
    $('#downloadImageButton').addClass('inactiveLink');

    var href = $('#imageBase').get(0).toDataURL("image/png");
    element.download = "new-design.png";
    element.href = href;
}

function applyVoucher() {
    let isDphEnabled = ($('#isDphEnabled').val().toString() == '1');

    price = (isDphEnabled) ? $('#objCelkCena_dph').text() : $('#objCelkCena').text();
    price -= (isDphEnabled) ? $('#doprava_sel_price_dph').text() : $('#doprava_sel_price').text()
    $.ajax({
        url: '/app/ws/wsVoucher.php',
        async: false,
        type: 'POST',
        data: {
            'k': $('#oCart').val(),
            'c': $('#oVoucher').val(),
            'p': price,
            'pb': $('#objCelkCena').text(),
            'oper': 'add',
            'z': $('#oZakId').val()
        },
        success: function(data) {
            data = JSON.parse(data);
            if (data.msg == 'OK_ADD') {
                addVoucherToHtml(data.voucher, data.vybranyid);
            } else {
                var errorMsg = 'Nastala chyba, ospravedlňujeme sa. Kupón momentálne nie je možne použiť.';
                switch (data.msg) {
                    case ('ERROR_NOT_ALLOWED'):
                        errorMsg = 'Kupón nie je povolený.';
                        break;
                    case ('ERROR_EXPIRED'):
                        errorMsg = 'Platnosť kupónu vypršala.';
                        break;
                    case ('ERROR_DUPLICITE'):
                        errorMsg = 'Kupón je možné použiť len 1-krát.';
                        break;
                    case ('ERROR_TOO_MANY'):
                        errorMsg = 'Kupón už nie je možné použiť.';
                        break;
                    case ('ERROR_NEED_MORE_MONEY'):
                        errorMsg = 'Hodnota nákupu nie je dostatočná.';
                        errorMsg += '<br />Minimálna hodnota: ' + data.requiredPrice;
                        break;
                    case ('ERROR_COMIBATION_PERC'):
                        errorMsg = 'Nie je možné kombinovať kupóny s percentuálnou zľavou.';
                        break;
                    case ('ERROR_COMBINATION_MISMATCH'):
                        errorMsg = 'Nie je možné kombinovať kupóny.';
                        break;
                    case ('ERROR_NO_VOUCHER'):
                        errorMsg = 'Kód kupónu je neplatný.';
                        break;
                }
                showErrDialog(errorMsg, 'Chyba pri použití kupónu', 'voucherErrMsg');
            }
        },
        failure: function() {},
        complete: function() {
            $('#oVoucher').val('');
        }
    });
}

function showErrDialog(errorMsg, errorTitle, divSelcetor) {
    $("#" + divSelcetor).html(errorMsg);
    $("#" + divSelcetor).dialog({
        resizable: false,
        modal: false,
        title: errorTitle,
        height: 200,
        width: 400,
        buttons: {
            'Zavrieť': function() {
                $(this).dialog('close');
            }
        }
    });
}

function addVoucherToHtml(voucher, vybranyId) {
    var mena = parseInt(voucher.type_voucher) == 1 ? "&euro;" : "%";
    var tab = $('#usedVouchersTab');
    var tr = $('<tr />');
    $('<td isVoucher="1" type="' + voucher.type_voucher + '" amount="' + voucher.amount_voucher + '">' + voucher.name_voucher + '</td>').appendTo(tr);
    $('<td class="right">' + parseFloat(voucher.amount_voucher).toFixed(2) + mena + '</td>').appendTo(tr);
    $('<td><a href="#" vybranyid="' + vybranyId + '" class="primaryButton smaller warning removeVoucherBtn" title="Odstrániť kupón"><i class="fas fa-times"></i></a></td>').appendTo(tr);
    tab.append(tr);
    tab.show();
    $('.removeVoucherBtn').click(function() {
        removeVoucher($(this).attr('vybranyid'));
        return false;
    });
}

function removeVoucher(kosikItemId) {
    $.ajax({
        url: '/app/ws/wsVoucher.php',
        async: false,
        type: 'POST',
        data: {
            'k': '',
            'c': kosikItemId,
            'p': '',
            'pb': '',
            'oper': 'del',
            'z': $('#oZakId').val()
        },
        success: function(data) {
            data = JSON.parse(data);
            if (data.msg == 'OK_DEL') {
                removeVoucherToHtml(kosikItemId);
            } else {
                showErrDialog('Kupón sa nepodarilo odstrániť.', 'Chyba pri odstránení kupónu', 'voucherErrMsg');
            }
        },
        failure: function() {},
        complete: function() {}
    });
}

function removeVoucherToHtml(vybranyId) {
    $('a[vybranyid=' + vybranyId + ']').closest('tr').remove();
}

////-----------------------------////
// externe dokumenty
function externalLinks() {
    if (!document.getElementsByTagName) return;
    var anchors = document.getElementsByTagName("a");
    for (var i = 0; i < anchors.length; i++) {
        var anchor = anchors[i];
        if (anchor.getAttribute("href") && (anchor.getAttribute("rel") == "external" || anchor.getAttribute("rel") == "external nofollow")) anchor.target = "_blank";
    }
}
window.onload = externalLinks;

function LPad(ContentToSize, PadLength, PadChar) {
    var PaddedString = ContentToSize.toString();
    for (i = ContentToSize.length + 1; I <= PadLength; i++) {
        PaddedString = PadChar + PaddedString;
    }
    return PaddedString;
}

function getLastHalfYear() {
    var datum = new Date();
    var day = datum.getDate();
    var slovakMonth = new Array();
    slovakMonth[1] = "Január";
    slovakMonth[2] = "Február";
    slovakMonth[3] = "Marec";
    slovakMonth[4] = "Apríl";
    slovakMonth[5] = "Máj";
    slovakMonth[6] = "Jún";
    slovakMonth[7] = "Júl";
    slovakMonth[8] = "August";
    slovakMonth[9] = "September";
    slovakMonth[10] = "Október";
    slovakMonth[11] = "November";
    slovakMonth[12] = "December";
    for (var i = 0; i < 6; i++) {
        datum.setDate(datum.getDate() - (i * 30));
        var month = datum.getMonth() + 1;
        if (month.toString().length < 2) {
            months = "0" + month;
        } else {
            months = month;
        }
        document.write('<li><a href="/index.php/archiv-tipov#' + months + '" title="Tipy mesiaca ' + slovakMonth[month] + '">' + slovakMonth[month] + '</a></li>');
        datum = new Date();
    }
}

// skryvanie FAQ
function openFAQ(faqno) {
    if ($("#odpoved" + faqno + ":first").is(":hidden")) {
        $("#odpoved" + faqno).slideDown("slow");
        $("#up" + faqno).slideDown("slow");
        $("#down" + faqno).slideUp("slow");
    } else {
        $("#odpoved" + faqno).slideUp("slow");
        $("#up" + faqno).slideUp("slow");
        $("#down" + faqno).slideDown("slow");
    }
}

function closeFAQ(faqno) {
    $("#odpoved" + faqno).slideUp("slow");
    $("#up" + faqno).slideUp("slow");
    $("#down" + faqno).slideDown("slow");
}

// smooth scrolling    
$("a[href='#top']").click(function() {
    $("html, body").animate({
        scrollTop: 0
    }, "slow");
    return false;
});

// scroll-to-top button show and hide
jQuery(document).ready(function() {
    jQuery(window).scroll(function() {
        if (jQuery(this).scrollTop() > 100) {
            jQuery('.scrollup').fadeIn();
        } else {
            jQuery('.scrollup').fadeOut();
        }
    });
    // scroll-to-top animate
    jQuery('.scrollup').click(function() {
        jQuery("html, body").animate({
            scrollTop: 0
        }, 600);
        return false;
    });
});

// facebook script do indexu
(function(d, s, id) {
    try {
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) return;
        js = d.createElement(s);
        js.id = id;
        js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=543416872399337";
        fjs.parentNode.insertBefore(js, fjs);
    } catch (ex) {
        console.dir(ex);
    }
}(document, 'script', 'facebook-jssdk'));

var formischanged = false;
function showGridFrmUpdateDialog(dataToSend, whichbutton, formid, rowid)
{
    //zatvori edit frm
    $('#editmodlist .ui-icon-closethick').trigger('click');

    var nextPrevRowId = null;

    if(whichbutton == 'next')
        nextPrevRowId = getNextRowid(rowid);
    else
        nextPrevRowId = getPreviousRowid(rowid);
    
    $("#formedit-onchange-dialog").dialog
    ({

      resizable: false,
      height:200,
      modal: true,
      buttons: {
        "Storno": function() {
            $(this).dialog( "close" );
            //otvori edit frm
            jQuery("#list").jqGrid('editGridRow', nextPrevRowId, null );
            //CofisTinyMCE.initEditor('textarea');
            formischanged = false;
        },
        "Uložiť": function() {
          urlforedit = $("#list").jqGrid("getGridParam", "editurl");
          $.ajax({
            method: "POST",
            type: "POST",
            url: urlforedit,
            data: dataToSend,
            })
            .done(function( msg ) {
                alert( "Riadok uložený " + msg);
                $('#list').trigger( 'reloadGrid' );
                
                //otvori edit frm
                jQuery("#list").jqGrid('editGridRow', nextPrevRowId, null );
                //CofisTinyMCE.initEditor('textarea');
                formischanged = false;
            });

          $( this ).dialog( "close" );
        }
      }
    });

}


function compareGridAndForm(whichbutton, formid, rowid)
{
    


    var gridrowdata = $("#list").getRowData(rowid);

    var dataToSend = '';

        dataToSend += 'id'
        dataToSend +='=' ;
        dataToSend += gridrowdata[Object.keys(gridrowdata)[0]];
        dataToSend +='&';

        

    console.log(gridrowdata);
                

                for(var gridcell in gridrowdata)
                {
                    if (typeof $("[id='"+ gridcell +"']").val() === "undefined") 
                    {
                        continue;
                    }

                    var formcell = $("[id='"+ gridcell +"']").val();

                    if ( $("[id='"+ gridcell +"']").is(':checkbox') ) //checkbox
                    {
                        if (!( (gridrowdata[gridcell])==$("[id='"+ gridcell +"']").is(':checked') ))
                        {
                            console.log(gridrowdata[gridcell]+" Nesedí "+ $("[id='"+ gridcell +"']").is(':checked'));
                            formischanged = true;

                            dataToSend += gridcell;
                            dataToSend +='=' ;
                            dataToSend += $("[id='"+ gridcell +"']").is(':checked');
                            dataToSend += '&';

                        }
                        else console.log("Checkbox Sedí");


                        
                        continue;
                    }
/*
                    if($("#textarea").length > 0){
                    //your code here
                    }
 */
                    if( $("textarea[id='"+ gridcell + "']").length )
                    {
                    var memoryDecoded = $("<textarea/>").html(gridrowdata[gridcell]).text();
                    var mceDecoded = $("<textarea/>").html($("textarea[id='"+ gridcell + "']").val()).text();
                    //alert(mceDecoded);
                    //console.log(memoryDecoded+"!!!!!!!!!!!!!!!!!!!!"+ mceDecoded); //1.gridrowdata[gridcell]

                    if (memoryDecoded!=mceDecoded)
                    {
                        console.log("TinyMCE nesedí");
                        console.log(memoryDecoded+"!!!!!!!!!!!!!!!!!!!!"+ mceDecoded); //1.gridrowdata[gridcell]
                        formischanged = true;
                    }

                    continue;
                    }

                    /*
                    if( $("[id='"+ gridcell +"_ifr']").length ) //tinyMCE  tinyMCE.get('vyrobok_popis').getContent()
                    {
                        //gridrowdata[gridcell]=gridrowdata[gridcell].replace(/[\n\r\t]/g,"");
                        
                        if ( ( $('<div/>').html(tinyMCE.get(gridcell).getContent()).html() != gridrowdata[gridcell])
                          && !( ( $('<div/>').html(tinyMCE.get(gridcell).getContent()).html()=='<p><br data-mce-bogus="1"></p>' )
                                &&
                             (gridrowdata[gridcell]=="") ) )
                        {
                            console.log(">>"+gridcell+"<<"+gridrowdata[gridcell]+" TinyMCE Nesedí "+ $('<div/>').html(tinyMCE.get(gridcell).getContent()).html());
                            formischanged = true;
                        }
                        else console.log("Sedí")

                            dataToSend += gridcell;
                            dataToSend +='=' ;
                            dataToSend += '';
                            dataToSend += $("[id='"+ gridcell +"_ifr']").contents().find("#tinymce").html();
                            dataToSend += '&';
                        continue;
                    }
                    */
                    
                    if($("[id='"+ gridcell + "']").is("select")) { 
                    // the input field is not a select
                    //alert("select");

                    dataToSend += gridcell;
                    dataToSend +='=' ;
                            
                    dataToSend += '';
                    dataToSend += formcell;
                    dataToSend += '&';

                    continue;
                    }


                    if(gridrowdata[gridcell] != formcell) //text
                      //&& !( (gridrowdata[gridcell]=="") && (formcell=="NULL")) ) //combobox
                      
                    {
                        console.log(gridcell+":"+gridrowdata[gridcell]+" Nesedí "+ formcell );
                        formischanged = true;
                        
                    } 
                    else console.log("Text/Combobox Sedí");
                     
                            dataToSend += gridcell;
                            dataToSend +='=' ;
                            
                            dataToSend += '';
                            dataToSend += formcell;
                            dataToSend += '&';
                        

                }
                dataToSend+='oper=edit';
                console.log("Vhodné na uloženie: " + formischanged);
                if (formischanged)
                {
                    showGridFrmUpdateDialog(dataToSend, whichbutton, formid, rowid);
                    tinymce.remove('textarea');
                }
}


function getPreviousRowid(selrow) { 
    var gridArr = $("#list").getDataIDs();
    var curr_index = 0;
     
    for (var i = 0; i < gridArr.length; i++) {
        if (gridArr[i] == selrow){
            curr_index = i;
            break;
        }
    }
     
    return gridArr[curr_index - 1];
}
 
function getNextRowid(selrow) { 
    var gridArr = $("#list").getDataIDs();
    var curr_index = 0;
     
    for (var i = 0; i < gridArr.length; i++) {
        if (gridArr[i] == selrow){
            curr_index = i;
            break;
        }
    }

    return gridArr[curr_index + 1];
}

function getBrowserInfo() 
{
    var unknown = '-';

    // screen
    var screenSize = '';
    if (screen.width) {
        width = (screen.width) ? screen.width : '';
        height = (screen.height) ? screen.height : '';
        screenSize += '' + width + " x " + height;
    }

    // browser
    var nVer = navigator.appVersion;
    var nAgt = navigator.userAgent;
    var browser = navigator.appName;
    var version = '' + parseFloat(navigator.appVersion);
    var majorVersion = parseInt(navigator.appVersion, 10);
    var nameOffset, verOffset, ix;

    // Opera
    if ((verOffset = nAgt.indexOf('Opera')) != -1) {
        browser = 'Opera';
        version = nAgt.substring(verOffset + 6);
        if ((verOffset = nAgt.indexOf('Version')) != -1) {
            version = nAgt.substring(verOffset + 8);
        }
    }
    // Opera Next
    if ((verOffset = nAgt.indexOf('OPR')) != -1) {
        browser = 'Opera';
        version = nAgt.substring(verOffset + 4);
    }
    // Edge
    else if ((verOffset = nAgt.indexOf('Edge')) != -1) {
        browser = 'Microsoft Edge';
        version = nAgt.substring(verOffset + 5);
    }
    // MSIE
    else if ((verOffset = nAgt.indexOf('MSIE')) != -1) {
        browser = 'Microsoft Internet Explorer';
        version = nAgt.substring(verOffset + 5);
    }
    // Chrome
    else if ((verOffset = nAgt.indexOf('Chrome')) != -1) {
        browser = 'Chrome';
        version = nAgt.substring(verOffset + 7);
    }
    // Safari
    else if ((verOffset = nAgt.indexOf('Safari')) != -1) {
        browser = 'Safari';
        version = nAgt.substring(verOffset + 7);
        if ((verOffset = nAgt.indexOf('Version')) != -1) {
            version = nAgt.substring(verOffset + 8);
        }
    }
    // Firefox
    else if ((verOffset = nAgt.indexOf('Firefox')) != -1) {
        browser = 'Firefox';
        version = nAgt.substring(verOffset + 8);
    }
    // MSIE 11+
    else if (nAgt.indexOf('Trident/') != -1) {
        browser = 'Microsoft Internet Explorer';
        version = nAgt.substring(nAgt.indexOf('rv:') + 3);
    }
    // Other browsers
    else if ((nameOffset = nAgt.lastIndexOf(' ') + 1) < (verOffset = nAgt.lastIndexOf('/'))) {
        browser = nAgt.substring(nameOffset, verOffset);
        version = nAgt.substring(verOffset + 1);
        if (browser.toLowerCase() == browser.toUpperCase()) {
            browser = navigator.appName;
        }
    }
    // trim the version string
    if ((ix = version.indexOf(';')) != -1) version = version.substring(0, ix);
    if ((ix = version.indexOf(' ')) != -1) version = version.substring(0, ix);
    if ((ix = version.indexOf(')')) != -1) version = version.substring(0, ix);

    majorVersion = parseInt('' + version, 10);
    if (isNaN(majorVersion)) {
        version = '' + parseFloat(navigator.appVersion);
        majorVersion = parseInt(navigator.appVersion, 10);
    }

    // mobile version
    var mobile = /Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(nVer);

    // cookie
    var cookieEnabled = (navigator.cookieEnabled) ? true : false;

    if (typeof navigator.cookieEnabled == 'undefined' && !cookieEnabled) {
        document.cookie = 'testcookie';
        cookieEnabled = (document.cookie.indexOf('testcookie') != -1) ? true : false;
    }

    // system
    var os = unknown;
    var clientStrings = [
        {s:'Windows 10', r:/(Windows 10.0|Windows NT 10.0)/},
        {s:'Windows 8.1', r:/(Windows 8.1|Windows NT 6.3)/},
        {s:'Windows 8', r:/(Windows 8|Windows NT 6.2)/},
        {s:'Windows 7', r:/(Windows 7|Windows NT 6.1)/},
        {s:'Windows Vista', r:/Windows NT 6.0/},
        {s:'Windows Server 2003', r:/Windows NT 5.2/},
        {s:'Windows XP', r:/(Windows NT 5.1|Windows XP)/},
        {s:'Windows 2000', r:/(Windows NT 5.0|Windows 2000)/},
        {s:'Windows ME', r:/(Win 9x 4.90|Windows ME)/},
        {s:'Windows 98', r:/(Windows 98|Win98)/},
        {s:'Windows 95', r:/(Windows 95|Win95|Windows_95)/},
        {s:'Windows NT 4.0', r:/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/},
        {s:'Windows CE', r:/Windows CE/},
        {s:'Windows 3.11', r:/Win16/},
        {s:'Android', r:/Android/},
        {s:'Open BSD', r:/OpenBSD/},
        {s:'Sun OS', r:/SunOS/},
        {s:'Linux', r:/(Linux|X11)/},
        {s:'iOS', r:/(iPhone|iPad|iPod)/},
        {s:'Mac OS X', r:/Mac OS X/},
        {s:'Mac OS', r:/(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/},
        {s:'QNX', r:/QNX/},
        {s:'UNIX', r:/UNIX/},
        {s:'BeOS', r:/BeOS/},
        {s:'OS/2', r:/OS\/2/},
        {s:'Search Bot', r:/(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/}
    ];
    for (var id in clientStrings) {
        var cs = clientStrings[id];
        if (cs.r.test(nAgt)) {
            os = cs.s;
            break;
        }
    }

    var osVersion = unknown;

    if (/Windows/.test(os)) {
        osVersion = /Windows (.*)/.exec(os)[1];
        os = 'Windows';
    }

    switch (os) {
        case 'Mac OS X':
            osVersion = /Mac OS X (10[\.\_\d]+)/.exec(nAgt)[1];
            break;

        case 'Android':
            osVersion = /Android ([\.\_\d]+)/.exec(nAgt)[1];
            break;

        case 'iOS':
            osVersion = /OS (\d+)_(\d+)_?(\d+)?/.exec(nVer);
            osVersion = osVersion[1] + '.' + osVersion[2] + '.' + (osVersion[3] | 0);
            break;
    }
    
    // flash (you'll need to include swfobject)
    /* script src="//ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js" */
    var flashVersion = 'no check';
    if (typeof swfobject != 'undefined') {
        var fv = swfobject.getFlashPlayerVersion();
        if (fv.major > 0) {
            flashVersion = fv.major + '.' + fv.minor + ' r' + fv.release;
        }
        else  {
            flashVersion = unknown;
        }
    }

    var ret = 
    {
        screen: screenSize,
        browser: browser,
        browserVersion: version,
        browserMajorVersion: majorVersion,
        mobile: mobile,
        os: os,
        osVersion: osVersion,
        cookies: cookieEnabled,
        flashVersion: flashVersion
    };

    return ret;
}

function checkStockWhenStornoToNew(objId, typPlatby)
{
    $.get('app/class/classStock.php?obj=' + objId + '&oper=storno', function(data)
    { 
        if(data.trim() == 'true' || data == true)
        {
            window.location.href = '/?skript=zmenFazu&iObj=' + objId + '&nFaza=nc&platba=' + typPlatby;
        }
        else
        {
            alert('Nie je možné stornovať objednávku kvôli skladovým zásobám!');
        }
    });
}

//****poslednych MAX_LAST_SEEN_ITEMS zobrazenych produktov****//
//funkcia volana na serveri, ziska aktualne zobrazeny produkt
function hadleLastSeenItems()
{
    var url = window.location.href;
    var splitted = url.split('/');
    var itemId = null;
    var catId = null;
    var supCatId = null;

    for(var i = splitted.length-1; i >= splitted.length-3; i--)
    {
        var urlPart = splitted[i];
        var partSplitted = urlPart.split('-');
        var typer = partSplitted[0];
        var identifier = partSplitted[partSplitted.length-1];
        
        if(isNaN(identifier))
        {
            return;
        }
        
        if( typer == 'p')
        {
            itemId = identifier;
        }
        else if( typer == 'k')
        {
            if(null == catId)
                catId = identifier;
            else
                supCatId = identifier;
        }
    }

    generateLastItemsContent(itemId, catId, supCatId);
}

//zavola sa server part na vygenerovanie obsahu a nasledne insert aktualneho produktu do LS
function generateLastItemsContent(itemId, catId, supCatId)
{
    //zavola server
    $.ajax({
        url: '/app/ws/wsProduct.php',
        async: false,
        type: 'POST',
        data: {
            'oper': 'lastItems',
            'lastItems': getAllLastSeenAsJSON()
        },
        success: function(res) {
            $('#lastSeenItems').html(res);
            console.dir($('#lastSeenItems'));
        },
        failure: function() {},
        complete: function() {}
    });

    //vlozi dalsiu lastItem
    insertItemToLastSeen(itemId, catId, supCatId);
}

//insert produktu do LS
function insertItemToLastSeen(itemId, catId, supCatId)
{
    var MAX_LAST_SEEN_ITEMS = 10;

    if (typeof(Storage) !== "undefined")
    {
        lastItems = getAllLastSeen();

        if(lastSeenContainsItem(lastItems, itemId))
            return;

        var lastItem = {};
        lastItem.item = itemId;
        lastItem.cat = catId;
        lastItem.supCat = supCatId;

        var index = 0;
        var tmpLasts = lastItems;

        if(lastItems.length < MAX_LAST_SEEN_ITEMS)
        {
            index = lastItems.length;
        }
        else
        {         
            index = lastItems.length - 1;

            for(var i = 0; i < lastItems.length; i++)
            {
                lastItems[i] = tmpLasts[i+1];
            }

            tmpLasts = [];
        }

        lastItems[index] = lastItem;
        localStorage.setItem("lastItems", JSON.stringify(lastItems));
    }
}

//vrati vsetky produktu z LS ako pole objektov
function getAllLastSeen()
{
    // Store
    var lastItems = JSON.parse(localStorage.getItem("lastItems"));

    if(null == lastItems)
        lastItems = [];

    return lastItems;
}

//vrati vsetky produktu z LS ako JSON
function getAllLastSeenAsJSON()
{
    // Store
    var lastItems = localStorage.getItem("lastItems");

    if(null == lastItems)
        lastItems = '';

    return lastItems;
}

//definuje, ci uz pole obsahuje produkt podla ID
function lastSeenContainsItem(lastItems, itemId)
{
    var ret = false;

    for(var i = 0; i < lastItems.length; i++)
    {
        if(parseInt(lastItems[i].item) == parseInt(itemId))
        {
            ret = true;
            break;
        }
    }

    return ret;
}

function contactSecurity()
{
    if($('#contact_sec_val').val().length == 0)
    {
        $('#no_robot').css('background-image', 'url("/images/icon/icon-ok-black.png")');
        $('#no_robot').css('background-repeat', 'no-repeat');
        $('#no_robot').css('background-size', '20px 20px');
        $('#contact_sec_val').val('niesomrobot');
    }
    else
    {
        $('#no_robot').css('background-image', 'url("")');
        $('#no_robot').val('');
        $('#contact_sec_val').val('');
    }
}


//CUSTOM FILTERS
function doCustomFilter()
{
    var cols = '';
    var vals = '';

    //checkboxy
    $('form.customFilter > input:checkbox').each(function () {
        var thisVal = (this.checked ? $(this).val() : '');
        var thisName = (this.checked ? $(this).attr('name') : '');

        if(cols.length == 0)
        {
            cols = thisName;
            vals = thisVal;
        }
        else
        {
            cols += '|' + thisName;
            vals += '|' + thisVal;
        }
    });

    //dropdown
    $('form.customFilter > select').each(function () {
        var thisVal = $(this).find(":selected").val();
        var thisName = $(this).attr('name');

        if(cols.length == 0)
        {
            cols = thisName;
            vals = thisVal;
        }
        else
        {
            cols += '|' + thisName;
            vals += '|' + thisVal;
        }
    });

    document.forms['customFilter'].action = '?fltCol=' + cols + '&fltVal=' + vals;
    document.forms['customFilter'].submit();
}

function submitPropertyFilter()
{
    var url = window.location.href;
    var priceProperties = new Object();

    $('.leftBar #priceProps input:checked').each(function(){

        //initialize new array, if the property doesn't have array as value yet
        if(priceProperties[$(this).attr('name')] == null) priceProperties[$(this).attr('name')] = [];
    
        priceProperties[$(this).attr('name')].push($(this).val());  
    
    });
    $('.leftBar #priceProps select option:selected').each(function(){
        if ($(this).val() == "") return; // ignore null selection
        //initialize new array, if the property doesn't have array as value yet
        propName = $(this).parent().attr('name');
        if(priceProperties[propName] == null) priceProperties[propName] = [];
        priceProperties[propName].push($(this).val());
    
    });
 
    var fltPriceProp = encodeURIComponent(JSON.stringify(priceProperties));
    url = setGetParameter(url, "fltPriceProp", fltPriceProp);

    var properties = new Object();
    $('.leftBar #props input:checked').each(function(){

        //initialize new array, if the property doesn't have array as value yet
        if(properties[$(this).attr('name')] == null) properties[$(this).attr('name')] = [];
    
        properties[$(this).attr('name')].push($(this).val());
    
    });
    $('.leftBar #props select option:selected').each(function(){
        if ($(this).val() == "") return; // ignore null selection
        //initialize new array, if the property doesn't have array as value yet
        propName = $(this).parent().attr('name');
        if(properties[propName] == null) properties[propName] = [];
        properties[propName].push($(this).val());
    
    });
 
    var fltProp = encodeURIComponent(JSON.stringify(properties));
    url = setGetParameter(url, "fltProp", fltProp);

    var minPrice = $('.leftBar #priceFilter input[name="minPrice"]').val();
    url = (minPrice != "" && minPrice != undefined)? setGetParameter(url, "minPrice", minPrice) : removeGetParameter(url, "minPrice");

    var maxPrice = $('.leftBar #priceFilter input[name="maxPrice"]').val();
    url = (maxPrice != "" && minPrice != undefined) ? setGetParameter(url, "maxPrice", maxPrice) : removeGetParameter(url, "maxPrice");

    var producer = [];
    $('.leftBar #producerFilter input:checked').each(function(){
        producer.push($(this).val());
    });
    $producer = encodeURIComponent(producer);
    url = producer.length > 0 ? setGetParameter(url, "producer", producer) : removeGetParameter(url, "producer") ;

    //remove paging parameter to start at first page
    url = removeGetParameter(url, "page");

    //reload page
    window.location = url;

}

function checkFilterCheckboxes()
{
    var priceProperties = JSON.parse(decodeURIComponent(getUrlParamValue('fltPriceProp')));

    if(priceProperties != null)
    {        
        $.each(priceProperties, function(prop, values){
            for(var i in values)
            {
                $('.leftBar #priceProps input[name=' + prop + '][value="'+ values[i]+'"]').attr('checked', true);
                $('.leftBar #priceProps select[name=' + prop + ']').val(values[i]);
            }
        });
    }

    var properties = JSON.parse(decodeURIComponent(getUrlParamValue('fltProp')));

    if(properties != null)
    {        
        $.each(properties, function(prop, values){
            for(var i in values)
            {
                $('.leftBar #props input[name=' + prop + '][value="'+ values[i]+'"]').attr('checked', true);
                $('.leftBar #props select[name=' + prop + ']').val(values[i]);
            }
        });
    }

}

function setGetParameter(url, parameter, value)
{

    // delete parameter and value from previous search to make URL more readable and simplier BE functionality 
    url = removeGetParameter(url, parameter);

    //check if there is already a questionmark in URL
    url = (url.indexOf('?') > -1) ? url + "&" : url + "?";
    
    url = url + parameter + "=" + value;

    return url;

}

function removeGetParameter(location, parameter)
{
    var regEx = new RegExp("&?" + parameter + "=([^&]$|[^&]*)", 'i');
    return location.replace(regEx, "");
}

function removePropertyFilter()
{   
    var url = window.location.href;
    url = removeGetParameter(url, "fltPriceProp");
    url = removeGetParameter(url, "fltProp");
    url = removeGetParameter(url, "minPrice");
    url = removeGetParameter(url, "maxPrice");
    url = removeGetParameter(url, "producer");

    window.location = url;
}

function submitOrderingForm()
{
    var url = window.location.href;

    $('select[id=orderForm]').on('change', function(){
        var order = $(this).val();
        window.location = setGetParameter(url, "order", order);
    });

}

function toggleLeftMenu()
{
    if($(window).width() >= 768)
    {
        $('#leftMenu').toggleClass("hidden");
    }

    $("#leftMenuToggler").on("click", function(){
        $("#leftMenu").toggleClass("hidden");
    });
}

function toggleFilter()
{
    if($(window).width() >= 768)
    {
        $('#filterBody').toggleClass("hidden");
    }

    $("#filterToggler").on("click", function(){
        $("#filterBody").toggleClass("hidden");
    });
}

function toggleResponsiveSearch()
{
    $("#searchBarResponsive").toggleClass("hidden");
    $("#searchToggle").toggleClass("active");
}
