var Observer=new Class({Implements:[Options,Events],options:{periodical:false,delay:1000},initialize:function(el,onFired,options){this.setOptions(options);this.addEvent('onFired',onFired);this.element=$(el)||$$(el);this.value=this.element.get('value');if(this.options.periodical)this.timer=this.changed.periodical(this.options.periodical,this);else this.element.addEvent('keyup',this.changed.bind(this));},changed:function(){var value=this.element.get('value');if($equals(this.value,value))return;this.clear();this.value=value;this.timeout=this.onFired.delay(this.options.delay,this);},setValue:function(value){this.value=value;this.element.set('value',value);return this.clear();},onFired:function(){this.fireEvent('onFired',[this.value,this.element]);},clear:function(){$clear(this.timeout||null);return this;}});var $equals=function(obj1,obj2){return(obj1==obj2||JSON.encode(obj1)==JSON.encode(obj2));};var Autocompleter={};Autocompleter.Base=new Class({options:{minLength:1,markQuery:true,width:'inherit',maxChoices:10,injectChoice:null,customChoices:null,className:'autocompleter-choices',zIndex:42,delay:400,observerOptions:{},fxOptions:{},onOver:$empty,onSelect:$empty,onSelection:$empty,onShow:$empty,onHide:$empty,onBlur:$empty,onFocus:$empty,autoSubmit:false,overflow:false,overflowMargin:25,selectFirst:false,filter:null,filterCase:false,filterSubset:false,forceSelect:false,selectMode:true,choicesMatch:null,multiple:false,separator:', ',separatorSplit:/\s*[,;]\s*/,autoTrim:true,allowDupes:false,cache:true,relative:false},initialize:function(element,options){this.element=$(element);this.setOptions(options);this.build();this.observer=new Observer(this.element,this.prefetch.bind(this),$merge({'delay':this.options.delay},this.options.observerOptions));this.queryValue=null;if(this.options.filter)this.filter=this.options.filter.bind(this);var mode=this.options.selectMode;this.typeAhead=(mode=='type-ahead');this.selectMode=(mode===true)?'selection':mode;this.cached=[];},build:function(){if($(this.options.customChoices)){this.choices=this.options.customChoices;}else{this.choices=new Element('ul',{'class':this.options.className,'styles':{'zIndex':this.options.zIndex}}).inject(document.body);this.relative=false;if(this.options.relative){this.choices.inject(this.element,'after');this.relative=this.element.getOffsetParent();}
this.fix=new OverlayFix(this.choices);}
if(!this.options.separator.test(this.options.separatorSplit)){this.options.separatorSplit=this.options.separator;}
this.fx=(!this.options.fxOptions)?null:new Fx.Tween(this.choices,$merge({'property':'opacity','link':'cancel','duration':200},this.options.fxOptions)).addEvent('onStart',Chain.prototype.clearChain).set(0);this.element.setProperty('autocomplete','off').addEvent((Browser.Engine.trident||Browser.Engine.webkit)?'keydown':'keypress',this.onCommand.bind(this)).addEvent('click',this.onCommand.bind(this,[false])).addEvent('focus',this.toggleFocus.create({bind:this,arguments:true,delay:100})).addEvent('blur',this.toggleFocus.create({bind:this,arguments:false,delay:100}));},destroy:function(){if(this.fix)this.fix.destroy();this.choices=this.selected=this.choices.destroy();},toggleFocus:function(state){this.focussed=state;if(!state)this.hideChoices(true);this.fireEvent((state)?'onFocus':'onBlur',[this.element]);},onCommand:function(e){if(!e&&this.focussed)return this.prefetch();if(e&&e.key&&!e.shift){switch(e.key){case'enter':if(this.element.value!=this.opted)return true;if(this.selected&&this.visible){this.choiceSelect(this.selected);return!!(this.options.autoSubmit);}
break;case'up':case'down':if(!this.prefetch()&&this.queryValue!==null){var up=(e.key=='up');this.choiceOver((this.selected||this.choices)[(this.selected)?((up)?'getPrevious':'getNext'):((up)?'getLast':'getFirst')](this.options.choicesMatch),true);}
return false;case'esc':case'tab':this.hideChoices(true);break;}}
return true;},setSelection:function(finish){var input=this.selected.inputValue,value=input;var start=this.queryValue.length,end=input.length;if(input.substr(0,start).toLowerCase()!=this.queryValue.toLowerCase())start=0;if(this.options.multiple){var split=this.options.separatorSplit;value=this.element.value;start+=this.queryIndex;end+=this.queryIndex;var old=value.substr(this.queryIndex).split(split,1)[0];value=value.substr(0,this.queryIndex)+input+value.substr(this.queryIndex+old.length);if(finish){var space=/[^\s,]+/;var tokens=value.split(this.options.separatorSplit).filter(space.test,space);if(!this.options.allowDupes)tokens=[].combine(tokens);var sep=this.options.separator;value=tokens.join(sep)+sep;end=value.length;}}
this.observer.setValue(value);this.opted=value;if(finish||this.selectMode=='pick')start=end;this.element.selectRange(start,end);this.fireEvent('onSelection',[this.element,this.selected,value,input]);},showChoices:function(){var match=this.options.choicesMatch,first=this.choices.getFirst(match);this.selected=this.selectedValue=null;if(this.fix){var pos=this.element.getCoordinates(this.relative),width=this.options.width||'auto';this.choices.setStyles({'left':pos.left,'top':pos.bottom,'width':(width===true||width=='inherit')?pos.width:width});}
if(!first)return;if(!this.visible){this.visible=true;this.choices.setStyle('display','');if(this.fx)this.fx.start(1);this.fireEvent('onShow',[this.element,this.choices]);}
if(this.options.selectFirst||this.typeAhead||first.inputValue==this.queryValue)this.choiceOver(first,this.typeAhead);var items=this.choices.getChildren(match),max=this.options.maxChoices;var styles={'overflowY':'hidden','height':''};this.overflown=false;if(items.length>max){var item=items[max-1];styles.overflowY='scroll';styles.height=item.getCoordinates(this.choices).bottom;this.overflown=true;};this.choices.setStyles(styles);this.fix.show();},hideChoices:function(clear){if(clear){var value=this.element.value;if(this.options.forceSelect)value=this.opted;if(this.options.autoTrim){value=value.split(this.options.separatorSplit).filter($arguments(0)).join(this.options.separator);}
this.observer.setValue(value);}
if(!this.visible)return;this.visible=false;this.observer.clear();var hide=function(){this.choices.setStyle('display','none');this.fix.hide();}.bind(this);if(this.fx)this.fx.start(0).chain(hide);else hide();this.fireEvent('onHide',[this.element,this.choices]);},prefetch:function(){var value=this.element.value,query=value;if(this.options.multiple){var split=this.options.separatorSplit;var values=value.split(split);var index=this.element.getCaretPosition();var toIndex=value.substr(0,index).split(split);var last=toIndex.length-1;index-=toIndex[last].length;query=values[last];}
if(query.length<this.options.minLength){this.hideChoices();}else{if(query===this.queryValue||(this.visible&&query==this.selectedValue)){if(this.visible)return false;this.showChoices();}else{this.queryValue=query;this.queryIndex=index;if(!this.fetchCached())this.query();}}
return true;},fetchCached:function(){return false;if(!this.options.cache||!this.cached||!this.cached.length||this.cached.length>=this.options.maxChoices||this.queryValue)return false;this.update(this.filter(this.cached));return true;},update:function(tokens){this.choices.empty();this.cached=tokens;if(!tokens||!tokens.length){this.hideChoices();}else{if(this.options.maxChoices<tokens.length&&!this.options.overflow)tokens.length=this.options.maxChoices;tokens.each(this.options.injectChoice||function(token){var choice=new Element('li',{'html':this.markQueryValue(token)});choice.inputValue=token;this.addChoiceEvents(choice).inject(this.choices);},this);this.showChoices();}},choiceOver:function(choice,selection){if(!choice||choice==this.selected)return;if(this.selected)this.selected.removeClass('autocompleter-selected');this.selected=choice.addClass('autocompleter-selected');this.fireEvent('onSelect',[this.element,this.selected,selection]);if(!selection)return;this.selectedValue=this.selected.inputValue;if(this.overflown){var coords=this.selected.getCoordinates(this.choices),margin=this.options.overflowMargin,top=this.choices.scrollTop,height=this.choices.offsetHeight,bottom=top+height;if(coords.top-margin<top&&top)this.choices.scrollTop=Math.max(coords.top-margin,0);else if(coords.bottom+margin>bottom)this.choices.scrollTop=Math.min(coords.bottom-height+margin,bottom);}
if(this.selectMode)this.setSelection();},choiceSelect:function(choice){if(choice)this.choiceOver(choice);this.setSelection(true);this.queryValue=false;this.hideChoices();},filter:function(tokens){var regex=new RegExp(((this.options.filterSubset)?'':'^')+this.queryValue.escapeRegExp(),(this.options.filterCase)?'':'i');return(tokens||this.tokens).filter(regex.test,regex);},markQueryValue:function(str){return(!this.options.markQuery||!this.queryValue)?str:str.replace(new RegExp('('+((this.options.filterSubset)?'':'^')+this.queryValue.escapeRegExp()+')',(this.options.filterCase)?'':'i'),'<span class="autocompleter-queried">$1</span>');},addChoiceEvents:function(el){return el.addEvents({'mouseover':this.choiceOver.bind(this,[el]),'click':this.choiceSelect.bind(this,[el])});}});Autocompleter.Base.implement(new Events);Autocompleter.Base.implement(new Options);Autocompleter.Local=new Class({Extends:Autocompleter.Base,options:{minLength:0,delay:200},initialize:function(element,tokens,options){this.parent(element,options);this.tokens=tokens;},query:function(){this.update(this.filter());}});Autocompleter.Ajax={};Autocompleter.Ajax.Base=new Class({Extends:Autocompleter.Base,options:{postVar:'value',postData:{},ajaxOptions:{},onRequest:$empty,onComplete:$empty},initialize:function(element,options){this.parent(element,options);var indicator=$(this.options.indicator);if(indicator){this.addEvents({'onRequest':indicator.show.bind(indicator),'onComplete':indicator.hide.bind(indicator)},true);}},query:function(){var data=$unlink(this.options.postData);data[this.options.postVar]=this.queryValue;this.fireEvent('onRequest',[this.element,this.request,data,this.queryValue]);this.request.send({'data':data});},queryResponse:function(){this.fireEvent('onComplete',[this.element,this.request,this.response]);}});Autocompleter.Ajax.Json=new Class({Extends:Autocompleter.Ajax.Base,initialize:function(el,url,options){this.parent(el,options);this.request=new Request.JSON($merge({'url':url,'link':'cancel'},this.options.ajaxOptions)).addEvent('onComplete',this.queryResponse.bind(this));},queryResponse:function(response){this.parent();this.update(response);}});Autocompleter.Ajax.Xhtml=new Class({Extends:Autocompleter.Ajax.Base,initialize:function(el,url,options){this.parent(el,options);this.request=new Request.HTML($merge({'url':url,'link':'cancel','update':this.choices},this.options.ajaxOptions)).addEvent('onComplete',this.queryResponse.bind(this));},queryResponse:function(tree,elements){this.parent();if(!elements||!elements.length){this.hideChoices();}else{this.choices.getChildren(this.options.choicesMatch).each(this.options.injectChoice||function(choice){var value=choice.innerHTML;choice.inputValue=value;this.addChoiceEvents(choice.set('html',this.markQueryValue(value)));},this);this.showChoices();}}});var OverlayFix=new Class({initialize:function(el){if(Browser.Engine.trident){this.element=$(el);this.relative=this.element.getOffsetParent();this.fix=new Element('iframe',{'frameborder':'0','scrolling':'no','src':'javascript:false;','styles':{'position':'absolute','border':'none','display':'none','filter':'progid:DXImageTransform.Microsoft.Alpha(opacity=0)'}}).inject(this.element,'after');}},show:function(){if(this.fix){var coords=this.element.getCoordinates(this.relative);delete coords.right;delete coords.bottom;this.fix.setStyles($extend(coords,{'display':'','zIndex':(this.element.getStyle('zIndex')||1)-1}));}
return this;},hide:function(){if(this.fix)this.fix.setStyle('display','none');return this;},destroy:function(){this.fix=this.fix.destroy();}});Element.implement({getOffsetParent:function(){var body=this.getDocument().body;if(this==body)return null;if(!Browser.Engine.trident)return $(this.offsetParent);var el=this;while((el=el.parentNode)){if(el==body||Element.getComputedStyle(el,'position')!='static')return $(el);}
return null;},getCaretPosition:function(){if(!Browser.Engine.trident)return this.selectionStart;this.focus();var work=document.selection.createRange();var all=this.createTextRange();work.setEndPoint('StartToStart',all);return work.text.length;},selectRange:function(start,end){if(Browser.Engine.trident){var range=this.createTextRange();range.collapse(true);range.moveEnd('character',end);range.moveStart('character',start);range.select();}else{this.focus();this.setSelectionRange(start,end);}
return this;}});window.addEvent('domready',function(){new Autocompleter.Ajax.Json('fe-searchbox','./module/AutoCompleter',{'postVar':'search','autoSubmit':true,'width':'250px','filterSubset':true,});});var TagCloudManager=new Class({Implements:[Options],options:{RemoveURL:'',href:'#'},initialize:function(el,options){this.setOptions(options);this.element=$(el)||$$(el);this.element.each(function(tag){this.addRemoveTagButton(tag,this);}.bind(this));},processRemoveTag:function(el){request=new Request({method:'post',url:this.options.RemoveURL,data:{'tagName':el.TagText},onComplete:function(response){this.dispose();}.bind(el)}).send();},addRemoveTagButton:function(el,sender){el.TagText=el.get('text');el.Sender=sender;el.grab(new Element('a',{'href':sender.options.href,'class':'TagRemoveTag','html':'<span>Odebrat tento štítek</span>','title':'Odebrat tento štítek','events':{'click':function(sender){this.Sender.processRemoveTag(this);return false;}.bind(el)}}));}});var History={};History.Base=new Class({getOptions:function(){return{transition:Fx.Transitions.Cubic.easeInOut,duration:400,autoCloseTimer:5000,transformHeight:false,hiddenWidth:Browser.Engine.webkit||Browser.Engine.presto?1:0};},initialize:function(options){this.setOptions(this.getOptions(),options);this.CloseTimer=null;var obj=this;this.createHistoryDom();var jsonRequest=new Request.JSON({url:"./module/History",onComplete:function(res){if(res!=null)
res.each(function(item){obj.addHistory(obj,item);});else
new Element('p',{'html':'Historie je zatím prázdná. Jakmile navštívíte nějaký výrobek, uvidíte ho zde. Ukládá se posledních 10 zobrazených výrobků.'}).inject(obj.historyHolder);if(obj.options.transformHeight)
obj.historyHolder.setStyle('height',145);}}).get();},createHistoryDom:function(){this.historyManager=new Element('div',{'class':'historyManager'}).inject(document.body);this.historyHolder=new Element('div').inject(this.historyManager);new Element('h2',{'html':'Naposledy navštívené výrobky'}).inject(this.historyHolder);this.historyList=new Element('ul').inject(this.historyHolder);this.openHideLink=new Element('a',{'class':'historyManagerLink'}).inject(this.historyManager);if(this.options.transformHeight)
this.historyManager.setStyle('height','200');this.historyHolder.setStyle('width',this.options.hiddenWidth);this.openHideLink.addEvent('click',this.extendHistory.bind(this));this.historyHolder.addEvent('mouseover',this.extendHistoryPause.bind(this));this.historyHolder.addEvent('mouseout',this.extendHistoryResume.bind(this));this.historyOpened=false;},extendHistoryPause:function(){if(this.CloseTimer)
$clear(this.CloseTimer);},extendHistoryResume:function(){if(this.CloseTimer)
$clear(this.CloseTimer);this.CloseTimer=this.extendHistory.bind(this).delay(this.options.autoCloseTimer);},extendHistory:function(){this.openHideLink.setStyle('background-position',this.historyOpened?'top left':'top right');var myEffects=new Fx.Morph(this.historyHolder,{transition:this.options.transition,duration:this.options.duration}).start(this.options.transformHeight?{'opacity':this.historyOpened?(Browser.Engine.trident4?1:0):1,'width':this.historyOpened?this.options.hiddenWidth:'200px','height':this.historyOpened?145:this.historyHolder.listHeight}:{'opacity':this.historyOpened?(Browser.Engine.trident4?1:0):1,'width':this.historyOpened?this.options.hiddenWidth:'200px'});this.historyOpened=!this.historyOpened;if(this.historyOpened){if(this.CloseTimer)
$clear(this.CloseTimer);this.CloseTimer=this.extendHistory.bind(this).delay(this.options.autoCloseTimer);}
return false;},queryResponse:function(){this.fireEvent('onComplete',[this.element,this.request,this.response]);},addHistory:function(sender,obj){var li=new Element('li').inject(sender.historyList);var a=new Element('a',{'html':obj.title,'href':obj.link,'title':obj.title}).inject(li);sender.historyHolder.listHeight=sender.historyHolder.getSize().y;}});History.Base.implement(new Options);window.addEvent('domready',function(){var history=new History.Base({transformHeight:!Browser.Engine.trident});});var ImageMenu=new Class({getOptions:function(){return{onOpen:false,onClose:Class.empty,openWidth:200,transition:Fx.Transitions.quadOut,duration:400,open:null,border:0,width:0,closedWidth:0};},initialize:function(elements,options){this.setOptions(this.getOptions(),options);this.linkMenu=$$('#kategorie-container div.level1 a');this.elements=$$(elements);var obj=this;this.linkMenu.each(function(el){obj.elements.each(function(lel,i){if(el.href==lel.href){el._backgroundColor=el.getStyle('background-color');el.addEvent('mouseenter',function(e){new Event(e).stop();obj.reset(i,true);}.bind(obj));el.addEvent('mouseleave',function(e){new Event(e).stop();obj.reset(obj.options.open,true);}.bind(obj));}});});if(this.options.width>0){var wi=this.options.width/this.elements.length;this.elements.each(function(el){el.setStyle('width',wi);});if(this.options.closedWidth>0)
this.options.openWidth=this.options.width-(this.elements.length-1)*this.options.closedWidth;}
if(openedTopCategory!=null){var op=null;this.elements.each(function(el,index){if((el.href!=null)&&(el.href.indexOf('/eshop/'+openedTopCategory+'/')>=0))
op=index;});this.options.open=op;}
this.widths={};this.widths.closed=this.elements[0].getStyle('width').toInt();if(this.widths.closed<=0)
this.widths.closed=this.options.width==0?157:this.options.width;this.widths.openSelected=this.options.openWidth;this.widths.openOthers=Math.round(((this.widths.closed*this.elements.length)-(this.widths.openSelected+this.options.border))/(this.elements.length-1))
this.fx=new Fx.Elements(this.elements,{wait:false,duration:this.options.duration,transition:this.options.transition});this.myFx=new Fx.Tween('mainBody',{wait:false,duration:this.options.duration});this.elements.each(function(el,i){el.addEvent('mouseenter',function(e){new Event(e).stop();this.reset(i);}.bind(this));el.addEvent('mouseleave',function(e){new Event(e).stop();this.reset(this.options.open);}.bind(this));var obj=this;el.addEvent('click',function(e){if(obj.options.onOpen){new Event(e).stop();if(obj.options.open==i){obj.options.open=null;obj.options.onClose(this.href,i);}else{obj.options.open=i;obj.options.onOpen(this.href,i);}}})}.bind(this));if(this.options.open!=null){if($type(this.options.open)=='number'){this.reset(this.options.open);}else{this.elements.each(function(el,i){if(el.id==this.options.open){this.reset(i);}},this);}}},reset:function(num,nobg){var color=null;if($type(num)=='number'){var width=this.widths.openOthers;if(num+1==this.elements.length){width+=this.options.border;}
color=this.elements[num].getStyle('background-color');if((nobg==null)||!nobg){obj=this;this.linkMenu.each(function(el){if((obj.elements[num].href==el.href)||(el.getParent().hasClass('selected')))
el.setStyle('background-color','#ddd');else
el.setStyle('background-color','#efefef');});}}else{var width=this.widths.closed;}
var obj={};_self=this;this.elements.each(function(el,i){var w=width;if(i==this.elements.length-1){w=width+5}
obj[i]={'width':w};if(($type(num)=='number')&&(i==num)){el.setStyle('background-position','-160px 0');}}.bind(this));if($type(num)=='number'){obj[num]={'width':this.widths.openSelected};}
this.fx.start(obj).chain(function(){_self.elements.each(function(el,i){el.setStyle('background-position',(($type(num)=='number')&&(i==num))?'-160px 0':'0 0');});});if(color!=null){this.myFx.start('background-color',color);}}});ImageMenu.implement(new Options);ImageMenu.implement(new Events);window.addEvent('domready',function(){var w=$('menu-container').getSize().x;$$('#imageMenu ul').each(function(el){el.setStyle('width',w*2);});$('imageMenu').setStyle('width',w);var myMenu=new ImageMenu($$('#imageMenu a'),{'transition':Fx.Transitions.Cubic.easeInOut,'closedWidth':50,'width':w,'border':2,'onOpen':function(e,i){}});$$('#imageMenu ul').setStyle('display','block');$$('#imageMenu').setStyle('display','block');});