//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;
function Jax()
{var loadingTimeout=400;var iframe;this.loadingFunction=function(){};this.doneLoadingFunction=function(){};this.stringify=function(arg){var c,i,l,o,u,v;switch(typeof arg){case'object':if(arg){if(arg.constructor==Array){o='';for(i=0;i<arg.length;++i){v=this.stringify(arg[i]);if(o&&(v!==u)){o+=',';}
if(v!==u){o+=v;}}
return'['+o+']';}else if(typeof arg.toString!='undefined'){o='';for(i in arg){v=this.stringify(arg[i]);if(v!==u){if(o){o+=',';}
o+=this.stringify(i)+':'+v;}}
return'{'+o+'}';}else{return;}}
return'';case'unknown':case'undefined':case'function':return u;case'string':arg=arg.replace(/"/g,"\\\"");l=arg.length;o='"';for(i=0;i<l;i+=1){c=arg.charAt(i);if(c>=' '){if(c=='\\'||c=='"'){o+='\\';}
o+=c;}else{switch(c){case'"':o+='\\"';break;case'\b':o+='\\b';break;case'\f':o+='\\f';break;case'\n':o+='\\n';break;case'\r':o+='\\r';break;case'\t':o+='\\t';break;default:c=c.charCodeAt();o+='\\u00';o+=Math.floor(c/16).toString(16);o+=(c%16).toString(16);}}}
return o+'"';default:return String(arg);}}
this.getRequestObject=function()
{if(window.XMLHttpRequest){http_request=new XMLHttpRequest();}else if(window.ActiveXObject){var msxmlhttp=new Array('Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0','Msxml2.XMLHTTP','Microsoft.XMLHTTP');for(var i=0;i<msxmlhttp.length;i++){try{http_request=new ActiveXObject(msxmlhttp[i]);}catch(e){http_request=null;}}}
if(!http_request){alert('Unfortunatelly you browser doesn\'t support this feature.');return false;}
return http_request;}
this.$=function(sId)
{if(!sId){return null;}
var returnObj=document.getElementById(sId);if(!returnObj&&document.all){returnObj=document.all[sId];}
return returnObj;}
this.addEvent=function(obj,type,fn){if(obj.attachEvent){obj['e'+type+fn]=fn;obj[type+fn]=function(){obj['e'+type+fn](window.event);}
obj.attachEvent('on'+type,obj[type+fn]);}else{obj.addEventListener(type,fn,false);}}
this.removeEvent=function(obj,type,fn){if(obj.detachEvent){obj.detachEvent('on'+type,obj[type+fn]);obj[type+fn]=null;}else{obj.removeEventListener(type,fn,false);}}
this.submitITask=function(comName,func,postData,responseFunc){var xmlReq=this.buildXmlReq(comName,func,postData,responseFunc,true);this.loadingFunction();if(!this.iframe){this.iframe=document.createElement('iframe');this.iframe.setAttribute("id",'ajaxIframe');this.iframe.setAttribute("height",0);this.iframe.setAttribute("width",0);this.iframe.setAttribute("border",0);this.iframe.style.visibility='hidden';document.body.appendChild(this.iframe);this.iframe.src=xmlReq;}else{this.iframe.src=xmlReq;}}
this.extractIFrameBody=function(iFrameEl){var doc=null;if(iFrameEl.contentDocument){doc=iFrameEl.contentDocument;}else if(iFrameEl.contentWindow){doc=iFrameEl.contentWindow.document;}else if(iFrameEl.document){doc=iFrameEl.document;}else{alert("Error: could not find sumiFrame document");return null;}
return doc.body;}
this.buildXmlReq=function(comName,func,postData,responseFunc,iframe){var xmlReq='';if(iframe){xmlReq+='?';}
else{xmlReq+='&';}
xmlReq+='option='+comName;xmlReq+='&no_html=1';xmlReq+='&task=azrul_ajax';xmlReq+='&func='+func;if(postData){xmlReq+="&"+postData;}
return xmlReq;}
this.submitTask=function(comName,func,postData,responseFunc){var xmlhttp=this.getRequestObject();var targetUrl=jax_live_site;xmlhttp.open('POST',targetUrl,true);xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4){if(xmlhttp.status==200){jax.doneLoadingFunction();jax.processResponse(xmlhttp.responseText);}else{}}}
var id=1;var xmlReq=this.buildXmlReq(comName,func,postData,responseFunc);this.loadingFunction();xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');xmlhttp.send(xmlReq);}
this.processIResponse=function(){jax.doneLoadingFunction();var resp=(this.extractIFrameBody(this.iframe).innerHTML);resp=resp.replace(/&lt;/g,"<");resp=resp.replace(/&gt;/g,">");resp=resp.replace(/&amp;/g,"&");resp=resp.replace(/&quot;/g,'"');resp=resp.replace(/&#39;/g,"'");this.processResponse(resp);}
this.processResponse=function(responseTxt){var result=eval(responseTxt);for(var i=0;i<result.length;i++){var cmd=result[i][0];var id=result[i][1];var property=result[i][2];var data=result[i][3];var objElement=this.$(id);switch(cmd){case'as':if(objElement){eval("objElement."+property+"=  data \; ");}
break;case'al':if(data){alert(data);}
break;case'ce':this.create(id,property,data);break;case'rm':this.remove(id);break;case'cs':var scr=id+'(';if(this.isArray(data)){scr+='(data[0])';for(var l=1;l<data.length;l++){scr+=',(data['+l+'])';}}else{scr+='data';}
scr+=');';eval(scr);break;default:alert("Unknow command: "+cmd);}}
delete responseTxt;}
this.isArray=function(obj){if(obj){return obj.constructor==Array;}
return false;}
this.buildCall=function(comName,sFunction){}
this.icall=function(comName,sFunction){var arg="";if(arguments.length>2){for(var i=2;i<arguments.length;i++){var a=arguments[i];if(this.isArray(a)){arg+="arg"+i+"="+this.stringify(a)+"&";}else if(typeof a=="string"){var t=new Array('_d_',encodeURIComponent(a));arg+="arg"+i+"="+this.stringify(t)+"&";}else{var t=new Array('_d_',encodeURIComponent(a));arg+="arg"+i+"="+this.stringify(t)+"&";}}}
if(jax_site_type=='1.5'){this.submitTask(comName,sFunction,arg);}else{this.submitITask(comName,sFunction,arg);}}
this.call=function(comName,sFunction){var arg="";if(arguments.length>2){for(var i=2;i<arguments.length;i++){var a=arguments[i];if(this.isArray(a)){arg+="arg"+i+"="+this.stringify(a)+"&";}else if(typeof a=="string"){a=a.replace(/"/g,"&quot;");var t=new Array('_d_',encodeURIComponent(a));arg+="arg"+i+"="+this.stringify(t)+"&";}else{var t=new Array('_d_',encodeURIComponent(a));arg+="arg"+i+"="+this.stringify(t)+"&";}}}
this.submitTask(comName,sFunction,arg);}
this.create=function(sParentId,sTag,sId){var objParent=this.$(sParentId);objElement=document.createElement(sTag);objElement.setAttribute('id',sId);if(objParent){objParent.appendChild(objElement);}}
this.remove=function(sId){objElement=this.$(sId);if(objElement&&objElement.parentNode&&objElement.parentNode.removeChild)
{objElement.parentNode.removeChild(objElement);}}
this.getFormValues=function(frm){var objForm;objForm=this.$(frm);if(!Array.prototype.indexOf)
{Array.prototype.indexOf=function(elt)
{var len=this.length;var from=Number(arguments[1])||0;from=(from<0)?Math.ceil(from):Math.floor(from);if(from<0)
from+=len;for(;from<len;from++)
{if(from in this&&this[from]===elt)
return from;}
return-1;};}
var postData=new Array();if(objForm&&objForm.tagName=='FORM'){var formElements=objForm.elements;var assCheckbox=new Array();var assCntIdx=0;if(formElements.length>0){for(var i=0;i<formElements.length;i++)
{if(!formElements[i].name)
{continue;}
if(formElements[i].type&&(formElements[i].type=='radio'||formElements[i].type=='checkbox')&&formElements[i].checked==false)
{continue;}
var name=formElements[i].name;if(name)
{if(formElements[i].type=='select-multiple')
{postData[i]=new Array();for(var j=0;j<formElements[i].length;j++)
{if(formElements[i].options[j].selected===true)
{var value=formElements[i].options[j].value;postData[i][j]=new Array(name,encodeURIComponent(value));}}}
else if(formElements[i].type=='checkbox')
{if(assCheckbox.indexOf(formElements[i].name)==-1)
{assCheckbox[assCntIdx]=formElements[i].name
assCntIdx++;}}
else
{var value=formElements[i].value;value=value.replace(/"/g,"&quot;");postData[i]=new Array(name,encodeURIComponent(value));}}}}
if(assCheckbox.length>0)
{for(var i=0;i<assCheckbox.length;i++)
{var objCheckbox=document.getElementsByName(assCheckbox[i]);if(objCheckbox)
{if(objCheckbox.length>1)
{var tmpIdx=0;var curLen=postData.length;postData[curLen]=new Array();for(var j=0;j<objCheckbox.length;j++)
{if(objCheckbox[j].checked)
{var value=objCheckbox[j].value;value=value.replace(/"/g,"&quot;");postData[curLen][j]=new Array(assCheckbox[i],encodeURIComponent(value));tmpIdx++;}}}
else
{if(objCheckbox[0].checked)
{var value=objCheckbox[0].value;value=value.replace(/"/g,"&quot;");postData[postData.length]=new Array(assCheckbox[i],encodeURIComponent(value));}}}}}}
return postData;}}
function jax_iresponse(){jax.processIResponse();}
var jax=new Jax();/*------------------------------------------------------------------------
# JA Quartz for Joomla 1.5 - Version 1.0 - Licence Owner jSharing
# ------------------------------------------------------------------------
# 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.
-------------------------------------------------------------------------*/
var wrap_W = 0;
var JATabs = new Class({	
	initialize: function(element, options) {
		this.options = Object.extend({
			position:			'top',
			width:				'100%',
			height:				'auto',
			skipAnim:			false,
			animType:			'animMoveHor',
			mouseType:			'mouseover',
			changeTransition:	Fx.Transitions.Pow.easeIn,
			duration:			1000,
			mouseOverClass:		'hover',
			activateOnLoad:		'first',
			useAjax: 			false,
			ajaxUrl: 			'',
			ajaxOptions: 		'get',
			ajaxLoadingText: 	'Loading...',
			fixheight :			 1,
			fixwidth :			 1,
			colors: ''
		}, options || {});

		this.el = $(element);
		this.elid = element;				
				
		this._W = this.el.offsetWidth.toInt();
		wrap_W = this._W;
		
		if(this.options.height=='auto'){
			this.options.fixheight = 0;
		}
		//tab colors
		if($type(this.options.colors)=='string'){
			regex = /(\d*):([^,]*)/gi;
			var colors = [];
			while((result = regex.exec (this.options.colors)))
				colors[result[1]]=result[2];
			
			this.options.colors = colors;
		}
		
		//this._H = this.el.getParent().getStyle('height').toInt();
		this._H = this.el.getParent().offsetHeight.toInt();		
		this.panels = $$('#' + this.elid + ' .ja-tab-content');
		this.panelwrap = $E('.ja-tab-panels-'+this.options.position, this.el);	
				
		this.divtitles = $$('#' + this.elid + ' .ja-tabs-title-'+this.options.position);
		
		this.titles = $$('#' + this.elid + ' div.ja-tabs-title-'+this.options.position+' ul li');		

		//add 
		if (this.panels.length <= 1)
		{
			this.panels.setStyle ('position', 'relative');
			return;
		}	
		
		this.titles.each(function(item,i) {
			var color = item.getElement('h3').className;
			if (!color) color=this.options.colors[i];
			item._color = '';
			if (color) {
				item.addClass (color);
				item._color = color;
			}
			
			item.addEvent(this.options.mouseType, function(){
					if (item.className.indexOf('active') != -1)	return;
					
					item.removeClass(this.options.mouseOverClass);
					this.activate(item,  this.options.skipAnim);						
				}.bind(this)
			);
			
			item.addEvent('mouseover', function() {
				if(item != this.activeTitle)
				{
					item.addClass(this.options.mouseOverClass);
				}
			}.bind(this));
			
			item.addEvent('mouseout', function() {
				if(item != this.activeTitle)
				{
					item.removeClass(this.options.mouseOverClass);
					
				}
			}.bind(this));
		}.bind(this));
		

		this.titles[0].addClass('first');
		this.titles[this.titles.length-1].addClass('last');		
		this.titles[0].addClass ('active');
		
		//height of title (for left, right, bottom)
		//this.tabHeight = $E('.ja-tabs-title-'+this.options.position, this.el);
		this.tabHeight = this.el.getElement('.ja-tabs-title-'+this.options.position);
		
		//Panel contents
		this.minHeight = 0;
		if((this.options.position=='left') || (this.options.position=='right')){
	      	this.minHeight = this.tabHeight.offsetHeight;	
		    if (!this.options.fixheight ){				
				this.divtitles.setStyle ('height', this.minHeight);														
			}							
	    }		
     
		/* Set height for DIV tabswrap and position Top*/						
		if (!this.options.fixheight )
		{			
			this.panelwrap.setStyle ('height', this.minHeight+10);
		}	
		else{
			this.panelwrap.setStyle ('height', this._H - this.titles[0].offsetHeight.toInt());	
		}												

		/* Set set width for left/right tabs*/	
		if((this.options.position=='left') || (this.options.position=='right')){									
			var maxw = eval(this._W - this.divtitles[0].offsetWidth.toInt() -10);
			this.panelwrap.setStyle ('width', maxw);
		}		
				
		this.titles.each(function(el,i){
			el.panel = this.panels[i];
			el.panel._idx = i;
		},this);		
				
		if (this.options.skipAnim) this.options.animType = 'animNone';
		
		//Set default type for animation if needed
		if ((eval('typeof '+this.options.animType) == 'undefined') || (eval('$type ('+this.options.animType+')') != 'class')){
			this.options.animType = 'animFade';
		}
		
		//Create animation object
		this.anim = eval ('new '+this.options.animType + '(this)');

		if(this.options.activateOnLoad != 'none')
		{
			if(this.options.activateOnLoad == 'first')
			{
				this.activate(this.titles[0],  true);				
			}
			else
			{
				this.activate(this.options.activateOnLoad, true);	
			}
		}		
				
		if (window.ie) this.firstload = true;
		window.addEvent('resize', this.resize.bind(this));
		
	},
	
	resize: function () {
			
		/* Set set width for left/right tabs*/	
		this._W = this.el.offsetWidth;
		
		maxW = this._W;
			
    	if((this.options.position=='left') || (this.options.position=='right')){			
	      	this.minHeight = this.tabHeight.offsetHeight + 10;		
		    if (!this.options.fixheight ){				
				this.divtitles.setStyle ('height', Math.max(this.minHeight,this.activeTitle.panel.offsetHeight+10));														
				}	
				maxW = this._W - this.divtitles[0].offsetWidth.toInt() -10;	
				this.panelwrap.setStyle('width', maxW);  
	    }		
		  
		if(wrap_W!=this._W){this.anim.reposition();};
	},
	
	activate: function(tab, skipAnim){
	    if (this.options.useAjax) this.cancelAjax();
		 
		  if (this.options.useAjax && !tab.loaded) {
					this._getContent(tab);
	        return;	     
	    }

		if(! $defined(skipAnim))
		{
			skipAnim = false;
		}
		if($type(tab) == 'string') 
		{
			myTab = $$('#' + this.elid + ' ul li').filterByAttribute('title', '=', tab)[0];
			tab = myTab;
		}
		
		if($type(tab) == 'element')
		{
			//add 5
			var newTab = tab.panel;
			var curTab = this.activePanel;
			this.activePanel = newTab;
			
			this.anim.move (curTab, newTab, skipAnim);
			
			this.titles.removeClass('active');
			tab.addClass('active');
			if (this.activeTitle && this.activeTitle._color) this.panelwrap.removeClass (this.activeTitle._color);
			if (tab._color) this.panelwrap.addClass (tab._color);
			/*
			if (this.activeTitle ){
				this.activeTitle.className = this.activeTitle.className.replace(new RegExp("active"), "");
			}
			tab.className = tab.className.replace(new RegExp(this.options.mouseOverClass), "");
			tab.className += 'active';
			*/
			
			this.activeTitle = tab;
			
			if (!this.options.fixheight) {
				if (skipAnim) {
					this.panelwrap.setStyle('height', Math.max(this.minHeight,this.activeTitle.panel.offsetHeight+10));
					if((this.options.position=='left') || (this.options.position=='right')){
						this.tabHeight.setStyle('height', Math.max(this.minHeight, this.panelwrap.offsetHeight));
					}
				} else {
					new Fx.Style(this.panelwrap, 'height',{duration:this.options.duration}).start(this.panelwrap.offsetHeight, Math.max(this.minHeight,this.activeTitle.panel.offsetHeight+10));
	
					if((this.options.position=='left') || (this.options.position=='right')){
						new Fx.Style(this.tabHeight, 'height',{duration:this.options.duration}).start(this.tabHeight.offsetHeight, Math.max(this.minHeight, this.activeTitle.panel.offsetHeight));					
					}
				}
			}
		}	
		
	},
	cancelAjax: function() {
	  if (this.loadingTab) {
	    	this.tabRequest.cancel();
	      	this.loadingTab.imgLoading.remove();
	  		this.tabRequest = null;
	  		this.loadingTab = null;
	    }
  	},
	
	_getContent: function(tab){
	  
		this.loadingTab = tab;
		
		var h3 = $(this.loadingTab.getElementsByTagName('H3')[0]);
		var imgloading = new Element('img', {'src': 'plugins/content/ja_tabs/loading.gif','width': 13});
		if (this.options.position=='right') imgloading.inject(h3,'top');
		else imgloading.inject(h3);
		this.loadingTab.imgLoading = imgloading;
		this.tabRequest = new Ajax(this.options.ajaxUrl+ '&tab=' + this.loadingTab.getProperty('title'), {method:this.options.ajaxOptions,onComplete:this.update.bind(this)});
		this.tabRequest.request();
		
	},
	update: function (text) {
		this.loadingTab.loaded = true;
		this.loadingTab.panel.subpanel = $E('.ja-tab-subcontent', this.loadingTab.panel);		
		this.loadingTab.panel.subpanel.innerHTML = text;
		this.loadingTab.imgLoading.remove();
		var tab = this.loadingTab;
		this.tabRequest = null;
		this.loadingTab = null;
		this.anim.reposition();
		this.activate (tab);
		
	}
});
var animNone = new Class ({
	initialize: function(tabwrap) {
		this.options = tabwrap.options || {};
		this.tabwrap = tabwrap;

		this.tabwrap.panels.setStyle('position', 'absolute');
		this.tabwrap.panels.setStyle('left', 0);
	},

	move: function (curTab, newTab, skipAnim) {
		this.tabwrap.panels.setStyle('display', 'none');
		newTab.setStyle('display', 'block');
	}
});

var animFade = new Class ({
	initialize: function(tabwrap) {
		this.options = tabwrap.options || {};
		this.tabwrap = tabwrap;
		this.changeEffect = new Fx.Elements(this.tabwrap.panels, {duration: this.options.duration});
		this.tabwrap.panels.setStyles({'opacity':0,'width':'100%'});
	},

	move: function (curTab, newTab, skipAnim) {
		if(this.options.changeTransition != 'none' && skipAnim==false)
		{
			if (curTab)
			{
				curOpac = curTab.getStyle('opacity');
				var changeEffect = new Fx.Style(curTab, 'opacity', {duration: this.options.duration, transition: this.options.changeTransition});
				changeEffect.stop();
				changeEffect.start(curOpac,0);
			}
			curOpac = newTab.getStyle('opacity');
			var changeEffect = new Fx.Style(newTab, 'opacity', {duration: this.options.duration, transition: this.options.changeTransition});
			changeEffect.stop();
			changeEffect.start(curOpac,1);
		} else {
			if (curTab) curTab.setStyle('opacity', 0);
			newTab.setStyle('opacity', 1);
		}
	},
	reposition: function() {
	    if (this.tabwrap.activePanel) {
			this.changeEffect.stop();

			for (var i=this.tabwrap.activePanel._idx-1;i>=0;i--) {
			    this.tabwrap.panels[i].setStyle('opacity',0);
			}
		    for (i=this.tabwrap.activePanel._idx+1;i<this.tabwrap.panels.length;i++) {
		       this.tabwrap.panels[i].setStyle('opacity',0);
		     }		     		   
	    }
	}
});

var animMoveHor = new Class ({
	initialize: function(tabwrap) {
		this.options = tabwrap.options || {};
		this.tabwrap = tabwrap;
		this.changeEffect = new Fx.Elements(this.tabwrap.panels, {duration: this.options.duration});
	    var left = 0;
	    this.tabwrap.panels.each (function (panel) {
	      panel.setStyle('left', left);
	      left += panel.offsetWidth;
	    });
	    this.tabwrap.panels.setStyle('top', 0);
	},

	move: function (curTab, newTab, skipAnim) {
		if(this.options.changeTransition != 'none' && !skipAnim)
		{
			this.changeEffect.stop();
			var obj = {};
			var offset = newTab.offsetLeft.toInt();
			i=0;			
			
			this.tabwrap.panels.each(function(panel) {
				obj[i++] = {'left':[panel.offsetLeft.toInt(), panel.offsetLeft.toInt() - offset] };			
			});
			
			this.changeEffect.start(obj);
		}
	},
	reposition: function() {
	    if (this.tabwrap.activePanel) {
			this.changeEffect.stop();
	       	var left = this.tabwrap.activePanel.offsetLeft;
		    for (var i=this.tabwrap.activePanel._idx-1;i>=0;i--) {
		       left -= this.tabwrap.panels[i].offsetWidth;
		       this.tabwrap.panels[i].setStyle('left',left);
		     }
	       	var left = this.tabwrap.activePanel.offsetLeft;
		    for (i=this.tabwrap.activePanel._idx+1;i<this.tabwrap.panels.length;i++) {
		       left += this.tabwrap.panels[i-1].offsetWidth;
		       this.tabwrap.panels[i].setStyle('left',left);
		     }
	    }
	}
});

var animMoveVir = new Class ({
	initialize: function(tabwrap) {
		this.options = tabwrap.options || {};
		this.tabwrap = tabwrap;
		this.changeEffect = new Fx.Elements(this.tabwrap.panels, {duration: this.options.duration});
	
	    var top = 0;
	    this.tabwrap.panels.each (function (panel) {
	      panel.setStyle('top', top);     
	      top += Math.max(panel.offsetHeight,  panel.getParent().getParent().offsetHeight);
	    });
	    this.tabwrap.panels.setStyle('left', 0);
	},
	move: function (curTab, newTab, skipAnim) {
		if(this.options.changeTransition != 'none' && skipAnim==false)
		{
      //reposition newTab
      
			this.changeEffect.stop();
			var obj = {}; 
			var offset = newTab.offsetTop.toInt();
			i=0;
			this.tabwrap.panels.each(function(panel) {
				obj[i++] = {'top':[panel.offsetTop.toInt(), panel.offsetTop.toInt() - offset]};			
			});
			this.changeEffect.start(obj);
		}
	},
	reposition: function() {
	    if (this.tabwrap.activePanel) {
				 this.changeEffect.stop();
	       var top = this.tabwrap.activePanel.offsetTop;
		     for (var i=this.tabwrap.activePanel._idx-1;i>=0;i--) {
		       top -= this.tabwrap.panels[i].offsetHeight;
		       this.tabwrap.panels[i].setStyle('top',top-10);
		     }
	       var top = this.tabwrap.activePanel.offsetTop;
		     for (i=this.tabwrap.activePanel._idx+1;i<this.tabwrap.panels.length;i++) {
		       top += this.tabwrap.panels[i-1].offsetHeight+10;
		       this.tabwrap.panels[i].setStyle('top',top);
		     }
	    }
	}
});/******************************************************************************
Name:    Highslide JS
Version: 4.0.5 (August 30 2008)
Config:  default +events +unobtrusive +imagemap +slideshow +positioning +transitions +inline +ajax +iframe +flash +packed
Author:  Torstein Hønsi
Support: http://highslide.com/support

Licence:
Highslide JS is licensed under a Creative Commons Attribution-NonCommercial 2.5
License (http://creativecommons.org/licenses/by-nc/2.5/).

You are free:
	* to copy, distribute, display, and perform the work
	* to make derivative works

Under the following conditions:
	* Attribution. You must attribute the work in the manner  specified by  the
	  author or licensor.
	* Noncommercial. You may not use this work for commercial purposes.

* For  any  reuse  or  distribution, you  must make clear to others the license
  terms of this work.
* Any  of  these  conditions  can  be  waived  if  you  get permission from the 
  copyright holder.

Your fair use and other rights are in no way affected by the above.
******************************************************************************/
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('m j={W:{9q:\'bH...\',9r:\'7F P bG\',a5:\'7F P bF P bD\',7X:\'bE P bI K\',ag:\'bJ by <i>94 93</i>\',af:\'bN P bM 94 93 bL\',7V:\'96\',7T:\'9b\',7O:\'9a\',7Q:\'92\',7P:\'92 (bK)\',8M:\'bC\',8Y:\'90\',8Z:\'90 1y (95)\',8P:\'91\',8Q:\'91 1y (95)\',7U:\'96 (7G 19)\',7W:\'9b (7G 3h)\',7S:\'9a\',8O:\'bt K\',3s:\'bs %1 br %2\',8j:\'7F P 1V 2O, bq 98 bu P 2I. bv 7G bA S 1x 98 2K.\'},5j:\'Q/bz/\',8h:\'bx.5i\',aW:10,7c:5c,9S:10,a2:5c,3C:15,6q:15,4h:15,3N:15,4H:bw,9i:0.75,8l:L,82:5,3j:2,83:3,9U:\'3T 3h\',9Y:1,ax:1k,aI:L,ah:\'bO://bP.c6/Q/\',8L:L,3t:[],6g:9L,3Z:0,6F:50,5U:1k,7D:L,4l:L,3i:\'5l\',7t:L,3l:\'1E\',6O:\'1E\',6K:I,6I:I,8p:L,2N:97,3H:97,5y:L,1M:\'c4-c3\',7b:\'Q-T\',7R:{3u:\'<1e 2d="Q-3u"><69>\'+\'<1D 2d="Q-2K">\'+\'<a 1T="#" 1Y="{j.W.7U}">\'+\'<D>{j.W.7V}</D></a>\'+\'</1D>\'+\'<1D 2d="Q-3z">\'+\'<a 1T="#" 1Y="{j.W.8Z}">\'+\'<D>{j.W.8Y}</D></a>\'+\'</1D>\'+\'<1D 2d="Q-2R">\'+\'<a 1T="#" 1Y="{j.W.8Q}">\'+\'<D>{j.W.8P}</D></a>\'+\'</1D>\'+\'<1D 2d="Q-1x">\'+\'<a 1T="#" 1Y="{j.W.7W}">\'+\'<D>{j.W.7T}</D></a>\'+\'</1D>\'+\'<1D 2d="Q-2I">\'+\'<a 1T="#" 1Y="{j.W.7S}">\'+\'<D>{j.W.7O}</D></a>\'+\'</1D>\'+\'<1D 2d="Q-Z-2A">\'+\'<a 1T="#" 1Y="{j.W.7X}">\'+\'<D>{j.W.8O}</D></a>\'+\'</1D>\'+\'<1D 2d="Q-1V">\'+\'<a 1T="#" 1Y="{j.W.7P}" >\'+\'<D>{j.W.7Q}</D></a>\'+\'</1D>\'+\'</69></1e>\',9d:\'<1e 2d="Q-c8"><69>\'+\'<1D 2d="Q-2K">\'+\'<a 1T="#" 1Y="{j.W.7U}" 2o="E j.2K(f)">\'+\'<D>{j.W.7V}</D></a>\'+\'</1D>\'+\'<1D 2d="Q-1x">\'+\'<a 1T="#" 1Y="{j.W.7W}" 2o="E j.1x(f)">\'+\'<D>{j.W.7T}</D></a>\'+\'</1D>\'+\'<1D 2d="Q-2I">\'+\'<a 1T="#" 1Y="{j.W.7S}" 2o="E 1k">\'+\'<D>{j.W.7O}</D></a>\'+\'</1D>\'+\'<1D 2d="Q-1V">\'+\'<a 1T="#" 1Y="{j.W.7P}" 2o="E j.1V(f)">\'+\'<D>{j.W.7Q}</D></a>\'+\'</1D>\'+\'</69></1e>\'+\'<1e 2d="Q-1d"></1e>\'+\'<1e 2d="Q-cd"><1e>\'+\'<D 2d="Q-3O" 1Y="{j.W.8M}"><D></D></D>\'+\'</1e></1e>\'},5n:[],6V:L,X:[],72:[\'5y\',\'3l\',\'6O\',\'6K\',\'6I\',\'1M\',\'3j\',\'cc\',\'ca\',\'c9\',\'8R\',\'bo\',\'c1\',\'bU\',\'8N\',\'8p\',\'3Y\',\'5h\',\'3t\',\'3Z\',\'7a\',\'H\',\'N\',\'5U\',\'7D\',\'4l\',\'bT\',\'bS\',\'bQ\',\'2x\',\'7t\',\'3E\',\'4q\',\'3i\',\'8A\',\'7b\',\'2N\',\'3H\',\'6P\',\'9D\',\'2Y\',\'3P\',\'b2\',\'aY\',\'1a\'],1N:[],8B:0,6W:{x:[\'aF\',\'19\',\'3Q\',\'3h\',\'aJ\'],y:[\'5w\',\'1c\',\'8v\',\'3T\',\'6H\']},6y:{},8N:{},8R:{},8A:{8J:{},24:{},8H:{}},5H:[],6u:[],4f:{},42:[],6C:[],4K:[],6i:{},8q:{},1r:(18.5e&&!1q.3M),5b:/aN/.16(3U.68),4k:/bR.+aV:1\\.[0-8].+aO/.16(3U.68),$:q(1w){E 18.7o(1w)},2w:q(1R,5C){1R[1R.1b]=5C},1f:q(8S,3K,3G,4U,8X){m C=18.1f(8S);k(3K)j.8C(C,3K);k(8X)j.J(C,{7J:0,6M:\'1H\',bV:0});k(3G)j.J(C,3G);k(4U)4U.1S(C);E C},8C:q(C,3K){S(m x 35 3K)C[x]=3K[x]},J:q(C,3G){S(m x 35 3G){k(j.1r&&x==\'28\'){k(3G[x]>0.99)C.F.7s(\'71\');M C.F.71=\'bW(28=\'+(3G[x]*2U)+\')\'}M C.F[x]=3G[x]}},3S:q(){m 1R=3U.ay.5R("bZ");E 1R[1]?9h(1R[1]):I},5x:q(){m 4g=18.8D&&18.8D!=\'aS\'?18.5E:18.1d;m b=18.1d;m 7i=(1q.6e&&1q.8W)?1q.6e+1q.8W:(b.7l>b.1z?b.7l:b.1z),7q=(1q.5V&&1q.8V)?1q.5V+1q.8V:(b.8T>b.1s?b.8T:b.1s),4N=j.1r?4g.7l:(18.5E.7k||64.6e),4X=j.1r?4g.7g:(18.5E.7g||64.5V);m H=j.1r?4g.7k:(18.5E.7k||64.6e),N=j.1r?4g.7g:64.5V;E{4N:7i<4N?4N:7i,4X:7q<4X?4X:7q,H:H,N:N,5t:j.1r?4g.5t:b7,5s:j.1r?4g.5s:bn}},5I:q(C){k(/4Z/i.16(C.3W)){m 5T=18.2L(\'1F\');S(m i=0;i<5T.1b;i++){m u=5T[i].bj;k(u&&u.2h(/^.*?#/,\'\')==C.2Z.4i){C=5T[i];5k}}}m p={x:C.9c,y:C.7E};4E(C.8U){C=C.8U;p.x+=C.9c;p.y+=C.7E;k(C!=18.1d&&C!=18.5E){p.x-=C.5t;p.y-=C.5s}}E p},2A:q(a,24,3D){k(a.4D)E 24;1t{21 j.4u(a,24,3D);E 1k}1u(e){E L}},8b:q(a,24,3D){k(a.4D)E 24;S(m i=0;i<j.42.1b;i++){k(j.42[i]&&j.42[i].a==a){j.42[i].aP();j.42[i]=I;E 1k}}1t{j.9y=L;21 j.4u(a,24,3D,\'4e\');E 1k}1u(e){E L}},76:q(){E j.1f(\'1e\',{1h:\'Q-4e-O\',2v:j.7C(j.7R.9d)})},48:q(C,3W,1h){m Y=C.2L(3W);S(m i=0;i<Y.1b;i++){k((21 54(1h)).16(Y[i].1h)){E Y[i]}}E I},7C:q(s){s=s.2h(/\\s/g,\' \');m 2f=/{j\\.W\\.([^}]+)\\}/g,63=s.1B(2f),W;S(m i=0;i<63.1b;i++){W=63[i].2h(2f,"$1");k(1K j.W[W]!=\'2j\')s=s.2h(63[i],j.W[W])}E s},70:q(){m Y=18.2L(\'a\');S(m i=0;i<Y.1b;i++){k(/^Q$/.16(Y[i].6k)){k(j.1o(j,\'9w\',{4Q:Y[i]})){Y[i].2o=q(){E j.2A(f)}}Y[i].7s(\'6k\')}m 1B=/^Q-(2W|1i)$/.b9(Y[i].6k);k(1B){(q(){m t=1B[1];k(j.1o(j,\'9w\',{4Q:Y[i],14:t})){Y[i].2o=q(){E j.8b(f,{2x:t})}}})();Y[i].7s(\'6k\')}}k(!j.aH)26(j.70,50);M j.51()},6Q:q(a){S(m i=0;i<j.4K.1b;i++){k(j.4K[i][0]==a){m c=j.4K[i][1];j.4K[i][1]=c.4L(1);E c}}E I},aL:q(e){m 1R=j.7u();S(m i=0;i<1R.4y.1b;i++){m a=1R.4y[i];k(j.3X(a,\'2x\')==\'2W\'&&j.3X(a,\'7t\'))j.2w(j.6C,a)}j.7Y(0)},7Y:q(i){k(!j.6C[i])E;m a=j.6C[i];m 5q=j.4W(j.3X(a,\'7a\'));k(!5q)5q=j.76();m 2W=21 j.5Y(a,5q,1);2W.7j=q(){};2W.36=q(){j.2w(j.4K,[a,5q]);j.7Y(i+1)};2W.7r()},9s:q(){m 7v=0,6x=-1;S(m i=0;i<j.X.1b;i++){k(j.X[i]){k(j.X[i].T.F.1J&&j.X[i].T.F.1J>7v){7v=j.X[i].T.F.1J;6x=i}}}k(6x==-1)j.2P=-1;M j.X[6x].3F()},3X:q(a,5p){a.4D=a.2o;m p=a.4D?a.4D():I;a.4D=I;E(p&&1K p[5p]!=\'2j\')?p[5p]:(1K j[5p]!=\'2j\'?j[5p]:I)},5S:q(a){m 1a=j.3X(a,\'1a\');k(1a)E 1a;E a.1T},4W:q(1w){m 1U=j.$(1w),47=j.8q[1w],a={};k(!1U&&!47)E I;k(!47){47=1U.4L(L);47.1w=\'\';j.8q[1w]=47;E 1U}M{E 47.4L(L)}},4r:q(d){j.8g.1S(d);j.8g.2v=\'\'},2l:q(A){k(!j.2t){j.2t=j.1f(\'1e\',{1h:\'Q-bd\',5u:\'\',2o:q(){k(j.1o(j,\'bc\'))j.1V()}},{1m:\'2c\',19:0},j.2p,L);j.2G(1q,\'3O\',j.5r)}j.2t.F.1A=\'\';j.5r();j.2t.5u+=\'|\'+A.U;k(j.4k&&j.9v)j.2t.F.5D=\'8i(\'+j.5j+\'ba.9e)\';M j.2g(j.2t,0,A.3Z,j.6F)},7y:q(U){k(!j.2t)E;k(1K U!=\'2j\')j.2t.5u=j.2t.5u.2h(\'|\'+U,\'\');k((1K U!=\'2j\'&&j.2t.5u!=\'\')||(j.2J&&j.3X(j.2J,\'3Z\')))E;k(j.4k&&j.9v)j.2t.F.5D=\'1H\';M j.2g(j.2t,j.3Z,0,j.6F);26(q(){j.J(j.2t,{1A:\'1H\',H:0,N:0})},j.6F)},5r:q(A){k(!j.2t)E;m 2X=j.5x();m h=(j.1r&&A&&A.T)?2b(A.T.F.1c)+2b(A.T.F.N)+(A.11?A.11.2T:0):0;j.J(j.2t,{H:2X.4N+\'B\',N:1g.41(2X.4X,h)+\'B\'})},6p:q(C,1G){j.51();m A=j.R=j.3k(C);1t{m 9u=j.2J=A.6S(1G);9u.2o()}1u(e){j.R=j.2J=I}1t{A.1V()}1u(e){}E 1k},2K:q(C){E j.6p(C,-1)},1x:q(C){E j.6p(C,1)},5P:q(e){k(!e)e=1q.2C;k(!e.1X)e.1X=e.88;k(e.1X.9x)E L;k(!j.1o(j,\'bm\',e))E L;m 1G=I;bi(e.b3){3f 32:1G=2;5k;3f 34:3f 39:3f 40:1G=1;5k;3f 8:3f 33:3f 37:3f 38:1G=-1;5k;3f 27:3f 13:1G=0}k(1G!==I){k(1G!=2)j.4A(18,1q.3M?\'81\':\'80\',j.5P);k(!j.8L)E L;k(e.6s)e.6s();M e.b8=1k;m A=j.3k();k(A){k(1G==0){A.1V()}M k(1G==2){k(A.1y)A.1y.9I()}M{k(A.1y)A.1y.2R();j.6p(A.U,1G)}E 1k}}E L},c2:q(1p){j.2w(j.1N,1p)},cv:q(52){j.2w(j.6u,52)},8e:q(4Q){m C,2f=/^Q-T-([0-9]+)$/;C=4Q;4E(C.2Z){k(C.1w&&2f.16(C.1w))E C.1w.2h(2f,"$1");C=C.2Z}C=4Q;4E(C.2Z){k(C.3W&&j.5O(C)){S(m U=0;U<j.X.1b;U++){m A=j.X[U];k(A&&A.a==C)E U}}C=C.2Z}E I},3k:q(C){k(1K C==\'2j\')E j.X[j.2P]||I;k(1K C==\'3s\')E j.X[C]||I;k(1K C==\'8y\')C=j.$(C);E j.X[j.8e(C)]||I},5O:q(a){E(a.2o&&a.2o.9K().2h(/\\s/g,\' \').1B(/j.(dr|e)dq/))},aj:q(){S(m i=0;i<j.X.1b;i++)k(j.X[i]&&j.X[i].5B)j.9s()},1o:q(4O,8u,9t){E 4O&&4O[8u]?(4O[8u](4O,9t)!==1k):L},7L:q(e){k(!e)e=1q.2C;k(e.cf>1)E L;k(!e.1X)e.1X=e.88;m C=e.1X;4E(C.2Z&&!(/Q-(2O|2I|4e|3O)/.16(C.1h))){C=C.2Z}m A=j.3k(C);k(A&&(A.4P||!A.5B))E L;k(A&&e.14==\'7H\'){k(e.1X.9x)E L;m 1B=C.1h.1B(/Q-(2O|2I|3O)/);k(1B){j.2s={A:A,14:1B[1],19:A.x.G,H:A.x.D,1c:A.y.G,N:A.y.D,9C:e.6m,9B:e.6t};j.2G(18,\'6D\',j.65);k(e.6s)e.6s();k(/Q-(2O|4e)-8f/.16(A.O.1h)){A.3F();j.8x=L}E 1k}M k(/Q-4e/.16(C.1h)&&j.2P!=A.U){A.3F();A.5Q()}}M k(e.14==\'aC\'){j.4A(18,\'6D\',j.65);k(j.2s){k(j.2s.14==\'2O\')j.2s.A.O.F.4B=j.53;m 3g=j.2s.3g;k(!3g&&!j.8x&&!/(2I|3O)/.16(j.2s.14)){k(j.1o(A,\'do\'))A.1V()}M k(3g||(!3g&&j.9y)){j.2s.A.5Q()}k(j.2s.A.3w)j.2s.A.3w.F.1A=\'1H\';k(3g)j.1o(j.2s.A,\'ds\',j.2s);k(3g)j.5r(A);j.8x=1k;j.2s=I}M k(/Q-2O-8f/.16(C.1h)){C.F.4B=j.53}}E 1k},65:q(e){k(!j.2s)E L;k(!e)e=1q.2C;m a=j.2s,A=a.A;k(A.1i){k(!A.3w)A.3w=j.1f(\'1e\',I,{1m:\'2c\',H:A.x.D+\'B\',N:A.y.D+\'B\',19:0,1c:0,1J:4,5D:(j.1r?\'dt\':\'1H\'),28:0.dw},A.T,L);k(A.3w.F.1A==\'1H\')A.3w.F.1A=\'\'}a.5L=e.6m-a.9C;a.5J=e.6t-a.9B;m 85=1g.du(1g.9A(a.5L,2)+1g.9A(a.5J,2));k(!a.3g)a.3g=(a.14!=\'2O\'&&85>0)||(85>(j.dm||5));k(a.3g&&e.6m>5&&e.6t>5){k(!j.1o(A,\'dg\',a))E 1k;k(a.14==\'3O\')A.3O(a);M A.2I(a)}E 1k},9l:q(e){1t{k(!e)e=1q.2C;m 56=/df/i.16(e.14);k(!e.1X)e.1X=e.88;k(j.1r)e.84=56?e.dd:e.dy;m A=j.3k(e.1X);k(!A.5B)E;k(!A||!e.84||j.3k(e.84)==A||j.2s)E;j.1o(A,56?\'di\':\'dl\',e);S(m i=0;i<A.1N.1b;i++){m o=j.$(\'2i\'+A.1N[i]);k(o&&o.4F){m 29=56?0:o.28,P=56?o.28:0;j.2g(o,29,P)}}}1u(e){}},2G:q(C,2C,3A){1t{C.2G(2C,3A,1k)}1u(e){1t{C.9z(\'5A\'+2C,3A);C.dk(\'5A\'+2C,3A)}1u(e){C[\'5A\'+2C]=3A}}},4A:q(C,2C,3A){1t{C.4A(2C,3A,1k)}1u(e){1t{C.9z(\'5A\'+2C,3A)}1u(e){C[\'5A\'+2C]=I}}},5M:q(i){k(j.6V&&j.5n[i]&&j.5n[i]!=\'2j\'){m 1F=18.1f(\'1F\');1F.4c=q(){1F=I;j.5M(i+1)};1F.1a=j.5n[i]}},aE:q(3s){k(3s&&1K 3s!=\'dD\')j.82=3s;m 1R=j.7u();S(m i=0;i<1R.4v.1b&&i<j.82;i++){j.2w(j.5n,j.5S(1R.4v[i]))}k(j.1M)21 j.5o(j.1M,q(){j.5M(0)});M j.5M(0);m 5i=j.1f(\'1F\',{1a:j.5j+j.8h})},6f:q(){k(!j.2p){j.2p=j.1f(\'1e\',I,{1m:\'2c\',19:0,1c:0,H:\'2U%\',1J:j.4H},18.1d,L);j.22=j.1f(\'a\',{1h:\'Q-22\',1Y:j.W.9r,2v:j.W.9q,1T:\'5X:;\'},{1m:\'2c\',1c:\'-3J\',28:j.9i,1J:1},j.2p);j.8g=j.1f(\'1e\',I,{1A:\'1H\'},j.2p);j.3d=j.1f(\'1e\',I,{8F:\'8K\',dC:\'dA\'},I,L);1g.dB=q(t,b,c,d){E c*t/d+b};1g.b1=q(t,b,c,d){E c*(t/=d)*t+b};1g.b0=q(t,b,c,d){k((t/=d/2)<1)E c/2*t*t+b;E-c/2*((--t)*(t-2)-1)+b};S(m x 35 j.6E){k(1K j[x]!=\'2j\')j.W[x]=j[x];M k(1K j.W[x]==\'2j\'&&1K j.6E[x]!=\'2j\')j.W[x]=j.6E[x]}j.a9=(j.1r&&j.3S()<=6&&4s.9V==\'9R:\');j.1o(f,\'dz\')}},av:q(){j.9o=L;k(j.6U)j.6U()},51:q(){m Y=18.2L(\'*\'),5e=[],4v=[],4y=[],30={},2f;S(m i=0;i<Y.1b;i++){2f=j.5O(Y[i]);k(2f){j.2w(5e,Y[i]);k(2f[0]==\'j.2A\')j.2w(4v,Y[i]);M k(2f[0]==\'j.8b\')j.2w(4y,Y[i]);m g=j.3X(Y[i],\'2Y\')||\'1H\';k(!30[g])30[g]=[];j.2w(30[g],Y[i])}}j.44={5e:5e,30:30,4v:4v,4y:4y};E j.44},7u:q(){E j.44||j.51()},2g:q(C,o,4a,3x,i,3r){k(1K i==\'2j\'){k(1K 3x!=\'3s\')3x=5c;k(3x<25){j.J(C,{28:4a});E}i=j.5H.1b;3r=4a>o?1:-1;m 5d=(25/(3x-3x%25))*1g.an(o-4a)}o=9h(o);m 73=(C.2g===0||C.2g===1k||(C.2g==2&&j.1r));C.F.1v=((73?4a:o)<=0)?\'1n\':\'1Z\';k(73||o<0||(3r==1&&o>4a))E;k(C.46&&C.46.i!=i){9X(j.5H[C.46.i]);o=C.46.o}C.46={i:i,o:o,5d:(5d||C.46.5d)};C.F.1v=(o<=0)?\'1n\':\'1Z\';j.J(C,{28:o});j.5H[i]=26(q(){j.2g(C,o+C.46.5d*3r,4a,I,i,3r)},25)},1V:q(C){m A=j.3k(C);k(A)A.1V();E 1k}};j.5o=q(1M,36){f.36=36;f.1M=1M;m v=j.3S(),5K;f.6Z=j.1r&&v>=5.5&&v<7;k(!1M){k(36)36();E}j.6f();f.2B=j.1f(\'2B\',{cA:0},{1v:\'1n\',1m:\'2c\',cy:\'cx\'},j.2p,L);m 77=j.1f(\'77\',I,I,f.2B,1);f.2D=[];S(m i=0;i<=8;i++){k(i%3==0)5K=j.1f(\'5K\',I,{N:\'1E\'},77,L);f.2D[i]=j.1f(\'2D\',I,I,5K,L);m F=i!=4?{cw:0,cB:0}:{1m:\'4j\'};j.J(f.2D[i],F)}f.2D[4].1h=1M;f.9g()};j.5o.6c={9g:q(){m 1a=j.5j+(j.cH||"cG/")+f.1M+".9e";m 9f=j.5b?j.2p:I;f.3n=j.1f(\'1F\',I,{1m:\'2c\',19:\'-3J\',1c:\'-3J\'},9f,L);m 3c=f;f.3n.4c=q(){3c.9j()};f.3n.1a=1a},9j:q(){m o=f.2T=f.3n.H/4,1C=[[0,0],[0,-4],[-2,0],[0,-8],0,[-2,-8],[0,-2],[0,-6],[-2,-2]],2l={N:(2*o)+\'B\',H:(2*o)+\'B\'};j.4r(f.3n);S(m i=0;i<=8;i++){k(1C[i]){k(f.6Z){m w=(i==1||i==7)?\'2U%\':f.3n.H+\'B\';m 1e=j.1f(\'1e\',I,{H:\'2U%\',N:\'2U%\',1m:\'4j\',2F:\'1n\'},f.2D[i],L);j.1f(\'1e\',I,{71:"cD:cE.ad.cu(ct=ck, 1a=\'"+f.3n.1a+"\')",1m:\'2c\',H:w,N:f.3n.N+\'B\',19:(1C[i][0]*o)+\'B\',1c:(1C[i][1]*o)+\'B\'},1e,L)}M{j.J(f.2D[i],{5D:\'8i(\'+f.3n.1a+\') \'+(1C[i][0]*o)+\'B \'+(1C[i][1]*o)+\'B\'})}k(1q.3M&&(i==3||i==5))j.1f(\'1e\',I,2l,f.2D[i],L);j.J(f.2D[i],2l)}}k(j.4f[f.1M])j.4f[f.1M].5F();j.4f[f.1M]=f;k(f.36)f.36()},3q:q(A,1C,9k){1C=1C||{x:A.x.G,y:A.y.G,w:A.x.D+A.x.V+A.x.1j,h:A.y.D+A.y.V+A.y.1j};k(9k)f.2B.F.1v=(1C.h>=4*f.2T)?\'1Z\':\'1n\';j.J(f.2B,{19:(1C.x-f.2T)+\'B\',1c:(1C.y-f.2T)+\'B\',H:(1C.w+2*(A.x.cb+f.2T))+\'B\'});1C.w+=2*(A.x.cb-f.2T);1C.h+=+2*(A.y.cb-f.2T);j.J(f.2D[4],{H:1C.w>=0?1C.w+\'B\':0,N:1C.h>=0?1C.h+\'B\':0});k(f.6Z)f.2D[3].F.N=f.2D[5].F.N=f.2D[4].F.N},5F:q(9p){k(9p)f.2B.F.1v=\'1n\';M j.4r(f.2B)}};j.4u=q(a,24,3D,2Q){k(18.6B&&j.1r&&!j.9o){j.6U=q(){21 j.4u(a,24,3D,2Q)};E}f.a=a;f.3D=3D;f.2Q=2Q||\'2O\';f.2q=(2Q==\'4e\');f.2S=!f.2q;j.6V=1k;f.1N=[];f.R=j.R;j.R=I;j.6f();m U=f.U=j.X.1b;S(m i=0;i<j.72.1b;i++){m 4i=j.72[i];f[4i]=24&&1K 24[4i]!=\'2j\'?24[4i]:j[4i]}k(!f.1a)f.1a=a.1T;m C=(24&&24.8s)?j.$(24.8s):a;C=f.9n=C.2L(\'1F\')[0]||C;f.6n=C.1w||a.1w;k(!j.1o(f,\'cg\'))E L;S(m i=0;i<j.X.1b;i++){k(j.X[i]&&j.X[i].a==a&&!(f.R&&f.3t[1]==\'4b\')){j.X[i].3F();E 1k}}S(m i=0;i<j.X.1b;i++){k(j.X[i]&&j.X[i].9n!=C&&!j.X[i].66){j.X[i].6Y()}}j.X[f.U]=f;k(!j.8l){k(j.X[U-1])j.X[U-1].1V();k(1K j.2P!=\'2j\'&&j.X[j.2P])j.X[j.2P].1V()}m 1C=j.5I(C);m x=f.x={};x.t=C.H?2b(C.H):C.1z;x.1P=1C.x;x.2V=(C.1z-x.t)/2;m y=f.y={};y.t=C.N?2b(C.N):C.1s;y.1P=1C.y;y.2V=(C.1s-y.t)/2;x.V=x.1j=y.V=y.1j=0;k(/4Z/i.16(C.3W))f.aA(C);f.T=j.1f(\'1e\',{1w:\'Q-T-\'+f.U,1h:f.7b},{1v:\'1n\',1m:\'2c\',1J:j.4H++},I,L);f.T.cm=f.T.cn=j.9l;k(f.2Q==\'2O\'&&f.3j==2)f.3j=0;k(!f.1M||(f.R&&f.2S&&f.3t[1]==\'4b\')){f[f.2Q+\'7d\']()}M k(j.4f[f.1M]){f.6R();f[f.2Q+\'7d\']()}M{f.4V();m A=f;21 j.5o(f.1M,q(){A.6R();A[A.2Q+\'7d\']()})}E L};j.4u.6c={6R:q(x,y){m o=f.11=j.4f[f.1M];o.2B.F.1J=f.T.F.1J;j.4f[f.1M]=I},4V:q(){k(f.66||f.22)E;f.22=j.22;m A=f;f.22.2o=q(){A.6Y()};k(!j.1o(f,\'cr\'))E;m A=f,l=(f.x.1P+f.x.2V+(f.x.t-f.22.1z)/2)+\'B\',t=(f.y.1P+(f.y.t-f.22.1s)/2)+\'B\';k(!23&&f.R&&f.3t[1]==\'4b\')m 23=f.R;k(23){l=(23.x.G+23.x.cb+23.x.V+(23.x.D-f.22.1z)/2)+\'B\';t=(23.y.G+23.y.cb+23.y.V+(23.y.D-f.22.1s)/2)+\'B\';f.22.F.1J=j.4H++}26(q(){k(A.22)j.J(A.22,{19:l,1c:t})},2U)},cq:q(){m A=f;m 1F=18.1f(\'1F\');f.O=1F;1F.4c=q(){k(j.X[A.U])A.4R()};k(j.co)1F.cp=q(){E 1k};1F.1h=\'Q-2O\';j.J(1F,{1v:\'1n\',1A:\'4S\',1m:\'2c\',6P:\'3J\',1J:3});1F.1Y=j.W.8j;k(j.5b)j.2p.1S(1F);k(j.1r&&j.cI)1F.1a=I;1F.1a=f.1a;f.4V()},cJ:q(){k(!j.1o(f,\'d3\'))E;f.O=j.6Q(f.a);k(!f.O)f.O=j.4W(f.7a);k(!f.O)f.O=j.76();f.8o([\'67\']);k(f.67){m 1d=j.48(f.O,\'1e\',\'Q-1d\');k(1d)1d.1S(f.67);f.67.F.1A=\'4S\'}j.1o(f,\'cZ\');f.1l=f.O;k(/(3L|1i)/.16(f.2x))f.7I(f.1l);j.2p.1S(f.T);j.J(f.T,{1m:\'d0\',7J:\'0 \'+j.6q+\'B 0 \'+j.3C+\'B\'});f.O=j.1f(\'1e\',{1h:\'Q-4e\'},{1m:\'4j\',1J:3,2F:\'1n\'},f.T);f.4G=j.1f(\'1e\',I,I,f.O,1);f.4G.1S(f.1l);j.J(f.1l,{1m:\'4j\',1A:\'4S\'});k(f.H)f.1l.F.H=f.H+\'B\';k(f.N)f.1l.F.N=f.N+\'B\';k(f.1l.1z<f.2N)f.1l.F.H=f.2N+\'B\';k(f.2x==\'2W\'&&!j.6Q(f.a)){f.4V();m 2W=21 j.5Y(f.a,f.1l);m A=f;2W.36=q(){k(j.X[A.U])A.4R()};2W.7j=q(){4s.1T=A.1a};2W.7r()}M k(f.2x==\'1i\'&&f.3i==\'5l\'){f.6j()}M f.4R()},4R:q(){1t{k(!f.O)E;f.O.4c=I;k(f.66)E;M f.66=L;m x=f.x,y=f.y;k(f.22){j.J(f.22,{1c:\'-3J\'});f.22=I;j.1o(f,\'9E\')}f.3N=j.3N;k(f.2S){x.Z=f.O.H;y.Z=f.O.N;j.J(f.O,{H:f.x.t+\'B\',N:f.y.t+\'B\'})}M k(f.7B)f.7B();f.T.1S(f.O);j.J(f.T,{19:f.x.1P+\'B\',1c:f.y.1P+\'B\'});j.2p.1S(f.T);x.cb=(f.O.1z-f.x.t)/2;y.cb=(f.O.1s-f.y.t)/2;m 9m=j.6q+2*x.cb;f.3N+=2*y.cb;f.9N();f.au();m 2H=x.Z/y.Z;m 2N=f.5y?f.2N:x.Z;m 3H=f.5y?f.3H:y.Z;m 1O={x:\'1E\',y:\'1E\'};k(f.6O==\'3Q\'){1O.x=\'3Q\';1O.y=\'3Q\'}M{k(f.3l.1B(/^1c/))1O.y=I;k(f.3l.1B(/3h$/))1O.x=\'41\';k(f.3l.1B(/^3T/))1O.y=\'41\';k(f.3l.1B(/19$/))1O.x=I}m 2X=j.5x();x.G=x.1P-x.cb+x.2V;x.D=1g.G(x.Z,f.6P||x.Z);x.3e=1g.G(x.Z,2N);x.1O=1O.x;x.1X=f.6K;x.2M=j.3C;x.3y=9m;x.3B=2X.5t;x.3p=2X.H;f.1O(x);y.G=y.1P-y.cb+y.2V;y.D=1g.G(y.Z,f.9D||y.Z);y.3e=1g.G(y.Z,3H);y.1O=1O.y;y.1X=f.6I;y.2M=j.4h;y.3y=f.3N;y.3B=2X.5s;y.3p=2X.N;f.1O(y);k(f.2q)f.aK();k(f.1I)f.4m(0,1);k(f.5y){k(f.2S)f.aG(2H);M f.89();m 1W=f.1y;k(1W&&f.R&&1W.d5&&1W.7n){m 1C=1W.9M.1m||\'\';S(m 2l 35 j.6W)S(m i=0;i<5;i++){k(1C.1B(j.6W[2l][i]))f[2l].G=f.R[2l].G+(f.R[2l].V-f[2l].V)+(f.R[2l].D-f[2l].D)*[0,0,.5,1,1][i]}}k(f.2S&&f.x.Z>f.x.D){f.ap();k(f.1N.1b==1)f.4m()}}f.8n()}1u(e){1q.4s.1T=f.1a}},7I:q(4U,1E){m c=j.48(4U,\'6d\',\'Q-1d\');k(/(1i|3L)/.16(f.2x)){k(f.3E)c.F.H=f.3E+\'B\';k(f.4q)c.F.N=f.4q+\'B\'}},6j:q(){k(f.8G)E;m A=f;f.1d=j.48(f.1l,\'6d\',\'Q-1d\');k(f.2x==\'1i\'){f.4V();m 5f=j.3d.4L(1);f.1d.1S(5f);f.da=f.1l.1z;k(!f.3E)f.3E=5f.1z;m 3V=f.1l.1s-f.1d.1s,h=f.4q||(j.5x()).N-3V-j.4h-j.3N,4c=f.3i==\'5l\'?\' 4c="k (j.X[\'+f.U+\']) j.X[\'+f.U+\'].4R()" \':\'\';f.1d.2v+=\'<1i 4i="j\'+(21 d8()).d6()+\'" d7="0" U="\'+f.U+\'" \'+\' cY="L" F="H:\'+f.3E+\'B; N:\'+h+\'B" \'+4c+\' 1a="\'+f.1a+\'"></1i>\';f.5f=f.1d.2L(\'1e\')[0];f.1i=f.1d.2L(\'1i\')[0];k(f.3i==\'87\')f.7M()}k(f.2x==\'3L\'){f.1d.1w=f.1d.1w||\'j-cO-1w-\'+f.U;m a=f.8A;k(1K a.24.8I==\'2j\')a.24.8I=\'cP\';k(86)86.cN(f.1a,f.1d.1w,f.3E,f.4q,a.cM||\'7\',a.cK,a.8J,a.24,a.8H)}f.8G=L},7B:q(){k(f.1i&&!f.4q){m h;1t{m 2k=f.1i.7p||f.1i.59.18;m 3d=2k.1f(\'1e\');3d.F.8F=\'8K\';2k.1d.1S(3d);h=3d.7E;k(j.1r)h+=2b(2k.1d.6l.4h)+2b(2k.1d.6l.3N)-1}1u(e){h=cT}f.1i.F.N=f.1d.F.N=h+\'B\'}f.1l.1S(j.3d);k(!f.x.Z)f.x.Z=f.1l.1z;f.y.Z=f.1l.1s;f.1l.6J(j.3d);k(j.1r&&f.8E>2b(f.1l.6l.N)){f.8E=2b(f.1l.6l.N)}j.J(f.T,{1m:\'2c\',7J:\'0\'});j.J(f.O,{H:f.x.t+\'B\',N:f.y.t+\'B\'})},7M:q(){m 3v=f.1l.1z-f.5f.1z;k(3v<0)3v=0;m 3V=f.1l.1s-f.1d.1s;j.J(f.1i,{H:(f.x.D-3v)+\'B\',N:(f.y.D-3V)+\'B\'});j.J(f.1d,{H:f.1i.F.H,N:f.1i.F.N});f.4C=f.1i;f.2y=f.4C},aK:q(){f.7I(f.1l);k(f.2x==\'3L\'&&f.3i==\'5l\')f.6j();k(f.x.D<f.x.Z&&!f.5U)f.x.D=f.x.Z;k(f.y.D<f.y.Z&&!f.7D)f.y.D=f.y.Z;f.2y=f.1l;j.J(f.4G,{H:f.x.D+\'B\',1m:\'4j\',19:(f.x.G-f.x.1P)+\'B\',1c:(f.y.G-f.y.1P)+\'B\'});j.J(f.1l,{6M:\'1H\',H:\'1E\',N:\'1E\'});m 1U=j.48(f.1l,\'6d\',\'Q-1d\');k(1U&&!/(1i|3L)/.16(f.2x)){m 4t=1U;1U=j.1f(4t.cS,I,{2F:\'1n\'},I,L);4t.2Z.cU(1U,4t);1U.1S(j.3d);1U.1S(4t);m 3v=f.1l.1z-1U.1z;m 3V=f.1l.1s-1U.1s;1U.6J(j.3d);m 62=j.5b||3U.aM==\'aU\'?1:0;j.J(1U,{H:(f.x.D-3v-62)+\'B\',N:(f.y.D-3V)+\'B\',2F:\'1E\',1m:\'4j\'});k(62&&4t.1s>1U.1s){1U.F.H=(2b(1U.F.H)+62)+\'B\'}f.4C=1U;f.2y=f.4C}k(f.1i&&f.3i==\'5l\')f.7M();k(!f.4C&&f.y.D<f.4G.1s)f.2y=f.O;k(f.2y==f.O&&!f.5U&&!/(1i|3L)/.16(f.2x)){f.x.D+=17}k(f.2y&&f.2y.1s>f.2y.2Z.1s){26("1t { j.X["+f.U+"].2y.F.2F = \'1E\'; } 1u(e) {}",j.7c)}},aA:q(4Z){m c=4Z.cV.5R(\',\');S(m i=0;i<c.1b;i++)c[i]=2b(c[i]);k(4Z.cW.cR()==\'cQ\'){f.x.1P+=c[0]-c[2];f.y.1P+=c[1]-c[2];f.x.t=f.y.t=2*c[2]}M{m 58,5m,57=58=c[0],4Y=5m=c[1];S(m i=0;i<c.1b;i++){k(i%2==0){57=1g.G(57,c[i]);58=1g.41(58,c[i])}M{4Y=1g.G(4Y,c[i]);5m=1g.41(5m,c[i])}}f.x.1P+=57;f.x.t=58-57;f.y.1P+=4Y;f.y.t=5m-4Y}},1O:q(p,4x){m 23,2l=p==f.x?\'x\':\'y\';k(p.1X&&p.1X.1B(/ /)){23=p.1X.5R(\' \');p.1X=23[0]}k(p.1X&&j.$(p.1X)){p.G=j.5I(j.$(p.1X))[2l];k(23&&23[1]&&23[1].1B(/^[-]?[0-9]+B$/))p.G+=2b(23[1])}M k(p.1O==\'1E\'||p.1O==\'3Q\'){m 7w=1k;m 4o=L;k(p.1O==\'3Q\')p.G=1g.3R(p.3B+(p.3p-p.D-p.3y-p.V-p.1j)/2);M p.G=1g.3R(p.G-((p.D+p.V+p.1j-p.t)/2));k(p.G<p.3B+p.2M){p.G=p.3B+p.2M;7w=L}k(!4x&&p.D<p.3e){p.D=p.3e;4o=1k}k(p.G+p.D+p.V+p.1j>p.3B+p.3p-p.3y){k(!4x&&7w&&4o){p.D=p.3p-p.2M-p.3y}M k(p.D+p.V+p.1j<p.3p-p.2M-p.3y){p.G=p.3B+p.3p-p.D-p.2M-p.3y-p.V-p.1j}M{p.G=p.3B+p.2M;k(!4x&&4o)p.D=p.3p-p.2M-p.3y}}k(!4x&&p.D<p.3e){p.D=p.3e;4o=1k}}M k(p.1O==\'41\'){p.G=1g.cL(p.G-p.D+p.t)}k(p.G<p.2M){m aD=p.G;p.G=p.2M;k(4o&&!4x)p.D=p.D-(p.G-aD)}},aG:q(2H){m x=f.x,y=f.y;m 5W=1k;k(x.D/y.D>2H){ x.D=y.D*2H;k(x.D<x.3e){x.D=x.3e;y.D=x.D/2H}5W=L}M k(x.D/y.D<2H){ m cX=y.D;y.D=x.D/2H;5W=L}f.89(2H);k(5W){x.G=x.1P-x.cb+x.2V;x.3e=x.D;f.1O(x,L);y.G=y.1P-y.cb+y.2V;y.3e=y.D;f.1O(y,L);k(f.1I)f.4m()}},89:q(2H){m x=f.x,y=f.y;k(f.1I){4E(y.D>f.3H&&x.D>f.2N&&y.2M+y.V+y.D+y.1j+y.3y>y.3p){y.D-=10;k(2H)x.D=y.D*2H;f.4m(0,1)}}},d9:q(){j.J(f.2y,{N:\'1E\',H:\'1E\'});f.x.D=f.1l.1z;f.y.D=f.1l.1s;m K={H:f.x.D+\'B\',N:f.y.D+\'B\'};j.J(f.O,K);k(f.11)f.11.3q(f)},8n:q(){m 2r={x:f.x.G-20,y:f.y.G-20,w:f.x.D+40,h:f.y.D+40};j.5Z=(j.1r&&j.3S()<7);k(j.5Z)f.31(\'7A\',\'1n\',2r);j.61=((1q.3M&&3U.ay<9)||3U.aM==\'aU\'||(j.1r&&j.3S()<5.5));k(j.61)f.31(\'7z\',\'1n\',2r);k(j.4k)f.31(\'*\',\'1n\',2r);j.1o(f,\'d4\');f.7Z(1,{2n:f.x.1P+f.x.2V-f.x.cb,2m:f.y.1P+f.y.2V-f.y.cb,2z:f.x.t,2u:f.y.t,2e:0,3b:0,2a:0,3a:0,o:j.83},{2n:f.x.G,2m:f.y.G,2z:f.x.D,2u:f.y.D,2e:f.x.V,2a:f.y.V,3b:f.x.1j,3a:f.y.1j,o:f.11?f.11.2T:0},j.7c,j.aW)},7Z:q(1Q,29,P,3x,43){m 45=f.3t,8t=1Q?(f.R?f.R.a:I):j.2J,t=(45[1]&&8t&&j.3X(8t,\'3t\')[1]==45[1])?45[1]:45[0];k(1Q&&f.2q&&45[1]==\'4b\')t=45[1]=\'2g\';k(f[t]&&t!=\'2A\'){f[t](1Q,29,P);E}k(1Q)j.J(f.T,{28:1});k(f.11&&!f.3j){k(1Q)f.11.3q(f);M f.11.5F((f.2q&&f.4l))}k(!1Q&&f.1I){k(f.1y){m c=f.1y.3u;k(j.3k(c)==f)c.2Z.6J(c)}k(f.2q&&f.4l){f.1I.F.1c=\'-3J\';j.2p.1S(f.1I)}M j.4r(f.1I)}k(f.aY){29.1G=1Q?0:1;P.1G=1Q}m t,A=f,3P=1g[f.3P]||1g.b1;k(!1Q)3P=1g[f.b2]||3P;S(m i=1;i<=43;i++){t=1g.3R(i*(3x/43));(q(){m 74=i,K={};S(m x 35 29){K[x]=3P(t,29[x],P[x]-29[x],3x);k(!/^1G$/.16(x))K[x]=1g.3R(K[x])}26(q(){k(1Q&&74==1){A.O.F.1v=\'1Z\';A.a.1h+=\' Q-7x-3l\'}A.6L(K)},t)})()}k(1Q){26(q(){k(A.11)A.11.2B.F.1v="1Z"},t);26(q(){A.60()},t+50)}M 26(q(){A.5z()},t)},6L:q(P){1t{k(P.1G)j.J(f.T,{28:P.1G});j.J(f.T,{H:(P.2z+P.2e+P.3b+2*f.x.cb)+\'B\',N:(P.2u+P.2a+P.3a+2*f.y.cb)+\'B\',19:P.2n+\'B\',1c:P.2m+\'B\'});j.J(f.O,{1c:P.2a+\'B\',19:P.2e+\'B\',H:P.2z+\'B\',N:P.2u+\'B\'});k(f.2q){j.J(f.4G,{19:(f.x.G-P.2n+f.x.V-P.2e)+\'B\',1c:(f.y.G-P.2m+f.y.V-P.2a)+\'B\'});f.1l.F.1v=\'1Z\'}k(f.11&&f.3j){m o=f.11.2T-P.o;f.11.3q(f,{x:P.2n+o,y:P.2m+o,w:P.2z+P.2e+P.3b+ -2*o,h:P.2u+P.2a+P.3a+ -2*o},1)}f.T.F.1v=\'1Z\'}1u(e){1q.4s.1T=f.1a}},2g:q(1Q,29,P){f.3j=1k;m A=f,t=1Q?5c:0;k(1Q){j.J(f.T,{28:0});f.6L(P);f.O.F.1v=\'1Z\';j.2g(f.T,0,1)}k(f.11){f.11.2B.F.1J=f.T.F.1J;m 3r=1Q||-1;S(m i=29.o;3r*i<=3r*P.o;i+=3r,t+=25){(q(){m o=1Q?P.o-i:29.o-i;26(q(){A.11.3q(A,{x:(A.x.G+o),y:(A.y.G+o),w:(A.x.D-2*o+A.x.V+A.x.1j),h:(A.y.D-2*o+A.y.V+A.y.1j)},1)},t)})()}}k(1Q)26(q(){A.60()},t+50);M{26(q(){k(A.11)A.11.5F(A.4l);j.2g(A.T,1,0);26(q(){A.5z()},5c)},t)}},4b:q(1Q,29,P){k(!1Q)E;m A=f,43=2b(j.6g/25),R=f.R;j.4A(18,\'6D\',j.65);j.J(f.O,{H:P.2z+\'B\',N:P.2u+\'B\'});f.11=f.R.11;f.R.11=I;f.4n=j.1f(\'1e\',{1h:\'Q-2O\'},{1m:\'2c\',1J:4,2F:\'1n\',1A:\'1H\'});m 6N={9W:R,a0:f};S(m x 35 6N){f[x]=6N[x].O.4L(1);j.J(f[x],{1m:\'2c\',6M:0,1v:\'1Z\'});f.4n.1S(f[x])}f.T.1S(f.4n);29={2n:R.x.G,2z:R.x.D,2e:R.x.V,3b:R.x.1j,2m:R.y.G,2u:R.y.D,2a:R.y.V,3a:R.y.1j,o:1/43};P.2u=f.y.D;P.o=1;m t,3P=1g.b0;f.79(29);q 7e(){k(A.1I){A.T.1S(A.1I);S(m i=0;i<A.R.1N.1b;i++){m 3m=j.$(\'2i\'+A.R.1N[i]);k(3m.9P===A.U)A.1I.1S(3m);M j.2g(3m,3m.28,0)}}A.4n.F.1A=\'\';A.R.O.F.1A=\'1H\'};k(/aV:1\\.[0-8].+aO/.16(3U.68))26(7e,0);M 7e();k(j.5b){m 1B=3U.68.1B(/aN\\/([0-9]{3})/);k(1B&&2b(1B[1])<d1)f.T.F.1v=\'1Z\'}S(m i=1;i<=43;i++){t=1g.3R(i*(j.6g/43));(q(){m K={},74=i;S(m x 35 29){m 5C=3P(t,29[x],P[x]-29[x],j.6g);K[x]=(x!=\'o\')?1g.3R(5C):5C}26(q(){A.79(K)},t)})()}26(q(){A.9Z()},t+2U)},79:q(K){1t{k(f.11)f.11.3q(f,{x:K.2n,y:K.2m,w:K.2z+K.2e+K.3b,h:K.2u+K.2a+K.3a},1);f.R.T.F.d2=\'cs(\'+(K.2m-f.R.y.G)+\'B, \'+(K.2z+K.2e+K.3b+2*f.R.x.cb+K.2n-f.R.x.G)+\'B, \'+(K.2u+K.2a+K.3a+2*f.R.y.cb+K.2m-f.R.y.G)+\'B, \'+(K.2n-f.R.x.G)+\'B)\';j.J(f.O,{1c:K.2a+\'B\',19:K.2e+\'B\',4h:(f.y.G-K.2m)+\'B\',3C:(f.x.G-K.2n)+\'B\'});j.J(f.T,{1c:K.2m+\'B\',19:K.2n+\'B\',H:(K.2e+K.3b+K.2z+2*f.x.cb)+\'B\',N:(K.2a+K.3a+K.2u+2*f.y.cb)+\'B\'});j.J(f.4n,{H:K.2z+\'B\',N:K.2u+\'B\',19:K.2e+\'B\',1c:K.2a+\'B\',1v:\'1Z\'});j.J(f.9W,{1c:(f.R.y.G-K.2m+f.R.y.V-K.2a)+\'B\',19:(f.R.x.G-K.2n+f.R.x.V-K.2e)+\'B\'});j.J(f.a0,{28:K.o,1c:(f.y.G-K.2m+f.y.V-K.2a)+\'B\',19:(f.x.G-K.2n+f.x.V-K.2e)+\'B\'});j.J(f.1I,{H:K.2z+\'B\',N:K.2u+\'B\',19:(K.2e+f.x.cb)+\'B\',1c:(K.2a+f.y.cb)+\'B\'})}1u(e){}},9Z:q(){f.T.F.5D=f.ch||\'\';f.T.F.1v=f.O.F.1v=\'1Z\';f.4n.F.1A=\'1H\';f.a.1h+=\' Q-7x-3l\';f.60();f.R.5z()},ar:q(o,C){k(!f.R)E 1k;S(m i=0;i<f.R.1N.1b;i++){m 3m=j.$(\'2i\'+f.R.1N[i]);k(3m&&3m.2i==o.2i){f.8r();3m.9P=f.U;j.2w(f.1N,f.R.1N[i]);E L}}E 1k},60:q(){f.5B=L;f.3F();k(f.2q&&f.3i==\'87\')f.6j();k(f.2q){k(f.1i){1t{m A=f,2k=f.1i.7p||f.1i.59.18;j.2G(2k,\'7H\',q(){k(j.2P!=A.U)A.3F()})}1u(e){}k(j.1r&&1K f.4P!=\'ci\')f.1i.F.H=(f.3E-1)+\'B\'}}k(f.3Z)j.2l(f);k(j.2J&&j.2J==f.a)j.2J=I;f.9F();k(f.1I)f.at();j.1o(f,\'cj\')},9F:q(){m U=f.U;m 1M=f.1M;21 j.5o(1M,q(){1t{j.X[U].9J()}1u(e){}})},9J:q(){m 1x=f.6S(1);k(1x&&1x.2o.9K().1B(/j\\.2A/))m 1F=j.1f(\'1F\',{1a:j.5S(1x)})},6S:q(1G){m 6X=f.6a(),as=j.44.30[f.2Y||\'1H\'];k(!as[6X+1G]&&f.1y&&f.1y.9G){k(1G==1)E as[0];M k(1G==-1)E as[as.1b-1]}E as[6X+1G]||I},6a:q(){m 1R=j.44.30[f.2Y||\'1H\'];S(m i=0;i<1R.1b;i++){k(1R[i]==f.a)E i}E I},aR:q(){k(f[f.5h]){m 1R=j.44.30[f.2Y||\'1H\'];m s=j.W.3s.2h(\'%1\',f.6a()+1).2h(\'%2\',1R.1b);f[f.5h].2v=\'<1e 2d="Q-3s">\'+s+\'</1e>\'+f[f.5h].2v}},9N:q(){k(f.1y)E;k(!f.R){S(m i=0;i<j.6u.1b;i++){m 1W=j.6u[i],4z=1W.2Y;k(4z===f.2Y){f.1y=21 j.7m(1W)}}}M{f.1y=f.R.1y}m 1W=f.1y;k(!1W)E;m A=1W.A=f;1W.9O();k(1W.7n){m o=1W.9M||{};o.4I=1W.3u;o.2i=\'3u\';f.4M(o)}k(!f.R&&f.3Y)1W.3z(L);k(1W.3Y){1W.3Y=26(q(){j.1x(A.U)},(1W.cl||9L))}},6Y:q(){j.X[f.U]=I;k(j.2J==f.a)j.2J=I;j.7y();k(f.22)j.22.F.19=\'-3J\';j.1o(f,\'9E\')},aB:q(){k(f.4T)E;f.4T=j.1f(\'a\',{1T:j.ah,1h:\'Q-4T\',2v:j.W.ag,1Y:j.W.af});f.4M({4I:f.4T,1m:\'1c 19\',2i:\'4T\'})},8o:q(6T,a4){S(m i=0;i<6T.1b;i++){m 14=6T[i],s=I;k(14==\'8m\'&&!j.1o(f,\'cF\'))E;M k(14==\'4J\'&&!j.1o(f,\'cC\'))E;k(!f[14+\'5N\']&&f.6n)f[14+\'5N\']=14+\'-S-\'+f.6n;k(f[14+\'5N\'])f[14]=j.4W(f[14+\'5N\']);k(!f[14]&&!f[14+\'78\']&&f[14+\'am\'])1t{s=dc(f[14+\'am\'])}1u(e){}k(!f[14]&&f[14+\'78\']){s=f[14+\'78\']}k(!f[14]&&!s){m 1x=f.a.a6;4E(1x&&!j.5O(1x)){k((21 54(\'Q-\'+14)).16(1x.1h||I)){f[14]=1x.4L(1);5k}1x=1x.a6}}k(!f[14]&&!s&&f.5h==14)s=\'\\n\';k(!f[14]&&s)f[14]=j.1f(\'1e\',{1h:\'Q-\'+14,2v:s});k(a4&&f[14]){m o={1m:(14==\'4J\')?\'5w\':\'6H\'};S(m x 35 f[14+\'a3\'])o[x]=f[14+\'a3\'][x];o.4I=f[14];f.4M(o)}}},31:q(3W,1v,2r){m Y=18.2L(3W);m 4w=3W==\'*\'?\'2F\':\'1v\';S(m i=0;i<Y.1b;i++){k(4w==\'1v\'||(18.cz.db(Y[i],"").dh(\'2F\')==\'1E\'||Y[i].ac(\'1n-by\')!=I)){m 2E=Y[i].ac(\'1n-by\');k(1v==\'1Z\'&&2E){2E=2E.2h(\'[\'+f.U+\']\',\'\');Y[i].5g(\'1n-by\',2E);k(!2E)Y[i].F[4w]=Y[i].8c}M k(1v==\'1n\'){m 3o=j.5I(Y[i]);3o.w=Y[i].1z;3o.h=Y[i].1s;k(!f.3Z){m ab=(3o.x+3o.w<2r.x||3o.x>2r.x+2r.w);m aa=(3o.y+3o.h<2r.y||3o.y>2r.y+2r.h)}m 8d=j.8e(Y[i]);k(!ab&&!aa&&8d!=f.U){k(!2E){Y[i].5g(\'1n-by\',\'[\'+f.U+\']\');Y[i].8c=Y[i].F[4w];Y[i].F[4w]=\'1n\'}M k(!2E.1B(\'[\'+f.U+\']\')){Y[i].5g(\'1n-by\',2E+\'[\'+f.U+\']\')}}M k(2E==\'[\'+f.U+\']\'||j.2P==8d){Y[i].5g(\'1n-by\',\'\');Y[i].F[4w]=Y[i].8c||\'\'}M k(2E&&2E.1B(\'[\'+f.U+\']\')){Y[i].5g(\'1n-by\',2E.2h(\'[\'+f.U+\']\',\'\'))}}}}},3F:q(){f.T.F.1J=j.4H++;S(m i=0;i<j.X.1b;i++){k(j.X[i]&&i==j.2P){m 4p=j.X[i];4p.O.1h+=\' Q-\'+4p.2Q+\'-8f\';k(4p.2S){4p.O.F.4B=j.1r?\'ae\':\'8a\';4p.O.1Y=j.W.a5}j.1o(f,\'dF\')}}k(f.11)f.11.2B.F.1J=f.T.F.1J;f.O.1h=\'Q-\'+f.2Q;k(f.2S){f.O.1Y=j.W.8j;j.53=1q.3M?\'8a\':\'8i(\'+j.5j+j.8h+\'), 8a\';k(j.1r&&j.3S()<6)j.53=\'ae\';f.O.F.4B=j.53}j.2P=f.U;j.2G(18,1q.3M?\'81\':\'80\',j.5P);j.1o(f,\'dE\')},2I:q(e){f.x.G=e.19+e.5L;f.y.G=e.1c+e.5J;k(e.14==\'2O\')f.O.F.4B=\'2I\';j.J(f.T,{19:f.x.G+\'B\',1c:f.y.G+\'B\'});k(f.11)f.11.3q(f)},3O:q(e){m w,h,r=e.H/e.N;w=1g.41(e.H+e.5L,1g.G(f.2N,f.x.Z));k(f.2S&&1g.an(w-f.x.Z)<12)w=f.x.Z;h=f.2q?e.N+e.5J:w/r;k(h<1g.G(f.3H,f.y.Z)){h=1g.G(f.3H,f.y.Z);k(f.2S)w=h*r}f.x.D=w;f.y.D=h;k(f.2q){m d=f.2y;k(1K f.3v==\'2j\'){f.3v=f.1l.1z-d.1z;f.3V=f.1l.1s-d.1s}j.J(d,{H:(f.x.D-f.3v)+\'B\',N:(f.y.D-f.3V)+\'B\'})}m K={H:f.x.D+\'B\',N:f.y.D+\'B\'};j.J(f.O,K);k(f.3w)j.J(f.3w,K);k(f.2q){f.4G.F.H=\'1E\';k(f.1d)j.J(f.1d,{H:\'1E\',N:\'1E\'})}k(f.1I)f.4m(L);j.J(f.T,{H:(f.x.V+f.x.1j+2*f.x.cb+f.x.D)+\'B\',N:(f.y.V+f.y.1j+2*f.y.cb+f.y.D)+\'B\'});k(f.1y&&f.2S){k(w==f.x.Z)f.1y.49(\'Z-2A\');M f.1y.4d(\'Z-2A\')}k(f.11)f.11.3q(f)},1V:q(){k(f.4P||!f.5B||(j.2J&&f.3t[1]==\'4b\'))E;f.4P=L;k(!j.1o(f,\'dx\'))E;k(f.1y&&!j.2J)f.1y.2R();j.4A(18,1q.3M?\'81\':\'80\',j.5P);1t{k(f.2q)f.9T();f.O.F.4B=\'dj\';f.7Z(0,{2n:f.x.G,2m:f.y.G,2z:f.x.D,2u:2b(f.O.F.N),2e:f.x.V,2a:f.y.V,3b:f.x.1j,3a:f.y.1j,o:f.11?f.11.2T:0},{2n:f.x.1P-f.x.cb+f.x.2V,2m:f.y.1P-f.y.cb+f.y.2V,2z:f.x.t,2u:f.y.t,2e:0,2a:0,3b:0,3a:0,o:j.83},j.a2,j.9S)}1u(e){f.5z()}},9T:q(){k(j.4k){k(!j.5G)j.5G=j.1f(\'1e\',I,{1m:\'2c\'},j.2p);j.J(j.5G,{H:f.x.D+\'B\',N:f.y.D+\'B\',19:f.x.G+\'B\',1c:f.y.G+\'B\',1A:\'4S\'})}k(f.2x==\'3L\')1t{j.$(f.1d.1w).de()}1u(e){}k(f.3i==\'87\'&&!f.4l)f.aT();k(f.2y&&f.2y!=f.4C)f.2y.F.2F=\'1n\'},aT:q(){k(j.1r&&f.1i)1t{f.1i.59.18.1d.2v=\'\'}1u(e){}k(f.2x==\'3L\')86.dn(f.1d.1w);f.1d.2v=\'\'},ai:q(){k(f.11)f.11.2B.F.1A=\'1H\';f.3w=I;f.T.F.1A=\'1H\';j.2w(j.42,f)},aP:q(){j.X[f.U]=f;k(!j.8l&&j.2P!=f.U){1t{j.X[j.2P].1V()}1u(e){}}m z=j.4H++,6r={1A:\'\',1J:z};j.J(f.T,6r);f.4P=1k;m o=f.11||0;k(o){k(!f.3j)6r.1v=\'1n\';j.J(o.2B,6r)}f.8n()},4M:q(o){m C=o.4I;k(1K C==\'8y\')C=j.4W(C);k(!C||1K C==\'8y\')E;k(!j.1o(f,\'dv\',{1p:C}))E;C.F.1A=\'4S\';o.2i=o.2i||o.4I;k(f.3t[1]==\'4b\'&&f.ar(o,C))E;f.8r();m H=o.H&&/^[0-9]+(B|%)$/.16(o.H)?o.H:\'1E\';k(/^(19|3h)aw$/.16(o.1m)&&!/^[0-9]+B$/.16(o.H))H=\'dp\';m 1p=j.1f(\'1e\',{1w:\'2i\'+j.8B++,2i:o.2i},{1m:\'2c\',1v:\'1n\',H:H},f.1I,L);1p.1S(C);j.8C(1p,{4F:o.4F,28:o.28||1,5v:o.1m,2g:o.2g});k(f.az){f.6v(1p);k(!1p.4F||f.8k)j.2g(1p,0,1p.28)}j.2w(f.1N,j.8B-1)},6v:q(1p){m p=1p.5v||\'8v 3Q\';k(/19$/.16(p))1p.F.19=0;k(/3Q$/.16(p))j.J(1p,{19:\'50%\',3C:\'-\'+1g.3R(1p.1z/2)+\'B\'});k(/3h$/.16(p))1p.F.3h=0;k(/^aF$/.16(p)){j.J(1p,{3h:\'2U%\',6q:f.x.cb+\'B\',1c:-f.y.cb+\'B\',3T:-f.y.cb+\'B\',2F:\'1E\'});f.x.V=1p.1z}M k(/^aJ$/.16(p)){j.J(1p,{19:\'2U%\',3C:f.x.cb+\'B\',1c:-f.y.cb+\'B\',3T:-f.y.cb+\'B\',2F:\'1E\'});f.x.1j=1p.1z}k(/^1c/.16(p))1p.F.1c=0;k(/^8v/.16(p))j.J(1p,{1c:\'50%\',4h:\'-\'+1g.3R(1p.1s/2)+\'B\'});k(/^3T/.16(p))1p.F.3T=0;k(/^5w$/.16(p)){j.J(1p,{19:(-f.x.V-f.x.cb)+\'B\',3h:(-f.x.1j-f.x.cb)+\'B\',3T:\'2U%\',3N:f.y.cb+\'B\',H:\'1E\'});f.y.V=1p.1s}M k(/^6H$/.16(p)){j.J(1p,{1m:\'4j\',19:(-f.x.V-f.x.cb)+\'B\',3h:(-f.x.1j-f.x.cb)+\'B\',1c:\'2U%\',4h:f.y.cb+\'B\',H:\'1E\'});f.y.1j=1p.1s;1p.F.1m=\'2c\'}},au:q(){f.8o([\'4J\',\'8m\'],L);f.aR();k(f.8m)j.1o(f,\'b4\');k(f.4J)j.1o(f,\'b5\');k(f.4J&&f.8p)f.4J.1h+=\' Q-2I\';k(j.aI)f.aB();S(m i=0;i<j.1N.1b;i++){m o=j.1N[i],6w=o.8s,4z=o.2Y;k((!6w&&!4z)||(6w&&6w==f.6n)||(4z&&4z===f.2Y)){k(f.2S||(f.2q&&o.bg))f.4M(o)}}m 6G=[];S(m i=0;i<f.1N.1b;i++){m o=j.$(\'2i\'+f.1N[i]);k(/aw$/.16(o.5v))f.6v(o);M j.2w(6G,o)}m 6o=f.x.V+f.x.Z+f.x.1j;k(j.ax&&6o<j.2N){f.x.V+=(j.2N-6o)/2;f.x.1j+=(j.2N-6o)/2}S(m i=0;i<6G.1b;i++)f.6v(6G[i]);f.az=L},8r:q(){k(!f.1I)f.1I=j.1f(\'1e\',I,{1m:\'2c\',H:f.x.D?f.x.D+\'B\':f.x.Z+\'B\',N:0,1v:\'1n\',2F:\'1n\',1J:j.1r?4:I},j.2p,L)},4m:q(7f,aX){j.J(f.1I,{H:f.x.D+\'B\',N:f.y.D+\'B\'});k(7f||aX){S(m i=0;i<f.1N.1b;i++){m o=j.$(\'2i\'+f.1N[i]);k(o&&/^(5w|6H)$/.16(o.5v)){k(j.1r&&(j.3S()<=6||18.8D==\'aS\')){o.F.H=(f.1I.1z+2*f.x.cb-f.x.V-f.x.1j)+\'B\'}f.y[o.5v==\'5w\'?\'V\':\'1j\']=o.1s}}}k(7f){j.J(f.O,{1c:f.y.V+\'B\'});j.J(f.1I,{1c:(f.y.V+f.y.cb)+\'B\'})}},at:q(){j.J(f.1I,{1c:(f.y.V+f.y.cb)+\'B\',19:(f.x.V+f.x.cb)+\'B\',1v:\'1Z\',2F:\'1Z\'});f.T.1S(f.1I);m 2X=j.5x(),8z=j.6y.x+2X.5t,8w=j.6y.y+2X.5s;f.8k=f.x.G<8z&&8z<f.x.G+f.x.V+f.x.D+f.x.1j&&f.y.G<8w&&8w<f.y.G+f.y.V+f.y.D+f.y.1j;S(m i=0;i<f.1N.1b;i++){m o=j.$(\'2i\'+f.1N[i]);o.F.1J=o.2i==\'3u\'?5:4;k(!o.4F||f.8k)j.2g(o,0,o.28)}},ap:q(){k(f.1y){f.1y.4d(\'Z-2A\');E}f.6A=j.1f(\'a\',{1T:\'5X:j.X[\'+f.U+\'].7N();\',1Y:j.W.7X,1h:\'Q-Z-2A\'});k(!j.1o(f,\'be\'))E;f.4M({4I:f.6A,1m:j.9U,4F:L,28:j.9Y})},7N:q(){1t{k(!j.1o(f,\'bb\'))E;k(f.6A)j.4r(f.6A);M k(f.1y)f.1y.49(\'Z-2A\');f.3F();f.x.G=2b(f.T.F.19)-(f.x.Z-f.O.H)/2;k(f.x.G<j.3C)f.x.G=j.3C;f.T.F.19=f.x.G+\'B\';j.J(f.O,{H:f.x.Z+\'B\',N:f.y.Z+\'B\'});f.x.D=f.x.Z;f.y.D=f.y.Z;k(f.1I)f.4m(L);j.J(f.T,{H:(f.x.V+2*f.x.cb+f.x.D+f.x.1j)+\'B\',N:(f.y.V+2*f.y.cb+f.y.D+f.y.1j)+\'B\'});k(f.11)f.11.3q(f);f.5Q();j.5r(f)}1u(e){1q.4s.1T=f.O.1a}},5Q:q(){m 2r={x:2b(f.T.F.19)-20,y:2b(f.T.F.1c)-20,w:f.O.1z+40,h:f.O.1s+40};k(j.5Z)f.31(\'7A\',\'1n\',2r);k(j.61)f.31(\'7z\',\'1n\',2r);k(j.4k)f.31(\'*\',\'1n\',2r)},5z:q(){f.a.1h=f.a.1h.2h(\'Q-7x-3l\',\'\');k(j.5Z)f.31(\'7A\',\'1Z\');k(j.61)f.31(\'7z\',\'1Z\');k(j.4k)f.31(\'*\',\'1Z\');k(f.2q&&f.4l)f.ai();M{k(f.11&&f.3j)f.11.5F();j.4r(f.T)}k(j.5G)j.5G.F.1A=\'1H\';k(f.3Z)j.7y(f.U);j.1o(f,\'bh\');j.X[f.U]=I;j.aj()}};j.5Y=q(a,O,6h){f.a=a;f.O=O;f.6h=6h};j.5Y.6c={7r:q(){k(!f.1a)f.1a=j.5S(f.a);k(f.1a.1B(\'#\')){m 1R=f.1a.5R(\'#\');f.1a=1R[0];f.1w=1R[1]}k(j.6i[f.1a]){f.a7=j.6i[f.1a];k(f.1w)f.7h();M f.55();E}1t{f.3I=21 bl()}1u(e){1t{f.3I=21 ak("bk.a8")}1u(e){1t{f.3I=21 ak("ad.a8")}1u(e){f.7j()}}}m 3c=f;f.3I.aZ=q(){k(3c.3I.6B==4){k(3c.1w)3c.7h();M 3c.55()}};f.3I.ao("b6",f.1a,L);f.3I.bf(I)},7h:q(){j.6f();m 3K=1q.3M||j.a9?{1a:\'ce:bX\'}:I;f.1i=j.1f(\'1i\',3K,{1m:\'2c\',19:\'-3J\'},j.2p);f.55()},55:q(){m s=f.a7||f.3I.bY;k(f.6h)j.6i[f.1a]=s;k(!j.1r||j.3S()>=5.5){s=s.2h(/\\s/g,\' \').2h(21 54(\'<c0[^>]*>\',\'al\'),\'\').2h(21 54(\'<6z[^>]*>.*?</6z>\',\'al\'),\'\');k(f.1i){m 2k=f.1i.7p;k(!2k&&f.1i.59)2k=f.1i.59.18;k(!2k){m 3c=f;26(q(){3c.55()},25);E}2k.ao();2k.aq(s);2k.1V();1t{s=2k.7o(f.1w).2v}1u(e){1t{s=f.1i.18.7o(f.1w).2v}1u(e){}}}M{s=s.2h(21 54(\'^.*?<1d[^>]*>(.*?)</1d>.*?$\',\'i\'),\'$1\')}}j.48(f.O,\'6d\',\'Q-1d\').2v=s;f.36();S(m x 35 f)f[x]=I}};j.7m=q(52){j.51();S(m x 35 52)f[x]=52[x];k(f.7n)f.a1()};j.7m.6c={a1:q(){f.3u=j.1f(\'1e\',{2v:j.7C(j.7R.3u)},I,j.2p);m 5a=[\'3z\',\'2R\',\'2K\',\'1x\',\'2I\',\'Z-2A\',\'1V\'];f.1L={};m 3c=f;S(m i=0;i<5a.1b;i++){f.1L[5a[i]]=j.48(f.3u,\'1D\',\'Q-\'+5a[i]);f.4d(5a[i])}f.1L.2R.F.1A=\'1H\';f.49(\'Z-2A\')},9O:q(){k(f.9G)E;m 5i=f.A.6a(),2f=/6b$/;k(5i==0)f.49(\'2K\');M k(2f.16(f.1L.2K.2L(\'a\')[0].1h))f.4d(\'2K\');k(5i+1==j.44.30[f.2Y||\'1H\'].1b){f.49(\'1x\');f.49(\'3z\')}M k(2f.16(f.1L.1x.2L(\'a\')[0].1h)){f.4d(\'1x\');f.4d(\'3z\')}},4d:q(1L){m 9H=f,a=f.1L[1L].2L(\'a\')[0],2f=/6b$/;a.2o=q(){9H[1L]();E 1k};k(2f.16(a.1h))a.1h=a.1h.2h(2f,\'\')},49:q(1L){m a=f.1L[1L].2L(\'a\')[0];a.2o=q(){E 1k};k(!/6b$/.16(a.1h))a.1h+=\' 6b\'},9I:q(){k(f.3Y)f.2R();M f.3z()},3z:q(9Q){k(f.1L){f.1L.3z.F.1A=\'1H\';f.1L.2R.F.1A=\'\'}f.3Y=L;k(!9Q)j.1x(f.A.U)},2R:q(){k(f.1L){f.1L.2R.F.1A=\'1H\';f.1L.3z.F.1A=\'\'}9X(f.3Y);f.3Y=I},2K:q(){f.2R();j.2K(f.1L.2K)},1x:q(){f.2R();j.1x(f.1L.1x)},2I:q(){},\'Z-2A\':q(){j.3k().7N()},1V:q(){j.1V(f.1L.1V)}};k(18.6B&&j.1r){m 1a=(1q.4s.9V==\'9R:\')?\'://0\':\'5X:c7(0)\';18.aq(\'<6z 14="c5/5X" aQ="aQ" 1a="\'+1a+\'" \'+\'aZ="k (f.6B == \\\'bp\\\') j.av();"\'+\'><\\/6z>\')}j.6E=j.W;m bB=j.4u;j.2G(18,\'6D\',q(e){j.6y={x:e.6m,y:e.6t}});j.2G(18,\'7H\',j.7L);j.2G(18,\'aC\',j.7L);j.2G(1q,\'7K\',j.aE);j.2G(1q,\'7K\',j.aL);j.2G(1q,\'7K\',q(){j.aH=L});j.70();',62,848,'|||||||||||||||this||||hs|if||var||||function||||||||||exp|px|el|span|return|style|min|width|null|setStyles|size|true|else|height|content|to|highslide|last|for|wrapper|key|p1|lang|expanders|els|full||outline|||type||test||document|left|src|length|top|body|div|createElement|Math|className|iframe|p2|false|innerContent|position|hidden|fireEvent|overlay|window|ie|offsetHeight|try|catch|visibility|id|next|slideshow|offsetWidth|display|match|pos|li|auto|img|op|none|overlayBox|zIndex|typeof|btn|outlineType|overlays|justify|tpos|up|arr|appendChild|href|node|close|ss|target|title|visible||new|loading|tgt|params||setTimeout||opacity|from|yp1|parseInt|absolute|class|xp1|re|fade|replace|hsId|undefined|doc|dim|ymin|xmin|onclick|container|isHtml|imgPos|dragArgs|dimmer|yspan|innerHTML|push|objectType|scrollerDiv|xspan|expand|table|event|td|hiddenBy|overflow|addEventListener|ratio|move|upcoming|previous|getElementsByTagName|marginMin|minWidth|image|focusKey|contentType|pause|isImage|offset|100|tb|ajax|page|slideshowGroup|parentNode|groups|showHideElements||||in|onLoad||||yp2|xp2|pThis|clearing|minSpan|case|hasDragged|right|objectLoadTime|outlineWhileAnimating|getExpander|anchor|oDiv|graphic|elPos|clientSpan|setPosition|dir|number|transitions|controls|wDiff|releaseMask|dur|marginMax|play|func|scroll|marginLeft|custom|objectWidth|focus|styles|minHeight|xmlHttp|9999px|attribs|swf|opera|marginBottom|resize|easing|center|round|ieVersion|bottom|navigator|hDiff|tagName|getParam|autoplay|dimmingOpacity||max|sleeping|steps|anchors|trans|fading|clone|getElementByClass|disable|oFinal|crossfade|onload|enable|html|pendingOutlines|iebody|marginTop|name|relative|geckoMac|preserveContent|sizeOverlayBox|fadeBox|allowReduce|blurExp|objectHeight|discardElement|location|cNode|Expander|images|prop|moveOnly|htmls|sg|removeEventListener|cursor|scrollingContent|getParams|while|hideOnMouseOut|mediumContent|zIndexCounter|overlayId|heading|cacheBindings|cloneNode|createOverlay|pageWidth|obj|isClosing|element|contentLoaded|block|credits|parent|showLoading|getNode|pageHeight|minY|area||updateAnchors|options|styleRestoreCursor|RegExp|loadHTML|over|minX|maxX|contentWindow|buttons|safari|250|step|all|ruler|setAttribute|numberPosition|cur|graphicsDir|break|before|maxY|preloadTheseImages|Outline|param|cache|setDimmerSize|scrollTop|scrollLeft|owner|hsPos|above|getPageSize|allowSizeReduction|afterClose|on|isExpanded|val|background|documentElement|destroy|mask|faders|getPosition|dY|tr|dX|preloadFullImage|Id|isHsAnchor|keyHandler|redoShowHide|split|getSrc|imgs|allowWidthReduction|innerHeight|changed|javascript|Ajax|hideSelects|afterExpand|hideIframes|kdeBugCorr|matches|self|dragHandler|onLoadStarted|maincontent|userAgent|ul|getAnchorIndex|disabled|prototype|DIV|innerWidth|init|transitionDuration|pre|cachedGets|writeExtendedContent|rel|currentStyle|clientX|thumbsUserSetId|curW|previousOrNext|marginRight|stl|preventDefault|clientY|slideshows|positionOverlay|tId|topmostKey|mouse|script|fullExpandLabel|readyState|preloadTheseAjax|mousemove|langDefaults|dimmingDuration|os|below|targetY|removeChild|targetX|setSize|border|names|align|maxWidth|getCacheBinding|connectOutline|getAdjacentAnchor|types|onDomReady|continuePreloading|oPos|current|cancelLoading|hasAlphaImageLoader|setClickEvents|filter|overrides|skip|pI||getSelfRendered|tbody|Text|crossfadeStep|contentId|wrapperClassName|expandDuration|Create|prep|doWrapper|clientHeight|getElementContent|xScroll|onError|clientWidth|scrollWidth|Slideshow|useControls|getElementById|contentDocument|yScroll|run|removeAttribute|cacheAjax|getAnchors|topZ|hasMovedMin|active|undim|IFRAME|SELECT|htmlGetSize|replaceLang|allowHeightReduction|offsetTop|Click|arrow|mousedown|setObjContainerSize|padding|load|mouseClickHandler|correctIframeSize|doFullExpand|moveText|closeTitle|closeText|skin|moveTitle|nextText|previousTitle|previousText|nextTitle|fullExpandTitle|preloadAjaxElement|changeSize|keydown|keypress|numberOfImagesToPreload|outlineStartOffset|relatedTarget|distance|swfobject|after|srcElement|fitOverlayBox|pointer|htmlExpand|origProp|wrapperKey|getWrapperKey|blur|garbageBin|restoreCursor|url|restoreTitle|mouseIsOver|allowMultipleInstances|caption|show|getInline|dragByHeading|clones|genOverlayBox|thumbnailId|other|evt|middle|mY|hasFocused|string|mX|swfOptions|idCounter|setAttribs|compatMode|newHeight|clear|hasExtendedContent|attributes|wmode|flashvars|both|enableKeyListener|resizeTitle|headingOverlay|fullExpandText|pauseText|pauseTitle|captionOverlay|tag|scrollHeight|offsetParent|scrollMaxY|scrollMaxX|nopad|playText|playTitle|Play|Pause|Close|JS|Highslide|spacebar|Previous|200|and||Move|Next|offsetLeft|contentWrapper|png|appendTo|preloadGraphic|parseFloat|loadingOpacity|onGraphicLoad|vis|wrapperMouseHandler|modMarginRight|thumb|isDomReady|hide|loadingText|loadingTitle|focusTopmost|args|adj|dimmingGeckoFix|onSetClickEvent|form|hasHtmlexpanders|detachEvent|pow|clickY|clickX|maxHeight|onHideLoading|prepareNextOutline|repeat|sls|hitSpace|preloadNext|toString|500|overlayOptions|initSlideshow|checkFirstAndLast|reuse|wait|https|restoreSteps|htmlPrepareClose|fullExpandPosition|protocol|oldImg|clearTimeout|fullExpandOpacity|crossfadeEnd|newImg|getControls|restoreDuration|Overlay|addOverlay|focusTitle|nextSibling|cachedGet|XMLHTTP|ie6SSL|clearsY|clearsX|getAttribute|Microsoft|hand|creditsTitle|creditsText|creditsHref|sleep|reOrder|ActiveXObject|gi|Eval|abs|open|createFullExpand|write|reuseOverlay||showOverlays|getOverlays|domReady|panel|padToMinWidth|appVersion|gotOverlays|getImageMapAreaCorrection|writeCredits|mouseup|tmpMin|preloadImages|leftpanel|correctRatio|pageLoaded|showCredits|rightpanel|htmlSizeOperations|preloadAjax|vendor|Safari|Gecko|awake|defer|getNumber|BackCompat|destroyObject|KDE|rv|expandSteps|doPanels|fadeInOut|onreadystatechange|easeInOutQuad|easeInQuad|easingClose|keyCode|onAfterGetCaption|onAfterGetHeading|GET|pageXOffset|returnValue|exec|geckodimmer|onDoFullExpand|onDimmerClick|dimming|onCreateFullExpand|send|useOnHtml|onAfterClose|switch|useMap|Msxml2|XMLHttpRequest|onKeyDown|pageYOffset|headingId|complete|click|of|Image|Full|drag|Use|1001|zoomout||graphics|keys|HsExpander|Resize|front|Expand|bring|cancel|Loading|actual|Powered|esc|homepage|the|Go|http|vikjavev|maincontentEval|Macintosh|maincontentText|maincontentId|headingEval|margin|alpha|blank|responseText|MSIE|link|headingText|registerOverlay|shadow|drop|text|no|void|header|captionEval|captionText||captionId|footer|about|button|onInit|wrapperBG|boolean|onAfterExpand|scale|interval|onmouseover|onmouseout|blockRightClick|oncontextmenu|imageCreate|onShowLoading|rect|sizingMethod|AlphaImageLoader|addSlideshow|lineHeight|collapse|borderCollapse|defaultView|cellSpacing|fontSize|onBeforeGetHeading|progid|DXImageTransform|onBeforeGetCaption|outlines|outlinesDir|flushImgSize|htmlCreate|expressInstallSwfurl|floor|version|embedSWF|flash|transparent|circle|toLowerCase|nodeName|300|insertBefore|coords|shape|tmpHeight|allowtransparency|onAfterGetContent|static|525|clip|onBeforeGetContent|onBeforeExpand|fixedControls|getTime|frameborder|Date|reflow|newWidth|getComputedStyle|eval|fromElement|StopPlay|mouseover|onDrag|getPropertyValue|onMouseOver|default|attachEvent|onMouseOut|dragSensitivity|removeSWF|onImageClick|200px|xpand|htmlE|onDrop|white|sqrt|onCreateOverlay|01|onBeforeClose|toElement|onActivate|1px|linearTween|paddingTop|object|onFocus|onBlur'.split('|'),0,{}))
// JavaScript Document
function check_close(id, time, ip){
	if(document.getElementById('check_'+id)!=null && document.getElementById('check_'+id).checked){
		Set_Cookie(ip, true, time, '/', '', '');
	}	
	
}
function display_none(id){
	if(document.getElementById(id)!=null){
		document.getElementById(id).style.display='none';
	}
}
function display_block(id){
	if(document.getElementById(id)!=null){
		document.getElementById(id).style.display='block';
	}
}
function Set_Cookie( name, value, expires, path, domain, secure ) 
{
	// set time, it's in milliseconds
	var today = new Date();
	today.setTime( today.getTime() );
	
	if ( expires )
	{
		expires = expires * 1000* 60 * 60 * 24;
		//alert(expires);
	}
	var expires_date = new Date( today.getTime() + (expires) );
	
	document.cookie = name + "=" +escape( value ) +
	( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
	( ( path ) ? ";path=" + path : "" ) + 
	( ( domain ) ? ";domain=" + domain : "" ) +
	( ( secure ) ? ";secure" : "" );
}
function Get_Cookie( check_name ) {
	// first we'll split this cookie up into name/value pairs
	// note: document.cookie only returns name=value, not the other components
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f
	//alert(document.cookie)
	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		// now we'll split apart each name=value pair
		a_temp_cookie = a_all_cookies[i].split( '=' );
		
		
		// and trim left/right whitespace while we're at it
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
	
		// if the extracted name matches passed check_name
		if ( cookie_name == check_name )
		{
			b_cookie_found = true;
			// we need to handle case where cookie has no value but exists (no = sign, that is):
			if ( a_temp_cookie.length > 1 )
			{
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			// note that in cases where cookie is initialized but no value, null is returned
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found )
	{
		return null;
	}
}	
function Delete_Cookie( name) {
	var d = new Date();
	
	if (Get_Cookie( name) ){ document.cookie = name+"=null;expires=" + d.toGMTString() + ";" + ";";alert(Get_Cookie( name));}

}/*------------------------------------------------------------------------
# JA Ruby for Joomla 1.5 - Version 1.0 - Licence Owner JA108425
# ------------------------------------------------------------------------
# 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;
		});
	}
}/*!
 * Copyright (c) 2008 Simo Kinnunen.
 * Licensed under the MIT license.
 */

var Cufon = (function() {
	
	var api = function() {	
		return api.replace.apply(null, arguments);
	};
	
	var DOM = api.DOM = {
			
		ready: (function() {
		
			var complete = false, readyStatus = { loaded: 1, complete: 1 };
		
			var queue = [], perform = function() {
				if (complete) return;
				complete = true;
				for (var fn; fn = queue.shift(); fn());
			};
			
			// Gecko, Opera, WebKit r26101+
			
			if (document.addEventListener) {
				document.addEventListener('DOMContentLoaded', perform, false);
				window.addEventListener('pageshow', perform, false); // For cached Gecko pages
			}
			
			// Old WebKit, Internet Explorer
			
			if (!window.opera && document.readyState) (function() {
				readyStatus[document.readyState] ? perform() : setTimeout(arguments.callee, 10);
			})();
			
			// Internet Explorer
			
			if (document.readyState && document.createStyleSheet) (function() {
				try {
					document.body.doScroll('left');
					perform();
				}
				catch (e) {
					setTimeout(arguments.callee, 1);
				}
			})();
			
			addEvent(window, 'load', perform); // Fallback
			
			return function(listener) {
				if (!arguments.length) perform();
				else complete ? listener() : queue.push(listener);
			};
			
		})()
		
	};

	var CSS = api.CSS = {
	
		Size: function(value, base) {
		
			this.value = parseFloat(value);
			this.unit = String(value).match(/[a-z%]*$/)[0] || 'px';
		
			this.convert = function(value) {
				return value / base * this.value;
			};
			
			this.convertFrom = function(value) {
				return value / this.value * base;
			};
			
			this.toString = function() {
				return this.value + this.unit;
			};

		},
	
		getStyle: function(el) {
			var view = document.defaultView;
			if (view && view.getComputedStyle) return new Style(view.getComputedStyle(el, null));
			if (el.currentStyle) return new Style(el.currentStyle);
			return new Style(el.style);
		},
		
		ready: (function() {
			
			var complete = false;
			
			var queue = [], perform = function() {
				complete = true;
				for (var fn; fn = queue.shift(); fn());
			};
			
			// Safari 2 does not include <style> elements in document.styleSheets.
			// Safari 2 also does not support Object.prototype.propertyIsEnumerable.
			
			var styleElements = Object.prototype.propertyIsEnumerable ? elementsByTagName('style') : { length: 0 };
			var linkElements = elementsByTagName('link');
			
			DOM.ready(function() {
				// These checks are actually only needed for WebKit-based browsers, but don't really hurt other browsers.
				var linkStyles = 0, link;
				for (var i = 0, l = linkElements.length; link = linkElements[i], i < l; ++i) {
					// WebKit does not load alternate stylesheets.
					if (!link.disabled && link.rel.toLowerCase() == 'stylesheet') ++linkStyles;
				}
				if (document.styleSheets.length >= styleElements.length + linkStyles) perform();
				else setTimeout(arguments.callee, 10);
			});
			
			return function(listener) {
				if (complete) listener();
				else queue.push(listener);
			};
			
		})(),

		supports: function(property, value) {
			var checker = document.createElement('span').style;
			if (checker[property] === undefined) return false;
			checker[property] = value;
			return checker[property] === value;
		},
		
		textAlign: function(word, style, position, wordCount) {
			if (style.get('textAlign') == 'right') {
				if (position > 0) word = ' ' + word;
			}
			else if (position < wordCount - 1) word += ' ';
			return word;
		},
		
		textDecoration: function(el, style) {
			if (!style) style = this.getStyle(el);
			var types = {
				underline: null,
				overline: null,
				'line-through': null
			};
			for (var search = el; search.parentNode && search.parentNode.nodeType == 1; ) {
				var foundAll = true;
				for (var type in types) {
					if (types[type]) continue;
					if (style.get('textDecoration').indexOf(type) != -1) types[type] = style.get('color');
					foundAll = false;
				}
				if (foundAll) break; // this is rather unlikely to happen
				style = this.getStyle(search = search.parentNode);
			}
			return types;
		},
		
		textShadow: cached(function(value) {
			if (value == 'none') return null;
			var shadows = [], currentShadow = {}, result, offCount = 0;
			var re = /(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)|(-?[\d.]+[a-z%]*)|,/ig;
			while (result = re.exec(value)) {
				if (result[0] == ',') {
					shadows.push(currentShadow);
					currentShadow = {}, offCount = 0;
				}
				else if (result[1]) {
					currentShadow.color = result[1];
				}
				else {
					currentShadow[[ 'offX', 'offY', 'blur' ][offCount++]] = result[2];
				}
			}
			shadows.push(currentShadow);
			return shadows;
		}),
		
		color: cached(function(value) {
			var parsed = {};
			parsed.color = value.replace(/^rgba\((.*?),\s*([\d.]+)\)/, function($0, $1, $2) {
				parsed.opacity = parseFloat($2);
				return 'rgb(' + $1 + ')';
			});
			return parsed;
		}),
		
		textTransform: function(text, style) {
			return text[{
				uppercase: 'toUpperCase',
				lowercase: 'toLowerCase'
			}[style.get('textTransform')] || 'toString']();
		}
		
	};
	
	api.VML = {
	
		parsePath: function(path) {
			var cmds = [], re = /([mrvxe])([^a-z]*)/g, match;
			while (match = re.exec(path)) {
				cmds.push({
					type: match[1],
					coords: match[2].split(',')
				});
			}
			return cmds;
		}
			
	};
	
	function Font(data) {
		
		var face = this.face = data.face;
		this.glyphs = data.glyphs;
		this.w = data.w;
		this.baseSize = parseInt(face['units-per-em'], 10);
		
		this.family = face['font-family'].toLowerCase();
		this.weight = face['font-weight'];
		this.style = face['font-style'] || 'normal';
		
		this.viewBox = (function () {
			var parts = face.bbox.split(/\s+/);
			return {
				minX: parseInt(parts[0], 10),
				minY: parseInt(parts[1], 10),
				width: parseInt(parts[2], 10) - parseInt(parts[0], 10),
				height: parseInt(parts[3], 10) - parseInt(parts[1], 10),
				toString: function() {
					return [ this.minX, this.minY, this.width, this.height ].join(' ');
				}
			};
		})();
		
		this.ascent = -parseInt(face.ascent, 10);
		this.descent = -parseInt(face.descent, 10);
		
		this.height = -this.ascent + this.descent;
		
	}
	
	function FontFamily() {

		var styles = {}, mapping = {
			oblique: 'italic',
			italic: 'oblique'
		};
		
		this.add = function(font) {
			(styles[font.style] || (styles[font.style] = {}))[font.weight] = font;
		};
		
		this.get = function(style, weight) {
			var weights = styles[style] || styles[mapping[style]] || styles.normal;
			if (!weights) return null;
			// we don't have to worry about "bolder" and "lighter"
			// because IE's currentStyle returns a numeric value for it,
			// and other browsers use the computed value anyway
			weight = {
				normal: 400,
				bold: 700
			}[weight] || parseInt(weight, 10);
			if (weights[weight]) return weights[weight];
			// http://www.w3.org/TR/CSS21/fonts.html#propdef-font-weight
			// Gecko uses x99/x01 for lighter/bolder
			var up = {
				1: 1,
				99: 0
			}[weight % 100], alts = [], min, max;
			if (up === undefined) up = weight > 400;
			if (weight == 500) weight = 400;
			for (var alt in weights) {
				alt = parseInt(alt, 10);
				if (!min || alt < min) min = alt;
				if (!max || alt > max) max = alt;
				alts.push(alt);
			}
			if (weight < min) weight = min;
			if (weight > max) weight = max;
			alts.sort(function(a, b) {
				return (up
					? (a > weight && b > weight) ? a < b : a > b
					: (a < weight && b < weight) ? a > b : a < b) ? -1 : 1;
			});
			return weights[alts[0]];
		};
	
	}
	
	function Storage() {
		
		var map = {}, at = 0;
		
		function identify(el) {
			return el.cufid || (el.cufid = ++at);
		}
		
		this.get = function(el) {
			var id = identify(el);
			return map[id] || (map[id] = {});
		};
		
	}
	
	function Style(style) {
		
		var custom = {}, sizes = {};
		
		this.get = function(property) {
			return custom[property] != undefined ? custom[property] : style[property];
		};
		
		this.getSize = function(property, base) {
			return sizes[property] || (sizes[property] = new CSS.Size(this.get(property), base));
		};
		
		this.extend = function(styles) {
			for (var property in styles) custom[property] = styles[property];
			return this;
		};
		
	}
	
	function addEvent(el, type, listener) {
		if (el.addEventListener) {
			el.addEventListener(type, listener, false);
		}
		else if (el.attachEvent) {
			el.attachEvent('on' + type, function() {
				return listener.apply(el, arguments);
			});
		}
	}
	
	function cached(fun) {
		var cache = {};
		return function(key) {
			if (!cache.hasOwnProperty(key)) cache[key] = fun.apply(null, arguments);
			return cache[key];
		};	
	}
	
	function getFont(el, style) {
		if (!style) style = CSS.getStyle(el);
		var families = style.get('fontFamily').split(/\s*,\s*/), family;
		for (var i = 0, l = families.length; i < l; ++i) {
			family = families[i].replace(/^(["'])(.*?)\1$/, '$2').toLowerCase();
			if (fonts[family]) return fonts[family].get(style.get('fontStyle'), style.get('fontWeight'));
		}
		return null;
	}
	
	function elementsByTagName(query) {
		return document.getElementsByTagName(query);
	}
	
	function merge() {
		var merged = {}, key;
		for (var i = 0, l = arguments.length; i < l; ++i) {
			for (key in arguments[i]) merged[key] = arguments[i][key];
		}
		return merged;
	}
	
	function process(font, text, style, options, node, el) {
		var separate = options.separate;
		if (separate == 'none') return engines[options.engine].apply(null, arguments);
		var fragment = document.createDocumentFragment(), processed;
		var parts = text.split(separators[separate]), needsAligning = (separate == 'words');
		if (needsAligning && HAS_BROKEN_REGEXP) {
			// @todo figure out a better way to do this
			if (/^\s/.test(text)) parts.unshift('');
			if (/\s$/.test(text)) parts.push('');
		}
		for (var i = 0, l = parts.length; i < l; ++i) {
			processed = engines[options.engine](font,
				needsAligning ? CSS.textAlign(parts[i], style, i, l) : parts[i],
				style, options, node, el, i < l - 1);
			if (processed) fragment.appendChild(processed);
		}
		return fragment;
	}
	
	function replaceElement(el, options) {
		var storage = sharedStorage.get(el);
		if (!options) options = storage.options;
		var font, style, nextNode;
		for (var node = el.firstChild; node; node = nextNode) {
			nextNode = node.nextSibling;
			if (node.nodeType == 1) {
				if (!node.firstChild) continue;
				if (!/cufon/.test(node.className)) {
					arguments.callee(node, options);
					continue;
				}
			}
			var text = node.nodeType == 3 ? node.data : node.alt;
			if (text.trim() == '') continue;
			if (!style) style = CSS.getStyle(el).extend(options);
			if (!font) font = getFont(el, style);
			if (!font) continue;
			var processed = process(font, text, style, options, node, el);
			if (processed) node.parentNode.replaceChild(processed, node);
			else node.parentNode.removeChild(node);
		}
		if (!storage.options) {
			storage.options = options;
		}
	}
	
	var HAS_BROKEN_REGEXP = ' '.split(/\s+/).length == 0;
	
	var sharedStorage = new Storage();
	var replaceHistory = [];
	
	var engines = {}, fonts = {}, defaultOptions = {
		enableTextDecoration: false,
		engine: null,
		//fontScale: 1,
		//fontScaling: false,
		//hover: false,
		printable: true,
		//rotation: 0,
		//selectable: false,
		selector: (
				window.Sizzle
			||	(window.dojo && dojo.query)
			||	(window.$$ && function(query) { return $$(query); })
			||	window.$
			||	(document.querySelectorAll && function(query) { return document.querySelectorAll(query); })
			||	elementsByTagName
		),
		separate: 'words', // 'none' and 'characters' are also accepted
		textShadow: 'none'
	};
	
	var separators = {
		words: /\s+/,
		characters: ''
	};
	
	api.now = function() {
		DOM.ready();
		return api;
	};
	
	api.refresh = function() {
		var currentHistory = replaceHistory.splice(0, replaceHistory.length);
		for (var i = 0, l = currentHistory.length; i < l; ++i) {
			api.replace.apply(null, currentHistory[i]);
		}
		return api;
	};
	
	api.registerEngine = function(id, engine) {
		if (!engine) return api;
		engines[id] = engine;
		return api.set('engine', id);
	};
	
	api.registerFont = function(data) {
		var font = new Font(data), family = font.family;
		if (!fonts[family]) fonts[family] = new FontFamily();
		fonts[family].add(font);
		return api.set('fontFamily', family);
	};
	
	api.replace = function(elements, options, ignoreHistory) {
		options = merge(defaultOptions, options);
		if (!options.engine) return api; // there's no browser support so we'll just stop here
		if (typeof options.textShadow == 'string')
			options.textShadow = CSS.textShadow(options.textShadow);
		if (!ignoreHistory) replaceHistory.push(arguments);
		if (elements.nodeType || typeof elements == 'string') elements = [ elements ];
		CSS.ready(function() {
			for (var i = 0, l = elements.length; i < l; ++i) {
				var el = elements[i];
				if (typeof el == 'string') api.replace(options.selector(el), options, true);
				else replaceElement(el, options);
			}
		});
		return api;
	};
	
	api.set = function(option, value) {
		defaultOptions[option] = value;
		return api;
	};
	
	return api;
	
})();

Cufon.registerEngine('canvas', (function() {

	// Safari 2 doesn't support .apply() on native methods
	
	var check = document.createElement('canvas');
	if (!check || !check.getContext || !check.getContext.apply) return null;
	check = null;
	
	var HAS_INLINE_BLOCK = Cufon.CSS.supports('display', 'inline-block');
	
	// Firefox 2 w/ non-strict doctype (almost standards mode)
	var HAS_BROKEN_LINEHEIGHT = !HAS_INLINE_BLOCK && (document.compatMode == 'BackCompat' || /frameset|transitional/i.test(document.doctype.publicId));
	
	var styleSheet = document.createElement('style');
	styleSheet.type = 'text/css';
	styleSheet.appendChild(document.createTextNode(
		'@media screen,projection{' +
			'.cufon-canvas{display:inline;display:inline-block;position:relative;vertical-align:middle' + 
			(HAS_BROKEN_LINEHEIGHT
				? ''
				: ';font-size:1px;line-height:1px') +
			'}.cufon-canvas .cufon-alt{display:none}' +
			(HAS_INLINE_BLOCK
				? '.cufon-canvas canvas{position:relative}'
				: '.cufon-canvas canvas{position:absolute}') +
		'}' +
		'@media print{' +
			'.cufon-canvas{padding:0 !important}' +
			'.cufon-canvas canvas{display:none}' +
			'.cufon-canvas .cufon-alt{display:inline}' +
		'}'
	));
	document.getElementsByTagName('head')[0].appendChild(styleSheet);

	function generateFromVML(path, context) {
		var atX = 0, atY = 0;
		var cmds = Cufon.VML.parsePath(path);
		var code = new Array(cmds.length - 1);
		generate: for (var i = 0, l = cmds.length; i < l; ++i) {
			var c = cmds[i].coords;
			switch (cmds[i].type) {
				case 'v':
					code[i] = { m: 'bezierCurveTo', a: [ atX + Number(c[0]), atY + Number(c[1]), atX + Number(c[2]), atY + Number(c[3]), atX += Number(c[4]), atY += Number(c[5]) ] };
					break;
				case 'r':
					code[i] = { m: 'lineTo', a: [ atX += Number(c[0]), atY += Number(c[1]) ] };
					break;
				case 'm':
					code[i] = { m: 'moveTo', a: [ atX = Number(c[0]), atY = Number(c[1]) ] };
					break;
				case 'x':
					code[i] = { m: 'closePath' };
					break;
				case 'e':
					break generate;
			}
			context[code[i].m].apply(context, code[i].a);
		}
		return code;
	}
	
	function interpret(code, context) {
		for (var i = 0, l = code.length; i < l; ++i) {
			var line = code[i];
			context[line.m].apply(context, line.a);
		}
	}
	
	return function(font, text, style, options, node, el) {
		
		var viewBox = font.viewBox;
		
		var size = style.getSize('fontSize', font.baseSize);
		
		var letterSpacing = style.get('letterSpacing');
		letterSpacing = (letterSpacing == 'normal') ? 0 : size.convertFrom(parseInt(letterSpacing, 10));
		
		var expandTop = 0, expandRight = 0, expandBottom = 0, expandLeft = 0;
		var shadows = options.textShadow, shadowOffsets = [];
		if (shadows) {
			for (var i = 0, l = shadows.length; i < l; ++i) {
				var shadow = shadows[i];
				var x = size.convertFrom(parseFloat(shadow.offX));
				var y = size.convertFrom(parseFloat(shadow.offY));
				shadowOffsets[i] = [ x, y ];
				if (y < expandTop) expandTop = y;
				if (x > expandRight) expandRight = x;
				if (y > expandBottom) expandBottom = y;
				if (x < expandLeft) expandLeft = x;
			}
		}
		
		var chars = Cufon.CSS.textTransform(text, style).split('');
		
		var width = 0, lastWidth = null;
		
		for (var i = 0, l = chars.length; i < l; ++i) {
			var glyph = font.glyphs[chars[i]] || font.missingGlyph;
			if (!glyph) continue;
			width += lastWidth = Number(glyph.w || font.w) + letterSpacing;
		}
		
		if (lastWidth === null) return null; // there's nothing to render
		
		expandRight += (viewBox.width - lastWidth);
		expandLeft += viewBox.minX;
		
		var wrapper = document.createElement('span');
		wrapper.className = 'cufon cufon-canvas';
		wrapper.alt = text;
		
		var canvas = document.createElement('canvas');
		
		var wStyle = wrapper.style;
		var cStyle = canvas.style;
		
		var height = size.convert(viewBox.height - expandTop + expandBottom);
		var roundedHeight = Math.ceil(height);
		var roundingFactor = roundedHeight / height;
		
		canvas.width = Math.ceil(size.convert(width + expandRight - expandLeft) * roundingFactor);
		canvas.height = roundedHeight;
		
		// minY has no part in canvas.height
		expandTop += viewBox.minY;
		
		cStyle.top = Math.round(size.convert(expandTop - font.ascent)) + 'px';
		cStyle.left = Math.round(size.convert(expandLeft)) + 'px';
		
		var wrapperWidth = Math.ceil(size.convert(width * roundingFactor)) + 'px';
		
		if (HAS_INLINE_BLOCK) {
			wStyle.width = wrapperWidth;
			wStyle.height = size.convert(font.height) + 'px';
		}
		else {
			wStyle.paddingLeft = wrapperWidth;
			wStyle.paddingBottom = (size.convert(font.height) - 1) + 'px';
		}
		
		var g = canvas.getContext('2d'), scale = roundedHeight / viewBox.height;
		
		g.scale(scale, scale);
		g.translate(-expandLeft, -expandTop);
		
		g.lineWidth = font.face['underline-thickness'];
		
		g.save();
		
		function line(y, color) {
			g.strokeStyle = color;
			
			g.beginPath();
			
			g.moveTo(0, y);
			g.lineTo(width, y);
			
			g.stroke();
		}
		
		var textDecoration = options.enableTextDecoration ? Cufon.CSS.textDecoration(el, style) : {};
		
		if (textDecoration.underline) line(-font.face['underline-position'], textDecoration.underline);
		if (textDecoration.overline) line(font.ascent, textDecoration.overline);
		
		g.fillStyle = style.get('color');
		
		function renderText() {
			for (var i = 0, l = chars.length; i < l; ++i) {
				var glyph = font.glyphs[chars[i]] || font.missingGlyph;
				if (!glyph) continue;
				g.beginPath();
				if (glyph.d) {
					if (glyph.code) interpret(glyph.code, g);
					else glyph.code = generateFromVML('m' + glyph.d, g);
				}
				g.fill();
				g.translate(Number(glyph.w || font.w) + letterSpacing, 0);
			}
		}
		
		if (shadows) {
			for (var i = 0, l = shadows.length; i < l; ++i) {
				var shadow = shadows[i];
				g.save();
				g.fillStyle = shadow.color;
				g.translate.apply(g, shadowOffsets[i]);
				renderText();
				g.restore();
			}
		}
		
		renderText();
		
		g.restore();
		
		if (textDecoration['line-through']) line(-font.descent, textDecoration['line-through']);
		
		wrapper.appendChild(canvas);
		
		if (options.printable) {
			var print = document.createElement('span');
			print.className = 'cufon-alt';
			print.appendChild(document.createTextNode(text));
			wrapper.appendChild(print);
		}
		
		return wrapper;
			
	};
	
})());

Cufon.registerEngine('vml', (function() {

	if (!document.namespaces) return;

	// isn't undocumented stuff great?
	document.write('<!--[if vml]><script type="text/javascript">Cufon.vmlEnabled=true;</script><![endif]-->');
	if (!Cufon.vmlEnabled) return;
	
	if (document.namespaces['cvml'] == null) {
		document.namespaces.add('cvml', 'urn:schemas-microsoft-com:vml');
		document.write('<style type="text/css">' +
			'@media screen{' + 
				'cvml\\:shape,cvml\\:group,cvml\\:shapetype,cvml\\:fill{behavior:url(#default#VML);display:inline-block;antialias:true;position:absolute}' +
				'.cufon-vml{display:inline-block;position:relative;vertical-align:middle}' +
				'.cufon-vml .cufon-alt{display:none}' +
				'a .cufon-vml{cursor:pointer}' +
			'}' +
			'@media print{' + 
				'.cufon-vml *{display:none}' +
				'.cufon-vml .cufon-alt{display:inline}' +
			'}' +
		'</style>');
	}

	var typeIndex = 0; // this is used to reference VML ShapeTypes

	function getFontSizeInPixels(el, value) {
		return getSizeInPixels(el, /(?:em|ex|%)$/i.test(value) ? '1em' : value);
	}
	
	// Original by Dead Edwards.
	// Combined with getFontSizeInPixels it also works with relative units.
	function getSizeInPixels(el, value) {
		if (/px$/i.test(value)) return parseFloat(value);
		var style = el.style.left, runtimeStyle = el.runtimeStyle.left;
		el.runtimeStyle.left = el.currentStyle.left;
		el.style.left = value;
		var result = el.style.pixelLeft;
		el.style.left = style;
		el.runtimeStyle.left = runtimeStyle;
		return result;
	}
	
	function createType(glyph, viewBox) {
		var shapeType = document.createElement('cvml:shapetype');
		shapeType.id = 'cufon-glyph-' + typeIndex++;
		glyph.typeRef = '#' + shapeType.id;
		shapeType.stroked = 'f';
		shapeType.coordsize = viewBox.width + ',' + viewBox.height;
		shapeType.coordorigin = viewBox.minX + ',' + viewBox.minY;
		var ensureSize = 'm' + viewBox.minX + ',' + viewBox.minY + ' r' + viewBox.width + ',' + viewBox.height;
		shapeType.path = (glyph.d ? 'm' + glyph.d + 'x' : '') + ensureSize;
		document.body.insertBefore(shapeType, document.body.firstChild);
	}
	
	return function(font, text, style, options, node, el, hasNext) {
	
		// @todo word-spacing, text-decoration
	
		var viewBox = font.viewBox;
		
		var size = style.computedFontSize || (style.computedFontSize = new Cufon.CSS.Size(getFontSizeInPixels(el, style.get('fontSize')) + 'px', font.baseSize));
		
		var letterSpacing = style.computedLSpacing;
		
		if (letterSpacing == undefined) {
			letterSpacing = style.get('letterSpacing');
			style.computedLSpacing = letterSpacing = (letterSpacing == 'normal') ? 0 : size.convertFrom(getSizeInPixels(el, letterSpacing));
		}
		
		var wrapper = document.createElement('span');
		wrapper.className = 'cufon cufon-vml';
		wrapper.alt = text;
		
		var canvas = document.createElement('cvml:group');
		
		var wStyle = wrapper.runtimeStyle;
		var cStyle = canvas.runtimeStyle;
		
		var height = size.convert(viewBox.height);
		
		cStyle.height = Math.ceil(height);
		cStyle.top = Math.round(size.convert(viewBox.minY - font.ascent));
		cStyle.left = Math.round(size.convert(viewBox.minX));
		
		var roundingFactor = parseInt(cStyle.height, 10) / height;
		
		wStyle.height = size.convert(-font.ascent + font.descent) + 'px';
		
		var textDecoration = options.enableTextDecoration ? Cufon.CSS.textDecoration(el, style) : {};
		
		var color = style.get('color');
		var chars = Cufon.CSS.textTransform(text, style).split('');
		
		var width = 0, offsetX = 0, advance = null;
		
		var shadows = options.textShadow;
		
		for (var i = 0, l = chars.length; i < l; ++i) {
		
			var glyph = font.glyphs[chars[i]] || font.missingGlyph;
			if (!glyph) continue;
			
			if (!glyph.typeRef) createType(glyph, viewBox);
			
			var shape = document.createElement('cvml:shape');
			shape.type = glyph.typeRef;
			var sStyle = shape.runtimeStyle;
			sStyle.width = viewBox.width;
			sStyle.height = viewBox.height;
			sStyle.top = 0;
			sStyle.left = offsetX;
			sStyle.zIndex = 1;
			shape.fillcolor = color;
			canvas.appendChild(shape);
			
			if (shadows) {
				// the VML shadow element is not used because it can only support
				// up to 2 shadows. and it breaks text selection.
				for (var z = 0, p = shadows.length; z < p; ++z) {
					var shadow = shadows[z];
					var shadowColor = Cufon.CSS.color(shadow.color);
					var shadowNode = shape.cloneNode(false), zStyle = shadowNode.runtimeStyle;
					zStyle.top = size.convertFrom(parseFloat(shadow.offY));
					zStyle.left = offsetX + size.convertFrom(parseFloat(shadow.offX));
					zStyle.zIndex = 0;
					shadowNode.fillcolor = shadowColor.color;
					if (shadowColor.opacity) {
						var shadowFill = document.createElement('cvml:fill');
						shadowFill.opacity = shadowColor.opacity;
						shadowNode.appendChild(shadowFill);
					}
					canvas.appendChild(shadowNode);
				}
			}
			
			advance = Number(glyph.w || font.w) + letterSpacing;
			
			width += advance;
			offsetX += advance;
			
		}
		
		if (advance === null) return null;
		
		var fullWidth = -viewBox.minX + width + (viewBox.width - advance);
		
		canvas.coordsize = fullWidth + ',' + viewBox.height;
		
		cStyle.width = size.convert(fullWidth * roundingFactor);
		
		wStyle.width = Math.max(Math.ceil(size.convert(width * roundingFactor)), 0);
		
		wrapper.appendChild(canvas);
	
		if (options.printable) {
			var print = document.createElement('span');
			print.className = 'cufon-alt';
			print.innerText = text;
			wrapper.appendChild(print);
		}
		
		// ie6, for some reason, has trouble rendering the last VML element in the document.
		// we can work around this by injecting a dummy element where needed.
		// @todo find a better solution
		if (!hasNext) wrapper.appendChild(document.createElement('cvml:group'));
		
		return wrapper;
		
	};
	
})());
Cufon.registerFont({"w":217,"face":{"font-family":"NeoSans","font-weight":400,"font-stretch":"normal","units-per-em":"360","panose-1":"2 0 5 6 2 0 0 2 0 4","ascent":"288","descent":"-72","x-height":"3","bbox":"-13.6188 -308.202 285.024 76","underline-thickness":"18","underline-position":"-36","stemh":"26","stemv":"23","unicode-range":"U+0020-U+007D"},"glyphs":{" ":{"w":88},"$":{"d":"190,-69v0,30,-14,63,-66,70v-1,20,9,48,-24,41v-13,-2,-5,-26,-7,-39v-21,-1,-38,-4,-52,-6v-11,-2,-4,-12,-6,-21v0,-4,2,-6,7,-6v45,8,119,8,114,-39v-6,-51,-135,-71,-128,-137v0,-38,23,-58,65,-63v1,-20,-7,-45,24,-38v13,2,5,24,7,37v20,1,41,3,53,5v8,0,6,13,6,21v0,4,-3,6,-7,6v-38,-1,-122,-16,-115,32v6,50,142,75,129,137"},"%":{"d":"270,-89v4,49,-6,92,-49,92v-42,0,-52,-43,-48,-92v0,-40,18,-59,48,-59v31,0,49,19,49,59xm213,-267v7,1,26,-4,19,6r-150,255v-4,11,-19,8,-29,5v46,-90,101,-173,151,-260v3,-6,5,-6,9,-6xm113,-212v4,49,-6,92,-48,92v-42,0,-53,-42,-49,-92v0,-40,19,-58,49,-58v30,0,48,18,48,58xm221,-18v28,0,27,-40,26,-71v0,-28,-9,-38,-26,-38v-27,0,-28,40,-26,71v0,28,10,38,26,38xm65,-141v27,0,28,-40,26,-71v0,-27,-10,-38,-26,-38v-27,0,-28,40,-26,71v0,28,10,38,26,38","w":285},"&":{"d":"229,-8v3,3,2,8,-2,8v-26,4,-38,-7,-49,-22v-42,40,-163,37,-159,-44v0,-30,16,-48,52,-71v-31,-36,-40,-57,-40,-76v0,-38,29,-57,76,-57v41,0,72,19,71,60v5,24,-26,53,-65,78r65,70v11,-18,14,-41,14,-68v0,-9,13,-5,21,-6v6,0,8,4,7,11v0,31,-8,61,-23,83xm95,-152v30,-18,60,-37,53,-61v0,-24,-17,-33,-41,-33v-29,0,-48,8,-47,36v-3,11,10,32,35,58xm161,-41r-72,-76v-30,19,-37,28,-37,54v0,51,84,49,109,22","w":244},"(":{"d":"100,69v1,3,2,6,-3,6v-10,-1,-20,4,-25,-4v-66,-79,-66,-258,0,-338v5,-6,23,-6,29,-1v-61,88,-66,247,-1,337","w":109},")":{"d":"14,72v64,-90,63,-250,0,-340v4,-5,24,-5,29,1v66,79,67,258,0,338v-5,7,-22,6,-29,1","w":109},",":{"d":"35,-46v9,1,29,-4,25,6r-27,68v-1,11,-21,9,-26,3r21,-71v2,-4,3,-6,7,-6","w":77},"-":{"d":"96,-119v11,1,10,28,0,27r-72,0v-10,1,-7,-11,-7,-20v0,-4,3,-7,7,-7r72,0","w":119},".":{"d":"54,-41v-1,21,8,48,-24,41v-13,-3,-7,-27,-7,-41v0,-10,14,-6,24,-7v4,0,7,3,7,7","w":77},"\/":{"d":"90,-260v2,-12,33,-10,30,0r-82,253v0,10,-26,10,-30,2","w":127},"0":{"d":"197,-109v0,79,-34,112,-88,112v-70,7,-96,-70,-88,-161v0,-80,34,-112,88,-112v54,0,88,32,88,112r0,49xm109,-25v50,0,61,-68,56,-133v0,-61,-22,-84,-56,-84v-50,0,-60,68,-55,133v0,60,21,84,55,84"},"1":{"d":"134,-7v0,10,-16,6,-26,7v-4,0,-6,-3,-6,-7r0,-227v-18,7,-33,16,-52,22v-5,-3,-6,-24,1,-27v26,-9,41,-28,76,-28v4,0,7,2,7,6r0,254"},"2":{"d":"32,-244v-3,-35,46,-24,71,-26v103,-10,111,95,40,134v-38,25,-96,56,-85,108r121,0v10,-1,6,13,7,22v0,3,-3,6,-7,6r-143,0v-13,-1,-5,-24,-7,-36v-6,-51,49,-95,91,-119v30,-20,37,-29,37,-51v4,-48,-75,-38,-119,-31v-3,0,-6,-3,-6,-7"},"3":{"d":"30,-243v-3,-35,40,-21,68,-27v56,0,92,18,90,75v0,24,-12,45,-35,56v28,16,36,36,35,64v4,78,-86,88,-151,70v-9,0,-7,-11,-7,-19v0,-4,3,-6,7,-6v57,8,125,15,117,-52v0,-19,-9,-44,-42,-44r-66,0v-9,0,-5,-11,-6,-19v0,-4,2,-7,6,-7r66,0v37,-1,43,-24,42,-48v5,-52,-70,-45,-118,-37v-3,0,-6,-2,-6,-6"},"4":{"d":"197,-99v11,1,10,29,0,28r-31,0r0,64v0,11,-17,6,-27,7v-4,0,-6,-3,-6,-7r0,-64r-104,0v-21,3,-19,-29,-11,-41r107,-150v4,-7,38,-10,41,2r0,161r31,0xm133,-99r-2,-125r-87,123v24,6,61,0,89,2"},"5":{"d":"190,-87v0,83,-80,103,-155,83v-9,0,-7,-11,-7,-20v0,-5,2,-6,7,-6v61,11,129,10,122,-57v7,-50,-61,-50,-118,-48v-4,0,-6,-3,-6,-6r10,-120v0,-4,3,-6,7,-6r124,0v10,-1,6,12,7,21v0,4,-3,6,-7,6r-103,0r-6,78v72,-2,125,12,125,75"},"6":{"d":"197,-91v1,58,-28,94,-88,94v-54,0,-87,-32,-87,-103r0,-63v-8,-104,75,-116,155,-101v11,2,9,10,9,21v0,5,-4,6,-9,6v-18,-3,-38,-6,-61,-6v-58,0,-62,35,-62,84v61,-14,145,-12,143,68xm109,-24v34,1,56,-18,55,-67v0,-61,-65,-51,-110,-43v-4,61,9,119,55,110"},"7":{"d":"165,-267v30,0,31,22,22,41r-103,221v-4,7,-30,9,-35,0r110,-232v-36,-6,-86,0,-126,-2v-9,0,-7,-13,-7,-22v0,-3,4,-6,7,-6r132,0"},"8":{"d":"198,-81v2,59,-38,85,-91,84v-50,0,-90,-27,-87,-84v0,-22,12,-46,35,-59v-24,-12,-35,-32,-34,-59v0,-51,38,-72,90,-71v50,0,88,22,87,74v0,24,-12,45,-35,56v23,13,35,37,35,59xm98,-153v42,4,72,-13,68,-46v0,-30,-21,-45,-59,-44v-36,0,-56,15,-55,47v0,22,13,43,46,43xm107,-25v41,1,61,-19,59,-56v2,-28,-26,-52,-68,-46v-35,1,-46,25,-45,52v0,31,19,50,54,50"},"9":{"d":"193,-105v8,105,-76,120,-156,101v-10,0,-8,-10,-8,-20v0,-6,3,-7,8,-7v19,4,39,6,62,6v58,0,62,-35,62,-84v-62,15,-147,11,-143,-70v0,-57,29,-91,88,-91v54,0,87,32,87,102r0,63xm161,-134v4,-60,-9,-118,-55,-109v-35,-1,-57,17,-56,66v0,62,67,53,111,43"},"@":{"d":"184,19v3,30,-26,20,-56,20v-73,0,-117,-40,-113,-108v2,-96,34,-167,136,-167v74,0,111,51,111,104v0,88,-45,112,-131,113v-58,2,-64,-47,-54,-99v4,-37,27,-57,66,-57v18,0,49,-3,54,14r-11,113v45,-7,52,-39,52,-84v0,-45,-29,-83,-88,-83v-92,-2,-111,70,-112,157v-6,62,68,87,143,75v3,0,3,2,3,2xm165,-147v-30,-5,-55,-2,-58,30v-4,40,-11,85,49,71","w":276},"A":{"d":"217,-8v2,12,-17,7,-27,8v-3,0,-5,-3,-6,-5r-23,-83r-94,0r-23,83v-2,8,-31,9,-34,-1r67,-237v15,-38,59,-38,73,0xm154,-117r-33,-118v-1,-9,-12,-9,-14,0r-33,118r80,0","w":227},"B":{"d":"28,-254v5,-24,36,-12,69,-16v59,0,108,16,105,75v0,27,-14,47,-38,57v27,9,42,31,40,64v3,82,-93,82,-164,73v-8,-1,-12,-4,-12,-13r0,-240xm61,-152v53,3,121,1,109,-49v4,-45,-61,-42,-109,-40r0,89xm61,-27v54,5,117,5,110,-53v0,-24,-12,-46,-54,-46r-56,0r0,99","w":221},"C":{"d":"184,-24v1,38,-29,27,-67,27v-45,0,-95,-24,-95,-112r0,-50v4,-116,73,-119,155,-105v10,-1,5,15,6,23v-9,10,-41,-2,-66,1v-35,0,-63,20,-63,81r0,50v-1,91,57,85,124,79v4,0,6,2,6,6","w":196},"D":{"d":"101,3v-35,-3,-66,6,-73,-13r0,-247v7,-20,39,-9,73,-13v85,-5,118,62,109,161v0,77,-42,112,-109,112xm177,-109r0,-49v-1,-83,-49,-88,-116,-83r0,215v70,3,114,-1,116,-83","w":230},"E":{"d":"105,-270v28,6,83,-17,74,25v0,3,-2,5,-4,5v-45,3,-124,-15,-114,37r0,50r110,0v10,0,8,11,8,21v0,4,-4,7,-8,7r-110,0v5,47,-20,104,44,98r70,0v7,2,3,15,4,23v-8,12,-51,4,-74,7v-51,0,-77,-20,-77,-67r0,-139v0,-48,26,-67,77,-67","w":198},"F":{"d":"105,-270v28,6,83,-17,74,25v0,3,-2,5,-4,5v-45,3,-124,-15,-114,37r0,50r110,0v10,0,8,11,8,21v0,4,-4,7,-8,7r-110,0r0,118v0,11,-16,6,-26,7v-4,0,-7,-3,-7,-7r0,-196v0,-48,26,-67,77,-67","w":198},"G":{"d":"192,-11v0,4,-2,7,-6,8v-81,15,-166,10,-165,-106r0,-49v0,-119,84,-119,165,-107v10,0,5,14,6,23v0,3,-3,4,-6,4v-68,-3,-134,-17,-132,80r0,49v-1,81,47,88,105,80r0,-103v0,-11,16,-6,26,-7v4,0,7,3,7,7r0,121","w":220},"H":{"d":"217,-7v-1,11,-31,11,-33,0r0,-120r-123,0r0,120v0,11,-16,6,-26,7v-4,0,-7,-3,-7,-7r0,-253v0,-11,16,-6,26,-7v4,0,7,3,7,7r0,104r123,0r0,-104v0,-11,30,-11,33,0r0,253","w":244},"I":{"d":"64,-7v0,10,-16,6,-26,7v-3,0,-6,-3,-6,-7r0,-254v0,-10,17,-5,26,-6v4,0,6,2,6,6r0,254","w":96},"J":{"d":"9,65v-17,0,-25,-2,-22,-20v9,-14,53,3,45,-32r0,-274v1,-9,30,-10,32,0r0,274v0,35,-16,52,-55,52","w":92},"K":{"d":"201,-8v3,3,3,8,-3,8v-13,-1,-29,4,-36,-4r-101,-123r0,120v0,10,-16,7,-26,7v-4,0,-7,-3,-7,-7r0,-254v1,-9,31,-10,33,0r0,117r104,-120v7,-5,30,-5,38,0v-34,45,-74,83,-110,126","w":218},"L":{"d":"175,-27v7,3,6,24,0,26v-49,3,-155,25,-147,-63r0,-196v0,-11,16,-6,26,-7v4,0,7,3,7,7r0,196v-10,52,69,34,114,37","w":185},"M":{"d":"246,-7v0,10,-15,6,-25,7v-4,0,-7,-3,-7,-7r0,-215r-52,108v-5,15,-43,15,-49,0r-53,-108r0,215v0,10,-15,6,-25,7v-4,0,-7,-3,-7,-7r0,-250v0,-15,39,-15,45,-4r64,127v25,-38,41,-86,64,-127v5,-9,43,-12,45,4r0,250","w":273},"N":{"d":"217,-10v0,14,-38,14,-45,4r-112,-212r0,211v0,11,-27,10,-32,3r0,-253v0,-15,40,-14,45,-3r111,211v4,-67,-1,-142,1,-212v1,-9,29,-9,32,0r0,251","w":244},"O":{"d":"216,-111v0,80,-40,114,-97,114v-56,0,-97,-34,-97,-114r0,-46v0,-80,41,-113,97,-113v57,0,97,33,97,113r0,46xm119,-27v55,0,70,-61,64,-130v0,-60,-24,-83,-64,-83v-55,-8,-70,60,-64,129v0,61,25,84,64,84","w":237},"P":{"d":"197,-192v3,77,-61,90,-137,84r0,101v0,10,-15,6,-25,7v-4,0,-7,-3,-7,-7r0,-251v0,-5,3,-8,9,-9v74,-9,165,-5,160,75xm60,-135v58,5,114,-2,105,-57v6,-48,-53,-54,-105,-49r0,106","w":213},"Q":{"d":"216,-157v7,86,-18,158,-81,159v0,21,-3,36,22,36v15,0,34,-5,29,18v0,6,-11,9,-29,9v-42,2,-58,-19,-54,-64v-62,-2,-89,-71,-81,-158v0,-80,41,-113,97,-113v57,0,97,33,97,113xm119,-27v55,0,70,-61,64,-130v0,-60,-24,-83,-64,-83v-55,-8,-70,60,-64,129v0,61,25,84,64,84","w":237},"R":{"d":"210,-8v3,3,0,8,-4,8v-12,-2,-27,5,-32,-5r-65,-107r-49,-1r0,106v0,10,-15,6,-25,7v-4,0,-7,-3,-7,-7r0,-252v0,-5,2,-7,9,-8v75,-8,170,-7,164,77v0,40,-24,64,-57,73xm60,-141v59,3,108,4,108,-52v0,-50,-57,-49,-108,-46r0,98","w":225},"S":{"d":"104,-270v29,0,75,-13,69,26v0,4,-3,6,-7,6v-39,0,-122,-15,-115,32v6,50,142,76,129,137v0,34,-18,72,-89,72v-25,0,-44,-4,-60,-6v-11,-1,-5,-11,-7,-20v8,-15,48,-2,67,-4v77,-7,70,-64,12,-91v-33,-20,-89,-47,-85,-88v0,-44,31,-64,86,-64","w":198},"T":{"d":"193,-267v12,1,10,29,0,28r-70,0r0,232v0,10,-31,12,-33,0r0,-232r-70,0v-10,1,-6,-13,-7,-22v0,-4,3,-6,7,-6r173,0","w":212},"U":{"d":"211,-97v0,69,-34,100,-92,100v-58,0,-92,-31,-92,-100r0,-164v1,-9,31,-10,33,0r0,164v0,46,15,71,59,71v45,0,59,-24,59,-71r0,-164v1,-9,31,-10,33,0r0,164","w":238},"V":{"d":"186,-262v5,-9,36,-9,33,3r-66,234v-15,40,-58,39,-74,0r-67,-236v1,-10,29,-9,34,-1r63,229v1,10,12,11,14,0","w":231},"W":{"d":"252,-261v3,-11,34,-9,33,1r-40,243v-3,28,-54,25,-59,0r-38,-136v-15,42,-26,91,-37,136v-6,23,-55,29,-58,0r-40,-244v1,-9,29,-10,33,0r36,234v16,-42,24,-93,38,-138v2,-22,53,-23,57,0r38,138","w":297},"X":{"d":"216,-9v2,4,2,9,-4,9v-12,-1,-26,4,-31,-5r-65,-105r-65,105v-5,10,-18,3,-29,5v-6,0,-6,-5,-4,-9r80,-127r-81,-126v2,-9,28,-6,36,-2r64,103r63,-103v5,-5,37,-7,33,5r-78,124","w":232},"Y":{"d":"170,-267v11,1,32,-4,27,9r-56,125v-7,14,-13,21,-20,24r0,102v0,10,-16,6,-26,7v-4,0,-6,-4,-6,-7r0,-102v-7,-3,-13,-10,-20,-24r-56,-129v2,-8,29,-8,34,0r50,116v6,14,10,14,16,0r50,-116v2,-3,4,-5,7,-5","w":209},"Z":{"d":"189,-30v12,2,10,31,0,30r-139,0v-34,5,-35,-26,-24,-45r130,-191v-36,-6,-84,0,-124,-2v-10,1,-7,-14,-7,-23v0,-4,3,-6,7,-6r129,0v31,-5,36,25,24,45r-129,190v38,7,91,-1,133,2","w":214},"[":{"d":"102,44v11,0,10,27,0,26r-67,0v-4,0,-6,-3,-6,-7r0,-324v0,-3,2,-6,6,-6r67,0v9,0,7,11,7,19v-4,14,-33,4,-48,7r0,285r41,0","w":117},"]":{"d":"89,63v0,4,-3,7,-6,7r-67,0v-9,0,-7,-11,-7,-19v4,-14,33,-4,48,-7r0,-285v-19,-4,-54,12,-48,-19v0,-4,3,-7,7,-7r67,0v3,0,6,3,6,6r0,324","w":117},"a":{"d":"162,-7v0,10,-14,6,-23,7v-7,0,-9,-7,-8,-15v-42,29,-114,29,-114,-45v0,-48,48,-62,114,-58v2,-35,-5,-58,-39,-56r-57,3v-8,1,-6,-11,-6,-18v0,-4,2,-6,7,-7v15,-2,32,-5,56,-5v99,-4,64,109,70,194xm131,-38r0,-58v-44,-1,-92,0,-82,40v1,49,53,35,82,18","w":186},"b":{"d":"177,-112v4,68,-15,115,-79,115v-21,0,-44,-2,-66,-7v-6,-1,-8,-3,-8,-8r0,-252v0,-9,15,-7,25,-7v4,0,7,3,7,7r0,67v71,-15,123,10,121,85xm98,-25v46,2,49,-39,47,-87v5,-58,-36,-68,-89,-58r0,143v12,1,30,2,42,2","w":194},"c":{"d":"95,-201v23,0,58,-8,52,25v-8,14,-34,-1,-52,3v-38,-4,-49,40,-45,88v-2,62,39,65,91,57v8,0,6,11,6,19v-5,15,-32,10,-52,12v-59,0,-83,-49,-77,-116v0,-53,27,-88,77,-88","w":162},"d":{"d":"170,-12v0,5,-1,7,-7,8v-23,5,-45,7,-67,7v-62,0,-83,-48,-78,-115v-2,-75,49,-101,121,-85r0,-67v0,-10,15,-6,25,-7v3,0,6,3,6,7r0,252xm139,-27r0,-143v-51,-9,-95,-1,-89,58v-2,47,1,90,46,87v13,0,30,-1,43,-2","w":194},"e":{"d":"177,-116v-1,10,4,27,-7,27r-120,0v-8,76,57,66,116,60v5,1,11,23,-2,25v-71,12,-145,16,-146,-80v-6,-69,16,-117,80,-117v52,0,79,34,79,85xm145,-113v1,-42,-14,-61,-47,-60v-32,0,-49,20,-48,60r95,0","w":195},"f":{"d":"101,-274v20,0,29,0,27,20v-8,15,-53,-8,-46,30r0,26v19,3,52,-11,45,21v-4,12,-31,4,-45,6r0,164v0,10,-14,7,-24,7v-4,0,-7,-4,-7,-7r0,-164v-16,-5,-48,5,-42,-21v2,-12,29,-4,42,-6v-4,-47,8,-80,50,-76","w":137},"g":{"d":"42,-34v-23,-9,-26,-42,-4,-56v-34,-41,-21,-110,63,-108r79,0v7,0,9,8,8,17v0,10,-12,7,-19,10v27,41,8,110,-68,101v-25,3,-46,-17,-51,5v0,6,3,10,12,12v46,15,122,14,122,69v0,35,-23,56,-82,56v-86,7,-103,-67,-60,-106xm101,-95v40,-1,50,-15,49,-39v0,-22,-10,-39,-49,-39v-41,1,-48,19,-48,42v0,15,7,36,48,36xm102,48v43,-1,52,-11,51,-35v5,-22,-60,-30,-85,-38v-26,22,-32,79,34,73","w":201},"h":{"d":"176,-7v0,10,-14,6,-24,7v-4,0,-8,-3,-8,-7r0,-119v0,-61,-45,-51,-88,-37r0,156v0,10,-32,12,-32,0r0,-257v0,-9,15,-7,25,-7v4,0,7,4,7,7r0,75v58,-24,121,-16,120,63r0,119","w":200},"i":{"d":"54,-273v12,4,11,42,0,43v-10,-1,-26,4,-26,-7v0,-13,-6,-34,7,-36r19,0xm60,-7v0,10,-14,6,-24,7v-4,0,-8,-3,-8,-7r0,-184v0,-10,30,-12,32,0r0,184","w":88},"j":{"d":"54,-273v12,4,11,42,0,43v-10,-1,-25,4,-26,-7v0,-21,-6,-43,26,-36xm60,23v1,45,-27,52,-64,46v-11,1,-6,-11,-7,-19v8,-14,46,8,39,-27r0,-214v0,-10,16,-7,26,-7v4,0,6,3,6,7r0,214","w":88},"k":{"d":"165,-8v3,12,-17,7,-29,8v-4,0,-5,-1,-8,-5r-72,-88r0,86v0,10,-14,6,-24,7v-4,0,-8,-3,-8,-7r0,-257v0,-10,31,-11,32,0r0,150r72,-81v6,-5,43,-8,36,5r-79,86","w":178},"l":{"d":"60,-7v0,9,-15,7,-25,7v-4,0,-7,-3,-7,-7r0,-257v0,-9,15,-7,25,-7v4,0,7,3,7,7r0,257","w":87},"m":{"d":"263,-7v0,10,-15,6,-25,7v-4,0,-7,-3,-7,-7r0,-128v0,-51,-43,-40,-75,-28v7,45,1,105,3,156v0,10,-15,6,-25,7v-4,0,-6,-3,-6,-7r0,-128v2,-57,-42,-38,-72,-24r0,152v0,10,-15,6,-25,7v-4,0,-7,-3,-7,-7r0,-184v0,-10,15,-6,25,-7v7,0,8,7,7,14v24,-16,68,-28,89,-2v52,-24,118,-28,118,51r0,128","w":287},"n":{"d":"176,-7v0,10,-14,6,-24,7v-4,0,-8,-3,-8,-7r0,-119v3,-62,-51,-51,-88,-33r0,152v0,10,-32,12,-32,0r0,-184v0,-10,15,-6,25,-7v7,0,8,7,7,14v52,-33,127,-18,120,58r0,119","w":200},"o":{"d":"178,-113v5,68,-17,116,-80,116v-63,0,-85,-48,-80,-116v0,-53,27,-88,80,-88v53,0,80,35,80,88xm98,-25v43,1,52,-40,49,-88v0,-36,-15,-60,-49,-60v-44,-1,-51,40,-48,88v0,36,14,60,48,60","w":196},"p":{"d":"177,-112v9,88,-36,131,-121,111r0,65v0,9,-15,7,-25,7v-4,0,-7,-3,-7,-7r0,-248v0,-5,2,-7,8,-8v19,-5,44,-9,66,-9v54,0,79,35,79,89xm98,-24v45,2,49,-40,47,-88v0,-37,-11,-62,-47,-62v-15,0,-32,2,-42,4r0,142v12,2,31,4,42,4","w":194},"q":{"d":"170,64v0,10,-15,6,-25,7v-3,0,-6,-3,-6,-7r0,-65v-81,18,-131,-19,-121,-111v0,-54,24,-89,78,-89v22,0,48,4,67,9v6,1,7,3,7,8r0,248xm139,-28r0,-142v-10,-2,-27,-4,-43,-4v-44,-2,-48,41,-46,88v-5,59,38,70,89,58","w":194},"r":{"d":"106,-201v12,1,10,28,0,28v-17,0,-32,4,-50,15r0,151v0,10,-32,12,-32,0r0,-184v0,-10,14,-6,24,-7v7,0,8,7,7,15v18,-13,35,-18,51,-18","w":123},"s":{"d":"82,3v-17,-4,-71,8,-64,-26v22,-16,104,21,100,-27v-4,-40,-104,-49,-100,-103v-2,-57,73,-51,121,-43v10,1,6,10,7,19v0,5,-2,6,-7,6v-24,1,-90,-17,-89,18v9,39,100,54,100,103v0,37,-27,53,-68,53","w":167},"t":{"d":"130,-18v6,22,-15,21,-30,21v-33,0,-49,-9,-49,-49r0,-125v-16,-5,-48,5,-42,-21v2,-12,29,-4,42,-6v2,-14,-6,-38,6,-42v9,0,24,-9,25,3r0,39v19,3,53,-12,47,19v-3,15,-31,5,-47,8r0,125v-2,29,17,22,40,23v5,0,8,1,8,5","w":138},"u":{"d":"176,-7v0,10,-15,6,-25,7v-7,0,-8,-7,-7,-14v-51,33,-127,18,-120,-58r0,-119v0,-10,30,-12,32,0r0,119v-4,61,52,52,88,33r0,-152v0,-10,31,-12,32,0r0,184","w":200},"v":{"d":"151,-198v11,0,29,-4,25,9r-48,171v-8,29,-57,29,-65,0r-49,-174v1,-9,30,-11,32,1r42,157v3,15,12,13,15,0r41,-157v2,-5,4,-7,7,-7","w":190},"w":{"d":"237,-192v3,-11,35,-9,32,3r-35,167v-4,22,-8,25,-30,25v-19,0,-24,-4,-29,-26r-34,-125r-33,125v-5,20,-10,26,-29,26v-22,0,-26,-3,-30,-25r-35,-169v0,-10,30,-11,32,-1r30,164v2,7,4,5,6,0r35,-138v3,-16,43,-18,49,0r38,142v16,-50,20,-114,33,-168","w":282},"x":{"d":"183,-8v2,4,2,8,-4,8v-10,0,-24,3,-30,-3r-51,-75r-52,74v-3,7,-27,7,-32,0r67,-97r-63,-93v4,-6,30,-8,36,1r46,68r46,-68v4,-9,26,-7,33,-1v-18,33,-42,60,-62,91","w":196},"y":{"d":"53,71v-19,-2,-43,4,-38,-22v3,-13,28,-1,40,-4v26,5,34,-21,39,-45v-17,0,-23,-1,-32,-25r-48,-167v0,-9,17,-5,26,-6v3,0,6,3,6,6r43,156v3,10,5,8,13,8r43,-165v3,-7,37,-10,33,4r-60,207v-11,39,-24,53,-65,53","w":192},"z":{"d":"148,-27v12,0,12,28,0,27r-108,0v-29,0,-26,-34,-14,-50r94,-119v-25,-6,-62,0,-91,-2v-8,0,-7,-11,-7,-20v0,-4,3,-7,7,-7r106,0v27,-1,24,32,12,46r-97,122v0,2,1,3,3,3r95,0","w":173},"{":{"d":"102,44v11,0,10,27,0,26v-48,2,-73,-5,-73,-50v0,-44,11,-92,-22,-108r0,-21v60,-27,-38,-158,95,-158v9,0,7,11,7,19v-6,18,-58,-6,-48,30v-2,50,10,99,-26,120v35,20,26,69,26,118v0,26,17,24,41,24","w":119},"|":{"d":"61,63v0,10,-15,6,-25,7v-4,0,-7,-3,-7,-7r0,-324v1,-9,30,-10,32,0r0,324","w":89},"}":{"d":"112,-88v-60,28,37,158,-95,158v-9,0,-7,-11,-7,-19v6,-17,58,5,48,-31v2,-49,-9,-99,26,-118v-36,-21,-24,-70,-26,-120v4,-26,-17,-23,-41,-23v-9,0,-7,-11,-7,-19v0,-10,15,-6,25,-7v100,-15,20,117,77,158r0,21","w":119}}});/*------------------------------------------------------------------------
# JA Iolite for joomla 1.5 - Version 1.1 - Licence Owner JA16511
# ------------------------------------------------------------------------
# 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('mouseover', function()
								{
									el.setActive();
									el2.show(0);
									return false;
								});
		
								el.addEvent('mouseout', function()
								{
									el.setDeactive();
									el2.hide(20);
								});
								new DropdownMenu(el2);
								el.hasSub = 1;
							}
						});
						if (!el.hasSub)
						{
							el.addEvent('mouseover', function()
							{
								el.setActive();
								return false;
							});

							el.addEvent('mouseout', 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);
}
/**
* @version		$Id: caption.js 5263 2006-10-02 01:25:24Z webImagery $
* @copyright	Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
* @license		GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/

/**
* JCaption javascript behavior
*
* Used for displaying image captions
*
* @package	Joomla
* @since	1.5
* @version	1.0
*/
var JCaption = new Class({
	initialize: function(selector)
	{
		this.selector = selector;

		var images = $$(selector);
		images.each(function(image){ this.createCaption(image); }, this);
	},

	createCaption: function(element)
	{
		var caption   = document.createTextNode(element.title);
		var container = document.createElement("div");
		var text      = document.createElement("p");
		var width     = element.getAttribute("width");
		var align     = element.getAttribute("align");

		if(!width) {
			width = element.width;
		}

		//Windows fix
		if (!align)
			align = element.getStyle("float");  // Rest of the world fix
		if (!align) // IE DOM Fix
			align = element.style.styleFloat;

		if (align=="") {
			align="none";
		}

		text.appendChild(caption);
		text.className = this.selector.replace('.', '_');

		element.parentNode.insertBefore(container, element);
		container.appendChild(element);
		if ( element.title != "" ) {
			container.appendChild(text);
		}
		container.className   = this.selector.replace('.', '_');
		container.className   = container.className + " " + align;
		container.setAttribute("style","float:"+align);

		container.style.width = width + "px";

	}
});

document.caption = null;
window.addEvent('load', function() {
	var caption = new JCaption('img.caption')
	document.caption = caption
});
/**
 * 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);var ap_instances = new Array();

function ap_stopAll(playerID) {
	for(var i = 0;i<ap_instances.length;i++) {
		try {
			if(ap_instances[i] != playerID) document.getElementById("audioplayer" + ap_instances[i].toString()).SetVariable("closePlayer", 1);
			else document.getElementById("audioplayer" + ap_instances[i].toString()).SetVariable("closePlayer", 0);
		} catch( errorObject ) {
			// stop any errors
		}
	}
}

function ap_registerPlayers() {
	var objectID;
	var objectTags = document.getElementsByTagName("object");
	for(var i=0;i<objectTags.length;i++) {
		objectID = objectTags[i].id;
		if(objectID.indexOf("audioplayer") == 0) {
			ap_instances[i] = objectID.substring(11, objectID.length);
		}
	}
}

var ap_clearID = setInterval( ap_registerPlayers, 100 );var JASlideshow2 = new Class({	
	initialize: function(element, options) {
		this.options = Object.extend({
			startItem: 0,
			showItem: 4,
			mainWidth: 360,
			mainHeight: 240,
			itemWidth: 60,
			itemHeight: 60,
			duration: 400,
			interval: 5000,
			transition: Fx.Transitions.Back.easeOut,
			thumbOpacity:'0.8',			
			maskDesc : 'maskDesc',
			but_prev:'but_prev',
			but_next: 'but_next',
			maskOpacity: '0.8',
			buttonOpacity: '0.4',
			overlap: 0,
			navigation: '',
			animation: 'fade',
			thumbSpaces: [3,3],
			urls: [],
			autoPlay: false
		}, options || {});
		
		if (!this.options.animation.test(/move/)) this.options.overlap = 0;
		
		this.el = $(element);
		this.fxOptions = {duration:this.options.duration, transition:this.options.transition, wait: false}
		
		this.elmain = this.el.getElement('.ja-slide-main-wrap');
		var conWidth = this.options.overlap?'100%':this.options.mainWidth;
		this.elmain.setStyles ({'width':conWidth, 'height':this.options.mainHeight});
		this.els = this.el.getElements('.ja-slide-item');
		this.els.setStyles ({'width':this.options.mainWidth, 'height':this.options.mainHeight});
		this.options.rearWidth = 0;
		this.options.mainSpace = 0;
		if (this.options.overlap) {
			this.options.mainSpace = 10;
			this.options.rearWidth = Math.ceil((this.elmain.offsetWidth - this.options.mainWidth)/2) - this.options.mainSpace;
			this.but_prev = this.el.getElement('.'+this.options.but_prev);
			this.but_next = this.el.getElement('.'+this.options.but_next);
			this.but_prev.setStyles({'opacity': this.options.buttonOpacity, 'width': this.options.rearWidth, 'height': this.options.mainHeight});
			this.but_next.setStyles({'opacity': this.options.buttonOpacity, 'width': this.options.rearWidth, 'height': this.options.mainHeight});
			this.but_prev.addEvents ({
				'mouseover': function (){this.but_prev.setStyle('opacity', this.options.buttonOpacity/2);}.bind(this),
				'mouseout': function (){this.but_prev.setStyle('opacity', this.options.buttonOpacity);}.bind(this)
			});
			
			this.but_next.addEvents ({
				'mouseenter': function (){this.but_next.setStyle('opacity', this.options.buttonOpacity/2);}.bind(this),
				'mouseleave': function (){this.but_next.setStyle('opacity', this.options.buttonOpacity);}.bind(this)
			});
			this.els.setStyle ('margin-right', this.options.mainSpace);
		}
		/*Need to be fixed to work with moving up/down*/
		
		if(this.options.navigation){
			this.el.getElement('.ja-slide-thumbs-wrap').setStyles ({'width':this.options.itemWidth*this.options.showItem, 'height':this.options.itemHeight});
			var thumbs_thumbs 	= this.el.getElement('.ja-slide-thumbs');
			thumbs_thumbs.setStyle('left',0);
			thumbs_thumbs.getChildren().setStyles ({'width':this.options.itemWidth, 'height':this.options.itemHeight});
			var thumbs_handles 	= this.el.getElement('.ja-slide-thumbs-handles');
			thumbs_handles.setStyle('left',0);
			thumbs_handles.getChildren().setStyles ({'width':this.options.itemWidth, 'height':this.options.itemHeight});
			
			var thumbsFx_thumbs = new Fx.Style(thumbs_thumbs,'left',this.fxOptions);			
			var thumbsFx_handles= new Fx.Style(thumbs_handles,'left',this.fxOptions);

			this.el.getElement('.ja-slide-thumbs-mask-left').setStyles ({'height':this.options.itemHeight,'width':2000,'opacity':this.options.thumbOpacity});
			this.el.getElement('.ja-slide-thumbs-mask-right').setStyles ({'height':this.options.itemHeight,'width':2000,'opacity':this.options.thumbOpacity});
			this.el.getElement('.ja-slide-thumbs-mask-center').setStyles ({'height':this.options.itemHeight,'width':this.options.itemWidth,'opacity':this.options.thumbOpacity});
			var thumbs_mask = this.el.getElement('.ja-slide-thumbs-mask').setStyles ({'left':this.options.startItem*this.options.itemWidth-2000,'width':5000});
			//var thumbs_mask 	= this.el.getElement('.ja-slide-thumbs-mask').setStyle('left',(this.options.startItem*this.options.itemWidth-this.options.maskPos)+'px').setOpacity(this.options.thumbOpacity);	
			
			var thumbsFx_mask 	= new Fx.Style(thumbs_mask,'left',this.fxOptions);			
		}
		//When slideshow animate
		this.onWalk = function (currentIndex) {
			if (this.options.navigation) {
				if (currentIndex <= this.options.startItem || currentIndex - this.options.startItem >= this.options.showItem-1) {
					this.options.startItem = currentIndex - this.options.showItem+2;
					if (this.options.startItem < 0) this.options.startItem = 0;
					if (this.options.startItem > this.els.length-this.options.showItem) this.options.startItem = this.els.length-this.options.showItem;
				}
				thumbsFx_mask.start((currentIndex - this.options.startItem)*this.options.itemWidth-2000);
				thumbsFx_thumbs.start(-this.options.startItem*this.options.itemWidth);
				thumbsFx_handles.start(-this.options.startItem*this.options.itemWidth);
			}
			if (this.options.descMode.test(/load/)){
				this.hideDesc();
			}
			if (this.el.getElement('.readon')) this.el.getElement('.readon').href = this.options.urls[currentIndex];
		}
		
		//Description
		this.maskDesc = this.el.getElement ('.'+this.options.maskDesc);
		this.maskDesc.setStyles ({'display':'block',
													 'position':'absolute',
													 'top': 0,
													 'left': this.options.rearWidth+this.options.mainSpace,
													 'width': this.options.mainWidth,
													 'height': this.options.mainHeight,
													 'opacity': 0.01
													 });

		if (this.options.showDesc) {
			this.descFx = new Fx.Style (this.maskDesc, 'opacity',{duration:200,transition:Fx.Transitions.linear});
			this.descs = this.el.getElements ('.ja-slide-desc');
			this.showDesc = function() {
				this.descFx.stop();
				this.descFx.start(0.8);
			};
			this.hideDesc = function () {
				this.descFx.stop();
				this.descFx.start(0.01);
				
			};
			this.swapDesc = function (currentIndex) {
			//console.log('swap '+currentIndex);
				if (this.maskDesc.currentIndex == currentIndex) return;
				if (this.maskDesc.desc) {
					this.maskDesc.desc.remove();
					this.maskDesc.desc = null;
				}
				if (this.descs[currentIndex].innerHTML) this.maskDesc.desc = this.descs[currentIndex].inject (this.maskDesc);
				this.maskDesc.currentIndex = currentIndex;
			}
			
			if (this.options.descMode.test(/mouseover/)){
				this.maskDesc.addEvent ('mouseover', this.showDesc.bind(this));
				this.maskDesc.addEvent ('mouseout', this.hideDesc.bind(this));
			}
		}
		this.fxOptions.onComplete = function() {
			if (this.options.showDesc) {
				this.swapDesc(this.hs.currentIndex);
				if (this.options.descMode.test(/load/)){
					this.showDesc();
				}
			}
			if(this.hs.options.handles && this.hs.options.handles.length) {
				this.hs.options.handles[this.hs.lastIndex].removeClass ('active');
				this.hs.options.handles[this.hs.currentIndex].addClass ('active');
			}
		}.bind(this);
		
		//Click on Main image
		if (this.options.urls) {
			this.maskDesc.addEvent('click', function () {
				var url = this.options.urls[this.hs.currentIndex];
				if (url) location.href = url;
			}.bind(this));
		}
		
		this.hs = new JASlideshow({
			box: this.el.getElement('.ja-slide-main'),			
			items: this.els,
			handles: thumbs_handles?thumbs_handles.getChildren():[],
			fxOptions: this.fxOptions,
			interval: this.options.interval,
			onWalk: this.onWalk.bind(this),
			size: this.options.mainWidth + this.options.mainSpace,
			animation: this.options.animation,
			buttons: {
				previous: this.el.getElements('.ja-slide-prev'),
				play: this.el.getElements('.ja-slide-play'),
				stop: this.el.getElements('.ja-slide-stop'),
				playback: this.el.getElements('.ja-slide-playback'),
				next: this.el.getElements('.ja-slide-next')
			},
			startItem: this.options.startItem,
			offset: this.options.overlap?this.options.rearWidth-this.options.mainWidth:0,
			autoPlay: this.options.autoPlay
		});
		//Case xxxx
		if(this.options.overlap){
			this.hs.box.getChildren()[0].clone().inject(this.hs.box);
			this.hs.box.getChildren()[this.hs.items.length-1].clone().injectTop(this.hs.box);
			this.hs.box.setStyle(this.hs.modes[this.hs.options.mode][1],(this.hs.options.size*(this.hs.items.length+2)+200)+'px');			
		}
		this.el.setStyle('visibility', 'visible');
		//End case xxxx
		//hs.walk(this.options.startItem);
	}
});
var JASlideshow = new Class({

	initialize: function(options){
		this.options = Object.extend({
			buttons : {},
			interval:5000,
			handle_event: 'click',
			button_event: 'click',
			box: {},
			size: 240,
			mode: 'horizontal',
			items:[],
			handles:[],
			onWalk:{},
			animation: 'fade',
			autoPlay: false
		}, options || {});
		
		this.items = this.options.items;
		this.modes = {horizontal:['left','width'], vertical:['top','height']};
		
		this.box = $(this.options.box);
		
		this.buttons = {previous: [], next: [], play: [], playback: [], stop: []};
		
		if(this.options.buttons){
			for(var action in this.options.buttons){
				this.addActionButtons(action, $type(this.options.buttons[action])=='array' ? this.options.buttons[action] : [this.options.buttons[action]]);
			}
		}
		this.handles = this.options.handles;
		if(this.handles){
			this.addHandleButtons(this.handles);
		}
		//this.fx = new Fx.Style(this.box,this.modes[this.options.mode][0],this.options.fxOptions||{duration:500,wait:false});
		
		this.currentIndex = this.options.startItem || 0;
		this.previousIndex = null;
		this.nextIndex = null;
		this._auto = null;
		this.initFx();
		if(this.options.autoPlay) this.play(this.options.interval,'next',true);
		this.walk (this.currentIndex);
	},

	previous: function(manual){
		this.lastIndex = this.currentIndex;
		this.currentIndex += this.currentIndex>0 ? -1 : this.items.length-1;
		this.walk(null,manual);
	},

	next: function(manual){
		this.lastIndex = this.currentIndex;
		this.currentIndex += this.currentIndex<this.items.length-1 ? 1 : 1-this.items.length;
		this.walk(null,manual);
	},

	play: function(delay,direction,wait){
		this.stop();
		if(!wait){
			this[direction](false);
		}
		this._auto = this[direction].periodical(delay,this,false);
	},

	stop: function(){
		$clear(this._auto);
	},

	walk: function(item,manual){
		//alert(item + ' ' + manual);
		if($defined(item)){
			this.lastIndex = this.currentIndex;
			//if(item==this.currentIndex) return;
			this.currentIndex=item;
		}
		this.previousIndex = this.currentIndex + (this.currentIndex>0 ? -1 : this.items.length-1);
		this.nextIndex = this.currentIndex + (this.currentIndex<this.items.length-1 ? 1 : 1-this.items.length);
		if(manual){ this.stop(); }
		//this.fx.start(-this.currentIndex*this.options.size + this.options.offset);
		if(this.options.onWalk){ this.options.onWalk(this.currentIndex,(this.handles?this.handles[this.currentIndex]:null)); }
		this.animate();
		if(manual && this.options.autoPlay){ this.play(this.options.interval,'next',true); }
	},
	initFx: function () {
		if (this.options.animation.test (/move/)) {
			this.box.setStyle(this.modes[this.options.mode][1],(this.options.size*this.options.items.length+200)+'px');
			this.box.setStyle(this.modes[this.options.mode][0],(-this.currentIndex*this.options.size) + this.options.offset+'px');
			this.fx = new Fx.Style(this.box,this.modes[this.options.mode][0],this.options.fxOptions||{duration:500,wait:false});
			return;
		}
		this.items.setStyles({'position':'absolute', 'left':0, 'top':0, 'display':'none'});
		this.items[this.currentIndex].setStyle ('display', 'block');
		if (this.options.animation.test (/fade/)) {
			for (var i=0;i<this.items.length;i++) {
				this.items[i].fx = new Fx.Style(this.items[i],'opacity',this.options.fxOptions||{duration:500,wait:false});
			}
		}
	},
	animate: function () {
		if (this.options.animation.test (/move/)) {
			this.fx.start(-this.currentIndex*this.options.size + this.options.offset);
			return;
		}
		var others = [];
		for (var i=0;i<this.items.length;i++) {
			this.items[i].fx.stop();
			if (i!=this.currentIndex && i!= this.lastIndex) others.push (this.items[i]);
		}
		$$(others).setStyle ('display', 'none');
		if (this.lastIndex == this.currentIndex) {
			this.items[this.currentIndex].setStyles ({'display':'block', 'opacity': 1});
		} else {
			this.items[this.currentIndex].setStyles ({'display':'block', 'opacity': 0, 'z-index': 10});
			this.items[this.lastIndex].setStyles ({'z-index': 9});
		}
		if (this.options.animation.test (/fade/)) {
			this.items[this.lastIndex].fx.start(0);
			this.items[this.currentIndex].fx.start(1);
			return;
		}
	},
	
	addHandleButtons: function(handles){
		for(var i=0;i<handles.length;i++){
			handles[i].addEvent(this.options.handle_event,this.walk.bind(this,[i,true]));
		}
		//handles.addEvent(this.options.handle_event, function(){this.blur();});
	},

	addActionButtons: function(action,buttons){
		for(var i=0; i<buttons.length; i++){
			switch(action){
				case 'previous': buttons[i].addEvent(this.options.button_event,this.previous.bind(this,true)); break;
				case 'next': buttons[i].addEvent(this.options.button_event,this.next.bind(this,true)); break;
				case 'play': buttons[i].addEvent(this.options.button_event,this.play.bind(this,[this.options.interval,'next',false])); break;
				case 'playback': buttons[i].addEvent(this.options.button_event,this.play.bind(this,[this.options.interval,'previous',false])); break;
				case 'stop': buttons[i].addEvent(this.options.button_event,this.stop.bind(this)); break;
			}
			this.buttons[action].push(buttons[i]);
		}
		buttons.addEvent(this.options.button_event, function(){this.blur();});
	}
	
});var JS_ContentSlider = new Class({
    options:{
        w: 100,
        h: 200,
        num_elem: 4,
		total: 0,
		url: '',
        mode: 'horizontal',
        direction: 'right',
        wrapper: 'ja-slide-wrapper',
        duration: 1000,
        interval: 3000,
        auto: 1
    },
    
    initialize: function(options)
    {
        this.options = options;
		if (this.options.total){
            if (this.options.total < this.options.num_elem) this.options.num_elem = this.options.total;
			this.elements = new Array(this.options.total);
        }else
			this.elements = new Array();
			
        this.current = 0;
        $(this.options.wrapper).setStyle('position', 'relative');
        $(this.options.wrapper).setStyle('overflow', 'hidden');
		if(this.options.mode=='virtical'){
			$(this.options.wrapper).setStyle('width', this.options.w);
			$(this.options.wrapper).setStyle('height', this.options.h*this.options.num_elem);
		}else{
			$(this.options.wrapper).setStyle('width', this.options.w*this.options.num_elem);
			$(this.options.wrapper).setStyle('height', this.options.h);
		}

		this.ef_u = {};
		this.ef_d = {};
		this.ef_l = {};
		this.ef_r = {};
        for(i=0;i<=this.options.num_elem;i++) {
    		this.ef_u[i] = { 'top': [ i*this.options.h, (i-1)*this.options.h] };
    		this.ef_d[i] = { 'top': [ (i-1)*this.options.h, i*this.options.h] };
    		this.ef_l[i] = { 'left': [ i*this.options.w, (i-1)*this.options.w] };
    		this.ef_r[i] = { 'left': [ (i-1)*this.options.w, i*this.options.w] };
        }
    },
    
    getFx: function(){		
        if (this.options.mode == 'virtical') {
            if (this.options.direction == 'up') {
                return this.ef_u;
            }else{
                return this.ef_d;
            }
        }else{
            if (this.options.direction == 'left') {
                return this.ef_l;
            }else{
                return this.ef_r;
            }
        }
    },
    
    add: function(text){
        var divobj = new Element('DIV', {'id':'jsslide_' + this.elements.length, 'class':'jsslide'});
        divobj.innerHTML = text;
        divobj.setStyle ('position','absolute');
        divobj.setStyle('width', this.options.w);
        divobj.setStyle('height', this.options.h);
        if(this.elements.length > 1) {
            divobj.injectAfter (this.elements[this.elements.length-2]);
        }else{
            divobj.inject ($(this.options.wrapper));
        }
		this.hide(divobj);
        this.elements.push(divobj);
    },
    
	//Update element i
	update: function (text, ind){
        divobj = new Element('DIV', {'id':'jsslide_' + ind, 'class':'jsslide'});
        divobj.innerHTML = text;
        divobj.setStyle ('position','absolute');
        divobj.setStyle ('z-index',1);
        divobj.setStyle('width', this.options.w);
        divobj.setStyle('height', this.options.h);
		divobj.inject ($(this.options.wrapper));
		this.hide(divobj);
		this.elements[ind] = divobj;
	},
	
    hide: function (el) {		
        if (this.options.mode == 'virtical') {
            el.setStyle('top', '-999em');
            el.setStyle('left', '0');            
        }else{
            el.setStyle('top', '0');
            el.setStyle('left', '-999em');            
        }
    },
	
    setPos: function (elems) {
		if (!elems) elems = this.getRunElems();
        for(var i=0;i<elems.length;i++) {
			var el = elems[i];
			if (el){
				if (this.options.mode == 'virtical') {
					if (this.options.direction == 'up') {
						el.setStyle('top', this.options.h*i);
					}else{
						el.setStyle('top', this.options.h*(i-1));                
					}
				}else{
					if (this.options.direction == 'left') {
						el.setStyle('left', this.options.w*i);
					}else{
						el.setStyle('left', this.options.w*(i-1));                
					}
				}
			}
		}
    },

	getRunElems: function(){
        var objs = new Array();
		if(this.options.direction=='left' || this.options.direction=='up'){
			adj = 0;
		}else{
			adj = this.elements.length-1;
		}
        for(var i=0;i<=this.options.num_elem;i++) {
            objs[i] = this.elements[(this.current+i+adj) % this.elements.length];
        }
        if (this.options.total <= this.options.num_elem) {
            if(this.options.direction=='left' || this.options.direction=='up'){
                objs[this.options.num_elem] = null;
            }else{
                objs[0] = null;
            }
        }
 		return objs;		
	},
	
    start: function () {
		this.clearTimeOut();
		if (!this.elements[this.next()]) {
			this.nextRun();
			return;
		}
		if (this.elements[this.next()] == 'fetching') {
			this.nextRun();
			return;
		}
		if(this.running) return;
		this.running = 1;
		
        var objs = this.getRunElems();
		this.setPos(objs);
        this.x = new Fx.Elements(objs, {duration: this.options.duration, onComplete:this.end.bind(this)});
		this.x.start(this.getFx());
		this.current = this.nextCurr();
    },
	
	end: function() {
		this.running = 0;
		this.nextRun();
	},
    
	clearTimeOut: function(){
		if(this.timeOut) {
			clearTimeout(this.timeOut);
			this.timeOut = 0;			
		}
	},
	
    nextRun: function () {
		this.clearTimeOut();
		if (this.options.total <= this.options.num_elem) return;
		if (this.options.auto){
			this.timeOut = setTimeout(this.start.bind(this),this.options.interval);
			this.fetchNext();
		}
    },
	
	nextCurr: function () {
		var next = 0;
		if(this.options.direction=='left' || this.options.direction=='up'){
	        next = (this.current+1) % this.elements.length;
		}else{
	        next = (this.current+this.elements.length-1) % this.elements.length;			
		}
		return next;
	},

	next: function () {
		var next = 0;
		if(this.options.direction=='left' || this.options.direction=='up'){
	        next = (this.current+this.options.num_elem) % this.elements.length;
		}else{
	        next = (this.current+this.elements.length-1) % this.elements.length;			
		}
		return next;
	},
	
	fetchNext: function(){
		var next = this.next();
		//alert(this.current); && this.elements[this.current]
		if (!this.elements[next]){
			this.elements[next] = 'fetching';
			url = this.options.url + '?total='+this.options.total+'&news='+next+'&loadajax=1&modid='+this.options.modid;
			new Ajax(url,{method:'get',onComplete:function(request){this.update(request,next)}.bind(this)}).request(); 
			return;
		}
	},
	
	fetchUpdate: function(text,next){
		this.update(text, next);
	},
	
	setDirection: function (direction){
		this.options.direction = direction;
	}
	
});
