/*
 MuseSpryCommon.js - version 0.6 - Spry Pre-Release 1.7

 Copyright (c) 2007. Adobe Systems Incorporated.
 All rights reserved.

 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:

 Redistributions of source code must retain the above copyright notice,
 this list of conditions and the following disclaimer.
 Redistributions in binary form must reproduce the above copyright notice,
 this list of conditions and the following disclaimer in the documentation
 and/or other materials provided with the distribution.
 Neither the name of Adobe Systems Incorporated nor the names of its
 contributors may be used to endorse or promote products derived from this
 software without specific prior written permission.

 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 POSSIBILITY OF SUCH DAMAGE.
*/
(function(){if(typeof Spry=="undefined"||!Spry.Utils||!Spry.$$)alert("MuseSpryCommon.js requires SpryDOMUtils.js");else{if(!Spry.Effect)Spry.Effect={};Spry.Effect.Animator=function(a){Spry.Effect.Animator.Notifier.call(this);this.animatorID=Spry.Effect.Animator.nextID++;this.dropFrames=!0;this.fps=60;this.duration=500;this.currentFrame=this.startTime=this.timer=0;this.easeFunc=Spry.Effect.Animator.defaultEaseFunc;this.stopped=!1;Spry.Effect.Animator.copyProps(this,a);this.interval=1E3/this.fps;this.numFrames=
this.duration/1E3*this.fps;if(this.onComplete){var b=this;this.addObserver({onAnimationComplete:function(){b.onComplete()}})}};Spry.Effect.Animator.nextID=1;Spry.Effect.Animator.copyProps=function(a,b){if(b)for(prop in b)a[prop]=b[prop];return a};Spry.Effect.Animator.getElement=function(a){if(arguments.length>1){for(var b=0,c=[],d=arguments.length;b<d;b++)c.push(Spry.Effect.Animator.getElement(arguments[b]));return c}typeof a=="string"&&(a=document.getElementById(a));return a};Spry.Effect.Animator.defaultEaseFunc=
function(a,b,c,d){a/=d;return b+(2-a)*a*c};Spry.Effect.Animator.Notifier=function(){this.observers=[];this.suppressNotifications=0};Spry.Effect.Animator.Notifier.prototype.addObserver=function(a){if(a){for(var b=this.observers.length,c=0;c<b;c++)if(this.observers[c]==a)return;this.observers[b]=a}};Spry.Effect.Animator.Notifier.prototype.removeObserver=function(a){if(a)for(var b=0;b<this.observers.length;b++)if(this.observers[b]==a){this.observers.splice(b,1);break}};Spry.Effect.Animator.Notifier.prototype.notifyObservers=
function(a,b){if(a&&!this.suppressNotifications)for(var c=this.observers.length,d=0;d<c;d++){var e=this.observers[d];if(e)if(typeof e=="function")e(a,this,b);else if(e[a])e[a](this,b)}};Spry.Effect.Animator.Notifier.prototype.enableNotifications=function(){if(--this.suppressNotifications<0)this.suppressNotifications=0,Spry.Debug.reportError("Unbalanced enableNotifications() call!\n")};Spry.Effect.Animator.Notifier.prototype.disableNotifications=function(){++this.suppressNotifications};Spry.Effect.Animator.prototype=
new Spry.Effect.Animator.Notifier;Spry.Effect.Animator.prototype.constructor=Spry.Effect.Animator;Spry.Effect.Animator.prototype.start=function(){this.stopped=!1;this.currentFrame=0;this.startTime=(new Date).getTime();this.notifyObservers("onAnimationStart");var a=this;this.timer=setTimeout(function(){a.onStepAnimation()},this.interval)};Spry.Effect.Animator.prototype.stop=function(){this.timer&&clearTimeout(this.timer);this.timer=0;this.stopped=!0;this.notifyObservers("onAnimationStopped")};Spry.Effect.Animator.prototype.stepAnimation=
function(a){a={elapsed:a,duration:this.dropFrames?this.duration:this.numFrames,easingConst:1};if(a.elapsed>a.duration)a.elapsed=a.duration;a.easingConst=this.easeFunc(a.elapsed,0,1,a.duration);this.notifyObservers("onPreDraw",a);this.draw(a.elapsed,a.duration,a.easingConst);this.notifyObservers("onPostDraw",a);if(!this.stopped)if(a.elapsed<a.duration){var b=this;this.timer=setTimeout(function(){b.onStepAnimation()},this.interval)}else this.stop(),this.notifyObservers("onAnimationComplete")};Spry.Effect.Animator.prototype.stepAnimationToEnd=
function(){return this.stepAnimation(this.dropFrames?this.duration:this.numFrames)};Spry.Effect.Animator.prototype.onStepAnimation=function(){return this.stepAnimation(this.dropFrames?(new Date).getTime()-this.startTime:++this.currentFrame)};Spry.Effect.Animator.prototype.draw=function(a,b,c){debug.log("elapsed: "+a+" -- duration: "+b+" -- easingConst: "+c)};Spry.Effect.CSSAnimator=function(a,b,c){this.animationSets=[];Spry.Effect.Animator.call(this,c);this.add(a,b)};Spry.Effect.CSSAnimator.prototype=
new Spry.Effect.Animator;Spry.Effect.CSSAnimator.prototype.constructor=Spry.Effect.CSSAnimator;Spry.Effect.CSSAnimator.prototype.add=function(a,b){if(a&&b&&(a=Spry.$$(a),!(a.length<1))){var c={elements:a,cssProps:[]};this.animationSets.push(c);var d=Spry.Utils.styleStringToObject(b),e;for(e in d){var f={},g=d[e];f.value=new Number(g.replace(/[^-\d\.]+/g,""));f.units=g.replace(/[-\d+\.]/g,"");d[e]=f}for(g=0;g<a.length;g++)for(e in f=c.cssProps[g]={},d){var i=Spry.Effect.CSSAnimator.stylePropFuncs[e];
i||(i=Spry.Effect.CSSAnimator.stylePropFuncs["default"]);f[e]={};f[e].from=new Number(i.get(a[g],e).replace(/[^-\d\.]+/g,""));f[e].to=d[e].value;f[e].distance=f[e].to-f[e].from;f[e].units=d[e].units}}};Spry.Effect.CSSAnimator.prototype.start=function(){for(var a=0;a<this.animationSets.length;a++)for(var b=this.animationSets[a],c=b.elements,b=b.cssProps,d=0;d<c.length;d++){var e=c[d],f=e.spryCSSAnimatorProps;if(!f)f=e.spryCSSAnimatorProps={};var e=b[d],g;for(g in e)f[g]=this.animatorID}return Spry.Effect.Animator.prototype.start.call(this)};
Spry.Effect.CSSAnimator.prototype.stop=function(){for(var a=0;a<this.animationSets.length;a++)for(var b=this.animationSets[a],c=b.elements,b=b.cssProps,d=0;d<c.length;d++){var e=b[d],f=c[d].spryCSSAnimatorProps,g;for(g in e)f[g]==this.animatorID&&delete f[g]}return Spry.Effect.Animator.prototype.stop.call(this)};Spry.Effect.CSSAnimator.prototype.draw=function(a,b,c){for(var d=0;d<this.animationSets.length;d++)for(var e=this.animationSets[d],f=e.elements,e=e.cssProps,g=0;g<f.length;g++){var i=f[g],
h=i.spryCSSAnimatorProps,j=e[g],k;for(k in j)if(h[k]==this.animatorID){var l=Spry.Effect.CSSAnimator.stylePropFuncs[k];l||(l=Spry.Effect.CSSAnimator.stylePropFuncs["default"]);a>b?l.set(i,k,j[k].to+j[k].units):l.set(i,k,j[k].from+j[k].distance*c+j[k].units)}}};Spry.Effect.CSSAnimator.stylePropFuncs={};Spry.Effect.CSSAnimator.stylePropFuncs["default"]={get:function(a,b){return a.style[b]},set:function(a,b,c){a.style[b]=c}};Spry.Effect.CSSAnimator.stylePropFuncs.opacity={get:function(a){var b=1;a.style.opacity?
b=a.style.opacity:a.style.filter&&(a=a.style.filter.replace(/.*alpha\(opacity=(\d+)\).*/,"$1"))&&(b=parseInt(a)/100);return b+""},set:function(a,b,c){a.style.opacity=""+c;a.style.filter="alpha(opacity="+c*100+")"}};Spry.$$.Results.defaultEaseFunc=function(a,b,c,d){a/=d;return b+(2-a)*a*c};Spry.$$.Results.animatePropertyTo=function(a,b,c){var d={interval:10,duration:1E3,onComplete:null,transition:Spry.$$.Results.defaultEaseFunc};Spry.Effect.Animator.copyProps(d,c);for(var e=[],c=0;c<this.length;c++){var f=
e[c]={};f.ele=this[c];f.from=f.ele[a];f.distance=b-f.from}var g=(new Date).getTime(),i=function(){var c=(new Date).getTime()-g;if(c>d.duration){for(var f=0;f<e.length;f++)e[f].ele[a]=b;if(d.onComplete)d.onComplete()}else{for(f=0;f<e.length;f++){var k=e[f];k.ele[a]=d.transition(c,k.from,k.distance,d.duration)}setTimeout(i,d.interval)}};setTimeout(i,d.interval);return this};Spry.$$.Results.animateStyleTo=function(a,b){(new Spry.Effect.CSSAnimator(this,a,b)).start();return this};if(!Spry.Widget)Spry.Widget=
{};Spry.Widget.setOptions=function(a,b,c){if(a&&b)for(var d in b){var e=b[d];if(!c||e!=void 0)a[d]=e}return a};Spry.Widget.onLoadDidFire=!1;Spry.Widget.onLoadQueue=[];Spry.Widget.addCallbackToOnLoadQueue=function(a,b){if(a){if(b)var c=a,a=function(){c.call(b)};Spry.Widget.onLoadQueue.push(a)}};Spry.Widget.triggerCallbackAfterOnLoad=function(a,b){Spry.Widget.onLoadDidFire?a.call(b):Spry.Widget.addCallbackToOnLoadQueue(a,b)};Spry.Widget.processOnLoadQueue=function(){Spry.Widget.onLoadDidFire=!0;for(var a=
Spry.Widget.onLoadQueue;a.length;)a.shift()()};Spry.Utils.addLoadListener(Spry.Widget.processOnLoadQueue);Spry.Widget.Base=function(){Spry.Widget.Base.Notifier.call(this)};Spry.Widget.Base.Notifier=function(){this.observers=[];this.suppressNotifications=0};Spry.Widget.Base.Notifier.prototype.addObserver=function(a){if(a){for(var b=this.observers.length,c=0;c<b;c++)if(this.observers[c]==a)return;this.observers[b]=a}};Spry.Widget.Base.Notifier.prototype.removeObserver=function(a){if(a)for(var b=0;b<
this.observers.length;b++)if(this.observers[b]==a){this.observers.splice(b,1);break}};Spry.Widget.Base.Notifier.prototype.notifyObservers=function(a,b){if(a&&!this.suppressNotifications)for(var c=this.observers.length,d=0;d<c;d++){var e=this.observers[d];if(e)if(typeof e=="function")e(a,this,b);else if(e[a])e[a](this,b)}};Spry.Widget.Base.Notifier.prototype.enableNotifications=function(){if(--this.suppressNotifications<0)this.suppressNotifications=0,Spry.Debug.reportError("Unbalanced enableNotifications() call!\n")};
Spry.Widget.Base.Notifier.prototype.disableNotifications=function(){++this.suppressNotifications};Spry.Widget.Base.prototype=new Spry.Widget.Base.Notifier;Spry.Widget.Base.prototype.constructor=Spry.Widget.Base;Spry.Widget.Base.getElement=function(a){return Spry.$(a)};Spry.Widget.Base.getElements=function(a){var b=typeof a;if(b=="string")return Spry.$$(a);else if(b=="object")if(a.constructor==Array){for(var b=[],c=0;c<a.length;c++)b=b.concat(Spry.Widget.Base.getElements(a[c]));return b}else return[a];
return[]};Spry.Widget.Base.getElementsByClassName=function(a,b){var c=[];if(typeof a.getElementsByClassName!="undefined")for(var d=a.getElementsByClassName(b),e=0;e<d.length;e++)c.push(d.item(e));else for(var f=RegExp("\\b"+b+"\\b"),d=a.getElementsByTagName("*"),e=0;e<d.length;e++){var g=d.item(e);g.className.search(f)!=-1&&c.push(g)}return c};Spry.Widget.Base.prototype.getElementChildren=function(a){var b=[];if(a)for(a=a.firstChild;a;)a.nodeType==1&&(a.className.search(/f3s/)!=-1||a.className.search(/f9s/)!=
-1||a.className.search(/position_content/)==0?b=b.concat(this.getElementChildren(a)):a.className!="wrap"&&a.nodeName!="css3-container"&&b.push(a)),a=a.nextSibling;return b};Spry.Widget.Base.prototype.groupContentByDelimeter=function(a){for(var b=[],c=a.length,d=0;d<c;d++){var e=a[d],f=[];f.push(e);for(var g=a[d+1],e=e.nextSibling;e&&e!=g;)f.push(e),e=e.nextSibling;b.push(f)}return b};Spry.Widget.Base.prototype.createElement=function(a,b,c,d){a=document.createElement(a);if(b)a.className=b;c&&c.appendChild(a);
d&&a.appendChild(d);return a};Spry.Widget.Base.prototype.sliceLeftClassStr="Left";Spry.Widget.Base.prototype.sliceRightClassStr="Right";Spry.Widget.Base.prototype.sliceCenterClassStr="Center";Spry.Widget.Base.prototype.sliceTopClassStr="Top";Spry.Widget.Base.prototype.sliceBottomClassStr="Bottom";Spry.Widget.Base.prototype.sliceFuncs={};Spry.Widget.Base.prototype.sliceFuncs["2slice"]=function(a,b,c){a=a?a:document.createElement(b);b=document.createElement(b);this.appendChildNodes(b,this.extractChildNodes(a));
a.appendChild(b);this.addClassName(a,c+this.sliceLeftClassStr);b.className=c+this.sliceRightClassStr;a.contentContainer=b;return a};Spry.Widget.Base.prototype.sliceFuncs["3slice"]=function(a,b,c){var a=a?a:document.createElement(b),d=document.createElement(b),b=document.createElement(b);this.appendChildNodes(b,this.extractChildNodes(a));a.appendChild(d);d.appendChild(b);this.addClassName(a,c+this.sliceLeftClassStr);d.className=c+this.sliceRightClassStr;b.className=c+this.sliceCenterClassStr;a.contentContainer=
b;return a};Spry.Widget.Base.prototype.sliceFuncs["3sliceStacked"]=function(a,b,c){var a=a?a:document.createElement(b),d=document.createElement(b),e=document.createElement(b),b=document.createElement(b);this.appendChildNodes(e,this.extractChildNodes(a));a.appendChild(d);a.appendChild(e);a.appendChild(b);this.addClassName(a,c);d.className=c+this.sliceLeftClassStr;e.className=c+this.sliceCenterClassStr;b.className=c+this.sliceRightClassStr;a.contentContainer=e;return a};Spry.Widget.Base.prototype.sliceFuncs["9slice"]=
function(a,b,c){a||(a=document.createElement(b));this.addClassName(a,c);var d=this.create3SliceStructure(null,b,c+this.sliceTopClassStr),e=this.create3SliceStructure(null,b,c),b=this.create3SliceStructure(null,b,c+this.sliceBottomClassStr);this.appendChildNodes(e.contentContainer,this.extractChildNodes(a));a.appendChild(d);a.appendChild(e);a.appendChild(b);d=e.contentContainer;a.contentContainer=d;return d.rootContainer=a};Spry.Widget.Base.prototype.create3SliceStructure=Spry.Widget.Base.prototype.sliceFuncs["3slice"];
Spry.Widget.Base.prototype.create9SliceStructure=Spry.Widget.Base.prototype.sliceFuncs["9slice"];Spry.Widget.Base.prototype.createOptionalSlicedStructure=function(a,b,c,d,e){var f;d||(d=this.sliceMap?this.sliceMap:{});e||(e=b);f=(d=d[c])?d:"none",d=f;a||(a=document.createElement(b));this.addClassName(a,c);b=(c||"").split(/\s+/)[0];(c=this.sliceFuncs[d])?a=c.call(this,a,e,b):a.contentContainer=a;return a};Spry.Widget.Base.prototype.extractChildNodes=function(a){for(var b=[];a.firstChild;){var c=a.firstChild;
b.push(c);a.removeChild(c)}return b};Spry.Widget.Base.prototype.appendChildNodes=function(a,b){for(var c=0;c<b.length;c++)a.appendChild(b[c])};Spry.Widget.Base.prototype.setOptions=Spry.Widget.setOptions;Spry.Widget.Base.prototype.getOnLoadDidFire=function(){return Spry.Widget.onLoadDidFire};Spry.Widget.Base.prototype.addCallbackToOnLoadQueue=Spry.Widget.addCallbackToOnLoadQueue;Spry.Widget.Base.prototype.triggerCallbackAfterOnLoad=Spry.Widget.triggerCallbackAfterOnLoad;Spry.Widget.Base.prototype.getElement=
Spry.Widget.Base.getElement;Spry.Widget.Base.prototype.getElements=Spry.Widget.Base.getElements;Spry.Widget.Base.prototype.addClassName=Spry.Utils.addClassName;Spry.Widget.Base.prototype.hasClassName=Spry.Utils.hasClassName;Spry.Widget.Base.prototype.removeClassName=Spry.Utils.removeClassName;Spry.Widget.Base.prototype.addEventListener=Spry.Utils.addEventListener;Spry.Widget.Base.prototype.removeEventListener=Spry.Utils.removeEventListener;Spry.Widget.Base.prototype.indexOf=function(a,b){if(a){if(a.indexOf)return a.indexOf(b);
for(var c=0;c<a.length;c++)if(a[c]==b)return c}return-1};Spry.Widget.Base.prototype.initializePlugIns=function(a,b){var c=new Spry.Widget.Event(this);this.notifyObservers("onPreInitializePlugIns",c);if(c.performDefaultAction){for(var d=b?b:{},e=[],d=((typeof d.useDefaultPlugIns=="undefined"||d.useDefaultPlugIns)&&a?a:[]).concat(d.plugIns?d.plugIns:[]),f=0;f<d.length;f++){var g=d[f];this.indexOf(e,g)<0&&e.push(g)}this.plugIns=e=e.sort(function(a,b){return(typeof a.priority=="undefined"?50:a.priority)-
(typeof b.priority=="undefined"?50:b.priority)});for(f=0;e&&f<e.length;f++)e[f].initialize&&e[f].initialize(this);this.notifyObservers("onPostInitializePlugIns",c)}};Spry.Widget.Base.prototype.getClientPosition=function(a){var b={};b.x=a.offsetLeft;b.y=a.offsetTop;for(a=a.offsetParent;a;)b.x+=a.offsetLeft,b.y+=a.offsetTop,a=a.offsetParent;return b};Spry.Widget.Base.prototype.getStyleProp=function(a,b){var c,d=Spry.Utils.camelizeString(b);try{if(a.style&&(c=a.style[d]),!c)if(document.defaultView&&
document.defaultView.getComputedStyle){var e=document.defaultView.getComputedStyle(a,null);c=e?e.getPropertyValue(b):null}else a.currentStyle&&(c=a.currentStyle[d])}catch(f){}return c=="auto"?null:c};Spry.Widget.Base.prototype.makePositioned=function(a){var b=this.getStyleProp(a,"position");if(!b||b=="static")if(a.style.position="relative",window.opera)a.style.top=0,a.style.left=0};Spry.Widget.Base.prototype.clearIEAlphaFilter=function(a){var b=a.style.filter;b?(b=b.replace(/alpha\([^\)]*\)/,""),
b=b.replace(/^\s+|\s+$/,""),a.style.filter=b):b="";return b};Spry.Widget.Base.prototype.setOpacity=function(a,b){a.style.opacity=""+b;var c=this.clearIEAlphaFilter(a);c&&(c+=" ");a.style.filter=c+"alpha(opacity="+b*100+")"};Spry.Widget.Event=function(a,b){this.widget=a;Spry.Widget.setOptions(this,b);this.performDefaultAction=!0};Spry.Widget.Event.prototype.preventDefault=function(){this.performDefaultAction=!1};Spry.Widget.Button=function(a,b){Spry.Widget.Base.call(this);this.element=Spry.$$(a)[0];
this.setOptions(this,Spry.Widget.Button.config);this.setOptions(this,b);var c=this;this.addEventListener(this.element,"mousedown",function(a){return c.handleMouseDown(a)},!1);this.addEventListener(this.element,"mouseover",function(a){return c.handleMouseOver(a)},!1);this.addEventListener(this.element,"mouseout",function(a){return c.handleMouseOut(a)},!1);if(this.focusElement=this.getFocusElement(this.element))this.addEventListener(this.focusElement,"focus",function(a){return c.handleFocus(a)},!1),
this.addEventListener(this.focusElement,"blur",function(a){return c.handleBlur(a)},!1),this.addEventListener(this.focusElement,"keydown",function(a){return c.handleKeyDown(a)},!1);this.addEventListener(this.element,"click",function(){return!1},!1);this.mouseUpCallback=function(a){return c.handleMouseUp(a)}};Spry.Widget.Button.config={disabled:!1,mouseOutCancelsClick:!0,onclick:null,downClass:"ButtonDown",hoverClass:"ButtonHover",disabledClass:"ButtonDisabled",focusedClass:"ButtonFocused"};Spry.Widget.Button.prototype=
new Spry.Widget.Base;Spry.Widget.Button.prototype.constructor=Spry.Widget.Button;Spry.Widget.Button.prototype.handleMouseDown=function(a){if(this.disabled)return!1;this.addClassName(this.element,this.downClass);this.addEventListener(document,"mouseup",this.mouseUpCallback,!0);this.notifyObservers("onButtonDown",{event:a})};Spry.Widget.Button.prototype.handleMouseUp=function(a){if(this.disabled)return!1;this.removeClassName(this.element,this.downClass);this.removeEventListener(document,"mouseup",this.mouseUpCallback,
!0);if(this.onclick)this.onclick(a);this.notifyObservers("onButtonUp");this.notifyObservers("onButtonClick")};Spry.Widget.Button.prototype.handleMouseOver=function(){if(this.disabled)return!1;this.addClassName(this.element,this.hoverClass);this.notifyObservers("onButtonEnter")};Spry.Widget.Button.prototype.handleMouseOut=function(){if(this.disabled)return!1;var a=this.element;this.removeClassName(a,this.hoverClass);this.mouseOutCancelsClick&&(this.removeClassName(a,this.downClass),this.removeEventListener(document,
"mouseup",this.mouseUpCallback,!0));this.notifyObservers("onButtonExit")};Spry.Widget.Button.prototype.handleFocus=function(){if(this.disabled)return!1;this.addClassName(this.element,this.focusedClass);this.notifyObservers("onButtonFocused")};Spry.Widget.Button.prototype.handleBlur=function(){if(this.disabled)return!1;this.removeClassName(this.element,this.focusedClass);this.notifyObservers("onButtonBlur")};Spry.Widget.Button.prototype.handleKeyDown=function(a){if(this.disabled)return!1;this.notifyObservers("onButtonKeyDown",
{event:a,element:this.element})};Spry.Widget.Button.prototype.getFocusElement=function(a){var b=null,c=null,d=null;Spry.Utils.preorderTraversal(a,function(b){if(b.nodeType==1){if(a.attributes.getNamedItem("tabindex"))return c=b,!0;!d&&b.nodeName.toLowerCase()=="a"&&(d=b)}return!1});c?b=c:d&&(b=d);return b};Spry.Widget.Button.prototype.disable=function(){this.disabled=!0;this.removeClassName(this.element,this.downClass);this.removeClassName(this.element,this.hoverClass);this.addClassName(this.element,
this.disabledClass);this.removeEventListener(document,"mouseup",this.mouseUpCallback,!0)};Spry.Widget.Button.prototype.enable=function(){this.disabled=!1;this.removeClassName(this.element,this.disabledClass)};Spry.Widget.Button.prototype.focus=function(){if(this.disabled)return!1;this.focusElement&&this.focusElement.focus()};Spry.Widget.PanelSet=function(a,b){var c=this;Spry.Widget.Base.call(this);this.elements=a?Spry.$$(a):[];this.currentPanel=null;this.displayTimerID=0;this.slideShowPlaying=!1;
this.slideShowCallback=function(){c.showNextPanel({isSlideShowPanelChange:!0});c.startTimer()};this.setOptions(this,Spry.Widget.PanelSet.config);this.setOptions(this,b);if(typeof this.defaultPanel=="number"&&this.defaultPanel>=0){var d=this.getPanelCount();if(this.defaultPanel>=d)this.defaultPanel=d>1?d-1:0}this.addObserver({onPostShowPanel:function(a){c.isPlaying()&&!a.isSlideShowPanelChange&&(c.exitSlideShowModeOnPanelChange?c.stop():c.startTimer())}});this.initialize()};Spry.Widget.PanelSet.prototype=
new Spry.Widget.Base;Spry.Widget.PanelSet.prototype.constructor=Spry.Widget.PanelSet;Spry.Widget.PanelSet.config={defaultPanel:0,autoPlay:!1,displayInterval:4E3,exitSlideShowModeOnPanelChange:!1,visibleClass:"PanelVisible",hiddenClass:"PanelHidden"};Spry.Widget.PanelSet.prototype.initialize=function(){var a=new Spry.Widget.Event(this);this.notifyObservers("onPreInitialize",a);if(a.performDefaultAction){this.defaultPanel=this.indexToElement(this.defaultPanel);for(var b=this.getPanels(),c=0;c<b.length;c++){var d=
b[c],e=this.hiddenClass,f=this.visibleClass;if(d==this.defaultPanel)e=this.visibleClass,f=this.hiddenClass,this.currentPanel=this.defaultPanel;Spry.Utils.addClassName(d,e);Spry.Utils.removeClassName(d,f)}this.autoPlay&&this.play();this.notifyObservers("onPostInitialize",a)}};Spry.Widget.PanelSet.prototype.getPanels=function(){return this.elements.slice(0)};Spry.Widget.PanelSet.prototype.getPanelCount=function(){return this.getPanels().length};Spry.Widget.PanelSet.prototype.getCurrentPanel=function(){return this.currentPanel};
Spry.Widget.PanelSet.prototype.getCurrentPanelIndex=function(){return this.getPanelIndex(this.getCurrentPanel())};Spry.Widget.PanelSet.prototype.getPanelIndex=function(a){for(var b=this.getPanels(),c=0;c<b.length;c++)if(a==b[c])return c;return-1};Spry.Widget.PanelSet.prototype.getPanel=function(a){return this.getPanels()[a]};Spry.Widget.PanelSet.prototype.indexToElement=function(a){if(typeof a=="number")return this.getPanels()[a];return a?Spry.$$(a)[0]:a};Spry.Widget.PanelSet.prototype.elementToIndex=
function(a){var b=this.getPanels();if(typeof a=="number")return b[a];typeof a=="string"&&(a=Spry.$$(a)[0]);return!a?-1:b.indexOf(a)};Spry.Widget.PanelSet.prototype.createEvent=function(a,b){var c={target:a,targetIndex:this.getPanelIndex(a)};return new Spry.Widget.Event(this,this.setOptions(c,b))};Spry.Widget.PanelSet.prototype.showPanel=function(a,b){var c=this.indexToElement(a),b=b||{};if(c&&c!=this.currentPanel){var d=this.createEvent(c,{currentPanel:this.currentPanel,isSlideShowPanelChange:b.isSlideShowPanelChange||
!1});this.notifyObservers("onPreShowPanel",d);if(d.performDefaultAction)this.currentPanel&&this.hidePanel(this.currentPanel),this.currentPanel=c,Spry.Utils.addClassName(c,this.visibleClass),Spry.Utils.removeClassName(c,this.hiddenClass),this.notifyObservers("onPostShowPanel",d)}};Spry.Widget.PanelSet.prototype.hidePanel=function(){var a=this.createEvent(this.currentPanel);this.notifyObservers("onPreHidePanel",a);if(a.performDefaultAction){var b=this.currentPanel;Spry.Utils.addClassName(b,this.hiddenClass);
Spry.Utils.removeClassName(b,this.visibleClass);this.currentPanel=null;this.notifyObservers("onPostHidePanel",a)}};Spry.Widget.PanelSet.prototype.showPreviousPanel=function(a){var b=new Spry.Widget.Event(this);this.notifyObservers("onPreShowPreviousPanel",b);if(b.performDefaultAction){var c=this.getCurrentPanelIndex();this.showPanel((c<1?this.getPanelCount():c)-1,a);this.notifyObservers("onPostShowPreviousPanel",b)}};Spry.Widget.PanelSet.prototype.showNextPanel=function(a){var b=new Spry.Widget.Event(this);
this.notifyObservers("onPreShowNextPanel",b);b.performDefaultAction&&(this.showPanel((this.getCurrentPanelIndex()+1)%this.getPanelCount(),a),this.notifyObservers("onPostShowNextPanel",b))};Spry.Widget.PanelSet.prototype.showFirstPanel=function(){var a=new Spry.Widget.Event(this);this.notifyObservers("onPreShowFirstPanel",a);a.performDefaultAction&&(this.showPanel(0),this.notifyObservers("onPostShowFirstPanel",a))};Spry.Widget.PanelSet.prototype.showLastPanel=function(){var a=new Spry.Widget.Event(this);
this.notifyObservers("onPreShowLastPanel",a);if(a.performDefaultAction){var b=this.getPanelCount();this.showPanel(b>0?b-1:0);this.notifyObservers("onPostShowLastPanel",a)}};Spry.Widget.PanelSet.prototype.startTimer=function(){this.stopTimer();this.displayTimerID=setTimeout(this.slideShowCallback,this.displayInterval)};Spry.Widget.PanelSet.prototype.stopTimer=function(){this.displayTimerID&&clearTimeout(this.displayTimerID);this.displayTimerID=0};Spry.Widget.PanelSet.prototype.isPlaying=function(){return this.slideShowPlaying};
Spry.Widget.PanelSet.prototype.play=function(){var a=new Spry.Widget.Event(this);this.notifyObservers("onPreStartSlideShowMode",a);if(a.performDefaultAction)this.startTimer(),this.slideShowPlaying=!0,this.notifyObservers("onPostStartSlideShowMode",a)};Spry.Widget.PanelSet.prototype.stop=function(){var a=new Spry.Widget.Event(this);this.notifyObservers("onPreStopSlideShowMode",a);if(a.performDefaultAction)this.stopTimer(),this.slideShowPlaying=!1,this.notifyObservers("onPostStopSlideShowMode",a)};
Spry.Widget.PanelSelector=function(a,b,c){Spry.Widget.Base.call(this);this.buttons=Spry.$$(a);this.panel=b;this.disablePanelCallbacks=0;this.currentButton=null;this.setOptions(this,Spry.Widget.PanelSelector.config);this.setOptions(this,c);if(typeof this.defaultButton=="number"&&this.defaultButton>=0&&(a=this.getButtonCount(),this.defaultButton>=a))this.defaultButton=a>1?a-1:0;this.attachBehaviors()};Spry.Widget.PanelSelector.config={event:"click",defaultButton:0,canCloseAll:!1,useHrefs:!1,selectedClass:"PanelSelectorButtonSelected",
unselectedClass:"PanelSelectorButtonUnselected",downClass:"PanelSelectorButtonDown",disabledClass:"PanelSelectorButtonDisabled",hoverClass:"PanelSelectorButtonHover",focusedClass:"PanelSelectorButtonFocused"};Spry.Widget.PanelSelector.prototype=new Spry.Widget.Base;Spry.Widget.PanelSelector.prototype.constructor=Spry.Widget.PanelSelector;Spry.Widget.PanelSelector.prototype.getPanelIDFromHREF=function(a){if(a&&(a=a.getAttribute("href"),a!=void 0&&a.search(/^#\w/)!=-1))return a.replace(/.*#/,"#");return null};
Spry.Widget.PanelSelector.prototype.getButtonCount=function(){return this.buttons.length};Spry.Widget.PanelSelector.prototype.getCurrentButton=function(){return this.currentButton};Spry.Widget.PanelSelector.prototype.getCurrentButtonIndex=function(){return this.elementToIndex(this.getCurrentButton())};Spry.Widget.PanelSelector.prototype.elementToIndex=function(a){for(var b=this.buttons,c=b.length,d=0;d<c;d++)if(b[d]==a)return d;return-1};Spry.Widget.PanelSelector.prototype.indexToElement=function(a){return typeof a==
"number"?this.buttons[a]:a};Spry.Widget.PanelSelector.prototype.enableButton=function(a){(a=this.indexToElement(a))&&a.psButton&&a.psButton.enable()};Spry.Widget.PanelSelector.prototype.disableButton=function(a){(a=this.indexToElement(a))&&a.psButton&&a.psButton.disable()};Spry.Widget.PanelSelector.prototype.focusButton=function(a){(a=this.indexToElement(a))&&a.psButton&&a.psButton.focus()};Spry.Widget.PanelSelector.prototype.selectButton=function(a,b){++this.disablePanelCallbacks;var c=this.buttons,
d=this.indexToElement(a);if(d)if(this.currentButton==d&&this.canCloseAll){this.currentButton=null;this.panel.hidePanel(this.elementToIndex(d));for(e=0;e<c.length;e++)f=c[e],this.removeClassName(f,this.selectedClass),this.addClassName(f,this.unselectedClass)}else{for(e=0;e<c.length;e++)f=c[e],this.removeClassName(f,f==d?this.unselectedClass:this.selectedClass),this.addClassName(f,f==d?this.selectedClass:this.unselectedClass);this.currentButton=d;!b&&this.panel&&(c=this.useHrefs?this.getPanelIDFromHREF(d):
null,this.panel.showPanel(c?c:this.elementToIndex(d)))}else{this.currentButton=null;for(var e=0;e<c.length;e++){var f=c[e];this.removeClassName(f,this.selectedClass);this.addClassName(f,this.unselectedClass)}}--this.disablePanelCallbacks};Spry.Widget.PanelSelector.prototype.selectPreviousButton=function(){var a=new Spry.Widget.Event(this);this.notifyObservers("onPrePanelSelectorSelectPreviousButton",a);if(a.performDefaultAction){var b=this.getCurrentButtonIndex();this.handleActivate((b<1?this.getButtonCount():
b)-1);this.notifyObservers("onPostPanelSelectorSelectPreviousButton",a)}};Spry.Widget.PanelSelector.prototype.selectNextButton=function(){var a=new Spry.Widget.Event(this);this.notifyObservers("onPrePanelSelectorSelectNextButton",a);a.performDefaultAction&&(this.handleActivate((this.getCurrentButtonIndex()+1)%this.getButtonCount()),this.notifyObservers("onPostPanelSelectorSelectNextButton",a))};Spry.Widget.PanelSelector.prototype.selectFirstButton=function(){var a=new Spry.Widget.Event(this);this.notifyObservers("onPrePanelSelectorSelectFirstButton",
a);a.performDefaultAction&&(this.handleActivate(0),this.notifyObservers("onPostPanelSelectorSelectFirstButton",a))};Spry.Widget.PanelSelector.prototype.selectLastButton=function(){var a=new Spry.Widget.Event(this);this.notifyObservers("onPrePanelSelectorSelectLastButton",a);if(a.performDefaultAction){var b=this.getButtonCount();this.handleActivate(b>0?b-1:0);this.notifyObservers("onPostPanelSelectorSelectLastButton",a)}};Spry.Widget.PanelSelector.prototype.handleActivate=function(a){typeof a=="string"&&
(a=document.getElementById(a));var b=new Spry.Widget.Event(this,{target:a,targetIndex:this.elementToIndex(a)});this.notifyObservers("onPrePanelSelectorClick",b);b.performDefaultAction&&(this.selectButton(a),this.notifyObservers("onPostPanelSelectorClick",b))};Spry.Widget.PanelSelector.prototype.handlePanelChange=function(a){if(!this.disablePanelCallbacks&&this.panel){var b=a.target.id,c=this.buttons,a=c[a.targetIndex];if(b)for(var d=0;!a&&d<c.length;d++){var e=c[d];if(this.getPanelIDFromHREF(e)==
b){a=e;break}}a&&this.selectButton(a,!0)}};Spry.Widget.PanelSelector.prototype.attachButtonBehaviors=function(a){var b=this,c=function(){b.handleActivate(a);return!1};a.psButton=new Spry.Widget.Button(a,{onclick:c,downClass:this.downClass,hoverClass:this.hoverClass,disabledClass:this.disabledClass,focusedClass:this.focusedClass});this.event!="click"&&this.addEventListener(a,this.event,c,!1)};Spry.Widget.PanelSelector.prototype.attachBehaviors=function(){for(var a=this,b=this.buttons,c=0;c<b.length;c++)this.attachButtonBehaviors(b[c]);
this.panel&&this.panel.addObserver({onPostShowPanel:function(b,c){a.handlePanelChange(c)}});this.selectButton(this.defaultButton)}}})();

