PageSourceSearch

https://nabbi.sk/files/js/js_eQ_T2ONqNYMBPe25fDyPcWZTFKNvswkMjTOu1mTqgEY.js

js nabbi.sk collected 2026-10-04 20:56:26 UTC 68,351 bytes, 1,463 lines download raw bytes

1Drupal.locale = { 'pluralFormula': function ($n) { return Number((($n==1)?(0):((($n>=2)&&($n<=4))?(1):2))); }, 'strings': {"":{"An AJAX HTTP error occurred.":"Vyskytla sa chyba AJAX HTTP.","HTTP Result Code: !status":"HTTP Result Code: !status","An AJAX HTTP request terminated abnormally.":"Abnorm\u00e1lne ukon\u010denie AJAX HTTP po\u017eiadavky.","Debugging information follows.":"Nasleduje v\u00fdpis ladiacich inform\u00e1ci\u00ed.","Path: !uri":"Cesta: !uri","StatusText: !statusText":"Stavov\u00fd text: !statusText","ResponseText: !responseText":"ResponseText: !responseText","ReadyState: !readyState":"ReadyState: !readyState","Loading":"Nahr\u00e1va sa","(active tab)":"(akt\u00edvna karta)","Hide":"Skry\u0165","Show":"Zobrazi\u0165","@title dialog":"@title dial\u00f3g","Configure":"Konfigurova\u0165","Not restricted":"Neobmedzen\u00e9","Restricted to certain pages":"Obmedzi\u0165 pre konkr\u00e9tne str\u00e1nky","Not customizable":"Neprisp\u00f4sobite\u013en\u00fd","The changes to these blocks will not be saved until the \u003Cem\u003ESave blocks\u003C\/em\u003E button is clicked.":"Zmeny v rozmiestnen\u00ed blokov sa neprejavia, pok\u00fdm nestla\u010d\u00edte tla\u010didlo \u003Cem\u003EUlo\u017ei\u0165 bloky\u003C\/em\u003E","The block cannot be placed in this region.":"Blok nem\u00f4\u017ee by\u0165 umiestnen\u00fd v tomto regi\u00f3ne.","Done":"Hotovo","Hide summary":"Skry\u0165 zhrnutie","
1Edit summary":"Upravi\u0165 zhrnutie","Not in menu":"Nie je v menu","New revision":"Nov\u00e1 rev\u00edzia","No revision":"\u017diadna rev\u00edzia","By @name on @date":"Od pou\u017e\u00edvate\u013ea @name - @date","By @name":"Pod\u013ea @name","Not published":"Nezverejnen\u00e9","Alias: @alias":"Alias: @alias","No alias":"\u017diaden alias","Autocomplete popup":"Pole s automatick\u00fdm dopl\u0148ovan\u00edm","Searching for matches...":"H\u013eadaj\u00fa sa zhody...","Edit":"Upravi\u0165","Requires a title":"Vy\u017eaduje nadpis","Don\u0027t display post information":"Nezobrazova\u0165 inform\u00e1cie o publikovan\u00ed","Re-order rows by numerical weight instead of dragging.":"Namiesto \u0165ahania preusporiadajte riadky pomocou \u010d\u00edseln\u00fdch v\u00e1h.","Show row weights":"Zobrazi\u0165 v\u00e1hy riadkov","Hide row weights":"Skry\u0165 v\u00e1hy riadkov","Drag to re-order":"Potiahnut\u00fdm zmen\u00edte poradie","Changes made in this table will not be saved until the form is submitted.":"Zmeny vykonan\u00e9 v tejto tabu\u013eke nebud\u00fa ulo\u017een\u00e9 pokia\u013e sa formul\u00e1r neodo\u0161le.","Please wait...":"Pros\u00edm \u010dakajte...","Automatic alias":"Automatick\u00fd alias","File browsing is disabled in directory %dir.":"Prezeranie s\u00faborov v prie\u010dinku %dir je vypnut\u00e9.","Upload":"Nahra\u0165","Do you want to refresh the current directory?":"Chcete obnovi\u0165 s\u00fa\u010dasn\u00fd adres\u00e1r?","Only files with the following extensions are allowed: %files-allowed.":"Povolen\u00e9 s\u00fa len tieto typy s\u00faborov: %files-allowed.","Delete selected files?":"Zmaza\u0165 vybran\u00e9 s\u00fabory?","Please select a thumbnail.":"Pros\u00edm vyberte miniat\u00faru.","Please specify dimensions within the allowed range that is from 1x1 to @dimensions.":"Pros\u00edm zadajte rozmery v povolenom rozsahu od 1x1 do @dimensions.","Please select a file.":"Zvo\u013ete pros\u00edm s\u00fabor.","%filename is not an image.":"%filename nie je obr\u00e1zok.","You must select at least %num files.":"Mus\u00edte ozna\u010di\u0165 aspo\u0148 %num s\u00faborov","You are not allowed to operate on more than %num files.":"Nem\u00e1te dovolen\u00e9 pracova\u0165 s viac ako %num s\u00fabormi s\u00fa\u010dasne.","Close":"Zatvori\u0165","Enabled":"Povolen\u00e9","Disabled":"Zak\u00e1zan\u00e9","Select all rows in this table":"Ozna\u010di\u0165 v\u0161etky riadky v tejto tabu\u013eke","Deselect all rows in this table":"Odzna\u010di\u0165 v\u0161etky riadky v tejto tabu\u013eke","The selected file %filename cannot be uploaded. Only files with the following extensions are allowed: %extensions.":"Zvolen\u00fd s\u00fabor %filename nie je mo\u017en\u00e9 nahra\u0165. Povolen\u00e9 s\u00fa len s\u00fabory s t\u00fdmito pr\u00edponami: %extensions.","This permission is inherited from the authenticated user role.":"Toto opr\u00e1vnenie sa ded\u00ed z kateg\u00f3rie Prihl\u00e1sen\u00fd pou\u017e\u00edvate\u013e.","Next":"\u010eal\u0161\u00ed","None":"\u017diadne","Sunday":"nede\u013ea","Monday":"pondelok","Tuesday":"utorok","Wednesday":"streda","Thursday":"\u0161tvrtok","Friday":"piatok","Saturday":"sobota","Add":"Prida\u0165","All":"V\u0161etky","Prev":"Predch","Mon":"Po","Tue":"Ut","Wed":"St","Thu":"\u0160t","Fri":"Pi","Sat":"So","Sun":"Ne","January":"janu\u00e1r","February":"febru\u00e1r","March":"marec","April":"apr\u00edl","May":"m\u00e1j","June":"j\u00fan","July":"j\u00fal","August":"august","September":"september","October":"okt\u00f3ber","November":"november","December":"december","Anonymous users":"Neprihl\u00e1sen\u00ed pou\u017e\u00edvatelia","Today":"Dnes","Jan":"jan","Feb":"feb","Mar":"mar","Apr":"apr","Jun":"j\u00fan","Jul":"j\u00fal","Aug":"aug","Sep":"sep","Oct":"okt","Nov":"nov","Dec":"dec","Su":"Ne","Mo":"Po","Tu":"Ut","We":"St","Th":"\u0160t","Fr":"Pi","Sa":"So","mm\/dd\/yy":"mm\/dd\/rr","@size KB":"@size KB","@size MB":"@size MB","@size GB":"@size GB","Other":"Ostatn\u00e9","No name":"Bez n\u00e1zvu","Remove group":"Odstr\u00e1ni\u0165 skupinu","Apply (all displays)":"Pou\u017ei\u0165 (v\u0161etky zobrazenia)","Apply (this display)":"Pou\u017ei\u0165 (toto zobrazenie)","Translatable":"Prekladate\u013en\u00fd","Downloads":"Prevzatia","No title":"Bez nadpisu","SKU":"K\u00f3d tovaru","Sell price":"Predajn\u00e1 cena","No style":"\u017diaden \u0161t\u00fdl"}} };;
vendor: 11,960 bytes, lines 2-7
2/*!
3	Colorbox 1.6.4
4	license: MIT
5	http://www.jacklmoore.com/colorbox
6*/
7(function(t,e,i){function n(i,n,o){var r=e.createElement(i);return n&&(r.id=Z+n),o&&(r.style.cssText=o),t(r)}function o(){return i.innerHeight?i.innerHeight:t(i).height()}function r(e,i){i!==Object(i)&&(i={}),this.cache={},this.el=e,this.value=function(e){var n;return void 0===this.cache[e]&&(n=t(this.el).attr("data-cbox-"+e),void 0!==n?this.cache[e]=n:void 0!==i[e]?this.cache[e]=i[e]:void 0!==X[e]&&(this.cache[e]=X[e])),this.cache[e]},this.get=function(e){var i=this.value(e);return t.isFunction(i)?i.call(this.el,this):i}}function h(t){var e=W.length,i=(A+t)%e;return 0>i?e+i:i}function a(t,e){return Math.round((/%/.test(t)?("x"===e?E.width():o())/100:1)*parseInt(t,10))}function s(t,e){return t.get("photo")||t.get("photoRegex").test(e)}function l(t,e){return t.get("retinaUrl")&&i.devicePixelRatio>1?e.replace(t.get("photoRegex"),t.get("retinaSuffix")):e}function d(t){"contains"in x[0]&&!x[0].contains(t.target)&&t.target!==v[0]&&(t.stopPropagation(),x.focus())}function c(t){c.str!==t&&(x.add(v).removeClass(c.str).addClass(t),c.str=t)}function g(e){A=0,e&&e!==!1&&"nofollow"!==e?(W=t("."+te).filter(function(){var i=t.data(this,Y),n=new r(this,i);return n.get("rel")===e}),A=W.index(_.el),-1===A&&(W=W.add(_.el),A=W.length-1)):W=t(_.el)}function u(i){t(e).trigger(i),ae.triggerHandler(i)}function f(i){var o;if(!G){if(o=t(i).data(Y),_=new r(i,o),g(_.get("rel")),!U){U=$=!0,c(_.get("className")),x.css({visibility:"hidden",display:"block",opacity:""}),I=n(se,"LoadedContent","width:0; height:0; overflow:hidden; visibility:hidden"),b.css({width:"",height:""}).append(I),j=T.height()+k.height()+b.outerHeight(!0)-b.height(),D=C.width()+H.width()+b.outerWidth(!0)-b.width(),N=I.outerHeight(!0),z=I.outerWidth(!0);var h=a(_.get("initialWidth"),"x"),s=a(_.get("initialHeight"),"y"),l=_.get("maxWidth"),f=_.get("maxHeight");_.w=Math.max((l!==!1?Math.min(h,a(l,"x")):h)-z-D,0),_.h=Math.max((f!==!1?Math.min(s,a(f,"y")):s)-N-j,0),I.css({width:"",height:_.h}),J.position(),u(ee),_.get("onOpen"),O.add(F).hide(),x.focus(),_.get("trapFocus")&&e.addEventListener&&(e.addEventListener("focus",d,!0),ae.one(re,function(){e.removeEventListener("focus",d,!0)})),_.get("returnFocus")&&ae.one(re,function(){t(_.el).focus()})}var p=parseFloat(_.get("opacity"));v.css({opacity:p===p?p:"",cursor:_.get("overlayClose")?"pointer":"",visibility:"visible"}).show(),_.get("closeButton")?B.html(_.get("close")).appendTo(b):B.appendTo("<div/>"),w()}}function p(){x||(V=!1,E=t(i),x=n(se).attr({id:Y,"class":t.support.opacity===!1?Z+"IE":"",role:"dialog",tabindex:"-1"}).hide(),v=n(se,"Overlay").hide(),L=t([n(se,"LoadingOverlay")[0],n(se,"LoadingGraphic")[0]]),y=n(se,"Wrapper"),b=n(se,"Content").append(F=n(se,"Title"),R=n(se,"Current"),P=t('<button type="button"/>').attr({id:Z+"Previous"}),K=t('<button type="button"/>').attr({id:Z+"Next"}),S=t('<button type="button"/>').attr({id:Z+"Slideshow"}),L),B=t('<button type="button"/>').attr({id:Z+"Close"}),y.append(n(se).append(n(se,"TopLeft"),T=n(se,"TopCenter"),n(se,"TopRight")),n(se,!1,"clear:left").append(C=n(se,"MiddleLeft"),b,H=n(se,"MiddleRight")),n(se,!1,"clear:left").append(n(se,"BottomLeft"),k=n(se,"BottomCenter"),n(se,"BottomRight"))).find("div div").css({"float":"left"}),M=n(se,!1,"position:absolute; width:9999px; visibility:hidden; display:none; max-width:none;"),O=K.add(P).add(R).add(S)),e.body&&!x.parent().length&&t(e.body).append(v,x.append(y,M))}function m(){function i(t){t.which>1||t.shiftKey||t.altKey||t.metaKey||t.ctrlKey||(t.preventDefault(),f(this))}return x?(V||(V=!0,K.click(function(){J.next()}),P.click(function(){J.prev()}),B.click(function(){J.close()}),v.click(function(){_.get("overlayClose")&&J.close()}),t(e).bind("keydown."+Z,function(t){var e=t.keyCode;U&&_.get("escKey")&&27===e&&(t.preventDefault(),J.close()),U&&_.get("arrowKey")&&W[1]&&!t.altKey&&(37===e?(t.preventDefault(),P.click()):39===e&&(t.preventDefault(),K.click()))}),t.isFunction(t.fn.on)?t(e).on("click."+Z,"."+te,i):t("."+te).live("click."+Z,i)),!0):!1}function w(){var e,o,r,h=J.prep,d=++le;if($=!0,q=!1,u(he),u(ie),_.get("onLoad"),_.h=_.get("height")?a(_.get("height"),"y")-N-j:_.get("innerHeight")&&a(_.get("innerHeight"),"y"),_.w=_.get("width")?a(_.get("width"),"x")-z-D:_.get("innerWidth")&&a(_.get("innerWidth"),"x"),_.mw=_.w,_.mh=_.h,_.get("maxWidth")&&(_.mw=a(_.get("maxWidth"),"x")-z-D,_.mw=_.w&&_.w<_.mw?_.w:_.mw),_.get("maxHeight")&&(_.mh=a(_.get("maxHeight"),"y")-N-j,_.mh=_.h&&_.h<_.mh?_.h:_.mh),e=_.get("href"),Q=setTimeout(function(){L.show()},100),_.get("inline")){var c=t(e).eq(0);r=t("<div>").hide().insertBefore(c),ae.one(he,function(){r.replaceWith(c)}),h(c)}else _.get("iframe")?h(" "):_.get("html")?h(_.get("html")):s(_,e)?(e=l(_,e),q=_.get("createImg"),t(q).addClass(Z+"Photo").bind("error."+Z,function(){h(n(se,"Error").html(_.get("imgError")))}).one("load",function(){d===le&&setTimeout(function(){var e;_.get("retinaImage")&&i.devicePixelRatio>1&&(q.height=q.height/i.devicePixelRatio,q.width=q.width/i.devicePixelRatio),_.get("scalePhotos")&&(o=function(){q.height-=q.height*e,q.width-=q.width*e},_.mw&&q.width>_.mw&&(e=(q.width-_.mw)/q.width,o()),_.mh&&q.height>_.mh&&(e=(q.height-_.mh)/q.height,o())),_.h&&(q.style.marginTop=Math.max(_.mh-q.height,0)/2+"px"),W[1]&&(_.get("loop")||W[A+1])&&(q.style.cursor="pointer",t(q).bind("click."+Z,function(){J.next()})),q.style.width=q.width+"px",q.style.height=q.height+"px",h(q)},1)}),q.src=e):e&&M.load(e,_.get("data"),function(e,i){d===le&&h("error"===i?n(se,"Error").html(_.get("xhrError")):t(this).contents())})}var v,x,y,b,T,C,H,k,W,E,I,M,L,F,R,S,K,P,B,O,_,j,D,N,z,A,q,U,$,G,Q,J,V,X={html:!1,photo:!1,iframe:!1,inline:!1,transition:"elastic",speed:300,fadeOut:300,width:!1,initialWidth:"600",innerWidth:!1,maxWidth:!1,height:!1,initialHeight:"450",innerHeight:!1,maxHeight:!1,scalePhotos:!0,scrolling:!0,opacity:.9,preloading:!0,className:!1,overlayClose:!0,escKey:!0,arrowKey:!0,top:!1,bottom:!1,left:!1,right:!1,fixed:!1,data:void 0,closeButton:!0,fastIframe:!0,open:!1,reposition:!0,loop:!0,slideshow:!1,slideshowAuto:!0,slideshowSpeed:2500,slideshowStart:"start slideshow",slideshowStop:"stop slideshow",photoRegex:/\.(gif|png|jp(e|g|eg)|bmp|ico|webp|jxr|svg)((#|\?).*)?$/i,retinaImage:!1,retinaUrl:!1,retinaSuffix:"@2x.$1",current:"image {current} of {total}",previous:"previous",next:"next",close:"close",xhrError:"This content failed to load.",imgError:"This image failed to load.",returnFocus:!0,trapFocus:!0,onOpen:!1,onLoad:!1,onComplete:!1,onCleanup:!1,onClosed:!1,rel:function(){return this.rel},href:function(){return t(this).attr("href")},title:function(){return this.title},createImg:function(){var e=new Image,i=t(this).data("cbox-img-attrs");return"object"==typeof i&&t.each(i,function(t,i){e[t]=i}),e},createIframe:function(){var i=e.createElement("iframe"),n=t(this).data("cbox-iframe-attrs");return"object"==typeof n&&t.each(n,function(t,e){i[t]=e}),"frameBorder"in i&&(i.frameBorder=0),"allowTransparency"in i&&(i.allowTransparency="true"),i.name=(new Date).getTime(),i.allowFullscreen=!0,i}},Y="colorbox",Z="cbox",te=Z+"Element",ee=Z+"_open",ie=Z+"_load",ne=Z+"_complete",oe=Z+"_cleanup",re=Z+"_closed",he=Z+"_purge",ae=t("<a/>"),se="div",le=0,de={},ce=function(){function t(){clearTimeout(h)}function e(){(_.get("loop")||W[A+1])&&(t(),h=setTimeout(J.next,_.get("slideshowSpeed")))}function i(){S.html(_.get("slideshowStop")).unbind(s).one(s,n),ae.bind(ne,e).bind(ie,t),x.removeClass(a+"off").addClass(a+"on")}function n(){t(),ae.unbind(ne,e).unbind(ie,t),S.html(_.get("slideshowStart")).unbind(s).one(s,function(){J.next(),i()}),x.removeClass(a+"on").addClass(a+"off")}function o(){r=!1,S.hide(),t(),ae.unbind(ne,e).unbind(ie,t),x.removeClass(a+"off "+a+"on")}var r,h,a=Z+"Slideshow_",s="click."+Z;return function(){r?_.get("slideshow")||(ae.unbind(oe,o),o()):_.get("slideshow")&&W[1]&&(r=!0,ae.one(oe,o),_.get("slideshowAuto")?i():n(),S.show())}}();t[Y]||(t(p),J=t.fn[Y]=t[Y]=function(e,i){var n,o=this;return e=e||{},t.isFunction(o)&&(o=t("<a/>"),e.open=!0),o[0]?(p(),m()&&(i&&(e.onComplete=i),o.each(function(){var i=t.data(this,Y)||{};t.data(this,Y,t.extend(i,e))}).addClass(te),n=new r(o[0],e),n.get("open")&&f(o[0])),o):o},J.position=function(e,i){function n(){T[0].style.width=k[0].style.width=b[0].style.width=parseInt(x[0].style.width,10)-D+"px",b[0].style.height=C[0].style.height=H[0].style.height=parseInt(x[0].style.height,10)-j+"px"}var r,h,s,l=0,d=0,c=x.offset();if(E.unbind("resize."+Z),x.css({top:-9e4,left:-9e4}),h=E.scrollTop(),s=E.scrollLeft(),_.get("fixed")?(c.top-=h,c.left-=s,x.css({position:"fixed"})):(l=h,d=s,x.css({position:"absolute"})),d+=_.get("right")!==!1?Math.max(E.width()-_.w-z-D-a(_.get("right"),"x"),0):_.get("left")!==!1?a(_.get("left"),"x"):Math.round(Math.max(E.width()-_.w-z-D,0)/2),l+=_.get("bottom")!==!1?Math.max(o()-_.h-N-j-a(_.get("bottom"),"y"),0):_.get("top")!==!1?a(_.get("top"),"y"):Math.round(Math.max(o()-_.h-N-j,0)/2),x.css({top:c.top,left:c.left,visibility:"visible"}),y[0].style.width=y[0].style.height="9999px",r={width:_.w+z+D,height:_.h+N+j,top:l,left:d},e){var g=0;t.each(r,function(t){return r[t]!==de[t]?(g=e,void 0):void 0}),e=g}de=r,e||x.css(r),x.dequeue().animate(r,{duration:e||0,complete:function(){n(),$=!1,y[0].style.width=_.w+z+D+"px",y[0].style.height=_.h+N+j+"px",_.get("reposition")&&setTimeout(function(){E.bind("resize."+Z,J.position)},1),t.isFunction(i)&&i()},step:n})},J.resize=function(t){var e;U&&(t=t||{},t.width&&(_.w=a(t.width,"x")-z-D),t.innerWidth&&(_.w=a(t.innerWidth,"x")),I.css({width:_.w}),t.height&&(_.h=a(t.height,"y")-N-j),t.innerHeight&&(_.h=a(t.innerHeight,"y")),t.innerHeight||t.height||(e=I.scrollTop(),I.css({height:"auto"}),_.h=I.height()),I.css({height:_.h}),e&&I.scrollTop(e),J.position("none"===_.get("transition")?0:_.get("speed")))},J.prep=function(i){function o(){return _.w=_.w||I.width(),_.w=_.mw&&_.mw<_.w?_.mw:_.w,_.w}function a(){return _.h=_.h||I.height(),_.h=_.mh&&_.mh<_.h?_.mh:_.h,_.h}if(U){var d,g="none"===_.get("transition")?0:_.get("speed");I.remove(),I=n(se,"LoadedContent").append(i),I.hide().appendTo(M.show()).css({width:o(),overflow:_.get("scrolling")?"auto":"hidden"}).css({height:a()}).prependTo(b),M.hide(),t(q).css({"float":"none"}),c(_.get("className")),d=function(){function i(){t.support.opacity===!1&&x[0].style.removeAttribute("filter")}var n,o,a=W.length;U&&(o=function(){clearTimeout(Q),L.hide(),u(ne),_.get("onComplete")},F.html(_.get("title")).show(),I.show(),a>1?("string"==typeof _.get("current")&&R.html(_.get("current").replace("{current}",A+1).replace("{total}",a)).show(),K[_.get("loop")||a-1>A?"show":"hide"]().html(_.get("next")),P[_.get("loop")||A?"show":"hide"]().html(_.get("previous")),ce(),_.get("preloading")&&t.each([h(-1),h(1)],function(){var i,n=W[this],o=new r(n,t.data(n,Y)),h=o.get("href");h&&s(o,h)&&(h=l(o,h),i=e.createElement("img"),i.src=h)})):O.hide(),_.get("iframe")?(n=_.get("createIframe"),_.get("scrolling")||(n.scrolling="no"),t(n).attr({src:_.get("href"),"class":Z+"Iframe"}).one("load",o).appendTo(I),ae.one(he,function(){n.src="//about:blank"}),_.get("fastIframe")&&t(n).trigger("load")):o(),"fade"===_.get("transition")?x.fadeTo(g,1,i):i())},"fade"===_.get("transition")?x.fadeTo(g,0,function(){J.position(0,d)}):J.position(g,d)}},J.next=function(){!$&&W[1]&&(_.get("loop")||W[A+1])&&(A=h(1),f(W[A]))},J.prev=function(){!$&&W[1]&&(_.get("loop")||A)&&(A=h(-1),f(W[A]))},J.close=function(){U&&!G&&(G=!0,U=!1,u(oe),_.get("onCleanup"),E.unbind("."+Z),v.fadeTo(_.get("fadeOut")||0,0),x.stop().fadeTo(_.get("fadeOut")||0,0,function(){x.hide(),v.hide(),u(he),I.remove(),setTimeout(function(){G=!1,u(re),_.get("onClosed")},1)}))},J.remove=function(){x&&(x.stop(),t[Y].close(),x.stop(!1,!0).remove(),v.remove(),G=!1,x=null,t("."+te).removeData(Y).removeClass(te),t(e).unbind("click."+Z).unbind("keydown."+Z))},J.element=function(){return t(_.el)},J.settings=X)})(jQuery,document,window);
7;
8/**
9 * @file
10 * Colorbox module init js.
11 */
12
13(function ($) {
14
15Drupal.behaviors.initColorbox = {
16  attach: function (context, settings) {
17    if (!$.isFunction($.colorbox) || typeof settings.colorbox === 'undefined') {
18      return;
19    }
20
21    if (settings.colorbox.mobiledetect && window.matchMedia) {
22      // Disable Colorbox for small screens.
23      var mq = window.matchMedia("(max-device-width: " + settings.colorbox.mobiledevicewidth + ")");
24      if (mq.matches) {
25        return;
26      }
27    }
28
29    // Use "data-colorbox-gallery" if set otherwise use "rel".
30    settings.colorbox.rel = function () {
31      if ($(this).data('colorbox-gallery')) {
32        return $(this).data('colorbox-gallery');
33      }
34      else {
35        return $(this).attr('rel');
36      }
37    };
38
39    $('.colorbox', context)
40      .once('init-colorbox')
41      .colorbox(settings.colorbox);
42
43    $(context).bind('cbox_complete', function () {
44      Drupal.attachBehaviors('#cboxLoadedContent');
45    });
46  }
47};
48
49})(jQuery);
50;
51/**
52 * @file
53 * Colorbox module load js.
54 */
55(function ($) {
56
57Drupal.behaviors.initColorboxLoad = {
58  attach: function (context, settings) {
59    if (!$.isFunction($.colorbox) || typeof settings.colorbox === 'undefined') {
60      return;
61    }
62
63    if (settings.colorbox.mobiledetect && window.matchMedia) {
64      // Disable Colorbox for small screens.
65      var mq = window.matchMedia("(max-device-width: " + settings.colorbox.mobiledevicewidth + ")");
66      if (mq.matches) {
67        return;
68      }
69    }
70
71    $.urlParams = function (url) {
72      var p = {},
73          e,
74          a = /\+/g,  // Regex for replacing addition symbol with a space.
75          r = /([^&=]+)=?([^&]*)/g,
76          d = function (s) { return decodeURIComponent(s.replace(a, ' ')); },
77          q = url.split('?');
78      while (e = r.exec(q[1])) {
79        e[1] = d(e[1]);
80        e[2] = d(e[2]);
81        switch (e[2].toLowerCase()) {
82          case 'true':
83          case 'yes':
84            e[2] = true;
85            break;
86          case 'false':
87          case 'no':
88            e[2] = false;
89            break;
90        }
91        if (e[1] == 'width') { e[1] = 'innerWidth'; }
92        if (e[1] == 'height') { e[1] = 'innerHeight'; }
93        p[e[1]] = e[2];
94      }
95      return p;
96    };
97    $('.colorbox-load', context)
98      .once('init-colorbox-load', function () {
99        var params = $.urlParams($(this).attr('href'));
100        $(this).colorbox($.extend({}, settings.colorbox, params));
101      });
102  }
103};
104
105})(jQuery);
106;
107/**
108 * @file
109 * Colorbox module inline js.
110 */
111
112(function ($) {
113
114Drupal.behaviors.initColorboxInline = {
115  attach: function (context, settings) {
116    if (!$.isFunction($.colorbox) || typeof settings.colorbox === 'undefined') {
117      return;
118    }
119
120    if (settings.colorbox.mobiledetect && window.matchMedia) {
121      // Disable Colorbox for small screens.
122      var mq = window.matchMedia("(max-device-width: " + settings.colorbox.mobiledevicewidth + ")");
123      if (mq.matches) {
124        return;
125      }
126    }
127
128    $.urlParam = function(name, url){
129      if (name == 'fragment') {
130        var results = new RegExp('(#[^&#]*)').exec(url);
131      }
132      else {
133        var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(url);
134      }
135      if (!results) { return ''; }
136      return results[1] || '';
137    };
138    $('.colorbox-inline', context).once('init-colorbox-inline').colorbox({
139      transition:settings.colorbox.transition,
140      speed:settings.colorbox.speed,
141      opacity:settings.colorbox.opacity,
142      slideshow:settings.colorbox.slideshow,
143      slideshowAuto:settings.colorbox.slideshowAuto,
144      slideshowSpeed:settings.colorbox.slideshowSpeed,
145      slideshowStart:settings.colorbox.slideshowStart,
146      slideshowStop:settings.colorbox.slideshowStop,
147      current:settings.colorbox.current,
148      previous:settings.colorbox.previous,
149      next:settings.colorbox.next,
150      close:settings.colorbox.close,
151      overlayClose:settings.colorbox.overlayClose,
152      maxWidth:settings.colorbox.maxWidth,
153      maxHeight:settings.colorbox.maxHeight,
154      innerWidth:function(){
155        return $.urlParam('width', $(this).attr('href'));
156      },
157      innerHeight:function(){
158        return $.urlParam('height', $(this).attr('href'));
159      },
160      title:function(){
161        return decodeURIComponent($.urlParam('title', $(this).attr('href')));
162      },
163      iframe:function(){
164        return $.urlParam('iframe', $(this).attr('href'));
165      },
166      inline:function(){
167        return $.urlParam('inline', $(this).attr('href'));
168      },
169      href:function(){
170        return $.urlParam('fragment', $(this).attr('href'));
171      }
172    });
173  }
174};
175
176})(jQuery);
177;
178(function ($, Drupal, window, document, undefined) {
179	
180	var initialized,
181			onceProcess,
182			d1 = $.Deferred();
183	
184	Drupal.behaviors.quarticon = {
185    attach: function(context, settings) {
186			
187			Drupal.quarticon.init();
188			//console.log(navigator);
189			//console.log(settings);
190			//console.log(document.referrer);
191			
192			$.when(d1).done(function (quarticonCookie) {
193				$('.quarticon-box', context).once('quarticon').each(function() {
194					var thisBox = $(this),
195							id = thisBox.data('id'),
196							slickData = thisBox.data('slick');
197							
198					$.ajax({
199						method: 'GET',
200						url: '/system/quarticon-api/get-widget',
201						data: { 'id': id, 'referrer': document.referrer, 'quarticonCookie': quarticonCookie, 'filter': thisBox.data('filter'), 'view-mode': thisBox.data('view-mode') }
202					})
203					.done(function( msg ) {
204						//console.log(id, msg);
205						if (msg.html != '') {
206							var isClick = true;
207							thisBox.show();
208							$('.rows', thisBox).html(msg.html);
209							$(thisBox)
210							/*.on('mousedown', '.row a', function(e) {
211								var prevXPos = e.pageX;
212								isClick = true;
213								$(window).on('mousemove', function(event) {
214									var xPos = event.pageX;
215									if (Math.abs(prevXPos - xPos) > 5) isClick = false;
216								});
217								
218							})*/
219							.on('click touch', '.row a', function() {
220								//$(window).unbind("mousemove");
221								var qEl = $(this).parents('.row');
222								$.ajax({
223									async: true,
224									method: 'GET',
225									url: '/system/quarticon-api/widget-click',
226									data: { 'referrer': document.referrer, 'quarticonCookie': quarticonCookie, 'qEl': qEl.data('qdata') }
227								});
228							});
229							
230							var boxSlick = $('.rows', thisBox).slick({
231								infinite: false,
232								dots: slickData.hasOwnProperty('dots') ? slickData.dots : false,
233								arrows: slickData.hasOwnProperty('arrows') ? slickData.arrows : true,
234								slidesToShow: slickData.hasOwnProperty('slides') ? slickData.slides : 4,
235								slidesToScroll: slickData.hasOwnProperty('slides') ? slickData.slides : 4,
236								responsive: [
237									{
238										breakpoint: 1000,
239										settings: {
240											slidesToShow: 3,
241											slidesToScroll: 3,
242										}
243									},
244									{
245										breakpoint: 640,
246										settings: {
247											slidesToShow: 2,
248											slidesToScroll: 2,
249										}
250									},
251								]
252							});
253							
254							boxSlick.on('swipe', function(event, slick, direction) {});
255
256							check_widget(thisBox);
257
258							$(window).on('resize', function() {
259								check_widget(thisBox);
260							});
261
262							// remove widget if contains less products then slider's "slidesToShow" parameter:
263							function check_widget(thisBox) {
264								id = thisBox.data('id');
265								if (id == '2qfc1' || id == '2qf8u' || id == '2qfqf' || id == '2qff4') return;	// vynechat "Naposledy prezerané produkty"
266								var slidesToShow = thisBox.find('.rows').get(0).slick.options.slidesToShow;
267								var products = thisBox.find('article').length;
268						    if (products < slidesToShow) {
269						    	thisBox.hide();
270						    }
271						    else {
272						    	thisBox.show();
273						    }
274							}
275
276							
277							Drupal.attachBehaviors();
278						}
279					});					
280				});
281				
282				// event tracking
283				if (!onceProcess && settings.hasOwnProperty('quarticon')) {
284					onceProcess = true;					
285					
286					// view product
287					if (settings.quarticon.hasOwnProperty('eventView')) {
288						//console.log('eventView');
289						//console.log(quarticonCookie);
290						$.ajax({
291							async: true,
292							method: 'GET',
293							url: '/system/quarticon-api/event-view',
294							data: { 'referrer': document.referrer, 'quarticonCookie': quarticonCookie, 'id': settings.quarticon.eventView }
295						})
296						.done(function( msg ) {
297							//console.log(msg);
298						});
299					}
300					// new order
301					if (settings.quarticon.hasOwnProperty('eventOrder')) {
302						$.ajax({
303							async: true,
304							method: 'GET',
305							url: '/system/quarticon-api/event-order',
306							data: { 'referrer': document.referrer, 'quarticonCookie': quarticonCookie, 'id': settings.quarticon.eventOrder.order_id, 'products': settings.quarticon.eventOrder.products }
307						}).done(function( msg ) {
308							//console.log(msg);
309						});
310					}
311				}
312			});		
313
314			$('.quarticon-box.box-2qfj8 .node, .quarticon-box.box-2qfi7 .node').each(function() {
315				$('.operations input.button', this).attr('value', 'Pridať');
316				$('input[name="destination"]', this).val('cart');
317				$('input[name="query"]', this).val('');
318			});
319
320
321		}
322	}
323
324	Drupal.quarticon = {};
325	
326	Drupal.quarticon.init = function(context) {
327		if (!initialized) {
328      initialized = true;
329			var quarticonId = Drupal.quarticon.getCookie('quarticonId');
330			if (quarticonId == '') {
331				var uniqueID = Drupal.quarticon.uniqueID();
332				Drupal.quarticon.setCookie('quarticonId', uniqueID);
333				d1.resolve(uniqueID);
334			}
335			else {
336				d1.resolve(quarticonId);
337			}
338		}
339	}
340	
341	Drupal.quarticon.uniqueID = function() {
342		function chr4() {
343			return Math.random().toString(16).slice(-4);
344		}
345		return chr4() + chr4() +
346			'-' + chr4() +
347			'-' + chr4() +
348			'-' + chr4() +
349			'-' + chr4() + chr4();	//'-' + chr4() + chr4() + chr4();
350	}
351	
352	Drupal.quarticon.setCookie = function(name, value) {
353    var date = new Date();
354    date.setDate(date.getDate() + 365);
355		var cookie = name + "=" + value + ";expires=" + date.toUTCString() + ";path=" + Drupal.settings.basePath;
356		document.cookie = cookie;
357	}
358	
359	Drupal.quarticon.getCookie = function(name) {
360    var search = name + '=';
361    var returnValue = '';
362
363    if (document.cookie.length > 0) {
364      offset = document.cookie.indexOf(search);
365      if (offset != -1) {
366        offset += search.length;
367        var end = document.cookie.indexOf(';', offset);
368        if (end == -1) {
369          end = document.cookie.length;
370        }
371        returnValue = decodeURIComponent(document.cookie.substring(offset, end).replace(/\+/g, '%20'));
372      }
373    }
374
375    return returnValue;
376  }
377	
378	
379	
380	
381})(jQuery, Drupal, this, this.document);;
382(function ($, Drupal, window, document, undefined) {
383	
384	
385	Drupal.behaviors.synerise = {
386    attach: function(context, settings) {
387
388			//SYNERISE SEARCH-ENTER CLICK ON PRODUCT TEASER:
389			$('.page-catalog-all', context).once('synerise', function () {
390				$('\
391					.page-catalog-all .view-uc-catalog .node-product.node-teaser .teaser-title, \
392					.page-catalog-all .view-uc-catalog .node-product.node-teaser .field-name-uc-product-image a, \
393					').click(function() {
394					var model = $(this).closest('article').attr('data-sku');
395					$.ajax({
396						method: 'GET',
397				    url: Drupal.settings.basePath+'system/synerise-api/search_click',
398				    data: {'model': model, 'searchType': 'enter'}
399				  });
400				});
401			});
402
403			//SYNERISE BOX:
404			$('.synerise-box', context).once('synerise').each(function() {
405				var thisBox = $(this),
406						rid = thisBox.data('rid'),
407						context = thisBox.data('context');
408				$.ajax({
409					method: 'GET',
410					url: '/system/synerise-api/recommendations',
411					data: {'rid': rid, 'context': context}
412				})
413				.done(function(msg) {
414					if (msg.html != '') {
415
416						thisBox.show();
417						$('.rows', thisBox).html(msg.html);
418						
419						var boxSlick = $('.rows', thisBox).slick({
420							infinite: false,
421							dots: false,
422							arrows: true,
423							slidesToShow: 4,
424							slidesToScroll: 4,
425							responsive: [
426								{
427									breakpoint: 1000,
428									settings: {
429										slidesToShow: 3,
430										slidesToScroll: 3,
431									}
432								},
433								{
434									breakpoint: 640,
435									settings: {
436										slidesToShow: 2,
437										slidesToScroll: 2,
438									}
439								},
440							]
441						});						
442						boxSlick.on('swipe', function(event, slick, direction) {});
443
444
445						//product teaser - images slider
446						/*$('.node-product.node-teaser .field-name-uc-product-image .field-items', thisBox).slick({
447						  infinite: true,
448						  dots: true,
449						  arrows: true,
450						  autoplay: false,
451						  autoplaySpeed: 800,
452						  slidesToShow: 1,
453						  slidesToScroll: 1,
454						});*/
455
456
457						/*
458						check_widget(thisBox);
459						$(window).on('resize', function() {
460							check_widget(thisBox);
461						});
462						// remove widget if contains less products then slider's "slidesToShow" parameter:
463						function check_widget(thisBox) {
464							id = thisBox.data('id');
465							if (id == '2qfc1' || id == '2qf8u' || id == '2qfqf' || id == '2qff4') return;	// vynechat "Naposledy prezerané produkty"
466							var slidesToShow = thisBox.find('.rows').get(0).slick.options.slidesToShow;
467							var products = thisBox.find('article').length;
468					    if (products < slidesToShow) {
469					    	thisBox.hide();
470					    }
471					    else {
472					    	thisBox.show();
473					    }
474						}*/
475						
476						Drupal.attachBehaviors();
477					}
478				});					
479			});
480				
481					
482			/*
483			$('.synerise-box.box-2qfj8 .node, .synerise-box.box-2qfi7 .node').each(function() {
484				$('.operations input.button', this).attr('value', 'Pridať');
485				$('input[name="destination"]', this).val('cart');
486				$('input[name="query"]', this).val('');
487			});
488			*/
489
490		}
491	}
492
493	Drupal.synerise = {};
494	
495	
496	
497})(jQuery, Drupal, this, this.document);;
498(function ($) {
499
500
501  jQuery().ready(function($) {
502    $(window).on('load resize', function() {
503      $('#vyhladavanie-autocomplete').attr('placeholder', window.innerWidth <= 768 ? 'Hľadať' : 'Rohové sed');
504    });
505  });
506
507
508
509Drupal.behaviors.vyhladavanie = {
510  attach: function (context, settings) {    
511    $('#vyhladavanie-autocomplete', context).once('vyhladavanie', function () {
512      $(this).makeVyhladavanieAutocomplete();
513      $(this).closest('form').submit(function() {
514        $('body').addClass('loading');
515        return true;
516      });
517      //close:
518			$(this).closest('.block').on('click', '.close', function() {
519				$('body').addClass('search-autocomplete-on');
520				$(this).next().val('');
521				$(this).next().focus();
522				$(this).remove();
523			});
524			//cancel:
525      $(this).closest('.block').on('click', '.cancel', function() {
526				$('body').removeClass('search-autocomplete-on');
527				$('#block-block-13 .close').remove();
528				$('#vyhladavanie-autocomplete').val('');
529				$(this).remove();
530      });
531    });
532  }
533};
534
535$.widget( "vyhladavanie.vyhladavanieautocomplete", $.ui.autocomplete, {
536  _resizeMenu: function() {
537    var ul = this.menu.element;
538    ul.outerWidth(Math.max(
539    // Firefox wraps long text (possibly a rounding bug)
540    // so we add 1px to avoid the wrapping (#7513)
541    ul.width("").outerWidth() + 2,
542    this.element.outerWidth()
543    ));
544  },
545  _renderItem: function(ul, item) {
546		if (item.value.type == 'group' || item.value.type == 'empty') {
547			var line = '<span>'+item.value.title+'</span>';
548		}
549		else {
550      var img = item.value.image ? '<img src="'+item.value.image+'">' : '';
551      var model = item.value.model ? 'data-model="'+item.value.model+'"' : '';
552      var snrSearchId = item.value.snrSearchId ? 'data-snrSearchId="'+item.value.snrSearchId+'"' : '';
553			var line = '<a class="item" '+model+' '+snrSearchId+' >' + img+item.value.title + '</a>';
554		}
555		return $('<li class="'+item.value.type+(item.value.class ? ' '+item.value.class : '')+'"></li>')
556			.data("item.autocomplete", item)
557			.append($(line))
558			.appendTo(ul);
559  },
560	_renderMenu: function( ul, items ) {
561		var that = this;
562		$.each(items, function(index, item) {
563			that._renderItemData(ul, item);
564		});
565		$(ul).addClass("vyhladavanie");
566	}
567});
568
569  $.fn.makeVyhladavanieAutocomplete = function() {
570    var $input = $(this);
571    $input.vyhladavanieautocomplete({
572      source: function(request, response) {
573        $('#vyhladavanie-form').addClass('search-loading');
574        $.ajax({
575          url: Drupal.settings.basePath + 'vyhladavanie-autocomplete',
576          type: 'get',
577          data: { input: request.term },
578          success: function(data) {
579            response($.map(data, function(item) {
580              return {
581                value: item
582              };
583            }));
584            $('#vyhladavanie-form').removeClass('search-loading');
585          }
586        });
587      },
588      minLength: 0,
589      open: function(event, ui) {
590        $('body').addClass('search-autocomplete-on');
591        if (!$input.closest('.block').find('.cancel').length) $input.closest('form').after('<a class="cancel">Zrušiť</a>');
592      },
593      close: function(event, ui) {
594        $('body').removeClass('search-autocomplete-on');
595      },
596      focus: function(event, ui) {
597        // up/down arrows:
598        if (event.keyCode == 38 || event.keyCode == 40) {
599          $input.val(ui.item.value.title);
600        }
601        return false;
602      },
603      select: function(event, ui) {
604
605        // SEND CLICK DATA TO SYNERISE:
606        if (ui.item.value.model) {
607          console.log('SENDING CLICK DATA TO SYNERISE...');
608          console.log(ui.item.value.snrSearchId);
609          console.log(ui.item.value.model);
610          console.log(ui.item.value.position);
611          $.ajax({
612            method: 'GET',
613            url: Drupal.settings.basePath+'system/synerise-api/search_click',
614            data: {'snrSearchId': ui.item.value.snrSearchId, 'model': ui.item.value.model, 'searchType': 'autocomplete', 'position': ui.item.value.position}
615          });          
616        }
617
618        $('body').addClass('loading');
619        $path = ui.item.value.link;
620				window.location.href = $path;
621        return false;
622      }
623    })
624    .keypress(function(e) {
625      if (e.keyCode == 13) {
626        //$path = Drupal.settings.basePath + 'system/quarticon-api/search?s=' + encodeURIComponent(e.target.value);
627        $path = Drupal.settings.basePath + 'system/synerise-api/search_enter?s=' + encodeURIComponent(e.target.value);
628        $('body').addClass('loading');         
629        window.location.href = $path;
630        return false;
631      }
632    })
633    .keyup(function(e) {
634      if (e.target.value.length) {
635        if (!$input.closest('div').find('.close').length) $input.before('<a class="close"></a>');
636      }
637      else {
638        $input.closest('div').find('.close').remove();
639      }      
640    })
641    .focus(function (e) {
642      return $input.vyhladavanieautocomplete("search");
643    })
644    .blur(function (e) {
645    	//keep opened if clicked outside to manage manually:
646      $('body').addClass('search-autocomplete-on');
647    });
648
649    return this;
650  };
651})(jQuery);;
652(function($) {
653    Drupal.behaviors.eu_cookies = {
654        attach: function(context, settings) {
655
656            $('html').once('gconsent').each(function() {
657                //GOOGLE CONSENT
658                //init
659
660                window.dataLayer = window.dataLayer || [];
661                function gtag() { window.dataLayer.push(arguments); }
662                gtag("consent", "default", {
663                    ad_storage: "denied",
664                    analytics_storage: "denied",
665                    ad_user_data: "denied",
666                    ad_personalization: "denied",
667                    wait_for_update: 100
668                });
669
670                if(!jQuery.isEmptyObject(Drupal.eu_cookies.getCookie())){
671                    $get_cookie_data = Drupal.eu_cookies.getCookie();
672
673                    var gconsent_ad_storage = gconsent_analytics_storage = "denied";
674                    var gconsent_ad_user_data = gconsent_ad_personalization = "denied";
675
676                    $.each($get_cookie_data, function(i) { 
677                        
678                        if (i == 'gtm' && $get_cookie_data[i] == 1){
679                            gconsent_ad_storage = "granted";
680                            gconsent_analytics_storage = "granted";
681                            gconsent_ad_user_data = "granted";
682                            gconsent_ad_personalization = "granted";
683                        }
684
685                    });
686
687                    window.dataLayer = window.dataLayer || [];
688                    function gtag() { window.dataLayer.push(arguments); }
689                    gtag("consent", "update", {
690                        ad_storage: gconsent_ad_storage, //gtm
691                        analytics_storage: gconsent_analytics_storage, //gtm
692                        ad_user_data: gconsent_ad_user_data, //gtm
693                        ad_personalization: gconsent_ad_personalization, //gtm
694                        wait_for_update: 100
695                    });
696                }
697            });
698
699            $('#eu-cb').once('eucb').each(function() {
700                var element_settings = {
701                    progress: { 'type': 'throbber' },
702                    url: Drupal.settings.basePath + Drupal.settings.pathPrefix + 'ajax/eu_cookies_callback/get',
703                    event: 'click'
704                };
705
706                var base = $(this).attr('id');
707                Drupal.ajax[base] = new Drupal.ajax(base, this, element_settings);
708                Drupal.ajax[base].options.beforeSend = function() {
709                    if ($('#eu-cookies-popup').length) return false;
710                }
711
712
713            });
714
715            $('#eu-cookies-popup').once('eucp', function(i, pop) {
716                var popState = {},
717                    popCookies = Drupal.eu_cookies.getCookie();
718
719                // fill popState
720                $('.cb_line', pop).each(function(i, e) {
721                    var id = $(e).data('id');
722                    popState[id] = popCookies.hasOwnProperty(id) ? popCookies[id] : 0;
723
724                    $(this).click(function() {
725                        popState[id] ^= true;
726                        popSetState();
727                    });
728                });
729
730                $('.cb_group', pop).click(function(e) {
731                    // required
732                    if ($(this).hasClass('req')) return;
733
734                    var thisGrouop = $(this).parents('.cbs_group')[0],
735                        newState = !$(this).hasClass('on');
736
737                    // all cookies
738                    if ($(this).hasClass('all')) {
739                        $.each(popState, function(i) { popState[i] = newState; });
740                    } else {
741                        $('.cb_line', thisGrouop).each(function(i, e) {
742                            var id = $(e).data('id');
743                            popState[id] = newState;
744                        });
745                    }
746                    popSetState();
747                });
748
749
750
751                $('.popup-close', pop).click(function() {
752                    popClose();
753                });
754
755                $('.accept-selected', pop).click(function() {
756                    Drupal.eu_cookies.setCookie(JSON.stringify(popState));
757                    
758                    //GOOGLE CONSENT
759                    //granted or denied
760
761                    var gconsent_ad_storage = gconsent_analytics_storage = "denied";
762                    var gconsent_ad_user_data = gconsent_ad_personalization = "denied";
763
764                    $.each(popState, function(i) { 
765                        
766                        if (i == 'gtm' && popState[i] == 1){
767                            gconsent_ad_storage = "granted";
768                            gconsent_analytics_storage = "granted";
769                            gconsent_ad_user_data = "granted";
770                            gconsent_ad_personalization = "granted";
771                        }
772
773                    });
774
775                    window.dataLayer = window.dataLayer || [];
776                    function gtag() { window.dataLayer.push(arguments); }
777                    gtag("consent", "update", {
778                        ad_storage: gconsent_ad_storage, //gtm
779                        analytics_storage: gconsent_analytics_storage, //gtm
780                        ad_user_data: gconsent_ad_user_data, //gtm
781                        ad_personalization: gconsent_ad_personalization, //gtm
782                        wait_for_update: 100
783                    });
784
785                    Drupal.eu_cookies.runCodes();
786                    popClose();
787                    if (Drupal.settings.eu_cookies.log) {
788                      $.ajax({
789                        url: Drupal.settings.basePath + Drupal.settings.pathPrefix + 'ajax/eu_cookies_callback/log',
790                        data: popState
791                      });
792                    }
793
794
795
796                });
797
798                $('.accept-all', pop).click(function() {
799                    $.each(popState, function(i) { popState[i] = 1; });
800                    $('.accept-selected', pop).click();
801                });
802
803                $('.reject-all', pop).click(function() {
804                    $.each(popState, function(i) { popState[i] = 0; });
805                    $('.accept-selected', pop).click();
806                });
807
808                $('.cb_toggle span', pop).click(function() {
809                    var thisGrouop = $(this).parents('.cbs_group')[0];
810                    $(thisGrouop).toggleClass('open');
811                    if ($(thisGrouop).hasClass('open')) {
812                        $('.cbs_lines', thisGrouop).slideDown(200);
813                    } else {
814                        $('.cbs_lines', thisGrouop).slideUp(200);
815                    }
816                });
817
818                function popClose() {
819                    $(pop).animate({
820                        paddingBottom: 50,
821                        opacity: 0
822                    }, 300, function() {
823                        $(pop).remove();
824                    });
825                }
826
827                function popSetState() {
828                    $('.cb_line', pop).each(function(i, e) {
829                        var id = $(e).data('id');
830                        if (popState[id]) $(e).addClass('on');
831                        else $(e).removeClass('on');
832                    });
833                    $('.cbs_group', pop).each(function(i, e) {
834                        var oneOn = false,
835                            allOn = true;
836
837                        if ($(e).hasClass('all')) {
838                            $.each(popState, function(i) {
839                                if (popState[i]) oneOn = true;
840                                else allOn = false;
841                            });
842                        } else {
843                            $('.cb_line', e).each(function(i, ex) {
844                                var id = $(ex).data('id');
845                                if (popState[id]) oneOn = true;
846                                else allOn = false;
847                            });
848                        }
849
850                        if (oneOn) {
851                            $('.cb_group', e).addClass('on');
852                            if (!allOn) $('.cb_group', e).addClass('partial');
853                            else $('.cb_group', e).removeClass('partial');
854                        } else {
855                            $('.cb_group', e).removeClass('on');
856                            $('.cb_group', e).removeClass('partial');
857                        }
858
859                    });
860                }
861
862                popSetState();
863            });
864
865            $('body', context).once('euc', function() {
866                if ($.isEmptyObject(Drupal.eu_cookies.getCookie())) {
867                  //document.cookie.split(";").forEach(function(c) { document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/"); });                    
868                  document.cookie.split(";").forEach(function(c) {
869                    document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/");
870                    document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/;domain=.nabbi.sk");
871                    document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/;domain=.www.nabbi.sk");
872                  });
873                  Drupal.ajax['eu-cb'].options.data['mandatory'] = 1;
874                  Drupal.ajax['eu-cb'].eventResponse($('#eu-cb'), Drupal.ajax['eu-cb'].event);
875                  Drupal.ajax['eu-cb'].options.data['mandatory'] = 0;
876                } else {
877                    var accepted = Drupal.eu_cookies.getCookie(),
878                        acceptedKeys = Object.keys(accepted),
879                        intersect = $.map(Drupal.settings.eu_cookies.req, function(el) {
880                            return $.inArray(el, acceptedKeys) < 0 ? null : el;
881                        });
882
883                    if (Drupal.settings.eu_cookies.req.length !== intersect.length) {
884                        Drupal.ajax['eu-cb'].options.data['mandatory'] = 1;
885                        Drupal.ajax['eu-cb'].eventResponse($('#eu-cb'), Drupal.ajax['eu-cb'].event);
886                        Drupal.ajax['eu-cb'].options.data['mandatory'] = 0;
887                    }
888                    Drupal.eu_cookies.runCodes();
889                }
890            });
891        }
892    };
893
894    Drupal.eu_cookies = Drupal.eu_cookies || {};
895    Drupal.eu_cookies.codes = Drupal.eu_cookies.codes || {};
896
897    Drupal.eu_cookies.runCodes = function() {
898        $.each(Drupal.eu_cookies.getCookie(), function(i, v) {
899            if (v && Drupal.eu_cookies.codes.hasOwnProperty(i)) Drupal.eu_cookies.codes[i].execute();
900        });
901    }
902
903    Drupal.eu_cookies.setCookie = function(value) {
904        var date = new Date();
905        date.setDate(date.getDate() + 365);
906        var cookie = "cookie-agreed=" + value + ";expires=" + date.toUTCString() + ";path=" + Drupal.settings.basePath;
907        document.cookie = cookie;
908    }
909
910    Drupal.eu_cookies.getCookie = function() {
911        var search = 'cookie-agreed=';
912        var returnValue = '';
913
914        if (document.cookie.length > 0) {
915            offset = document.cookie.indexOf(search);
916            if (offset != -1) {
917                offset += search.length;
918                var end = document.cookie.indexOf(';', offset);
919                if (end == -1) {
920                    end = document.cookie.length;
921                }
922                returnValue = decodeURIComponent(document.cookie.substring(offset, end).replace(/\+/g, '%20'));
923            }
924        }
925
926        try {
927            var val = JSON.parse(returnValue);
928        } catch (e) {
929            return {};
930        }
931        return val;
932    }
933
934
935})(jQuery);;
936(function ($) {
937
938/**
939 * A progressbar object. Initialized with the given id. Must be inserted into
940 * the DOM afterwards through progressBar.element.
941 *
942 * method is the function which will perform the HTTP request to get the
943 * progress bar state. Either "GET" or "POST".
944 *
945 * e.g. pb = new progressBar('myProgressBar');
946 *      some_element.appendChild(pb.element);
947 */
948Drupal.progressBar = function (id, updateCallback, method, errorCallback) {
949  var pb = this;
950  this.id = id;
951  this.method = method || 'GET';
952  this.updateCallback = updateCallback;
953  this.errorCallback = errorCallback;
954
955  // The WAI-ARIA setting aria-live="polite" will announce changes after users
956  // have completed their current activity and not interrupt the screen reader.
957  this.element = $('<div class="progress" aria-live="polite"></div>').attr('id', id);
958  this.element.html('<div class="bar"><div class="filled"></div></div>' +
959                    '<div class="percentage"></div>' +
960                    '<div class="message">&nbsp;</div>');
961};
962
963/**
964 * Set the percentage and status message for the progressbar.
965 */
966Drupal.progressBar.prototype.setProgress = function (percentage, message) {
967  if (percentage >= 0 && percentage <= 100) {
968    $('div.filled', this.element).css('width', percentage + '%');
969    $('div.percentage', this.element).html(percentage + '%');
970  }
971  $('div.message', this.element).html(message);
972  if (this.updateCallback) {
973    this.updateCallback(percentage, message, this);
974  }
975};
976
977/**
978 * Start monitoring progress via Ajax.
979 */
980Drupal.progressBar.prototype.startMonitoring = function (uri, delay) {
981  this.delay = delay;
982  this.uri = uri;
983  this.sendPing();
984};
985
986/**
987 * Stop monitoring progress via Ajax.
988 */
989Drupal.progressBar.prototype.stopMonitoring = function () {
990  clearTimeout(this.timer);
991  // This allows monitoring to be stopped from within the callback.
992  this.uri = null;
993};
994
995/**
996 * Request progress data from server.
997 */
998Drupal.progressBar.prototype.sendPing = function () {
999  if (this.timer) {
1000    clearTimeout(this.timer);
1001  }
1002  if (this.uri) {
1003    var pb = this;
1004    // When doing a post request, you need non-null data. Otherwise a
1005    // HTTP 411 or HTTP 406 (with Apache mod_security) error may result.
1006    $.ajax({
1007      type: this.method,
1008      url: this.uri,
1009      data: '',
1010      dataType: 'json',
1011      success: function (progress) {
1012        // Display errors.
1013        if (progress.status == 0) {
1014          pb.displayError(progress.data);
1015          return;
1016        }
1017        // Update display.
1018        pb.setProgress(progress.percentage, progress.message);
1019        // Schedule next timer.
1020        pb.timer = setTimeout(function () { pb.sendPing(); }, pb.delay);
1021      },
1022      error: function (xmlhttp) {
1023        pb.displayError(Drupal.ajaxError(xmlhttp, pb.uri));
1024      }
1025    });
1026  }
1027};
1028
1029/**
1030 * Display errors on the page.
1031 */
1032Drupal.progressBar.prototype.displayError = function (string) {
1033  var error = $('<div class="messages error"></div>').html(string);
1034  $(this.element).before(error).hide();
1035
1036  if (this.errorCallback) {
1037    this.errorCallback(this);
1038  }
1039};
1040
1041})(jQuery);
1042;
1043(function($) {
1044  Drupal.eu_cookies.codes.gtm = {
1045    'executed': false,
1046    'execute': function() {
1047      if (!this.executed) {
1048
1049        this.executed = true;
1050        
1051
1052        // EVERY PAGE (disabled, because called in html template for every page - not depending on consent...)
1053        /*var dataLayer = dataLayer || [];
1054        (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
1055        new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
1056        j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
1057        'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
1058        })(window,document,'script','dataLayer', Drupal.settings.eu_cookies.gtm);*/
1059
1060/*
1061        // PRODUCT PAGE:
1062        if (Drupal.settings.eu_cookies.hasOwnProperty('productPage')) {
1063          var product = {
1064            'name': Drupal.settings.eu_cookies.productPage.name,
1065            'id': Drupal.settings.eu_cookies.productPage.model,
1066            'price': Drupal.settings.eu_cookies.productPage.priceWithoutTax,
1067            'tax': Drupal.settings.eu_cookies.productPage.tax,
1068            'brand': Drupal.settings.eu_cookies.productPage.brand,
1069            'category': Drupal.settings.eu_cookies.productPage.category
1070          };
1071          if (Drupal.settings.eu_cookies.productPage.original_price != '') {
1072            product.original_price = Drupal.settings.eu_cookies.productPage.original_price;
1073          }
1074          dataLayer.push({
1075            'event': 'trackViewContent',
1076            'ecommerce': {
1077              'detail': {
1078                'products': [product]
1079              }
1080            }
1081          });
1082          // add ecomm vars:
1083          dataLayer.push({
1084            'ecomm_prodid': Drupal.settings.eu_cookies.productPage.ecomm_prodid,
1085            'ecomm_pagetype': Drupal.settings.eu_cookies.productPage.ecomm_pagetype,
1086            'ecomm_totalvalue': Drupal.settings.eu_cookies.productPage.ecomm_totalvalue,
1087            'user_type' : Drupal.settings.eu_cookies.productPage.user_type
1088          });
1089        }
1090
1091
1092        // CART PAGE:
1093        if (Drupal.settings.eu_cookies.hasOwnProperty('cartPage')) {
1094          var products = [];
1095          $.each(Drupal.settings.eu_cookies.cartPage.products, function(i, v) {
1096            products[i] = {
1097              'name': v.name,
1098              'id': v.model,
1099              'price': v.priceWithoutTax,
1100              'tax': v.tax,
1101              'brand': v.brand,
1102              'category': v.category,
1103              'quantity': v.quantity
1104            };
1105            if (v.original_price != '') {
1106              products[i].original_price = v.original_price;
1107            }
1108          });
1109          dataLayer.push({
1110            'event': 'trackCheckout',
1111            'ecommerce': {
1112              'checkout': {
1113                'actionField': {
1114                  'step': Drupal.settings.eu_cookies.cartPage.actionField.step,
1115                  'option': Drupal.settings.eu_cookies.cartPage.actionField.option
1116                },
1117                'products': products
1118              }
1119            }
1120          });
1121          // add ecomm vars:
1122          dataLayer.push({
1123            'ecomm_prodid': Drupal.settings.eu_cookies.cartPage.ecomm.ecomm_prodid,
1124            'ecomm_pagetype': Drupal.settings.eu_cookies.cartPage.ecomm.ecomm_pagetype,
1125            'ecomm_totalvalue': Drupal.settings.eu_cookies.cartPage.ecomm.ecomm_totalvalue,
1126            'user_type' : Drupal.settings.eu_cookies.cartPage.ecomm.user_type
1127          });
1128        }
1129
1130
1131        // ORDER COMPLETE:
1132        if (Drupal.settings.eu_cookies.hasOwnProperty('order')) {
1133          var products = [];
1134          $.each(Drupal.settings.eu_cookies.order.products, function(i, v) {
1135            products[i] = {
1136              'name': v.name,
1137              'id': v.model,
1138              'price': v.priceWithoutTax,
1139              'tax': v.tax,
1140              'brand': v.brand,
1141              'category': v.category,
1142              'quantity': v.quantity
1143            };
1144            if (v.original_price != '') {
1145              products[i].original_price = v.original_price;
1146            }
1147          });
1148          dataLayer.push({
1149            'event': 'trackTransaction',
1150            'ecommerce': {
1151              'purchase': {
1152                'actionField': {
1153                  'id': Drupal.settings.eu_cookies.order.id,
1154                  'affiliation': Drupal.settings.eu_cookies.order.affiliation,
1155                  'revenue': Drupal.settings.eu_cookies.order.revenue,
1156                  'tax': Drupal.settings.eu_cookies.order.tax,
1157                  'shipping': Drupal.settings.eu_cookies.order.shipping,
1158                  'coupon': Drupal.settings.eu_cookies.order.coupon,
1159                  'customer': {
1160                    'name': Drupal.settings.eu_cookies.order.customer.name,
1161                    'mail': Drupal.settings.eu_cookies.order.customer.mail
1162                  }
1163                },
1164                'products': products
1165              }
1166            }
1167          });          
1168        }
1169*/
1170
1171      }
1172    }
1173  }
1174})(jQuery);;
1175/*
1176 * @file
1177 * Integration with the colorbox library/module
1178 */
1179
1180(function ($) {
1181    Drupal.ajax.prototype.commands.colorboxNodeReload = function(ajax, response) {
1182        location.reload();
1183    };
1184
1185    Drupal.ajax.prototype.commands.colorboxNodeRedirect = function(ajax, response) {
1186        window.location.replace(response.data);
1187    };
1188
1189    Drupal.behaviors.colorboxNode = {
1190        // Lets find our class name and change our URL to
1191        // our defined menu path to open in a colorbox modal.
1192        attach: function (context, settings) {
1193            // Make sure colorbox exists.
1194            if (!$.isFunction($.colorbox) || typeof settings.colorbox === 'undefined') {
1195                return;
1196            }
1197
1198            // Mobile detection extracted from the colorbox module.
1199            // If the mobile setting is turned on, it will turn off the colorbox modal for mobile devices.
1200            if (settings.colorbox.mobiledetect && window.matchMedia) {
1201                // Disable Colorbox for small screens.
1202                var mq = window.matchMedia("(max-device-width: " + settings.colorbox.mobiledevicewidth + ")");
1203                if (mq.matches) {
1204                    return;
1205                }
1206            }
1207
1208            $('.colorbox-node', context).once('init-colorbox-node-processed', function () {
1209                $(this).colorboxNode({'launch': false});
1210            });
1211
1212            // When using contextual links and clicking from within the colorbox
1213            // we need to close down colorbox when opening the built in overlay.
1214            $('ul.contextual-links a', context).once('colorboxNodeContextual').click(function () {
1215                $.colorbox.close();
1216            });
1217        }
1218    };
1219
1220    $.fn.colorboxNodeLaunch = function(settings) {
1221        var $this = $(this).clone();
1222
1223        // Clear out the rel to prevent any confusion if not using the gallery class.
1224        if(!$this.hasClass('colorbox-node-gallery')) {
1225            $this.attr('rel', '');
1226        }
1227
1228        // Lets extract our width and height giving priority to the data attributes.
1229        var innerWidth = $this.data('inner-width');
1230        var innerHeight = $this.data('inner-height');
1231        if (typeof innerWidth != 'undefined' && typeof innerHeight != 'undefined') {
1232            var params = $.urlDataParams(innerWidth, innerHeight);
1233        } else {
1234            var params = $.urlParams(settings.href);
1235        }
1236
1237        // If we did not find a width or height, lets use the default.
1238        if (params.innerHeight == undefined) params.innerHeight = settings.height;
1239        if (params.innerWidth == undefined) params.innerWidth = settings.width;
1240
1241        params.html = '<div id="colorboxNodeLoading"></div>';
1242        params.onComplete = function () {
1243            $this.colorboxNodeGroup();
1244        };
1245        params.open = true;
1246
1247        // Launch our colorbox with the provided settings
1248        $this.colorbox($.extend({}, Drupal.settings.colorbox, params));
1249    };
1250
1251    // Bind our colorbox node functionality to an anchor
1252    $.fn.colorboxNode = function (options) {
1253        var $this = this;
1254        options = options || {};
1255
1256        var settings = {
1257            'launch': true,
1258            'width': Drupal.settings.colorbox_node.width,
1259            'height': Drupal.settings.colorbox_node.height
1260        };
1261
1262        $.extend(settings, options);
1263
1264        settings.href = $this.attr('data-href');
1265        if (typeof settings.href == 'undefined' || settings.href == false) {
1266            settings.href = $this.attr('href');
1267        }
1268        // Create an element so we can parse our a URL no matter if its internal or external.
1269        var parse = document.createElement('a');
1270        parse.href = settings.href;
1271
1272        if(!settings.href) {
1273            alert(Drupal.t('No url found on element'));
1274        }
1275
1276        // Lets add our colorbox link after the base path if necessary.
1277        var base_path = Drupal.settings.basePath;
1278        var path_prefix = Drupal.settings.pathPrefix;
1279        var pathname = parse.pathname;
1280
1281        // Lets check to see if the pathname has a forward slash.
1282        // This problem happens in IE7/IE8
1283        if (pathname.charAt(0) != '/') {
1284            pathname = '/' + parse.pathname;
1285        }
1286
1287        // If clean URL's are not turned on, lets check for that.
1288        var cleanURLs = $.getParameterByName('q', settings.href);
1289        if (base_path != '/') {
1290            if (cleanURLs != '') {
1291                settings.link = pathname.replace(base_path, base_path + parse.search.replace('?q=', '?q=/' + path_prefix + 'colorbox/'));
1292            } else {
1293                settings.link = pathname.replace(base_path, base_path + path_prefix + 'colorbox/') + parse.search;
1294            }
1295        } else {
1296            if (cleanURLs != '') {
1297                settings.link = base_path + parse.search.replace('?q=', '?q=/' + path_prefix + 'colorbox/');
1298            } else {
1299                settings.link = base_path + path_prefix + 'colorbox' + pathname + parse.search;
1300            }
1301        }
1302
1303        // Bind Ajax behaviors to the element
1304        var element_settings = {};
1305        element_settings.async = true;
1306
1307        // This removes any loading/progress bar on the clicked link
1308        // and displays the colorbox loading screen instead.
1309        element_settings.progress = { 'type': 'none' };
1310        // For anchor tags, these will go to the target of the anchor rather
1311        // than the usual location.
1312        if (settings.link) {
1313            element_settings.url = settings.link;
1314            element_settings.event = 'click';
1315        }
1316
1317        // Log our click handler to our ajax object
1318        var base = $(this).attr('id');
1319        Drupal.ajax[base] = new Drupal.ajax(base, this, element_settings);
1320
1321        // Default to auto click for manual call to this function.
1322        if (settings.launch) {
1323            Drupal.ajax[base].eventResponse(this, 'click');
1324            $(this).colorboxNodeLaunch(settings);
1325        }
1326        else {
1327            $(this).click(function() {
1328                $(this).colorboxNodeLaunch(settings);
1329            });
1330        }
1331    };
1332
1333    // Allow for grouping on links to showcase a gallery with left/right arrows.
1334    // This function will find the next index of each link on the page by the rel
1335    // and manually force a click on the link to call that AJAX and update the
1336    // modal window.
1337    $.fn.colorboxNodeGroup = function () {
1338        // Lets do setup our gallery type of functions.
1339        var $this = $(this);
1340        var rel = $this.attr('rel');
1341        if (rel && $this.hasClass('colorbox-node-gallery')) {
1342            if ($('a.colorbox-node-gallery[rel="' + rel + '"]:not(#colorbox a[rel="' + rel + '"])').length > 1) {
1343                $related = $('a.colorbox-node-gallery[rel="' + rel + '"]:not(#colorbox a[rel="' + rel + '"])');
1344
1345                // filter $related array by href, to have mutliple colorbox links to the same target
1346                // appear as one item in the gallery only
1347                var $related_unique = [];
1348                $related.each(function() {
1349                    $.findHref($related_unique, this.href);
1350                    if (!$.findHref($related_unique, this.href).length) {
1351                        $related_unique.push(this);
1352                    }
1353                });
1354                // we have to get the actual used element from the filtered list in order to get it's relative index
1355                var current = $.findHref($related_unique, $this.get(0).href);
1356                $related = $($related_unique);
1357                var idx = $related.index($(current));
1358                var tot = $related.length;
1359
1360                // Show our gallery buttons
1361                $('#cboxPrevious, #cboxNext').show();
1362                $.colorbox.next = function () {
1363                    index = get_index(1);
1364                    $related[index].click();
1365                };
1366                $.colorbox.prev = function () {
1367                    index = get_index(-1);
1368                    $related[index].click();
1369                };
1370
1371                // Setup our current HTML
1372                $('#cboxCurrent').html(Drupal.settings.colorbox.current.replace('{current}', idx + 1).replace('{total}', tot)).show();
1373                $('#cboxNext').html(Drupal.settings.colorbox.next).show();
1374                $('#cboxPrevious').html(Drupal.settings.colorbox.previous).show();
1375
1376                var prefix = 'colorbox';
1377                // Remove Bindings and re-add
1378                // @TODO: There must be a better way?  If we don't remove it causes a memory to be exhausted.
1379                $(document).unbind('keydown.' + prefix);
1380
1381                // Add Key Bindings
1382                $(document).bind('keydown.' + prefix, function (e) {
1383                    var key = e.keyCode;
1384                    if ($related[1] && !e.altKey) {
1385                        if (key === 37) {
1386                            e.preventDefault();
1387                            $.colorbox.prev();
1388                        } else if (key === 39) {
1389                            e.preventDefault();
1390                            $.colorbox.next();
1391                        }
1392                    }
1393                });
1394            }
1395
1396            function get_index(increment) {
1397                var max = $related.length;
1398                var newIndex = (idx + increment) % max;
1399                return (newIndex < 0) ? max + newIndex : newIndex;
1400            }
1401
1402        }
1403    };
1404
1405    // Find a colorbox link by href in an array
1406    $.findHref = function(items, href) {
1407        return $.grep(items, function(n, i){
1408            return n.href == href;
1409        });
1410    };
1411
1412    // Utility function to parse out our width/height from our url params
1413    $.urlParams = function (url) {
1414        var p = {},
1415            e,
1416            a = /\+/g,  // Regex for replacing addition symbol with a space
1417            r = /([^&=]+)=?([^&]*)/g,
1418            d = function (s) {
1419                return decodeURIComponent(s.replace(a, ' '));
1420            },
1421            q = url.split('?');
1422        while (e = r.exec(q[1])) {
1423            e[1] = d(e[1]);
1424            e[2] = d(e[2]);
1425            switch (e[2].toLowerCase()) {
1426                case 'true':
1427                case 'yes':
1428                    e[2] = true;
1429                    break;
1430                case 'false':
1431                case 'no':
1432                    e[2] = false;
1433                    break;
1434            }
1435            if (e[1] == 'width') {
1436                e[1] = 'innerWidth';
1437            }
1438            if (e[1] == 'height') {
1439                e[1] = 'innerHeight';
1440            }
1441            p[e[1]] = e[2];
1442        }
1443        return p;
1444    };
1445
1446    // Utility function to return our data attributes for width/height
1447    $.urlDataParams = function (innerWidth, innerHeight) {
1448        return {'innerWidth':innerWidth,'innerHeight':innerHeight};
1449    };
1450
1451    $.getParameterByName = function(name, href) {
1452        name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
1453        var regexString = "[\\?&]" + name + "=([^&#]*)";
1454        var regex = new RegExp(regexString);
1455        var found = regex.exec(href);
1456        if(found == null)
1457            return "";
1458        else
1459            return decodeURIComponent(found[1].replace(/\+/g, " "));
1460    };
1461
1462})(jQuery);
1463;

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.