/*  */
var JCEMediaObject={version:{'flash':'10,0,22,87','windowsmedia':'5,1,52,701','quicktime':'6,0,2,0','realmedia':'7,0,0,0','shockwave':'8,5,1,0'},init:function(base,v){var t=this;this.base=base;for(n in v){t.version[n]=v[n]}},getSite:function(){var base=this.base;if(base){var site=document.location.href;var parts=site.split(':\/\/');var port=parts[0];var url=parts[1];if(url.indexOf(base)!=-1){url=url.substr(0,url.indexOf(base))}else{url=url.substr(0,url.indexOf('/'))||url}return port+'://'+url+base}return''},writeObject:function(cls,cb,mt,p){var h='',n;var msie=/msie/i.test(navigator.userAgent);var webkit=/webkit/i.test(navigator.userAgent);if(!/:\/\//.test(p.src)){p.src=this.getSite()+p.src;if(mt=='video/x-ms-wmv'){p.url=p.src}}h+='<object ';if(mt=='application/x-shockwave-flash'&&!msie){h+='type="'+mt+'" data="'+p.src+'" '}else{h+='classid="clsid:'+cls+'" ';if(cb){h+='codebase="'+cb+'" '}}for(n in p){if(p[n]!==''){if(/(id|name|width|height|style)$/.test(n)){h+=n+'="'+p[n]+'"'}}}h+='>';for(n in p){if(p[n]!==''){if(!/(id|name|width|height|style)$/.test(n)){h+='<param name="'+n+'" value="'+p[n]+'">'}}}if(!msie&&mt!='application/x-shockwave-flash'){h+='<embed type="'+mt+'" src="'+p.src+'"';for(n in p){if(p[n]!==''){h+=n+'="'+p[n]+'"'}}h+='></embed>'}h+='</object>';document.write(h)},video:function(p){var h='<video src="'+p.src+'"';for(n in p){if(p[n]!==''){h+=n+'="'+p[n]+'"'}}h+='>Your browser does not yet support the video element</video>';document.write(h)},audio:function(p){var h='<audio src="'+p.src+'"';for(n in p){if(p[n]!==''){h+=n+'="'+p[n]+'"'}}h+='>Your browser does not yet support the audio element</audio>';document.write(h)},flash:function(p){if(typeof p.wmode=='undefined'){p['wmode']='opaque'}this.writeObject('D27CDB6E-AE6D-11cf-96B8-444553540000','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+this.version['flash'],'application/x-shockwave-flash',p)},shockwave:function(p){this.writeObject('166B1BCA-3F9C-11CF-8075-444553540000','http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version='+this.version['shockwave'],'application/x-director',p)},quicktime:function(p){this.writeObject('02BF25D5-8C17-4B23-BC80-D3488ABDDC6B','http://www.apple.com/qtactivex/qtplugin.cab#version='+this.version['quicktime'],'video/quicktime',p)},realmedia:function(p){this.writeObject('CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA','','audio/x-pn-realaudio-plugin',p)},windowsmedia:function(p){p.url=p.src;this.writeObject('6BF52A52-394A-11D3-B153-00C04F79FAA6','http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version='+this.version['windowsmedia'],'video/x-ms-wmv',p)},divx:function(p){this.writeObject('67DABFBF-D0AB-41FA-9C46-CC0F21721616','http://go.divx.com/plugin/DivXBrowserPlugin.cab','video/divx',p)}};function writeFlash(p){JCEMediaObject.flash(p)};function writeShockWave(p){JCEMediaObject.shockwave(p)};function writeQuickTime(p){JCEMediaObject.quicktime(p)};function writeRealMedia(p){JCEMediaObject.realmedia(p)};function writeWindowsMedia(p){JCEMediaObject.windowsmedia(p)};function writeDivX(p){JCEMediaObject.divx(p)};

/*  */
(function(){window.JCEMediaBox={options:{popup:{width:'',height:'',legacy:0,overlay:1,overlayopacity:0.8,overlaycolor:'#000000',resize:0,icons:1,fadespeed:500,scalespeed:500,hideobjects:1,scrolling:'fixed',labels:{'close':'Close','next':'Next','previous':'Previous','numbers':'{$current} of {$total}','cancel':'Cancel'}},tooltip:{speed:150,offsets:{x:16,y:16},position:'br',opacity:0.8,background:'#000000',color:'#ffffff'},base:'/',pngfix:false,pngfixclass:'',theme:'standard',themecustom:'',themepath:'plugins/system/jcemediabox/themes',imgpath:'plugins/system/jcemediabox/img'},init:function(options){this.extend(this.options,options);if(this.isIE6)try{document.execCommand("BackgroundImageCache",false,true)}catch(e){};this.ready()},ready:function(){if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);return JCEMediaBox._init()},false)}else if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);return JCEMediaBox._init()}});if(document.documentElement.doScroll&&window==window.top){(function(){if(JCEMediaBox.domLoaded)return;try{document.documentElement.doScroll("left")}catch(error){setTimeout(arguments.callee,0);return}return JCEMediaBox._init()})()}}JCEMediaBox.Event.add(window,"load",function(){return JCEMediaBox._init()})},getSite:function(){var base=this.options.base;if(base){var site=document.location.href;var parts=site.split(':\/\/');var port=parts[0];var url=parts[1];if(url.indexOf(base)!=-1){url=url.substr(0,url.indexOf(base))}else{url=url.substr(0,url.indexOf('/'))||url}return port+'://'+url+base}return null},_init:function(){if(this.domLoaded)return;this.domLoaded=true;var t=this,d=document,na=navigator,ua=na.userAgent;t.isOpera=window.opera&&opera.buildNumber;t.isWebKit=/WebKit/.test(ua);t.isIE=!t.isWebKit&&!t.isOpera&&(/MSIE/gi).test(ua)&&(/Explorer/gi).test(na.appName);t.isIE6=t.isIE&&/MSIE [56]/.test(ua);t.isIE7=t.isIE&&/MSIE [7]/.test(ua);this.site=this.getSite();if(!this.site)return false;this.Popup.init();this.ToolTip.init()},each:function(o,cb,s){var n,l;if(!o)return 0;s=s||o;if(o.length!==undefined){for(n=0,l=o.length;n<l;n++){if(cb.call(s,o[n],n,o)===false)return 0}}else{for(n in o){if(o.hasOwnProperty(n)){if(cb.call(s,o[n],n,o)===false)return 0}}}return 1},extend:function(o,e){var t=JCEMediaBox,i,l,a=arguments;for(i=1,l=a.length;i<l;i++){e=a[i];t.each(e,function(v,n){if(v!==undefined)o[n]=v})}return o},trim:function(s){return(s?''+s:'').replace(/^\s*|\s*$/g,'')},DOM:{get:function(s){if(typeof(s)=='string')return document.getElementById(s);return s},select:function(p,o){var t=this,r=[],s,parts,at,tag,each=JCEMediaBox.each;o=o||document;if(p=='*'){return o.getElementsByTagName(p)}if(o.querySelectorAll){return o.querySelectorAll(p)}function inArray(a,v){var i,l;if(a){for(i=0,l=a.length;i<l;i++){if(a[i]===v)return true}}return false}s=p.split(',');each(s,function(selectors){parts=JCEMediaBox.trim(selectors).split('.');tag=parts[0]||'*';cl=parts[1]||'';if(/\[(.*?)\]/.test(tag)){tag=tag.replace(/(.*?)\[(.*?)\]/,function(a,b,c){at=c;return b})}var elements=o.getElementsByTagName(tag);if(cl||at){each(elements,function(el){if(cl){if(t.hasClass(el,cl)){if(!inArray(r,el)){r.push(el)}}}if(at){if(el.getAttribute(at)){if(!inArray(r,el)){r.push(el)}}}})}else{r=elements}});return r},hasClass:function(el,c){return new RegExp(c).test(el.className)},addClass:function(el,c){if(!this.hasClass(el,c)){el.className=JCEMediaBox.trim(el.className+' '+c)}},removeClass:function(el,c){if(this.hasClass(el,c)){var s=el.className;var re=new RegExp("(^|\\s+)"+c+"(\\s+|$)","g");var v=s.replace(re,' ');v=v.replace(/^\s|\s$/g,'');el.className=v}},show:function(el){el.style.display='block'},hide:function(el){el.style.display='none'},remove:function(el){var p=el.parentNode||document.body;p.removeChild(el)},style:function(n,na,v){var isIE=JCEMediaBox.isIE,r,s;na=na.replace(/-(\D)/g,function(a,b){return b.toUpperCase()});s=n.style;if(typeof v=='undefined'){if(na=='float')na=isIE?'styleFloat':'cssFloat';r=s[na];if(document.defaultView&&!r){if(/float/i.test(na))na='float';na=na.replace(/[A-Z]/g,function(a){return'-'+a}).toLowerCase();try{r=document.defaultView.getComputedStyle(n,null).getPropertyValue(na)}catch(e){}}if(n.currentStyle&&!r)r=n.currentStyle[na];return r}else{switch(na){case'opacity':v=parseFloat(v);if(isIE){s.filter=v===''?'':"alpha(opacity="+(v*100)+")";if(!n.currentStyle||!n.currentStyle.hasLayout)s.display='inline-block'}s[na]=v;break;case'float':na=isIE?'styleFloat':'cssFloat';break;default:if(v&&/(margin|padding|width|height|top|bottom|left|right)/.test(na)){v=/^[\-0-9\.]+$/.test(v)?v+'px':v}break}s[na]=v}},styles:function(el,props){var t=this;JCEMediaBox.each(props,function(v,s){return t.style(el,s,v)})},attribute:function(el,s,v){if(typeof v=='undefined'){if(s=='class'){return el.className}v=el.getAttribute(s);if(/^on/.test(s)){v=v.replace(/^function\s+anonymous\(\)\s+\{\s+(.*)\s+\}$/,'$1')}if(s=='hspace'&&v==-1){v=''}return v}if(v===''){el.removeAttribute(s)}switch(s){case'style':if(typeof v=='object'){this.styles(el,v)}else{el.style.cssText=v}break;case'class':el.className=v||'';break;default:el.setAttribute(s,v);break}},attributes:function(el,attribs){var t=this;JCEMediaBox.each(attribs,function(v,s){t.attribute(el,s,v)})},create:function(el,attribs,html){var o=document.createElement(el);this.attributes(o,attribs);if(typeof html!='undefined'){o.innerHTML=html}return o},add:function(n,o,a,h){if(typeof o=='string'){a=a||{};o=this.create(o,a,h)}n.appendChild(o);return o},addBefore:function(n,o,c){if(typeof c=='undefined'){c=n.firstChild}n.insertBefore(o,c)},png:function(el){var s;if(el.nodeName=='IMG'){s=el.src;if(/\.png$/i.test(s)){this.attribute(el,'src',JCEMediaBox.site+'plugins/system/jcemediabox/img/blank.gif');this.style(el,'filter',"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+s+"')")}}else{s=this.style(el,'background-image');if(/\.png/i.test(s)){var bg=/url\("(.*)"\)/.exec(s)[1];this.styles(el,{'background-image':'none','filter':"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+bg+"', sizingMethod='image')"})}}}},Event:{events:[],add:function(o,n,f,s){var t=this;cb=function(e){if(t.disabled)return;e=e||window.event;if(e&&JCEMediaBox.isIE){if(!e.target){e.target=e.srcElement||document}if(!e.relatedTarget&&e.fromElement){e.relatedTarget=e.fromElement==e.target?e.toElement:e.fromElement}JCEMediaBox.extend(e,{preventDefault:function(){this.returnValue=false},stopPropagation:function(){this.cancelBubble=true}})}if(e&&JCEMediaBox.isWebKit){if(e.target.nodeType==3){e.target=e.target.parentNode}}if(!s)return f(e);return f.call(s,e)};function _add(o,n,f){if(o.attachEvent){o.attachEvent('on'+n,f)}else if(o.addEventListener){o.addEventListener(n,f,false)}else{o['on'+n]=f}}t.events.push({obj:o,name:n,func:f,cfunc:cb,scope:s});_add(o,n,cb)},remove:function(o,n,f){var t=this,a=t.events,s=false,r;JCEMediaBox.each(a,function(e,i){if(e.obj==o&&e.name==n&&(!f||(e.func==f||e.cfunc==f))){a.splice(i,1);t._remove(o,n,e.cfunc);s=true;return false}});return s},_remove:function(o,n,f){if(o){try{if(o.detachEvent)o.detachEvent('on'+n,f);else if(o.removeEventListener)o.removeEventListener(n,f,false);else o['on'+n]=null}catch(ex){}}},cancel:function(e){if(!e)return false;this.stop(e);return this.prevent(e)},stop:function(e){if(e.stopPropagation)e.stopPropagation();else e.cancelBubble=true;return false},prevent:function(e){if(e.preventDefault)e.preventDefault();else e.returnValue=false;return false},destroy:function(){var t=this;JCEMediaBox.each(t.events,function(e,i){t._remove(e.obj,e.name,e.cfunc);e.obj=e.cfunc=null});t.events=[];t=null},addUnload:function(f,s){var t=this;f={func:f,scope:s||this};if(!t.unloads){function unload(){var li=t.unloads,o,n;if(li){for(n in li){o=li[n];if(o&&o.func)o.func.call(o.scope,1)}if(window.detachEvent){window.detachEvent('onbeforeunload',fakeUnload);window.detachEvent('onunload',unload)}else if(window.removeEventListener)window.removeEventListener('unload',unload,false);t.unloads=o=li=w=unload=0;if(window.CollectGarbage)CollectGarbage()}};function fakeUnload(){var d=document;if(d.readyState=='interactive'){function stop(){d.detachEvent('onstop',stop);if(unload)unload();d=0};if(d)d.attachEvent('onstop',stop);window.setTimeout(function(){if(d)d.detachEvent('onstop',stop)},0)}};if(window.attachEvent){window.attachEvent('onunload',unload);window.attachEvent('onbeforeunload',fakeUnload)}else if(window.addEventListener)window.addEventListener('unload',unload,false);t.unloads=[f]}else t.unloads.push(f);return f},removeUnload:function(f){var u=this.unloads,r=null;JCEMediaBox.each(u,function(o,i){if(o&&o.func==f){u.splice(i,1);r=f;return false}});return r}},Dimensions:{getWidth:function(){return document.documentElement.clientWidth||document.body.clientWidth||this.innerWidth||0},getHeight:function(){return document.documentElement.clientHeight||document.body.clientHeight||this.innerHeight||0},getScrollHeight:function(){return document.documentElement.scrollHeight||document.body.scrollHeight||0},getScrollWidth:function(){return document.documentElement.scrollWidth||document.body.scrollWidth||0},getScrollTop:function(){return document.documentElement.scrollTop||this.pageYOffset||document.body.scrollTop||0},getScrollbarWidth:function(){var each=JCEMediaBox.each,DOM=JCEMediaBox.DOM;if(this.scrollbarWidth){return this.scrollbarWidth}var outer=DOM.add(document.body,'div',{'style':{position:'absolute',visibility:'hidden',width:200,height:200,border:0,margin:0,padding:0,overflow:'hidden'}});var inner=DOM.add(outer,'div',{'style':{width:'100%',height:200,border:0,margin:0,padding:0}});var w1=parseInt(inner.offsetWidth);outer.style.overflow='scroll';var w2=parseInt(inner.offsetWidth);if(w1==w2){w2=parseInt(outer.clientWidth)}document.body.removeChild(outer);this.scrollbarWidth=(w1-w2);return this.scrollbarWidth},outerWidth:function(n){var v=0,x=0;x=n.offsetWidth;if(!x){JCEMediaBox.each(['padding-left','padding-right','border-left','border-right','width'],function(s){v=parseFloat(JCEMediaBox.DOM.style(n,s));v=/[0-9]/.test(v)?v:0;x=x+v})}return x},outerHeight:function(n){var v=0,x=0;x=n.offsetHeight;if(!x){JCEMediaBox.each(['padding-top','padding-bottom','border-top','border-bottom','height'],function(s){v=parseFloat(JCEMediaBox.DOM.style(n,s));v=/[0-9]/.test(v)?v:0;x=x+v})}return x}},FX:{animate:function(el,props,speed,cb){var DOM=JCEMediaBox.DOM;var options={speed:speed||100,callback:cb||function(){}};var styles={};JCEMediaBox.each(props,function(v,s){sv=parseFloat(DOM.style(el,s));styles[s]=[sv,v]});new JCEMediaBox.fx(el,options).custom(styles);return true}}};JCEMediaBox.XHR=function(options,scope){this.options={method:'GET',async:true,headers:{},data:null,encoding:'utf-8',success:function(){},error:function(){}};JCEMediaBox.extend(this.options,options);this.scope=scope||this};JCEMediaBox.XHR.prototype={setTransport:function(){this.transport=(window.XMLHttpRequest)?new XMLHttpRequest():(JCEMediaBox.isIE?new ActiveXObject('Microsoft.XMLHTTP'):false)},onStateChange:function(){if(this.transport.readyState!=4||!this.running){return}this.running=false;var status=0;if((this.transport.status>=200)&&(this.transport.status<300)){var s=this.transport.responseText;var x=this.transport.responseXML;this.options.success.call(this.scope,s,x)}else{this.options.error.call(this.scope,this.transport,this.options)}this.transport.onreadystatechange=function(){};this.transport=null},send:function(url){var t=this,extend=JCEMediaBox.extend;if(this.running){return this}this.running=true;this.setTransport();var method=this.options.method.toUpperCase();if(this.options.urlEncoded&&method=='POST'){var encoding=(this.options.encoding)?'; charset='+this.options.encoding:'';extend(this.options.headers,{'Content-type':'application/x-www-form-urlencoded'+encoding})}this.transport.open(method,url,this.options.async);this.transport.onreadystatechange=function(){return t.onStateChange()};if((this.options.method=='post')&&this.transport.overrideMimeType){extend(this.options.headers,{'Connection':'close'})}for(var type in this.options.headers){try{this.transport.setRequestHeader(type,this.options.headers[type])}catch(e){}}this.transport.send(this.options.data)}},JCEMediaBox.fx=function(el,options){this.element=el;this.callback=options.callback;this.speed=options.speed;this.wait=true;this.fps=50;this.now={}};JCEMediaBox.fx.prototype={step:function(){var time=new Date().getTime();if(time<this.time+this.speed){this.cTime=time-this.time;this.setNow()}else{var t=this;this.clearTimer();this.now=this.to;setTimeout(function(){t.callback.call(t.element,t)},10)}this.increase()},setNow:function(){for(p in this.from){this.now[p]=this.compute(this.from[p],this.to[p])}},compute:function(from,to){var change=to-from;return this.transition(this.cTime,from,change,this.speed)},clearTimer:function(){clearInterval(this.timer);this.timer=null;return this},start:function(from,to){var t=this;if(!this.wait)this.clearTimer();if(this.timer)return;this.from=from;this.to=to;this.time=new Date().getTime();this.timer=setInterval(function(){return t.step()},Math.round(1000/this.fps));return this},custom:function(o){if(this.timer&&this.wait)return;var from={};var to={};for(property in o){from[property]=o[property][0];to[property]=o[property][1]}return this.start(from,to)},increase:function(){for(var p in this.now){this.setStyle(this.element,p,this.now[p])}},transition:function(t,b,c,d){return-c*Math.cos(t/d*(Math.PI/2))+c+b},setStyle:function(e,p,v){JCEMediaBox.DOM.style(e,p,v)}},JCEMediaBox.ToolTip={init:function(){var t=this,each=JCEMediaBox.each,DOM=JCEMediaBox.DOM,Event=JCEMediaBox.Event;var theme=JCEMediaBox.options.theme=='custom'?JCEMediaBox.options.themecustom:JCEMediaBox.options.theme;this.tooltiptheme='';new JCEMediaBox.XHR({success:function(text,xml){var re=/<!-- THEME START -->([\s\S]*?)<!-- THEME END -->/;if(re.test(text)){text=re.exec(text)[1]}t.tooltiptheme=text}}).send(JCEMediaBox.site+JCEMediaBox.options.themepath+'/'+theme+'/tooltip.html');function _withinElement(el,e,fn){var p=e.relatedTarget;while(p&&p!=el){try{p=p.parentNode}catch(e){p=el}}if(p!=el){return fn.call(this)}return false}each(DOM.select('.jcetooltip, .jce_tooltip'),function(el){Event.add(el,'mouseover',function(e){_withinElement(el,e,function(){return t.start(el)})});Event.add(el,'mouseout',function(e){_withinElement(el,e,function(){return t.end(el)})});Event.add(el,'mousemove',function(e){return t.locate(e)})})},create:function(){if(!this.toolTip){var DOM=JCEMediaBox.DOM;this.toolTip=DOM.add(document.body,'div',{'style':{'opacity':0},'class':'jcemediabox-tooltip'},this.tooltiptheme)}},start:function(el){var t=this,DOM=JCEMediaBox.DOM;if(!this.tooltiptheme)return false;this.create();var text=el.title||'',title='';if(/::/.test(text)){var parts=text.split('::');title=JCEMediaBox.trim(parts[0]);text=JCEMediaBox.trim(parts[1])}var cls=el.className.replace(/(jce_?)tooltip/gi,'');this.toolTip.title=el.title;DOM.attribute(el,'title','');var h='';if(title){h+='<h4>'+title+'</h4>'}if(text){h+='<p>'+text+'</p>'}var tn=DOM.get('jcemediabox-tooltip-text');if(typeof tn=='undefined'){this.toolTip.className='jcemediabox-tooltip-simple';this.toolTip.innerHTML=h}else{tn.innerHTML=h}DOM.style(t.toolTip,'visibility','visible');JCEMediaBox.FX.animate(t.toolTip,{'opacity':JCEMediaBox.options.tooltip.opacity},JCEMediaBox.options.tooltip.speed)},end:function(el){var t=this,DOM=JCEMediaBox.DOM;if(!this.tooltiptheme)return false;DOM.attribute(el,'title',this.toolTip.title);DOM.styles(this.toolTip,{'visibility':'hidden','opacity':0})},locate:function(e){if(!this.tooltiptheme)return false;this.create();var o=JCEMediaBox.options.tooltip.offsets;var page={'x':e.pageX||e.clientX+document.documentElement.scrollLeft,'y':e.pageY||e.clientY+document.documentElement.scrollTop};var tip={'x':this.toolTip.offsetWidth,'y':this.toolTip.offsetHeight};var pos={'x':page.x+o.x,'y':page.y+o.y};var ah=0;switch(JCEMediaBox.options.tooltip.position){case'tl':pos.x=(page.x-tip.x)-o.x;pos.y=(page.y-tip.y)-(ah+o.y);break;case'tr':pos.x=page.x+o.x;pos.y=(page.y-tip.y)-(ah+o.y);break;case'tc':pos.x=(page.x-Math.round((tip.x/2)))+o.x;pos.y=(page.y-tip.y)-(ah+o.y);break;case'bl':pos.x=(page.x-tip.x)-o.x;pos.y=(page.y+Math.round((tip.y/2)))-(ah+o.y);break;case'br':pos.x=page.x+o.x;pos.y=page.y+o.y;break;case'bc':pos.x=(page.x-(tip.x/2))+o.x;pos.y=page.y+ah+o.y;break}JCEMediaBox.DOM.styles(this.toolTip,{top:pos.y,left:pos.x})},position:function(element){}},JCEMediaBox.Popup={addons:{'flash':{},'image':{},'html':{}},setAddons:function(n,o){JCEMediaBox.extend(this.addons[n],o)},getAddons:function(n){if(n){return this.addons[n]}return this.addons},getAddon:function(v,n){var t=this,cp=false,r,each=JCEMediaBox.each;addons=this.getAddons(n);each(this.addons,function(o,s){each(o,function(fn){r=fn.call(this,v);if(typeof r!='undefined'){cp=r}})});return cp},cleanEvent:function(s){return s.replace(/^function\s+anonymous\(\)\s+\{\s+(.*)\s+\}$/,'$1')},params:function(s){var a=[],x=[];if(s instanceof Array){x=s}else{if(s.indexOf('&')!=-1){x=s.split(/&(amp;)?/g)}else{x=s.split(/;/g)}}JCEMediaBox.each(x,function(n,i){if(n){n=n.replace(/^([^\[]+)(\[|=|:)([^\]]*)(\]?)$/,function(a,b,c,d){if(d){if(!/[^0-9]/.test(d)){return'"'+b+'":'+parseInt(d)}return'"'+b+'":"'+d+'"'}return''});if(n){a.push(n)}}});return eval('({'+a.join(',')+'})')},getCookie:function(n){var c=document.cookie,e,p=n+"=",b;if(!c)return;b=c.indexOf("; "+p);if(b==-1){b=c.indexOf(p);if(b!=0)return null}else{b+=2}e=c.indexOf(";",b);if(e==-1)e=c.length;return unescape(c.substring(b+p.length,e))},setCookie:function(n,v,e,p,d,s){document.cookie=n+"="+escape(v)+((e)?"; expires="+e.toGMTString():"")+((p)?"; path="+escape(p):"")+((d)?"; domain="+d:"")+((s)?"; secure":"")},convert:function(){var t=this,each=JCEMediaBox.each,DOM=JCEMediaBox.DOM;each(DOM.select('a[href]'),function(el){if(/com_jce/.test(el.href)){var p,s,r=[];var oc=DOM.attribute('onclick');s=oc.replace(/&amp;/g,'&').replace(/&#39;/g,"'").split("'");p=t.params(s[0]);img=p['img']||'';title=p['title']||'';if(img){if(!/http:\/\//.test(img)){if(img.charAt(0)=='/'){img=img.substr(1)}img=t.site.replace(/http:\/\/([^\/]+)/,'')+img}DOM.attributes(el,{'href':img,'title':title.replace(/_/,' '),'onclick':''});DOM.addClass(el,'jcepopup')}}})},translate:function(s){var t=this;if(!s){s=this.popup.theme}s=s.replace(/\{#(\w+?)\}/g,function(a,b){return JCEMediaBox.options.popup.labels[b]});return s},styles:function(o){var v,s,x=[];if(!o)return{};JCEMediaBox.each(o.split(';'),function(s,i){s=s.replace(/(.*):(.*)/,function(a,b,c){return"'"+b+"':'"+c+"'"});x.push(s)});return eval('({'+x.join(',')+'})')},getType:function(el){var o={},type;if(/(director|windowsmedia|mplayer|quicktime|real|divx|flash)/.test(el.type)){type=/(director|windowsmedia|mplayer|quicktime|real|divx|flash)/.exec(el.type)[1]}o=this.getAddon(el.src);if(o&&o.type){type=o.type}return type||el.type||'iframe'},mediatype:function(c){var ci,cb,mt;c=/(director|windowsmedia|mplayer|quicktime|real|divx|flash)/.exec(c);switch(c[1]){case'director':case'application/x-director':ci='166b1bca-3f9c-11cf-8075-444553540000';cb='http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0';mt='application/x-director';break;case'windowsmedia':case'mplayer':case'application/x-mplayer2':ci='6bf52a52-394a-11d3-b153-00c04f79faa6';cb='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';mt='application/x-mplayer2';break;case'quicktime':case'video/quicktime':ci='02bf25d5-8c17-4b23-bc80-d3488abddc6b';cb='http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0';mt='video/quicktime';break;case'real':case'realaudio':case'audio/x-pn-realaudio-plugin':ci='cfcdaa03-8be4-11cf-b84b-0020afbbccfa';cb='';mt='audio/x-pn-realaudio-plugin';break;case'divx':case'video/divx':ci='67dabfbf-d0ab-41fa-9c46-cc0f21721616';cb='http://go.divx.com/plugin/DivXBrowserPlugin.cab';mt='video/divx';break;default:case'flash':case'application/x-shockwave-flash':ci='d27cdb6e-ae6d-11cf-96b8-444553540000';cb='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,124,0';mt='application/x-shockwave-flash';break}return{'classid':ci,'codebase':cb,'mediatype':mt}},islocal:function(s){if(/^(\w+):\/\//.test(s)){return new RegExp('^('+JCEMediaBox.site+')').test(s)}else{return true}},frameWidth:function(){var t=this,w=0,el=this.frame;JCEMediaBox.each(['left','right'],function(s){w=w+parseFloat(JCEMediaBox.DOM.style(el,'padding-'+s))});return parseFloat(this.frame.clientWidth-w)},frameHeight:function(){var t=this,h=0,el=this.frame,DIM=JCEMediaBox.Dimensions;JCEMediaBox.each(['top','bottom'],function(s){h=h+parseFloat(JCEMediaBox.DOM.style(el,'padding-'+s))});h=h+((JCEMediaBox.isIE6||JCEMediaBox.isIE7)?DIM.getScrollbarWidth():0);return parseInt(DIM.getHeight())-h},width:function(){return this.frameWidth()-JCEMediaBox.Dimensions.getScrollbarWidth()},height:function(){var h=0,t=this,each=JCEMediaBox.each,DOM=JCEMediaBox.DOM,DIM=JCEMediaBox.Dimensions;each(['top','bottom'],function(s){var el=t['info-'+s];if(el){h=h+parseInt(DIM.outerHeight(el))}});return this.frameHeight()-h},printPage:function(){return false},zoom:function(el){var t=this,DOM=JCEMediaBox.DOM,extend=JCEMediaBox.extend,each=JCEMediaBox.each,s,m,x,y;var child=el.firstChild;var zoom=DOM.create('span');if(child&&child.nodeName=='IMG'){var align=child.getAttribute('align');var vspace=child.getAttribute('vspace');var hspace=child.getAttribute('hspace');var w=child.getAttribute('width')||child.style.width||0;var h=child.getAttribute('height')||child.style.height||0;var styles={'width':w,'height':h};each(['top','right','bottom','left'],function(pos){styles['margin-'+pos]=DOM.style(child,'margin-'+pos);styles['padding-'+pos]=DOM.style(child,'padding-'+pos);each(['width','style','color'],function(prop){styles['border-'+pos+'-'+prop]=DOM.style(child,'border-'+pos+'-'+prop)})});if(/\w+/.test(align)){extend(styles,{'float':/left|right/.test(align)?align:'','text-align':/top|middle|bottom/.test(align)?align:''})}if(vspace>0){extend(styles,{'margin-top':parseInt(vspace),'margin-bottom':parseInt(vspace)})}if(hspace>0){extend(styles,{'margin-left':parseInt(hspace),'margin-right':parseInt(hspace)})}extend(styles,{'float':DOM.style(child,'float'),'text-align':child.style.textAlign});function _buildIcon(el,zoom,child,styles){var pos,w=styles.width||0,h=styles.height||0;var span=DOM.add(el,'span',{'class':'jcemediabox-zoom-span','style':child.style.cssText});DOM.styles(span,styles);DOM.add(span,child);DOM.add(span,zoom);each(['style','align','border','hspace','vspace'],function(v,i){child.removeAttribute(v)});DOM.addClass(zoom,'jcemediabox-zoom-image');pos=el.className.match(/icon-(top-right|top-left|bottom-right|bottom-left|left|right|center|centre)/);if(pos){pos=pos[1];pos=(/^(left|right)/.test(pos))?'bottom '+pos:pos.replace(/-/,' ')}else{pos='bottom right'}var top=-h,left=0;if(JCEMediaBox.isIE6&&/\.png/i.test(DOM.style(zoom,'background-image'))){var zw=parseFloat(DOM.style(zoom,'width'));var zh=parseFloat(DOM.style(zoom,'height'));if(/(bottom)/.test(pos))top=-zh;if(/(right)/.test(pos))left=w-zw;DOM.style(zoom,'left',left);DOM.style(el,'position','static');DOM.png(zoom)}DOM.styles(zoom,{'top':top,'background-position':pos});DOM.styles(child,{'margin':0,'padding':0,'float':'none','border':'none'})}if(/^(0|auto)/.test(w)||/^(0|auto)/.test(h)){x=new Image();x.src=child.src;x.onload=function(){extend(styles,{width:parseInt(x.width),height:parseInt(x.height)});_buildIcon(el,zoom,child,styles)}}else{_buildIcon(el,zoom,child,styles)}}else{DOM.addClass(zoom,'jcemediabox-zoom-link');if(DOM.hasClass(el,'icon-left')){DOM.addBefore(el,zoom)}else{DOM.add(el,zoom)}if(JCEMediaBox.isIE7){DOM.style(zoom,'display','inline-block')}}return zoom},auto:function(){var t=this;JCEMediaBox.each(this.popups,function(el,i){if(el.auto){if(el.auto=='autopopup-single'){var cookie=t.getCookie('jceutilities_autopopup_'+el.id);if(!cookie){t.setCookie('jceutilities_autopopup_'+el.id,1);t.start(el)}}else if(el.auto=='autopopup-multiple'){t.start(el)}}})},init:function(){window.jcepopup=this;this.create()},create:function(){var t=this,auto=false,each=JCEMediaBox.each,DOM=JCEMediaBox.DOM,Event=JCEMediaBox.Event;this.popups=[],this.popuptheme='';if(JCEMediaBox.options.popup.legacy==1){t.convert()}each(DOM.select('a.jcebox, a.jcelightbox, a.jcepopup, area.jcebox, area.jcelightbox, area.jcepopup'),function(el,i){if(/(jcelightbox|jcebox)/.test(el.className)){DOM.removeClass(el,'jcelightbox');DOM.removeClass(el,'jcebox');DOM.addClass(el,'jcepopup')}if(!DOM.hasClass(el,'nopopup')){if(JCEMediaBox.options.popup.icons==1&&el.nodeName=='A'&&!/(noicon|icon-none|noshow)/.test(el.className)&&el.style.display!='none'){var zoom=t.zoom(el)}if(DOM.hasClass(el,'noshow')){DOM.hide(el)}var group='',p='';if(!auto&&el.id){if(c=el.className.match(/autopopup-(single|multiple)/)){auto=c[0]}}var title=el.title||'';var rel=el.rel||'';if(title&&/(\w+\[.*\])/.test(title)){p=t.params(title);DOM.attribute(el,'title',p.title||'');group=p.group||''}if(rel&&/(\w+\[.*\])/.test(rel)){var args=[];rel=rel.replace(/\b((\w+)\[(.*?)\])(;?)/g,function(a,b,c){args.push(b);return''});p=t.params(args);DOM.attribute(el,'rel',rel||p.rel||'');group=p.group||''}else{var rx='alternate|stylesheet|start|next|prev|contents|index|glossary|copyright|chapter|section|subsection|appendix|help|bookmark|nofollow|licence|tag|friend';var lb='(lightbox(\[(.*?)\])?)';var lt='(lyte(box|frame|show)(\[(.*?)\])?)';group=rel.replace(new RegExp('\s*('+rx+'|'+lb+'|'+lt+')\s*'),'','gi')}var src=el.href;src=src.replace(/b(w|h)=([0-9]+)/g,function(s,k,v){k=(k=='w')?'width':'height';return k+'='+v});if(el.nodeName=='AREA'){if(!p){p=t.params(src)}group=group||'AREA_ELEMENT'}var o={'src':src,'title':p.title||title,'group':DOM.hasClass(el,'nogroup')?'':group,'type':p.type||el.type||'','params':p||{},'id':el.id||'','auto':auto};el.href=el.href.replace(/&type=(ajax|text\/html|text\/xml)/,'');t.popups.push(o);Event.add(el,'click',function(e){Event.cancel(e);return t.start(o,i)});auto=false}});var theme=JCEMediaBox.options.theme=='custom'?JCEMediaBox.options.themecustom:JCEMediaBox.options.theme;new JCEMediaBox.XHR({success:function(text,xml){var re=/<!-- THEME START -->([\s\S]*?)<!-- THEME END -->/;if(re.test(text)){text=re.exec(text)[1]}t.popuptheme=text;t.auto()}}).send(JCEMediaBox.site+JCEMediaBox.options.themepath+'/'+theme+'/popup.html')},open:function(url,title,group,type,params){var link={'src':url,'title':title,'group':group,'type':type,'params':params};return this.start(link)},start:function(p,i){var t=this,n=0,x=0,items=[],each=JCEMediaBox.each;if(this.build()){if(p.group){each(this.popups,function(o,x){if(o.group==p.group){items.push(o);if(i&&x==i){n=items.indexOf(o)}}});if(!p.auto&&typeof i=='undefined'){items.push(p);n=items.length-1}}else{items.push(p)}return this.show(items,n)}},build:function(){var t=this,each=JCEMediaBox.each,DOM=JCEMediaBox.DOM,Event=JCEMediaBox.Event;this.page=DOM.add(document.body,'div',{id:'jcemediabox-popup-page'});if(JCEMediaBox.options.popup.overlay==1){this.overlay=DOM.add(this.page,'div',{id:'jcemediabox-popup-overlay',style:{'opacity':0,'background-color':JCEMediaBox.options.popup.overlaycolor}})}if(!this.popuptheme){return false}this.popuptheme=this.popuptheme.replace(/<!--(.*?)-->/g,'');this.popuptheme=this.translate(this.popuptheme);this.frame=DOM.add(this.page,'div',{id:'jcemediabox-popup-frame'},'<div id="jcemediabox-popup-body">'+this.popuptheme+'</div>');each(DOM.select('*[id]',this.frame),function(el){var s=el.id.replace('jcemediabox-popup-','');t[s]=el;DOM.hide(el)});Event.add(this.frame,'click',function(e){if(e.target&&e.target==t.frame){t.close()}});if(this.closelink){Event.add(this.closelink,'click',function(){return t.close()})}if(this.cancellink){Event.add(this.cancellink,'click',function(){return t.close()})}if(this.next){Event.add(this.next,'click',function(){return t.nextItem()})}if(this.prev){Event.add(this.prev,'click',function(){return t.previousItem()})}if(this.numbers){this.numbers.tmpHTML=this.numbers.innerHTML}if(this.print){Event.add(this.print,'click',function(){return t.printPage()})}if(JCEMediaBox.isIE6){DOM.png(this.body);each(DOM.select('*',this.body),function(el){if(DOM.attribute(el,'id')=='jcemediabox-popup-content'){return}DOM.png(el)})}return true},show:function(items,n){var t=this,DOM=JCEMediaBox.DOM,DIM=JCEMediaBox.Dimensions;this.items=items;this.bind(true);DOM.show(this.body);var top=(DIM.getHeight()-DIM.outerHeight(this.body))/2;DOM.style(this.body,'top',top);if(JCEMediaBox.isIE6||JCEMediaBox.options.popup.scrolling=='scroll'){DOM.style(this.page,'position','absolute');DOM.style(this.overlay,'height',DIM.getScrollHeight());DOM.style(this.body,'top',DIM.getScrollTop()+top)}if(JCEMediaBox.options.popup.overlay==1&&this.overlay){DOM.show(this.overlay);JCEMediaBox.FX.animate(this.overlay,{'opacity':JCEMediaBox.options.popup.overlayopacity},JCEMediaBox.options.popup.fadespeed)}return this.change(n)},bind:function(open){var t=this,isIE6=JCEMediaBox.isIE6,each=JCEMediaBox.each,DOM=JCEMediaBox.DOM,Event=JCEMediaBox.Event;if(isIE6){each(DOM.select('select'),function(el){if(open){el.tmpStyle=el.style.visibility||''}el.style.visibility=open?'hidden':el.tmpStyle})}if(JCEMediaBox.options.popup.hideobjects){each(DOM.select('object, embed'),function(el){if(el.id=='jcemediabox-popup-object')return;if(open){el.tmpStyle=el.style.visibility||''}el.style.visibility=open?'hidden':el.tmpStyle})}var scroll=JCEMediaBox.options.popup.scrollpopup;if(open){Event.add(document,'keydown',function(e){t.listener(e)});if(isIE6){Event.add(window,'scroll',function(e){DOM.style(t.overlay,'height',JCEMediaBox.Dimensions.getScrollHeight())});Event.add(window,'scroll',function(e){DOM.style(t.overlay,'width',JCEMediaBox.Dimensions.getScrollWidth())})}}else{if(isIE6||!scroll){Event.remove(window,'scroll');Event.remove(window,'resize')}Event.remove(document,'keydown')}},listener:function(e){switch(e.keyCode){case 27:this.close();break;case 37:this.previousItem();break;case 39:this.nextItem();break}},queue:function(n){var t=this,s=JCEMediaBox.options.popup.fadespeed,ss=JCEMediaBox.options.popup.scalespeed;var changed=false;JCEMediaBox.each(['top','bottom'],function(s){var el=t['info-'+s];if(el){var v=JCEMediaBox.Dimensions.outerHeight(el);var style={};style['top']=s=='top'?v:-v;JCEMediaBox.DOM.style(el,'z-index',-1);JCEMediaBox.FX.animate(el,style,ss,function(){if(!changed){changed=true;JCEMediaBox.FX.animate(t.content,{'opacity':0},JCEMediaBox.options.popup.fadespeed,function(){return t.change(n)})}})}})},nextItem:function(){if(this.items.length==1)return false;var n=this.index+1;if(n<0||n>=this.items.length){return false}return this.queue(n)},previousItem:function(){if(this.items.length==1)return false;var n=this.index-1;if(n<0||n>=this.items.length){return false}return this.queue(n)},info:function(){var each=JCEMediaBox.each,DOM=JCEMediaBox.DOM,Event=JCEMediaBox.Event;if(this.caption){var title=this.active.caption||this.active.title||'',text='';var ex='([-!#$%&\'\*\+\\./0-9=?A-Z^_`a-z{|}~]+@[-!#$%&\'\*\+\\/0-9=?A-Z^_`a-z{|}~]+\.[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+)';var ux='((news|telnet|nttp|file|http|ftp|https)://[-!#$%&\'\*\+\\/0-9=?A-Z^_`a-z{|}~]+\.[-!#$%&\'\*\+\\./0-9=?A-Z^_`a-z{|}~]+)';function processRe(h){h=h.replace(new RegExp(ex,'g'),'<a href="mailto:$1" target="_blank" title="$1">$1</a>');h=h.replace(new RegExp(ux,'g'),'<a href="$1" target="_blank" title="$1">$1</a>');return h}if(/::/.test(title)){var parts=title.split('::');title=JCEMediaBox.trim(parts[0]);text=JCEMediaBox.trim(parts[1])}var h='';if(title){h+='<h4>'+title+'</h4>'}if(text){h+='<p>'+text+'</p>'}this.caption.innerHTML=h;if(h==''){this.caption.innerHTML='&nbsp;'}each(DOM.select('*',this.caption),function(el){if(el.nodeName!='A'){each(el.childNodes,function(n,i){if(n.nodeType==3){var s=n.innerText||n.textContent||n.data||null;if(s&&/(@|:\/\/)/.test(s)){if(s=processRe(s)){n.parentNode.innerHTML=s}}}})}})}var t=this,html='',len=this.items.length;if(this.numbers&&len>1){var html=this.numbers.tmpHTML||'{$numbers}';if(/\{\$numbers\}/.test(html)){this.numbers.innerHTML='';for(var i=0;i<len;i++){var n=i+1;var link=DOM.add(this.numbers,'a',{'href':'javascript:;','title':this.items[i].title||n,'class':(this.index==i)?'active':''},n);Event.add(link,'click',function(e){var x=parseInt(e.target.innerHTML)-1;if(t.index==x){return false}return t.queue(x)})}}if(/\{\$(current|total)\}/.test(html)){this.numbers.innerHTML=html.replace('{$current}',this.index+1).replace('{$total}',len)}}else{this.numbers.innerHTML=''}each(['top','bottom'],function(v,i){var el=t['info-'+v];if(el){el.style.visibility='hidden';DOM.show(el);each(DOM.select('*[id]',el),function(s){DOM.show(s)})}});DOM.hide(this.next);DOM.hide(this.prev);if(len>1){if(this.prev){if(this.index>0){DOM.show(this.prev)}else{DOM.hide(this.prev)}}if(this.next){if(this.index<len-1){DOM.show(this.next)}else{DOM.hide(this.next)}}}},change:function(n){var t=this,extend=JCEMediaBox.extend,each=JCEMediaBox.each,DOM=JCEMediaBox.DOM,isIE=JCEMediaBox.isIE;var p={},s,o,w,h;if(n<0||n>=this.items.length){return false}this.index=n;this.active={};DOM.show(this.container);if(this.loader){DOM.show(this.loader)}if(this.cancellink){DOM.show(this.cancellink)}if(this.object){this.object=null}this.content.innerHTML='';o=this.items[n];extend(p,this.getAddon(o.src,o.type));extend(p,o.params);extend(this.active,{'src':p.src||o.src,'title':o.title,'caption':p.caption||'','type':p.type||this.getType(o),'params':p||{},'width':p.width||JCEMediaBox.options.popup.width||0,'height':p.height||JCEMediaBox.options.popup.height||0});this.info();switch(this.active.type){case'image':if(this.print&&this.options.print){this.print.style.visibility='visible'}this.img=new Image();this.img.onload=function(){return t.setup()};this.img.src=this.active.src;break;case'flash':case'director':case'shockwave':case'mplayer':case'windowsmedia':case'quicktime':case'realaudio':case'real':case'divx':if(this.print){this.print.style.visibility='hidden'}p.src=this.active.src;var base=/:\/\//.test(p.src)?'':this.site;this.object='';w=this.width();h=this.height();var mt=this.mediatype(this.active.type);if(this.active.type=='flash'){p.wmode='transparent';p.base=base}if(/(mplayer|windowsmedia)/i.test(this.active.type)){p.baseurl=base;if(isIE){p.url=p.src;delete p.src}}delete p.title;delete p.group;p.width=this.active.width=p.width||w;p.height=this.active.height=p.height||h;var flash=/flash/i.test(this.active.type);if(flash||isIE){this.object='<object id="jcemediabox-popup-object"';if(flash&&!isIE){this.object+=' type="'+mt.mediatype+'" data="'+p.src+'"'}else{this.object+=' classid="clsid:'+mt.classid+'"';if(mt.codebase){this.object+=' codebase="'+mt.codebase+'"'}}for(n in p){if(p[n]!==''){if(/(id|name|width|height|style)$/.test(n)){t.object+=' '+n+'="'+decodeURIComponent(p[n])+'"'}}}this.object+='>';for(n in p){if(p[n]!==''&&!/(id|name|width|height|style|type)/.test(n)){t.object+='<param name="'+n+'" value="'+decodeURIComponent(p[n])+'" />'}}this.object+='</object>'}else{this.object='<embed type="'+mt.mediatype+'"';for(n in p){if(p[n]!==''){t.object+=' '+n+'="'+decodeURIComponent(p[n])+'"'}}this.object+='></embed>'}this.active.type='media';this.setup();break;case'ajax':case'text/html':case'text/xml':if(this.print&&this.options.print){this.print.style.visibility='visible'}this.active.width=this.active.width||this.width();this.active.height=this.active.height||this.height();if(this.islocal(this.active.src)){if(!/tmpl=component/i.test(this.active.src)){this.active.src+=/\?/.test(this.active.src)?'&tmpl=component':'?tmpl=component'}this.active.type='ajax'}else{this.active.type='iframe';this.setup()}styles=extend(this.styles(p.styles),{display:'none'});this.ajax=DOM.add(this.content,'div',{id:'jcemediabox-popup-ajax','style':styles});if(JCEMediaBox.isIE6){DOM.style(this.ajax,'margin-right',JCEMediaBox.Dimensions.getScrollbarWidth())}if(JCEMediaBox.isIE7){DOM.style(this.ajax,'padding-right',JCEMediaBox.Dimensions.getScrollbarWidth())}this.active.src=this.active.src.replace(/\&type=(ajax|text\/html|text\/xml)/,'');new JCEMediaBox.XHR({method:'POST',success:function(text,xml){var data=text,html=data,re=/<body[^>]*>([\s\S]*?)<\/body>/;if(re.test(data)){html=re.exec(data)[1]}t.ajax.innerHTML=html;if(t.loader){DOM.show(t.loader)}each(DOM.select('a',t.content),function(el){JCEMediaBox.Event.add(el,'click',function(){if(el.href&&el.href.indexOf('#')==-1){t.close()}})});return t.setup()}}).send(this.active.src);break;case'iframe':default:if(this.print){this.print.style.visibility='hidden'}if(this.islocal(this.active.src)){if(!/tmpl=component/i.test(this.active.src)){this.active.src+=/\?/.test(this.active.src)?'&tmpl=component':'?tmpl=component'}}this.active.width=this.active.width||this.width();this.active.height=this.active.height||this.height();this.active.type='iframe';this.setup();break}return false},resize:function(w,h,x,y){if(w>x){h=h*(x/w);w=x;if(h>y){w=w*(y/h);h=y}}else if(h>y){w=w*(y/h);h=y;if(w>x){h=h*(x/w);w=x}}w=Math.round(w);h=Math.round(h);return{width:Math.round(w),height:Math.round(h)}},setup:function(){var t=this,DOM=JCEMediaBox.DOM,Event=JCEMediaBox.Event,w,h;w=this.active.width;h=this.active.height;if(this.active.type=='image'){var x=this.img.width;var y=this.img.height;w=w||x;h=h||y;if(w!=x||h!=y){var dim=this.resize(x,y,w,h);w=dim.width;h=dim.height}}if(JCEMediaBox.options.popup.resize==1||JCEMediaBox.options.popup.scrolling=='fixed'){var x=this.width();var y=this.height();var dim=this.resize(w,h,x,y);w=dim.width;h=dim.height}DOM.styles(this.content,{width:w,height:h});DOM.hide(this.content);if(this.active.type=='image'){this.content.innerHTML='<img id="jcemediabox-popup-img" src="'+this.active.src+'" title="'+this.active.title+'" width="'+w+'" height="'+h+'" />'}return this.animate()},animate:function(){var t=this,each=JCEMediaBox.each,DOM=JCEMediaBox.DOM,FX=JCEMediaBox.FX,DIM=JCEMediaBox.Dimensions;var ss=JCEMediaBox.options.popup.scalespeed,fs=JCEMediaBox.options.popup.fadespeed;var cw=DIM.outerWidth(this.content);var ch=DIM.outerHeight(this.content);var ih=0;each(['top','bottom'],function(v,i){var el=t['info-'+v];if(el){ih=ih+DIM.outerHeight(el)}});var st=DOM.style(this.page,'position')=='fixed'?0:DIM.getScrollTop();var top=st+(this.frameHeight()/2)-((ch+ih)/2);DOM.style(this.content,'opacity',0);FX.animate(this.body,{'height':ch,'top':top,'width':cw},ss,function(){if(t.loader){DOM.hide(t.loader)}if(t.active.type=='media'&&t.object){t.content.innerHTML=t.object}DOM.show(t.content);if(t.active.type=='ajax'){DOM.show(t.ajax)}t.content.focus();if(t.active.type=='iframe'){t.iframe=DOM.add(t.content,'iframe',{id:'jcemediabox-popup-iframe',frameBorder:0,allowTransparency:true,scrolling:t.active.params.scrolling||'auto','style':{width:t.active.width,height:t.active.height}});t.iframe.setAttribute('src',t.active.src)}function showInfo(){var itop=t['info-top'];if(itop){each(DOM.select('*[id]',itop),function(el){if(/jcemediabox-popup-(next|prev)/.test(DOM.attribute(el,'id'))){return}DOM.show(el)});var h=DIM.outerHeight(itop);DOM.styles(itop,{'z-index':-1,'top':h,'visibility':'visible'});FX.animate(itop,{'top':0},ss,function(){itop.style.zIndex=0})}var ibottom=t['info-bottom'];if(ibottom){each(DOM.select('*[id]',ibottom),function(el){if(/jcemediabox-popup-(next|prev)/.test(DOM.attribute(el,'id'))){return}DOM.show(el)});var h=DIM.outerHeight(ibottom);DOM.styles(ibottom,{'z-index':-1,'top':-h,'visibility':'visible'});FX.animate(ibottom,{'top':0},ss,function(){ibottom.style.zIndex=0})}if(t.closelink){DOM.show(t.closelink)}}if((JCEMediaBox.isIE&&t.active.type=='media')||JCEMediaBox.isIE6){DOM.style(t.content,'opacity',1);showInfo()}else{FX.animate(t.content,{'opacity':1},fs,function(){showInfo()})}})},close:function(){var t=this,each=JCEMediaBox.each,DOM=JCEMediaBox.DOM;each(['img','object','iframe','ajax'],function(i,v){t[v]=null});if(this.closelink){DOM.hide(this.closelink)}this.content.innerHTML='';each(['top','bottom'],function(i,v){if(t['info-'+v]){DOM.hide(t['info-'+v])}});DOM.remove(this.frame);if(this.overlay){if(JCEMediaBox.isIE6){this.bind();DOM.remove(this.page)}else{JCEMediaBox.FX.animate(this.overlay,{'opacity':0},JCEMediaBox.options.popup.fadespeed,function(){t.bind();DOM.remove(t.page)})}}else{DOM.remove(this.page)}return false}}})();JCEMediaBox.Event.addUnload(function(){JCEMediaBox.Event.destroy()});

/*  */
JCEMediaBox.Popup.setAddons('flash',{flash:function(v){if(/\.swf\b/.test(v)){return{type:'flash'}}},youtube:function(v){if(/youtube(.+)\/(.+)/.test(v)){if(/v=/g.test(v)){s=v.replace(/(.+)v=([^&\/]+)/g,'v/$2')}else{s='v'+v.substring(v.lastIndexOf('/'))}return{width:425,height:350,type:'flash','wmode':'opaque','src':v.replace(/(youtube([^\/]+)\/)(.+)/,function(a,b){return b+s})}}},metacafe:function(v){if(/metacafe(.+)\/(watch|fplayer)\/(.+)/.test(v)){var s=JCEMediaBox.trim(v);if(!/\.swf/i.test(s)){if(s.charAt(s.length-1)=='/'){s=s.substring(0,s.length-1)}s=s+'.swf'}return{width:400,height:345,type:'flash',attributes:{'wmode':'opaque','src':s.replace(/watch/i,'fplayer')}}}},dailymotion:function(v){if(/dailymotion(.+)\/(swf|video)\//.test(v)){var s=JCEMediaBox.trim(v);s=s.replace(/_(.*)/,'');return{width:420,height:339,type:'flash','wmode':'opaque','src':s.replace(/video/i,'swf')}}},googlevideo:function(v){if(/google(.+)\/(videoplay|googleplayer\.swf)\?docid=(.+)/.test(v)){return{width:425,height:326,type:'flash','id':'VideoPlayback','wmode':'opaque','src':v.replace(/videoplay/g,'googleplayer.swf')}}},vimeo:function(v){if(/vimeo.com\/([0-9]+)/.test(v)){return{width:400,height:320,type:'flash','wmode':'opaque','src':v.replace(/vimeo.com\/([0-9]+)/,'vimeo.com/moogaloop.swf?clip_id=$1')}}}});JCEMediaBox.Popup.setAddons('image',{image:function(v){if(/\.(jpg|jpeg|png|gif|bmp|tif)$/i.test(v)){return{type:'image'}}}});

/*  */
JCEMediaBox.Popup.setAddons('flash',{twitvid:function(v){if(/twitvid(.+)\/(.+)/.test(v)){var s='http://www.twitvid.com/player/';return{width:425,height:344,type:'flash','allowFullScreen':true,'allowscriptaccess':'always','allowNetworking':'all','wmode':'transparent','src':v.replace(/(.+)twitvid([^\/]+)\/(.+)/,function(a,b,c,d){return s+d})}}}});JCEMediaBox.Popup.setAddons('image',{twitpic:function(v){if(/twitpic(.+)\/(.+)/.test(v)){return{type:'image'}}}});

/*  */
//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;

/*  */
/*
# ------------------------------------------------------------------------
# JA T3v2 Plugin - Template framework for Joomla 1.5
# ------------------------------------------------------------------------
# Copyright (C) 2004-2010 JoomlArt.com. All Rights Reserved.
# @license - GNU/GPL V2, http://www.gnu.org/licenses/gpl2.html. For details 
# on licensing, Please Read Terms of Use at http://www.joomlart.com/terms_of_use.html.
# Author: JoomlArt.com
# Websites: http://www.joomlart.com - http://www.joomlancers.com.
# ------------------------------------------------------------------------
*/

function switchFontSize (ckname,val){
	var bd = document.getElementsByTagName('body');
	if (!bd || !bd.length) return;
	bd = bd[0];
	var oldclass = 'fs'+CurrentFontSize;
	switch (val) {
		case 'inc':
			if (CurrentFontSize+1 < 7) {
				CurrentFontSize++;
			}		
		break;
		case 'dec':
			if (CurrentFontSize-1 > 0) {
				CurrentFontSize--;
			}		
		break;
		case 'reset':
		default:
			CurrentFontSize = DefaultFontSize;			
	}
	var newclass = 'fs'+CurrentFontSize;
	bd.className = bd.className.replace(new RegExp('fs.?', 'g'), '');
	bd.className = trim(bd.className);
	bd.className += (bd.className?' ':'') + newclass;
	createCookie(ckname, CurrentFontSize, 365);
}

function switchTool (ckname, val) {
	createCookie(ckname, val, 365);
	window.location.reload();
}

function cpanel_reset () {	
	var matches = document.cookie.match('(?:^|;)\\s*' + tmpl_name.escapeRegExp() + '_([^=]*)=([^;]*)', 'g');
	if (!matches) return;
	for (i=0;i<matches.length;i++) {
		var ck = matches[i].match('(?:^|;)\\s*' + tmpl_name.escapeRegExp() + '_([^=]*)=([^;]*)');
		if (ck) {
			createCookie (tmpl_name+'_'+ck[1], '', -1);
		}
	}
	
	if (window.location.href.indexOf ('?')>-1) window.location.href = window.location.href.substr(0,window.location.href.indexOf ('?'));
	else window.location.reload();
}

function cpanel_apply () {
	var elems = document.getElementById('ja-cpanel-main').getElementsByTagName ('*');
	
	var usersetting = {};
	for (i=0;i<elems.length;i++) {
		var el = elems[i]; 
	    if (el.name && (match=el.name.match(/^user_(.*)$/))) {
	        var name = match[1];	        
	        var value = '';
	        if (el.tagName.toLowerCase() == 'input' && (el.type.toLowerCase()=='radio' || el.type.toLowerCase()=='checkbox')) {
	        	if (el.checked) value = el.value;
	        } else {
	        	value = el.value;
	        }
	        if (usersetting[name]) {
	        	if (value) usersetting[name] = value + ',' + usersetting[name];
	        } else {
	        	usersetting[name] = value;
	        }
	    }
	}
	
	for (var k in usersetting) {
		name = tmpl_name + '_' + k;
		value = usersetting[k];
		createCookie(name, value, 365);
	}
	
	if (window.location.href.indexOf ('?')>-1) window.location.href = window.location.href.substr(0,window.location.href.indexOf ('?'));
	else 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=/";
}

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function getScreenWidth () {
    var x = 0;
    if (self.innerHeight) {
            x = self.innerWidth;
    } else if (document.documentElement && document.documentElement.clientHeight) {
            x = document.documentElement.clientWidth;
    } else if (document.body) {
            x = document.body.clientWidth;
    }
    return x;		
}

function equalHeight (els) {
	els = $$_(els);	
	if (!els || els.length < 2) return;
	var maxh = 0;
	var els_ = [];
	els.each(function(el, i){
		if (!el) return;
		//els_[i] = getDeepestWrapper (el); 
		els_[i] = el;
		var ch = els_[i].getCoordinates().height;
		maxh = (maxh < ch) ? ch : maxh;		
	},this);
	
	els_.each(function(el, i){
		if (!el) return;
		if (maxh-el.getStyle('padding-top').toInt()-el.getStyle('padding-bottom').toInt() > 0) el.setStyle('min-height', maxh-el.getStyle('padding-top').toInt()-el.getStyle('padding-bottom').toInt());		
	},this);	
}

function getDeepestWrapper (el) {
	while (el.getChildren().length==1)
	{
		el = el.getChildren()[0];
	}
	return el;
}

function fixHeight (els, group1, group2) {
	els = $$_(els);
	group1 = $$_(group1);
	group2 = $$_(group2);
	if (!els || !group1) return;
	var height = 0;
	group1.each (function (el){
		if (!el) return;
		height += el.getCoordinates().height;
	});
	if (group2) {
		group2.each (function (el){
			if (!el) return;
			height -= el.getCoordinates().height;
		});
	}
	els.each(function(el, i){
		if (!el) return;
		if (height-el.getStyle('padding-top').toInt()-el.getStyle('padding-bottom').toInt() > 0) el.setStyle('min-height', height-el.getStyle('padding-top').toInt()-el.getStyle('padding-bottom').toInt());
	});
}

function addFirstLastItem (el) {
	el = $(el);
	if (!el || !el.getChildren() || !el.getChildren().length) return;
	el.getChildren ()[0].addClass ('first-item');
	el.getChildren ()[el.getChildren ().length-1].addClass ('last-item');
}

function $$_ (els) {
	if ($type(els)=='string') return $$(els);
	var els_ = [];
	els.each (function (el){
		el = $(el);
		if (el) els_.push (el);
	});
	return els_;
}

/*  */
/*
# ------------------------------------------------------------------------
# JA T3v2 Plugin - Template framework for Joomla 1.5
# ------------------------------------------------------------------------
# Copyright (C) 2004-2010 JoomlArt.com. All Rights Reserved.
# @license - GNU/GPL V2, http://www.gnu.org/licenses/gpl2.html. For details 
# on licensing, Please Read Terms of Use at http://www.joomlart.com/terms_of_use.html.
# Author: JoomlArt.com
# Websites: http://www.joomlart.com - http://www.joomlancers.com.
# ------------------------------------------------------------------------
*/

var jaMegaMenuMoo = new Class({

	initialize: function(menu, options){
		this.options = $extend({
			slide:	true, //enable slide
			duration: 300, //slide speed. lower for slower, bigger for faster
			fading: false, //Enable fading
			bgopacity: 0.9, //set the transparent background. 0 to disable, 0<bgopacity<1: the opacity of the background
			delayHide: 500,
			direction: 'down',
			action: 'mouseenter', //mouseenter or click
			hidestyle: 'normal'
		}, options || {});
		//ignore delayHide if no animation
		if (!this.options.slide && !this.options.fading) this.options.delayHide = 10;
		
		this.menu = menu;
		this.childopen = new Array();
		this.imageloaded = false;
		this.loaded = false;
		//window.addEvent('load', this.start.bind(this));
		this.start();
	},
	
	start: function () {
		//do nothing if loaded
		if (this.loaded) return;
		
		this.menu = $(this.menu);
		//preload images
		var images = this.menu.getElements ('img');
		if (images && images.length && !this.imageloaded) {
			var imgs = [];
			images.each (function (image) {imgs.push(image.src)});
			if (imgs.length) {
				new Asset.images(imgs, {			
					onComplete: function(){
						this.start();
					}.bind(this)
				});
				this.imageloaded = true;
				
				//call this start if cannot load image after sometime
				this.start.delay (3000, this);
				return ;
			}
		}
		
		//mark as called
		this.loaded = true;
		
		//get wrapper
		p = this.menu;
		while (p=p.getParent()) {
			if (p.hasClass ('main') || p.hasClass ('wrap')) {this.wrapper = p; break;}
		}
		this.items = this.menu.getElements ('li.mega');
		//this.items.setStyle ('position', 'relative');
		this.items.each (function(li) {
			//link item
			if ((a = li.getElement('a.mega')) && this.isChild (a, li)) li.a = a;
			else li.a = null;
			//parent
			li._parent = this.getParent (li);
			//child content
			if ((childcontent = li.getElement('.childcontent')) && this.isChild (childcontent, li)) {
				li.childcontent = childcontent;
				li.childcontent_inner = li.childcontent.getElement ('.childcontent-inner-wrap');
				var coor = li.childcontent_inner.getCoordinates ();
				li._w = li.getElement('.childcontent-inner').offsetWidth;
				li._h = li.getElement('.childcontent-inner').offsetHeight;

				li.level0 = li.getParent().hasClass('level0');
				//
				li.childcontent.setStyles ({'width':li._w+10, 'height':li._h});
				li.childcontent_inner.setStyles ({'width':li._w});
				//fix for overflow
				li.childcontent_inner1 = li.childcontent.getElement ('.childcontent-inner');
				li.childcontent_inner1.ol = false;
				if (li.childcontent_inner1.getStyle ('overflow') == 'auto' || li.childcontent_inner1.getStyle ('overflow') == 'scroll') {
					li.childcontent_inner1.ol = true;
					//fix for ie6/7
					if (window.ie6 || window.ie7) {
						li.childcontent_inner1.setStyle ('position', 'relative');
					}
					
					if (window.ie6) {
						li.childcontent_inner1.setStyle ('height', li.childcontent_inner1.getStyle ('max-height') || 400);
					}
				}

				//show direction
				if (this.options.direction == 'up') {
					if (li.level0) {
						li.childcontent.setStyle ('top', -li.childcontent.offsetHeight); //ajust top position
					} else {
						li.childcontent.setStyle ('bottom', 0);
					}
				}
			}
			else li.childcontent = null;
			
			if (li.childcontent && this.options.bgopacity) {
				//Make transparent background
				var bg = new Element ('div', {'class':'childcontent-bg'});
				bg.injectTop (li.childcontent_inner);
				bg.setStyles ({'width':'100%', 'height':li._h, 'opacity':this.options.bgopacity,
								'position': 'absolute', 'top': 0, 'left': 0, 'z-index': 1
								});
				if (li.childcontent.getStyle('background')) bg.setStyle ('background', li.childcontent.getStyle('background'));
				if (li.childcontent.getStyle('background-image')) bg.setStyle ('background-image', li.childcontent.getStyle('background-image'));
				if (li.childcontent.getStyle('background-repeat')) bg.setStyle ('background-repeat', li.childcontent.getStyle('background-repeat'));
				if (li.childcontent.getStyle('background-color')) bg.setStyle ('background-color', li.childcontent.getStyle('background-color'));
				li.childcontent.setStyle ('background', 'none');
				li.childcontent_inner.setStyles ({'position':'relative', 'z-index': 2});
			}
			
			if (li.childcontent && (this.options.slide || this.options.fading)) {
				//li.childcontent.setStyles ({'width': li._w});
				li.childcontent.setStyles ({'left':'auto'});
				if (li.childcontent.hasClass ('right')) li.childcontent.setStyle ('right', 0);
				if (this.options.slide) {
					li.childcontent.setStyles ({'left':'auto', 'overflow':'hidden'});
					if (li.level0) {
						if (this.options.direction == 'up') {
							li.childcontent_inner.setStyle ('bottom', -li._h-20);
						} else {
							li.childcontent_inner.setStyle ('margin-top', -li._h-20);
						}
						
					} else {					
						li.childcontent_inner.setStyle ('margin-left', -li._w-20);
					}
				}
				if (this.options.fading) {
					li.childcontent_inner.setStyle ('opacity', 0);
				}
				//Init Fx.Styles for childcontent
				li.fx = new Fx.Styles(li.childcontent_inner, {duration: this.options.duration, transition: Fx.Transitions.linear, onComplete: this.itemAnimDone.bind(this, li)});
				//effect
				li.eff_on = {};
				li.eff_off = {};
				if (this.options.slide) {
					if (li.level0) {
						if (this.options.direction == 'up') {
							li.eff_on ['bottom'] = 0;
							li.eff_off ['bottom'] = -li._h;
						} else {
							li.eff_on ['margin-top'] = 0;
							li.eff_off ['margin-top'] = -li._h;
						}
					} else {						
						li.eff_on['margin-left'] = 0;
						li.eff_off['margin-left'] = -li._w;
					}
				}
				if (this.options.fading) {
					li.eff_on['opacity'] = 1;
					li.eff_off['opacity'] = 0;
					//li.eff_off['margin-top'] = -li._h;
				}
			}
			
			if (this.options.action=='click' && li.childcontent) {
				li.addEvent('click', function(e) {
					var event = new Event (e);
					if (li.hasClass ('group')) return;
					if (li.childcontent) {
						if (li.status == 'open') {
							if (this.cursorIn (li, event)) {
								this.itemHide (li);
							} else {
								this.itemHideOthers(li);
							}
						} else {
							this.itemShow (li);
						}
					} else {
						if (li.a) location.href = li.a.href;
					}
					event.stop();
				}.bind (this));
			
				//If action is click, click on windows will close all submenus
				this.windowClickFn = function (e) {		
					this.itemHideOthers(null);
				}.bind (this);				
			}

			if (this.options.action == 'mouseover' || this.options.action == 'mouseenter') {
				li.addEvent('mouseenter', function(e) {
					if (li.hasClass ('group')) return;
					$clear (li.timer);
					this.itemShow (li);
					e.stop();
				}.bind (this));
				
				li.addEvent('mouseleave', function(e) {
					if (li.hasClass ('group')) return;
					$clear (li.timer);
					if (li.childcontent) li.timer = this.itemHide.delay(this.options.delayHide, this, [li, e]);
					else this.itemHide (li, e);
					e.stop();
				}.bind (this));
				
				//if has childcontent, don't goto link before open childcontent - fix for touch screen
				if (li.a && li.childcontent) {
					li.clickable = false;
					li.a.addEvent ('click',function (e){
						if (!li.clickable) {
							new Event(e).stop();
						}
					}.bind (this));
				}
				
			}
			
			//when click on a link - close all open childcontent
			if (li.a && !li.childcontent) {
				li.a.addEvent ('click',function (e){
					this.itemHideOthers (null);
					//Remove current class
					this.menu.getElements ('.active').removeClass ('active');
					//Add current class
					var p = li;
					while (p) {
						p.addClass ('active');
						p.a.addClass ('active');
						p = p._parent;
					}
					//new Event (e).stop();
				}.bind (this));
			}
			
			if (li.childcontent) this.positionSubmenu (li);
		},this);
		
		if (this.options.slide || this.options.fading) {
			//hide all content child
			this.menu.getElements('.childcontent').setStyle ('display', 'none');
		}
		
	}, 
	
	getParent: function (li) { 
		var p = li;
		while ((p=p.getParent())) {
			if (this.items.contains (p) && !p.hasClass ('group')) return p;
			if (!p || p == this.menu) return null;
		}
	},
	
	cursorIn: function (el, event) {
		if (!el || !event) return false;
		var pos = $merge (el.getPosition(), {'w':el.offsetWidth, 'h': el.offsetHeight});;
		var cursor = {'x': event.page.x, 'y': event.page.y};
	
		if (cursor.x>pos.x && cursor.x<pos.x+el.offsetWidth
				&& cursor.y>pos.y && cursor.y<pos.y+el.offsetHeight) return true;			
		return false;
	},
	
	isChild: function (child, parent) {
		return !!parent.getChildren().contains (child);
	},
	
	itemOver: function (li) {
		if (li.hasClass ('haschild')) 
			li.removeClass ('haschild').addClass ('haschild-over');
		li.addClass ('over');
		if (li.a) {
			li.a.addClass ('over');
		}
	},
	
	itemOut: function (li) {
		if (li.hasClass ('haschild-over'))
			li.removeClass ('haschild-over').addClass ('haschild');
		li.removeClass ('over');
		if (li.a) {
			li.a.removeClass ('over');
		}
	},

	itemShow: function (li) {
		clearTimeout(li.timer);
		if (li.status == 'open') return; //don't need do anything
		//Setup the class
		this.itemOver (li);
		//push to show queue
		li.status = 'open';
		this.enableclick.delay (100, this, li);
		this.childopen.push (li);
		//hide other
		this.itemHideOthers (li);
		if (li.childcontent) {
			if (this.options.action=='click' && this.childopen.length && !this.windowClickEventAdded) {
				//addEvent click for window
				$(document.body).addEvent ('click', this.windowClickFn);
				this.windowClickEventAdded = true;
			}
			//reposition the submenu
			this.positionSubmenu (li);
		}
		

		if (!$defined(li.fx) || !$defined(li.childcontent)) return;
		
		li.childcontent.setStyle ('display', 'block');
		
		li.childcontent.setStyles ({'overflow': 'hidden'});		
		if (li.childcontent_inner1.ol) li.childcontent_inner1.setStyles ({'overflow': 'hidden'});
		li.fx.stop();
		li.fx.start (li.eff_on);
		//if (li._parent) this.itemShow (li._parent);
	},
	
	itemHide: function (li, e) {
		if (e && e.page) { //if event
			if (this.cursorIn (li, e) || this.cursorIn (li.childcontent, e)) {
				return;
			} //cursor in li
			var p=li._parent;
			if (p && !this.cursorIn (p, e) && !this.cursorIn(p.childcontent, e)) {
				p.fireEvent ('mouseleave', e); //fire mouseleave event
			}
		}
		clearTimeout(li.timer);
		this.itemOut(li);
		li.status = 'close';
		this.childopen.remove (li);
		if (li.childcontent) {
			if (this.options.action=='click' && !this.childopen.length && this.windowClickEventAdded) {
				//removeEvent click for window
				$(document.body).removeEvent ('click', this.windowClickFn);
				this.windowClickEventAdded = false;
			}
		}
		
		if (!$defined(li.fx) || !$defined(li.childcontent)) return;
		
		if (li.childcontent.getStyle ('opacity') == 0) return;
		li.childcontent.setStyles ({'overflow': 'hidden'});
		if (li.childcontent_inner1.ol) li.childcontent_inner1.setStyles ({'overflow': 'hidden'});
		li.fx.stop();
		switch (this.options.hidestyle) {
		case 'fast': 
			li.fx.options.duration = 100;
			li.fx.start ($merge(li.eff_off,{'opacity':0}));
			break;
		case 'fastwhenshow': //when other show
			if (!e) { //force hide, not because of event => hide fast
				//li.fx.options.duration = 300;
				li.fx.start ($merge(li.eff_off,{'opacity':0}));
			} else {	//hide as normal
				li.fx.start (li.eff_off);
			}
			break;
		case 'normal':
		default:
			li.fx.start (li.eff_off);
			break;
		}
		//li.fx.start (li.eff_off);		
	},
	
	itemAnimDone: function (li) {
		//hide done
		if (li.status == 'close'){
			//reset duration and enable opacity if not fading
			if (this.options.hidestyle.test (/fast/)) {
				li.fx.options.duration = this.options.duration;
				if (!this.options.fading) li.childcontent_inner.setStyle ('opacity', 1);
			}
			//hide
			li.childcontent.setStyles ({'display': 'none'});
			this.disableclick.delay (100, this, li);
		}
		
		//show done
		if (li.status == 'open'){
			li.childcontent.setStyles ({'overflow': ''});
			if (li.childcontent_inner1.ol) li.childcontent_inner1.setStyles ({'overflow-y': 'auto'});
		}
	},
	
	itemHideOthers: function (el) {
		var fakeevent = null
		if (el && !el.childcontent) fakeevent = {};
		var curopen = this.childopen.copy();
		curopen.each (function(li) {
			if (li && typeof (li.status) != 'undefined' && (!el || (li != el && !li.hasChild (el)))) {
				this.itemHide(li, fakeevent);
			}
		},this);
	},

	enableclick: function (li) {
		if (li.a && li.childcontent) li.clickable = true;
	},
	disableclick: function (li) {
		if (li.a && li.childcontent) li.clickable = false;
	},
	
	positionSubmenu: function (li) {
		if (li.level0) {
			if (!window.isRTL) {
				//check position
				var lcor = li.getCoordinates();
				var ccor = li.childcontent.getCoordinates();
				var ml = 0;
				var l = lcor.left;
				var r = l + ccor.width;
				if (this.wrapper) {
					var wcor = this.wrapper.getCoordinates();
					l = l - wcor.left;
					r = wcor.right - r + 10;
				} else {
					r = window.getWidth() - r + 10;
				}
				if (l < 0 || l+r < 0) {
					ml = - l;
				} else if (r < 0) {
					ml = r;
				}
				if (ml != 0) li.childcontent.setStyle ('margin-left', ml);					
			} else {
				//check position
				var lcor = li.getCoordinates();						
				var ccor = li.childcontent.getCoordinates();
				var mr = 0;
				var r = lcor.right;
				var l = r - ccor.width;
				if (this.wrapper) {
					var wcor = this.wrapper.getCoordinates();
					l = l - wcor.left;
					r = wcor.right - r + 10;
				} else {
					r = window.getWidth() - r + 10;
				}
				if (r < 0 || l+r < 0) {
					mr = - r;
				} else if (l < 0) {
					mr = l;
				}
				if (mr != 0) li.childcontent.setStyle ('margin-right', mr);
			}
		} else {
			//check if it's out of view-port
			var lcor = li.getCoordinates();
			var ccor = li.childcontent.getCoordinates();
			var ml = 0;
			var l = ccor.left;
			var r = l + ccor.width;
			if (this.wrapper) {
				var wcor = this.wrapper.getCoordinates();
				l = l - wcor.left;
				r = wcor.right - r + 10;
			} else {
				r = window.getWidth() - r + 10;
			}
			if (r < 0) {
				//change the direction and position for submenu
				li.childcontent.setStyle ('margin-left', -ccor.width + 20);
				li.eff_on['margin-left'] = 0;
				li.eff_off['margin-left'] = li._w + 20;
				li.childcontent_inner.setStyle ('margin-left', li.eff_off['margin-left']);
			}
		}		
	}
});


/*  */
/**
 * 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(SqueezeBox, Events.prototype);
SqueezeBox.extend(SqueezeBox, Options.prototype);
SqueezeBox.extend(SqueezeBox, Chain.prototype);

/*  */
/**
 * @version		$Id: k2.js 478 2010-06-16 16:11:42Z joomlaworks $
 * @package		K2
 * @author		JoomlaWorks http://www.joomlaworks.gr
 * @copyright	Copyright (c) 2006 - 2010 JoomlaWorks, a business unit of Nuevvo Webware Ltd. All rights reserved.
 * @license		GNU/GPL license: http://www.gnu.org/copyleft/gpl.html
 */

window.addEvent('domready', function(){
	
  // Comments
  if($('comment-form')) {
    $('comment-form').addEvent('submit', function(e){
      new Event(e).stop();
      var log2 = $('formLog').empty().addClass('formLogLoading');
      this.send({
        update: log2,
        onComplete: function(res){
          log2.removeClass('formLogLoading');
  				if(typeof(Recaptcha) != "undefined"){ 
						Recaptcha.reload();
  				}
          if (res.substr(13, 7) == 'success') {
              window.location.reload();
          }
        }
      });
    });
  }
  
  // Text Resizer
  if($('fontDecrease')) {
		$('fontDecrease').addEvent('click', function(e){
			new Event(e).stop();
			$$('.itemFullText').removeClass('largerFontSize');
			$$('.itemFullText').addClass('smallerFontSize');
		});
  }
  if($('fontIncrease')) {
		$('fontIncrease').addEvent('click', function(e){
			new Event(e).stop();
			$$('.itemFullText').removeClass('smallerFontSize');
			$$('.itemFullText').addClass('largerFontSize');
		});
  }
  
  // Smooth Scroll
  new SmoothScroll({
      duration: 500,
      links: 'a.k2Anchor'
  });
  	
	// Rating
	if($$('.itemRatingForm').length > 0) {
		$$('.itemRatingForm a').addEvent('click', function(e){
			e = new Event(e).stop();
			var itemID = this.getProperty('rel');
			var log = $('itemRatingLog' + itemID).empty().addClass('formLogLoading');
			var rating = this.getText();
			var url = K2RatingURL+"index.php?option=com_k2&view=item&task=vote&user_rating=" + rating + "&itemID=" + itemID;
			new Ajax(url, {
				method: "get",
				update: log,
				onComplete: function(){
					log.removeClass('formLogLoading');
					new Ajax(K2RatingURL+"index.php?option=com_k2&view=item&task=getVotesPercentage&itemID=" + itemID, {
						method: "get",
						onComplete: function(percentage){
							$('itemCurrentRating' + itemID).setStyle('width', percentage + "%");
							setTimeout(function(){
								new Ajax(K2RatingURL+"index.php?option=com_k2&view=item&task=getVotesNum&itemID=" + itemID, {
									method: "get",
									update: log
								}).request();
							}, 2000);
						}
					}).request();
				}
			}).request();
		});
	}
	
	$$('.classicPopup').addEvent('click', function(e){
		e = new Event(e).stop();
		var options = Json.evaluate(this.getProperty('rel'));
		window.open(this.getProperty('href'),'K2PopUpWindow','width='+options.x+',height='+options.y+',menubar=yes,resizable=yes');
	});
	
});

window.addEvent('load', function(){

  // Equal block heights for the "default" view
  if($$('.subCategory')){
		var blocks = $$('.subCategory');
		var maxHeight = 0;
		blocks.each(function(item){
			maxHeight = Math.max(maxHeight, parseInt(item.getStyle('height')));
		});
		blocks.setStyle('height', maxHeight);
	}
	
});

// End


/*  */
/**
* @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
});


/*  */
/*
# ------------------------------------------------------------------------
# JA Tabs Plugins for Joomla 1.5
# ------------------------------------------------------------------------
# Copyright (C) 2004-2010 JoomlArt.com. All Rights Reserved.
# @license - PHP files are GNU/GPL V2. CSS / JS are Copyrighted Commercial,
# bound by Proprietary License of JoomlArt. For details on licensing, 
# Please Read Terms of Use at http://www.joomlart.com/terms_of_use.html.
# Author: JoomlArt.com
# Websites:  http://www.joomlart.com -  http://www.joomlancers.com
# Redistribution, Modification or Re-licensing of this file in part of full, 
# is bound by the License applied. 
# ------------------------------------------------------------------------
*/
var wrap_W = 0;
var JATabs = new Class({	
	initialize: function(element, options) {
		this.options = $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');		
		
		this.boxTab_H = this.el.getElement('ul.ja-tabs-title').offsetHeight;
		
		//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);  
	    }		
    	else{
    		this.panelwrap.setStyle('height', Math.max(this.minHeight,this.activeTitle.panel.offsetHeight+10));
    	}
		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);
			this.activeTitle = 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 {
					if (!this.mainfx) this.mainfx = new Fx.Style(this.panelwrap, 'height',{duration:this.options.duration});
					//this.mainfx.start(this.panelwrap.offsetHeight, Math.max(this.minHeight,this.activeTitle.panel.offsetHeight+10));
					this.mainfx.stop();
					this.mainfx.start(Math.max(this.minHeight,this.activeTitle.panel.offsetHeight+10));
	
					if(!this.options.useAjax && ((this.options.position=='left') || (this.options.position=='right'))){
						if (!this.tabfx) this.tabfx = new Fx.Style(this.tabHeight, 'height',{duration:this.options.duration});
						//this.tabfx.start(this.tabHeight.offsetHeight, Math.max(this.minHeight, this.activeTitle.panel.offsetHeight));					
						this.tabfx.start(Math.max(this.el.getElement('ul.ja-tabs-title').offsetHeight, this.el.getElement('div.ja-tab-panels-'+this.options.position).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 ids = this.options.ids.split(',');
		
		if(!ids.length || ids[tab.panel._idx]==undefined) return '';
		
		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=' + ids[tab.panel._idx], {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);		
		if((this.options.position=='left') || (this.options.position=='right')){
			this.divtitles.setStyle ('height', Math.max(this.boxTab_H, this.el.getElement('div.ja-tab-panels-'+this.options.position).offsetHeight));
		}
	}
});
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);
		     }
	    }
	}
});

/*  */
/*
# ------------------------------------------------------------------------
# JA Slideshow II module for Joomla 15
# ------------------------------------------------------------------------
# Copyright (C) 2004-2010 JoomlArt.com. All Rights Reserved.
# @license - PHP files are GNU/GPL V2. CSS / JS are Copyrighted Commercial,
# bound by Proprietary License of JoomlArt. For details on licensing, 
# Please Read Terms of Use at http://www.joomlart.com/terms_of_use.html.
# Author: JoomlArt.com
# Websites:  http://www.joomlart.com -  http://www.joomlancers.com
# Redistribution, Modification or Re-licensing of this file in part of full, 
# is bound by the License applied. 
# ------------------------------------------------------------------------
*/

Element.Events.extend({
	'wheelup': {
		type: Element.Events.mousewheel.type,
		map: function(event){
			event = new Event(event);
			if (event.wheel >= 0) this.fireEvent('wheelup', event)
		}
	},
	'wheeldown': {
		type: Element.Events.mousewheel.type,
		map: function(event){
			event = new Event(event);
			if (event.wheel <= 0) this.fireEvent('wheeldown', event)
		}
	}
});

var JASlideshowThree = new Class({
	initialize: function(options){
		this.options = $extend({
			buttons : {},
			interval:5000,
			handle_event: 'click',
			button_event: 'click',
			box: {},
			size: 240,
			mode: 'horizontal',
			items:[],
			handles:[],
			onWalk:{},
			handlerBox:null,
			animation: 'fade',
			animationRepeat: 'true',
			autoPlay: false,
			languageDirection:null
		}, options || {});
		
		this.items = this.options.items;
		if( this.options.languageDirection == 'rtl' ) {
			this.modes = {horizontal:['right','width'], vertical:['top','height']};
		}else {
			this.modes = {horizontal:['left','width'], vertical:['top','height']};
		}
		this.box = $(this.options.box);
		
		this.buttons = {previous: [], next: [], play: [], playback: [], stop: []};
		
		this.allbuttons = [];
		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);
		}
		///
		if( this.options.handlerBox != null){
			this.options.handlerBox.addEvents({
				'wheelup': function(e) {
					
					e = new Event(e).stop(); 
						this.previous(true);
				}.bind(this),
			 
				'wheeldown': function(e) {
					e = new Event(e).stop();
				
					this.next(true);
				}.bind(this)
			} );
		}
		////
		//this.fx = new Fx.Style(this.box,this.modes[this.options.mode][0],this.options.fxOptions||{duration:500,wait:false});
		this.allbuttons.each (function (button){
			button.addEvent ('mouseover', function (){this.addClass ('hover');});
			button.addEvent ('mouseout', function (){this.removeClass ('hover');});
		});
		
		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= parseInt(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.nextIndex == 0 && this.options.animationRepeat=='false')){ 
			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', 'top':0, 'display':'none'});
		this.items.setStyle(this.modes[this.options.mode][0],0);
		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]);
		}
		this.currentIndex = parseInt(this.currentIndex);
		$$(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]));
			this.allbuttons.push (handles[i]);
		}
		//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[i].addEvent(this.options.button_event, function(){this.blur();});
			this.allbuttons.push (buttons[i]);
		}
	}
	
});
///

var JASlideshow2 = new Class({	
	initialize: function(element, options) {
		this.options = $extend({
			startItem: 0,
			showItem: 4,
			mainWidth: 360,
			mainHeight: 240,
			itemWidth: 160,
			itemHeight: 160,
			duration: 400,
			interval: 5000,
			transition: Fx.Transitions.Back.easeOut,
			thumbOpacity:'0.8',			
			maskDesc : 'maskDesc',
			maskWidth:360,
			maskHeigth:50,
			but_prev:'ja-slide-prev',
			but_next: 'ja-slide-next',
			maskOpacity: '0.8',
			buttonOpacity: '0.4',
			overlap: 1,
			navigation: '',
			animation: 'fade',
			animationRepeat: 'true',
			thumbSpaces: [3,3],
			autoPlay: false,
			maskAlignment:'bottom',
			showbtncontrol:false,
			urls:'',
			maskerTransStyle:'opacity',
			maskerTrans:Fx.Transitions.linear,
			navePos:'horizontal',
			languageDirection:null
			
		}, 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*/
		var navWrap= this.el.getElement('.ja-slide-thumbs-wrap');		
		if( this.options.navigation && navWrap != null ){
		// for hori

			if( this.options.languageDirection == 'rtl' ){
				var modes = {horizontal:['right','width'], vertical_left:['top','height'],vertical_right:['top','height']};
			} else {
				var modes = {horizontal:['left','width'], vertical_left:['top','height'],vertical_right:['top','height']};	
			}
			if( this.options.navePos == 'vertical_left' || this.options.navePos == 'vertical_right' ){	
				navWrap.setStyles ({'width':this.options.itemWidth, 'height':this.options.itemHeight*this.options.showItem});
			
			} else {
				navWrap.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,modes[this.options.navePos][0],this.fxOptions);			
			var thumbsFx_handles= new Fx.Style(thumbs_handles,modes[this.options.navePos][0],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 tmp = this.el.getElement('.ja-slide-thumbs-mask');
			var thumbs_mask = tmp.setStyles ( {'width':5000} );
			
			tmp.setStyle(modes[this.options.navePos][0], this.options.startItem*this.options.itemHeight-2000 );
			
			//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, modes[this.options.navePos][0],this.fxOptions);

		}
		// templ
		var navItems=this.el.getElements ('.ja-slide-thumb'); 
		//When slideshow animate
		this.onWalk = function (currentIndex, hander ) {
			if (this.options.navigation && thumbsFx_mask !=null ) {
				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.itemHeight-2000);
				thumbsFx_thumbs.start(-this.options.startItem*this.options.itemHeight);
				thumbsFx_handles.start(-this.options.startItem*this.options.itemHeight);
				
				if( $defined(hander) ){
					thumbs_handles.getElements('span').removeClass ('active');
					hander.addClass('active');
					navItems.removeClass ('active');
					navItems[currentIndex].addClass ('active');
				}
				
			}
			if (this.options.descMode.test(/load/) && this.options.showDesc  ){
				this.hideDesc();
			}
		}
		
		//Description
		this.maskDesc = this.el.getElement ('.'+this.options.maskDesc);
		
		this.maskDesc.setStyles ({ 'display':'block',
								   'position':'absolute',
									'width': this.options.maskWidth,
									'height': this.options.maskHeigth
								});
		
	
		
		if ( this.options.showDesc ) {
			if (this.options.animation.test (/move/) && this.options.overlap ) {
				this.options.maskAlignment = 'left';
				this.options.maskerTransStyle = 'opacity';
			}
			this.maskDesc.setStyle( this.options.maskAlignment, this.options.rearWidth+this.options.mainSpace );
			this.maskDesc.setStyle( 'opacity', 0 );
			if(  this.options.maskerTransStyle == 'opacity' ){
				
				this.descFx = new Fx.Style (this.maskDesc, 'opacity',{duration:400,transition:this.options.maskerTrans});
				
				this.descs = this.el.getElements ('.ja-slide-desc');
				this.showDesc = function() {
					this.descFx.stop();
					this.descFx.start(this.options.maskOpacity);
				};
				this.hideDesc = function () {
					this.descFx.stop();
					this.descFx.start(0.01);
					
				};
			} else {
			
				sizeOff = this.options.maskAlignment == 'top' || this.options.maskAlignment=='bottom'?this.options.maskHeigth : this.options.maskWidth;

				this.maskDesc.setStyle( 'opacity', this.options.maskOpacity );
				this.maskDesc.setStyle( this.options.maskAlignment, -this.options.mainWidth );
				this.descFx = new Fx.Style (this.maskDesc, this.options.maskAlignment,{duration:400,transition:this.options.maskerTrans});
				this.descs = this.el.getElements ('.ja-slide-desc');
				this.showDesc = function() { 
					this.descFx.stop();
					this.descFx.start( 0 );
				};
				this.hideDesc = function () {
					this.descFx.stop();
					this.descFx.start( -sizeOff );
					
				};				
			}
			
			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( !$defined(this.maskDesc.getElement('.inner .readon')) ){
						this.maskDesc.setHTML('');
					}
				}
				if (this.descs[currentIndex] && this.descs[currentIndex].innerHTML) this.maskDesc.desc = this.descs[currentIndex].inject (this.maskDesc);
				this.maskDesc.currentIndex = currentIndex;
			}
			
			if (this.options.descMode.test(/mouseover/)){
				var childs = this.el.getElements('.ja-slide-item');
					childs.each( function(itm, index){
					itm.addEvent ('mouseover', this.showDesc.bind(this) );
					itm.addEvent ('mouseout', this.hideDesc.bind(this));
				}.bind(this) )
				this.maskDesc.addEvent ('mouseover', this.showDesc.bind(this) );
				this.maskDesc.addEvent ('mouseout', this.hideDesc.bind(this));
			} else {
				this.maskDesc.setStyle ('opacity', this.options.maskOpacity);
			}
		} else {
			this.maskDesc.setStyle ('opacity', 0 );
		}
		this.fxOptions.onComplete = function() {
			if (this.options.showDesc) {
				this.swapDesc(this.hs.currentIndex);
				if (this.options.descMode.test(/load/)){
					this.showDesc();
				}
			}
		}.bind(this);
		
		
		if (this.options.urls) {
			this.maskDesc.addEvent('click', function () {
				// URL
				var url = this.options.urls[this.hs.currentIndex];
				if (url) {
					var target = this.options.targets[this.hs.currentIndex];
					switch(target){
						case "_blank":{
							window.open(url, "newWindow");
							break;	
						}
						default:{							
							window.location.href = url;
							break;	
						}
					}					
				}
				// Target of URL
				
			}.bind(this));
		}


		this.hs = new JASlideshowThree({
			box: this.el.getElement('.ja-slide-main'),	
			languageDirection:this.options.languageDirection,
			items: this.els,
			handlerBox:thumbs_handles,
			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,
			animationRepeat: this.options.animationRepeat,
			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){
				var childs = this.hs.box.getChildren();
			childs[0].clone().inject(this.hs.box);
			childs[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');
	},
	
	getFxObjectByMode: function( mode, start, end ){
	
		switch( mode ){
			case 'sideright' : return { 'left': [start, -end] } ; break;
			case 'sideleft'  : return { 'left': [start, end]  } ; break;	
			case 'sidetop'   : return { 'top':  [start, end]   } ; break;
			case 'sidedown'  : return { 'top':  [start, -end]  } ;  break;	
			case 'botleft' : return	  { 'top': start , 'left': end  } ;  break;	
			default: return { 'height': [start, end] };		break;		
		}
	},
	controlMark:function(){
		
	}
});

/*  */
/**
 * Main JavaScript file
 *
 * @package     Tabber
 * @version     1.0.1
 *
 * @author      Peter van Westen <peter@nonumber.nl>
 * @link        http://www.nonumber.nl
 * @copyright   Copyright (C) 2010 NoNumber! All Rights Reserved
 * @license     http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

window.addEvent( 'domready', function() {
	// Only do stuff if tabber_nav is found
	if ( $$( 'div.tabber_nav' ).length ) {
		Tabber = new Tabber();
	} else {
		// Try again 2 seconds later, because IE sometimes can't see object immediatly
		(function() {
			if ( $$( 'div.tabber_nav' ).length ) {
				Tabber = new Tabber();
			}
		}).delay( 2000 );
	}
});

var Tabber = new Class({
	initialize: function()
	{
		var self = this;
		this.docScroll = new Fx.Scroll( window );
		this.containers = new Array();

		$$( 'div.tabber_container' ).each( function( container ) {
			var active = 0;

			$ES( 'div.tabber_content', container ).each( function( el ) {
				el.fx = new Fx.Style( el, 'height', { 'duration' : tabber_slide_speed, onComplete: function() { self.autoHeight( el ); } } );
			});

			// add onclick events on tabs
			$ES( 'li.tabber_tab', container ).each( function( el, i ) {
				self.containers[el.id] = container.id;

				// set first tab as active or active tab
				if ( ( !i && !el.hasClass( 'inactive' ) ) || el.hasClass( 'active' ) ) {
					active = el.id;
				}

				el.addEvent( 'click', function() { self.showTab( el.id, container.id ); } );
			});

			// add fx
			$ES( 'div.tabber_item', container ).each( function( el ) {
				el.fade_in = new Fx.Styles( el, { 'duration' : tabber_fade_in_speed } );
				el.fx = new Fx.Slide( el, { 'duration' : 0, onComplete: function() { self.autoHeight( el.getParent() ); } } );
				el.fx.hide();
			});

			// show tabs list
			$ES( 'div.tabber_nav', container ).each( function( el ) {
				el.setStyle( 'display', 'block' );
			});

			// hide content titles
			$ES( 'h2.tabber_title', container ).each( function( el ) {
				el.setStyle( 'display', 'none' );
			});

			// show only active tab
			self.showTab( active, container.id, 1 );
		});

		// add onclick events on tab links {tablink=...}
		$$( 'a.tabber_tablink' ).each( function( el ) {
			if ( el.rel && typeof self.containers[el.rel] !== 'undefined' ) {
				el.addEvent( 'click', function() {
					self.showTab( el.rel, self.containers[el.rel], 0, 1 );
					self.docScroll.toElement( $( el.rel ) );
				} );
				el.href = 'javascript://';
			}
		});
	},

	showTab: function( id, c_id, first, scroll )
	{
		var self = this;
		var container = $( c_id );
		var item =  $( id );
		var isactive = ( item && item.hasClass( 'active' ) );
		var content = null;

		// remove all active classes
		$ES( 'li.tabber_tab', container ).each( function( el ) {
			if ( el.hasClass( 'active' ) ) {
				el.removeClass( 'active' );
				content = $( 'item_'+el.id );
				if ( content ) {
					content.getParent().getParent().setStyle( 'height', parseInt( content.getStyle( 'height' ) ) );
				}
			}
		});

		if ( item ) {
			item.addClass( 'active' );
		}
		
		var el = $( 'item_'+id );

		// show active content block
		if ( el ) {
			content = el.getParent().getParent();
			content.className = ( 'tabber_content '+( el.className.replace( 'tabber_item', '' ) ) ).trim();
			el.fx.stop();
			// show active content block
			if ( first ) {
				el.fx.show();
				this.autoHeight( el.getParent() );
				this.autoHeight( content );
			} else if ( !isactive ) {
				el.fade_in.stop();
				el.setStyle( 'opacity', 0 );
				el.fx.show();
				this.autoHeight( el.getParent() );
				el.fade_in.start( { 'opacity' : 1 } );
				content.fx.stop().start( parseInt( el.getStyle( 'height' ) ) );
			}
			if ( ( tabber_scroll && !first ) || scroll ) {
				this.docScroll.stop().toElement( container );
			}
		}

		// hide all content block
		$ES( 'div.tabber_item', container ).each( function( el ) {
			if ( id && el.id && el.id != 'item_'+id ) {
				el.fx.hide();
			}
		});
	},

	autoHeight: function( el )
	{
		if ( el.getStyle( 'height' ) && parseInt( el.getStyle( 'height' ) ) > 0 ) {
			el.setStyle( 'height', 'auto' );
		}
	}
});


/*  */
/**
 * RokBox System Plugin
 *
 * @package		Joomla
 * @subpackage	RokBox System Plugin
 * @copyright Copyright (C) 2009 RocketTheme. All rights reserved.
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see RT-LICENSE.php
 * @author RocketTheme, LLC
 *
 * RokBox System Plugin includes:
 * ------------
 * SWFObject v1.5: SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 * -------------
 * JW Player: JW Player is (c) released under CC by-nc-sa 2.0:
 * http://creativecommons.org/licenses/by-nc-sa/2.0/
 * 
 */

eval(function(p,a,c,k,e,r){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--)r[e(c)]=k[c]||e(c);k=[function(e){return r[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}('V.4A({\'2B\':E(){L 8.1z(\'2b\',\'\')},\'1S\':E(){L 8.1z(\'2b\',\'3l\')}});8O.4A({\'8N\':E(){u a=/^(1U|4F):\\/\\/([a-z-.0-9]+)[\\/]{0,1}/i.4f(J.2I);u b=/^(1U|4F):\\/\\/([a-z-.0-9]+)[\\/]{0,1}/i.4f(8);L a[2]===b[2]}});u 3U=C 4H({2O:\'2.0\',A:{\'1C\':\'8u\',\'4I\':\'8s\',\'1B\':2i.4u.4r.8o,\'1D\':4l,\'49\':40,\'1t\':\'4L\',\'2r\':M,\'4N\':8g,\'3Y\':I,\'2F\':M,1y:{\'33\':\'#8a\',\'1d\':0.85,\'3z\':87,\'1D\':4l,\'1B\':2i.4u.4r.4T},\'52-53\':0,\'5d-2w\':0,\'1b-B\':50,2H:{\'D\':5h,\'B\':7U},\'1P\':\'M\',\'2p\':\'I\',\'1a\':\'#7Q\',\'5o\':I,\'2T\':\'5p\',\'36\':I,\'37\':I,\'38\':M,\'3b\':I},5u:E(f){8.5B(f);u g=C 7F("^"+8.A.1C),16=8.A.1C,F=8;8.1H=[];8.2x=C 7A({});8.2l=I;8.29=I;8.7x=$$(\'a\').7w(E(a){u b=a.26(\'2P\'),11=I,4n=I,1E=I;u c=(b||\'\').4v(g);t(c){t(b)11=b.U(/\\([a-5K-5L-Z]+\\)/g)||I;t(b)1E=b.U(/\\[1E\\=(.+)+\\]/)||I;t(1E[1]){a.1E=1E[1]}N{a.1E=I};t(11[0]){11=11[0].1M("(","").1M(")","");t(!8.2x.7j(11))8.2x.4x(11,[]);u d=8.2x.4y(11);d.7f(a);4n=d.1h;8.2x.4x(11,d)};a.11=11;a.4w=4n;a.1N(\'1G\',8.1G.5R(a,[a.1I,a.1F,a.2P,8]))};L c}.5T(8));u h=$77(8.A.1y,{\'Q\':16+\'-1y\',\'1k\':16+\'-1y\'});8.2s=C 4q(I,h).1N(\'5W\',E(){F.24(F.1H)}).1N(\'5Z\',E(){t(F.2l){F.2l=I;u e=F.1O[0],3v=F.1O[1],2t=F.1O[2],1g=F.1O[3],1s;t(3v.26(\'Q\').4v(\'2y\'))1s=2t[1g];N 1s=2t[1g-2];F.1G.3r(1R,F,[I,1s.1I,1s.1F,1s.2P,F,1s])}});8.1y=8.2s.1y.1N(\'1G\',E(){F.29=I;F.2a()});8.W=C V(\'1o\',{\'Q\':16+\'-W\',\'1k\':16+\'-\'+8.A.4I}).Y(1c.4h).1J({\'4e\':\'4c\',\'3z\':66,\'1d\':0}).1S();u i=C V(\'1o\',{\'Q\':16+\'-13\',\'1k\':16+\'-1n\'}).Y(8.W);u j=C V(\'1o\',{\'1k\':16+\'-3c\'}).Y(i);u k=C V(\'1o\',{\'1k\':16+\'-18\'}).Y(j);u l=C V(\'1o\',{\'Q\':16+\'-6y\',\'1k\':16+\'-1n\'}).Y(8.W);u m=C V(\'1o\',{\'1k\':16+\'-3c\'}).Y(l);8.18=C V(\'1o\',{\'1k\':16+\'-18\'}).Y(m);u n=C V(\'1o\',{\'Q\':16+\'-6v\',\'1k\':16+\'-1n\'}).Y(8.W);u o=C V(\'1o\',{\'1k\':16+\'-3c\'}).Y(n);u p=C V(\'1o\',{\'1k\':16+\'-18\'}).Y(o);C V(\'1o\',{\'1k\':\'6s\'}).Y(8.W);8.1w=C V(\'a\',{\'Q\':16+\'-2a\',\'1F\':\'#\'}).2c(\'<1K>[x] 2a</1K>\').Y(8.18);8.1w.1N(\'1G\',E(e){C 31(e).2V();F.29=I;F.2a(e)});8.1v={\'W\':C 2i.6h(8.W,{\'1D\':8.A.1D,3S:M,\'1B\':8.A.1B,6i:E(){t(F.O==\'2R\')L;t(!8.6w.1d&&F.2s.24){F.W.1S();t(!F.29){F.2s.1S()}N{t(F.2l){F.2l=I;u e=F.1O[0],3v=F.1O[1],2t=F.1O[2],1g=F.1O[3],1s;t(3v.26(\'Q\').4v(\'2y\'))1s=2t[1g];N 1s=2t[1g-2];F.1G.3r(1R,F,[I,1s.1I,1s.1F,1s.2P,F,1s])}}}N{F.6e.3r(50,F)}}}),\'18\':C 2i.6h(8.18,{\'1D\':8.A.1D,3S:M,\'1B\':8.A.1B}),\'B\':C 2i.6d(8.18,\'B\',{\'1D\':8.A.1D,3S:M,\'1B\':8.A.1B})};J.1N(\'6x\',E(){F.25(F.W);F.2s.25()});t(8.A.3Y)J.1N(\'1X\',E(){F.25(F.W)})},1G:E(e,a,b,c,d,f){t(e)C 31(e).2V();u g=\'\';u h=c.U(/([0-9]+\\s?[0-9]+)/g)||[\'\'];h=h[0].1r(" ");u h=c.U(/([0-9%]+\\s?[0-9%]+)/g)||[\'\'];g=h[0].1r(" ");h=h[0].1r(" ");t(c.U(/2K/g))g=\'2K\';u i=d.1u();t(!f)f=I;u j=8.11||f.11;u k=d.1w.1e(\'B\').X()||d.1w.17().G.y||0;u l=d.A[\'1b-B\']||0;h[0]=(h[0])?h[0]:\'\';h[1]=(h[1])?h[1]:\'\';t((!h[0].3n("%")&&!h[1].3n("%"))&&!h[0].1h||!h[1].1h){t(b.U(/3p\\.1i\\/2W/i)){h[0]=5h;h[1]=73}N t(b.U(/3K\\./i)){h[0]=79;h[1]=7a}N t(b.U(/4d\\.1i\\/2W/i)){h[0]=3H;h[1]=7h}N t(b.U(/3I\\.1i\\/5N/i)){h[0]=3H;h[1]=7k}N t(b.U(/3A\\.1i\\/[0-9]{1,}/i)){h[0]=3H;h[1]=7m}N t(b.U(/\\.(5J|3L|3s|5G|5F|5E|5D|5C|3N|5A|5z|5y|5x|5w)$/i)){h[0]=7I;h[1]=7J}N t(b.U(/\\.(5t|3m|5r)$/i)){h[0]=7M;h[1]=45}};u m=J.17().G;t(h[0]>((J.1V)?J.3h:m.x)||g==\'2K\')h[0]=((J.1V)?J.3h:m.x)-d.1u(M)-20;t(h[1]>((J.1V)?J.35:m.y)||g==\'2K\')h[1]=((J.1V)?J.35:m.y)-d.1u()-k-l-20;t($O(h[0])!=\'5k\'&&$O(h[1])!=\'5k\'){t(h[0].3n("%")&&h[1].3n("%")){u n=(J.1V)?J.3h:m.x;u o=(J.1V)?J.35:m.y;h[0]=h[0].1M("%","").X();h[1]=h[1].1M("%","").X();h[0]=h[0]>1R?1R:h[0];h[1]=h[1]>1R?1R:h[1];h[0]=n*h[0]/1R;h[1]=o*h[1]/1R;h[0]=h[0]-d.1u(M)-20;h[1]=h[1]-d.1u()-k-l-20}}c={D:(h[0]||d.A.2H.D).X(),B:(h[1]||d.A.2H.B).X()};5j={D:(h[0]||d.A.2H.D).X()+d.1u(M),B:(h[1]||d.A.2H.B).X()+d.1u()+k};d.1H=[8,a,b,c,j,8.4w||f.4w,5j,8.1E];t(!d.29)d.2s.5i();N d.24(d.1H)},1u:E(a){u b=(8.A[\'52-53\']*2)+(8.A[\'5d-2w\']*2);L b},24:E(){1Q=1Q[0];u b=1Q;u d=1Q[0],j=1Q[1],1F=1Q[2],G=1Q[3],A=1Q[6],1E=1Q[7],F=8;8.1w.1z(\'3X\',\'80\');u e=F.1w.1e(\'B\').X()||F.1w.17().G.y||F.1w.82.B.X()||0;t(F.1w.1e(\'4e\')==\'4c\')e=0;u g=F.A[\'1b-B\']||0;8.W.1J({\'D\':A.D,\'B\':A.B+g+e}).2B();8.18.1J({\'D\':G.D,\'B\':G.B+e+g});t(F.A.2r&&!8.1f){u i=F.41(j)||[I,I];u j=i[0],2q=i[1];8.1f=C V(\'1o\',{\'Q\':8.A.1C+\'-1f\'}).Y(8.18).1z(\'1d\',0).59(j,2q)};t(F.A.2r&&8.1f)8.1f.1S().1z(\'B\',0);t(F.15)F.15.4b();u k=8.25(8.W,A)[1];8.1v.W.1l(8.3g(8.A.1t,k).1l).2D(E(){t(F.A.2r&&F.1f){(E(){u a=F.1f.17().G.y||0;u b=F.18.1e(\'B\').X();u c=F.1f.83().84().1h;F.1v.B.1l(b+a-e).2D(E(){F.1f.1t(\'1d\').1l(1);t(F.A.2F){F.4g=F.2F.5R(F);1c.1N(\'4Z\',F.4g)}})}).3r(F.A.4N)}});u h=G.B+e+g;u f=8.3g(8.A.1t,k).1l;t(f.D||f.B)8.1v.18.1l({\'D\':($O(f.D)==\'4Y\')?[0,G.D]:G.D,\'B\':($O(f.B)==\'4Y\')?[0,h]:h});N 8.18.1J({\'D\':G.D,\'B\':h})},2a:E(a,b){u c=8,1t;u d={\'1n\':8.W.1e(\'1n\').X(),\'13\':8.W.1e(\'13\').X()};8.1w.1z(\'3X\',\'4X\');8.15.2e(\'2o\');8.4U();1t=8.3g((b)?b:8.A.1t,d).2E;t(8.A.2r)8.1f.1t(\'1d\').4x(0);t(8.A.2F)1c.8b(\'4Z\',c.4g);t(8.1b)8.1b.4o();8.1b=I;u e={};t($4Q(1t.D))e.D=4P.4O(1t.D-c.1u());t($4Q(1t.B))e.B=4P.4O(1t.B);8.1v.18.1l(e).2D(E(){c.1v.B.2V();t(c.1f)c.1f.1z(\'B\',\'\');c.18.1J({\'D\':\'\',\'B\':\'\'});c.15.1J({\'D\':\'\',\'B\':\'\'})});8.1v.W.1l(1t);L 8},2F:E(e){C 31(e);4p(e.3w){1L\'1n\':t(8.1b)8.2X.3y(\'1G\',e);27;1L\'3c\':t(8.1b)8.2Z.3y(\'1G\',e);27;1L\'8C\':8.29=I;8.2a(e,\'3C\')}},25:E(a,b){u c=J.17();t(!a)a=$(8.W);t(!b){u d=a.17().G;b={\'D\':d.x,\'B\':d.y}};u e=8.A[\'1b-B\'];u f=c.1X.x+(((J.1V)?J.3h:c.G.x)/2)-(b.D/2)-a.1e(\'2w-1n\').X();u g=c.1X.y+(((J.1V)?J.35:c.G.y)/2)-(b.B/2)-a.1e(\'2w-13\').X()-(e/2);u h={\'13\':(g>0)?g:0,\'1n\':(f>0)?f:0};L[a.1J(h),h]},6e:E(){t(8.15)8.15.4o();t(8.1f)8.1f.1S();u d=8.1H[1],K=8.1H[2],G=8.1H[3],11=8.1H[4],1g=8.1H[5],16=8.A.1C;u f=8.1H[7];u g=8.1w.1e(\'B\').X()||8.1w.17().G.y||0;u h=8.A[\'1b-B\']||0;8.O=I;t(f){8.O=\'1E\';8.H=$(f)}N t(K.U(/\\.(8S|8W|7R|8P|8K)$/i)||8.1H[0].8J==\'2R\'){8.O=\'2R\';u i=8;8.H=C 8y.2R(K,{Q:\'1m\',8t:E(){i.15.2e(\'8q\').4K(\'8k\');i.15.2c(\'<4M>8h 8c 86.</4M>\')},4V:E(){G.D=8.D;G.B=8.B;i.15.1J(G);u a=8,2M=J.17();u b=2M.1X.y+(2M.G.y/2)-(8.B/2)-i.W.1e(\'2w-13\').X();t(b<0)b=0;t(i.18.1e(\'D\').X()!=G.D&&i.18.1e(\'B\').X()!=G.B){i.1v.18.1l({\'D\':G.D,\'B\':G.B+i.1u(M)+h})};u c=2M.1X.x+(2M.G.x/2)-(8.D/2)-(i.1u(M)/2)-i.W.1e(\'2w-1n\').X();i.1v.W.1l({\'1n\':(c>0)?c:0,\'D\':8.D+i.1u(M),\'B\':8.B+i.1u()+h+g}).2D(E(){i.15.2e(\'2o\');a.Y(i.15);t(i.1b)i.1b.2B()})}})}N t(K.U(/\\.(5J|3L|3s|5G|5F|5E|5D|5C)$/i)){8.O=\'3L\';t(1x.2k&&1x.2k.1h){8.H=\'<H Q="1m" 3k="3j..." O="4i/4W" 51="1U://2d.54.1i/55/56.57" 2L="\'+K+\'" D="\'+G.D+\'" B="\'+G.B+\'"><S P="2m" T="\'+K+\'" /><S P="58" T="5a" /><S P="2p" T="\'+8.A.2p+\'" /><S P="1P" T="\'+8.A.1P+\'" /><S P="1a" T="\'+8.A.1a+\'" /><S P="5b" T="M" /></H>\'}N{8.H=\'<H 3Z="5c:7Z-7Y-7X-7V-7S" 3k="3j..." 51="1U://2d.54.1i/55/56.57" O="4i/4W" D="\'+G.D+\'" B="\'+G.B+\'" Q="1m"><S P="2m" T="\'+K+\'" /><S P="58" T="5a" /><S P="2p" T="\'+8.A.2p+\'" /><S P="1P" T="\'+8.A.1P+\'" /><S P="1a" T="\'+8.A.1a+\'" /><S P="5b" T="M" /></H>\'}}N t(K.U(/\\.(3N|5A|5z|5y|5x|5w)$/i)){8.O=\'3N\';t(1x.2k&&1x.2k.1h){8.H=\'<H Q="1m" 3k="3j..." O="2n/x-5m" 2L="\'+K+\'" D="\'+G.D+\'" B="\'+G.B+\'" /><S P="2m" T="\'+K+\'" /><S P="5n" T="\'+8.A.1P+\'" /><S P="1a" T="\'+8.A.1a+\'" /></H>\'}N{8.H=\'<H Q="1m" 3k="3j..." 3Z="7P:7L-7H-7G-7D-7l" O="2n/x-5m" 2L="\'+K+\'" D="\'+G.D+\'" B="\'+G.B+\'" /><S P="3J" T="\'+K+\'" /><S P="7i" T="\'+8.A.2p+\'"><S P="5n" T="\'+8.A.1P+\'" /><S P="1a" T="\'+8.A.1a+\'" /><S P="7g" T="M" /></H>\'}}N t(K.U(/3p\\.1i\\/2W\\?v=/i)||K.U(/3p\\-7c\\.1i\\/2W\\?v=/i)){8.O=\'1W\';u j=3D(K);8.1Y=j[\'2z\'][\'v\'];74 j[\'2z\'][\'v\'];t(8.A.5o&&!j[\'2z\'][\'1P\'])j[\'2z\'][\'1P\']=1;8.H=C 1q("1U://2d.3p.1i/v/"+8.1Y+\'&\'+2v.72(j[\'2z\']),"1m",G.D,G.B,"9",8.A.1a,"2U","2N");8.H.1j(\'2h\',\'22\');8.H.1j(\'2f\',\'M\')}N t(K.U(/3K\\./i)){8.O=\'1W\';u k=K.1r("71")[0].1r(\'/\');8.5Y=k[k.1h-1];8.H=C 1q("1U://2d.3K.1i/1A/"+8.5Y+"&70=1&6X=33:6U;6T:6S;6J:6G;6D:6C;&6B=1&6A=0","1m",G.D,G.B,"9",8.A.1a);8.H.1j(\'2h\',\'22\');8.H.1j(\'2f\',\'M\')}N t(K.U(/4d\\.1i\\/2W/i)){8.O=\'1W\';u k=K.1r(\'/\');8.1Y=k[4];8.H=C 1q("1U://2d.4d.1i/6z/"+8.1Y+"/.1A","1m",G.D,G.B,"9",8.A.1a,"2U","2N");8.H.1j(\'2h\',\'22\');8.H.1j(\'2f\',\'M\')}N t(K.U(/3I\\.1i\\/5N/i)){8.O=\'1W\';u k=K.1r(\'=\');8.1Y=k[1];8.H=C 1q("1U://4i.3I.1i/6t.1A?6k="+8.1Y+"&1P=1&8r=6l","1m",G.D,G.B,"9",8.A.1a,"2U","2N");8.H.1j(\'2h\',\'22\');8.H.1j(\'2f\',\'M\')}N t(K.U(/3A\\.1i\\/[0-9]{1,}/i)){8.O=\'1W\';u k=K.1r(\'/\');8.1Y=k[3];8.A.38=(8.A.38)?1:0;8.A.37=(8.A.37)?1:0;8.A.3b=(8.A.3b)?1:0;8.A.36=(8.A.36)?1:0;8.A.2T=(8.A.2T.U(/[0-9]{6}/))?8.A.2T:\'5p\';8.H=C 1q("1U://2d.3A.1i/6m.1A?6n="+8.1Y+"&2C;6o=2d.3A.1i&2C;2K="+8.A.38+"&2C;6p="+8.A.37+"&2C;6q="+8.A.3b+"&2C;6r="+8.A.36+"&2C;6g="+8.A.2T+"","1m",G.D,G.B,"9",8.A.1a);8.H.1j(\'2h\',\'22\');8.H.1j(\'2f\',\'M\')}N t(K.U(/\\.1A/i)){8.O=\'1W\';8.H=C 1q(K,"1m",G.D,G.B,"9",8.A.1a,"2U","2N");8.H.1j(\'2h\',\'22\');8.H.1j(\'2f\',\'M\')}N t(K.U(/\\.6u/i)&&J.6f){8.O=\'1W\';K=J.6f+\'6c/6c.1A?6b=\'+K;8.H=C 1q(K,"1m",G.D,G.B,"9",8.A.1a,"2U","2N");8.H.1j(\'2h\',\'22\');8.H.1j(\'2f\',\'M\')}N t(K.U(/\\.(5t|5r)$/i)){8.O=\'2u\';8.H=\'<H Q="1m"" D="\'+G.D+\'" B="\'+G.B+\'" 2L="\'+K+\'"" O="\'+((J.3F)?\'2n/x-3a\':\'2u/3s\')+\'"><S T="\'+K+\'" P="2m"/><S T="\'+K+\'" P="3J"/><S T="\'+((J.3F)?\'2n/x-3a\':\'2u/3s\')+\'" P="O"/><S P="1a" T="\'+8.A.1a+\'" /><p>6a 69 68 28 67: \'+K+\'</p></H>\'}N t(K.U(/\\.3m$/i)){8.O=\'2u\';8.H=\'<H Q="1m"" D="\'+G.D+\'" B="\'+G.B+\'" 2L="\'+K+\'"" O="\'+((J.3F)?\'2n/x-3a\':\'2u/3m\')+\'"><S T="\'+K+\'" P="2m"/><S T="\'+K+\'" P="3J"/><S T="\'+((J.3F)?\'2n/x-3a\':\'2u/3m\')+\'" P="O"/><S P="1a" T="\'+8.A.1a+\'" /><p>6a 69 68 28 67: \'+K+\'</p></H>\'}N{8.O=\'42\';u l="1m"+$6E()+$44(0,1R);8.H=C V(\'42\').46({Q:l,D:G.D,B:G.B,6F:0,3Y:\'6H\',2m:K});u i=8;8.H.4V=E(){i.15.2e(\'2o\')}}8.3G=$(\'1m\');t(8.O){8.15=C V(\'1o\',{\'Q\':16+\'-15\',\'1k\':16+\'-15\'}).4K(\'2o\').1J(G).6I(8.18);t(8.O==\'1W\')8.H.64(8.15);N t(8.O==\'1E\'){8.H.6K(M).Y(8.15.2e(\'2o\')).1z(\'2b\',\'6L\')}N t(8.O==\'6M\'){8.H.Y(8.15);C 6N(K,{\'6O\':\'4y\',\'6P\':M,\'6Q\':8.H,6i:E(){8.15.2e(\'2o\')}.5T(8)}).6R()}N t(8.O==\'42\'){8.H.Y(8.15)}N t(8.O!=\'2R\')8.15.2e(\'2o\').2c(8.H);t(11){u m=8.2x.4y(11),i=8;t(m.1h>1){t(!8.1b){8.1b=C V(\'1o\',{\'Q\':8.A.1C+\'-1b\'}).Y(8.18).1S();t(1g!=1){8.2X=C V(\'a\',{\'Q\':8.A.1C+\'-3t\'}).Y(8.1b).2c(\'<1K>&63;3t</1K>\');8.2X.46({\'1F\':m[1g-2].26(\'1F\'),\'1I\':m[1g-2].26(\'1I\')})};t(1g!=m.1h){8.2Z=C V(\'a\',{\'Q\':8.A.1C+\'-2y\'}).Y(8.1b).2c(\'<1K>2y &62;</1K>\');8.2Z.46({\'1F\':m[1g].26(\'1F\'),\'1I\':m[1g].26(\'1I\')})};t(1g==1)8.2X=C V(\'a\',{\'Q\':8.A.1C+\'-3t\',\'1k\':\'3u\',\'1F\':\'#\'}).Y(8.1b,\'13\').2c(\'<1K>&63;3t</1K>\');t(1g==m.1h)8.2Z=C V(\'a\',{\'Q\':8.A.1C+\'-2y\',\'1k\':\'3u\',\'1F\':\'#\'}).Y(8.1b).2c(\'<1K>2y &62;</1K>\');8.2X.1N(\'1G\',E(e){e=C 31(e).2V();t(!8.61(\'3u\')){i.2l=M;i.1O=[e,8,m,1g];i.29=M;i.2a(e,\'3C\')}});8.2Z.1N(\'1G\',E(e){e=C 31(e).2V();t(!8.61(\'3u\')){i.2l=M;i.1O=[e,8,m,1g];i.29=M;i.2a(e,\'3C\')}})};8.1b.2B()}};t(8.A.2r){u n=8.41(d)||[I,I];u o=n[0],2q=n[1];t(8.1f)8.1f.4b().4o();8.1f=C V(\'1o\',{\'Q\':8.A.1C+\'-1f\'}).Y(8.18).1z(\'1d\',0).59(o,2q)}}},4U:E(){t(8.O){8.15.1z(\'3X\',\'4X\').4b()}8.3G=2j;8.O=I},41:E(a){a=a.1r(" :: ")||I;4p(a.1h){1L 0:L I;27;1L 1:u b=I;u c=C V(\'p\').4k(a[0]);27;1L 2:u b=C V(\'6V\').4k(a[0]);u c=C V(\'p\').4k(a[1]);27}L[b,c]},6W:E(a){u b=a.26(\'2P\'),11=I;t(b)11=b.U(/\\([a-5K-5L-Z]+\\)/g)||I;t(11[0])11=11[0].1M("(","").1M(")","");N 11=I;L 11}});3U.4m(C 60,C 6Y);u 4q=C 4H({A:{\'Q\':I,\'1k\':I,\'33\':\'#6Z\',\'1d\':0.7,\'3z\':66,\'1D\':4l,\'1B\':2i.4u.4r.4T},5u:E(a,b){8.5X=$(a)||$(1c.4h);8.5B(b);8.1y=C V(\'1o\',{\'Q\':8.A.Q||(\'5V-\'+$44(1,5U)),\'1k\':8.A.Q||(\'5V-\'+$44(1,5U)),\'75\':{\'1d\':0,\'2b\':\'3l\',\'4e\':\'4c\',\'13\':0,\'1n\':0,\'76\':\'78\',\'33-6g\':8.A.33,\'z-1g\':8.A.3z}}).Y(1c.4h);8.1v=C 2i.6d(8.1y,\'1d\',{1D:8.A.1D,1B:8.A.1B});8.24=I;L 8},25:E(a){u b=8.5X;a=a||J.17().4t;8.1y.1J({13:b.5S().y||0,1n:b.5S().x||0,D:J.17().G.x,B:a.y});L 8},2B:E(){u a=8.1y,F=8;8.1y.1z(\'2b\',\'\');8.24=M;8.25().1v.1l(8.A.1d).2D(E(){F.3y(\'5W\',a)});L 8},1S:E(){u a=8.1y,F=8;8.24=I;8.25().1v.1l(0).2D(E(){a.1z(\'2b\',\'3l\');F.3y(\'5Z\',a)});L 8},5i:E(){8[8.24?\'1S\':\'2B\']();L 8}});4q.4m(C 60,C 7b);3U.4m({3g:E(a,b){u c={};t(!b)b=0;4p(a){1L\'3C\':c={\'1l\':{\'13\':[b.13-8.A.49,b.13],\'1d\':1},\'2E\':{\'13\':8.W.1e(\'13\').X()+8.A.49,\'1d\':0}};27;1L\'4L\':u d=8.W.1e(\'B\').X(),D=8.W.1e(\'D\').X();c={\'1l\':{\'13\':[b.13+(d/2),b.13],\'B\':[0,d],\'1d\':1},\'2E\':{\'13\':b.13+(d/2),\'1n\':J.17().G.x/2-((J.17().4t.x-10)/2),\'D\':J.17().4t.x-30,\'B\':0,\'1d\':0}};27;1L\'7d\':u d=8.W.1e(\'B\').X(),D=8.W.1e(\'D\').X();c={\'1l\':{\'B\':[0,d],\'D\':[0,D],\'1d\':1,\'13\':[(J.17().G.y/2)+J.17().1X.y,b.13],\'1n\':[(J.17().G.x/2)+J.17().1X.x,b.1n]},\'2E\':{\'B\':0,\'D\':0,\'1d\':0,\'13\':(J.17().G.y/2)+J.17().1X.y,\'1n\':(J.17().G.x/2)+J.17().1X.x}};27;1L\'7e\':c={\'1l\':{\'1d\':1},\'2E\':{\'1d\':0}}};L c}});E 3D(a){u o=3D.A,m=o.3E[o.5Q?"5P":"5O"].4f(a),2A={},i=14;5M(i--)2A[o.3w[i]]=m[i]||"";2A[o.q.P]={};2A[o.3w[12]].1M(o.q.3E,E($0,$1,$2){t($1)2A[o.q.P][$1]=$2});L 2A};3D.A={5Q:I,3w:["7n","7o","7p","7q","7r","7s","7t","7u","7v","7y","7z","6b","7B","7C"],q:{P:"2z",3E:/(?:^|&)([^&=]*)=?([^&]*)/g},3E:{5P:/^(?:([^:\\/?#]+):)?(?:\\/\\/((?:(([^:@]*):?([^:@]*))?@)?([^:\\/?#]*)(?::(\\d*))?))?((((?:[^?#\\/]*\\/)*)([^?#]*))(?:\\?([^#]*))?(?:#(.*))?)/,5O:/^(?:(?![^:@]+:[^:@\\/]*@)([^:\\/?#.]+):)?(?:\\/\\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/}};t(2J R=="4j"){u R=C 2v()}t(2J R.2Q=="4j"){R.2Q=C 2v()}t(2J R.1Z=="4j"){R.1Z=C 2v()}R.1q=E(a,b,w,h,d,c,e,f,g,i){t(!1c.3i){L}8.5I=i?i:"7E";8.5H=R.2Q.4a(8.5I);8.43=C 2v();8.3e=C 2v();8.3W=C 5v();t(a){8.1p("1A",a)}t(b){8.1p("Q",b)}t(w){8.1p("D",w)}t(h){8.1p("B",h)}t(d){8.1p("2O",C R.1T(d.7K().1r(".")))}8.34=R.1Z.5s();t(!J.1V&&1c.3V&&8.34.2g>7){R.1q.5q=M}t(c){8.1j("1a",c)}u q=e?e:"7N";8.1j("7O",q);8.1p("39",I);8.1p("2S",I);u j=(f)?f:J.2I;8.1p("4z",j);8.1p("3d","");t(g){8.1p("3d",g)}};R.1q.5l={39:E(a){8.3R=!a?"7T.1A":a;8.1p("39",M)},1p:E(a,b){8.3W[a]=b},19:E(a){L 8.3W[a]},1j:E(a,b){8.43[a]=b},3Q:E(){L 8.43},2G:E(a,b){8.3e[a]=b},7W:E(a){L 8.3e[a]},5g:E(){L 8.3e},3O:E(){u a=C 5v();u b;u c=8.5g();28(b 3o c){a[a.1h]=b+"="+c[b]}L a},5f:E(){u a="";t(1x.2k&&1x.3M&&1x.3M.1h){t(8.19("2S")){8.2G("5e","81");8.1p("1A",8.3R)}a="<88 O=\\"2n/x-89-1W\\" 2m=\\""+8.19("1A")+"\\" D=\\""+8.19("D")+"\\" B=\\""+8.19("B")+"\\" 32=\\""+8.19("32")+"\\"";a+=" Q=\\""+8.19("Q")+"\\" P=\\""+8.19("Q")+"\\" ";u b=8.3Q();28(u c 3o b){a+=[c]+"=\\""+b[c]+"\\" "}u d=8.3O().4S("&");t(d.1h>0){a+="4R=\\""+d+"\\""}a+="/>"}N{t(8.19("2S")){8.2G("5e","8d");8.1p("1A",8.3R)}a="<H Q=\\""+8.19("Q")+"\\" 3Z=\\"5c:8e-8f-8i-8j-8l\\" D=\\""+8.19("D")+"\\" B=\\""+8.19("B")+"\\" 32=\\""+8.19("32")+"\\">";a+="<S P=\\"3G\\" T=\\""+8.19("1A")+"\\" />";u e=8.3Q();28(u c 3o e){a+="<S P=\\""+c+"\\" T=\\""+e[c]+"\\" />"}u f=8.3O().4S("&");t(f.1h>0){a+="<S P=\\"4R\\" T=\\""+f+"\\" />"}a+="</H>"}L a},64:E(a){t(8.19("39")){u b=C R.1T([6,0,65]);t(8.34.3f(b)&&!8.34.3f(8.19("2O"))){8.1p("2S",M);8.2G("8m",8n(8.19("4z")));1c.1I=1c.1I.8p(0,47)+" - 4J 6j 8v";8.2G("8w",1c.1I)}}t(8.5H||8.19("2S")||8.34.3f(8.19("2O"))){u n=(2J a=="8x")?1c.3i(a):a;n.8z=8.5f();L M}N{t(8.19("3d")!=""){1c.2I.1M(8.19("3d"))}}L I}};R.1Z.5s=E(){u a=C R.1T([0,0,0]);t(1x.2k&&1x.3M.1h){u x=1x.2k["8A 4J"];t(x&&x.2q){a=C R.1T(x.2q.1M(/([a-8B-Z]|\\s)+/,"").1M(/(\\s+r|\\s+b[0-9]+)/,".").1r("."))}}N{t(1x.4G&&1x.4G.3P("8D 8E")>=0){u b=1;u c=3;5M(b){3q{c++;b=C 3x("23.23."+c);a=C R.1T([c,0,0])}3B(e){b=2j}}}N{3q{u b=C 3x("23.23.7")}3B(e){3q{u b=C 3x("23.23.6");a=C R.1T([6,0,21]);b.8F="22"}3B(e){t(a.2g==6){L a}}3q{b=C 3x("23.23")}3B(e){}}t(b!=2j){a=C R.1T(b.8G("$2O").1r(" ")[1].1r(","))}}}L a};R.1T=E(a){8.2g=a[0]!=2j?48(a[0]):0;8.2Y=a[1]!=2j?48(a[1]):0;8.4s=a[2]!=2j?48(a[2]):0};R.1T.5l.3f=E(a){t(8.2g<a.2g){L I}t(8.2g>a.2g){L M}t(8.2Y<a.2Y){L I}t(8.2Y>a.2Y){L M}t(8.4s<a.4s){L I}L M};R.2Q={4a:E(a){u q=1c.2I.8H||1c.2I.8I;t(a==2j){L q}t(q){u b=q.3T(1).1r("&");28(u i=0;i<b.1h;i++){t(b[i].3T(0,b[i].3P("="))==a){L b[i].3T((b[i].3P("=")+1))}}}L""}};R.1Z.4E=E(){u a=1c.8L("8M");28(u i=a.1h-1;i>=0;i--){a[i].32.2b="3l";28(u x 3o a[i]){t(2J a[i][x]=="E"){a[i][x]=E(){}}}}};t(R.1q.5q){t(!R.4D){R.1Z.4C=E(){8Q=E(){};8R=E(){};J.4B("8T",R.1Z.4E)};J.4B("8U",R.1Z.4C);R.4D=M}}t(!1c.3i&&1c.3V){1c.3i=E(a){L 1c.3V[a]}}u 8V=R.2Q.4a;u 8X=R.1q;u 1q=R.1q;',62,556,'||||||||this|||||||||||||||||||||if|var||||||options|height|new|width|function|self|size|object|false|window|url|return|true|else|type|name|id|deconcept|param|value|match|Element|wrapper|toInt|inject|||group||top||container|cls|getSize|center|getAttribute|bgcolor|arrows|document|opacity|getStyle|caption|index|length|com|addParam|class|start|rokboxobject|left|div|setAttribute|SWFObject|split|what|effect|overflow|fx|closeButton|navigator|overlay|setStyle|swf|transition|className|duration|module|href|click|current|title|setStyles|span|case|replace|addEvent|nextGroup|autoplay|arguments|100|hide|PlayerVersion|http|opera|flash|scroll|videoID|SWFObjectUtil|||always|ShockwaveFlash|open|reposition|getProperty|break|for|swtch|close|display|setHTML|www|removeClass|allowfullscreen|major|allowscriptaccess|Fx|null|plugins|changeGroup|src|application|spinner|controller|description|captions|overlayObj|list|audio|Object|padding|groups|next|queryKey|uri|show|amp|chain|end|keyEvents|addVariable|defaultSize|location|typeof|fullscreen|data|winSize|transparent|version|rel|util|image|doExpressInstall|vimeoColor|wmode|stop|watch|prevArrow|minor|nextArrow||Event|style|background|installedVer|innerHeight|vimeoPortrait|vimeoTitle|vimeoFullScreen|useExpressInstall|mplayer2|vimeoByline|right|redirectUrl|variables|versionIsValid|effects|innerWidth|getElementById|loading|standby|none|wav|contains|in|youtube|try|delay|mpeg|previous|inactive|selfLink|key|ActiveXObject|fireEvent|zIndex|vimeo|catch|growl|parseUri|parser|ie|movie|400|google|filename|dailymotion|qt|mimeTypes|wmv|getVariablePairs|indexOf|getParams|xiSWFPath|wait|substring|RokBox|all|attributes|visibility|scrolling|classid||getCaption|iframe|params|random||setProperties||parseInt|chase|getRequestParameter|empty|absolute|metacafe|position|exec|evt|body|video|undefined|setText|200|implement|len|remove|switch|Rokverlay|Quad|rev|scrollSize|Transitions|test|idx|set|get|xiRedirectUrl|extend|attachEvent|prepUnload|unloadSet|cleanupSWFs|https|userAgent|Class|theme|Flash|addClass|quicksilver|h1|captionsDelay|abs|Math|chk|flashvars|join|easeInOut|unloadVideo|onload|quicktime|hidden|array|keyup||codebase|frame|border|apple|qtactivex|qtplugin|cab|scale|adopt|aspect|enablejavascript|clsid|content|MMplayerType|getSWFHTML|getVariables|640|toggle|options2|number|prototype|oleobject|autoStart|youtubeAutoplay|00adef|doPrepUnload|m4a|getPlayerVersion|mp3|initialize|Array|asf|asx|wvx|wax|wma|setOptions|m4v|mv4|xvid|avi|divx|skipDetect|DETECT_KEY|mov|z0|9A|while|videoplay|loose|strict|strictMode|bindWithEvent|getPosition|bind|1000|rokverlay|onShow|where|videoId|onHide|Options|hasClass|gt|lt|write||65555|playing|matched|plugin|No|file|jwplayer|Style|loadVideo|rokboxPath|color|Styles|onComplete|Player|docId|en|moogaloop|clip_id|server|show_title|show_byline|show_portrait|clr|googleplayer|flv|bottom|now|resize|middle|fplayer|related|autoPlay|FFC300|special|time|frameBorder|333333|auto|injectInside|foreground|clone|block|html|Ajax|method|evalScripts|update|request|FFFFFF|glow|DDDDDD|h2|getGroup|colors|Chain|000000|v3|_|toQueryString|385|delete|styles|cursor|merge|pointer|420|339|Events|nocookie|explode|fade|push|stretchToFit|345|showcontrols|hasKey|326|0080C74C7E95|225|source|protocol|authority|userInfo|user|password|host|port|relative|filter|elements|path|directory|Hash|query|anchor|94AB|detectflash|RegExp|11D0|B0F6|504|336|toString|22D6f312|320|high|quality|CLSID|f3f3f3|jpeg|D3488ABDDC6B|expressinstall|460|BC80|getVariable|4B23|8C17|02BF25D5|visible|PlugIn|currentStyle|getText|trim||found|65550|embed|shockwave|000|removeEvent|not|ActiveX|D27CDB6E|AE6D|800|Image|11cf|96B8|warning|444553540000|MMredirectURL|escape|easeOut|slice|liading|hl|default|onerror|rokbox|Installation|MMdoctitle|string|Asset|innerHTML|Shockwave|zA|esc|Windows|CE|AllowScriptAccess|GetVariable|search|hash|alt|bmp|getElementsByTagName|OBJECT|sameDomain|String|png|__flash_unloadHandler|__flash_savedUnloadHandler|gif|onunload|onbeforeunload|getQueryParamValue|jpg|FlashObject'.split('|'),0,{}))


/*  */
/* All the presets options are the custom ones */

var rokbox;
window.addEvent('domready', function() {
	rokbox = new RokBox({
		'theme': 'light', // this string must match the theme folder name (string, no space, lowercase)
		'transition': Fx.Transitions.Quad.easeOut, // Transition to use when opening RokBox
		'duration': 400, // Duration of opening RokBox Effect (integer, milliseconds)
		'chase': 50, // Chase to use for the animation. works only for growl, see next line. (integer)
		'frame-border': 20, // Width of each border if any (integer, pixels)
		'content-padding': 0, // Padding of internal content wrapper (integer, pixels)
		'arrows-height': 35, // Height of arrows div (integer, pixels)
		'effect': 'growl', // Type of effect to use. Presets are: 'quicksilver', 'growl', 'explode'
		'captions': 1, // Whether to enable or disable captions (boolean, 1 or 0)
		'captionsDelay': 800, // How long captions effect should last, when captions are enabled (integer, milliseconds)
		'scrolling': 0, // Makes RokBox follow when scrolling the page (boolean, 1 or 0)
		'keyEvents': 1, // Enable keyevents. Esc, Left, Right to close and change previous or next (boolean, 1 or 0)
		'overlay': {
			'background': '#000', // Overlay background color (string, hex color format with starting hash #)
			'opacity': 0.2, // Opacity of the overlay (float, from 0 to 1, 0.1 makes it invisible but clickable)
			'duration': 200, // Duration of overlay effect (integer, milliseconds)
			'transition': Fx.Transitions.Quad.easeInOut // Transition to use for opacity effect
		},
		'defaultSize': {
			'width': 640, // Default RokBox window width (integer)
			'height': 460 // Default RokBox window height (integer)
		},
		'autoplay': 'true', // Enable or disable autoplay for QuickTimes and WM videos (string, 'true' or 'false')
		'controller': 'true', // Enable or disable controllers for QuickTimes and WM videos (string, 'true' or 'false')
		'bgcolor': '#ffffff', // Set Background colors for all videos and flash services that support it (string, hex color format with starting hash #)
		'youtubeAutoplay': 0, // Enable or disable autoplay for YouTube (boolean, 1 or 0)
		'vimeoColor': '00adef', // Vimeo Color Scheme (string, hex color format WITHOUT starting hash #)
		'vimeoPortrait': 0, // Enable or disable Vimeo Portrait Button (boolean, 1 or 0)
		'vimeoTitle': 0, // Enable or disable Vimeo Title caption (boolean, 1 or 0)
		'vimeoFullScreen': 1, // Enable or disable Vimeo FullScreen button (boolean, 1 or 0)
		'vimeoByline': 0 // Enable or disable Vimeo's Author line (boolean, 1 or 0)
	});
});

/*  */
function submitacymailingform(task,formName){
	var varform = eval('document.'+formName);
	if(!varform.elements) varform = varform[1];

       if(task != 'optout'){
         nameField = varform.elements['user[name]'];
         if(nameField && (( typeof acymailing != 'undefined' && nameField.value == acymailing['NAMECAPTION'] ) || nameField.value.length < 2)){
           if(typeof acymailing != 'undefined'){ alert(acymailing['NAME_MISSING']); }
           nameField.className = nameField.className +' invalid';
           return false;
         }
       }

       var emailField = varform.elements['user[email]'];
       if(emailField){
       emailField.value = emailField.value.replace(/ /g,"");
        var filter = /^([a-z0-9_'&\.\-\+])+\@(([a-z0-9\-])+\.)+([a-z0-9]{2,10})+$/i;
        if(!emailField || (typeof acymailing != 'undefined' && emailField.value == acymailing['EMAILCAPTION']) || !filter.test(emailField.value)){
          if(typeof acymailing != 'undefined'){ alert(acymailing['VALID_EMAIL']); }
          emailField.className = emailField.className +' invalid';
          return false;
        }
       }
       
       	if(task != 'optout' && typeof acymailing != 'undefined' && typeof acymailing['reqFields'+formName] != 'undefined' && acymailing['reqFields'+formName].length > 0){

			for(var i =0;i<acymailing['reqFields'+formName].length;i++){
				elementName = 'user['+acymailing['reqFields'+formName][i]+']';
				elementToCheck = varform.elements[elementName];
				if(elementToCheck){
					var isValid = false;
					if(typeof elementToCheck.value != 'undefined'){
						if(elementToCheck.value.length>0){
							if(typeof acymailing['excludeValues'+formName] == 'undefined' || typeof acymailing['excludeValues'+formName][acymailing['reqFields'+formName][i]] == 'undefined' || acymailing['excludeValues'+formName][acymailing['reqFields'+formName][i]] != elementToCheck.value) isValid = true;
						 }
					}else{
						for(var a=0; a < elementToCheck.length; a++){
						   if(elementToCheck[a].checked && elementToCheck[a].value.length>0) isValid = true;
						}
					}
					if(!isValid){
						elementToCheck.className = elementToCheck.className +' invalid';
						alert(acymailing['validFields'+formName][i]);
						return false;
					}
				}else{
					if((varform.elements[elementName+'[day]'] && varform.elements[elementName+'[day]'].value<1) || (varform.elements[elementName+'[month]'] && varform.elements[elementName+'[month]'].value<1) || (varform.elements[elementName+'[year]'] && varform.elements[elementName+'[year]'].value<1902)){
						if(varform.elements[elementName+'[day]'] && varform.elements[elementName+'[day]'].value<1) varform.elements[elementName+'[day]'].className = varform.elements[elementName+'[day]'].className + ' invalid';
						if(varform.elements[elementName+'[month]'] && varform.elements[elementName+'[month]'].value<1) varform.elements[elementName+'[month]'].className = varform.elements[elementName+'[month]'].className + ' invalid';
						if(varform.elements[elementName+'[year]'] && varform.elements[elementName+'[year]'].value<1902) varform.elements[elementName+'[year]'].className = varform.elements[elementName+'[year]'].className + ' invalid';
						alert(acymailing['validFields'+formName][i]);
						return false;
					}	
				}
			}
		}

        var captchaField = varform.elements['acycaptcha'];
        if(captchaField){
     	   if(captchaField.value.length<1){
     		   if(typeof acymailing != 'undefined'){ alert(acymailing['CAPTCHA_MISSING']); }
     		   captchaField.className = captchaField.className +' invalid';
                return false;
     	   }
        }
        
       if(task != 'optout'){
         termsandconditions = varform.terms;
         if(termsandconditions && !termsandconditions.checked){
           if(typeof acymailing != 'undefined'){ alert(acymailing['ACCEPT_TERMS']); }
           termsandconditions.className = termsandconditions.className +' invalid';
           return false;
         }
       }
       
       taskField = varform.task;
       taskField.value = task;

       varform.submit();

       if(window.parent && window.parent.document.getElementById('sbox-window')){
       	window.parent.document.getElementById('sbox-window').close();
       }

       return false;
     }

/*  */

var JS_ContentSlider2 = new Class({
    
    initialize: function(options)
    {
		this.options = Object.extend({
			w: 100,
			h: 200,
			num_elem: 4,
			total: 0,
			url: '',
			mode: 'horizontal',
			direction: 'right',
			wrapper: 'ja-slide-wrapper',
			duration: 1000,
			interval: 3000,
			auto: 1
		}, 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=='vertical'){
			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);
		}
    
    /*For element*/
    elems = this.options.wrapper.getElementsByClassName ('content_element');
		for(i=0;i<elems.length;i++){
				elems[i].setStyle('width', this.options.w);
        elems[i].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 == 'vertical') {
            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',
								 'styles': {
									'position': 'absolute',
									'width': this.options.w,
									'height': this.options.h
								}});
        divobj.innerHTML = text;
        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){
        var divobj = new Element('DIV', {
								 'id':'jsslide_' + ind, 
								 'class':'jsslide',
								 'rel': this.options.modid,
								 'events': {
										'mouseenter': function(event){
											var tip = 'ja-contentslider-tips-' + $(this).getProperty('rel');
											if($(tip)) {
												var content = $(this).getElement('.ja-contentslider-tips');
												if(content) {
													//var coor = content.getCoordinates();
													$(tip).innerHTML = content.innerHTML;
													//$(tip).setStyle('width', coor.width);
													$(tip).setStyles({'display':'inline'});
												}
											}
										},
										'mousemove': function(event){
											var event = new Event(event);
											var tip = 'ja-contentslider-tips-' + $(this).getProperty('rel');
											if($(tip)) {
												$(tip).setStyles({'top':event.page.y + 20, 'left': event.page.x - 100});
											}
										},
										'mouseleave': function(event){
											var event = new Event(event);
											var tip = 'ja-contentslider-tips-' + $(this).getProperty('rel');
											if($(tip)) {
												$(tip).setStyles({'display':'none'});
											}
										}
								 },
								 'styles': {
									'position': 'absolute',
									'width': this.options.w,
									'height': this.options.h
								}});
        divobj.innerHTML = text;
		divobj.inject (this.options.wrapper);
		this.hide(divobj);
		this.elements[ind] = divobj;
	},
	
	
	
    hide: function (el) {		
        if (this.options.mode == 'vertical') {  
            el.setStyle('top', '-999px');
            el.setStyle('left', '0');
        }else{
            el.setStyle('top', '0');
            el.setStyle('left', '-999em');            
        }
    },
	
    setPos: function (elems) {
		if (!elems) elems = this.getRunElems();
		
		/*var limitW = this.options.wrapper.getStyle('width');
		limitW = parseInt(limitW);
		var limitH = this.options.wrapper.getStyle('height');
		limitH = parseInt(limitH);*/
		
		var posT;
		var posL;
		var display;
        for(var i=0;i<elems.length;i++) {
			var el = elems[i];
			if (el){
				if (this.options.mode == 'vertical') {
					if (this.options.direction == 'up') {
						posT = this.options.h*i;
					}else{
						posT = this.options.h*(i-1);              
					}
					el.setStyle('top', posT);
					
					if(posT >= 0) {
						this.loadImage(el);
					}
					//display = (posT >= limitH || posT <0) ? 'none' : 'inline';
					//el.setStyle('display', display);
				}else{
					if (this.options.direction == 'left') {
						posL = this.options.w*i;
					}else{
						posL = this.options.w*(i-1);              
					}
					el.setStyle('left', posL);
					
					this.loadImage(el);
					//display = (posL >= limitW || posL <0) ? 'none' : 'inline';
					//el.setStyle('display', display);
				}
			}
		}
    },
	
	loadImage: function(el) {
		var holder = el.getElement(".ja-image");
		if(holder){
			var image = holder.getProperty('rel');
			if(image != '' && image != null) {
				holder.setHTML(image);
				holder.setProperty('rel', '')
			}
		}
	},

	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;
	}
	
});


/*  */
/**
 * @version		$Id:  $Revision
 * @package		mootool
 * @subpackage	lofslidernews
 * @copyright	Copyright (C) JAN 2010 LandOfCoder.com <@emai:landofcoder@gmail.com>. All rights reserved.
 * @website     http://landofcoder.com
 * @license		This plugin is dual-licensed under the GNU General Public License and the MIT License 
 */
 Element.Events.extend({
	'wheelup': {
		type: Element.Events.mousewheel.type,
		map: function(event){
			event = new Event(event);
			if (event.wheel >= 0) this.fireEvent('wheelup', event)
		}
	},
	'wheeldown': {
		type: Element.Events.mousewheel.type,
		map: function(event){
			event = new Event(event);
			if (event.wheel <= 0) this.fireEvent('wheeldown', event)
		}
	}
});
 ////
if( typeof(LofSlideshow) == 'undefined' ){
	var LofSlideshow = new Class( {
		initialize:function( eMain, eNavigator, eNavOuter, options ){
			this.setting = Object.extend({
				autoStart			: true,
				descStyle	    	: 'sliding',
				mainItemSelector    : 'div.lof-main-item',
				navSelector  		: 'li' ,
				navigatorEvent		: 'click',
				interval	  	 	:  2000,
				auto			    : false,
				navItemsDisplay		: 3,
				startItem			: 0,
				navItemHeight		: 100,
				navItemWidth 		: 310
			}, options || {} );
			this.currentNo  = 0;
			this.nextNo     = null;
			this.previousNo = null;
			this.fxItems	= [];	
			this.minSize 	= 0;
			if( $defined(eMain) ){
				this.slides	   = eMain.getElements( this.setting.mainItemSelector );
				this.maxWidth  = eMain.getStyle('width').toInt();

				this.maxHeight = eMain.getStyle('height').toInt();
				this.styleMode = this.__getStyleMode();  
				var fx =  Object.extend({waiting:false}, this.setting.fxObject );
				this.slides.each( function(item, index) {
					item.setStyles( eval('({"'+this.styleMode[0]+'": index * this.maxSize,"'+this.styleMode[1]+'":Math.abs(this.maxSize),"display" : "block"})') );		
					this.fxItems[index] = new Fx.Styles( item,  fx );
				}.bind(this) );
				if( this.styleMode[0] == 'opacity' || this.styleMode[0] =='z-index' ){
					this.slides[0].setStyle(this.styleMode[0],'1');
				}

				eMain.addEvents( { 'mouseenter' : this.stop.bind(this),
							   	   'mouseleave' :function(e){ 
								   	if( this.setting.auto ){ 
									this.play( this.setting.interval,'next', true )};}.bind(this) } );
			}
			if( $defined(eNavigator) && $defined(eNavOuter) ){
				this.navigatorItems = eNavigator.getElements( this.setting.navSelector );
				if( this.setting.navItemsDisplay > this.navigatorItems.length ){
					this.setting.navItemsDisplay = this.navigatorItems.length;	
				}
				eNavOuter.setStyles( {'height':this.setting.navItemsDisplay*this.setting.navItemHeight,
								   'width':this.setting.navItemWidth});
				

				
				this.navigatorFx = new Fx.Style( eNavigator, 'top',
												{transition:Fx.Transitions.Quad.easeInOut,duration:800} );
				this.registerMousewheelHandler( eNavigator ); // allow to use the srcoll
				this.navigatorItems.each( function(item,index) {
					item.addEvent( this.setting.navigatorEvent, function(){													 
						this.jumping( index, true );
						this.setNavActive( index, item );	
					}.bind(this) ); 
						item.setStyles( { 'height':this.setting.navItemHeight,
									  	  'width'  : this.setting.navItemWidth} );		
				}.bind(this) );
				this.setNavActive( 0 );
			}
		},
		navivationAnimate:function( currentIndex ) { 
			if (currentIndex <= this.setting.startItem 
				|| currentIndex - this.setting.startItem >= this.setting.navItemsDisplay-1) {
					this.setting.startItem = currentIndex - this.setting.navItemsDisplay+2;
					if (this.setting.startItem < 0) this.setting.startItem = 0;
					if (this.setting.startItem >this.slides.length-this.setting.navItemsDisplay) {
						this.setting.startItem = this.slides.length-this.setting.navItemsDisplay;
					}
			}		
			this.navigatorFx.stop().start( -this.setting.startItem*this.setting.navItemHeight );	
		},
		setNavActive:function( index, item ){
			if( $defined(this.navigatorItems) ){ 
				this.navigatorItems.removeClass('active');
				this.navigatorItems[index].addClass('active');	
				this.navivationAnimate( this.currentNo );	
			}
		},
		__getStyleMode:function(){
			switch( this.setting.direction ){
				case 'opacity': this.maxSize=0; this.minSize=1; return ['opacity','opacity'];
				case 'vrup':    this.maxSize=this.maxHeight;    return ['top','height'];
				case 'vrdown':  this.maxSize=-this.maxHeight;   return ['top','height'];
				case 'hrright': this.maxSize=-this.maxWidth;    return ['left','width'];
				case 'hrleft':
				default: this.maxSize=this.maxWidth; return ['left','width'];
			}
		},
		registerMousewheelHandler:function( element ){ 
			element.addEvents({
				'wheelup': function(e) {
					
					e = new Event(e).stop(); 
						this.previous(true);
				}.bind(this),
			 
				'wheeldown': function(e) {
					e = new Event(e).stop();
				
					this.next(true);
				}.bind(this)
			} );
		},
		registerButtonsControl:function( eventHandler, objects, isHover ){
			if( $defined(objects) && this.slides.length > 1 ){
				for( var action in objects ){ 
					if( $defined(this[action.toString()])  && $defined(objects[action]) ){
						objects[action].addEvent( eventHandler, this[action.toString()].bind(this, [true]) );
					}
				}
			}
			return this;	
		},
		start:function( isStart, obj ){
			this.setting.auto = isStart;
			// if use the preload image.
			if( obj ) {
				this.preloadImages( this.onComplete(obj) );
			} else {
				if( this.setting.auto && this.slides.length > 1 ){
						this.play( this.setting.interval,'next', true );}	
			}
		},
		onComplete:function( obj ){
			(function(){																
					new Fx.Style( obj ,'opacity',{ transition:Fx.Transitions.Quad.easeInOut,
														 duration:800} ).start(1,0)}).delay(600);
			if( this.setting.auto && this.slides.length > 1 ){
				this.play( this.setting.interval,'next', true );}	
			
		},
		preloadImages:function( _options ){
			var options=Object.extend({
									  onComplete:function(){},
									  onProgress:function(){}
									  },_options||{});
			var loaded=[];
			var counter=0;
			var self = this;
			this.slides.getElements('img').each( function(image, index){
				if( !image.complete ){				  
					image.onload =function(){
						count++;
						if( count >= images.length ){
							self.onComplete();
						}
					}
					image.onerror =function(){ 
						count++;
						if( count >= images.length ){
							self.onComplete();
						}	
					}
				}else {
					count++;
					if( count >= images.length ){
						self.onComplete();
					}	
				}
			} );
				
		},
		onProcessing:function( manual, start, end ){			
			this.previousNo = this.currentNo + (this.currentNo>0 ? -1 : this.slides.length-1);
			this.nextNo 	= this.currentNo + (this.currentNo < this.slides.length-1 ? 1 : 1- this.slides.length);				
			return this;
		},
		finishFx:function( manual ){
			if( manual ) this.stop();
				this.setNavActive( this.currentNo );		
			if( manual && this.setting.auto ){ 
				this.play( this.setting.interval,'next', true );
			}		
			
		},
		getObjectDirection:function( start, end ){
			return eval("({'"+this.styleMode[0]+"':["+start+", "+end+"]})");	
		},
		fxStart:function( index, obj ){
			this.fxItems[index].stop().start( obj );
			return this;
		},
		jumping:function( no, manual ){
			this.stop();
			if( this.currentNo == no ) return;		
			this.onProcessing( null, manual, 0, this.maxSize )
				.fxStart( no, this.getObjectDirection(this.maxSize , this.minSize) )
				.fxStart( this.currentNo, this.getObjectDirection(this.minSize,  -this.maxSize) )
				.finishFx( manual );	
				this.currentNo  = no;
		},
		next:function( manual , item){
			this.currentNo += (this.currentNo < this.slides.length-1) ? 1 : (1 - this.slides.length);	
			this.onProcessing( item, manual, 0, this.maxSize )
				.fxStart( this.currentNo, this.getObjectDirection(this.maxSize ,this.minSize) )
				.fxStart( this.previousNo, this.getObjectDirection(this.minSize, -this.maxSize) )
				.finishFx( manual );
		},
		previous:function( manual, item ){
			this.currentNo += this.currentNo > 0 ? -1 : this.slides.length - 1;
			this.onProcessing( item, manual, -this.maxWidth, this.minSize )
				.fxStart( this.nextNo, this.getObjectDirection(this.minSize, this.maxSize) )
				.fxStart( this.currentNo,  this.getObjectDirection(-this.maxSize, this.minSize) )
				.finishFx( manual	);			
		},
		play:function( delay, direction, wait ){
			this.stop(); 
			if(!wait){ this[direction](false); }
			this.isRun = this[direction].periodical(delay,this,true);
		},stop:function(){; $clear(this.isRun ); }
	} );
}


/*  */

var jaboxes = [];
var jaboxoverlay = null;
showBox = function (box,focusobj, caller, e) {
	//Add overlay
	if (!jaboxoverlay) {
		jaboxoverlay = new Element ('div', {id:"jabox-overlay"}).injectBefore ($(box));
		jaboxoverlay.setStyle ('opacity', 0.01);
		jaboxoverlay.addEvent ('click', function (e) {
			jaboxes.each(function(box){
				if (box.status=='show') {
					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');
				}
			},this);
			jaboxoverlay.setStyle ('display', 'none');
		});
	}
	
	caller.blur();
	//new Event(e).stop ();
	box=$(box);
	if (!box) return;
	if ($(caller)) box._caller = $(caller);
	if (!jaboxes.contains (box)) {
		jaboxes.include (box);
		//box.addEvent ('click', function (e) {/*new Event(e).stop ();*/});
	}
	
	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');
		jaboxoverlay.setStyle ('display', 'none');
	} else {
		jaboxes.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');
		jaboxoverlay.setStyle ('display', 'block');
	}
}



