//MooTools, My Object Oriented Javascript Tools. Copyright (c) 2006 Valerio Proietti, <http://mad4milk.net>, MIT Style License.

var MooTools={version:'1.12'};function $defined(obj){return(obj!=undefined);};function $type(obj){if(!$defined(obj))return false;if(obj.htmlElement)return'element';var type=typeof obj;if(type=='object'&&obj.nodeName){switch(obj.nodeType){case 1:return'element';case 3:return(/\S/).test(obj.nodeValue)?'textnode':'whitespace';}}
if(type=='object'||type=='function'){switch(obj.constructor){case Array:return'array';case RegExp:return'regexp';case Class:return'class';}
if(typeof obj.length=='number'){if(obj.item)return'collection';if(obj.callee)return'arguments';}}
return type;};function $merge(){var mix={};for(var i=0;i<arguments.length;i++){for(var property in arguments[i]){var ap=arguments[i][property];var mp=mix[property];if(mp&&$type(ap)=='object'&&$type(mp)=='object')mix[property]=$merge(mp,ap);else mix[property]=ap;}}
return mix;};var $extend=function(){var args=arguments;if(!args[1])args=[this,args[0]];for(var property in args[1])args[0][property]=args[1][property];return args[0];};var $native=function(){for(var i=0,l=arguments.length;i<l;i++){arguments[i].extend=function(props){for(var prop in props){if(!this.prototype[prop])this.prototype[prop]=props[prop];if(!this[prop])this[prop]=$native.generic(prop);}};}};$native.generic=function(prop){return function(bind){return this.prototype[prop].apply(bind,Array.prototype.slice.call(arguments,1));};};$native(Function,Array,String,Number);function $chk(obj){return!!(obj||obj===0);};function $pick(obj,picked){return $defined(obj)?obj:picked;};function $random(min,max){return Math.floor(Math.random()*(max-min+1)+min);};function $time(){return new Date().getTime();};function $clear(timer){clearTimeout(timer);clearInterval(timer);return null;};var Abstract=function(obj){obj=obj||{};obj.extend=$extend;return obj;};var Window=new Abstract(window);var Document=new Abstract(document);document.head=document.getElementsByTagName('head')[0];window.xpath=!!(document.evaluate);if(window.ActiveXObject)window.ie=window[window.XMLHttpRequest?'ie7':'ie6']=true;else if(document.childNodes&&!document.all&&!navigator.taintEnabled)window.webkit=window[window.xpath?'webkit420':'webkit419']=true;else if(document.getBoxObjectFor!=null||window.mozInnerScreenX!=null)window.gecko=true;window.khtml=window.webkit;Object.extend=$extend;if(typeof HTMLElement=='undefined'){var HTMLElement=function(){};if(window.webkit)document.createElement("iframe");HTMLElement.prototype=(window.webkit)?window["[[DOMElement.prototype]]"]:{};}
HTMLElement.prototype.htmlElement=function(){};if(window.ie6)try{document.execCommand("BackgroundImageCache",false,true);}catch(e){};var Class=function(properties){var klass=function(){return(arguments[0]!==null&&this.initialize&&$type(this.initialize)=='function')?this.initialize.apply(this,arguments):this;};$extend(klass,this);klass.prototype=properties;klass.constructor=Class;return klass;};Class.empty=function(){};Class.prototype={extend:function(properties){var proto=new this(null);for(var property in properties){var pp=proto[property];proto[property]=Class.Merge(pp,properties[property]);}
return new Class(proto);},implement:function(){for(var i=0,l=arguments.length;i<l;i++)$extend(this.prototype,arguments[i]);}};Class.Merge=function(previous,current){if(previous&&previous!=current){var type=$type(current);if(type!=$type(previous))return current;switch(type){case'function':var merged=function(){this.parent=arguments.callee.parent;return current.apply(this,arguments);};merged.parent=previous;return merged;case'object':return $merge(previous,current);}}
return current;};var Chain=new Class({chain:function(fn){this.chains=this.chains||[];this.chains.push(fn);return this;},callChain:function(){if(this.chains&&this.chains.length)this.chains.shift().delay(10,this);},clearChain:function(){this.chains=[];}});var Events=new Class({addEvent:function(type,fn){if(fn!=Class.empty){this.$events=this.$events||{};this.$events[type]=this.$events[type]||[];this.$events[type].include(fn);}
return this;},fireEvent:function(type,args,delay){if(this.$events&&this.$events[type]){this.$events[type].each(function(fn){fn.create({'bind':this,'delay':delay,'arguments':args})();},this);}
return this;},removeEvent:function(type,fn){if(this.$events&&this.$events[type])this.$events[type].remove(fn);return this;}});var Options=new Class({setOptions:function(){this.options=$merge.apply(null,[this.options].extend(arguments));if(this.addEvent){for(var option in this.options){if($type(this.options[option]=='function')&&(/^on[A-Z]/).test(option))this.addEvent(option,this.options[option]);}}
return this;}});Array.extend({forEach:function(fn,bind){for(var i=0,j=this.length;i<j;i++)fn.call(bind,this[i],i,this);},filter:function(fn,bind){var results=[];for(var i=0,j=this.length;i<j;i++){if(fn.call(bind,this[i],i,this))results.push(this[i]);}
return results;},map:function(fn,bind){var results=[];for(var i=0,j=this.length;i<j;i++)results[i]=fn.call(bind,this[i],i,this);return results;},every:function(fn,bind){for(var i=0,j=this.length;i<j;i++){if(!fn.call(bind,this[i],i,this))return false;}
return true;},some:function(fn,bind){for(var i=0,j=this.length;i<j;i++){if(fn.call(bind,this[i],i,this))return true;}
return false;},indexOf:function(item,from){var len=this.length;for(var i=(from<0)?Math.max(0,len+from):from||0;i<len;i++){if(this[i]===item)return i;}
return-1;},copy:function(start,length){start=start||0;if(start<0)start=this.length+start;length=length||(this.length-start);var newArray=[];for(var i=0;i<length;i++)newArray[i]=this[start++];return newArray;},remove:function(item){var i=0;var len=this.length;while(i<len){if(this[i]===item){this.splice(i,1);len--;}else{i++;}}
return this;},contains:function(item,from){return this.indexOf(item,from)!=-1;},associate:function(keys){var obj={},length=Math.min(this.length,keys.length);for(var i=0;i<length;i++)obj[keys[i]]=this[i];return obj;},extend:function(array){for(var i=0,j=array.length;i<j;i++)this.push(array[i]);return this;},merge:function(array){for(var i=0,l=array.length;i<l;i++)this.include(array[i]);return this;},include:function(item){if(!this.contains(item))this.push(item);return this;},getRandom:function(){return this[$random(0,this.length-1)]||null;},getLast:function(){return this[this.length-1]||null;}});Array.prototype.each=Array.prototype.forEach;Array.each=Array.forEach;function $A(array){return Array.copy(array);};function $each(iterable,fn,bind){if(iterable&&typeof iterable.length=='number'&&$type(iterable)!='object'){Array.forEach(iterable,fn,bind);}else{for(var name in iterable)fn.call(bind||iterable,iterable[name],name);}};Array.prototype.test=Array.prototype.contains;String.extend({test:function(regex,params){return(($type(regex)=='string')?new RegExp(regex,params):regex).test(this);},toInt:function(){return parseInt(this,10);},toFloat:function(){return parseFloat(this);},camelCase:function(){return this.replace(/-\D/g,function(match){return match.charAt(1).toUpperCase();});},hyphenate:function(){return this.replace(/\w[A-Z]/g,function(match){return(match.charAt(0)+'-'+match.charAt(1).toLowerCase());});},capitalize:function(){return this.replace(/\b[a-z]/g,function(match){return match.toUpperCase();});},trim:function(){return this.replace(/^\s+|\s+$/g,'');},clean:function(){return this.replace(/\s{2,}/g,' ').trim();},rgbToHex:function(array){var rgb=this.match(/\d{1,3}/g);return(rgb)?rgb.rgbToHex(array):false;},hexToRgb:function(array){var hex=this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);return(hex)?hex.slice(1).hexToRgb(array):false;},contains:function(string,s){return(s)?(s+this+s).indexOf(s+string+s)>-1:this.indexOf(string)>-1;},escapeRegExp:function(){return this.replace(/([.*+?^${}()|[\]\/\\])/g,'\\$1');}});Array.extend({rgbToHex:function(array){if(this.length<3)return false;if(this.length==4&&this[3]==0&&!array)return'transparent';var hex=[];for(var i=0;i<3;i++){var bit=(this[i]-0).toString(16);hex.push((bit.length==1)?'0'+bit:bit);}
return array?hex:'#'+hex.join('');},hexToRgb:function(array){if(this.length!=3)return false;var rgb=[];for(var i=0;i<3;i++){rgb.push(parseInt((this[i].length==1)?this[i]+this[i]:this[i],16));}
return array?rgb:'rgb('+rgb.join(',')+')';}});Function.extend({create:function(options){var fn=this;options=$merge({'bind':fn,'event':false,'arguments':null,'delay':false,'periodical':false,'attempt':false},options);if($chk(options.arguments)&&$type(options.arguments)!='array')options.arguments=[options.arguments];return function(event){var args;if(options.event){event=event||window.event;args=[(options.event===true)?event:new options.event(event)];if(options.arguments)args.extend(options.arguments);}
else args=options.arguments||arguments;var returns=function(){return fn.apply($pick(options.bind,fn),args);};if(options.delay)return setTimeout(returns,options.delay);if(options.periodical)return setInterval(returns,options.periodical);if(options.attempt)try{return returns();}catch(err){return false;};return returns();};},pass:function(args,bind){return this.create({'arguments':args,'bind':bind});},attempt:function(args,bind){return this.create({'arguments':args,'bind':bind,'attempt':true})();},bind:function(bind,args){return this.create({'bind':bind,'arguments':args});},bindAsEventListener:function(bind,args){return this.create({'bind':bind,'event':true,'arguments':args});},delay:function(delay,bind,args){return this.create({'delay':delay,'bind':bind,'arguments':args})();},periodical:function(interval,bind,args){return this.create({'periodical':interval,'bind':bind,'arguments':args})();}});Number.extend({toInt:function(){return parseInt(this);},toFloat:function(){return parseFloat(this);},limit:function(min,max){return Math.min(max,Math.max(min,this));},round:function(precision){precision=Math.pow(10,precision||0);return Math.round(this*precision)/precision;},times:function(fn){for(var i=0;i<this;i++)fn(i);}});var Element=new Class({initialize:function(el,props){if($type(el)=='string'){if(window.ie&&props&&(props.name||props.type)){var name=(props.name)?' name="'+props.name+'"':'';var type=(props.type)?' type="'+props.type+'"':'';delete props.name;delete props.type;el='<'+el+name+type+'>';}
el=document.createElement(el);}
el=$(el);return(!props||!el)?el:el.set(props);}});var Elements=new Class({initialize:function(elements){return(elements)?$extend(elements,this):this;}});Elements.extend=function(props){for(var prop in props){this.prototype[prop]=props[prop];this[prop]=$native.generic(prop);}};function $(el){if(!el)return null;if(el.htmlElement)return Garbage.collect(el);if([window,document].contains(el))return el;var type=$type(el);if(type=='string'){el=document.getElementById(el);type=(el)?'element':false;}
if(type!='element')return null;if(el.htmlElement)return Garbage.collect(el);if(['object','embed'].contains(el.tagName.toLowerCase()))return el;$extend(el,Element.prototype);el.htmlElement=function(){};return Garbage.collect(el);};document.getElementsBySelector=document.getElementsByTagName;function $$(){var elements=[];for(var i=0,j=arguments.length;i<j;i++){var selector=arguments[i];switch($type(selector)){case'element':elements.push(selector);case'boolean':break;case false:break;case'string':selector=document.getElementsBySelector(selector,true);default:elements.extend(selector);}}
return $$.unique(elements);};$$.unique=function(array){var elements=[];for(var i=0,l=array.length;i<l;i++){if(array[i].$included)continue;var element=$(array[i]);if(element&&!element.$included){element.$included=true;elements.push(element);}}
for(var n=0,d=elements.length;n<d;n++)elements[n].$included=null;return new Elements(elements);};Elements.Multi=function(property){return function(){var args=arguments;var items=[];var elements=true;for(var i=0,j=this.length,returns;i<j;i++){returns=this[i][property].apply(this[i],args);if($type(returns)!='element')elements=false;items.push(returns);};return(elements)?$$.unique(items):items;};};Element.extend=function(properties){for(var property in properties){HTMLElement.prototype[property]=properties[property];Element.prototype[property]=properties[property];Element[property]=$native.generic(property);var elementsProperty=(Array.prototype[property])?property+'Elements':property;Elements.prototype[elementsProperty]=Elements.Multi(property);}};Element.extend({set:function(props){for(var prop in props){var val=props[prop];switch(prop){case'styles':this.setStyles(val);break;case'events':if(this.addEvents)this.addEvents(val);break;case'properties':this.setProperties(val);break;default:this.setProperty(prop,val);}}
return this;},inject:function(el,where){el=$(el);switch(where){case'before':el.parentNode.insertBefore(this,el);break;case'after':var next=el.getNext();if(!next)el.parentNode.appendChild(this);else el.parentNode.insertBefore(this,next);break;case'top':var first=el.firstChild;if(first){el.insertBefore(this,first);break;}
default:el.appendChild(this);}
return this;},injectBefore:function(el){return this.inject(el,'before');},injectAfter:function(el){return this.inject(el,'after');},injectInside:function(el){return this.inject(el,'bottom');},injectTop:function(el){return this.inject(el,'top');},adopt:function(){var elements=[];$each(arguments,function(argument){elements=elements.concat(argument);});$$(elements).inject(this);return this;},remove:function(){return this.parentNode.removeChild(this);},clone:function(contents){var el=$(this.cloneNode(contents!==false));if(!el.$events)return el;el.$events={};for(var type in this.$events)el.$events[type]={'keys':$A(this.$events[type].keys),'values':$A(this.$events[type].values)};return el.removeEvents();},replaceWith:function(el){el=$(el);this.parentNode.replaceChild(el,this);return el;},appendText:function(text){this.appendChild(document.createTextNode(text));return this;},hasClass:function(className){return this.className.contains(className,' ');},addClass:function(className){if(!this.hasClass(className))this.className=(this.className+' '+className).clean();return this;},removeClass:function(className){this.className=this.className.replace(new RegExp('(^|\\s)'+className+'(?:\\s|$)'),'$1').clean();return this;},toggleClass:function(className){return this.hasClass(className)?this.removeClass(className):this.addClass(className);},setStyle:function(property,value){switch(property){case'opacity':return this.setOpacity(parseFloat(value));case'float':property=(window.ie)?'styleFloat':'cssFloat';}
property=property.camelCase();switch($type(value)){case'number':if(!['zIndex','zoom'].contains(property))value+='px';break;case'array':value='rgb('+value.join(',')+')';}
this.style[property]=value;return this;},setStyles:function(source){switch($type(source)){case'object':Element.setMany(this,'setStyle',source);break;case'string':this.style.cssText=source;}
return this;},setOpacity:function(opacity){if(opacity==0){if(this.style.visibility!="hidden")this.style.visibility="hidden";}else{if(this.style.visibility!="visible")this.style.visibility="visible";}
if(!this.currentStyle||!this.currentStyle.hasLayout)this.style.zoom=1;if(window.ie)this.style.filter=(opacity==1)?'':"alpha(opacity="+opacity*100+")";this.style.opacity=this.$tmp.opacity=opacity;return this;},getStyle:function(property){property=property.camelCase();var result=this.style[property];if(!$chk(result)){if(property=='opacity')return this.$tmp.opacity;result=[];for(var style in Element.Styles){if(property==style){Element.Styles[style].each(function(s){var style=this.getStyle(s);result.push(parseInt(style)?style:'0px');},this);if(property=='border'){var every=result.every(function(bit){return(bit==result[0]);});return(every)?result[0]:false;}
return result.join(' ');}}
if(property.contains('border')){if(Element.Styles.border.contains(property)){return['Width','Style','Color'].map(function(p){return this.getStyle(property+p);},this).join(' ');}else if(Element.borderShort.contains(property)){return['Top','Right','Bottom','Left'].map(function(p){return this.getStyle('border'+p+property.replace('border',''));},this).join(' ');}}
if(document.defaultView)result=document.defaultView.getComputedStyle(this,null).getPropertyValue(property.hyphenate());else if(this.currentStyle)result=this.currentStyle[property];}
if(window.ie)result=Element.fixStyle(property,result,this);if(result&&property.test(/color/i)&&result.contains('rgb')){return result.split('rgb').splice(1,4).map(function(color){return color.rgbToHex();}).join(' ');}
return result;},getStyles:function(){return Element.getMany(this,'getStyle',arguments);},walk:function(brother,start){brother+='Sibling';var el=(start)?this[start]:this[brother];while(el&&$type(el)!='element')el=el[brother];return $(el);},getPrevious:function(){return this.walk('previous');},getNext:function(){return this.walk('next');},getFirst:function(){return this.walk('next','firstChild');},getLast:function(){return this.walk('previous','lastChild');},getParent:function(){return $(this.parentNode);},getChildren:function(){return $$(this.childNodes);},hasChild:function(el){return!!$A(this.getElementsByTagName('*')).contains(el);},getProperty:function(property){var index=Element.Properties[property];if(index)return this[index];var flag=Element.PropertiesIFlag[property]||0;if(!window.ie||flag)return this.getAttribute(property,flag);var node=this.attributes[property];return(node)?node.nodeValue:null;},removeProperty:function(property){var index=Element.Properties[property];if(index)this[index]='';else this.removeAttribute(property);return this;},getProperties:function(){return Element.getMany(this,'getProperty',arguments);},setProperty:function(property,value){var index=Element.Properties[property];if(index)this[index]=value;else this.setAttribute(property,value);return this;},setProperties:function(source){return Element.setMany(this,'setProperty',source);},setHTML:function(){this.innerHTML=$A(arguments).join('');return this;},setText:function(text){var tag=this.getTag();if(['style','script'].contains(tag)){if(window.ie){if(tag=='style')this.styleSheet.cssText=text;else if(tag=='script')this.setProperty('text',text);return this;}else{this.removeChild(this.firstChild);return this.appendText(text);}}
this[$defined(this.innerText)?'innerText':'textContent']=text;return this;},getText:function(){var tag=this.getTag();if(['style','script'].contains(tag)){if(window.ie){if(tag=='style')return this.styleSheet.cssText;else if(tag=='script')return this.getProperty('text');}else{return this.innerHTML;}}
return($pick(this.innerText,this.textContent));},getTag:function(){return this.tagName.toLowerCase();},empty:function(){Garbage.trash(this.getElementsByTagName('*'));return this.setHTML('');}});Element.fixStyle=function(property,result,element){if($chk(parseInt(result)))return result;if(['height','width'].contains(property)){var values=(property=='width')?['left','right']:['top','bottom'];var size=0;values.each(function(value){size+=element.getStyle('border-'+value+'-width').toInt()+element.getStyle('padding-'+value).toInt();});return element['offset'+property.capitalize()]-size+'px';}else if(property.test(/border(.+)Width|margin|padding/)){return'0px';}
return result;};Element.Styles={'border':[],'padding':[],'margin':[]};['Top','Right','Bottom','Left'].each(function(direction){for(var style in Element.Styles)Element.Styles[style].push(style+direction);});Element.borderShort=['borderWidth','borderStyle','borderColor'];Element.getMany=function(el,method,keys){var result={};$each(keys,function(key){result[key]=el[method](key);});return result;};Element.setMany=function(el,method,pairs){for(var key in pairs)el[method](key,pairs[key]);return el;};Element.Properties=new Abstract({'class':'className','for':'htmlFor','colspan':'colSpan','rowspan':'rowSpan','accesskey':'accessKey','tabindex':'tabIndex','maxlength':'maxLength','readonly':'readOnly','frameborder':'frameBorder','value':'value','disabled':'disabled','checked':'checked','multiple':'multiple','selected':'selected'});Element.PropertiesIFlag={'href':2,'src':2};Element.Methods={Listeners:{addListener:function(type,fn){if(this.addEventListener)this.addEventListener(type,fn,false);else this.attachEvent('on'+type,fn);return this;},removeListener:function(type,fn){if(this.removeEventListener)this.removeEventListener(type,fn,false);else this.detachEvent('on'+type,fn);return this;}}};window.extend(Element.Methods.Listeners);document.extend(Element.Methods.Listeners);Element.extend(Element.Methods.Listeners);var Garbage={elements:[],collect:function(el){if(!el.$tmp){Garbage.elements.push(el);el.$tmp={'opacity':1};}
return el;},trash:function(elements){for(var i=0,j=elements.length,el;i<j;i++){if(!(el=elements[i])||!el.$tmp)continue;if(el.$events)el.fireEvent('trash').removeEvents();for(var p in el.$tmp)el.$tmp[p]=null;for(var d in Element.prototype)el[d]=null;Garbage.elements[Garbage.elements.indexOf(el)]=null;el.htmlElement=el.$tmp=el=null;}
Garbage.elements.remove(null);},empty:function(){Garbage.collect(window);Garbage.collect(document);Garbage.trash(Garbage.elements);}};window.addListener('beforeunload',function(){window.addListener('unload',Garbage.empty);if(window.ie)window.addListener('unload',CollectGarbage);});var Event=new Class({initialize:function(event){if(event&&event.$extended)return event;this.$extended=true;event=event||window.event;this.event=event;this.type=event.type;this.target=event.target||event.srcElement;if(this.target.nodeType==3)this.target=this.target.parentNode;this.shift=event.shiftKey;this.control=event.ctrlKey;this.alt=event.altKey;this.meta=event.metaKey;if(['DOMMouseScroll','mousewheel'].contains(this.type)){this.wheel=(event.wheelDelta)?event.wheelDelta/120:-(event.detail||0)/3;}else if(this.type.contains('key')){this.code=event.which||event.keyCode;for(var name in Event.keys){if(Event.keys[name]==this.code){this.key=name;break;}}
if(this.type=='keydown'){var fKey=this.code-111;if(fKey>0&&fKey<13)this.key='f'+fKey;}
this.key=this.key||String.fromCharCode(this.code).toLowerCase();}else if(this.type.test(/(click|mouse|menu)/)){this.page={'x':event.pageX||event.clientX+document.documentElement.scrollLeft,'y':event.pageY||event.clientY+document.documentElement.scrollTop};this.client={'x':event.pageX?event.pageX-window.pageXOffset:event.clientX,'y':event.pageY?event.pageY-window.pageYOffset:event.clientY};this.rightClick=(event.which==3)||(event.button==2);switch(this.type){case'mouseover':this.relatedTarget=event.relatedTarget||event.fromElement;break;case'mouseout':this.relatedTarget=event.relatedTarget||event.toElement;}
this.fixRelatedTarget();}
return this;},stop:function(){return this.stopPropagation().preventDefault();},stopPropagation:function(){if(this.event.stopPropagation)this.event.stopPropagation();else this.event.cancelBubble=true;return this;},preventDefault:function(){if(this.event.preventDefault)this.event.preventDefault();else this.event.returnValue=false;return this;}});Event.fix={relatedTarget:function(){if(this.relatedTarget&&this.relatedTarget.nodeType==3)this.relatedTarget=this.relatedTarget.parentNode;},relatedTargetGecko:function(){try{Event.fix.relatedTarget.call(this);}catch(e){this.relatedTarget=this.target;}}};Event.prototype.fixRelatedTarget=(window.gecko)?Event.fix.relatedTargetGecko:Event.fix.relatedTarget;Event.keys=new Abstract({'enter':13,'up':38,'down':40,'left':37,'right':39,'esc':27,'space':32,'backspace':8,'tab':9,'delete':46});Element.Methods.Events={addEvent:function(type,fn){this.$events=this.$events||{};this.$events[type]=this.$events[type]||{'keys':[],'values':[]};if(this.$events[type].keys.contains(fn))return this;this.$events[type].keys.push(fn);var realType=type;var custom=Element.Events[type];if(custom){if(custom.add)custom.add.call(this,fn);if(custom.map)fn=custom.map;if(custom.type)realType=custom.type;}
if(!this.addEventListener)fn=fn.create({'bind':this,'event':true});this.$events[type].values.push(fn);return(Element.NativeEvents.contains(realType))?this.addListener(realType,fn):this;},removeEvent:function(type,fn){if(!this.$events||!this.$events[type])return this;var pos=this.$events[type].keys.indexOf(fn);if(pos==-1)return this;var key=this.$events[type].keys.splice(pos,1)[0];var value=this.$events[type].values.splice(pos,1)[0];var custom=Element.Events[type];if(custom){if(custom.remove)custom.remove.call(this,fn);if(custom.type)type=custom.type;}
return(Element.NativeEvents.contains(type))?this.removeListener(type,value):this;},addEvents:function(source){return Element.setMany(this,'addEvent',source);},removeEvents:function(type){if(!this.$events)return this;if(!type){for(var evType in this.$events)this.removeEvents(evType);this.$events=null;}else if(this.$events[type]){this.$events[type].keys.each(function(fn){this.removeEvent(type,fn);},this);this.$events[type]=null;}
return this;},fireEvent:function(type,args,delay){if(this.$events&&this.$events[type]){this.$events[type].keys.each(function(fn){fn.create({'bind':this,'delay':delay,'arguments':args})();},this);}
return this;},cloneEvents:function(from,type){if(!from.$events)return this;if(!type){for(var evType in from.$events)this.cloneEvents(from,evType);}else if(from.$events[type]){from.$events[type].keys.each(function(fn){this.addEvent(type,fn);},this);}
return this;}};window.extend(Element.Methods.Events);document.extend(Element.Methods.Events);Element.extend(Element.Methods.Events);Element.Events=new Abstract({'mouseenter':{type:'mouseover',map:function(event){event=new Event(event);if(event.relatedTarget!=this&&!this.hasChild(event.relatedTarget))this.fireEvent('mouseenter',event);}},'mouseleave':{type:'mouseout',map:function(event){event=new Event(event);if(event.relatedTarget!=this&&!this.hasChild(event.relatedTarget))this.fireEvent('mouseleave',event);}},'mousewheel':{type:(window.gecko)?'DOMMouseScroll':'mousewheel'}});Element.NativeEvents=['click','dblclick','mouseup','mousedown','mousewheel','DOMMouseScroll','mouseover','mouseout','mousemove','keydown','keypress','keyup','load','unload','beforeunload','resize','move','focus','blur','change','submit','reset','select','error','abort','contextmenu','scroll'];Function.extend({bindWithEvent:function(bind,args){return this.create({'bind':bind,'arguments':args,'event':Event});}});Elements.extend({filterByTag:function(tag){return new Elements(this.filter(function(el){return(Element.getTag(el)==tag);}));},filterByClass:function(className,nocash){var elements=this.filter(function(el){return(el.className&&el.className.contains(className,' '));});return(nocash)?elements:new Elements(elements);},filterById:function(id,nocash){var elements=this.filter(function(el){return(el.id==id);});return(nocash)?elements:new Elements(elements);},filterByAttribute:function(name,operator,value,nocash){var elements=this.filter(function(el){var current=Element.getProperty(el,name);if(!current)return false;if(!operator)return true;switch(operator){case'=':return(current==value);case'*=':return(current.contains(value));case'^=':return(current.substr(0,value.length)==value);case'$=':return(current.substr(current.length-value.length)==value);case'!=':return(current!=value);case'~=':return current.contains(value,' ');}
return false;});return(nocash)?elements:new Elements(elements);}});function $E(selector,filter){return($(filter)||document).getElement(selector);};function $ES(selector,filter){return($(filter)||document).getElementsBySelector(selector);};$$.shared={'regexp':/^(\w*|\*)(?:#([\w-]+)|\.([\w-]+))?(?:\[(\w+)(?:([!*^$]?=)["']?([^"'\]]*)["']?)?])?$/,'xpath':{getParam:function(items,context,param,i){var temp=[context.namespaceURI?'xhtml:':'',param[1]];if(param[2])temp.push('[@id="',param[2],'"]');if(param[3])temp.push('[contains(concat(" ", @class, " "), " ',param[3],' ")]');if(param[4]){if(param[5]&&param[6]){switch(param[5]){case'*=':temp.push('[contains(@',param[4],', "',param[6],'")]');break;case'^=':temp.push('[starts-with(@',param[4],', "',param[6],'")]');break;case'$=':temp.push('[substring(@',param[4],', string-length(@',param[4],') - ',param[6].length,' + 1) = "',param[6],'"]');break;case'=':temp.push('[@',param[4],'="',param[6],'"]');break;case'!=':temp.push('[@',param[4],'!="',param[6],'"]');}}else{temp.push('[@',param[4],']');}}
items.push(temp.join(''));return items;},getItems:function(items,context,nocash){var elements=[];var xpath=document.evaluate('.//'+items.join('//'),context,$$.shared.resolver,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);for(var i=0,j=xpath.snapshotLength;i<j;i++)elements.push(xpath.snapshotItem(i));return(nocash)?elements:new Elements(elements.map($));}},'normal':{getParam:function(items,context,param,i){if(i==0){if(param[2]){var el=context.getElementById(param[2]);if(!el||((param[1]!='*')&&(Element.getTag(el)!=param[1])))return false;items=[el];}else{items=$A(context.getElementsByTagName(param[1]));}}else{items=$$.shared.getElementsByTagName(items,param[1]);if(param[2])items=Elements.filterById(items,param[2],true);}
if(param[3])items=Elements.filterByClass(items,param[3],true);if(param[4])items=Elements.filterByAttribute(items,param[4],param[5],param[6],true);return items;},getItems:function(items,context,nocash){return(nocash)?items:$$.unique(items);}},resolver:function(prefix){return(prefix=='xhtml')?'http://www.w3.org/1999/xhtml':false;},getElementsByTagName:function(context,tagName){var found=[];for(var i=0,j=context.length;i<j;i++)found.extend(context[i].getElementsByTagName(tagName));return found;}};$$.shared.method=(window.xpath)?'xpath':'normal';Element.Methods.Dom={getElements:function(selector,nocash){var items=[];selector=selector.trim().split(' ');for(var i=0,j=selector.length;i<j;i++){var sel=selector[i];var param=sel.match($$.shared.regexp);if(!param)break;param[1]=param[1]||'*';var temp=$$.shared[$$.shared.method].getParam(items,this,param,i);if(!temp)break;items=temp;}
return $$.shared[$$.shared.method].getItems(items,this,nocash);},getElement:function(selector){return $(this.getElements(selector,true)[0]||false);},getElementsBySelector:function(selector,nocash){var elements=[];selector=selector.split(',');for(var i=0,j=selector.length;i<j;i++)elements=elements.concat(this.getElements(selector[i],true));return(nocash)?elements:$$.unique(elements);}};Element.extend({getElementById:function(id){var el=document.getElementById(id);if(!el)return false;for(var parent=el.parentNode;parent!=this;parent=parent.parentNode){if(!parent)return false;}
return el;},getElementsByClassName:function(className){return this.getElements('.'+className);}});document.extend(Element.Methods.Dom);Element.extend(Element.Methods.Dom);Element.extend({getValue:function(){switch(this.getTag()){case'select':var values=[];$each(this.options,function(option){if(option.selected)values.push($pick(option.value,option.text));});return(this.multiple)?values:values[0];case'input':if(!(this.checked&&['checkbox','radio'].contains(this.type))&&!['hidden','text','password'].contains(this.type))break;case'textarea':return this.value;}
return false;},getFormElements:function(){return $$(this.getElementsByTagName('input'),this.getElementsByTagName('select'),this.getElementsByTagName('textarea'));},toQueryString:function(){var queryString=[];this.getFormElements().each(function(el){var name=el.name;var value=el.getValue();if(value===false||!name||el.disabled)return;var qs=function(val){queryString.push(name+'='+encodeURIComponent(val));};if($type(value)=='array')value.each(qs);else qs(value);});return queryString.join('&');}});Element.extend({scrollTo:function(x,y){this.scrollLeft=x;this.scrollTop=y;},getSize:function(){return{'scroll':{'x':this.scrollLeft,'y':this.scrollTop},'size':{'x':this.offsetWidth,'y':this.offsetHeight},'scrollSize':{'x':this.scrollWidth,'y':this.scrollHeight}};},getPosition:function(overflown){overflown=overflown||[];var el=this,left=0,top=0;do{left+=el.offsetLeft||0;top+=el.offsetTop||0;el=el.offsetParent;}while(el);overflown.each(function(element){left-=element.scrollLeft||0;top-=element.scrollTop||0;});return{'x':left,'y':top};},getTop:function(overflown){return this.getPosition(overflown).y;},getLeft:function(overflown){return this.getPosition(overflown).x;},getCoordinates:function(overflown){var position=this.getPosition(overflown);var obj={'width':this.offsetWidth,'height':this.offsetHeight,'left':position.x,'top':position.y};obj.right=obj.left+obj.width;obj.bottom=obj.top+obj.height;return obj;}});Element.Events.domready={add:function(fn){if(window.loaded){fn.call(this);return;}
var domReady=function(){if(window.loaded)return;window.loaded=true;window.timer=$clear(window.timer);this.fireEvent('domready');}.bind(this);if(document.readyState&&window.webkit){window.timer=function(){if(['loaded','complete'].contains(document.readyState))domReady();}.periodical(50);}else if(document.readyState&&window.ie){if(!$('ie_ready')){var src=(window.location.protocol=='https:')?'://0':'javascript:void(0)';document.write('<script id="ie_ready" defer src="'+src+'"><\/script>');$('ie_ready').onreadystatechange=function(){if(this.readyState=='complete')domReady();};}}else{window.addListener("load",domReady);document.addListener("DOMContentLoaded",domReady);}}};window.onDomReady=function(fn){return this.addEvent('domready',fn);};window.extend({getWidth:function(){if(this.webkit419)return this.innerWidth;if(this.opera)return document.body.clientWidth;return document.documentElement.clientWidth;},getHeight:function(){if(this.webkit419)return this.innerHeight;if(this.opera)return document.body.clientHeight;return document.documentElement.clientHeight;},getScrollWidth:function(){if(this.ie)return Math.max(document.documentElement.offsetWidth,document.documentElement.scrollWidth);if(this.webkit)return document.body.scrollWidth;return document.documentElement.scrollWidth;},getScrollHeight:function(){if(this.ie)return Math.max(document.documentElement.offsetHeight,document.documentElement.scrollHeight);if(this.webkit)return document.body.scrollHeight;return document.documentElement.scrollHeight;},getScrollLeft:function(){return this.pageXOffset||document.documentElement.scrollLeft;},getScrollTop:function(){return this.pageYOffset||document.documentElement.scrollTop;},getSize:function(){return{'size':{'x':this.getWidth(),'y':this.getHeight()},'scrollSize':{'x':this.getScrollWidth(),'y':this.getScrollHeight()},'scroll':{'x':this.getScrollLeft(),'y':this.getScrollTop()}};},getPosition:function(){return{'x':0,'y':0};}});var Fx={};Fx.Base=new Class({options:{onStart:Class.empty,onComplete:Class.empty,onCancel:Class.empty,transition:function(p){return-(Math.cos(Math.PI*p)-1)/2;},duration:500,unit:'px',wait:true,fps:50},initialize:function(options){this.element=this.element||null;this.setOptions(options);if(this.options.initialize)this.options.initialize.call(this);},step:function(){var time=$time();if(time<this.time+this.options.duration){this.delta=this.options.transition((time-this.time)/this.options.duration);this.setNow();this.increase();}else{this.stop(true);this.set(this.to);this.fireEvent('onComplete',this.element,10);this.callChain();}},set:function(to){this.now=to;this.increase();return this;},setNow:function(){this.now=this.compute(this.from,this.to);},compute:function(from,to){return(to-from)*this.delta+from;},start:function(from,to){if(!this.options.wait)this.stop();else if(this.timer)return this;this.from=from;this.to=to;this.change=this.to-this.from;this.time=$time();this.timer=this.step.periodical(Math.round(1000/this.options.fps),this);this.fireEvent('onStart',this.element);return this;},stop:function(end){if(!this.timer)return this;this.timer=$clear(this.timer);if(!end)this.fireEvent('onCancel',this.element);return this;},custom:function(from,to){return this.start(from,to);},clearTimer:function(end){return this.stop(end);}});Fx.Base.implement(new Chain,new Events,new Options);Fx.CSS={select:function(property,to){if(property.test(/color/i))return this.Color;var type=$type(to);if((type=='array')||(type=='string'&&to.contains(' ')))return this.Multi;return this.Single;},parse:function(el,property,fromTo){if(!fromTo.push)fromTo=[fromTo];var from=fromTo[0],to=fromTo[1];if(!$chk(to)){to=from;from=el.getStyle(property);}
var css=this.select(property,to);return{'from':css.parse(from),'to':css.parse(to),'css':css};}};Fx.CSS.Single={parse:function(value){return parseFloat(value);},getNow:function(from,to,fx){return fx.compute(from,to);},getValue:function(value,unit,property){if(unit=='px'&&property!='opacity')value=Math.round(value);return value+unit;}};Fx.CSS.Multi={parse:function(value){return value.push?value:value.split(' ').map(function(v){return parseFloat(v);});},getNow:function(from,to,fx){var now=[];for(var i=0;i<from.length;i++)now[i]=fx.compute(from[i],to[i]);return now;},getValue:function(value,unit,property){if(unit=='px'&&property!='opacity')value=value.map(Math.round);return value.join(unit+' ')+unit;}};Fx.CSS.Color={parse:function(value){return value.push?value:value.hexToRgb(true);},getNow:function(from,to,fx){var now=[];for(var i=0;i<from.length;i++)now[i]=Math.round(fx.compute(from[i],to[i]));return now;},getValue:function(value){return'rgb('+value.join(',')+')';}};Fx.Style=Fx.Base.extend({initialize:function(el,property,options){this.element=$(el);this.property=property;this.parent(options);},hide:function(){return this.set(0);},setNow:function(){this.now=this.css.getNow(this.from,this.to,this);},set:function(to){this.css=Fx.CSS.select(this.property,to);return this.parent(this.css.parse(to));},start:function(from,to){if(this.timer&&this.options.wait)return this;var parsed=Fx.CSS.parse(this.element,this.property,[from,to]);this.css=parsed.css;return this.parent(parsed.from,parsed.to);},increase:function(){this.element.setStyle(this.property,this.css.getValue(this.now,this.options.unit,this.property));}});Element.extend({effect:function(property,options){return new Fx.Style(this,property,options);}});Fx.Styles=Fx.Base.extend({initialize:function(el,options){this.element=$(el);this.parent(options);},setNow:function(){for(var p in this.from)this.now[p]=this.css[p].getNow(this.from[p],this.to[p],this);},set:function(to){var parsed={};this.css={};for(var p in to){this.css[p]=Fx.CSS.select(p,to[p]);parsed[p]=this.css[p].parse(to[p]);}
return this.parent(parsed);},start:function(obj){if(this.timer&&this.options.wait)return this;this.now={};this.css={};var from={},to={};for(var p in obj){var parsed=Fx.CSS.parse(this.element,p,obj[p]);from[p]=parsed.from;to[p]=parsed.to;this.css[p]=parsed.css;}
return this.parent(from,to);},increase:function(){for(var p in this.now)this.element.setStyle(p,this.css[p].getValue(this.now[p],this.options.unit,p));}});Element.extend({effects:function(options){return new Fx.Styles(this,options);}});Fx.Elements=Fx.Base.extend({initialize:function(elements,options){this.elements=$$(elements);this.parent(options);},setNow:function(){for(var i in this.from){var iFrom=this.from[i],iTo=this.to[i],iCss=this.css[i],iNow=this.now[i]={};for(var p in iFrom)iNow[p]=iCss[p].getNow(iFrom[p],iTo[p],this);}},set:function(to){var parsed={};this.css={};for(var i in to){var iTo=to[i],iCss=this.css[i]={},iParsed=parsed[i]={};for(var p in iTo){iCss[p]=Fx.CSS.select(p,iTo[p]);iParsed[p]=iCss[p].parse(iTo[p]);}}
return this.parent(parsed);},start:function(obj){if(this.timer&&this.options.wait)return this;this.now={};this.css={};var from={},to={};for(var i in obj){var iProps=obj[i],iFrom=from[i]={},iTo=to[i]={},iCss=this.css[i]={};for(var p in iProps){var parsed=Fx.CSS.parse(this.elements[i],p,iProps[p]);iFrom[p]=parsed.from;iTo[p]=parsed.to;iCss[p]=parsed.css;}}
return this.parent(from,to);},increase:function(){for(var i in this.now){var iNow=this.now[i],iCss=this.css[i];for(var p in iNow)this.elements[i].setStyle(p,iCss[p].getValue(iNow[p],this.options.unit,p));}}});Fx.Scroll=Fx.Base.extend({options:{overflown:[],offset:{'x':0,'y':0},wheelStops:true},initialize:function(element,options){this.now=[];this.element=$(element);this.bound={'stop':this.stop.bind(this,false)};this.parent(options);if(this.options.wheelStops){this.addEvent('onStart',function(){document.addEvent('mousewheel',this.bound.stop);}.bind(this));this.addEvent('onComplete',function(){document.removeEvent('mousewheel',this.bound.stop);}.bind(this));}},setNow:function(){for(var i=0;i<2;i++)this.now[i]=this.compute(this.from[i],this.to[i]);},scrollTo:function(x,y){if(this.timer&&this.options.wait)return this;var el=this.element.getSize();var values={'x':x,'y':y};for(var z in el.size){var max=el.scrollSize[z]-el.size[z];if($chk(values[z]))values[z]=($type(values[z])=='number')?values[z].limit(0,max):max;else values[z]=el.scroll[z];values[z]+=this.options.offset[z];}
return this.start([el.scroll.x,el.scroll.y],[values.x,values.y]);},toTop:function(){return this.scrollTo(false,0);},toBottom:function(){return this.scrollTo(false,'full');},toLeft:function(){return this.scrollTo(0,false);},toRight:function(){return this.scrollTo('full',false);},toElement:function(el){var parent=this.element.getPosition(this.options.overflown);var target=$(el).getPosition(this.options.overflown);return this.scrollTo(target.x-parent.x,target.y-parent.y);},increase:function(){this.element.scrollTo(this.now[0],this.now[1]);}});Fx.Slide=Fx.Base.extend({options:{mode:'vertical'},initialize:function(el,options){this.element=$(el);this.wrapper=new Element('div',{'styles':$extend(this.element.getStyles('margin'),{'overflow':'hidden'})}).injectAfter(this.element).adopt(this.element);this.element.setStyle('margin',0);this.setOptions(options);this.now=[];this.parent(this.options);this.open=true;this.addEvent('onComplete',function(){this.open=(this.now[0]===0);});if(window.webkit419)this.addEvent('onComplete',function(){if(this.open)this.element.remove().inject(this.wrapper);});},setNow:function(){for(var i=0;i<2;i++)this.now[i]=this.compute(this.from[i],this.to[i]);},vertical:function(){this.margin='margin-top';this.layout='height';this.offset=this.element.offsetHeight;},horizontal:function(){this.margin='margin-left';this.layout='width';this.offset=this.element.offsetWidth;},slideIn:function(mode){this[mode||this.options.mode]();return this.start([this.element.getStyle(this.margin).toInt(),this.wrapper.getStyle(this.layout).toInt()],[0,this.offset]);},slideOut:function(mode){this[mode||this.options.mode]();return this.start([this.element.getStyle(this.margin).toInt(),this.wrapper.getStyle(this.layout).toInt()],[-this.offset,0]);},hide:function(mode){this[mode||this.options.mode]();this.open=false;return this.set([-this.offset,0]);},show:function(mode){this[mode||this.options.mode]();this.open=true;return this.set([0,this.offset]);},toggle:function(mode){if(this.wrapper.offsetHeight==0||this.wrapper.offsetWidth==0)return this.slideIn(mode);return this.slideOut(mode);},increase:function(){this.element.setStyle(this.margin,this.now[0]+this.options.unit);this.wrapper.setStyle(this.layout,this.now[1]+this.options.unit);}});Fx.Transition=function(transition,params){params=params||[];if($type(params)!='array')params=[params];return $extend(transition,{easeIn:function(pos){return transition(pos,params);},easeOut:function(pos){return 1-transition(1-pos,params);},easeInOut:function(pos){return(pos<=0.5)?transition(2*pos,params)/2:(2-transition(2*(1-pos),params))/2;}});};Fx.Transitions=new Abstract({linear:function(p){return p;}});Fx.Transitions.extend=function(transitions){for(var transition in transitions){Fx.Transitions[transition]=new Fx.Transition(transitions[transition]);Fx.Transitions.compat(transition);}};Fx.Transitions.compat=function(transition){['In','Out','InOut'].each(function(easeType){Fx.Transitions[transition.toLowerCase()+easeType]=Fx.Transitions[transition]['ease'+easeType];});};Fx.Transitions.extend({Pow:function(p,x){return Math.pow(p,x[0]||6);},Expo:function(p){return Math.pow(2,8*(p-1));},Circ:function(p){return 1-Math.sin(Math.acos(p));},Sine:function(p){return 1-Math.sin((1-p)*Math.PI/2);},Back:function(p,x){x=x[0]||1.618;return Math.pow(p,2)*((x+1)*p-x);},Bounce:function(p){var value;for(var a=0,b=1;1;a+=b,b/=2){if(p>=(7-4*a)/11){value=-Math.pow((11-6*a-11*p)/4,2)+b*b;break;}}
return value;},Elastic:function(p,x){return Math.pow(2,10*--p)*Math.cos(20*p*Math.PI*(x[0]||1)/3);}});['Quad','Cubic','Quart','Quint'].each(function(transition,i){Fx.Transitions[transition]=new Fx.Transition(function(p){return Math.pow(p,[i+2]);});Fx.Transitions.compat(transition);});var Drag={};Drag.Base=new Class({options:{handle:false,unit:'px',onStart:Class.empty,onBeforeStart:Class.empty,onComplete:Class.empty,onSnap:Class.empty,onDrag:Class.empty,limit:false,modifiers:{x:'left',y:'top'},grid:false,snap:6},initialize:function(el,options){this.setOptions(options);this.element=$(el);this.handle=$(this.options.handle)||this.element;this.mouse={'now':{},'pos':{}};this.value={'start':{},'now':{}};this.bound={'start':this.start.bindWithEvent(this),'check':this.check.bindWithEvent(this),'drag':this.drag.bindWithEvent(this),'stop':this.stop.bind(this)};this.attach();if(this.options.initialize)this.options.initialize.call(this);},attach:function(){this.handle.addEvent('mousedown',this.bound.start);return this;},detach:function(){this.handle.removeEvent('mousedown',this.bound.start);return this;},start:function(event){this.fireEvent('onBeforeStart',this.element);this.mouse.start=event.page;var limit=this.options.limit;this.limit={'x':[],'y':[]};for(var z in this.options.modifiers){if(!this.options.modifiers[z])continue;this.value.now[z]=this.element.getStyle(this.options.modifiers[z]).toInt();this.mouse.pos[z]=event.page[z]-this.value.now[z];if(limit&&limit[z]){for(var i=0;i<2;i++){if($chk(limit[z][i]))this.limit[z][i]=($type(limit[z][i])=='function')?limit[z][i]():limit[z][i];}}}
if($type(this.options.grid)=='number')this.options.grid={'x':this.options.grid,'y':this.options.grid};document.addListener('mousemove',this.bound.check);document.addListener('mouseup',this.bound.stop);this.fireEvent('onStart',this.element);event.stop();},check:function(event){var distance=Math.round(Math.sqrt(Math.pow(event.page.x-this.mouse.start.x,2)+Math.pow(event.page.y-this.mouse.start.y,2)));if(distance>this.options.snap){document.removeListener('mousemove',this.bound.check);document.addListener('mousemove',this.bound.drag);this.drag(event);this.fireEvent('onSnap',this.element);}
event.stop();},drag:function(event){this.out=false;this.mouse.now=event.page;for(var z in this.options.modifiers){if(!this.options.modifiers[z])continue;this.value.now[z]=this.mouse.now[z]-this.mouse.pos[z];if(this.limit[z]){if($chk(this.limit[z][1])&&(this.value.now[z]>this.limit[z][1])){this.value.now[z]=this.limit[z][1];this.out=true;}else if($chk(this.limit[z][0])&&(this.value.now[z]<this.limit[z][0])){this.value.now[z]=this.limit[z][0];this.out=true;}}
if(this.options.grid[z])this.value.now[z]-=(this.value.now[z]%this.options.grid[z]);this.element.setStyle(this.options.modifiers[z],this.value.now[z]+this.options.unit);}
this.fireEvent('onDrag',this.element);event.stop();},stop:function(){document.removeListener('mousemove',this.bound.check);document.removeListener('mousemove',this.bound.drag);document.removeListener('mouseup',this.bound.stop);this.fireEvent('onComplete',this.element);}});Drag.Base.implement(new Events,new Options);Element.extend({makeResizable:function(options){return new Drag.Base(this,$merge({modifiers:{x:'width',y:'height'}},options));}});Drag.Move=Drag.Base.extend({options:{droppables:[],container:false,overflown:[]},initialize:function(el,options){this.setOptions(options);this.element=$(el);this.droppables=$$(this.options.droppables);this.container=$(this.options.container);this.position={'element':this.element.getStyle('position'),'container':false};if(this.container)this.position.container=this.container.getStyle('position');if(!['relative','absolute','fixed'].contains(this.position.element))this.position.element='absolute';var top=this.element.getStyle('top').toInt();var left=this.element.getStyle('left').toInt();if(this.position.element=='absolute'&&!['relative','absolute','fixed'].contains(this.position.container)){top=$chk(top)?top:this.element.getTop(this.options.overflown);left=$chk(left)?left:this.element.getLeft(this.options.overflown);}else{top=$chk(top)?top:0;left=$chk(left)?left:0;}
this.element.setStyles({'top':top,'left':left,'position':this.position.element});this.parent(this.element);},start:function(event){this.overed=null;if(this.container){var cont=this.container.getCoordinates();var el=this.element.getCoordinates();if(this.position.element=='absolute'&&!['relative','absolute','fixed'].contains(this.position.container)){this.options.limit={'x':[cont.left,cont.right-el.width],'y':[cont.top,cont.bottom-el.height]};}else{this.options.limit={'y':[0,cont.height-el.height],'x':[0,cont.width-el.width]};}}
this.parent(event);},drag:function(event){this.parent(event);var overed=this.out?false:this.droppables.filter(this.checkAgainst,this).getLast();if(this.overed!=overed){if(this.overed)this.overed.fireEvent('leave',[this.element,this]);this.overed=overed?overed.fireEvent('over',[this.element,this]):null;}
return this;},checkAgainst:function(el){el=el.getCoordinates(this.options.overflown);var now=this.mouse.now;return(now.x>el.left&&now.x<el.right&&now.y<el.bottom&&now.y>el.top);},stop:function(){if(this.overed&&!this.out)this.overed.fireEvent('drop',[this.element,this]);else this.element.fireEvent('emptydrop',this);this.parent();return this;}});Element.extend({makeDraggable:function(options){return new Drag.Move(this,options);}});var XHR=new Class({options:{method:'post',async:true,onRequest:Class.empty,onSuccess:Class.empty,onFailure:Class.empty,urlEncoded:true,encoding:'utf-8',autoCancel:false,headers:{}},setTransport:function(){this.transport=(window.XMLHttpRequest)?new XMLHttpRequest():(window.ie?new ActiveXObject('Microsoft.XMLHTTP'):false);return this;},initialize:function(options){this.setTransport().setOptions(options);this.options.isSuccess=this.options.isSuccess||this.isSuccess;this.headers={};if(this.options.urlEncoded&&this.options.method=='post'){var encoding=(this.options.encoding)?'; charset='+this.options.encoding:'';this.setHeader('Content-type','application/x-www-form-urlencoded'+encoding);}
if(this.options.initialize)this.options.initialize.call(this);},onStateChange:function(){if(this.transport.readyState!=4||!this.running)return;this.running=false;var status=0;try{status=this.transport.status;}catch(e){};if(this.options.isSuccess.call(this,status))this.onSuccess();else this.onFailure();this.transport.onreadystatechange=Class.empty;},isSuccess:function(status){return((status>=200)&&(status<300));},onSuccess:function(){this.response={'text':this.transport.responseText,'xml':this.transport.responseXML};this.fireEvent('onSuccess',[this.response.text,this.response.xml]);this.callChain();},onFailure:function(){this.fireEvent('onFailure',this.transport);},setHeader:function(name,value){this.headers[name]=value;return this;},send:function(url,data){if(this.options.autoCancel)this.cancel();else if(this.running)return this;this.running=true;if(data&&this.options.method=='get'){url=url+(url.contains('?')?'&':'?')+data;data=null;}
this.transport.open(this.options.method.toUpperCase(),url,this.options.async);this.transport.onreadystatechange=this.onStateChange.bind(this);if((this.options.method=='post')&&this.transport.overrideMimeType)this.setHeader('Connection','close');$extend(this.headers,this.options.headers);for(var type in this.headers)try{this.transport.setRequestHeader(type,this.headers[type]);}catch(e){};this.fireEvent('onRequest');this.transport.send($pick(data,null));return this;},cancel:function(){if(!this.running)return this;this.running=false;this.transport.abort();this.transport.onreadystatechange=Class.empty;this.setTransport();this.fireEvent('onCancel');return this;}});XHR.implement(new Chain,new Events,new Options);var Ajax=XHR.extend({options:{data:null,update:null,onComplete:Class.empty,evalScripts:false,evalResponse:false},initialize:function(url,options){this.addEvent('onSuccess',this.onComplete);this.setOptions(options);this.options.data=this.options.data||this.options.postBody;if(!['post','get'].contains(this.options.method)){this._method='_method='+this.options.method;this.options.method='post';}
this.parent();this.setHeader('X-Requested-With','XMLHttpRequest');this.setHeader('Accept','text/javascript, text/html, application/xml, text/xml, */*');this.url=url;},onComplete:function(){if(this.options.update)$(this.options.update).empty().setHTML(this.response.text);if(this.options.evalScripts||this.options.evalResponse)this.evalScripts();this.fireEvent('onComplete',[this.response.text,this.response.xml],20);},request:function(data){data=data||this.options.data;switch($type(data)){case'element':data=$(data).toQueryString();break;case'object':data=Object.toQueryString(data);}
if(this._method)data=(data)?[this._method,data].join('&'):this._method;return this.send(this.url,data);},evalScripts:function(){var script,scripts;if(this.options.evalResponse||(/(ecma|java)script/).test(this.getHeader('Content-type')))scripts=this.response.text;else{scripts=[];var regexp=/<script[^>]*>([\s\S]*?)<\/script>/gi;while((script=regexp.exec(this.response.text)))scripts.push(script[1]);scripts=scripts.join('\n');}
if(scripts)(window.execScript)?window.execScript(scripts):window.setTimeout(scripts,0);},getHeader:function(name){try{return this.transport.getResponseHeader(name);}catch(e){};return null;}});Object.toQueryString=function(source){var queryString=[];for(var property in source)queryString.push(encodeURIComponent(property)+'='+encodeURIComponent(source[property]));return queryString.join('&');};Element.extend({send:function(options){return new Ajax(this.getProperty('action'),$merge({data:this.toQueryString()},options,{method:'post'})).request();}});var Cookie=new Abstract({options:{domain:false,path:false,duration:false,secure:false},set:function(key,value,options){options=$merge(this.options,options);value=encodeURIComponent(value);if(options.domain)value+='; domain='+options.domain;if(options.path)value+='; path='+options.path;if(options.duration){var date=new Date();date.setTime(date.getTime()+options.duration*24*60*60*1000);value+='; expires='+date.toGMTString();}
if(options.secure)value+='; secure';document.cookie=key+'='+value;return $extend(options,{'key':key,'value':value});},get:function(key){var value=document.cookie.match('(?:^|;)\\s*'+key.escapeRegExp()+'=([^;]*)');return value?decodeURIComponent(value[1]):false;},remove:function(cookie,options){if($type(cookie)=='object')this.set(cookie.key,'',$merge(cookie,{duration:-1}));else this.set(cookie,'',$merge(options,{duration:-1}));}});var Json={toString:function(obj){switch($type(obj)){case'string':return'"'+obj.replace(/(["\\])/g,'\\$1')+'"';case'array':return'['+obj.map(Json.toString).join(',')+']';case'object':var string=[];for(var property in obj)string.push(Json.toString(property)+':'+Json.toString(obj[property]));return'{'+string.join(',')+'}';case'number':if(isFinite(obj))break;case false:return'null';}
return String(obj);},evaluate:function(str,secure){return(($type(str)!='string')||(secure&&!str.test(/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/)))?null:eval('('+str+')');}};Json.Remote=XHR.extend({initialize:function(url,options){this.url=url;this.addEvent('onSuccess',this.onComplete);this.parent(options);this.setHeader('X-Request','JSON');},send:function(obj){return this.parent(this.url,'json='+Json.toString(obj));},onComplete:function(){this.fireEvent('onComplete',[Json.evaluate(this.response.text,this.options.secure)]);}});var Asset=new Abstract({javascript:function(source,properties){properties=$merge({'onload':Class.empty},properties);var script=new Element('script',{'src':source}).addEvents({'load':properties.onload,'readystatechange':function(){if(this.readyState=='complete')this.fireEvent('load');}});delete properties.onload;return script.setProperties(properties).inject(document.head);},css:function(source,properties){return new Element('link',$merge({'rel':'stylesheet','media':'screen','type':'text/css','href':source},properties)).inject(document.head);},image:function(source,properties){properties=$merge({'onload':Class.empty,'onabort':Class.empty,'onerror':Class.empty},properties);var image=new Image();image.src=source;var element=new Element('img',{'src':source});['load','abort','error'].each(function(type){var event=properties['on'+type];delete properties['on'+type];element.addEvent(type,function(){this.removeEvent(type,arguments.callee);event.call(this);});});if(image.width&&image.height)element.fireEvent('load',element,1);return element.setProperties(properties);},images:function(sources,options){options=$merge({onComplete:Class.empty,onProgress:Class.empty},options);if(!sources.push)sources=[sources];var images=[];var counter=0;sources.each(function(source){var img=new Asset.image(source,{'onload':function(){options.onProgress.call(this,counter);counter++;if(counter==sources.length)options.onComplete();}});images.push(img);});return new Elements(images);}});var Hash=new Class({length:0,initialize:function(object){this.obj=object||{};this.setLength();},get:function(key){return(this.hasKey(key))?this.obj[key]:null;},hasKey:function(key){return(key in this.obj);},set:function(key,value){if(!this.hasKey(key))this.length++;this.obj[key]=value;return this;},setLength:function(){this.length=0;for(var p in this.obj)this.length++;return this;},remove:function(key){if(this.hasKey(key)){delete this.obj[key];this.length--;}
return this;},each:function(fn,bind){$each(this.obj,fn,bind);},extend:function(obj){$extend(this.obj,obj);return this.setLength();},merge:function(){this.obj=$merge.apply(null,[this.obj].extend(arguments));return this.setLength();},empty:function(){this.obj={};this.length=0;return this;},keys:function(){var keys=[];for(var property in this.obj)keys.push(property);return keys;},values:function(){var values=[];for(var property in this.obj)values.push(this.obj[property]);return values;}});function $H(obj){return new Hash(obj);};Hash.Cookie=Hash.extend({initialize:function(name,options){this.name=name;this.options=$extend({'autoSave':true},options||{});this.load();},save:function(){if(this.length==0){Cookie.remove(this.name,this.options);return true;}
var str=Json.toString(this.obj);if(str.length>4096)return false;Cookie.set(this.name,str,this.options);return true;},load:function(){this.obj=Json.evaluate(Cookie.get(this.name),true)||{};this.setLength();}});Hash.Cookie.Methods={};['extend','set','merge','empty','remove'].each(function(method){Hash.Cookie.Methods[method]=function(){Hash.prototype[method].apply(this,arguments);if(this.options.autoSave)this.save();return this;};});Hash.Cookie.implement(Hash.Cookie.Methods);var Color=new Class({initialize:function(color,type){type=type||(color.push?'rgb':'hex');var rgb,hsb;switch(type){case'rgb':rgb=color;hsb=rgb.rgbToHsb();break;case'hsb':rgb=color.hsbToRgb();hsb=color;break;default:rgb=color.hexToRgb(true);hsb=rgb.rgbToHsb();}
rgb.hsb=hsb;rgb.hex=rgb.rgbToHex();return $extend(rgb,Color.prototype);},mix:function(){var colors=$A(arguments);var alpha=($type(colors[colors.length-1])=='number')?colors.pop():50;var rgb=this.copy();colors.each(function(color){color=new Color(color);for(var i=0;i<3;i++)rgb[i]=Math.round((rgb[i]/100*(100-alpha))+(color[i]/100*alpha));});return new Color(rgb,'rgb');},invert:function(){return new Color(this.map(function(value){return 255-value;}));},setHue:function(value){return new Color([value,this.hsb[1],this.hsb[2]],'hsb');},setSaturation:function(percent){return new Color([this.hsb[0],percent,this.hsb[2]],'hsb');},setBrightness:function(percent){return new Color([this.hsb[0],this.hsb[1],percent],'hsb');}});function $RGB(r,g,b){return new Color([r,g,b],'rgb');};function $HSB(h,s,b){return new Color([h,s,b],'hsb');};Array.extend({rgbToHsb:function(){var red=this[0],green=this[1],blue=this[2];var hue,saturation,brightness;var max=Math.max(red,green,blue),min=Math.min(red,green,blue);var delta=max-min;brightness=max/255;saturation=(max!=0)?delta/max:0;if(saturation==0){hue=0;}else{var rr=(max-red)/delta;var gr=(max-green)/delta;var br=(max-blue)/delta;if(red==max)hue=br-gr;else if(green==max)hue=2+rr-br;else hue=4+gr-rr;hue/=6;if(hue<0)hue++;}
return[Math.round(hue*360),Math.round(saturation*100),Math.round(brightness*100)];},hsbToRgb:function(){var br=Math.round(this[2]/100*255);if(this[1]==0){return[br,br,br];}else{var hue=this[0]%360;var f=hue%60;var p=Math.round((this[2]*(100-this[1]))/10000*255);var q=Math.round((this[2]*(6000-this[1]*f))/600000*255);var t=Math.round((this[2]*(6000-this[1]*(60-f)))/600000*255);switch(Math.floor(hue/60)){case 0:return[br,t,p];case 1:return[q,br,p];case 2:return[p,br,t];case 3:return[p,q,br];case 4:return[t,p,br];case 5:return[br,p,q];}}
return false;}});var Scroller=new Class({options:{area:20,velocity:1,onChange:function(x,y){this.element.scrollTo(x,y);}},initialize:function(element,options){this.setOptions(options);this.element=$(element);this.mousemover=([window,document].contains(element))?$(document.body):this.element;},start:function(){this.coord=this.getCoords.bindWithEvent(this);this.mousemover.addListener('mousemove',this.coord);},stop:function(){this.mousemover.removeListener('mousemove',this.coord);this.timer=$clear(this.timer);},getCoords:function(event){this.page=(this.element==window)?event.client:event.page;if(!this.timer)this.timer=this.scroll.periodical(50,this);},scroll:function(){var el=this.element.getSize();var pos=this.element.getPosition();var change={'x':0,'y':0};for(var z in this.page){if(this.page[z]<(this.options.area+pos[z])&&el.scroll[z]!=0)
change[z]=(this.page[z]-this.options.area-pos[z])*this.options.velocity;else if(this.page[z]+this.options.area>(el.size[z]+pos[z])&&el.scroll[z]+el.size[z]!=el.scrollSize[z])
change[z]=(this.page[z]-el.size[z]+this.options.area-pos[z])*this.options.velocity;}
if(change.y||change.x)this.fireEvent('onChange',[el.scroll.x+change.x,el.scroll.y+change.y]);}});Scroller.implement(new Events,new Options);var Slider=new Class({options:{onChange:Class.empty,onComplete:Class.empty,onTick:function(pos){this.knob.setStyle(this.p,pos);},mode:'horizontal',steps:100,offset:0},initialize:function(el,knob,options){this.element=$(el);this.knob=$(knob);this.setOptions(options);this.previousChange=-1;this.previousEnd=-1;this.step=-1;this.element.addEvent('mousedown',this.clickedElement.bindWithEvent(this));var mod,offset;switch(this.options.mode){case'horizontal':this.z='x';this.p='left';mod={'x':'left','y':false};offset='offsetWidth';break;case'vertical':this.z='y';this.p='top';mod={'x':false,'y':'top'};offset='offsetHeight';}
this.max=this.element[offset]-this.knob[offset]+(this.options.offset*2);this.half=this.knob[offset]/2;this.getPos=this.element['get'+this.p.capitalize()].bind(this.element);this.knob.setStyle('position','relative').setStyle(this.p,-this.options.offset);var lim={};lim[this.z]=[-this.options.offset,this.max-this.options.offset];this.drag=new Drag.Base(this.knob,{limit:lim,modifiers:mod,snap:0,onStart:function(){this.draggedKnob();}.bind(this),onDrag:function(){this.draggedKnob();}.bind(this),onComplete:function(){this.draggedKnob();this.end();}.bind(this)});if(this.options.initialize)this.options.initialize.call(this);},set:function(step){this.step=step.limit(0,this.options.steps);this.checkStep();this.end();this.fireEvent('onTick',this.toPosition(this.step));return this;},clickedElement:function(event){var position=event.page[this.z]-this.getPos()-this.half;position=position.limit(-this.options.offset,this.max-this.options.offset);this.step=this.toStep(position);this.checkStep();this.end();this.fireEvent('onTick',position);},draggedKnob:function(){this.step=this.toStep(this.drag.value.now[this.z]);this.checkStep();},checkStep:function(){if(this.previousChange!=this.step){this.previousChange=this.step;this.fireEvent('onChange',this.step);}},end:function(){if(this.previousEnd!==this.step){this.previousEnd=this.step;this.fireEvent('onComplete',this.step+'');}},toStep:function(position){return Math.round((position+this.options.offset)/this.max*this.options.steps);},toPosition:function(step){return this.max*step/this.options.steps;}});Slider.implement(new Events);Slider.implement(new Options);var SmoothScroll=Fx.Scroll.extend({initialize:function(options){this.parent(window,options);this.links=(this.options.links)?$$(this.options.links):$$(document.links);var location=window.location.href.match(/^[^#]*/)[0]+'#';this.links.each(function(link){if(link.href.indexOf(location)!=0)return;var anchor=link.href.substr(location.length);if(anchor&&$(anchor))this.useLink(link,anchor);},this);if(!window.webkit419)this.addEvent('onComplete',function(){window.location.hash=this.anchor;});},useLink:function(link,anchor){link.addEvent('click',function(event){this.anchor=anchor;this.toElement(anchor);event.stop();}.bindWithEvent(this));}});var Sortables=new Class({options:{handles:false,onStart:Class.empty,onComplete:Class.empty,ghost:true,snap:3,onDragStart:function(element,ghost){ghost.setStyle('opacity',0.7);element.setStyle('opacity',0.7);},onDragComplete:function(element,ghost){element.setStyle('opacity',1);ghost.remove();this.trash.remove();}},initialize:function(list,options){this.setOptions(options);this.list=$(list);this.elements=this.list.getChildren();this.handles=(this.options.handles)?$$(this.options.handles):this.elements;this.bound={'start':[],'moveGhost':this.moveGhost.bindWithEvent(this)};for(var i=0,l=this.handles.length;i<l;i++){this.bound.start[i]=this.start.bindWithEvent(this,this.elements[i]);}
this.attach();if(this.options.initialize)this.options.initialize.call(this);this.bound.move=this.move.bindWithEvent(this);this.bound.end=this.end.bind(this);},attach:function(){this.handles.each(function(handle,i){handle.addEvent('mousedown',this.bound.start[i]);},this);},detach:function(){this.handles.each(function(handle,i){handle.removeEvent('mousedown',this.bound.start[i]);},this);},start:function(event,el){this.active=el;this.coordinates=this.list.getCoordinates();if(this.options.ghost){var position=el.getPosition();this.offset=event.page.y-position.y;this.trash=new Element('div').inject(document.body);this.ghost=el.clone().inject(this.trash).setStyles({'position':'absolute','left':position.x,'top':event.page.y-this.offset});document.addListener('mousemove',this.bound.moveGhost);this.fireEvent('onDragStart',[el,this.ghost]);}
document.addListener('mousemove',this.bound.move);document.addListener('mouseup',this.bound.end);this.fireEvent('onStart',el);event.stop();},moveGhost:function(event){var value=event.page.y-this.offset;value=value.limit(this.coordinates.top,this.coordinates.bottom-this.ghost.offsetHeight);this.ghost.setStyle('top',value);event.stop();},move:function(event){var now=event.page.y;this.previous=this.previous||now;var up=((this.previous-now)>0);var prev=this.active.getPrevious();var next=this.active.getNext();if(prev&&up&&now<prev.getCoordinates().bottom)this.active.injectBefore(prev);if(next&&!up&&now>next.getCoordinates().top)this.active.injectAfter(next);this.previous=now;},serialize:function(converter){return this.list.getChildren().map(converter||function(el){return this.elements.indexOf(el);},this);},end:function(){this.previous=null;document.removeListener('mousemove',this.bound.move);document.removeListener('mouseup',this.bound.end);if(this.options.ghost){document.removeListener('mousemove',this.bound.moveGhost);this.fireEvent('onDragComplete',[this.active,this.ghost]);}
this.fireEvent('onComplete',this.active);}});Sortables.implement(new Events,new Options);var Tips=new Class({options:{onShow:function(tip){tip.setStyle('visibility','visible');},onHide:function(tip){tip.setStyle('visibility','hidden');},maxTitleChars:30,showDelay:100,hideDelay:100,className:'tool',offsets:{'x':16,'y':16},fixed:false},initialize:function(elements,options){this.setOptions(options);this.toolTip=new Element('div',{'class':this.options.className+'-tip','styles':{'position':'absolute','top':'0','left':'0','visibility':'hidden'}}).inject(document.body);this.wrapper=new Element('div').inject(this.toolTip);$$(elements).each(this.build,this);if(this.options.initialize)this.options.initialize.call(this);},build:function(el){el.$tmp.myTitle=(el.href&&el.getTag()=='a')?el.href.replace('http://',''):(el.rel||false);if(el.title){var dual=el.title.split('::');if(dual.length>1){el.$tmp.myTitle=dual[0].trim();el.$tmp.myText=dual[1].trim();}else{el.$tmp.myText=el.title;}
el.removeAttribute('title');}else{el.$tmp.myText=false;}
if(el.$tmp.myTitle&&el.$tmp.myTitle.length>this.options.maxTitleChars)el.$tmp.myTitle=el.$tmp.myTitle.substr(0,this.options.maxTitleChars-1)+"&hellip;";el.addEvent('mouseenter',function(event){this.start(el);if(!this.options.fixed)this.locate(event);else this.position(el);}.bind(this));if(!this.options.fixed)el.addEvent('mousemove',this.locate.bindWithEvent(this));var end=this.end.bind(this);el.addEvent('mouseleave',end);el.addEvent('trash',end);},start:function(el){this.wrapper.empty();if(el.$tmp.myTitle){this.title=new Element('span').inject(new Element('div',{'class':this.options.className+'-title'}).inject(this.wrapper)).setHTML(el.$tmp.myTitle);}
if(el.$tmp.myText){this.text=new Element('span').inject(new Element('div',{'class':this.options.className+'-text'}).inject(this.wrapper)).setHTML(el.$tmp.myText);}
$clear(this.timer);this.timer=this.show.delay(this.options.showDelay,this);},end:function(event){$clear(this.timer);this.timer=this.hide.delay(this.options.hideDelay,this);},position:function(element){var pos=element.getPosition();this.toolTip.setStyles({'left':pos.x+this.options.offsets.x,'top':pos.y+this.options.offsets.y});},locate:function(event){var win={'x':window.getWidth(),'y':window.getHeight()};var scroll={'x':window.getScrollLeft(),'y':window.getScrollTop()};var tip={'x':this.toolTip.offsetWidth,'y':this.toolTip.offsetHeight};var prop={'x':'left','y':'top'};for(var z in prop){var pos=event.page[z]+this.options.offsets[z];if((pos+tip[z]-scroll[z])>win[z])pos=event.page[z]-this.options.offsets[z]-tip[z];this.toolTip.setStyle(prop[z],pos);};},show:function(){if(this.options.timeout)this.timer=this.hide.delay(this.options.timeout,this);this.fireEvent('onShow',[this.toolTip]);},hide:function(){this.fireEvent('onHide',[this.toolTip]);}});Tips.implement(new Events,new Options);var Group=new Class({initialize:function(){this.instances=$A(arguments);this.events={};this.checker={};},addEvent:function(type,fn){this.checker[type]=this.checker[type]||{};this.events[type]=this.events[type]||[];if(this.events[type].contains(fn))return false;else this.events[type].push(fn);this.instances.each(function(instance,i){instance.addEvent(type,this.check.bind(this,[type,instance,i]));},this);return this;},check:function(type,instance,i){this.checker[type][i]=true;var every=this.instances.every(function(current,j){return this.checker[type][j]||false;},this);if(!every)return;this.checker[type]={};this.events[type].each(function(event){event.call(this,this.instances,instance);},this);}});var Accordion=Fx.Elements.extend({options:{onActive:Class.empty,onBackground:Class.empty,display:0,show:false,height:true,width:false,opacity:true,fixedHeight:false,fixedWidth:false,wait:false,alwaysHide:false},initialize:function(){var options,togglers,elements,container;$each(arguments,function(argument,i){switch($type(argument)){case'object':options=argument;break;case'element':container=$(argument);break;default:var temp=$$(argument);if(!togglers)togglers=temp;else elements=temp;}});this.togglers=togglers||[];this.elements=elements||[];this.container=$(container);this.setOptions(options);this.previous=-1;if(this.options.alwaysHide)this.options.wait=true;if($chk(this.options.show)){this.options.display=false;this.previous=this.options.show;}
if(this.options.start){this.options.display=false;this.options.show=false;}
this.effects={};if(this.options.opacity)this.effects.opacity='fullOpacity';if(this.options.width)this.effects.width=this.options.fixedWidth?'fullWidth':'offsetWidth';if(this.options.height)this.effects.height=this.options.fixedHeight?'fullHeight':'scrollHeight';for(var i=0,l=this.togglers.length;i<l;i++)this.addSection(this.togglers[i],this.elements[i]);this.elements.each(function(el,i){if(this.options.show===i){this.fireEvent('onActive',[this.togglers[i],el]);}else{for(var fx in this.effects)el.setStyle(fx,0);}},this);this.parent(this.elements);if($chk(this.options.display))this.display(this.options.display);},addSection:function(toggler,element,pos){toggler=$(toggler);element=$(element);var test=this.togglers.contains(toggler);var len=this.togglers.length;this.togglers.include(toggler);this.elements.include(element);if(len&&(!test||pos)){pos=$pick(pos,len-1);toggler.injectBefore(this.togglers[pos]);element.injectAfter(toggler);}else if(this.container&&!test){toggler.inject(this.container);element.inject(this.container);}
var idx=this.togglers.indexOf(toggler);toggler.addEvent('click',this.display.bind(this,idx));if(this.options.height)element.setStyles({'padding-top':0,'border-top':'none','padding-bottom':0,'border-bottom':'none'});if(this.options.width)element.setStyles({'padding-left':0,'border-left':'none','padding-right':0,'border-right':'none'});element.fullOpacity=1;if(this.options.fixedWidth)element.fullWidth=this.options.fixedWidth;if(this.options.fixedHeight)element.fullHeight=this.options.fixedHeight;element.setStyle('overflow','hidden');if(!test){for(var fx in this.effects)element.setStyle(fx,0);}
return this;},display:function(index){index=($type(index)=='element')?this.elements.indexOf(index):index;if((this.timer&&this.options.wait)||(index===this.previous&&!this.options.alwaysHide))return this;this.previous=index;var obj={};this.elements.each(function(el,i){obj[i]={};var hide=(i!=index)||(this.options.alwaysHide&&(el.offsetHeight>0));this.fireEvent(hide?'onBackground':'onActive',[this.togglers[i],el]);for(var fx in this.effects)obj[i][fx]=hide?0:el[this.effects[fx]];},this);return this.start(obj);},showThisHideOpen:function(index){return this.display(index);}});Fx.Accordion=Accordion;/**
 * SqueezeBox - Expandable Lightbox
 *
 * Allows to open various content as modal,
 * centered and animated box.
 *
 * Inspired by
 *  ... Lokesh Dhakar	- The original Lightbox v2
 *  ... Cody Lindley	- ThickBox
 *
 * @version		1.0rc1
 *
 * @license		MIT-style license
 * @author		Harald Kirschner <mail [at] digitarald.de>
 * @copyright	Author
 */
var SqueezeBox = {

	presets: {
		size: {x: 600, y: 450},
		sizeLoading: {x: 200, y: 150},
		marginInner: {x: 20, y: 20},
		marginImage: {x: 150, y: 200},
		handler: false,
		adopt: null,
		closeWithOverlay: true,
		zIndex: 65555,
		overlayOpacity: 0.7,
		classWindow: '',
		classOverlay: '',
		disableFx: false,
		onOpen: Class.empty,
		onClose: Class.empty,
		onUpdate: Class.empty,
		onResize: Class.empty,
		onMove: Class.empty,
		onShow: Class.empty,
		onHide: Class.empty,
		fxOverlayDuration: 250,
		fxResizeDuration: 750,
		fxContentDuration: 250,
		ajaxOptions: {}
	},

	initialize: function(options) {
		if (this.options) return this;
		this.presets = $merge(this.presets, options)
		this.setOptions(this.presets);
		this.build();
		this.listeners = {
			window: this.reposition.bind(this, [null]),
			close: this.close.bind(this),
			key: this.onkeypress.bind(this)};
		this.isOpen = this.isLoading = false;
		this.window.close = this.listeners.close;
		return this;
	},

	build: function() {
		this.overlay = new Element('div', {
			id: 'sbox-overlay',
			styles: {
				display: 'none',
				zIndex: this.options.zIndex
			}
		});
		this.content = new Element('div', {
			id: 'sbox-content'
		});
		this.btnClose = new Element('a', {
			id: 'sbox-btn-close',
			href: '#'
		});
		this.window = new Element('div', {
			id: 'sbox-window',
			styles: {
				display: 'none',
				zIndex: this.options.zIndex + 2
			}
		}).adopt(this.btnClose, this.content);

		if (!window.ie6) {
			this.overlay.setStyles({
				position: 'fixed',
				top: 0,
				left: 0
			});
			this.window.setStyles({
				position: 'fixed',
				top: '50%',
				left: '50%'
			});
		} else {
			this.overlay.style.setExpression('marginTop', 'document.documentElement.scrollTop + "px"');
			this.window.style.setExpression('marginTop', '0 - parseInt(this.offsetHeight / 2) + document.documentElement.scrollTop + "px"');

			this.overlay.setStyles({
				position: 'absolute',
				top: '0%',
				left: '0%'
				//,marginTop: "expression(document.documentElement.scrollTop + 'px')"
			});

			this.window.setStyles({
				position: 'absolute',
				top: '0%',
				left: '0%'
				//,marginTop: "(expression(0 - parseInt(this.offsetHeight / 2) + document.documentElement.scrollTop + 'px')"
			});
		}

		$(document.body).adopt(this.overlay, this.window);

		this.fx = {
			overlay: this.overlay.effect('opacity', {
				duration: this.options.fxOverlayDuration,
				wait: false}).set(0),
			window: this.window.effects({
				duration: this.options.fxResizeDuration,
				wait: false}),
			content: this.content.effect('opacity', {
				duration: this.options.fxContentDuration,
				wait: false}).set(0)
		};
	},

	addClick: function(el) {
		return el.addEvent('click', function() {
			if (this.fromElement(el)) return false;
		}.bind(this));
	},

	fromElement: function(el, options) {
		this.initialize();
		this.element = $(el);
		if (this.element && this.element.rel) options = $merge(options || {}, Json.evaluate(this.element.rel));
		this.setOptions(this.presets, options);
		this.assignOptions();
		this.url = (this.element ? (this.options.url || this.element.href) : el) || '';

		if (this.options.handler) {
			var handler = this.options.handler;
			return this.setContent(handler, this.parsers[handler].call(this, true));
		}
		var res = false;
		for (var key in this.parsers) {
			if ((res = this.parsers[key].call(this))) return this.setContent(key, res);
		}
		return this;
	},

	assignOptions: function() {
		this.overlay.setProperty('class', this.options.classOverlay);
		this.window.setProperty('class', this.options.classWindow);
	},

	close: function(e) {
		if (e) new Event(e).stop();
		if (!this.isOpen) return this;
		this.fx.overlay.start(0).chain(this.toggleOverlay.bind(this));
		this.window.setStyle('display', 'none');
		this.trashImage();
		this.toggleListeners();
		this.isOpen = null;
		this.fireEvent('onClose', [this.content]).removeEvents();
		this.options = {};
		this.setOptions(this.presets).callChain();
		return this;
	},

	onError: function() {
		if (this.image) this.trashImage();
		this.setContent('Error during loading');
	},

	trashImage: function() {
		if (this.image) this.image = this.image.onload = this.image.onerror = this.image.onabort = null;
	},

	setContent: function(handler, content) {
		this.content.setProperty('class', 'sbox-content-' + handler);
		this.applyTimer = this.applyContent.delay(this.fx.overlay.options.duration, this, [this.handlers[handler].call(this, content)]);
		if (this.overlay.opacity) return this;
		this.toggleOverlay(true);
		this.fx.overlay.start(this.options.overlayOpacity);
		this.reposition();
		return this;
	},

	applyContent: function(content, size) {
		this.applyTimer = $clear(this.applyTimer);
		this.hideContent();
		if (!content) this.toggleLoading(true);
		else {
			if (this.isLoading) this.toggleLoading(false);
			this.fireEvent('onUpdate', [this.content], 20);
		}
		this.content.empty()[['string', 'array', false].contains($type(content)) ? 'setHTML' : 'adopt'](content || '');
		this.callChain();
		if (!this.isOpen) {
			this.toggleListeners(true);
			this.resize(size, true);
			this.isOpen = true;
			this.fireEvent('onOpen', [this.content]);
		} else this.resize(size);
	},

	resize: function(size, instantly) {
		var sizes = window.getSize();
		this.size = $merge(this.isLoading ? this.options.sizeLoading : this.options.size, size);
		var to = {
			width: this.size.x,
			height: this.size.y,
			marginLeft: - this.size.x / 2,
			marginTop: - this.size.y / 2
			//left: (sizes.scroll.x + (sizes.size.x - this.size.x - this.options.marginInner.x) / 2).toInt(),
			//top: (sizes.scroll.y + (sizes.size.y - this.size.y - this.options.marginInner.y) / 2).toInt()
		};
		$clear(this.showTimer || null);
		this.hideContent();
		if (!instantly) this.fx.window.start(to).chain(this.showContent.bind(this));
		else {
			this.window.setStyles(to).setStyle('display', '');
			this.showTimer = this.showContent.delay(50, this);
		}
		this.reposition(sizes);
	},

	toggleListeners: function(state) {
		var task = state ? 'addEvent' : 'removeEvent';
		this.btnClose[task]('click', this.listeners.close);
		if (this.options.closeWithOverlay) this.overlay[task]('click', this.listeners.close);
		document[task]('keydown', this.listeners.key);
		window[task]('resize', this.listeners.window);
		window[task]('scroll', this.listeners.window);
	},

	toggleLoading: function(state) {
		this.isLoading = state;
		this.window[state ? 'addClass' : 'removeClass']('sbox-loading');
		if (state) this.fireEvent('onLoading', [this.window]);
	},

	toggleOverlay: function(state) {
		this.overlay.setStyle('display', state ? '' : 'none');
		$(document.body)[state ? 'addClass' : 'removeClass']('body-overlayed');
	},

	showContent: function() {
		if (this.content.opacity) this.fireEvent('onShow', [this.window]);
		this.fx.content.start(1);
	},

	hideContent: function() {
		if (!this.content.opacity) this.fireEvent('onHide', [this.window]);
		this.fx.content.stop().set(0);
	},

	onkeypress: function(e) {
		switch (e.key) {
			case 'esc':
			case 'x':
				this.close();
				break;
		}
	},

	reposition: function(sizes) {
		sizes = sizes || window.getSize();
		this.overlay.setStyles({
			//'left': sizes.scroll.x, 'top': sizes.scroll.y,
			width: sizes.size.x,
			height: sizes.size.y
		});
		/*
		this.window.setStyles({
			left: (sizes.scroll.x + (sizes.size.x - this.window.offsetWidth) / 2).toInt(),
			top: (sizes.scroll.y + (sizes.size.y - this.window.offsetHeight) / 2).toInt()
		});
		*/
		this.fireEvent('onMove', [this.overlay, this.window, sizes]);
	},

	removeEvents: function(type){
		if (!this.$events) return this;
		if (!type) this.$events = null;
		else if (this.$events[type]) this.$events[type] = null;
		return this;
	},

	parsers: {
		'image': function(preset) {
			return (preset || this.url.test(/\.(jpg|jpeg|png|gif|bmp)$/i)) ? this.url : false;
		},
		'adopt': function(preset) {
			if ($(this.options.adopt)) return $(this.options.adopt);
			if (preset || ($(this.element) && !this.element.parentNode)) return $(this.element);
			var bits = this.url.match(/#([\w-]+)$/);
			return bits ? $(bits[1]) : false;
		},
		'url': function(preset) {
			return (preset || (this.url && !this.url.test(/^javascript:/i))) ? this.url: false;
		},
		'iframe': function(preset) {
			return (preset || this.url) ? this.url: false;
		},
		'string': function(preset) {
			return true;
		}
	},

	handlers: {
		'image': function(url) {
			this.image = new Image();
			var events = {
				loaded: function() {
					var win = {x: window.getWidth() - this.options.marginImage.x, y: window.getHeight() - this.options.marginImage.y};
					var size = {x: this.image.width, y: this.image.height};
					for (var i = 0; i < 2; i++)
						if (size.x > win.x) {
							size.y *= win.x / size.x;
							size.x = win.x;
						} else if (size.y > win.y) {
							size.x *= win.y / size.y;
							size.y = win.y;
						}
					size = {x: parseInt(size.x), y: parseInt(size.y)};
					if (window.webkit419) this.image = new Element('img', {'src': this.image.src});
					else $(this.image);
					this.image.setProperties({
						'width': size.x,
						'height': size.y});
					this.applyContent(this.image, size);
				}.bind(this),
				failed: this.onError.bind(this)
			};
			(function() {
				this.src = url;
			}).delay(10, this.image);
			this.image.onload = events.loaded;
			this.image.onerror = this.image.onabort = events.failed;
		},
		'adopt': function(el) {
			return el.clone();
		},
		'url': function(url) {
			this.ajax = new Ajax(url, this.options.ajaxOptions);
			this.ajax.addEvent('onSuccess', function(resp) {
				this.applyContent(resp);
				this.ajax = null;
			}.bind(this));
			this.ajax.addEvent('onFailure', this.onError.bind(this));
			this.ajax.request.delay(10, this.ajax);
		},
		'iframe': function(url) {
			return new Element('iframe', {
				'src': url,
				'frameBorder': 0,
				'width': this.options.size.x,
				'height': this.options.size.y
			});
		},
		'string': function(str) {
			return str;
		}
	},

	extend: $extend
};

SqueezeBox.extend(Events.prototype);
SqueezeBox.extend(Options.prototype);
SqueezeBox.extend(Chain.prototype);{if(typeof SZN!="object"){var SZN={"NAME":"SZN"};};SZN.bind=function(obj,fnc){return function(){return fnc.apply(obj,arguments);};};SZN.idGenerator=function(){this.idCnt=this.idCnt<10000000?this.idCnt:0;var ids="m"+new Date().getTime().toString(16)+"m"+this.idCnt.toString(16);this.idCnt++;return ids;};if(!Array.prototype.indexOf){Array.prototype.indexOf=function(item,from){var len=this.length;var i=from||0;if(i<0){i+=len;}for(;i<len;i++){if(i in this&&this[i]===item){return i;}}return -1;};}if(!Array.indexOf){Array.indexOf=function(obj,item,from){return Array.prototype.indexOf.call(obj,item,from);};}if(!Array.prototype.lastIndexOf){Array.prototype.lastIndexOf=function(item,from){var len=this.length;var i=from||len-1;if(i<0){i+=len;}for(;i>-1;i--){if(i in this&&this[i]===item){return i;}}return -1;};}if(!Array.lastIndexOf){Array.lastIndexOf=function(obj,item,from){return Array.prototype.lastIndexOf.call(obj,item,from);};}if(!Array.prototype.forEach){Array.prototype.forEach=function(cb,_this){var len=this.length;for(var i=0;i<len;i++){if(i in this){cb.call(_this,this[i],i,this);}}};}if(!Array.forEach){Array.forEach=function(obj,cb,_this){Array.prototype.forEach.call(obj,cb,_this);};}if(!Array.prototype.every){Array.prototype.every=function(cb,_this){var len=this.length;for(var i=0;i<len;i++){if(i in this&&!cb.call(_this,this[i],i,this)){return false;}}return true;};}if(!Array.every){Array.every=function(obj,cb,_this){return Array.prototype.every.call(obj,cb,_this);};}if(!Array.prototype.some){Array.prototype.some=function(cb,_this){var len=this.length;for(var i=0;i<len;i++){if(i in this&&cb.call(_this,this[i],i,this)){return true;}}return false;};}if(!Array.some){Array.some=function(obj,cb,_this){return Array.prototype.some.call(obj,cb,_this);};}if(!Array.prototype.map){Array.prototype.map=function(cb,_this){var len=this.length;var res=new Array(len);for(var i=0;i<len;i++){if(i in this){res[i]=cb.call(_this,this[i],i,this);}}return res;};}if(!Array.map){Array.map=function(obj,cb,_this){return Array.prototype.map.call(obj,cb,_this);};}if(!Array.prototype.filter){Array.prototype.filter=function(cb,_this){var len=this.length;var res=[];for(var i=0;i<len;i++){if(i in this){var val=this[i];if(cb.call(_this,val,i,this)){res.push(val);}}}return res;};}if(!Array.filter){Array.filter=function(obj,cb,_this){return Array.prototype.filter.call(obj,cb,_this);};}String.prototype.lpad=function(char,count){var ch=char||"0";var cnt=count||2;var s="";while(s.length<(cnt-this.length)){s+=ch;}s=s.substring(0,cnt-this.length);return s+this;};String.prototype.rpad=function(char,count){var ch=char||"0";var cnt=count||2;var s="";while(s.length<(cnt-this.length)){s+=ch;}s=s.substring(0,cnt-this.length);return this+s;};String.prototype.trim=function(){return this.match(/^\s*([\s\S]*?)\s*$/)[1];};Date.prototype._dayNames=["Pondělí","Úterý","Středa","Čtvrtek","Pátek","Sobota","Neděle"];Date.prototype._dayNamesShort=["Po","Út","St","Čt","Pá","So","Ne"];Date.prototype._monthNames=["Leden","Únor","Březen","Duben","Květen","Červen","Červenec","Srpen","Září","Říjen","Listopad","Prosinec"];Date.prototype._monthNamesShort=["Led","Úno","Bře","Dub","Kvě","Čer","Črc","Srp","Zář","Říj","Lis","Pro"];Date.prototype.format=function(str){var suffixes={"1":"st","2":"nd","3":"rd","21":"st","22":"nd","23":"rd","31":"st"};var result="";var escape=false;for(var i=0;i<str.length;i++){var ch=str.charAt(i);if(escape){escape=false;result+=ch;continue;}switch(ch){case "\\":if(escape){escape=false;result+=ch;}else{escape=true;}break;case "d":result+=this.getDate().toString().lpad();break;case "j":result+=this.getDate();break;case "w":result+=this.getDay();break;case "N":result+=this.getDay()||7;break;case "S":var d=this.getDate();result+=suffixes[d]||"th";break;case "D":result+=this._dayNamesShort[(this.getDay()||7)-1];break;case "l":result+=this._dayNames[(this.getDay()||7)-1];break;case "z":var t=this.getTime();var d=new Date(t);d.setDate(1);d.setMonth(0);var diff=t-d.getTime();result+=diff/(1000*60*60*24);break;case "W":var d=new Date(this.getFullYear(),this.getMonth(),this.getDate());var day=d.getDay()||7;d.setDate(d.getDate()+(4-day));var year=d.getFullYear();var day=Math.floor((d.getTime()-new Date(year,0,1,-6))/(1000*60*60*24));result+=(1+Math.floor(day/7)).toString().lpad();break;case "m":result+=(this.getMonth()+1).toString().lpad();break;case "n":result+=(this.getMonth()+1);break;case "M":result+=this._monthNamesShort[this.getMonth()];break;case "F":result+=this._monthNames[this.getMonth()];break;case "t":var t=this.getTime();var m=this.getMonth();var d=new Date(t);var day=0;do{day=d.getDate();t+=1000*60*60*24;d=new Date(t);}while(m==d.getMonth());;result+=day;break;case "L":var d=new Date(this.getTime());d.setDate(1);d.setMonth(1);d.setDate(29);result+=(d.getMonth()==1?"1":"0");break;case "Y":result+=this.getFullYear().toString().lpad();break;case "y":result+=this.getFullYear().toString().lpad().substring(2);break;case "a":result+=(this.getHours()<12?"am":"pm");break;case "A":result+=(this.getHours()<12?"AM":"PM");break;case "G":result+=this.getHours();break;case "H":result+=this.getHours().toString().lpad();break;case "g":result+=this.getHours()%12;break;case "h":result+=(this.getHours()%12).toString().lpad();break;case "i":result+=this.getMinutes().toString().lpad();break;case "s":result+=this.getSeconds().toString().lpad();break;case "Z":result+=-60*this.getTimezoneOffset();break;case "O":case "P":var base=this.getTimezoneOffset()/-60;var o=Math.abs(base).toString().lpad();if(ch=="P"){o+=":";}o+="00";result+=(base>=0?"+":"-")+o;break;case "U":result+=this.getTime()/1000;break;case "u":result+="0";break;case "c":result+=arguments.callee.call(this,"Y-m-d")+"T"+arguments.callee.call(this,"H:i:sP");break;case "r":result+=arguments.callee.call(this,"D, j M Y H:i:s O");break;default:result+=ch;break;}}return result;};if(!window.console){window.console={"log":function(){}};}SZN.ClassMaker={};SZN.ClassMaker.VERSION="4.1";SZN.ClassMaker.NAME="ClassMaker";SZN.ClassMaker.CLASS="static";SZN.ClassMaker.copyObj=null;SZN.ClassMaker.makeClass=function(params){if(!params.NAME){throw new Error("No NAME passed to SZN.ClassMaker.makeClass()");}if(!this.copyObj&&SZN.ObjCopy){this.copyObj=new SZN.ObjCopy();}var version=params.VERSION||"1.0";var extend=params.EXTEND||false;var implement=params.IMPLEMENT||[];var depend=params.DEPEND||[];var type=params.CLASS;if(!(implement instanceof Array)){implement=[implement];}var result=false;if(result=this._testDepend(depend)){throw new Error("Dependency error in class "+params.NAME+" ("+result+")");}if(type=="static"){var obj={};obj.VERSION=version;obj.NAME=params.NAME;obj.CLASS="static";return obj;}var constructor=function(){var inicializator=false;if("$constructor" in arguments.callee.prototype){inicializator=arguments.callee.prototype.$constructor;}else{if(params.NAME in arguments.callee.prototype){inicializator=arguments.callee.prototype[params.NAME];}}if(inicializator){inicializator.apply(this,arguments);}};constructor.NAME=params.NAME;constructor.VERSION=version;constructor.EXTEND=extend;constructor.IMPLEMENT=implement;constructor.DEPEND=depend;constructor.CLASS=type;constructor.destroy=this._destroy;this._setInheritance(constructor);constructor.prototype.sConstructor=constructor;constructor.prototype.callSuper=this._callSuper;constructor.prototype.$super=this._$super;constructor.prototype.constructor=constructor;return constructor;};SZN.ClassMaker._destroy=function(obj){for(var p in obj){obj[p]=null;};};SZN.ClassMaker._setInheritance=function(constructor){if(constructor.EXTEND){this._makeInheritance(constructor,constructor.EXTEND);}for(var i=0;i<constructor.IMPLEMENT.length;i++){this._makeInheritance(constructor,constructor.IMPLEMENT[i],true);}};SZN.ClassMaker._makeInheritance=function(constructor,parent,noSuper){for(var p in parent.prototype){var item=parent.prototype[p];if(typeof (item)!="function"){continue;}if(!item.owner){item.owner=parent;}}if(!noSuper){var tmp=function(){};tmp.prototype=parent.prototype;constructor.prototype=new tmp();if(this.copyObj!=null){for(var i in parent.prototype){if(typeof parent.prototype[i]=="object"){constructor.prototype[i]=this.copyObj.copy(parent.prototype[i]);}}}return;}for(var p in parent.prototype){if(typeof parent.prototype[p]=="object"){if(this.copyObj!=null){constructor.prototype[p]=this.copyObj.copy(parent.prototype[p]);}}else{if(noSuper&&((p=="$constructor")||(p=="$destructor"))){continue;}constructor.prototype[p]=parent.prototype[p];}}};SZN.ClassMaker._testDepend=function(depend){var out=true;for(var i=0;i<depend.length;i++){var item=depend[i];if(!item.sClass){return "Unsatisfied dependency";}if(!item.ver){return "Version not specified in dependency";}var depMajor=item.sClass.VERSION.split(".")[0];var claMajor=item.ver.split(".")[0];if(depMajor!=claMajor){return "Version conflict in "+item.sClass.NAME;}}return false;};SZN.ClassMaker._callSuper=function(methodName,callingFunction){var owner=callingFunction.owner||this.constructor;var sup=owner.EXTEND;if(!sup){throw new Error("\"No super-class available\"");}var method=sup.prototype[methodName];if(!method||(typeof method!="function")){throw new Error("Super-class doesn't have method '"+methodName+"'");}var mySelf=this;return function(){return method.apply(mySelf,arguments);};};SZN.ClassMaker._$super=function(){var caller=arguments.callee.caller;if(!caller){throw new Error("Function.prototype.caller not supported");}var owner=caller.owner||this.constructor;var callerName=false;for(var name in owner.prototype){if(owner.prototype[name]==caller){callerName=name;}}if(!callerName){throw new Error("Cannot find supplied method in constructor");}var parent=owner.EXTEND;if(!parent){throw new Error("No super-class available");}if(!parent.prototype[callerName]){throw new Error("Super-class doesn't have method '"+callerName+"'");}var func=parent.prototype[callerName];return func.apply(this,arguments);};SZN.Events=SZN.ClassMaker.makeClass({"NAME":"Events","VERSION":"2.2","CLASS":"static"});SZN.Events.eventFolder={};SZN.Events._domReadyTimer=null;SZN.Events._domReadyCallback=[];SZN.Events._domReadyAlreadyRun=false;SZN.Events._windowLoadListenerId="";SZN.Events.onDomReady=function(obj,func){SZN.Events._domReadyCallback[SZN.Events._domReadyCallback.length]={"obj":obj,"func":func};SZN.Events._onDomReady();};SZN.Events._onDomReady=function(){if((/Safari/i.test(navigator.userAgent))||(/WebKit|Khtml/i.test(navigator.userAgent))){SZN.Events._domReadyTimer=setInterval(function(){if(/loaded|complete/.test(document.readyState)){clearInterval(SZN.Events._domReadyTimer);SZN.Events._domReady();}},10);}else{if(document.all&&!window.opera){try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,1);return;}SZN.Events._domReady();}else{if(document.addEventListener){document.addEventListener("DOMContentLoaded",SZN.Events._domReady,false);}}}SZN.Events._windowLoadListenerId=SZN.Events.addListener(window,"load",window,function(){SZN.Events._domReady();},false,true);};SZN.Events._domReady=function(){if(!SZN.Events._domReadyAlreadyRun){SZN.Events._domReadyAlreadyRun=true;if(document.addEventListener){document.removeEventListener("DOMContentLoaded",SZN.Events._domReady,true);}SZN.Events.removeListener(SZN.Events._windowLoadListenerId);for(var i=0;i<SZN.Events._domReadyCallback.length;i++){var callback=SZN.Events._domReadyCallback[i];if(typeof callback.func=="string"){callback.obj[callback.func]();}else{callback.func.apply(callback.obj,[]);}}SZN.Events._domReadyCallback=[];}};SZN.Events.destructor=function(){this.removeAllListeners();this.sConstructor.destroy(this);};SZN.Events.getEvent=function(e){return e||window.event;};SZN.Events.getTarget=function(e){var e=e||window.event;return e.target||e.srcElement;};SZN.Events.addListener=function(elm,eType,obj,func,capture){var capture=capture||false;var method=null;var toFold=null;if(typeof (obj)=="function"){toFold=this._addListener(elm,eType,obj,capture);}else{if(typeof (obj)=="object"){var cached=true;if(typeof (func)=="string"){if(typeof (obj[func])=="function"){method=this._getMethod(obj,func,elm);toFold=this._addListener(elm,eType,method,capture);}else{throw new Error("Events.addListener: arguments[3] must be method of arguments[2]");}}else{if(typeof (func)=="function"){method=this._getMethod(obj,func,elm);toFold=this._addListener(elm,eType,method,capture);}}}else{throw new Error("Events.addListener: arguments[2] must be object or function");}}toFold.push(obj);toFold.push(func);return this._storeToFolder(toFold);};SZN.Events._addListener=function(elm,eType,func,capture){if(document.addEventListener){if(window.opera&&(elm==window)){elm=document;}elm.addEventListener(eType,func,capture);}else{if(document.attachEvent){elm.attachEvent("on"+eType,func);}}return [elm,eType,func,capture];};SZN.Events._getMethod=function(obj,func,elm){if(typeof (func)=="string"){return function(e){return obj[func].apply(obj,[e,elm]);};}else{return function(e){return func.apply(obj,[e,elm]);};}};SZN.Events._storeToFolder=function(data){var id=SZN.idGenerator();this.eventFolder[id]={};this.eventFolder[id].trg=data[0];this.eventFolder[id].typ=data[1];this.eventFolder[id].action=data[2];this.eventFolder[id].capture=data[3];this.eventFolder[id].obj=data[4];this.eventFolder[id].func=data[5];return id;};SZN.Events.removeListener=function(elm,eType,obj,func,capture,cached){var capture=arguments[4]?arguments[4]:false;var cached=arguments[5]?arguments[5]:false;cached=(arguments.length==1)?arguments[0]:cached;if(typeof cached=="string"){return this._removeById(cached);}if(typeof obj=="function"){return this._removeListener(elm,eType,obj,capture);}throw new Error("Events.removeListener: wrong arguments");};SZN.Events._removeListener=function(elm,eType,func,capture){if(document.removeEventListener){if(window.opera&&(elm==window)){elm=document;}elm.removeEventListener(eType,func,capture);}else{if(document.detachEvent){elm.detachEvent("on"+eType,func);}}return 0;};SZN.Events._removeById=function(cached){try{var obj=this.eventFolder[cached];this._removeListener(obj.trg,obj.typ,obj.action,obj.capture);this.eventFolder[cached]=null;delete (this.eventFolder[cached]);}catch(e){return 1;}return 0;};SZN.Events.removeAllListeners=function(){for(var p in this.eventFolder){this._removeById(p);}};SZN.Events.stopEvent=function(e){var e=e||window.event;if(e.stopPropagation){e.stopPropagation();}else{e.cancelBubble=true;}};SZN.Events.cancelDef=function(e){var e=e||window.event;if(e.preventDefault){e.preventDefault();}else{e.returnValue=false;}};SZN.Events.addTimeFunction=function(owner,handleFuncName,exeFunc,exeObj){if(!!exeObj){owner[handleFuncName]=function(){return exeFunc.apply(exeObj,[]);};}else{owner[handleFuncName]=function(){return exeFunc.apply(owner,[]);};}};SZN.Events.getInfo=function(){var output=[];for(var i in SZN.Events.eventFolder){var o=SZN.Events.eventFolder[i];var obj=window;var func=null;if(o.obj){obj=o.obj;func=o.func;}else{func=o.action;}output.push({"nNode":o.trg,"sSource":"JAK","aListeners":[{"sType":o.typ,"sFunction":(obj!=window?"["+obj.constructor.NAME+"]":"")+(typeof (func)=="string"?"."+func+" = "+obj[func].toString():" "+func.toString()),"bRemoved":false}]});}return output;};SZN.Browser=SZN.ClassMaker.makeClass({"NAME":"Browser","VERSION":"2.2","CLASS":"static"});SZN.Browser.platform="";SZN.Browser.client="";SZN.Browser.klient="";SZN.Browser.version=0;SZN.Browser.agent="";SZN.Browser.mouse={};SZN.Browser._getPlatform=function(){if((this._agent.indexOf("X11")!=-1)||(this._agent.indexOf("Linux")!=-1)){return "nix";}else{if(this._agent.indexOf("Mac")!=-1){return "mac";}else{if(this._agent.indexOf("Win")!=-1){return "win";}else{return "oth";}}}};SZN.Browser._getKlient=function(){if(window.opera){return "opera";}else{if(document.attachEvent&&(typeof navigator.systemLanguage!="undefined")){return "ie";}else{if(document.getAnonymousElementByAttribute){return "gecko";}else{if(this._agent.indexOf("KHTML")){if(this._vendor=="KDE"){return "konqueror";}else{return "safari";}}else{return "oth";}}}}};SZN.Browser._getMouse=function(){var left;var right;var middle;if((SZN.Browser.client=="ie")||(SZN.Browser.client=="konqueror")){left=1;middle=4;right=2;}else{if((SZN.Browser.client=="opera")&&(SZN.Browser.version>7)&&(SZN.Browser.version<9)){left=1;middle=4;right=2;}else{if(SZN.Browser.client=="safari"){if(parseInt(SZN.Browser.version)>2){left=0;middle=0;right=2;}else{left=1;middle=1;right=2;}}else{left=0;middle=1;right=2;}}}return {"left":left,"right":right,"middle":middle};};SZN.Browser._getVersion=function(){var out=0;var fncName="_get_"+this.client+"_ver";if(typeof this[fncName]=="function"){return this[fncName]();}else{return 0;}};SZN.Browser._get_ie_ver=function(){if(typeof Function.prototype.call!="undefined"){if(window.XMLHttpRequest){return "7";}else{if(typeof document.doctype=="object"){return "6";}else{return "5.5";}}}else{return "5.0";}};SZN.Browser._get_opera_ver=function(){if(document.designMode&&document.execCommand){if(typeof Object.__defineGetter__=="function"){return "9.5";}else{return "9";}}else{if((document.selection)&&(document.createRange)){return "8";}else{if(document.createComment){return "7";}else{return "6";}}}};SZN.Browser._get_gecko_ver=function(){if(document.getElementsByClassName){return "3";}else{if(window.external){return "2";}else{return "1.5";}}};SZN.Browser._get_konqueror_ver=function(){var num=this._agent.indexOf("KHTML")+6;var part=this._agent.substring(num);var end=part.indexOf(" ");var x=part.substring(0,end-2);return x;};SZN.Browser._get_safari_ver=function(){if(this._agent.match(/chrome/i)){return 3;}var ver=this._agent.match(/version\/([0-9]+)/i);return (ver?ver[1]:"1");};SZN.Browser.getBrowser=function(){this._agent=this.agent=navigator.userAgent;this._platform=navigator.platform;this._vendor=navigator.vendor;this.platform=this._getPlatform();this.client=this._getKlient();this.klient=this.client;this.version=this._getVersion();this.mouse=this._getMouse();};SZN.Browser.getBrowser();SZN.Components=SZN.ClassMaker.makeClass({"NAME":"Components","VERSION":"1.2","CLASS":"class"});SZN.Components.prototype.hasComponents=function(){if((this.components instanceof Array)&&this.components.length){return true;}else{return false;}};SZN.Components.prototype.addAllComponents=function(){if(!this.hasComponents()){return false;}for(var i=0;i<this.components.length;i++){this._addComponent(this.components[i]);}return true;};SZN.Components.prototype.addNewComponent=function(component){if(!this.hasComponents()){this.components=new Array();}this.components.push(component);this._addComponent(component);};SZN.Components.prototype._addComponent=function(component){if(typeof component.part!="undefined"){if(typeof component.name=="undefined"){component.name=component.part.NAME.substring(0,1).toLowerCase();component.name+=component.part.NAME.substring(1);}if(typeof component.setting!="undefined"){this[component.name]=new component.part(this,component.name,component.setting);}else{this[component.name]=new component.part(this,component.name);}}};SZN.Components.prototype.registredMethod=function(owner){var field=[this,this.sConstructor];for(var i=0;i<field.length;i++){var obj=field[i];for(var j in obj){if(obj[j]===null)continue;if(typeof obj[j]=="undefined")continue;if((typeof obj[j].access!="undefined")&&(obj[j].access.indexOf("public")==0)){var name=this._createMethodName(obj,j);if(typeof owner[name]=="undefined"){owner[name]=(obj==this.sConstructor)?this.sConstructor[j]:SZN.bind(this,this[j]);}else{throw new Error("registredMethod: method \""+name+"\" already exist!");}}}}};SZN.Components.prototype.unregistredMethod=function(owner){var field=[this,this.sConstructor];for(var i=0;i<field.length;i++){var obj=field[i];for(var j in obj){if(obj[j]===null)continue;if(typeof obj[j]=="undefined")continue;if((typeof obj[j].access!="undefined")&&(obj[j].access.indexOf("public")==0)){var name=this._createMethodName(obj,j);if(typeof owner[name]!="undefined"){delete (owner[name]);}}}}};SZN.Components.prototype._createMethodName=function(obj,methodName){var nameFirstChar=methodName.substring(0,1).toUpperCase();var nameNext=methodName.substring(1);var mods=obj[methodName].access.replace(/[ ]{2,}/gi," ").split(" ");if(mods.length>1){var name=mods[1];}else{var namePrefix=(obj==this.sConstructor)?obj.NAME:this._name;var name=namePrefix+nameFirstChar+nameNext;}return name;};SZN.Components.prototype.getMain=function(){var obj=this;while(typeof obj.TOP_LEVEL=="undefined"){if(typeof obj._owner=="undefined"){throw new Error("can't find TOP LEVEL Class");}else{obj=obj._owner;}}return obj;};SZN.Components.prototype.callChildDestructor=function(){this.inDestruction=true;if(!this.hasComponents()){return false;}for(var i=0;i<this.components.length;i++){var cName=this.components[i].name;if(this[cName]==null){continue;}if((typeof this[cName].CLASS!="undefined")&&(typeof this[cName].inDestruction!="boolean")){var name="$destructor";if((typeof this[cName][name]!="undefined")&&(typeof this[cName][name]=="function")){this[cName][name]();}this[cName]=null;}}};SZN.Components.prototype.removeComponent=function(component,withDestruction){for(var i=0;i<this.components.length;i++){var c=this.components[i];if(component==c.name||component==this[c.name]){if(withDestruction&&(typeof this[c.name].$destructor=="function")){this[c.name].$destructor();}this[c.name]=null;c=null;this.components.splice(i,1);break;}}};SZN.Dom=SZN.ClassMaker.makeClass({"NAME":"Dom","VERSION":"3.4","CLASS":"static"});SZN.cEl=function(tagName,id,className,styleObj,doc){var d=doc||document;var node=d.createElement(tagName);if(arguments.length==1){return node;}if(id){node.id=id;}if(className){node.className=className;}if(styleObj)for(p in styleObj){node.style[p]=styleObj[p];}return node;};SZN.cTxt=function(str,doc){var d=doc||document;return d.createTextNode(str);};SZN.gEl=function(ids){if(typeof (ids)=="string"){return document.getElementById(ids);}else{return ids;}};SZN.Dom.append=function(){for(var i=0;i<arguments.length;i++){var arr=arguments[i];var head=arr[0];for(var j=1;j<arr.length;j++){head.appendChild(arr[j]);}}};SZN.Dom.hasClass=function(element,className){var arr=element.className.split(" ");for(var i=0;i<arr.length;i++){if(arr[i]==className){return true;}}return false;};SZN.Dom.addClass=function(element,className){if(SZN.Dom.hasClass(element,className)){return;}element.className+=" "+className;};SZN.Dom.removeClass=function(element,className){var names=element.className.split(" ");var newClassArr=[];for(var i=0;i<names.length;i++){if(names[i]!=className){newClassArr.push(names[i]);}}element.className=newClassArr.join(" ");};SZN.Dom.clear=function(element){while(element.firstChild){element.removeChild(element.firstChild);}};SZN.Dom.getDocSize=function(){var x=0;var y=0;if(document.compatMode!="BackCompat"){if(document.documentElement.clientWidth&&SZN.Browser.klient!="opera"){x=document.documentElement.clientWidth;y=document.documentElement.clientHeight;}else{if(SZN.Browser.klient=="opera"){if(parseFloat(SZN.Browser.version)<9.5){x=document.body.clientWidth;y=document.body.clientHeight;}else{x=document.documentElement.clientWidth;y=document.documentElement.clientHeight;}}}if((SZN.Browser.klient=="safari")||(SZN.Browser.klient=="konqueror")){y=window.innerHeight;}}else{x=document.body.clientWidth;y=document.body.clientHeight;}return {"width":x,"height":y};};SZN.Dom.getBoxPosition=function(obj,ref){var top=0;var left=0;var refBox=ref||obj.ownerDocument.body;if(obj.getBoundingClientRect&&!ref){var de=document.documentElement;var box=obj.getBoundingClientRect();var scroll=SZN.Dom.getScrollPos();return {"left":box.left+scroll.x-de.clientLeft,"top":box.top+scroll.y-de.clientTop};}while(obj&&obj!=refBox){top+=obj.offsetTop;left+=obj.offsetLeft;obj=obj.offsetParent;}return {"top":top,"left":left};};SZN.Dom.getFullBoxPosition=function(obj,parent,fixed){var pos=SZN.Dom.getBoxPosition(obj,parent,fixed);var scroll=SZN.Dom.getBoxScroll(obj,parent,fixed);pos.left-=scroll.x;pos.top-=scroll.y;return {"left":pos.left,"top":pos.top};};SZN.Dom.getBoxScroll=function(obj,ref,fixed){var x=0;var y=0;var cur=obj.parentNode;var limit=ref||obj.ownerDocument.documentElement;var fix=false;while(1){if(SZN.Browser.client=="opera"&&SZN.Dom.getStyle(cur,"display")!="block"){cur=cur.parentNode;continue;}if(SZN.Browser.client=="opera"&&cur==document.documentElement){break;}if(fixed&&SZN.Dom.getStyle(cur,"position")=="fixed"){fix=true;}if(!fix){x+=cur.scrollLeft;y+=cur.scrollTop;}if(cur==limit){break;}cur=cur.parentNode;if(!cur){break;}}return {"x":x,"y":y};};SZN.Dom.getScrollPos=function(){if(document.documentElement.scrollTop||document.documentElement.scrollLeft){var ox=document.documentElement.scrollLeft;var oy=document.documentElement.scrollTop;}else{if(document.body.scrollTop||document.body.scrollLeft){var ox=document.body.scrollLeft;var oy=document.body.scrollTop;}else{var ox=0;var oy=0;}}return {"x":ox,"y":oy};};SZN.Dom.getStyle=function(elm,property){if(document.defaultView&&document.defaultView.getComputedStyle){var cs=elm.ownerDocument.defaultView.getComputedStyle(elm,"");if(!cs){return false;}return cs[property];}else{return elm.currentStyle[property];}};SZN.Dom.setStyle=function(elm,style){for(name in style){elm.style[name]=style[name];}};SZN.Dom.elementsHider=function(obj,elements,action){var elems=elements;if(!elems){elems=["select","object","embed","iframe"];}var hidden=arguments.callee.hidden;if(hidden){hidden.forEach(function(node){node.style.visibility="visible";});arguments.callee.hidden=[];}function testParent(node){var ok=false;var cur=node;while(cur.parentNode&&cur!=document){if(cur==obj){ok=true;}cur=cur.parentNode;}return ok;}if(action=="hide"){if(typeof obj=="string"){obj=SZN.gEl(obj);}var hidden=[];var box=this.getBoxPosition(obj);box.width=obj.offsetWidth+box.left;box.height=obj.offsetHeight+box.top;for(var e=0;e<elems.length;++e){var elm=document.getElementsByTagName(elems[e]);for(var f=0;f<elm.length;++f){var node=this.getBoxPosition(elm[f]);if(testParent(elm[f])){continue;}node.width=elm[f].offsetWidth+node.left;node.height=elm[f].offsetHeight+node.top;if(!((box.left>node.width)||(box.width<node.left)||(box.top>node.height)||(box.height<node.top))){elm[f].style.visibility="hidden";hidden.push(elm[f]);}}}arguments.callee.hidden=hidden;}};SZN.Dom.getElementsByClass=function(searchClass,node,tag){if(document.getElementsByClassName&&!tag){var elm=node||document;return SZN.Dom.arrayFromCollection(elm.getElementsByClassName(searchClass));}if(document.querySelectorAll&&!tag){var elm=node||document;return SZN.Dom.arrayFromCollection(elm.querySelectorAll("."+searchClass));}var classElements=[];var node=node||document;var tag=tag||"*";var els=node.getElementsByTagName(tag);var elsLen=els.length;var pattern=new RegExp("(^|\\s)"+searchClass+"(\\s|$)");for(var i=0,j=0;i<elsLen;i++){if(pattern.test(els[i].className)){classElements[j]=els[i];j++;}}return classElements;};SZN.Dom.arrayFromCollection=function(col){var result=[];try{result=Array.prototype.slice.call(col);}catch(e){for(var i=0;i<col.length;i++){result.push(col[i]);}}finally{return result;}};SZN.ObjLib=SZN.ClassMaker.makeClass({"NAME":"ObjLib","VERSION":"1.2","CLASS":"class"});SZN.ObjLib.prototype.DEEP=200;SZN.ObjLib.prototype.$constructor=function(){this.deep=this.DEEP;this.setUndefinedHandler();};SZN.ObjLib.prototype.$destructor=function(){};SZN.ObjLib.prototype.setDeep=function(num){this.deep=num;};SZN.ObjLib.prototype.getDeep=function(){return this.deep;};SZN.ObjLib.prototype.setUndefinedHandler=function(handleType){var types={"throw":1,"nothing":1,"def":"throw"};this.undefHandler=types[handleType]?handleType:types["def"];};SZN.ObjLib.prototype.getUndefinedHandler=function(){return this.undefHandler;};SZN.ObjLib.prototype.pretty=function(str,sep){var arr=str.toString().split("");var newline=this._isIE()?"\n\r":"\n";var tab=sep?sep:"\t";var ptr=0;var depth=0;var inSpecial="";function countBackslashes(){var cnt=0;var ptr2=ptr-1;while(ptr2>=0&&arr[ptr2]=="\\"){cnt++;ptr2--;}return cnt;}while(ptr<arr.length){var ch=arr[ptr];switch(ch){case "\"":if(inSpecial=="re"){break;}var num=countBackslashes();if(!(num&1)){inSpecial=(inSpecial?"":"str");}break;case "/":if(inSpecial=="str"){break;}var num=countBackslashes();if(!(num&1)){inSpecial=(inSpecial?"":"re");}break;case ",":if(!inSpecial){arr.splice(++ptr,0,newline);for(var i=0;i<depth;i++){arr.splice(++ptr,0,tab);}}break;case "{":case "[":if(!inSpecial){depth++;arr.splice(++ptr,0,newline);for(var i=0;i<depth;i++){arr.splice(++ptr,0,tab);}}break;case "}":case "]":if(!inSpecial){arr.splice(ptr++,0,newline);depth--;for(var i=0;i<depth;i++){arr.splice(ptr++,0,tab);}}break;}ptr++;}return arr.join("");};SZN.ObjLib.prototype.serialize=function(objToSource,showFlag){var deepFlag=0;var startString="{";var endString="}";var propertySep=":";var propertyEnd=",";var mySelf=this;var output="";var firstStep=true;var cache=[];var mySource=function(obj){if(mySelf.deep&&(mySelf.deep<deepFlag)){throw new Error("Serialize: structure is so deep.");}if(cache.indexOf(obj)!=-1){throw new Error("serialize: Circular reference encountered");return null;}if(typeof arguments[1]!="undefined"){var propName=arguments[1];}else{var propName=false;}if(!(obj instanceof Object)){switch(typeof obj){case "string":return "'"+mySelf._formatString(obj)+"'";break;case "undefined":switch(mySelf.undefHandler){case "nothing":return obj;break;default:throw new Error("serialize: property "+(propName?propName:"obj")+" is not defined!!");break;}break;default:return obj;break;}}else{cache.push(obj);var buildIn=mySelf._buildInObjectSerialize(obj);if(buildIn.isSet){return buildIn.output;}else{if(typeof obj=="function()"){throw new Error("Serialize: can't serialize object with some method - ** "+(propName?"obj":propName)+" **");}var output=startString;deepFlag++;for(var i in obj){for(var j in obj[i]){if(j){var isEmpty=false;break;}}var propName=mySelf._formatString(i);output+="'"+propName+"'"+propertySep+(isEmpty?"{}":mySource(obj[i],i))+propertyEnd;}var charNum=(output.lastIndexOf(",")>=0)?output.lastIndexOf(","):output.length;output=output.substring(0,charNum);deepFlag--;return output+endString;}}};var source=mySource(objToSource);if(showFlag){return this.pretty(source,showFlag);}else{return source;}};SZN.ObjLib.prototype.arraySerialize=function(fieldToSerialize){var fieldStr="";var mySelf=this;var mySource=function(field){if(field instanceof Array){for(var i=0;i<field.length;i++){if(typeof field[i]=="function"&&!(field[i] instanceof RegExp)){throw new Error("Serialize: can't serialize Function");}if((typeof field[i]!="object")&&((typeof field[i]!="function"))){if(typeof field[i]=="string"){var str=mySelf._formatString(field[i]);fieldStr+="'"+str+"',";}else{fieldStr+=field[i]+",";}}else{fieldStr+=mySelf.serialize(field[i],0)+",";}}return "["+fieldStr.substring(0,fieldStr.length-1)+"]";}else{throw new Error("arraySerialize: Attribute is not Array");}};var myString=mySource(fieldToSerialize);return myString;};SZN.ObjLib.prototype.unserialize=function(serializedString){eval("var newVar="+serializedString);return newVar;};SZN.ObjLib.prototype.match=function(refObj,matchObj){if(this.serialize(refObj,0).length==this.serialize(matchObj,0).length){var step1=this._matchProcess(refObj,matchObj);var step2=this._matchProcess(matchObj,refObj);return (step1&&step2);}else{return false;}};SZN.ObjLib.prototype._matchProcess=function(refObj,matchObj){var success=true;var mySelf=this;var firstStep=true;var myMatch=function(obj1,obj2){if(firstStep){var buildIn=mySelf._matchBuildInObj(obj1,obj2);if((buildIn.isSet)&&(!buildIn.success)){success=false;return false;}firstStep=false;}for(var i in obj1){if(((typeof obj1[i]!=undefined)&&(typeof obj2[i]!=undefined))||((typeof obj1[i]==undefined)&&(typeof obj2[i]==undefined))){if((typeof obj1[i]!="object")&&(typeof obj1[i]!="function")){if(obj1[i]!=obj2[i]){success=false;return success;}else{succes=success;}}else{var buildIn=mySelf._matchBuildInObj(obj1,obj2);if(buildIn.isSet){if(!buildIn.success){success=false;return false;}}else{success=myMatch(obj1[i],obj2[i]);}}}else{success=false;return success;}}return success;};success=myMatch(refObj,matchObj);return success;};SZN.ObjLib.prototype._matchBuildInObj=function(refObj,matchObj){var objField=["String","Number","RegExp","Date","Boolean"];var success=false;var isSet=false;for(var i=0;i<objField.length;i++){if((refObj instanceof window[objField[i]])&&(matchObj instanceof window[objField[i]])){isSet=true;if((this.serialize(refObj,0))==(this.serialize(matchObj,0))){success=true;}}}return {"isSet":isSet,"success":success};};SZN.ObjLib.prototype._buildInObjectSerialize=function(testedObj){var output=null;var isSet=false;if(testedObj instanceof String){output="new String(\""+this._formatString(testedObj)+"\")";isSet=true;}else{if(testedObj instanceof Number){output="new Number("+testedObj+")";isSet=true;}else{if(testedObj instanceof RegExp){output="new RegExp("+testedObj+")";isSet=true;}else{if(testedObj instanceof Array){output=this.arraySerialize(testedObj);isSet=true;}else{if(testedObj instanceof Date){var tm=testedObj.getTime();output="new Date("+tm+")";isSet=true;}else{if(testedObj instanceof Boolean){output="new Boolean("+testedObj+")";isSet=true;}else{if(testedObj==null){isSet=true;}}}}}}}return {"isSet":isSet,"output":output};};SZN.ObjLib.prototype._isIE=function(){if(document.all&&document.attachEvent&&!window.opera){return true;}return false;};SZN.ObjLib.prototype.copy=function(objToCopy){var str=this.serialize(objToCopy);return this.unserialize(str);};SZN.ObjLib.prototype._formatString=function(s){var re=/["\\']/g;var re2=/[\n\r\t]/g;var replace={"\n":"\\n","\t":"\\t","\r":"\\r"};return s.replace(re,this._addSlashes).replace(re2,function(ch){return replace[ch];});},SZN.ObjLib.prototype._addSlashes=function(ch){return "\\"+ch;};SZN.ObjLib.prototype.arrayCopy=function(arrayToCopy){if(field instanceof Array){var out=this.arraySerialize(arrayToCopy);return this.unserialize(out);}else{throw new Error("ObjCopy.arrayCopy: Attribute is not Array");}};SZN.ObjCopy=SZN.ClassMaker.makeClass({"NAME":"ObjCopy","VERSION":"1.1","CLASS":"class","EXTEND":SZN.ObjLib});SZN.ObjCopy.prototype.$constructor=function(){this.callSuper("$constructor",arguments.callee)();};SZN.HTTPRequest=SZN.ClassMaker.makeClass({"NAME":"HTTPRequest","VERSION":"1.1","CLASS":"class"});SZN.HTTPRequest.prototype.$constructor=function(url,callBackObj,callBackFunc){this.data=new Object();this.url=url?url:"";this.callBackObj=callBackObj;this.callBackFunc=callBackFunc;this.setFormat();this.setMode();this.setMethod();this.setPostData();this.setHeaders();};SZN.HTTPRequest.Setting=function(url,method,postData,headers,mode,format){this.url=url?url:"";this.method=method?method:"";this.mode=mode?mode:"";this.format=format?format:"";this.headers=headers?headers:"";this.postData=postData?postData:"";};SZN.HTTPRequest.prototype.METHOD={"post":"post","get":"get","def":"get"};SZN.HTTPRequest.prototype.FORMAT={"xml":"xml","txt":"txt","def":"txt"};SZN.HTTPRequest.prototype.MODE={"async":true,"sync":false,"def":true};SZN.HTTPRequest.prototype.HEADER=[{"typ":"Content-Type","content":"application/x-www-form-urlencoded"}];SZN.HTTPRequest.prototype.destructor=function(){for(var i in this){this[i]=null;}};SZN.HTTPRequest.prototype.init=function(){};SZN.HTTPRequest.prototype.setMethod=function(method){this.data.method=this._getMethod(method);};SZN.HTTPRequest.prototype.setMode=function(mode){this.data.mode=this._getMode(mode);};SZN.HTTPRequest.prototype.setFormat=function(format){this.data.format=this._getFormat(format);};SZN.HTTPRequest.prototype.setHeaders=function(headers){this.data.headers=this._setHeaders(headers);};SZN.HTTPRequest.prototype.setPostData=function(data){this.data.postData=data?data:"";};SZN.HTTPRequest.prototype.send=function(url,obj,method,requestData,returnOnly){var mySelf=this;var param=requestData?requestData:{};var data=this._setFromData(url,obj,method,param);var XHR=this._getRequest();try{XHR.open(data.method,data.url,data.mode);}catch(e){return 0;}for(var i=0;i<data.headers.length;i++){XHR.setRequestHeader(data.headers[i].typ,data.headers[i].content);}if(data.mode){function stateChangeFunction(){if(XHR.readyState==4){if(data.format=="xml"){var out=XHR.responseXML;}else{if(data.format=="txt"){var out=XHR.responseText;}}var status=0;try{status=XHR.status;}catch(e){}finally{data.callBackObj[data.callBackFunc](out,status);XHR=null;}}}XHR.onreadystatechange=stateChangeFunction;}if(data.method==this.METHOD["post"]){if(typeof data.postData!="undefined"){XHR.send(data.postData);}else{return 0;}}else{XHR.send(null);}if(!data.mode){if(data.format=="xml"){var out=XHR.responseXML;}else{var out=XHR.responseText;}if(returnOnly){return {"status":XHR.status,"data":out};}else{data.callBackObj[data.callBackFunc](out,XHR.status);}}else{return XHR;}};SZN.HTTPRequest.prototype.abort=function(XHR){if(typeof XHR=="object"&&XHR.readyState!=4){XHR.abort();}else{return 0;}};SZN.HTTPRequest.prototype._getMethod=function(method){return (typeof this.METHOD[method]!="undefined")?this.METHOD[method]:this.METHOD["def"];};SZN.HTTPRequest.prototype._getMode=function(mode){return (typeof this.MODE[mode]!="undefined")?this.MODE[mode]:this.MODE["def"];};SZN.HTTPRequest.prototype._getFormat=function(format){return (typeof this.FORMAT[format]!="undefined")?this.FORMAT[format]:this.FORMAT["def"];};SZN.HTTPRequest.prototype._setHeaders=function(headers){var headers=(headers instanceof Array)?headers:new Array();var out=new Array();var setContent=false;for(var i=0;i<headers.length;i++){if(headers[i].typ=="Content-Type"){setContent=true;}out[i]={"typ":headers[i].typ,"content":headers[i].content};}if(!setContent){out.push({"typ":this.HEADER[0].typ,"content":this.HEADER[0].content});}return out;};SZN.HTTPRequest.prototype._setFromData=function(url,obj,func,setting){var data=new Object();for(var i in this.data){switch(i){case "method":if(setting[i]){data[i]=this._getMethod(setting[i]);}else{data[i]=this.data[i];}break;case "format":if(setting[i]){data[i]=this._getFormat(setting[i]);}else{data[i]=this.data[i];}break;case "mode":if(setting[i]){data[i]=this._getMode(setting[i]);}else{data[i]=this.data[i];}break;case "headers":if(setting[i]){data.headers=this._setHeaders(setting[i]);}else{data.headers=this._setHeaders(this.data[i]);}break;default:if(setting[i]){data[i]=setting[i];}else{data[i]=this.data[i];}break;}}data.url=url?url:this.url;data.callBackObj=obj?obj:this.callBackObj;data.callBackFunc=func?func:this.callBackFunc;return data;};SZN.HTTPRequest.prototype._getRequest=function(){if(typeof (XMLHttpRequest)!="undefined"){return new XMLHttpRequest();}else{try{return new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{return new ActiveXObject("Microsoft.XMLHTTP");}catch(e){return 0;}}}};SZN.Signals=SZN.ClassMaker.makeClass({"NAME":"Signals","VERSION":"1.4","CLASS":"class"});SZN.Signals.prototype.$constructor=function(owner,name){this._owner=owner;this._name=name;this.messageFolder={};this.myEventFolder={};this.myHandleFolder={};this.apiHandler=null;};SZN.Signals.prototype.$destructor=function(){};SZN.Signals.prototype.setApiHandler=function(handler){this.apiHandler=handler;};SZN.Signals.prototype.setMessage=function(msgName,msgValue){this.messageFolder[msgName]=msgValue;};SZN.Signals.prototype.getMessage=function(msgName){return this.messageFolder[msgName];};SZN.Signals.prototype.addListener=function(owner,type,funcOrString,sender){if(!(type in this.myHandleFolder)){this.myHandleFolder[type]={};}for(var p in this.myHandleFolder[type]){var item=this.myHandleFolder[type][p];if((item.eFunction==funcOrString)&&(item.eOwner==owner)&&(item.eSender==sender)){return null;}}var id=SZN.idGenerator();this.myHandleFolder[type][id]={"eOwner":owner,"eFunction":funcOrString,"eSender":sender};return id;};SZN.Signals.prototype.removeListener=function(owner,type,funcOrString,sender){var removed=1;if(arguments.length==1){var id=arguments[0];for(var t in this.myHandleFolder){var set=this.myHandleFolder[t];if(id in set){set[id]=null;delete (set[id]);removed=0;}}}else{for(var id in this.myHandleFolder[type]){var item=this.myHandleFolder[type][id];if((item.eFunction==funcOrString)&&(item.eOwner==owner)&&(item.eSender==sender)){item=null;delete (this.myHandleFolder[type][id]);removed=0;}}}return removed;};SZN.Signals.prototype.makeEvent=function(type,trg,accessType,timestamp,data){var ids=SZN.idGenerator();this.myEventFolder["e-"+ids]=new SZN.Signals.NewEvent(type,trg,accessType,timestamp,ids,data);this.myEventHandler(this.myEventFolder["e-"+ids]);};SZN.Signals.NewEvent=function(type,trg,access,time,ids,data){this.type=type;this.target=trg;this.accessType=access;this.timeStamp=time;this._id=ids;this.data=(data&&typeof data=="object")?data:null;};SZN.Signals.prototype.myEventHandler=function(myEvent){var functionCache=[];for(var type in this.myHandleFolder){if(type==myEvent.type||type=="*"){for(var p in this.myHandleFolder[type]){var item=this.myHandleFolder[type][p];if(!item.eSender||item.eSender==myEvent.target){functionCache.push(item);}}}}for(var i=0;i<functionCache.length;i++){var item=functionCache[i];var owner=item.eOwner;var fnc=item.eFunction;if(typeof fnc=="string"){owner[fnc](myEvent);}else{if(typeof fnc=="function"){fnc(myEvent);}}}if((myEvent.accessType=="public")&&(this.apiHandler!=null)&&(myEvent._owner!="api")){this.apiHandler._apiEventHandler(myEvent);}this.destroyEvent(myEvent._id);};SZN.Signals.prototype.destroyEvent=function(ids){this.myEventFolder["e-"+ids]=null;delete (this.myEventFolder["e-"+ids]);};SZN.signals=new SZN.Signals();SZN.SigInterface=SZN.ClassMaker.makeClass({"NAME":"SigInterface","VERSION":"1.3","CLASS":"class"});SZN.SigInterface.prototype.setInterface=function(interfaceName){if(typeof (this[interfaceName])!="object"){var owner=this._owner;while(typeof (owner[interfaceName])=="undefined"){if(typeof owner.TOP_LEVEL!="undefined"){throw new Error("SetInterface:Interface not found");}else{owner=owner._owner;}}return owner[interfaceName];}};SZN.SigInterface.prototype.addListener=function(type,handleFunction,sender){return this.getInterface().addListener(this,type,handleFunction,sender);};SZN.SigInterface.prototype.removeListener=function(type,handleFunction,sender){if(arguments.length==1){return this.getInterface().removeListener(arguments[0]);}else{return this.getInterface().removeListener(this,type,handleFunction,sender);}};SZN.SigInterface.prototype.makeEvent=function(type,accessType,data){var time=new Date().getTime();this.getInterface().makeEvent(type,this,accessType,time,data);};SZN.SigInterface.prototype.setSysMessage=function(msgName,msgValue){this.getInterface().setMessage(msgName,msgValue);};SZN.SigInterface.prototype.getSysMessage=function(msgName){return this.getInterface().getMessage(msgName);};SZN.SigInterface.prototype.getInterface=function(){return (typeof (this.signals)=="object"?this.signals:SZN.signals);};}
{SZN.LightBox=SZN.ClassMaker.makeClass({"NAME":"SZN.LightBox","VERSION":"1.0","CLASS":"class","IMPLEMENT":[SZN.SigInterface,SZN.Components]});SZN.LightBox.DIR_PREV=-1;SZN.LightBox.DIR_NEXT=1;SZN.LightBox.prototype.$constructor=function(data,optObj){this.options={"components":{"anchorage":SZN.LightBox.Anchorage,"main":SZN.LightBox.Main,"strip":SZN.LightBox.Strip,"description":SZN.LightBox.Description,"pageShader":SZN.LightBox.PageShader,"navigation":SZN.LightBox.Navigation,"transition":SZN.LightBox.Transition,"others":[]},"imagePath":"img/","imageFormat":"png","parent":false,"zIndex":false,"useShadow":false,"usePageShader":true,"shadowSizes":[16,16,16,16],"galleryId":false,"galleryClassName":"image-browser-content","handleDocumentCloseClick":true,"mainOpt":{"id":false,"className":"image-browser-image","useMouseWheelScroll":true},"stripOpt":{"id":false,"className":"image-browser-thumbs","orientation":"vertical","activeBorder":"inner","activeId":false,"activeClassName":"image-browser-active","imageBoxClassName":"image-browser-thumb-box"},"descriptionOpt":{"id":false,"className":"image-browser-caption","contentId":false,"contentClassName":"image-browser-caption-content"},"navigationOpt":{"id":false,"className":"image-browser-navigation","continuous":true,"showDisabled":false,"nextClassName":"image-browser-next","prevClassName":"image-browser-prev","closeClassName":"image-browser-close"},"transitionOpt":{},"anchorageOpt":{}};for(var p in optObj){if(optObj[p] instanceof Object&&!optObj[p].CLASS){for(var o in optObj[p]){this.options[p][o]=optObj[p][o];}}else{this.options[p]=optObj[p];}}this.dom={};this.ec=[];this.objCache=[];this.components=[];this.visible=false;this.index=0;this.direction=SZN.LightBox.DIR_NEXT;this.blindLinkName=SZN.idGenerator();this.blindStyle={"position":"absolute","top":"-1000px","left":"-1000px","width":"1px","height":"1px","overflow":"hidden"};this.data=[];for(var i=0;i<data.length;i++){var item=data[i];var o={};for(var j in item){o[j]=item[j];}if(item.main){this.index=i;}this.data.push(o);}this._buildContainer();this._renderBlindStart();this._render();for(var i=0;i<this.options.components.others.length;i++){this.addNewComponent(this.options.components.others[i]);}this.addNewComponent({"name":"dummyTransition","part":SZN.LightBox.Transition});this._renderBlindEnd();};SZN.LightBox.create=function(elm,optObj){elm=SZN.gEl(elm);var data=[];var l=[];var links=elm.getElementsByTagName("a");for(var i=0;i<links.length;i++){var img=links[i].getElementsByTagName("img")[0];if(!img){continue;}data.push({"alt":links[i].alt,"small":{"url":img.src},"big":{"url":links[i].href}});l.push(links[i]);}var g=new SZN.LightBox(data,optObj);for(var i=0;i<l.length;i++){g.bindElement(l[i],i);}return g;};SZN.LightBox.prototype.$destructor=function(){for(var i=0;i<this.ec.length;i++){SZN.Events.removeListener(this.ec[i]);}this.callChildDestructor();for(var p in this){this[p]=null;}};SZN.LightBox.prototype._addDefaultComponent=function(name,part,className){var node=part;var ok=false;while(node){if(node==className){ok=true;break;}node=node.EXTEND;}if(ok){this.addNewComponent({"part":part,"name":name});}else{alert("Bad "+name+" functionality");}};SZN.LightBox.prototype._buildContainer=function(){this.dom.loadBox=SZN.cEl("div");this.dom.loadBox.style.position="absolute";this.dom.loadBox.style.top="-100px";this.dom.loadBox.style.left="-100px";this.dom.loadBox.style.overflow="hidden";this.dom.loadBox.style.width="1px";this.dom.loadBox.style.height="1px";var body=document.getElementsByTagName("body")[0];body.insertBefore(this.dom.loadBox,body.firstChild);var div=SZN.cEl("div",this.options.galleryId,this.options.galleryClassName);if(this.options.useShadow){var winopts={"imagePath":this.options.imagePath,"imageFormat":this.options.imageFormat,"sizes":this.options.shadowSizes};this.window=new SZN.Window(winopts);this.dom.container=this.window.container;this.dom.container.style.position="absolute";this.window.content.appendChild(div);this.dom.content=div;}else{this.dom.container=SZN.cEl("div",false,false,{"position":"absolute"});this.dom.container.appendChild(div);this.dom.content=div;}if(this.options.zIndex){this.dom.container.style.zIndex=this.options.zIndex;}if(!this.parent){var parent=this.dom.loadBox;}else{var parent=this.parent;}parent.insertBefore(this.dom.container,parent.firstChild);};SZN.LightBox.prototype._render=function(){this._addDefaultComponent("anchorage",this.options.components.anchorage,SZN.LightBox.Anchorage);this._addDefaultComponent("transition",this.options.components.transition,SZN.LightBox.Transition);this._addDefaultComponent("main",this.options.components.main,SZN.LightBox.Main);this.dom.content.appendChild(this.main.render());if(this.options.usePageShader){this._addDefaultComponent("pageShader",this.options.components.pageShader,SZN.LightBox.PageShader);}this._addDefaultComponent("strip",this.options.components.strip,SZN.LightBox.Strip);this.dom.content.appendChild(this.strip.render());this._addDefaultComponent("description",this.options.components.description,SZN.LightBox.Description);this.dom.content.appendChild(this.description.render());this._addDefaultComponent("navigation",this.options.components.navigation,SZN.LightBox.Navigation);this.dom.content.appendChild(this.navigation.render());this.makeEvent("renderDone","public");};SZN.LightBox.prototype._renderBlindStart=function(){var h3=SZN.cEl("h3");h3.innerHTML="Fotogalerie";SZN.Dom.setStyle(h3,this.blindStyle);var link=SZN.cEl("a");link.href="#"+this.blindLinkName;link.innerHTML="Přeskočit fotogalerii";SZN.Dom.setStyle(link,this.blindStyle);this.dom.content.appendChild(h3);this.dom.content.appendChild(link);};SZN.LightBox.prototype._renderBlindEnd=function(){var link=SZN.cEl("a");link.id=this.blindLinkName;this.dom.content.appendChild(link);};SZN.LightBox.prototype._addEvents=function(){if(this.options.handleDocumentCloseClick){this.ec.push(SZN.Events.addListener(document,"mousedown",this,"_clickClose"));this.ec.push(SZN.Events.addListener(this.dom.container,"mousedown",window,SZN.Events.stopEvent));}this.ec.push(SZN.Events.addListener(window,"resize",this,"_resize"));};SZN.LightBox.prototype._removeEvents=function(){for(var i=0;i<this.ec.length;i++){SZN.Events.removeListener(this.ec[i]);}};SZN.LightBox.prototype.createEvent=function(sender,name){this.makeEvent(name,"public",{"sender":sender});};SZN.LightBox.prototype._resize=function(e,elm){this.makeEvent("windowResize","protected");};SZN.LightBox.prototype._clickClose=function(e,elm){if(e.button==SZN.Browser.mouse.left){this.close();}};SZN.LightBox.prototype.close=function(){this.makeEvent("close","public");this._removeEvents();this.visible=false;if(!this.parent){SZN.Dom.elementsHider(this.dom.container,false,"show");this.dom.container.parentNode.removeChild(this.dom.container);}this.makeEvent("closed","public");};SZN.LightBox.prototype.show=function(i){this.makeEvent("show","public",{"index":i});this._addEvents();this.visible=true;if(!this.parent){var body=document.getElementsByTagName("body")[0];body.insertBefore(this.dom.container,body.firstChild);this.anchorage.actualizePosition();SZN.Dom.elementsHider(this.dom.container,false,"hide");}this.go(i);this.makeEvent("showed","public",{"index":i});};SZN.LightBox.prototype.go=function(index){var dir=index<this.index?SZN.LightBox.DIR_PREV:SZN.LightBox.DIR_NEXT;this._go(index,dir);};SZN.LightBox.prototype._go=function(i,direction){this.direction=direction;this.makeEvent("go","public",{"index":i});this.main.update(i);this.strip.update(i);this.description.update(i);this.navigation.update(i);this.index=i;};SZN.LightBox.prototype.previous=function(){var i=this.index-1;if(i<0){if(this.options.navigationOpt.continuous){i=this.data.length-1;}else{return;}}this._go(i,SZN.LightBox.DIR_PREV);};SZN.LightBox.prototype.next=function(){var i=this.index+1;if(i==this.data.length){if(this.options.navigationOpt.continuous){i=0;}else{return;}}this._go(i,SZN.LightBox.DIR_NEXT);};SZN.LightBox.prototype.bindAnchors=function(elm){var links=SZN.Dom.arrayFromCollection(SZN.gEl(elm).getElementsByTagName("a"));for(var i=0;i<links.length;i++){this.bindElement(links[i],i);}};SZN.LightBox.prototype.bindElement=function(elm,i){this.objCache.push(new SZN.LightBox.ImageLink(this,i,elm));};SZN.LightBox.ImageLink=SZN.ClassMaker.makeClass({"NAME":"SZN.LightBox.ImageLink","VERSION":"1.0","CLASS":"class"});SZN.LightBox.ImageLink.prototype.$constructor=function(owner,index,elm){this.ec=[];this.owner=owner;this.index=index;this.elm=elm;this.ec.push(SZN.Events.addListener(this.elm,"click",this,"_show"));};SZN.LightBox.ImageLink.prototype.$destructor=function(){for(var i=0;i<this.ec.length;i++){SZN.Events.removeListener(this.ec[i]);}for(var p in this){this[p]=null;}};SZN.LightBox.ImageLink.prototype._show=function(e,elm){SZN.Events.cancelDef(e);SZN.Events.stopEvent(e);this.owner.show(this.index);};SZN.LightBox.Anchorage=SZN.ClassMaker.makeClass({"NAME":"SZN.LightBox.Anchorage","VERSION":"1.0","CLASS":"class"});SZN.LightBox.Anchorage.prototype.$constructor=function(owner){this.owner=owner;this.options=this.owner.options.anchorageOpt;this.container=this.owner.dom.container;};SZN.LightBox.Anchorage.prototype.actualizePosition=function(){this.container.style.top="0px";this.container.style.left="0px";this.container.style.position="absolute";};SZN.LightBox.Anchorage.Fixed=SZN.ClassMaker.makeClass({"NAME":"SZN.LightBox.Anchorage.Fixed","VERSION":"1.0","CLASS":"class","EXTEND":SZN.LightBox.Anchorage});SZN.LightBox.Anchorage.Fixed.prototype.$constructor=function(owner){this.callSuper("$constructor",arguments.callee)(owner);this.ec=[];this.useAbsoluteHack=false;if(SZN.Browser.client=="ie"&&SZN.Browser.version<=6){this.useAbsoluteHack=true;}this.attachEvents();};SZN.LightBox.Anchorage.Fixed.prototype.$destructor=function(){for(var i=0;i<this.ec.length;i++){SZN.Events.removeListener(this.ec[i]);}for(var p in this){this[p]=null;}};SZN.LightBox.Anchorage.Fixed.prototype.attachEvents=function(){this.ec.push(SZN.Events.addListener(window,"resize",this,"actualizePosition"));if(this.useAbsoluteHack){this.ec.push(SZN.Events.addListener(window,"scroll",this,"actualizePosition"));}};SZN.LightBox.Anchorage.Fixed.prototype.actualizePosition=function(){var hasParent=true;if(!this.owner.visible){this.container.style.position="absolute";this.container.style.top="-1000px";this.container.style.left="-1000px";this.container.style.visibility="hidden";hasParent=false;}var body=document.getElementsByTagName("body")[0];body.insertBefore(this.container,body.firstChild);this._position();if(!hasParent){this.container.parentNode.removeChild(this.container);this.container.style.visibility="visible";}};SZN.LightBox.Anchorage.Fixed.prototype._position=function(){var portSize=SZN.Dom.getDocSize();if(this.useAbsoluteHack){var wScroll=SZN.Dom.getScrollPos();this.container.style.position="absolute";this.container.style.top=Math.round(wScroll.y+portSize.height/2-this.container.offsetHeight/2)+"px";this.container.style.left=Math.round(wScroll.x+portSize.width/2-this.container.offsetWidth/2)+"px";}else{this.container.style.position="fixed";this.container.style.top=Math.round(portSize.height/2-this.container.offsetHeight/2)+"px";this.container.style.left=Math.round(portSize.width/2-this.container.offsetWidth/2)+"px";}};SZN.LightBox.Anchorage.TopLeft=SZN.ClassMaker.makeClass({"NAME":"SZN.LightBox.Anchorage.TopLeft","VERSION":"1.0","CLASS":"class","EXTEND":SZN.LightBox.Anchorage});SZN.LightBox.Anchorage.TopLeft.prototype.actualizePosition=function(){this.container.style.top=this.options.top+"px";this.container.style.left=this.options.left+"px";this.container.style.position="absolute";};SZN.LightBox.Main=SZN.ClassMaker.makeClass({"NAME":"SZN.LightBox.Main","VERSION":"1.0","CLASS":"class","IMPLEMENT":[SZN.SigInterface]});SZN.LightBox.Main.prototype.$constructor=function(owner){this.owner=owner;this.options=this.owner.options.mainOpt;this.dom={};this.ec=[];this.current=null;this.width=0;this.height=0;};SZN.LightBox.Main.prototype.$destructor=function(){for(p in this.dom){this.dom[p]=null;}for(var i=0;i<this.ec.length;i++){SZN.Events.removeListener(this.ec[i]);}for(p in this){this[p]=null;}};SZN.LightBox.Main.prototype.render=function(){this.dom.mainBox=SZN.cEl("div",this.options.id,this.options.className);this._attachEvents();return this.dom.mainBox;};SZN.LightBox.Main.prototype._attachEvents=function(){if(this.options.useMouseWheelScroll){this.ec.push(SZN.Events.addListener(this.dom.mainBox,"DOMMouseScroll",this,"_scroll"));this.ec.push(SZN.Events.addListener(this.dom.mainBox,"mousewheel",this,"_scroll"));}};SZN.LightBox.Main.prototype._scroll=function(e,elm){SZN.Events.cancelDef(e);var delta=e.wheelDelta||e.detail;if(SZN.Browser.client=="gecko"){delta=-delta;}if(delta>0){this.owner.previous();}else{this.owner.next();}};SZN.LightBox.Main.prototype.update=function(i){this.width=parseInt(this.dom.mainBox.clientWidth);this.height=parseInt(this.dom.mainBox.clientHeight);var imgObj=this.owner.data[i];if(imgObj.flash){this._generateFlashElm(imgObj);}else{this._generateImgElm(imgObj);}};SZN.LightBox.Main.prototype._generateFlashElm=function(img){var em=SZN.cEl("embed");em.setAttribute("quality","high");em.setAttribute("pluginspage","http://www.macromedia.com/go/getflashplayer");em.setAttribute("type","application/x-shockwave-flash");em.setAttribute("width",img.width?img.width:this.width);em.setAttribute("height",img.height?img.height:this.height);em.setAttribute("allowfullscreen","true");em.setAttribute("src",img.big.url);em.setAttribute("flashvars",img.flash);em.style.visibility="hidden";this.dom.mainBox.appendChild(em);this._switchImages(em);};SZN.LightBox.Main.prototype._generateImgElm=function(img){var em=SZN.cEl("img");em.style.visibility="hidden";em.src=img.big.url;this.dom.mainBox.appendChild(em);this._switchImages(em);};SZN.LightBox.Main.prototype._switchImages=function(newImg){var c=this.current;this.current=newImg;var cName=(c?c.nodeName.toLowerCase():false);var newImgName=(newImg?newImg.nodeName.toLowerCase():false);if(cName=="embed"||newImgName=="embed"){this.owner.dummyTransition.start(c,newImg);}else{this.owner.transition.start(c,newImg);}};SZN.LightBox.Main.Scaled=SZN.ClassMaker.makeClass({"NAME":"SZN.LightBox.Main.Scaled","VERSION":"1.0","CLASS":"class","EXTEND":SZN.LightBox.Main});SZN.LightBox.Main.Scaled.prototype._generateImgElm=function(img){var em=SZN.cEl("img");em.height=this.height;em.width=this.width;em.style.visibility="hidden";em.style.position="absolute";em.src=img.big.url;this.dom.mainBox.appendChild(em);this._switchImages(em);};SZN.LightBox.Main.CenteredScaled=SZN.ClassMaker.makeClass({"NAME":"SZN.LightBox.Main.CenteredScaled","VERSION":"1.0","CLASS":"class","EXTEND":SZN.LightBox.Main});SZN.LightBox.Main.CenteredScaled.prototype.$constructor=function(owner){this.callSuper("$constructor",arguments.callee)(owner);this.scaledImage=null;};SZN.LightBox.Main.CenteredScaled.prototype._generateImgElm=function(img){var em=new SZN.LightBox.ScaledImage(this,img.big.url,this.width,this.height,this.dom.mainBox);em.render();if(this.scaledImage){this.scaledImage.$destructor();this.scaledImage=null;}this.scaledImage=em;};SZN.LightBox.Main.CenteredScaled.prototype._generateFlashElm=function(img){this.callSuper("_generateFlashElm",arguments.callee)(img);if(img.width||img.height){this.current.style.position="absolute";var w=img.width?img.width:this.width;var h=img.height?img.height:this.height;var pw=this.current.parentNode.clientWidth;var ph=this.current.parentNode.clientHeight;this.current.style.top=Math.round((ph-h)/2)+"px";this.current.style.left=Math.round((pw-w)/2)+"px";}};SZN.LightBox.Transition=SZN.ClassMaker.makeClass({"NAME":"SZN.LightBox.Transition","VERSION":"1.0","CLASS":"class"});SZN.LightBox.Transition.prototype.$constructor=function(owner){this.owner=owner;this.options=owner.options.transitionOpt;};SZN.LightBox.Transition.prototype.$destructor=function(){};SZN.LightBox.Transition.prototype.start=function(firstElm,secondElm){this.first=firstElm;this.second=secondElm;this._finish();};SZN.LightBox.Transition.prototype._finish=function(){this.second.style.visibility="visible";if(this.first){this.first.parentNode.removeChild(this.first);}this.first=null;this.second=null;this.owner.createEvent(this,"transitionDone");};SZN.LightBox.Transition.Fade=SZN.ClassMaker.makeClass({"NAME":"SZN.LightBox.Transition.Fade","VERSION":"1.0","CLASS":"class","EXTEND":SZN.LightBox.Transition});SZN.LightBox.Transition.Fade.prototype.$constructor=function(owner){this.options={"interval":400,"frequency":25,"overlap":1};this.owner=owner;for(var p in owner.options.transitionOpt){this.options[p]=owner.options.transitionOpt[p];}this.running1=false;this.running2=false;this._secondOpacity=0;this._step1=SZN.bind(this,this._step1);this._step2=SZN.bind(this,this._step2);this._finish=SZN.bind(this,this._finish);this.i1=new SZN.Interpolator(1,0,this.options.interval,this._step1,{"frequency":this.options.frequency});this.i2=new SZN.Interpolator(0,1,this.options.interval,this._step2,{"frequency":this.options.frequency,"endCallback":this._finish});};SZN.LightBox.Transition.Fade.prototype.start=function(oldElm,newElm){if(this.running1||this.running2){this.second.parentNode.removeChild(this.second);this.second=newElm;this._setOpacity(this.second,this._secondOpacity);this.second.style.visibility="visible";}else{this.first=oldElm;this.second=newElm;this._secondOpacity=0;this._setOpacity(this.second,0);this.second.style.visibility="visible";if(this.first){this.running1=true;this.i1.start();}else{this._start2();}}};SZN.LightBox.Transition.Fade.prototype._start2=function(){this.running2=true;this.i2.start();};SZN.LightBox.Transition.Fade.prototype._step1=function(value){if(!this.first){return;}this._setOpacity(this.first,value);if(!this.running2&&value<=this.options.overlap){this._start2();}};SZN.LightBox.Transition.Fade.prototype._step2=function(value){this._secondOpacity=value;this._setOpacity(this.second,value);};SZN.LightBox.Transition.Fade.prototype._finish=function(){this.running1=false;this.running2=false;this.callSuper("_finish",arguments.callee)();};SZN.LightBox.Transition.Fade.prototype._setOpacity=function(node,value){node.style.opacity=value;node.style.filter="alpha(opacity="+Math.round(value*100)+")";};SZN.LightBox.ScaledImage=SZN.ClassMaker.makeClass({"NAME":"SZN.LightBox.ScaledImage","VERSION":"1.0","CLASS":"class"});SZN.LightBox.ScaledImage.prototype.$constructor=function(owner,src,w,h,rootElm){this.owner=owner;this.w=w;this.h=h;this.src=src;this.rootElm=rootElm;this.ec=[];this.dom={};};SZN.LightBox.ScaledImage.prototype.render=function(){this.dom.elm=SZN.cEl("img");this.dom.container=SZN.cEl("div",false,false,{"position":"absolute","left":"-1000px","top":"-1000px","width":"1px","height":"1px","overflow":"hidden"});this.ec.push(SZN.Events.addListener(this.dom.elm,"load",this,"_loaded",false,true));document.body.insertBefore(this.dom.container,document.body.firstChild);this.dom.container.appendChild(this.dom.elm);this.dom.elm.src=this.src;};SZN.LightBox.ScaledImage.prototype.$destructor=function(){for(var i=0;i<this.ec.length;i++){SZN.Events.removeListener(this.ec[i]);}for(var p in this.dom){this.dom[p]=null;}for(var p in this){this[p]=null;}};SZN.LightBox.ScaledImage.prototype._loaded=function(e,elm){var w=this.dom.elm.width;var h=this.dom.elm.height;var ratio_w=w/this.w;var ratio_h=h/this.h;var max=Math.max(ratio_w,ratio_h);if(max>1){w=w/max;h=h/max;if(w&&h){this.dom.elm.width=Math.ceil(w);this.dom.elm.height=Math.ceil(h);}}var pw=this.rootElm.clientWidth;var ph=this.rootElm.clientHeight;this.dom.elm.style.position="absolute";this.dom.elm.style.visibility="hidden";this.dom.elm.style.top=Math.round((ph-h)/2)+"px";this.dom.elm.style.left=Math.round((pw-w)/2)+"px";if(this.rootElm){this.rootElm.appendChild(this.dom.elm);}if(this.dom.container){this.dom.container.parentNode.removeChild(this.dom.container);this.dom.container=false;}this.owner.owner.createEvent(this,"mainImageLoaded");this.owner._switchImages(this.dom.elm);};SZN.LightBox.PageShader=SZN.ClassMaker.makeClass({"NAME":"SZN.LightBox.PageShader","VERSION":"1.0","CLASS":"class","IMPLEMENT":[SZN.SigInterface]});SZN.LightBox.PageShader.prototype.$constructor=function(owner){this.owner=owner;this.dom={};this.addListener("showed","_show",this.owner);this.addListener("close","_hide",this.owner);this.addListener("windowResize","_resize",this.owner);};SZN.LightBox.PageShader.prototype.$destructor=function(){for(p in this.dom){this.dom[p]=null;}for(p in this){this[p]=null;}};SZN.LightBox.PageShader.prototype._show=function(){this.dom.root=SZN.cEl("div",false,"image-browser-root",{"position":"absolute","left":"0px","top":"0px","zIndex":10000});var docSize=SZN.Dom.getDocSize();var docH=document.compatMode=="BackCompat"?document.body.scrollHeight:document.body.offsetHeight;var docW=document.compatMode=="BackCompat"?document.body.scrollWidth:document.body.offsetWidth;this.dom.root.style.width=(docSize.width>docW?docSize.width:docW)+"px";this.dom.root.style.height=(docSize.height>docH?docSize.height:docH)+"px";if(this.owner.options.zIndex){this.dom.root.style.zIndex=this.owner.options.zIndex-1;}var parent=this.owner.dom.container.parentNode;var nextSibling=this.owner.dom.container.nextSibling;parent.insertBefore(this.dom.root,nextSibling);SZN.Dom.elementsHider(this.dom.root,false,"hide");};SZN.LightBox.PageShader.prototype._hide=function(){if(this.dom.root&&this.dom.root.parentNode){SZN.Dom.elementsHider(this.dom.root,false,"hide");this.dom.root.parentNode.removeChild(this.dom.root);}this.dom.root=null;};SZN.LightBox.PageShader.prototype._resize=function(){this._hide();this._show();};SZN.LightBox.Strip=SZN.ClassMaker.makeClass({"NAME":"SZN.LightBox.Strip","VERSION":"1.0","CLASS":"class"});SZN.LightBox.Strip.prototype.$constructor=function(owner){this.owner=owner;this.options=this.owner.options.stripOpt;this.dom={};};SZN.LightBox.Strip.prototype.$destructor=function(){for(p in this.dom){this.dom[p]=null;}for(p in this){this[p]=null;}};SZN.LightBox.Strip.prototype.render=function(){this.dom.mainBox=SZN.cEl("div",this.options.id,this.options.className);return this.dom.mainBox;};SZN.LightBox.Strip.prototype.update=function(index){};SZN.LightBox.Strip.Scrollable=SZN.ClassMaker.makeClass({"NAME":"SZN.LightBox.Strip.Scrollable","VERSION":"1.0","CLASS":"class","EXTEND":SZN.LightBox.Strip});SZN.LightBox.Strip.Scrollable.prototype.$constructor=function(owner){this.callSuper("$constructor",arguments.callee)(owner);this.objCache=[];this.ec=[];this.activeBorder={};};SZN.LightBox.Strip.Scrollable.prototype.$destructor=function(){for(var i=0;i<this.objCache.length;i++){this.objCache[i].$destructor();this.objCache[i]=null;}for(var i=0;i<this.ec.length;i++){SZN.Events.removeListener(this.ec[i]);}this.callSuper("$destructor",arguments.callee)();};SZN.LightBox.Strip.Scrollable.prototype.render=function(){this.callSuper("render",arguments.callee)();this.owner.dom.content.appendChild(this.dom.mainBox);this.dom.mainBox.style.position="relative";this.dom.imageBox=SZN.cEl("div");this.dom.mainBox.appendChild(this.dom.imageBox);this.dom.imageTable=SZN.cEl("table");this.dom.imageTable.style.borderCollapse="collapse";var tbody=SZN.cEl("tbody");this.dom.imageTable.appendChild(tbody);this.dom.imageBox.appendChild(this.dom.imageTable);for(var i=0;i<this.owner.data.length;i++){if(this.options.orientation=="vertical"){var tr=SZN.cEl("tr");var td=SZN.cEl("td");tr.appendChild(td);td.align="center";td.vAlign="center";tbody.appendChild(tr);}else{if(i==0){var tr=SZN.cEl("tr");}var td=SZN.cEl("td");td.align="center";td.vAlign="center";tr.appendChild(td);if(i==this.owner.data.length-1){tbody.appendChild(tr);}}var div=SZN.cEl("div",false,this.options.imageBoxClassName);div.style.position="relative";td.style.padding="0px";td.appendChild(div);}var elms=SZN.Dom.arrayFromCollection(tbody.getElementsByTagName("div"));for(var i=0;i<this.owner.data.length;i++){var stripImg=new SZN.LightBox.StripImage(this.owner,this.options,this.owner.data[i],i);stripImg.render(elms[i]);this.objCache.push(stripImg);}this.dom.active=SZN.cEl("div",this.options.activeId,this.options.activeClassName);this.dom.active.style.position="absolute";this.dom.mainBox.appendChild(this.dom.active);this.activeBorder.top=parseInt(SZN.Dom.getStyle(this.dom.active,"borderTopWidth"));this.activeBorder.bottom=parseInt(SZN.Dom.getStyle(this.dom.active,"borderBottomWidth"));this.activeBorder.left=parseInt(SZN.Dom.getStyle(this.dom.active,"borderLeftWidth"));this.activeBorder.right=parseInt(SZN.Dom.getStyle(this.dom.active,"borderRightWidth"));this.dom.mainBox.removeChild(this.dom.active);this._addEvents();return this.dom.mainBox;};SZN.LightBox.Strip.Scrollable.prototype._addEvents=function(){if(this.options.orientation=="horizontal"){this.ec.push(SZN.Events.addListener(this.dom.mainBox,"DOMMouseScroll",this,"_scroll"));this.ec.push(SZN.Events.addListener(this.dom.mainBox,"mousewheel",this,"_scroll"));}};SZN.LightBox.Strip.Scrollable.prototype._scroll=function(e,elm){SZN.Events.cancelDef(e);var delta=e.wheelDelta||e.detail;if(SZN.Browser.client=="gecko"){delta=-delta;}if(delta>0){this.dom.mainBox.scrollLeft-=30;}else{this.dom.mainBox.scrollLeft+=30;}};SZN.LightBox.Strip.Scrollable.prototype.update2=function(index){this.dom.active.style.position="absolute";var pos=SZN.Dom.getBoxPosition(this.objCache[index].dom.img.parentNode,this.dom.imageTable);var borderTop=parseInt(SZN.Dom.getStyle(this.dom.active,"borderTopWidth"));var borderBottom=parseInt(SZN.Dom.getStyle(this.dom.active,"borderBottomWidth"));var borderLeft=parseInt(SZN.Dom.getStyle(this.dom.active,"borderLeftWidth"));var borderRight=parseInt(SZN.Dom.getStyle(this.dom.active,"borderRightWidth"));if(this.options.activeBorder=="inner"){this.dom.active.style.top=pos.top+"px";this.dom.active.style.left=pos.left+"px";this.dom.active.style.width=(this.objCache[index].dom.img.parentNode.offsetWidth-(!isNaN(borderLeft)?borderLeft:0)-(!isNaN(borderRight)?borderRight:0))+"px";this.dom.active.style.height=(this.objCache[index].dom.img.parentNode.offsetHeight-(!isNaN(borderTop)?borderTop:0)-(!isNaN(borderBottom)?borderBottom:0))+"px";}else{this.dom.active.style.top=(pos.top-(!isNaN(borderLeft)?borderLeft:0))+"px";this.dom.active.style.left=(pos.left-(!isNaN(borderTop)?borderTop:0))+"px";this.dom.active.style.width=(this.objCache[index].dom.img.parentNode.offsetWidth)+"px";this.dom.active.style.height=(this.objCache[index].dom.img.parentNode.offsetHeight)+"px";}if(this.options.orientation=="vertical"){var a=SZN.Dom.getBoxPosition(this.objCache[index].dom.img.parentNode,this.dom.mainBox);var b=parseInt(SZN.Dom.getStyle(this.dom.mainBox,"height"))/2;var c=parseInt(SZN.Dom.getStyle(this.objCache[index].dom.img.parentNode,"height"))/2;var scroll=a.top-b+c;this.dom.mainBox.scrollTop=Math.round(scroll);}else{var a=SZN.Dom.getBoxPosition(this.objCache[index].dom.img.parentNode,this.dom.mainBox);var b=parseInt(SZN.Dom.getStyle(this.dom.mainBox,"width"))/2;var c=parseInt(SZN.Dom.getStyle(this.objCache[index].dom.img.parentNode,"width"))/2;var scroll=a.left-b+c;this.dom.mainBox.scrollLeft=Math.round(scroll);}};SZN.LightBox.Strip.Scrollable.prototype.update=function(index){if(this.options.activeBorder=="inner"){this.dom.active.style.left="0px";this.dom.active.style.top="0px";this.dom.active.style.width=(this.objCache[index].dom.img.parentNode.offsetWidth-(!isNaN(this.activeBorder.left)?this.activeBorder.left:0)-(!isNaN(this.activeBorder.right)?this.activeBorder.right:0))+"px";this.dom.active.style.height=(this.objCache[index].dom.img.parentNode.offsetHeight-(!isNaN(this.activeBorder.top)?this.activeBorder.top:0)-(!isNaN(this.activeBorder.bottom)?this.activeBorder.bottom:0))+"px";}else{this.dom.active.style.left=-(!isNaN(this.activeBorder.left)?this.activeBorder.left:0)+"px";this.dom.active.style.top=-(!isNaN(this.activeBorder.top)?this.activeBorder.top:0)+"px";this.dom.active.style.width=(this.objCache[index].dom.img.parentNode.clientWidth)+"px";this.dom.active.style.height=(this.objCache[index].dom.img.parentNode.clientHeight)+"px";}this.objCache[index].dom.img.parentNode.appendChild(this.dom.active);if(this.options.orientation=="vertical"){var a=SZN.Dom.getBoxPosition(this.objCache[index].dom.img.parentNode,this.dom.mainBox);var b=parseInt(SZN.Dom.getStyle(this.dom.mainBox,"height"))/2;var c=parseInt(SZN.Dom.getStyle(this.objCache[index].dom.img.parentNode,"height"))/2;var scroll=a.top-b+c;this.dom.mainBox.scrollTop=Math.round(scroll);}else{var a=SZN.Dom.getBoxPosition(this.objCache[index].dom.img.parentNode,this.dom.mainBox);var b=parseInt(SZN.Dom.getStyle(this.dom.mainBox,"width"))/2;var c=parseInt(SZN.Dom.getStyle(this.objCache[index].dom.img.parentNode,"width"))/2;var scroll=a.left-b+c;this.dom.mainBox.scrollLeft=Math.round(scroll);}};SZN.LightBox.StripImage=SZN.ClassMaker.makeClass({"NAME":"SZN.LightBox.StripImage","VERSION":"1.0","CLASS":"class"});SZN.LightBox.StripImage.prototype.$constructor=function(mainOwner,options,data,order){this.mainOwner=mainOwner;this.data=data;this.options=options;this.order=order;this.dom={};this.ec=[];};SZN.LightBox.StripImage.prototype.$destructor=function(){for(var i=0;i<this.ec.length;i++){SZN.Events.removeListener(this.ec[i]);}};SZN.LightBox.StripImage.prototype.render=function(elm){this.dom.parentNode=elm;this.dom.tmpBox=SZN.cEl("div",false,false,{"position":"absolute","top":"-100px","left":"-100px","width":"1px","height":"1px","overflow":"hidden"});var body=document.getElementsByTagName("body")[0];body.insertBefore(this.dom.tmpBox,body.firstChild);this.dom.img=SZN.cEl("img");this.dom.tmpBox.appendChild(this.dom.img);this.ec.push(SZN.Events.addListener(this.dom.img,"load",this,"_loaded"));this.dom.img.src=this.data.small.url;this.dom.img.alt=this.data.alt;this.ec.push(SZN.Events.addListener(elm,"click",this,"_click"));};SZN.LightBox.StripImage.prototype._click=function(e,elm){this.mainOwner.go(this.order);};SZN.LightBox.StripImage.prototype._loaded=function(e,elm){var w=elm.width;var h=elm.height;this.dom.img.style.display="none";this.dom.parentNode.appendChild(this.dom.img);this.dom.tmpBox.parentNode.removeChild(this.dom.tmpBox);this.dom.tmpBox=null;var boxW=parseInt(this.dom.img.parentNode.clientWidth);var boxH=parseInt(this.dom.img.parentNode.clientHeight);var ratio_w=w/boxW;var ratio_h=h/boxH;var max=Math.max(ratio_w,ratio_h);if(max>1){w=Math.floor(w/max);h=Math.floor(h/max);if(w&&h){this.dom.img.width=w;this.dom.img.height=h;}}var ph=this.dom.parentNode.clientHeight;this.dom.img.style.marginTop=Math.round((ph-h)/2)+"px";this.dom.img.parentNode.textAlign="center";this.dom.img.style.display="";};SZN.LightBox.Description=SZN.ClassMaker.makeClass({"NAME":"SZN.LightBox.Description","VERSION":"1.0","CLASS":"class"});SZN.LightBox.Description.prototype.$constructor=function(owner){this.owner=owner;this.options=owner.options.descriptionOpt;this.dom={};};SZN.LightBox.Description.prototype.$destructor=function(){for(var p in this.dom){this.dom[p]=null;}for(var p in this){this[p]=null;}};SZN.LightBox.Description.prototype.render=function(){this.dom.box=SZN.cEl("div",this.options.id,this.options.className);return this.dom.box;};SZN.LightBox.Description.prototype.update=function(index){};SZN.LightBox.Description.Basic=SZN.ClassMaker.makeClass({"NAME":"SZN.LightBox.Description.Basic","VERSION":"1.0","CLASS":"class","EXTEND":SZN.LightBox.Description});SZN.LightBox.Description.Basic.prototype.render=function(){this.callSuper("render",arguments.callee)();this.dom.content=SZN.cEl("div",this.options.contentId,this.options.contentClassName);this.dom.box.appendChild(this.dom.content);return this.dom.box;};SZN.LightBox.Description.Basic.prototype.update=function(index){if(this.owner.data[index].description){this.dom.content.innerHTML=this.owner.data[index].description;}};SZN.LightBox.Navigation=SZN.ClassMaker.makeClass({"NAME":"SZN.LightBox.Navigation","VERSION":"1.0","CLASS":"class"});SZN.LightBox.Navigation.prototype.$constructor=function(owner){this.owner=owner;this.options=owner.options.navigationOpt;this.dom={};this.ec=[];};SZN.LightBox.Navigation.prototype.$destructor=function(){for(var p in this.dom){this.dom[p]=null;}for(var i=0;i<this.ec.length;i++){SZN.Events.removeListener(this.ec[i]);}for(var p in this){this[p]=null;}};SZN.LightBox.Navigation.prototype.render=function(){return SZN.cEl("div",this.options.id,this.options.className);};SZN.LightBox.Navigation.prototype.update=function(index){};SZN.LightBox.Navigation.Basic=SZN.ClassMaker.makeClass({"NAME":"SZN.LightBox.Navigation.Basic","VERSION":"1.0","CLASS":"class","EXTEND":SZN.LightBox.Navigation});SZN.LightBox.Navigation.Basic.prototype.render=function(){this.dom.next=SZN.cEl("a",this.options.nextId,this.options.nextClassName);this.dom.prev=SZN.cEl("a",this.options.prevId,this.options.prevClassName);this.dom.nextDisabled=SZN.cEl("a",this.options.nextId?this.options.nextId+"-disabled":false,this.options.nextClassName+"-disabled");this.dom.prevDisabled=SZN.cEl("a",this.options.prevId?this.options.prevId+"-disabled":false,this.options.prevClassName+"-disabled");this.dom.close=SZN.cEl("a",this.options.closeId,this.options.closeClassName);this.dom.next.href="#";this.dom.prev.href="#";this.dom.nextDisabled.href="#";this.dom.prevDisabled.href="#";this.dom.close.href="#";this.dom.nextPreload=SZN.cEl("div",this.options.nextId?this.options.nextId+"-preload":false,this.options.nextClassName+"-preload",{"position":"absolute","visibility":"hidden","height":"1px","width":"1px"});this.dom.nextDisabledPreload=SZN.cEl("div",this.options.nextId?this.options.nextId+"-disabled-preload":false,this.options.nextClassName+"-disabled-preload",{"position":"absolute","visibility":"hidden","height":"1px","width":"1px"});this.dom.prevPreload=SZN.cEl("div",this.options.prevId?this.options.prevId+"-preload":false,this.options.prevClassName+"-preload",{"position":"absolute","visibility":"hidden","height":"1px","width":"1px"});this.dom.prevDisabledPreload=SZN.cEl("div",this.options.prevId?this.options.prevId+"-disabled-preload":false,this.options.prevClassName+"-disabled-preload",{"position":"absolute","visibility":"hidden","height":"1px","width":"1px"});this.dom.closePreload=SZN.cEl("div",this.options.closeId?this.options.closeId+"-preload":false,this.options.closeClassName+"-preload",{"position":"absolute","visibility":"hidden","height":"1px","width":"1px"});this._addEvents();var div=SZN.cEl("div",this.options.id,this.options.className);SZN.Dom.append([div,this.dom.next,this.dom.nextDisabled,this.dom.prev,this.dom.prevDisabled,this.dom.close]);SZN.Dom.append([div,this.dom.nextPreload,this.dom.nextDisabledPreload,this.dom.prevPreload,this.dom.prevDisabledPreload,this.dom.closePreload]);return div;};SZN.LightBox.Navigation.Basic.prototype._addEvents=function(){this.ec.push(SZN.Events.addListener(this.dom.next,"click",this,"_next"));this.ec.push(SZN.Events.addListener(this.dom.prev,"click",this,"_previous"));this.ec.push(SZN.Events.addListener(this.dom.close,"click",this,"_close"));this.ec.push(SZN.Events.addListener(document,"keydown",this,"_closeKey"));this.ec.push(SZN.Events.addListener(this.dom.nextDisabled,"click",this,"_disabled"));this.ec.push(SZN.Events.addListener(this.dom.prevDisabled,"click",this,"_disabled"));};SZN.LightBox.Navigation.Basic.prototype._disabled=function(e,elm){elm.blur();SZN.Events.cancelDef(e);};SZN.LightBox.Navigation.Basic.prototype._close=function(e,elm){elm.blur();SZN.Events.cancelDef(e);SZN.Events.stopEvent(e);this.owner.close();};SZN.LightBox.Navigation.Basic.prototype._next=function(e,elm){elm.blur();SZN.Events.cancelDef(e);this.owner.next();};SZN.LightBox.Navigation.Basic.prototype._previous=function(e,elm){elm.blur();SZN.Events.cancelDef(e);this.owner.previous();};SZN.LightBox.Navigation.Basic.prototype._closeKey=function(e,elm){if(e.keyCode==27){this.owner.close();}};SZN.LightBox.Navigation.Basic.prototype.update=function(index){if(!this.options.continuous){this.dom.prev.style.display="";this.dom.next.style.display="";this.dom.prevDisabled.style.display="none";this.dom.nextDisabled.style.display="none";if(index==0){this.dom.prev.style.display="none";if(this.options.showDisabled){this.dom.prevDisabled.style.display="";}}if(index==this.owner.data.length-1){this.dom.next.style.display="none";if(this.options.showDisabled){this.dom.nextDisabled.style.display="";}}}else{this.dom.prevDisabled.style.display="none";this.dom.nextDisabled.style.display="none";this.dom.prev.style.display="";this.dom.next.style.display="";}};}
 /*-----------------slideshow-----------------------*/
 SZN.SlideShow = SZN.ClassMaker.makeClass({
 	NAME: 'SZN.SlideShow',
 	VERSION: '1.0',
 	CLASS: 'class',
 	IMPLEMENT: [SZN.SigInterface]
 });

 SZN.SlideShow.prototype.$constructor = function(owner, name, settings) {
 	this.owner = owner;
 	this.options = {
 		duration : 2,
 		autoplay: false,
 		id : false,
 		className: 'image-browser-slideshow',
 		pauseId: false,
 		pauseClassName: 'image-browser-slideshow-pause',
 		playId: false,
 		playClassName: 'image-browser-slideshow-play'
 	};
 	/*prepsani vychoziho nastaveni z uziv. konfigurace*/
	for (var p in settings) { this.options[p] = settings[p]; }
 	/*interval pro animaci*/
 	this.interval = null;
 	/*zbindovani metody pro pouziti v intervalu*/
 	this._timeoutDone = SZN.bind(this, this._timeoutDone);
 	/*uschovna DOM elementu*/
 	this.dom = {};

 	this._addEvents();
 	this._render();
 	/*schovani jednoho z tlacitek*/
 	this.options.autoplay ? this._hidePlay() : this._hidePause();
 };

 SZN.SlideShow.prototype.$destructor = function(){
 	this.removeListener('close', '_stop', this.owner);
 	this.removeListener('transitionDone', '_next', this.owner);

 	for (var i in this) {
 		this[i] = null;
 	}
 };

 SZN.SlideShow.prototype._addEvents = function() {
 	if (this.options.autoplay) {
 		this.addListener('transitionDone', '_next', this.owner);
 	}
 	this.addListener('close', '_stop', this.owner);
 };

 SZN.SlideShow.prototype._render = function() {
 	var c = SZN.cEl('div', this.options.id, this.options.className);

 	var pause = SZN.cEl('a', this.options.pauseId, this.options.pauseClassName);
 	pause.href = '#';
 	c.appendChild(pause);

 	var play = SZN.cEl('a', this.options.playId, this.options.playClassName);
 	play.href = '#';
 	c.appendChild(play);

 	SZN.Events.addListener(pause, 'click', this, '_stopClick');
 	SZN.Events.addListener(play, 'click', this, '_playClick');

 	this.dom.pause = pause;
 	this.dom.play = play;

 	this.owner.dom.content.appendChild(c);
 };

 /**
  * metoda spustena pri kliku na tlacitko pause
  * @param {event} e
  * @param {HTMLelement} elm
  */
 SZN.SlideShow.prototype._stopClick = function(e, elm) {
 	SZN.Events.cancelDef(e);
 	this.removeListener('transitionDone', '_next', this.owner);
 	this._hidePause();
 	this._stop();
 };

 /**
  * metoda spustena pri kliku na tlacitko play
  * @param {event} e
  * @param {HTMLelement} elm
  */
 SZN.SlideShow.prototype._playClick = function(e, elm) {
 	SZN.Events.cancelDef(e);
 	this.addListener('transitionDone', '_next', this.owner);
 	this._hidePlay();
 	this._next();
 };

 /**
  * zastaveni slideshow
  */
 SZN.SlideShow.prototype._stop = function() {
 	clearTimeout(this.interval);
 };

 /**
  * spusteni slideshow
  */
 SZN.SlideShow.prototype._next = function() {
 	this.interval = setTimeout(this._timeoutDone, this.options.duration*1000);
 };

 /**
  * schovani tlacitka play, zobrazeni pause
  */
 SZN.SlideShow.prototype._hidePlay = function() {
 	this.dom.play.style.display = 'none';
 	this.dom.pause.style.display = '';
 };

 /**
  * schovani tlacitka pause, zobrazeni play
  */
 SZN.SlideShow.prototype._hidePause = function() {
 	this.dom.play.style.display = '';
 	this.dom.pause.style.display = 'none';
 };

 /**
  * metoda volana timeoutem, ktery je nastaven v metode _next
  * zde je vlastni posunuti na dalsi obrazek
  */
 SZN.SlideShow.prototype._timeoutDone = function() {
 	clearTimeout(this.interval);
 	this.owner.next();
 };

 /*-----------------------------*/
 


{SZN.Window=SZN.ClassMaker.makeClass({"NAME":"Window","VERSION":"1.0","CLASS":"class"});SZN.Window.prototype.$constructor=function(optObj){this.options={"imagePath":"/img/shadow-","imageFormat":"png","sizes":[6,6,6,6]};for(var p in optObj){this.options[p]=optObj[p];}this.content=SZN.cEl("div",false,"window-content",{"position":"relative"});;this.container=false;this._buildDom();};SZN.Window.prototype._buildDom=function(){var imageNames=[["lt","t","rt"],["l","","r"],["lb","b","rb"]];this.container=SZN.cEl("div",false,"window-container",{"position":"relative","zIndex":10000});var table=SZN.cEl("table",false,false,{"borderCollapse":"collapse","position":"relative"});var tbody=SZN.cEl("tbody");SZN.Dom.append([table,tbody],[this.container,table]);for(var i=0;i<3;i++){var tr=SZN.cEl("tr");tbody.appendChild(tr);for(var j=0;j<3;j++){var td=SZN.cEl("td");td.style.padding="0px";td.style.margin="0px";var div=(i==1&&j==1?this.content:SZN.cEl("div",false,false,{"overflow":"hidden"}));td.appendChild(div);var im=imageNames[i][j];if(im){var path=this.options.imagePath+im+"."+this.options.imageFormat;if(SZN.Browser.klient=="ie"&&this.options.imageFormat.match(/png/i)){td.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+path+"',sizingMethod='scale')";}else{td.style.backgroundImage="url("+path+")";}}if(i==0){div.style.height=this.options.sizes[0]+"px";}if(i==2){div.style.height=this.options.sizes[2]+"px";}if(j==0){div.style.width=this.options.sizes[3]+"px";}if(j==2){div.style.width=this.options.sizes[1]+"px";}if(j==1&&i!=1){td.style.width="auto";}tr.appendChild(td);}}};SZN.Window.prototype.$destructor=function(){for(var p in this){this[p]=null;}};SZN.Window.prototype.show=function(){this.container.style.display="";};SZN.Window.prototype.hide=function(){this.container.style.display="none";};}
/*
Licencováno pod MIT Licencí

© 2008 Seznam.cz, a.s.

Tímto se uděluje bezúplatná nevýhradní licence k oprávnění užívat Software,
časově i místně neomezená, v souladu s příslušnými ustanoveními autorského zákona.

Nabyvatel/uživatel, který obdržel kopii tohoto softwaru a další přidružené 
soubory (dále jen „software“) je oprávněn k nakládání se softwarem bez 
jakýchkoli omezení, včetně bez omezení práva software užívat, pořizovat si 
z něj kopie, měnit, sloučit, šířit, poskytovat zcela nebo zčásti třetí osobě 
(podlicence) či prodávat jeho kopie, za následujících podmínek:

- výše uvedené licenční ujednání musí být uvedeno na všech kopiích nebo 
podstatných součástech Softwaru.

- software je poskytován tak jak stojí a leží, tzn. autor neodpovídá 
za jeho vady, jakož i možné následky, ledaže věc nemá vlastnost, o níž autor 
prohlásí, že ji má, nebo kterou si nabyvatel/uživatel výslovně vymínil.



Licenced under the MIT License

Copyright (c) 2008 Seznam.cz, a.s.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/{SZN.Interpolator=SZN.ClassMaker.makeClass({"NAME":"Interpolator","VERSION":"1.0","CLASS":"class"});SZN.Interpolator.LINEAR=1;SZN.Interpolator.QUADRATIC=2;SZN.Interpolator.SQRT=3;SZN.Interpolator.SIN=4;SZN.Interpolator.ASIN=5;SZN.Interpolator.prototype.$constructor=function(startVal,endVal,interval,callback,options){this.startVal=startVal;this.endVal=endVal;this.interval=interval;this.callback=callback;this.options={"interpolation":SZN.Interpolator.LINEAR,"frequency":20,"endCallback":false};this.running=false;this._tick=SZN.bind(this,this._tick);for(var p in options){this.options[p]=options[p];}};SZN.Interpolator.prototype._call=function(frac){var result=this._interpolate(frac);var delta=this.endVal-this.startVal;this.callback(this.startVal+delta*result);};SZN.Interpolator.prototype._interpolate=function(val){if(typeof (this.options.interpolation)=="function"){return this.options.interpolation(val);}switch(this.options.interpolation){case SZN.Interpolator.QUADRATIC:return val*val;case SZN.Interpolator.SQRT:return Math.sqrt(val);case SZN.Interpolator.SIN:return (Math.sin(Math.PI*(val-0.5))+1)/2;case SZN.Interpolator.ASIN:return (Math.asin(2*(val-0.5))+Math.PI/2)/Math.PI;default:return val;}};SZN.Interpolator.prototype.start=function(){if(this.running){return;}this.running=true;this.startTime=(new Date()).getTime();this._call(0);this.handle=setInterval(this._tick,this.options.frequency);};SZN.Interpolator.prototype.stop=function(){if(!this.running){return;}this.running=false;clearInterval(this.handle);};SZN.Interpolator.prototype._tick=function(){var now=(new Date()).getTime();var elapsed=now-this.startTime;if(elapsed>=this.interval){this.stop();this._call(1);if(this.options.endCallback){this.options.endCallback();}}else{this._call(elapsed/this.interval);}};SZN.CSSInterpolator=SZN.ClassMaker.makeClass({"NAME":"CSSInterpolator","VERSION":"1.0","CLASS":"class"});SZN.CSSInterpolator.prototype.$constructor=function(elm,interval,options){this.elm=elm;this.properties=[];this.colors=[];this._tick=SZN.bind(this,this._tick);this.interpolator=new SZN.Interpolator(0,1,interval,this._tick,options);};SZN.CSSInterpolator.prototype.addProperty=function(property,startVal,endVal,suffix){var o={"property":property,"startVal":startVal,"endVal":endVal,"suffix":suffix||""};this.properties.push(o);};SZN.CSSInterpolator.prototype.addColorProperty=function(property,startVal,endVal){var o={"startVal":SZN.Parser.color(startVal),"endVal":SZN.Parser.color(endVal),"property":property};this.colors.push(o);};SZN.CSSInterpolator.prototype.start=function(){this.interpolator.start();};SZN.CSSInterpolator.prototype.stop=function(){this.interpolator.stop();};SZN.CSSInterpolator.prototype._tick=function(frac){for(var i=0;i<this.properties.length;i++){var prop=this.properties[i];var val=prop.startVal+frac*(prop.endVal-prop.startVal);val+=prop.suffix;this.elm.style[prop.property]=val;}var names=["r","g","b"];for(var i=0;i<this.colors.length;i++){var c=this.colors[i];var out=[0,0,0];for(var j=0;j<names.length;j++){var name=names[j];out[j]=c.startVal[name]+Math.round(frac*(c.endVal[name]-c.startVal[name]));}var result="rgb("+out.join(",")+")";this.elm.style[c.property]=result;}};}
/*------------------------------------------------------------------------
# JA Opal for Joomla 1.5 - Version 1.0 - Licence Owner jSharing.com
# ------------------------------------------------------------------------
# Copyright (C) 2004-2008 J.O.O.M Solutions Co., Ltd. All Rights Reserved.
# @license - Copyrighted Commercial Software
# Author: J.O.O.M Solutions Co., Ltd
# Websites:  http://www.joomlart.com -  http://www.joomlancers.com
# This file may not be redistributed in whole or significant part.
-------------------------------------------------------------------------*/
if (typeof(MooTools) != 'undefined'){

		var subnav = new Array();

		Element.extend(
		{
			hide: function(timeout) 
			{
				this.status = 'hide';
				clearTimeout (this.timeout);
				if (timeout)
				{
					this.timeout = setTimeout (this.anim.bind(this), timeout);
				}else{
					this.anim();
				}
			},
					
			show: function(timeout) 
			{
				this.status = 'show';
				clearTimeout (this.timeout);
				if (timeout)
				{
					this.timeout = setTimeout (this.anim.bind(this), timeout);
				}else{
					this.anim();
				}
			},

			setActive: function () {
				//this.addClass(classname);
				this.className+='sfhover';
				/*
				for(var i=0;i<this.childNodes.length; i++) {
					if(this.childNodes[i].nodeName.toLowerCase() == 'a') {
						//$(this.childNodes[i]).addClass(classname);
						$(this.childNodes[i]).setActive();
						return;
					}
				}
				*/
			},

			setDeactive: function () {
				//this.removeClass(classname);
				this.className=this.className.replace(new RegExp("sfhover\\b"), "");
				/*
				for(var i=0;i<this.childNodes.length; i++) {
					if(this.childNodes[i].nodeName.toLowerCase() == 'a') {
						$(this.childNodes[i]).setDeactive();
						return;
					}
				}
				*/
			},

			anim: function() {
				if ((this.status == 'hide' && this.style.left != 'auto') || (this.status == 'show' && this.style.left == 'auto' && !this.hidding)) return;
				this.setStyle('overflow', 'hidden');
				if (this.status == 'show') {
					this.hidding = 0;
					this.hideAll();
					//this.parentNode.setActive();
				} else {
					//this.parentNode.setDeactive();
				}

				if (this.status == 'hide')
				{
					this.hidding = 1;
					//this.myFx1.stop();
					this.myFx2.stop();
					//this.myFx1.start(1,0);
					if (this.parent._id) this.myFx2.start(this.offsetWidth,0);
					else this.myFx2.start(this.offsetHeight,0);
				} else {
					this.setStyle('left', 'auto');
					//this.myFx1.stop();
					this.myFx2.stop();
					//this.myFx1.start(0,1);
					if (this.parent._id) this.myFx2.start(0,this.mw);
					else this.myFx2.start(0,this.mh);
				}
			},

			init: function() {
				this.mw = this.clientWidth;
				this.mh = this.clientHeight;
				//this.myFx1 = new Fx.Style(this, 'opacity');
				//this.myFx1.set(0);
				if (this.parent._id)
				{
					this.myFx2 = new Fx.Style(this, 'width', {duration: 300});
					this.myFx2.set(0);
				}else{
					this.myFx2 = new Fx.Style(this, 'height', {duration: 300});
					this.myFx2.set(0);
				}
				this.setStyle('left', '-999em');
				animComp = function(){
					if (this.status == 'hide')
					{
						this.setStyle('left', '-999em');
						this.hidding = 0;
					}
					this.setStyle('overflow', '');
				}
				this.myFx2.addEvent ('onComplete', animComp.bind(this));
			},

			hideAll: function() {
				for(var i=0;i<subnav.length; i++) {
					if (!this.isChild(subnav[i]))
					{
						subnav[i].hide(0);
					}
				}
			},

			isChild: function(_obj) {
				obj = this;
				while (obj.parent)
				{
					if (obj._id == _obj._id)
					{
						//alert(_obj._id);
						return true;
					}
					obj = obj.parent;
				}
				return false;
			}


		});
		

		var DropdownMenu = new Class({	
			initialize: function(element)
			{
				//$(element).mh = 0;
				$A($(element).childNodes).each(function(el)
				{
					if(el.nodeName.toLowerCase() == 'li')
					{
						//if($(element)._id) $(element).mh += 30;
						$A($(el).childNodes).each(function(el2)
						{
							if(el2.nodeName.toLowerCase() == 'ul')
							{
								$(el2)._id = subnav.length+1;
								$(el2).parent = $(element);
								subnav.push ($(el2));
								el2.init();
								el.addEvent('mouseenter', function()
								{
									el.setActive();
									el2.show(0);
									return false;
								});
		
								el.addEvent('mouseleave', function()
								{
									el.setDeactive();
									el2.hide(20);
								});
								new DropdownMenu(el2);
								el.hasSub = 1;
							}
						});
						if (!el.hasSub)
						{
							el.addEvent('mouseenter', function()
							{
								el.setActive();
								return false;
							});

							el.addEvent('mouseleave', function()
							{
								el.setDeactive();
							});
						}
					}
				});
				return this;
			}
		});
		
		window.addEvent('domready',function() {new DropdownMenu($('ja-cssmenu'))});
	
	}else {
	
		sfHover = function() {
		var sfEls = document.getElementById("ja-cssmenu").getElementsByTagName("li");
		for (var i=0; i<sfEls.length; ++i) {
			sfEls[i].onmouseover=function() {
				this.className+="sfhover";
			}
			sfEls[i].onmouseout=function() {
				this.className=this.className.replace(new RegExp("sfhover\\b"), "");
			}
		}
	}
	if (window.attachEvent) window.attachEvent("onload", sfHover);
}
/*------------------------------------------------------------------------
# JA Opal for Joomla 1.5 - Version 1.0 - Licence Owner jSharing.com
# ------------------------------------------------------------------------
# Copyright (C) 2004-2008 J.O.O.M Solutions Co., Ltd. All Rights Reserved.
# @license - Copyrighted Commercial Software
# Author: J.O.O.M Solutions Co., Ltd
# Websites:  http://www.joomlart.com -  http://www.joomlancers.com
# This file may not be redistributed in whole or significant part.
-------------------------------------------------------------------------*/
function switchFontSize (ckname,val){
	var bd = $E('body');
	switch (val) {
		case 'inc':
		if (CurrentFontSize+1 < 7) {
			bd.removeClass('fs'+CurrentFontSize);
			CurrentFontSize++;
			bd.addClass('fs'+CurrentFontSize);
		}
		break;
		case 'dec':
		if (CurrentFontSize-1 > 0) {
			bd.removeClass('fs'+CurrentFontSize);
			CurrentFontSize--;
			bd.addClass('fs'+CurrentFontSize);
		}
		break;
		default:
		bd.removeClass('fs'+CurrentFontSize);
		CurrentFontSize = val;
		bd.addClass('fs'+CurrentFontSize);
	}
	Cookie.set(ckname, CurrentFontSize,{duration:365});
}

function switchTool (ckname, val) {
	createCookie(ckname, val, 365);
	window.location.reload();
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ""); };

//addEvent - attach a function to an event
function jaAddEvent(obj, evType, fn){
	if (obj.addEventListener){
		obj.addEventListener(evType, fn, false);
		return true;
	} else if (obj.attachEvent){
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	} else {
		return false;
	}
}

function equalHeight(){	
	//var box;
	if ($('ja-botsl1')) {
		var box = $$(getElementsByClass ('ja-boxct-wrap', $('ja-botsl1'), "div"));
		if (box && box.length>1) {
		   makeEqualHeight(box);
	  }
	}
}

function makeEqualHeight(divs, offset) {
	if (!offset) offset = 0;
	if(!divs || divs.length < 2) return;
	var maxh = 0;
	divs.each(function(el, i){
		var ch = el.getCoordinates().height;
		maxh = (maxh < ch) ? ch : maxh;
	},this);
	maxh += offset;
	divs.each(function(el, i){
		el.setStyle('height', maxh-el.getStyle('padding-top').toInt()-el.getStyle('padding-bottom').toInt());
	},this);
}

function getDeepestDiv (div) {
	while (div.getChildren().length==1 && (div.getChildren()[0].tagName == 'DIV'))
	{
		div = div.getChildren()[0];
	}
	return div;
}

function preloadImages () {
	var imgs = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var imgsrc = arguments[i];
		imgs[i] = new Image();
		imgs[i].src = imgsrc;
	}
}

//Add span to module title
function addSpanToTitle () {
	//var colobj = document.getElementById ('ja-col');
	//if (!colobj) return;
	var modules = getElementsByClass ('module.*', null, "div");
	if (!modules) return;
	for (var i=0; i<modules.length; i++) {
		var module = modules[i];
		var title = module.getElementsByTagName ("h3")[0];
		if (title) {
			text = title.innerHTML;
			title.innerHTML = "<span>"+text+"</span>";
		}
	}
}

function addSpanToTitle3 () {
	//var colobj = document.getElementById ('ja-col');
	//if (!colobj) return;
	var modules = getElementsByClass ('moduletable.*', null, "div");
	if (!modules) return;
	for (var i=0; i<modules.length; i++) {
		var module = modules[i];
		var title = module.getElementsByTagName ("h3")[0];
		if (title) {
			text = title.innerHTML;
			title.innerHTML = "<span>"+text+"</span>";
		}
	}
}

function addSpanToTitle2 () {
	//var colobj = document.getElementById ('ja-col');
	//if (!colobj) return;
	var modules = $$(getElementsByClass ('module.*', null, "div"));
	var mod_products = null;
	if ($('ja-productwrap')) mod_products = $$(getElementsByClass ('module.*', $('ja-productwrap'), "div")); //$('ja-productwrap').getElements ('div.moduletable');
	if (!modules) return;
	modules.each (function (mod){
		var title = mod.getElement ('h3');
		if (!title) return;
		var text = title.getText();
		if (mod_products && mod_products.contains(mod)) {
			var texts = text.split (' ');
			texts[texts.length-1] = '<span>'+texts[texts.length-1]+'</span>';
			title.setHTML (texts.join(' '));
		} else {
			title.setHTML ('<span>'+text+'</span>');
		}
	});
}

function makeTransBg(el, bgimgdf, sizingMethod, type, offset){
	var objs = el;
	if(!objs) return;
	if ($type(objs) != 'array') objs = [objs];
	if(!sizingMethod) sizingMethod = 'crop';
	if(!offset) offset = 0;
	var blankimg = siteurl + 'images/blank.png';
	objs.each(function(obj) {
		var bgimg = bgimgdf;
		if (obj.tagName == 'IMG') {
			//This is an image
			if (!bgimg) bgimg = obj.src;
			if (!(/\.png$/i).test(bgimg) || (/blank\.png$/i).test(bgimg)) return;

			obj.setStyle('height',obj.offsetHeight);
			obj.setStyle('width',obj.offsetWidth);
			obj.src = blankimg;
			obj.setStyle ('visibility', 'visible');
			obj.setStyle('filter', "progid:DXImageTransform.Microsoft.AlphaImageLoader(src="+bgimg+", sizingMethod='"+sizingMethod+"')");
		}else{
			//Background
			if (!bgimg) bgimg = obj.getStyle('backgroundImage');
			var pattern = new RegExp('url\s*[\(\"\']*([^\'\"\)]*)[\'\"\)]*');
			if ((m = pattern.exec(bgimg))) bgimg = m[1];
			if (!(/\.png$/i).test(bgimg) || (/blank\.png$/i).test(bgimg)) return;
			if (!type)
			{
				obj.setStyles({'background': 'none'});

				if(obj.getStyle('position')!='absolute' && obj.getStyle('position')!='relative') {
					obj.setStyle('position', 'relative');
				}

				obj.getChildren().each(function(el){
					if(el.getStyle('position')!='absolute' && el.getStyle('position')!='relative')
					{
						el.setStyle('position', 'relative');
					}
					el.setStyle('z-index',2);
				});
				//Create background layer:
				var bgdiv = new Element('IMG');
				bgdiv.src = blankimg;
				bgdiv.width = obj.offsetWidth - offset;
				bgdiv.height = obj.offsetHeight - offset;
				bgdiv.setStyles({
				'position': 'absolute',
				'top': 0,
				'left': -obj.getStyle('padding-left').toInt()
				});

				bgdiv.className = 'TransBG';

				bgdiv.setStyle('filter', "progid:DXImageTransform.Microsoft.AlphaImageLoader(src="+bgimg+", sizingMethod='"+sizingMethod+"')");
				bgdiv.inject(obj, 'top');
				//alert(obj.innerHTML + '\n' + bgdiv.innerHTML);
			} else {
				obj.setStyle('filter', "progid:DXImageTransform.Microsoft.AlphaImageLoader(src="+bgimg+", sizingMethod='"+sizingMethod+"')");
			}
		}
	}.bind(this));
}

function isIE6() {
	version=0
	if (navigator.appVersion.indexOf("MSIE")!=-1){
		temp=navigator.appVersion.split("MSIE")
		version=parseFloat(temp[1])
	}
	return (version && (version < 7));
}

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	var j = 0;
	if ( node == null )
	node = document;
	if ( tag == null )
	tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp('(^|\\s)'+searchClass+'(\\s|$)');
	for (var i = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	//alert(searchClass + j);
	return classElements;
}

//Add 1st item identity
jaAddFirstItemToTopmenu = function() {
	li = $E('#ja-topnav ul li');
	if(li) {
		li.addClass('ja-firstitem');
	}
}

jaRemoveLastContentSeparator = function () {
	var els = $$('#ja-content .article_separator');
	if (els && els.length) els[els.length-1].remove();
}

jaRemoveLastTrBg = function () {
	var els = $$('#ja-topsl3 tr');	
	if (!els || els.length<1) return;
	var obj = els[els.length-1];
	if (els[els.length-1].innerHTML.trim()=='' && els.length>2) {
		obj.remove();
		obj = els[els.length-2];
	}
	if (obj) obj.setStyle('background','none');
}

fixMenuWidth = function() {
	//Fix for dropline and split menu
	if (!$('ja-splitmenu')) return;
	var lis = $('ja-splitmenu').getElement('ul').getChildren();
	if (lis.length)
	{
		var w = Math.floor($('ja-mainnav').offsetWidth / lis.length);
		lis.setStyle ('width', w);
	}
}

moveReadmore = function () {
	var articles = $$('.contentpaneopen');
	if (!articles) return;
	articles.each(function(article) {
		var readmore = article.getElement('.readon');
		var article_content = article.getElement('.article-content');
		if (readmore && article_content) {
			readmore.remove().inject(article_content);
		}
	});
}

addIEHover = function() {
	if (!window.ie6) return;
	var obj = $('ja-topsl');
	if (!obj || !obj.getChildren()) return;
	obj.getChildren().each(function(el){
		var cls = 'topsl-hover-center';
		if (el.className.test ('ja-box-left')) {
			cls = 'topsl-hover-left';
		}
		if (el.className.test ('ja-box-right')) {
			cls = 'topsl-hover-right';
		}
		el.addEvent('mouseenter', function(){
			el.addClass(cls);
		}.bind(this));
		el.addEvent('mouseleave', function(){
			el.removeClass(cls);
		}.bind(this));
	});
}

window.addEvent ('load', function() {
	equalHeight();
	//new MenuIcon($E('#ja-mainnav'));
});

var boxes = [];
showBox = function (box,focusobj, caller) {
	box=$(box);
	if (!box) return;
	if ($(caller)) box._caller = $(caller);
	boxes.include (box);
	if (box.getStyle('display') == 'none') {
		box.setStyles({
			display: 'block',
			opacity: 0
		});
	}
	if (box.status == 'show') {
		//hide
		box.status = 'hide';
		var fx = new Fx.Style (box,'opacity');
		fx.stop();
		fx.start (box.getStyle('opacity'), 0);
		if (box._caller) box._caller.removeClass ('show');
	} else {
		boxes.each(function(box1){
			if (box1!=box && box1.status=='show') {
				box1.status = 'hide';
				var fx = new Fx.Style (box1,'opacity');
				fx.stop();
				fx.start (box1.getStyle('opacity'), 0);
				if (box1._caller) box1._caller.removeClass ('show');
			}
		},this);
		box.status = 'show';
		var fx = new Fx.Style (box,'opacity',{onComplete:function(){if($(focusobj))$(focusobj).focus();}});
		fx.stop();
		fx.start (box.getStyle('opacity'), 1);
		
		if (box._caller) box._caller.addClass ('show');
	}
}

//Add event for slideshow
slideshowOnWalk = function () {
	if (window.JaSlideshow) {
		var n = JaSlideshow.options.images.length;
		var inactive_opacity = 0.4;
		for (var i=0; i<n; i++) {
			var thumb = $('jsnav'+i);
			if (!thumb || thumb.className.test('active')) continue;
			thumb.setStyle ('opacity', inactive_opacity);
		}
		//add mask
		JaSlideshow.mask = new Element ('div', {'id':'ja-slideshow-mask'}).inject (JaSlideshow.elementdiv);
    if (JaSlideshow.options.urls) {
      JaSlideshow.mask.setStyle ('cursor', 'pointer');
  		JaSlideshow.mask.onclick = function() {
  			location.href = JaSlideshow.options.urls[0];
  		}
  	}
		JaSlideshow.onWalk = function (current) {
			//alert (current);
			var fxOptions = {duration:JaSlideshow.options.duration[0], wait:false}
			var thumb1 = $('jsnav'+current[2]);
			thumb1fx = new Fx.Style (thumb1, 'opacity', fxOptions);
			thumb1fx.start (inactive_opacity);
			var thumb2 = $('jsnav'+current[0]);
			thumb2fx = new Fx.Style (thumb2, 'opacity', fxOptions);
			thumb2fx.start (1);
			//thumb.setStyle ('opacity', 0.7);
      if (JaSlideshow.options.urls) {
  			JaSlideshow.mask.onclick = function() {
  				location.href = JaSlideshow.options.urls[current[2]];
  			}
  		}
		}
	}
}

jaMenuIcon = function () {
	var icons = $$('#ja-splitmenu img');
	var actives = $$('#ja-splitmenu li.active img');
	if (!icons) return;
	icons.each (function(img){
		var src = img.src;
		//get path for active image
		if (!(pos = src.lastIndexOf ('.'))) return;
		img.ext = src.substr(pos);
		img.src_on = src.substr (0, pos) + '-on' + src.substr(pos);
		img.src_off = src;
		if (img.ext=='.png' && window.ie6) {
			img.src_on = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\''+img.src_on+'\', sizingMethod=\'image\')';
			img.src_off = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\''+img.src+'\', sizingMethod=\'image\')';
			img.src = siteurl + 'images/blank.png';
			img.setStyle ('filter', img.src_off);
		}
		//preload image
		var image = new Image ();
		image.src = img.src_on;
		//if (!image.width || !image.height) return; //Image not found
		//Switch image for active item
		if (actives && actives.contains (img)) {
			if (img.ext=='.png' && window.ie6) {
				img.setStyle ('filter', img.src_on);
			} else {
				img.src = img.src_on;
			}	
			return;
		}
		//Set event
		img.getParent().addEvent ('mouseenter', function () {
			if (img.ext=='.png' && window.ie6) {
				img.setStyle ('filter', img.src_on);
			} else {
				img.src = img.src_on;
			}
		},this);
		
		img.getParent().addEvent ('mouseleave', function () {
			if (img.ext=='.png' && window.ie6) {
				img.setStyle ('filter', img.src_off);
			} else {
				img.src = img.src_off;
			}	
		},this);
	});
}

ja_topsl_button = function () {
	var button = $('ja-topsl-button');
	if (button) {
		button.el = $('ja-topslwrap');
		button.el.setStyles({'position':'relative','overflow': 'hidden'});
		button.fx = new Fx.Style (button.el, 'height');
		button._maxh = button.el.offsetHeight;
		button._status = true;
		button._alt = button.title;
		button.title = button.getText();
		button.addEvent ('click', function() {
			var h = this._status?0:(this.el.scrollHeight-20);
			this.fx.start (h);
			this._status = !this._status;
			this.setText (this._alt);
			this._alt = this.title;
			this.title = this.getText();
			return false;
		});
	}
}