var panes=new Class({options:{startingSlide:false,activeButtonClass:"active",activationEvent:"click",wrap:true,slideEffect:{duration:400},animateHeight:false,rightOversized:0},current:null,buttons:false,outerSlidesBox:null,innerSlidesBox:null,panes:null,fx:null,heightFx:null,initialize:function(b,c,a){if(b){this.buttons=$(b).getChildren()}this.outerSlidesBox=$(c);this.innerSlidesBox=this.outerSlidesBox.getFirst();this.panes=this.innerSlidesBox.getChildren();this.setOptions(a);this.fx=new Fx.Scroll(this.outerSlidesBox,this.options.slideEffect);this.heightFx=this.outerSlidesBox.set("height",this.options.slideEffect);this.current=this.options.startingSlide?this.panes.indexOf($(this.options.startingSlide)):0;if(this.buttons){this.buttons[this.current].addClass(this.options.activeButtonClass)}this.outerSlidesBox.setStyle("overflow","hidden");this.panes.each(function(e,d){e.setStyles({"float":"left",overflow:"hidden"})}.bind(this));this.innerSlidesBox.setStyle("float","left");if(this.options.startingSlide){this.fx.toElement(this.options.startingSlide)}if(this.buttons){this.buttons.each(function(d){d.addEvent(this.options.activationEvent,this.buttonEventHandler.bindWithEvent(this,d))}.bind(this))}if(this.options.animateHeight){this.heightFx.set(this.panes[this.current].offsetHeight)}this.recalcWidths()},changeTo:function(b,a){if($type(b)=="number"){b=this.panes[b-1]}if(!$defined(a)){a=true}var c={cancel:false,target:$(b),animateChange:a};this.fireEvent("change",c);if(c.cancel==true){return}if(this.buttons&&this.buttons[this.current]){this.buttons[this.current].removeClass(this.options.activeButtonClass)}this.current=this.panes.indexOf($(c.target));if(this.buttons&&this.buttons[this.current]){this.buttons[this.current].addClass(this.options.activeButtonClass)}this.fx.cancel();if(c.animateChange){this.fx.toElement(c.target)}else{this.outerSlidesBox.scrollTo(this.current*this.outerSlidesBox.offsetWidth.toInt(),0)}if(this.options.animateHeight){this.heightFx.get(this.panes[this.current].offsetHeight)}},buttonEventHandler:function(b,a){if(b.target==this.buttons[this.current]){return}this.changeTo(this.panes[this.buttons.indexOf($(a))])},next:function(){var a=this.current+1;if(a==this.panes.length){if(this.options.wrap==true){a=0}else{return}}this.changeTo(this.panes[a])},previous:function(){var a=this.current-1;if(a<0){if(this.options.wrap==true){a=this.panes.length-1}else{return}}this.changeTo(this.panes[a])},recalcWidths:function(){this.panes.each(function(b,a){b.setStyle("width",this.outerSlidesBox.offsetWidth.toInt())}.bind(this));return;this.innerSlidesBox.setStyle("width",(this.outerSlidesBox.offsetWidth.toInt()*this.panes.length)+"px");if(this.current>0){this.fx.cancel();this.outerSlidesBox.scrollTo(this.current*this.outerSlidesBox.offsetWidth.toInt(),0)}}});panes.implement(new Options,new Events);var dwProgressBar=new Class({Implements:[Options],options:{container:$$("body")[0],boxID:"",percentageID:"",displayID:"",startPercentage:0,displayText:false,speed:10},initialize:function(a){this.setOptions(a);this.createElements()},createElements:function(){var b=new Element("div",{id:this.options.boxID});var a=new Element("div",{id:this.options.percentageID,style:"width:0px;"});a.inject(b);b.inject(this.options.container);if(this.options.displayText){var c=new Element("div",{id:this.options.displayID});c.inject(this.options.container)}this.set(this.options.startPercentage)},calculate:function(a){return($(this.options.boxID).getStyle("width").replace("px","")*(a/100)).toInt()},animate:function(a){$(this.options.percentageID).set("morph",{duration:this.options.speed,link:"cancel"}).morph({width:this.calculate(a.toInt())});if(this.options.displayText){$(this.options.displayID).set("text",a.toInt()+"%")}},set:function(a){this.animate(a)}});var Drag=new Class({Implements:[Events,Options],options:{snap:6,unit:"px",grid:false,style:true,limit:false,handle:false,invert:false,preventDefault:false,modifiers:{x:"left",y:"top"}},initialize:function(){var b=Array.link(arguments,{options:Object.type,element:$defined});this.element=$(b.element);this.document=this.element.getDocument();this.setOptions(b.options||{});var a=$type(this.options.handle);this.handles=(a=="array"||a=="collection")?$$(this.options.handle):$(this.options.handle)||this.element;this.mouse={now:{},pos:{}};this.value={start:{},now:{}};this.selection=(Browser.Engine.trident)?"selectstart":"mousedown";this.bound={start:this.start.bind(this),check:this.check.bind(this),drag:this.drag.bind(this),stop:this.stop.bind(this),cancel:this.cancel.bind(this),eventStop:$lambda(false)};this.attach()},attach:function(){this.handles.addEvent("mousedown",this.bound.start);return this},detach:function(){this.handles.removeEvent("mousedown",this.bound.start);return this},start:function(c){if(this.options.preventDefault){c.preventDefault()}this.fireEvent("beforeStart",this.element);this.mouse.start=c.page;var a=this.options.limit;this.limit={x:[],y:[]};for(var d in this.options.modifiers){if(!this.options.modifiers[d]){continue}if(this.options.style){this.value.now[d]=this.element.getStyle(this.options.modifiers[d]).toInt()}else{this.value.now[d]=this.element[this.options.modifiers[d]]}if(this.options.invert){this.value.now[d]*=-1}this.mouse.pos[d]=c.page[d]-this.value.now[d];if(a&&a[d]){for(var b=2;b--;b){if($chk(a[d][b])){this.limit[d][b]=$lambda(a[d][b])()}}}}if($type(this.options.grid)=="number"){this.options.grid={x:this.options.grid,y:this.options.grid}}this.document.addEvents({mousemove:this.bound.check,mouseup:this.bound.cancel});this.document.addEvent(this.selection,this.bound.eventStop)},check:function(a){if(this.options.preventDefault){a.preventDefault()}var b=Math.round(Math.sqrt(Math.pow(a.page.x-this.mouse.start.x,2)+Math.pow(a.page.y-this.mouse.start.y,2)));if(b>this.options.snap){this.cancel();this.document.addEvents({mousemove:this.bound.drag,mouseup:this.bound.stop});this.fireEvent("start",this.element).fireEvent("snap",this.element)}},drag:function(a){if(this.options.preventDefault){a.preventDefault()}this.mouse.now=a.page;for(var b in this.options.modifiers){if(!this.options.modifiers[b]){continue}this.value.now[b]=this.mouse.now[b]-this.mouse.pos[b];if(this.options.invert){this.value.now[b]*=-1}if(this.options.limit&&this.limit[b]){if($chk(this.limit[b][1])&&(this.value.now[b]>this.limit[b][1])){this.value.now[b]=this.limit[b][1]}else{if($chk(this.limit[b][0])&&(this.value.now[b]<this.limit[b][0])){this.value.now[b]=this.limit[b][0]}}}if(this.options.grid[b]){this.value.now[b]-=(this.value.now[b]%this.options.grid[b])}if(this.options.style){this.element.setStyle(this.options.modifiers[b],this.value.now[b]+this.options.unit)}else{this.element[this.options.modifiers[b]]=this.value.now[b]}}this.fireEvent("drag",this.element)},cancel:function(a){this.document.removeEvent("mousemove",this.bound.check);this.document.removeEvent("mouseup",this.bound.cancel);if(a){this.document.removeEvent(this.selection,this.bound.eventStop);this.fireEvent("cancel",this.element)}},stop:function(a){this.document.removeEvent(this.selection,this.bound.eventStop);this.document.removeEvent("mousemove",this.bound.drag);this.document.removeEvent("mouseup",this.bound.stop);if(a){this.fireEvent("complete",this.element)}}});Element.implement({makeResizable:function(a){return new Drag(this,$merge({modifiers:{x:"width",y:"height"}},a))}});Drag.Move=new Class({Extends:Drag,options:{droppables:[],container:false},initialize:function(c,b){this.parent(c,b);this.droppables=$$(this.options.droppables);this.container=$(this.options.container);if(this.container&&$type(this.container)!="element"){this.container=$(this.container.getDocument().body)}c=this.element;var d=c.getStyle("position");var a=(d!="static")?d:"absolute";if(c.getStyle("left")=="auto"||c.getStyle("top")=="auto"){c.position(c.getPosition(c.offsetParent))}c.setStyle("position",a);this.addEvent("start",function(){this.checkDroppables()},true)},start:function(b){if(this.container){var d=this.element,j=this.container,e=j.getCoordinates(d.offsetParent),f={},a={};["top","right","bottom","left"].each(function(k){f[k]=j.getStyle("padding-"+k).toInt();a[k]=d.getStyle("margin-"+k).toInt()},this);var c=d.offsetWidth+a.left+a.right,i=d.offsetHeight+a.top+a.bottom;var h=[e.left+f.left,e.right-f.right-c];var g=[e.top+f.top,e.bottom-f.bottom-i];this.options.limit={x:h,y:g}}this.parent(b)},checkAgainst:function(b){b=b.getCoordinates();var a=this.mouse.now;return(a.x>b.left&&a.x<b.right&&a.y<b.bottom&&a.y>b.top)},checkDroppables:function(){var a=this.droppables.filter(this.checkAgainst,this).getLast();if(this.overed!=a){if(this.overed){this.fireEvent("leave",[this.element,this.overed])}if(a){this.overed=a;this.fireEvent("enter",[this.element,a])}else{this.overed=null}}},drag:function(a){this.parent(a);if(this.droppables.length){this.checkDroppables()}},stop:function(a){this.checkDroppables();this.fireEvent("drop",[this.element,this.overed]);this.overed=null;return this.parent(a)}});Element.implement({makeDraggable:function(a){return new Drag.Move(this,a)}});var Sortables=new Class({Implements:[Events,Options],options:{snap:4,opacity:1,clone:false,revert:false,handle:false,constrain:false},initialize:function(a,b){this.setOptions(b);this.elements=[];this.lists=[];this.idle=true;this.addLists($$($(a)||a));if(!this.options.clone){this.options.revert=false}if(this.options.revert){this.effect=new Fx.Morph(null,$merge({duration:250,link:"cancel"},this.options.revert))}},attach:function(){this.addLists(this.lists);return this},detach:function(){this.lists=this.removeLists(this.lists);return this},addItems:function(){Array.flatten(arguments).each(function(a){this.elements.push(a);var b=a.retrieve("sortables:start",this.start.bindWithEvent(this,a));(this.options.handle?a.getElement(this.options.handle)||a:a).addEvent("mousedown",b)},this);return this},addLists:function(){Array.flatten(arguments).each(function(a){this.lists.push(a);this.addItems(a.getChildren())},this);return this},removeItems:function(){var a=[];Array.flatten(arguments).each(function(b){a.push(b);this.elements.erase(b);var c=b.retrieve("sortables:start");(this.options.handle?b.getElement(this.options.handle)||b:b).removeEvent("mousedown",c)},this);return $$(a)},removeLists:function(){var a=[];Array.flatten(arguments).each(function(b){a.push(b);this.lists.erase(b);this.removeItems(b.getChildren())},this);return $$(a)},getClone:function(b,a){if(!this.options.clone){return new Element("div").inject(document.body)}if($type(this.options.clone)=="function"){return this.options.clone.call(this,b,a,this.list)}return a.clone(true).setStyles({margin:"0px",position:"absolute",visibility:"hidden",width:a.getStyle("width")}).inject(this.list).position(a.getPosition(a.getOffsetParent()))},getDroppables:function(){var a=this.list.getChildren();if(!this.options.constrain){a=this.lists.concat(a).erase(this.list)}return a.erase(this.clone).erase(this.element)},insert:function(c,b){var a="inside";if(this.lists.contains(b)){this.list=b;this.drag.droppables=this.getDroppables()}else{a=this.element.getAllPrevious().contains(b)?"before":"after"}this.element.inject(b,a);this.fireEvent("sort",[this.element,this.clone])},start:function(b,a){if(!this.idle){return}this.idle=false;this.element=a;this.opacity=a.get("opacity");this.list=a.getParent();this.clone=this.getClone(b,a);this.drag=new Drag.Move(this.clone,{snap:this.options.snap,container:this.options.constrain&&this.element.getParent(),droppables:this.getDroppables(),onSnap:function(){b.stop();this.clone.setStyle("visibility","visible");this.element.set("opacity",this.options.opacity||0);this.fireEvent("start",[this.element,this.clone])}.bind(this),onEnter:this.insert.bind(this),onCancel:this.reset.bind(this),onComplete:this.end.bind(this)});this.clone.inject(this.element,"before");this.drag.start(b)},end:function(){this.drag.detach();this.element.set("opacity",this.opacity);if(this.effect){var a=this.element.getStyles("width","height");var b=this.clone.computePosition(this.element.getPosition(this.clone.offsetParent));this.effect.element=this.clone;this.effect.start({top:b.top,left:b.left,width:a.width,height:a.height,opacity:0.25}).chain(this.reset.bind(this))}else{this.reset()}},reset:function(){this.idle=true;this.clone.destroy();this.fireEvent("complete",this.element)},serialize:function(){var c=Array.link(arguments,{modifier:Function.type,index:$defined});var b=this.lists.map(function(d){return d.getChildren().map(c.modifier||function(e){return e.get("id")},this)},this);var a=c.index;if(this.lists.length==1){a=0}return $chk(a)&&a>=0&&a<this.lists.length?b[a]:b}});var Tips=new Class({Implements:[Events,Options],options:{onShow:function(a){a.setStyle("visibility","visible")},onHide:function(a){a.setStyle("visibility","hidden")},showDelay:100,hideDelay:100,className:null,offsets:{x:-100,y:-85},fixed:false},initialize:function(){var c=Array.link(arguments,{options:Object.type,elements:$defined});this.setOptions(c.options||null);this.tip=new Element("div").inject(document.body);if(this.options.className){this.tip.addClass(this.options.className)}var b=new Element("div",{"class":"tip-top"}).inject(this.tip);this.container=new Element("div",{"class":"tip"}).inject(this.tip);var a=new Element("div",{"class":"tip-bottom"}).inject(this.tip);this.tip.setStyles({position:"absolute",top:0,left:0,visibility:"hidden"});if(c.elements){this.attach(c.elements)}},attach:function(a){$$(a).each(function(d){var g=d.retrieve("tip:title",d.get("title"));var f=d.retrieve("tip:text",d.get("rel")||d.get("href"));var e=d.retrieve("tip:enter",this.elementEnter.bindWithEvent(this,d));var c=d.retrieve("tip:leave",this.elementLeave.bindWithEvent(this,d));d.addEvents({mouseenter:e,mouseleave:c});if(!this.options.fixed){var b=d.retrieve("tip:move",this.elementMove.bindWithEvent(this,d));d.addEvent("mousemove",b)}d.store("tip:native",d.get("title"));d.erase("title")},this);return this},detach:function(a){$$(a).each(function(c){c.removeEvent("mouseenter",c.retrieve("tip:enter")||$empty);c.removeEvent("mouseleave",c.retrieve("tip:leave")||$empty);c.removeEvent("mousemove",c.retrieve("tip:move")||$empty);c.eliminate("tip:enter").eliminate("tip:leave").eliminate("tip:move");var b=c.retrieve("tip:native");if(b){c.set("title",b)}});return this},elementEnter:function(b,a){$A(this.container.childNodes).each(Element.dispose);var d=a.retrieve("tip:title");if(d){this.titleElement=new Element("div",{"class":"tip-title"}).inject(this.container);this.fill(this.titleElement,d)}var c=a.retrieve("tip:text");if(c){this.textElement=new Element("div",{"class":"tip-text"}).inject(this.container);this.fill(this.textElement,c)}this.timer=$clear(this.timer);this.timer=this.show.delay(this.options.showDelay,this);this.position((!this.options.fixed)?b:{page:a.getPosition()})},elementLeave:function(a){$clear(this.timer);this.timer=this.hide.delay(this.options.hideDelay,this)},elementMove:function(a){this.position(a)},position:function(d){var b=window.getSize(),a=window.getScroll();var e={x:this.tip.offsetWidth,y:this.tip.offsetHeight};var c={x:"left",y:"top"};for(var f in c){var g=d.page[f]+this.options.offsets[f];if((g+e[f]-a[f])>b[f]){g=d.page[f]-this.options.offsets[f]-e[f]}this.tip.setStyle(c[f],g)}},fill:function(a,b){(typeof b=="string")?a.set("html",b):a.adopt(b)},show:function(){this.fireEvent("show",this.tip)},hide:function(){this.fireEvent("hide",this.tip)}});