(function(){if(typeof Spry=="undefined")window.Spry={};if(!Spry.Widget)Spry.Widget={};Spry.BrowserSniff=function()
{var b=navigator.appName.toString();var up=navigator.platform.toString();var ua=navigator.userAgent.toString();this.mozilla=this.ie=this.opera=this.safari=false;var re_opera=/Opera.([0-9\.]*)/i;var re_msie=/MSIE.([0-9\.]*)/i;var re_gecko=/gecko/i;var re_safari=/(applewebkit|safari)\/([\d\.]*)/i;var r=false;if((r=ua.match(re_opera))){this.opera=true;this.version=parseFloat(r[1]);}else if((r=ua.match(re_msie))){this.ie=true;this.version=parseFloat(r[1]);}else if((r=ua.match(re_safari))){this.safari=true;this.version=parseFloat(r[2]);}else if(ua.match(re_gecko)){var re_gecko_version=/rv:\s*([0-9\.]+)/i;r=ua.match(re_gecko_version);this.mozilla=true;this.version=parseFloat(r[1]);}
this.windows=this.mac=this.linux=false;this.Platform=ua.match(/windows/i)?"windows":(ua.match(/linux/i)?"linux":(ua.match(/mac/i)?"mac":ua.match(/unix/i)?"unix":"unknown"));this[this.Platform]=true;this.v=this.version;if(this.safari&&this.mac&&this.mozilla){this.mozilla=false;}};Spry.is=new Spry.BrowserSniff();Spry.Widget.MenuBar=function(element,opts)
{this.init(element,opts);};Spry.Widget.MenuBar.prototype.init=function(element,opts)
{this.element=this.getElement(element);this.currMenu=null;this.showDelay=50;this.hideDelay=150;if(typeof document.getElementById=='undefined'||(navigator.vendor=='Apple Computer, Inc.'&&typeof window.XMLHttpRequest=='undefined')||(Spry.is.ie&&typeof document.uniqueID=='undefined'))
{return;}
if(Spry.is.ie&&Spry.is.version<7){try{document.execCommand("BackgroundImageCache",false,true);}catch(err){}}
this.upKeyCode=Spry.Widget.MenuBar.KEY_UP;this.downKeyCode=Spry.Widget.MenuBar.KEY_DOWN;this.leftKeyCode=Spry.Widget.MenuBar.KEY_LEFT;this.rightKeyCode=Spry.Widget.MenuBar.KEY_RIGHT;this.escKeyCode=Spry.Widget.MenuBar.KEY_ESC;this.hoverClass='MenuBarItemHover';this.subHoverClass='MenuBarItemSubmenuHover';this.subVisibleClass='MenuBarSubmenuVisible';this.hasSubClass='MenuBarItemSubmenu';this.activeClass='MenuBarActive';this.isieClass='MenuBarItemIE';this.verticalClass='MenuBarVertical';this.horizontalClass='MenuBarHorizontal';this.enableKeyboardNavigation=true;this.hasFocus=false;if(opts)
{for(var k in opts)
{if(typeof this[k]=='undefined')
{var rollover=new Image;rollover.src=opts[k];}}
Spry.Widget.MenuBar.setOptions(this,opts);}
if(Spry.is.safari)
this.enableKeyboardNavigation=false;if(this.element)
{this.currMenu=this.element;var items=this.element.getElementsByTagName('li');for(var i=0;i<items.length;i++)
{if(i>0&&this.enableKeyboardNavigation)
items[i].getElementsByTagName('a')[0].tabIndex='-1';this.initialize(items[i],element);if(Spry.is.ie)
{this.addClassName(items[i],this.isieClass);items[i].style.position="static";}}
if(this.enableKeyboardNavigation)
{var self=this;this.addEventListener(document,'keydown',function(e){self.keyDown(e);},false);}
if(Spry.is.ie)
{if(this.hasClassName(this.element,this.verticalClass))
{this.element.style.position="relative";}
var linkitems=this.element.getElementsByTagName('a');for(var i=0;i<linkitems.length;i++)
{linkitems[i].style.position="relative";}}}};Spry.Widget.MenuBar.KEY_ESC=27;Spry.Widget.MenuBar.KEY_UP=38;Spry.Widget.MenuBar.KEY_DOWN=40;Spry.Widget.MenuBar.KEY_LEFT=37;Spry.Widget.MenuBar.KEY_RIGHT=39;Spry.Widget.MenuBar.prototype.getElement=function(ele)
{if(ele&&typeof ele=="string")
return document.getElementById(ele);return ele;};Spry.Widget.MenuBar.prototype.hasClassName=function(ele,className)
{if(!ele||!className||!ele.className||ele.className.search(new RegExp("\\b"+className+"\\b"))==-1)
{return false;}
return true;};Spry.Widget.MenuBar.prototype.addClassName=function(ele,className)
{if(!ele||!className||this.hasClassName(ele,className))
return;ele.className+=(ele.className?" ":"")+className;};Spry.Widget.MenuBar.prototype.removeClassName=function(ele,className)
{if(!ele||!className||!this.hasClassName(ele,className))
return;ele.className=ele.className.replace(new RegExp("\\s*\\b"+className+"\\b","g"),"");};Spry.Widget.MenuBar.prototype.addEventListener=function(element,eventType,handler,capture)
{try
{if(element.addEventListener)
{element.addEventListener(eventType,handler,capture);}
else if(element.attachEvent)
{element.attachEvent('on'+eventType,handler);}}
catch(e){}};Spry.Widget.MenuBar.prototype.createIframeLayer=function(menu)
{var layer=document.createElement('iframe');layer.tabIndex='-1';layer.src='javascript:""';layer.frameBorder='0';layer.scrolling='no';menu.parentNode.appendChild(layer);layer.style.left=menu.offsetLeft+'px';layer.style.top=menu.offsetTop+'px';layer.style.width=menu.offsetWidth+'px';layer.style.height=menu.offsetHeight+'px';};Spry.Widget.MenuBar.prototype.removeIframeLayer=function(menu)
{var layers=((menu==this.element)?menu:menu.parentNode).getElementsByTagName('iframe');while(layers.length>0)
{layers[0].parentNode.removeChild(layers[0]);}};Spry.Widget.MenuBar.prototype.clearMenus=function(root)
{var menus=root.getElementsByTagName('ul');for(var i=0;i<menus.length;i++)
this.hideSubmenu(menus[i]);this.removeClassName(this.element,this.activeClass);};Spry.Widget.MenuBar.prototype.bubbledTextEvent=function()
{return Spry.is.safari&&(event.target==event.relatedTarget.parentNode||(event.eventPhase==3&&event.target.parentNode==event.relatedTarget));};Spry.Widget.MenuBar.prototype.showSubmenu=function(menu)
{if(this.currMenu)
{this.clearMenus(this.currMenu);this.currMenu=null;}
if(menu)
{this.addClassName(menu,this.subVisibleClass);if(typeof document.all!='undefined'&&!Spry.is.opera&&navigator.vendor!='KDE')
{if(!this.hasClassName(this.element,this.horizontalClass)||menu.parentNode.parentNode!=this.element)
{menu.style.top=menu.parentNode.offsetTop+'px';}}
if(Spry.is.ie&&Spry.is.version<7)
{this.createIframeLayer(menu);}}
this.addClassName(this.element,this.activeClass);};Spry.Widget.MenuBar.prototype.hideSubmenu=function(menu)
{if(menu)
{this.removeClassName(menu,this.subVisibleClass);if(typeof document.all!='undefined'&&!Spry.is.opera&&navigator.vendor!='KDE')
{menu.style.top='';menu.style.left='';}
if(Spry.is.ie&&Spry.is.version<7)
this.removeIframeLayer(menu);}};Spry.Widget.MenuBar.prototype.initialize=function(listitem,element)
{var opentime,closetime;var link=listitem.getElementsByTagName('a')[0];var submenus=listitem.getElementsByTagName('ul');var menu=(submenus.length>0?submenus[0]:null);if(menu)
this.addClassName(link,this.hasSubClass);if(!Spry.is.ie)
{listitem.contains=function(testNode)
{if(testNode==null)
return false;if(testNode==this)
return true;else
return this.contains(testNode.parentNode);};}
var self=this;this.addEventListener(listitem,'mouseover',function(e){self.mouseOver(listitem,e);},false);this.addEventListener(listitem,'mouseout',function(e){if(self.enableKeyboardNavigation)self.clearSelection();self.mouseOut(listitem,e);},false);if(this.enableKeyboardNavigation)
{this.addEventListener(link,'blur',function(e){self.onBlur(listitem);},false);this.addEventListener(link,'focus',function(e){self.keyFocus(listitem,e);},false);}};Spry.Widget.MenuBar.prototype.keyFocus=function(listitem,e)
{this.lastOpen=listitem.getElementsByTagName('a')[0];this.addClassName(this.lastOpen,listitem.getElementsByTagName('ul').length>0?this.subHoverClass:this.hoverClass);this.hasFocus=true;};Spry.Widget.MenuBar.prototype.onBlur=function(listitem)
{this.clearSelection(listitem);};Spry.Widget.MenuBar.prototype.clearSelection=function(el){if(!this.lastOpen)
return;if(el)
{el=el.getElementsByTagName('a')[0];var item=this.lastOpen;while(item!=this.element)
{var tmp=el;while(tmp!=this.element)
{if(tmp==item)
return;try{tmp=tmp.parentNode;}catch(err){break;}}
item=item.parentNode;}}
var item=this.lastOpen;while(item!=this.element)
{this.hideSubmenu(item.parentNode);var link=item.getElementsByTagName('a')[0];this.removeClassName(link,this.hoverClass);this.removeClassName(link,this.subHoverClass);item=item.parentNode;}
this.lastOpen=false;};Spry.Widget.MenuBar.prototype.keyDown=function(e)
{if(!this.hasFocus)
return;if(!this.lastOpen)
{this.hasFocus=false;return;}
var e=e||event;var listitem=this.lastOpen.parentNode;var link=this.lastOpen;var submenus=listitem.getElementsByTagName('ul');var menu=(submenus.length>0?submenus[0]:null);var hasSubMenu=(menu)?true:false;var opts=[listitem,menu,null,this.getSibling(listitem,'previousSibling'),this.getSibling(listitem,'nextSibling')];if(!opts[3])
opts[2]=(listitem.parentNode.parentNode.nodeName.toLowerCase()=='li')?listitem.parentNode.parentNode:null;var found=0;switch(e.keyCode){case this.upKeyCode:found=this.getElementForKey(opts,'y',1);break;case this.downKeyCode:found=this.getElementForKey(opts,'y',-1);break;case this.leftKeyCode:found=this.getElementForKey(opts,'x',1);break;case this.rightKeyCode:found=this.getElementForKey(opts,'x',-1);break;case this.escKeyCode:case 9:this.clearSelection();this.hasFocus=false;default:return;}
switch(found)
{case 0:return;case 1:this.mouseOver(listitem,e);break;case 2:this.mouseOut(opts[2],e);break;case 3:case 4:this.removeClassName(link,hasSubMenu?this.subHoverClass:this.hoverClass);break;}
var link=opts[found].getElementsByTagName('a')[0];if(opts[found].nodeName.toLowerCase()=='ul')
opts[found]=opts[found].getElementsByTagName('li')[0];this.addClassName(link,opts[found].getElementsByTagName('ul').length>0?this.subHoverClass:this.hoverClass);this.lastOpen=link;opts[found].getElementsByTagName('a')[0].focus();return Spry.Widget.MenuBar.stopPropagation(e);};Spry.Widget.MenuBar.prototype.mouseOver=function(listitem,e)
{var link=listitem.getElementsByTagName('a')[0];var submenus=listitem.getElementsByTagName('ul');var menu=(submenus.length>0?submenus[0]:null);var hasSubMenu=(menu)?true:false;if(this.enableKeyboardNavigation)
this.clearSelection(listitem);if(this.bubbledTextEvent())
{return;}
if(listitem.closetime)
clearTimeout(listitem.closetime);if(this.currMenu==listitem)
{this.currMenu=null;}
if(this.hasFocus)
link.focus();this.addClassName(link,hasSubMenu?this.subHoverClass:this.hoverClass);this.lastOpen=link;if(menu&&!this.hasClassName(menu,this.subHoverClass))
{var self=this;listitem.opentime=window.setTimeout(function(){self.showSubmenu(menu);},this.showDelay);}};Spry.Widget.MenuBar.prototype.mouseOut=function(listitem,e)
{var link=listitem.getElementsByTagName('a')[0];var submenus=listitem.getElementsByTagName('ul');var menu=(submenus.length>0?submenus[0]:null);var hasSubMenu=(menu)?true:false;if(this.bubbledTextEvent())
{return;}
var related=(typeof e.relatedTarget!='undefined'?e.relatedTarget:e.toElement);if(!listitem.contains(related))
{if(listitem.opentime)
clearTimeout(listitem.opentime);this.currMenu=listitem;this.removeClassName(link,hasSubMenu?this.subHoverClass:this.hoverClass);if(menu)
{var self=this;listitem.closetime=window.setTimeout(function(){self.hideSubmenu(menu);},this.hideDelay);}
if(this.hasFocus)
link.blur();}};Spry.Widget.MenuBar.prototype.getSibling=function(element,sibling)
{var child=element[sibling];while(child&&child.nodeName.toLowerCase()!='li')
child=child[sibling];return child;};Spry.Widget.MenuBar.prototype.getElementForKey=function(els,prop,dir)
{var found=0;var rect=Spry.Widget.MenuBar.getPosition;var ref=rect(els[found]);var hideSubmenu=false;if(els[1]&&!this.hasClassName(els[1],this.MenuBarSubmenuVisible))
{els[1].style.visibility='hidden';this.showSubmenu(els[1]);hideSubmenu=true;}
var isVert=this.hasClassName(this.element,this.verticalClass);var hasParent=els[0].parentNode.parentNode.nodeName.toLowerCase()=='li'?true:false;for(var i=1;i<els.length;i++){if(prop=='y'&&isVert&&(i==1||i==2))
{continue;}
if(prop=='x'&&!isVert&&!hasParent&&(i==1||i==2))
{continue;}
if(els[i])
{var tmp=rect(els[i]);if((dir*tmp[prop])<(dir*ref[prop]))
{ref=tmp;found=i;}}}
if(els[1]&&hideSubmenu){this.hideSubmenu(els[1]);els[1].style.visibility='';}
return found;};Spry.Widget.MenuBar.camelize=function(str)
{if(str.indexOf('-')==-1){return str;}
var oStringList=str.split('-');var isFirstEntry=true;var camelizedString='';for(var i=0;i<oStringList.length;i++)
{if(oStringList[i].length>0)
{if(isFirstEntry)
{camelizedString=oStringList[i];isFirstEntry=false;}
else
{var s=oStringList[i];camelizedString+=s.charAt(0).toUpperCase()+s.substring(1);}}}
return camelizedString;};Spry.Widget.MenuBar.getStyleProp=function(element,prop)
{var value;try
{if(element.style)
value=element.style[Spry.Widget.MenuBar.camelize(prop)];if(!value)
if(document.defaultView&&document.defaultView.getComputedStyle)
{var css=document.defaultView.getComputedStyle(element,null);value=css?css.getPropertyValue(prop):null;}
else if(element.currentStyle)
{value=element.currentStyle[Spry.Widget.MenuBar.camelize(prop)];}}
catch(e){}
return value=='auto'?null:value;};Spry.Widget.MenuBar.getIntProp=function(element,prop)
{var a=parseInt(Spry.Widget.MenuBar.getStyleProp(element,prop),10);if(isNaN(a))
return 0;return a;};Spry.Widget.MenuBar.getPosition=function(el,doc)
{doc=doc||document;if(typeof(el)=='string'){el=doc.getElementById(el);}
if(!el){return false;}
if(el.parentNode===null||Spry.Widget.MenuBar.getStyleProp(el,'display')=='none'){return false;}
var ret={x:0,y:0};var parent=null;var box;if(el.getBoundingClientRect){box=el.getBoundingClientRect();var scrollTop=doc.documentElement.scrollTop||doc.body.scrollTop;var scrollLeft=doc.documentElement.scrollLeft||doc.body.scrollLeft;ret.x=box.left+scrollLeft;ret.y=box.top+scrollTop;}else if(doc.getBoxObjectFor){box=doc.getBoxObjectFor(el);ret.x=box.x;ret.y=box.y;}else{ret.x=el.offsetLeft;ret.y=el.offsetTop;parent=el.offsetParent;if(parent!=el){while(parent){ret.x+=parent.offsetLeft;ret.y+=parent.offsetTop;parent=parent.offsetParent;}}
if(Spry.is.opera||Spry.is.safari&&Spry.Widget.MenuBar.getStyleProp(el,'position')=='absolute')
ret.y-=doc.body.offsetTop;}
if(el.parentNode)
parent=el.parentNode;else
parent=null;if(parent.nodeName){var cas=parent.nodeName.toUpperCase();while(parent&&cas!='BODY'&&cas!='HTML'){cas=parent.nodeName.toUpperCase();ret.x-=parent.scrollLeft;ret.y-=parent.scrollTop;if(parent.parentNode)
parent=parent.parentNode;else
parent=null;}}
return ret;};Spry.Widget.MenuBar.stopPropagation=function(ev)
{if(ev.stopPropagation)
ev.stopPropagation();else
ev.cancelBubble=true;if(ev.preventDefault)
ev.preventDefault();else
ev.returnValue=false;};Spry.Widget.MenuBar.setOptions=function(obj,optionsObj,ignoreUndefinedProps)
{if(!optionsObj)
return;for(var optionName in optionsObj)
{if(ignoreUndefinedProps&&optionsObj[optionName]==undefined)
continue;obj[optionName]=optionsObj[optionName];}};})();;(function(){if(typeof Spry=="undefined")window.Spry={};if(!Spry.Utils)Spry.Utils={};Spry.$=function(element)
{if(arguments.length>1)
{for(var i=0,elements=[],length=arguments.length;i<length;i++)
elements.push(Spry.$(arguments[i]));return elements;}
if(typeof element=='string')
element=document.getElementById(element);return element;};Spry.Utils.getAttribute=function(ele,name)
{ele=Spry.$(ele);if(!ele||!name)
return null;try{var value=ele.getAttribute(name);}
catch(e){value==undefined;}
if(value==undefined&&name.search(/:/)!=-1)
{try{var value=ele.getAttribute(name.replace(/:/,""));}
catch(e){value==undefined;}}
return value;};Spry.Utils.setAttribute=function(ele,name,value)
{ele=Spry.$(ele);if(!ele||!name)
return;if(name=="class")
ele.className=value;else
{try{ele.setAttribute(name,value);}catch(e){}
if(name.search(/:/)!=-1&&ele.getAttribute(name)==undefined)
ele.setAttribute(name.replace(/:/,""),value);}};Spry.Utils.removeAttribute=function(ele,name)
{ele=Spry.$(ele);if(!ele||!name)
return;try{ele.removeAttribute(name);}catch(e){}
if(name.search(/:/)!=-1)
ele.removeAttribute(name.replace(/:/,""));if(name=="class")
ele.removeAttribute("className");};Spry.Utils.addClassName=function(ele,className)
{ele=Spry.$(ele);if(!ele||!className||(ele.className&&ele.className.search(new RegExp("\\b"+className+"\\b"))!=-1))
return;ele.className+=(ele.className?" ":"")+className;};Spry.Utils.removeClassName=function(ele,className)
{ele=Spry.$(ele);if(Spry.Utils.hasClassName(ele,className))
ele.className=ele.className.replace(new RegExp("\\s*\\b"+className+"\\b","g"),"");};Spry.Utils.toggleClassName=function(ele,className)
{if(Spry.Utils.hasClassName(ele,className))
Spry.Utils.removeClassName(ele,className);else
Spry.Utils.addClassName(ele,className);};Spry.Utils.hasClassName=function(ele,className)
{ele=Spry.$(ele);if(!ele||!className||!ele.className||ele.className.search(new RegExp("\\b"+className+"\\b"))==-1)
return false;return true;};Spry.Utils.camelizeString=function(str)
{var cStr="";var a=str.split("-");for(var i=0;i<a.length;i++)
{var s=a[i];if(s)
cStr=cStr?(cStr+s.charAt(0).toUpperCase()+s.substring(1)):s;}
return cStr;};Spry.Utils.styleStringToObject=function(styleStr)
{var o={};if(styleStr)
{var pvA=styleStr.split(";");for(var i=0;i<pvA.length;i++)
{var pv=pvA[i];if(pv&&pv.indexOf(":")!=-1)
{var nvA=pv.split(":");var n=nvA[0].replace(/^\s*|\s*$/g,"");var v=nvA[1].replace(/^\s*|\s*$/g,"");if(n&&v)
o[Spry.Utils.camelizeString(n)]=v;}}}
return o;};Spry.Utils.addEventListener=function(element,eventType,handler,capture)
{try
{if(!Spry.Utils.eventListenerIsBoundToElement(element,eventType,handler,capture))
{element=Spry.$(element);handler=Spry.Utils.bindEventListenerToElement(element,eventType,handler,capture);if(element.addEventListener)
element.addEventListener(eventType,handler,capture);else if(element.attachEvent)
element.attachEvent("on"+eventType,handler);}}
catch(e){}};Spry.Utils.removeEventListener=function(element,eventType,handler,capture)
{try
{element=Spry.$(element);handler=Spry.Utils.unbindEventListenerFromElement(element,eventType,handler,capture);if(element.removeEventListener)
element.removeEventListener(eventType,handler,capture);else if(element.detachEvent)
element.detachEvent("on"+eventType,handler);}
catch(e){}};Spry.Utils.eventListenerHash={};Spry.Utils.nextEventListenerID=1;Spry.Utils.getHashForElementAndHandler=function(element,eventType,handler,capture)
{var hash=null;element=Spry.$(element);if(element)
{if(typeof element.spryEventListenerID=="undefined")
element.spryEventListenerID="e"+(Spry.Utils.nextEventListenerID++);if(typeof handler.spryEventHandlerID=="undefined")
handler.spryEventHandlerID="h"+(Spry.Utils.nextEventListenerID++);hash=element.spryEventListenerID+"-"+handler.spryEventHandlerID+"-"+eventType+(capture?"-capture":"");}
return hash;};Spry.Utils.eventListenerIsBoundToElement=function(element,eventType,handler,capture)
{element=Spry.$(element);var hash=Spry.Utils.getHashForElementAndHandler(element,eventType,handler,capture);return Spry.Utils.eventListenerHash[hash]!=undefined;};Spry.Utils.bindEventListenerToElement=function(element,eventType,handler,capture)
{element=Spry.$(element);var hash=Spry.Utils.getHashForElementAndHandler(element,eventType,handler,capture);if(Spry.Utils.eventListenerHash[hash])
return Spry.Utils.eventListenerHash[hash];return Spry.Utils.eventListenerHash[hash]=function(e)
{e=e||window.event;if(!e.preventDefault)e.preventDefault=function(){this.returnValue=false;};if(!e.stopPropagation)e.stopPropagation=function(){this.cancelBubble=true;};var result=handler.call(element,e);if(result==false)
{e.preventDefault();e.stopPropagation();}
return result;};};Spry.Utils.unbindEventListenerFromElement=function(element,eventType,handler,capture)
{element=Spry.$(element);var hash=Spry.Utils.getHashForElementAndHandler(element,eventType,handler,capture);if(Spry.Utils.eventListenerHash[hash])
{handler=Spry.Utils.eventListenerHash[hash];Spry.Utils.eventListenerHash[hash]=undefined;}
return handler;};Spry.Utils.cancelEvent=function(e)
{if(e.preventDefault)e.preventDefault();else e.returnValue=false;if(e.stopPropagation)e.stopPropagation();else e.cancelBubble=true;return false;};Spry.Utils.addLoadListener=function(handler)
{if(typeof window.addEventListener!='undefined')
window.addEventListener('load',handler,false);else if(typeof document.addEventListener!='undefined')
document.addEventListener('load',handler,false);else if(typeof window.attachEvent!='undefined')
window.attachEvent('onload',handler);};Spry.Utils.isDescendant=function(parent,child)
{if(parent&&child)
{child=child.parentNode;while(child)
{if(parent==child)
return true;child=child.parentNode;}}
return false;};Spry.Utils.getAncestor=function(ele,selector)
{ele=Spry.$(ele);if(ele)
{var s=Spry.$$.tokenizeSequence(selector?selector:"*")[0];var t=s?s[0]:null;if(t)
{var p=ele.parentNode;while(p)
{if(t.match(p))
return p;p=p.parentNode;}}}
return null;};Spry.$$=function(selectorSequence,rootNode)
{var matches=[];Spry.$$.addExtensions(matches);if(typeof arguments[0]=="object")
{for(var i=0;i<arguments.length;i++)
{if(arguments[i].constructor==Array)
matches.push.apply(matches,arguments[i]);else
matches.push(arguments[i]);}
return matches;}
if(!rootNode)
rootNode=document;else
rootNode=Spry.$(rootNode);var sequences=Spry.$$.tokenizeSequence(selectorSequence);++Spry.$$.queryID;var nid=0;var ns=sequences.length;for(var i=0;i<ns;i++)
{var m=Spry.$$.processTokens(sequences[i],rootNode);var nm=m.length;for(var j=0;j<nm;j++)
{var n=m[j];if(!n.spry$$ID)
{n.spry$$ID=++nid;matches.push(n);}}}
var nm=matches.length;for(i=0;i<nm;i++)
matches[i].spry$$ID=undefined;return matches;};Spry.$$.cache={};Spry.$$.queryID=0;Spry.$$.Token=function()
{this.type=Spry.$$.Token.SELECTOR;this.name="*";this.id="";this.classes=[];this.attrs=[];this.pseudos=[];};Spry.$$.Token.Attr=function(n,v)
{this.name=n;this.value=v?new RegExp(v):undefined;};Spry.$$.Token.PseudoClass=function(pstr)
{this.name=pstr.replace(/\(.*/,"");this.arg=pstr.replace(/^[^\(\)]*\(?\s*|\)\s*$/g,"");this.func=Spry.$$.pseudoFuncs[this.name];};Spry.$$.Token.SELECTOR=0;Spry.$$.Token.COMBINATOR=1;Spry.$$.Token.prototype.match=function(ele,nameAlreadyMatches)
{if(this.type==Spry.$$.Token.COMBINATOR)
return false;if(!nameAlreadyMatches&&this.name!='*'&&this.name!=ele.nodeName.toLowerCase())
return false;if(this.id&&this.id!=ele.id)
return false;var classes=this.classes;var len=classes.length;for(var i=0;i<len;i++)
{if(!ele.className||!classes[i].value.test(ele.className))
return false;}
var attrs=this.attrs;len=attrs.length;for(var i=0;i<len;i++)
{var a=attrs[i];var an=ele.attributes.getNamedItem(a.name);if(!an||(!a.value&&an.nodeValue==undefined)||(a.value&&!a.value.test(an.nodeValue)))
return false;}
var ps=this.pseudos;var len=ps.length;for(var i=0;i<len;i++)
{var p=ps[i];if(p&&p.func&&!p.func(p.arg,ele,this))
return false;}
return true;};Spry.$$.Token.prototype.getNodeNameIfTypeMatches=function(ele)
{var nodeName=ele.nodeName.toLowerCase();if(this.name!='*')
{if(this.name!=nodeName)
return null;return this.name;}
return nodeName;};Spry.$$.escapeRegExpCharsRE=/\/|\.|\*|\+|\(|\)|\[|\]|\{|\}|\\|\|/g;Spry.$$.tokenizeSequence=function(s)
{var cc=Spry.$$.cache[s];if(cc)return cc;var tokenExpr=/(\[[^\"'~\^\$\*\|\]=]+([~\^\$\*\|]?=\s*('[^']*'|"[^"]*"|[^"'\]]+))?\s*\])|((:[^\.#:\s,>~\+\[\]]+\(([^\(\)]+|\([^\(\)]*\))*\))|[\.#:]?[^\.#:\s,>~\+\[\]]+)|(\s*[\s,>~\+]\s*)/g;var tkn=new Spry.$$.Token;var sequence=[];sequence.push(tkn);var tokenSequences=[];tokenSequences.push(sequence);s=s.replace(/^\s*|\s*$/,"");var expMatch=tokenExpr.exec(s);while(expMatch)
{var tstr=expMatch[0];var c=tstr.charAt(0);switch(c)
{case'.':tkn.classes.push(new Spry.$$.Token.Attr("class","\\b"+tstr.substr(1)+"\\b"));break;case'#':tkn.id=tstr.substr(1);break;case':':tkn.pseudos.push(new Spry.$$.Token.PseudoClass(tstr));break;case'[':var attrComps=tstr.match(/\[([^\"'~\^\$\*\|\]=]+)(([~\^\$\*\|]?=)\s*('[^']*'|"[^"]*"|[^"'\]]+))?\s*\]/);var name=attrComps[1];var matchType=attrComps[3];var val=attrComps[4];if(val)
{val=val.replace(/^['"]|['"]$/g,"");val=val.replace(Spry.$$.escapeRegExpCharsRE,'\\$&');}
var matchStr=undefined;switch(matchType)
{case"=":matchStr="^"+val+"$";break;case"^=":matchStr="^"+val;break;case"$=":matchStr=val+"$";break;case"~=":case"|=":matchStr="\\b"+val+"\\b";break;case"*=":matchStr=val;break;}
tkn.attrs.push(new Spry.$$.Token.Attr(name,matchStr));break;default:var combiMatch=tstr.match(/^\s*([\s,~>\+])\s*$/);if(combiMatch)
{if(combiMatch[1]==',')
{sequence=new Array;tokenSequences.push(sequence);tkn=new Spry.$$.Token;sequence.push(tkn);}
else
{tkn=new Spry.$$.Token;tkn.type=Spry.$$.Token.COMBINATOR;tkn.name=combiMatch[1];sequence.push(tkn);tkn=new Spry.$$.Token();sequence.push(tkn);}}
else
tkn.name=tstr.toLowerCase();break;}
expMatch=tokenExpr.exec(s);}
Spry.$$.cache[s]=tokenSequences;return tokenSequences;};Spry.$$.combinatorFuncs={" ":function(nodes,token)
{var uid=++Spry.$$.uniqueID;var results=[];var nn=nodes.length;for(var i=0;i<nn;i++)
{var n=nodes[i];if(uid!=n.spry$$uid)
{var ea=nodes[i].getElementsByTagName(token.name);var ne=ea.length;for(var j=0;j<ne;j++)
{var e=ea[j];if(e.nodeType==1&&token.match(e,true))
results.push(e);e.spry$$uid=uid;}}}
return results;},">":function(nodes,token)
{var results=[];var nn=nodes.length;for(var i=0;i<nn;i++)
{var n=nodes[i].firstChild;while(n)
{if(n.nodeType==1&&token.match(n))
results.push(n);n=n.nextSibling;}}
return results;},"+":function(nodes,token)
{var results=[];var nn=nodes.length;for(var i=0;i<nn;i++)
{var n=nodes[i].nextSibling;while(n&&n.nodeType!=1)
n=n.nextSibling;if(n&&token.match(n))
results.push(n);}
return results;},"~":function(nodes,token)
{var uid=++Spry.$$.uniqueID;var results=[];var nn=nodes.length;for(var i=0;i<nn;i++)
{var n=nodes[i].nextSibling;while(n)
{if(n.nodeType==1)
{if(uid==n.spry$$uid)
break;if(token.match(n))
{results.push(n);n.spry$$uid=uid;}}
n=n.nextSibling;}}
return results;}};Spry.$$.uniqueID=0;Spry.$$.pseudoFuncs={":first-child":function(arg,node,token)
{var n=node.previousSibling;while(n)
{if(n.nodeType==1)return false;n=n.previousSibling;}
return true;},":last-child":function(arg,node,token)
{var n=node.nextSibling;while(n)
{if(n.nodeType==1)
return false;n=n.nextSibling;}
return true;},":empty":function(arg,node,token)
{var n=node.firstChild;while(n)
{switch(n.nodeType)
{case 1:case 3:case 4:case 5:return false;}
n=n.nextSibling;}
return true;},":nth-child":function(arg,node,token)
{return Spry.$$.nthChild(arg,node,token);},":nth-last-child":function(arg,node,token)
{return Spry.$$.nthChild(arg,node,token,true);},":nth-of-type":function(arg,node,token)
{return Spry.$$.nthChild(arg,node,token,false,true);},":nth-last-of-type":function(arg,node,token)
{return Spry.$$.nthChild(arg,node,token,true,true);},":first-of-type":function(arg,node,token)
{var nodeName=token.getNodeNameIfTypeMatches(node);if(!nodeName)return false;var n=node.previousSibling;while(n)
{if(n.nodeType==1&&nodeName==n.nodeName.toLowerCase())return false;n=n.previousSibling;}
return true;},":last-of-type":function(arg,node,token)
{var nodeName=token.getNodeNameIfTypeMatches(node);if(!nodeName)return false;var n=node.nextSibling;while(n)
{if(n.nodeType==1&&nodeName==n.nodeName.toLowerCase())
return false;n=n.nextSibling;}
return true;},":only-child":function(arg,node,token)
{var f=Spry.$$.pseudoFuncs;return f[":first-child"](arg,node,token)&&f[":last-child"](arg,node,token);},":only-of-type":function(arg,node,token)
{var f=Spry.$$.pseudoFuncs;return f[":first-of-type"](arg,node,token)&&f[":last-of-type"](arg,node,token);},":not":function(arg,node,token)
{var s=Spry.$$.tokenizeSequence(arg)[0];var t=s?s[0]:null;return!t||!t.match(node);},":enabled":function(arg,node,token)
{return!node.disabled;},":disabled":function(arg,node,token)
{return node.disabled;},":checked":function(arg,node,token)
{return node.checked;},":root":function(arg,node,token)
{return node.parentNode&&node.ownerDocument&&node.parentNode==node.ownerDocument;}};Spry.$$.nthRegExp=/((-|[0-9]+)?n)?([+-]?[0-9]*)/;Spry.$$.nthCache={"even":{a:2,b:0,mode:1,invalid:false},"odd":{a:2,b:1,mode:1,invalid:false},"2n":{a:2,b:0,mode:1,invalid:false},"2n+1":{a:2,b:1,mode:1,invalid:false}};Spry.$$.parseNthChildString=function(str)
{var o=Spry.$$.nthCache[str];if(!o)
{var m=str.match(Spry.$$.nthRegExp);var n=m[1];var a=m[2];var b=m[3];if(!a)
{a=n?1:0;}
else if(a=="-")
{a=-1;}
else
{a=parseInt(a,10);}
b=b?parseInt(b,10):0;var mode=(a==0)?0:((a>0)?1:-1);var invalid=false;if(a>0&&b<0)
{b=b%a;b=((b=(b%a))<0)?a+b:b;}
else if(a<0)
{if(b<0)
invalid=true;else
a=Math.abs(a);}
o=new Object;o.a=a;o.b=b;o.mode=mode;o.invalid=invalid;Spry.$$.nthCache[str]=o;}
return o;};Spry.$$.nthChild=function(arg,node,token,fromLastSib,matchNodeName)
{if(matchNodeName)
{var nodeName=token.getNodeNameIfTypeMatches(node);if(!nodeName)return false;}
var o=Spry.$$.parseNthChildString(arg);if(o.invalid)
return false;var qidProp="spry$$ncQueryID";var posProp="spry$$ncPos";var countProp="spry$$ncCount";if(matchNodeName)
{qidProp+=nodeName;posProp+=nodeName;countProp+=nodeName;}
var parent=node.parentNode;if(parent[qidProp]!=Spry.$$.queryID)
{var pos=0;parent[qidProp]=Spry.$$.queryID;var c=parent.firstChild;while(c)
{if(c.nodeType==1&&(!matchNodeName||nodeName==c.nodeName.toLowerCase()))
c[posProp]=++pos;c=c.nextSibling;}
parent[countProp]=pos;}
pos=node[posProp];if(fromLastSib)
pos=parent[countProp]-pos+1;if(o.mode==0)
return pos==o.b;if(o.mode>0)
return(pos<o.b)?false:(!((pos-o.b)%o.a));return(pos>o.b)?false:(!((o.b-pos)%o.a));};Spry.$$.processTokens=function(tokens,root)
{var numTokens=tokens.length;var nodeSet=[root];var combiFunc=null;for(var i=0;i<numTokens&&nodeSet.length>0;i++)
{var t=tokens[i];if(t.type==Spry.$$.Token.SELECTOR)
{if(combiFunc)
{nodeSet=combiFunc(nodeSet,t);combiFunc=null;}
else
nodeSet=Spry.$$.getMatchingElements(nodeSet,t);}
else
combiFunc=Spry.$$.combinatorFuncs[t.name];}
return nodeSet;};Spry.$$.getMatchingElements=function(nodes,token)
{var results=[];if(token.id)
{n=nodes[0];if(n&&n.ownerDocument)
{var e=n.ownerDocument.getElementById(token.id);if(e)
{if(token.match(e))
results.push(e);}
return results;}}
var nn=nodes.length;for(var i=0;i<nn;i++)
{var n=nodes[i];var ea=n.getElementsByTagName(token.name);var ne=ea.length;for(var j=0;j<ne;j++)
{var e=ea[j];if(e.nodeType==1&&token.match(e,true))
results.push(e);}}
return results;};Spry.$$.addExtensions=function(a)
{for(var f in Spry.$$.Results)
a[f]=Spry.$$.Results[f];};Spry.$$.Results={};Spry.$$.Results.forEach=function(func)
{var n=this.length;for(var i=0;i<n;i++)
func(this[i]);return this;};Spry.$$.Results.setAttribute=function(name,value)
{return this.forEach(function(n){Spry.Utils.setAttribute(n,name,value);});};Spry.$$.Results.removeAttribute=function(name)
{return this.forEach(function(n){Spry.Utils.removeAttribute(n,name);});};Spry.$$.Results.addClassName=function(className)
{return this.forEach(function(n){Spry.Utils.addClassName(n,className);});};Spry.$$.Results.removeClassName=function(className)
{return this.forEach(function(n){Spry.Utils.removeClassName(n,className);});};Spry.$$.Results.toggleClassName=function(className)
{return this.forEach(function(n){Spry.Utils.toggleClassName(n,className);});};Spry.$$.Results.addEventListener=function(eventType,handler,capture,bindHandler)
{return this.forEach(function(n){Spry.Utils.addEventListener(n,eventType,handler,capture,bindHandler);});};Spry.$$.Results.removeEventListener=function(eventType,handler,capture)
{return this.forEach(function(n){Spry.Utils.removeEventListener(n,eventType,handler,capture);});};Spry.$$.Results.setStyle=function(style)
{if(style)
{style=Spry.Utils.styleStringToObject(style);this.forEach(function(n)
{for(var p in style)
try{n.style[p]=style[p];}catch(e){}});}
return this;};Spry.$$.Results.setProperty=function(prop,value)
{if(prop)
{if(typeof prop=="string")
{var p={};p[prop]=value;prop=p;}
this.forEach(function(n)
{for(var p in prop)
try{n[p]=prop[p];}catch(e){}});}
return this;};})();(function(){if(typeof Spry=="undefined"||!Spry.Utils||!Spry.$$)
{alert("SpryDOMEffects.js requires SpryDOMUtils.js");return;}
if(!Spry.Effect)Spry.Effect={};Spry.Effect.Animator=function(opts)
{Spry.Effect.Animator.Notifier.call(this);this.animatorID=Spry.Effect.Animator.nextID++;this.dropFrames=true;this.fps=60;this.duration=500;this.timer=0;this.startTime=0;this.currentFrame=0;this.easeFunc=Spry.Effect.Animator.defaultEaseFunc;this.stopped=false;Spry.Effect.Animator.copyProps(this,opts);this.interval=1000/this.fps;this.numFrames=(this.duration/1000)*this.fps;if(this.onComplete)
{var self=this;this.addObserver({onAnimationComplete:function(){self.onComplete();}});}};Spry.Effect.Animator.nextID=1;Spry.Effect.Animator.copyProps=function(dst,src)
{if(src)
{for(prop in src)
dst[prop]=src[prop];}
return dst;};Spry.Effect.Animator.getElement=function(element)
{if(arguments.length>1)
{for(var i=0,elements=[],length=arguments.length;i<length;i++)
elements.push(Spry.Effect.Animator.getElement(arguments[i]));return elements;}
if(typeof element=='string')
element=document.getElementById(element);return element;};Spry.Effect.Animator.defaultEaseFunc=function(time,begin,finish,duration){time/=duration;return begin+((2-time)*time*finish);};Spry.Effect.Animator.Notifier=function()
{this.observers=[];this.suppressNotifications=0;};Spry.Effect.Animator.Notifier.prototype.addObserver=function(observer)
{if(!observer)
return;var len=this.observers.length;for(var i=0;i<len;i++)
{if(this.observers[i]==observer)
return;}
this.observers[len]=observer;};Spry.Effect.Animator.Notifier.prototype.removeObserver=function(observer)
{if(!observer)
return;for(var i=0;i<this.observers.length;i++)
{if(this.observers[i]==observer)
{this.observers.splice(i,1);break;}}};Spry.Effect.Animator.Notifier.prototype.notifyObservers=function(methodName,data)
{if(!methodName)
return;if(!this.suppressNotifications)
{var len=this.observers.length;for(var i=0;i<len;i++)
{var obs=this.observers[i];if(obs)
{if(typeof obs=="function")
obs(methodName,this,data);else if(obs[methodName])
obs[methodName](this,data);}}}};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=false;this.currentFrame=0;this.startTime=(new Date()).getTime();this.notifyObservers("onAnimationStart");var self=this;this.timer=setTimeout(function(){self.onStepAnimation();},this.interval);};Spry.Effect.Animator.prototype.stop=function()
{if(this.timer)
clearTimeout(this.timer);this.timer=0;this.stopped=true;this.notifyObservers("onAnimationStopped");};Spry.Effect.Animator.prototype.onStepAnimation=function()
{var obj={};if(this.dropFrames)
{obj.duration=this.duration;obj.elapsed=((new Date).getTime())-this.startTime;if(obj.elapsed>obj.duration)
obj.elapsed=obj.duration;}
else
{obj.duration=this.numFrames;obj.elapsed=++this.currentFrame;}
obj.easingConst=this.easeFunc(obj.elapsed,0,1,obj.duration)
this.notifyObservers("onPreDraw",obj);this.draw(obj.elapsed,obj.duration,obj.easingConst);this.notifyObservers("onPostDraw",obj);if(!this.stopped)
{if(obj.elapsed<obj.duration)
{var self=this;this.timer=setTimeout(function(){self.onStepAnimation();},this.interval);}
else
{this.stop();this.notifyObservers("onAnimationComplete");}}};Spry.Effect.Animator.prototype.draw=function(elapsed,duration,easingConst)
{debug.log("elapsed: "+elapsed+" -- duration: "+duration+" -- easingConst: "+easingConst);};Spry.Effect.CSSAnimator=function(elements,styleStr,opts)
{this.animationSets=[];Spry.Effect.Animator.call(this,opts);this.add(elements,styleStr);};Spry.Effect.CSSAnimator.prototype=new Spry.Effect.Animator();Spry.Effect.CSSAnimator.prototype.constructor=Spry.Effect.CSSAnimator;Spry.Effect.CSSAnimator.prototype.add=function(elements,styleStr)
{elements=Spry.$$(elements);if(elements.length<1)
return;var animSet={elements:elements,cssProps:[]};this.animationSets.push(animSet);var toObj=Spry.Utils.styleStringToObject(styleStr);for(var p in toObj)
{var obj=new Object;var v=toObj[p];obj.value=new Number(v.replace(/[^-\d\.]+/g,""));obj.units=v.replace(/[-\d+\.]/g,"");toObj[p]=obj;}
for(var i=0;i<elements.length;i++)
{var obj=animSet.cssProps[i]=new Object;for(var p in toObj)
{var pFuncs=Spry.Effect.CSSAnimator.stylePropFuncs[p];if(!pFuncs)
pFuncs=Spry.Effect.CSSAnimator.stylePropFuncs["default"];obj[p]=new Object;obj[p].from=new Number(pFuncs.get(elements[i],p).replace(/[^-\d\.]+/g,""));obj[p].to=toObj[p].value;obj[p].distance=obj[p].to-obj[p].from;obj[p].units=toObj[p].units;}}};Spry.Effect.CSSAnimator.prototype.start=function()
{for(var s=0;s<this.animationSets.length;s++)
{var animSet=this.animationSets[s];var elements=animSet.elements;var cssProps=animSet.cssProps;for(var i=0;i<elements.length;i++)
{var ele=elements[i];var eleProps=ele.spryCSSAnimatorProps;if(!eleProps)
eleProps=ele.spryCSSAnimatorProps=new Object;var obj=cssProps[i];for(var p in obj)
eleProps[p]=this.animatorID;}}
return Spry.Effect.Animator.prototype.start.call(this);};Spry.Effect.CSSAnimator.prototype.stop=function()
{for(var s=0;s<this.animationSets.length;s++)
{var animSet=this.animationSets[s];var elements=animSet.elements;var cssProps=animSet.cssProps;for(var i=0;i<elements.length;i++)
{var ele=elements[i];var obj=cssProps[i];var eleProps=ele.spryCSSAnimatorProps;for(var p in obj)
{if(eleProps[p]==this.animatorID)
delete eleProps[p];}}}
return Spry.Effect.Animator.prototype.stop.call(this);};Spry.Effect.CSSAnimator.prototype.draw=function(elapsed,duration,easingConst)
{for(var s=0;s<this.animationSets.length;s++)
{var animSet=this.animationSets[s];var elements=animSet.elements;var cssProps=animSet.cssProps;for(var i=0;i<elements.length;i++)
{var ele=elements[i];var eleProps=ele.spryCSSAnimatorProps;var obj=cssProps[i];for(var p in obj)
{if(eleProps[p]==this.animatorID)
{var pFuncs=Spry.Effect.CSSAnimator.stylePropFuncs[p];if(!pFuncs)
pFuncs=Spry.Effect.CSSAnimator.stylePropFuncs["default"];if(elapsed>duration)
pFuncs.set(ele,p,obj[p].to+obj[p].units);else
pFuncs.set(ele,p,obj[p].from+(obj[p].distance*easingConst)+obj[p].units);}}}}};Spry.Effect.CSSAnimator.stylePropFuncs={};Spry.Effect.CSSAnimator.stylePropFuncs["default"]={get:function(ele,prop)
{return ele.style[prop];},set:function(ele,prop,val)
{ele.style[prop]=val;}};Spry.Effect.CSSAnimator.stylePropFuncs["opacity"]={get:function(ele,prop)
{var val=1;if(ele.style.opacity)
val=ele.style.opacity;else if(ele.style.filter)
{var strVal=ele.style.filter.replace(/.*alpha\(opacity=(\d+)\).*/,"$1");if(strVal)
val=parseInt(strVal)/100;}
return val+"";},set:function(ele,prop,val)
{ele.style.opacity=""+val;ele.style.filter="alpha(opacity="+(val*100)+")";}};Spry.$$.Results.defaultEaseFunc=function(time,begin,finish,duration){time/=duration;return begin+((2-time)*time*finish);};Spry.$$.Results.animatePropertyTo=function(propName,to,options)
{var opts={interval:10,duration:1000,onComplete:null,transition:Spry.$$.Results.defaultEaseFunc};Spry.Effect.Animator.copyProps(opts,options);var objs=[];for(var i=0;i<this.length;i++)
{var obj=objs[i]=new Object;obj.ele=this[i];obj.from=obj.ele[propName];obj.distance=to-obj.from;}
var startTime=(new Date).getTime();var animateFunc=function()
{var elapsedTime=((new Date).getTime())-startTime;if(elapsedTime>opts.duration)
{for(var i=0;i<objs.length;i++)
objs[i].ele[propName]=to;if(opts.onComplete)
opts.onComplete();}
else
{for(var i=0;i<objs.length;i++)
{var obj=objs[i];obj.ele[propName]=opts.transition(elapsedTime,obj.from,obj.distance,opts.duration);}
setTimeout(animateFunc,opts.interval);}};setTimeout(animateFunc,opts.interval);return this;};Spry.$$.Results.animateStyleTo=function(styleStr,options)
{var a=new Spry.Effect.CSSAnimator(this,styleStr,options);a.start();return this;};})();(function(){if(typeof Spry=="undefined"||!Spry.Utils||!Spry.$$)
{alert("SpryWidget.js requires SpryDOMUtils.js");return;}
if(!Spry.Widget)Spry.Widget={};Spry.Widget.setOptions=function(obj,optionsObj,ignoreUndefinedProps)
{if(obj&&optionsObj)
{for(var optionName in optionsObj)
{var v=optionsObj[optionName];if(!ignoreUndefinedProps||v!=undefined)
obj[optionName]=v;}}
return obj;};Spry.Widget.onLoadDidFire=false;Spry.Widget.onLoadQueue=[];Spry.Widget.addCallbackToOnLoadQueue=function(callbackFunc,context)
{if(callbackFunc)
{if(context)
{var cf=callbackFunc;callbackFunc=function(){cf.call(context);};}
Spry.Widget.onLoadQueue.push(callbackFunc);}};Spry.Widget.triggerCallbackAfterOnLoad=function(callbackFunc,context)
{if(Spry.Widget.onLoadDidFire)
callbackFunc.call(context);else
Spry.Widget.addCallbackToOnLoadQueue(callbackFunc,context);};Spry.Widget.processOnLoadQueue=function()
{Spry.Widget.onLoadDidFire=true;var q=Spry.Widget.onLoadQueue;while(q.length)
(q.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(observer)
{if(!observer)
return;var len=this.observers.length;for(var i=0;i<len;i++)
{if(this.observers[i]==observer)
return;}
this.observers[len]=observer;};Spry.Widget.Base.Notifier.prototype.removeObserver=function(observer)
{if(!observer)
return;for(var i=0;i<this.observers.length;i++)
{if(this.observers[i]==observer)
{this.observers.splice(i,1);break;}}};Spry.Widget.Base.Notifier.prototype.notifyObservers=function(methodName,data)
{if(!methodName)
return;if(!this.suppressNotifications)
{var len=this.observers.length;for(var i=0;i<len;i++)
{var obs=this.observers[i];if(obs)
{if(typeof obs=="function")
obs(methodName,this,data);else if(obs[methodName])
obs[methodName](this,data);}}}};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(ele)
{return Spry.$(ele);};Spry.Widget.Base.getElements=function(elements)
{var eType=typeof elements;if(eType=="string")
return Spry.$$(elements);else if(eType=="object")
{if(elements.constructor==Array)
{var result=[];for(var i=0;i<elements.length;i++)
result=result.concat(Spry.Widget.Base.getElements(elements[i]));return result;}
else
return[elements];}
return[];};Spry.Widget.Base.getElementsByClassName=function(root,className)
{var results=[];if(typeof root.getElementsByClassName!="undefined")
{var nodeList=root.getElementsByClassName(className);for(var i=0;i<nodeList.length;i++)
results.push(nodeList.item(i));}
else
{var re=new RegExp("\\b"+className+"\\b");var nodeList=root.getElementsByTagName("*");for(var i=0;i<nodeList.length;i++)
{var ele=nodeList.item(i);if(ele.className.search(re)!=-1)
results.push(ele);}}
return results;};Spry.Widget.Base.prototype.getElementChildren=function(element)
{var children=[];if(element)
{var child=element.firstChild;while(child)
{if(child.nodeType==1)
children.push(child);child=child.nextSibling;}}
return children;};Spry.Widget.Base.prototype.groupContentByDelimeter=function(delimeterElements)
{var results=new Array();var numDelims=delimeterElements.length;for(var i=0;i<numDelims;i++)
{var delim=delimeterElements[i];var group=new Array();group.push(delim);var nextDelim=delimeterElements[i+1];var sib=delim.nextSibling;while(sib&&sib!=nextDelim)
{group.push(sib);sib=sib.nextSibling;}
results.push(group);}
return results;};Spry.Widget.Base.prototype.createElement=function(elementName,className,parent,child)
{var ele=document.createElement(elementName);if(className)ele.className=className;if(parent)parent.appendChild(ele);if(child)ele.appendChild(child);return ele;};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(root,eleName,baseClassName)
{var a=root?root:document.createElement(eleName);var b=document.createElement(eleName);this.appendChildNodes(b,this.extractChildNodes(a));a.appendChild(b);this.addClassName(a,baseClassName+this.sliceLeftClassStr);b.className=baseClassName+this.sliceRightClassStr;a.contentContainer=b;return a;};Spry.Widget.Base.prototype.sliceFuncs["3slice"]=function(root,eleName,baseClassName)
{var a=root?root:document.createElement(eleName);var b=document.createElement(eleName);var c=document.createElement(eleName);this.appendChildNodes(c,this.extractChildNodes(a));a.appendChild(b);b.appendChild(c);this.addClassName(a,baseClassName+this.sliceLeftClassStr);b.className=baseClassName+this.sliceRightClassStr;c.className=baseClassName+this.sliceCenterClassStr;a.contentContainer=c;return a;};Spry.Widget.Base.prototype.sliceFuncs["3sliceStacked"]=function(root,eleName,baseClassName)
{root=root?root:document.createElement(eleName);var l=document.createElement(eleName);var m=document.createElement(eleName);var r=document.createElement(eleName);this.appendChildNodes(m,this.extractChildNodes(root));root.appendChild(l);root.appendChild(m);root.appendChild(r);this.addClassName(root,baseClassName);l.className=baseClassName+this.sliceLeftClassStr;m.className=baseClassName+this.sliceCenterClassStr;r.className=baseClassName+this.sliceRightClassStr;root.contentContainer=m;return root;};Spry.Widget.Base.prototype.sliceFuncs["9slice"]=function(root,eleName,baseClassName)
{if(!root)
root=document.createElement(eleName);this.addClassName(root,baseClassName);var t=this.create3SliceStructure(null,eleName,baseClassName+this.sliceTopClassStr);var m=this.create3SliceStructure(null,eleName,baseClassName);var b=this.create3SliceStructure(null,eleName,baseClassName+this.sliceBottomClassStr);this.appendChildNodes(m.contentContainer,this.extractChildNodes(root));root.appendChild(t);root.appendChild(m);root.appendChild(b);var contentContainer=m.contentContainer;root.contentContainer=contentContainer;contentContainer.rootContainer=root;return root;};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(root,eleName,className,sliceMap,childEleName)
{if(!sliceMap)
sliceMap=this.sliceMap?this.sliceMap:{};if(!childEleName)
childEleName=eleName;var sliceType=sliceMap[className];sliceType=sliceType?sliceType:"none";if(!root)
root=document.createElement(eleName);this.addClassName(root,className);var baseClass=(className||"").split(/\s+/)[0];var sliceFunc=this.sliceFuncs[sliceType];if(sliceFunc)
root=sliceFunc.call(this,root,childEleName,baseClass);else
root.contentContainer=root;return root;};Spry.Widget.Base.prototype.extractChildNodes=function(ele)
{var children=[];while(ele.firstChild)
{var c=ele.firstChild;children.push(c);ele.removeChild(c);}
return children;};Spry.Widget.Base.prototype.appendChildNodes=function(ele,nodes)
{for(var i=0;i<nodes.length;i++)
ele.appendChild(nodes[i]);};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,v)
{if(a)
{if(a.indexOf)
return a.indexOf(v);for(var i=0;i<a.length;i++)
if(a[i]==v)
return i;}
return-1;};Spry.Widget.Base.prototype.initializePlugIns=function(defaultPlugIns,widgetOpts)
{var evt=new Spry.Widget.Event(this);this.notifyObservers("onPreInitializePlugIns",evt);if(!evt.performDefaultAction)
return;var opts=widgetOpts?widgetOpts:{};var useDefaults=(typeof opts.useDefaultPlugIns=="undefined")?true:opts.useDefaultPlugIns;var dp=(useDefaults&&defaultPlugIns)?defaultPlugIns:[];var np=opts.plugIns?opts.plugIns:[];var plugIns=[];var plist=dp.concat(np);for(var i=0;i<plist.length;i++)
{var p=plist[i];if(this.indexOf(plugIns,p)<0)
plugIns.push(p);}
plugIns=plugIns.sort(function(a,b)
{var ap=(typeof a.priority=="undefined")?50:a.priority;var bp=(typeof b.priority=="undefined")?50:b.priority;return ap-bp;});this.plugIns=plugIns;for(var i=0;plugIns&&i<plugIns.length;i++)
{if(plugIns[i].initialize)
plugIns[i].initialize(this);}
this.notifyObservers("onPostInitializePlugIns",evt);};Spry.Widget.Base.prototype.getClientPosition=function(ele)
{var pos=new Object;pos.x=ele.offsetLeft;pos.y=ele.offsetTop;var parent=ele.offsetParent;while(parent)
{pos.x+=parent.offsetLeft;pos.y+=parent.offsetTop;parent=parent.offsetParent;}
return pos;};Spry.Widget.Base.prototype.getStyleProp=function(element,prop)
{var value;var camelized=Spry.Utils.camelizeString(prop);try
{if(element.style)
value=element.style[camelized];if(!value)
{if(document.defaultView&&document.defaultView.getComputedStyle)
{var css=document.defaultView.getComputedStyle(element,null);value=css?css.getPropertyValue(prop):null;}
else if(element.currentStyle)
{value=element.currentStyle[camelized];}}}
catch(e){}
return value=='auto'?null:value;};Spry.Widget.Base.prototype.makePositioned=function(element)
{var pos=this.getStyleProp(element,'position');if(!pos||pos=='static')
{element.style.position='relative';if(window.opera)
{element.style.top=0;element.style.left=0;}}};Spry.Widget.Base.prototype.clearIEAlphaFilter=function(ele)
{var filter=ele.style.filter;if(filter)
{filter=filter.replace(/alpha\([^\)]*\)/,"");filter=filter.replace(/^\s+|\s+$/,"");ele.style.filter=filter;}
else
filter="";return filter;};Spry.Widget.Base.prototype.setOpacity=function(ele,opacity)
{ele.style.opacity=""+opacity;var filter=this.clearIEAlphaFilter(ele);if(filter)
filter+=" ";ele.style.filter=filter+"alpha(opacity="+(opacity*100)+")";};Spry.Widget.Event=function(widget,opts)
{this.widget=widget;Spry.Widget.setOptions(this,opts);this.performDefaultAction=true;};Spry.Widget.Event.prototype.preventDefault=function(){this.performDefaultAction=false;};Spry.Widget.Button=function(ele,opts)
{Spry.Widget.Base.call(this);this.element=Spry.$$(ele)[0];this.setOptions(this,Spry.Widget.Button.config);this.setOptions(this,opts);var self=this;this.addEventListener(this.element,"mousedown",function(e){return self.handleMouseDown(e);},false);this.addEventListener(this.element,"mouseover",function(e){return self.handleMouseOver(e);},false);this.addEventListener(this.element,"mouseout",function(e){return self.handleMouseOut(e);},false);this.focusElement=this.getFocusElement(this.element);if(this.focusElement)
{this.addEventListener(this.focusElement,"focus",function(e){return self.handleFocus(e);},false);this.addEventListener(this.focusElement,"blur",function(e){return self.handleBlur(e);},false);this.addEventListener(this.focusElement,"keydown",function(e){return self.handleKeyDown(e);},false);}
this.addEventListener(this.element,"click",function(e){return false;},false);this.mouseUpCallback=function(evt){return self.handleMouseUp(evt);};};Spry.Widget.Button.config={disabled:false,mouseOutCancelsClick:true,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(evt)
{if(this.disabled)
return false;this.addClassName(this.element,this.downClass);this.addEventListener(document,"mouseup",this.mouseUpCallback,true);this.notifyObservers("onButtonDown",{event:evt});};Spry.Widget.Button.prototype.handleMouseUp=function(evt)
{if(this.disabled)
return false;this.removeClassName(this.element,this.downClass);this.removeEventListener(document,"mouseup",this.mouseUpCallback,true);if(this.onclick)
this.onclick(evt);this.notifyObservers("onButtonUp");this.notifyObservers("onButtonClick");};Spry.Widget.Button.prototype.handleMouseOver=function(evt)
{if(this.disabled)
return false;this.addClassName(this.element,this.hoverClass);this.notifyObservers("onButtonEnter");};Spry.Widget.Button.prototype.handleMouseOut=function(evt)
{if(this.disabled)
return false;var ele=this.element;this.removeClassName(ele,this.hoverClass);if(this.mouseOutCancelsClick)
{this.removeClassName(ele,this.downClass);this.removeEventListener(document,"mouseup",this.mouseUpCallback,true);}
this.notifyObservers("onButtonExit");};Spry.Widget.Button.prototype.handleFocus=function(evt)
{if(this.disabled)
return false;this.addClassName(this.element,this.focusedClass);this.notifyObservers("onButtonFocused");};Spry.Widget.Button.prototype.handleBlur=function(evt)
{if(this.disabled)
return false;this.removeClassName(this.element,this.focusedClass);this.notifyObservers("onButtonBlur");};Spry.Widget.Button.prototype.handleKeyDown=function(evt)
{if(this.disabled)
return false;this.notifyObservers("onButtonKeyDown",{event:evt,element:this.element});};Spry.Widget.Button.prototype.getFocusElement=function(element){var focusElement=null;var indexEle=null;var anchorEle=null;this.preorderTraversal(element,function(node){if(node.nodeType==1)
{var tabIndexAttr=element.attributes.getNamedItem("tabindex");if(tabIndexAttr)
{indexEle=node;return true;}
if(!anchorEle&&node.nodeName.toLowerCase()=="a")
anchorEle=node;}
return false;});if(indexEle)
focusElement=indexEle;else if(anchorEle)
focusElement=anchorEle;return focusElement;};Spry.Widget.Button.prototype.preorderTraversal=function(root,func)
{var stopTraversal=false;if(root)
{stopTraversal=func(root);if(root.hasChildNodes())
{var child=root.firstChild;while(!stopTraversal&&child)
{stopTraversal=this.preorderTraversal(child,func);try{child=child.nextSibling;}catch(e){child=null;}}}}
return stopTraversal;};Spry.Widget.Button.prototype.disable=function()
{this.disabled=true;this.removeClassName(this.element,this.downClass);this.removeClassName(this.element,this.hoverClass);this.addClassName(this.element,this.disabledClass);this.removeEventListener(document,"mouseup",this.mouseUpCallback,true);};Spry.Widget.Button.prototype.enable=function()
{this.disabled=false;this.removeClassName(this.element,this.disabledClass);};Spry.Widget.Button.prototype.focus=function()
{if(this.disabled)
return false;if(this.focusElement)
this.focusElement.focus();};})();;(function(){if(typeof Spry=="undefined"||!Spry.Widget||!Spry.Widget.Base)
{alert("SpryPanelSet.js requires SpryWidget.js!");return;}
Spry.Widget.PanelSet=function(elements,opts)
{Spry.Widget.Base.call(this);this.elements=elements?Spry.$$(elements):[];this.currentPanel=null;this.displayTimerID=0;this.setOptions(this,Spry.Widget.PanelSet.config);this.setOptions(this,opts);if(typeof(this.defaultPanel)=="number")
{if(this.defaultPanel<0)
this.defaultPanel=0;else
{var count=this.getPanelCount();if(this.defaultPanel>=count)
this.defaultPanel=(count>1)?(count-1):0;}}
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:false,displayInterval:4000,visibleClass:"PanelVisible",hiddenClass:"PanelHidden"}
Spry.Widget.PanelSet.prototype.initialize=function()
{var evt=new Spry.Widget.Event(this);this.notifyObservers("onPreInitialize",evt);if(!evt.performDefaultAction)
return;this.defaultPanel=this.indexToElement(this.defaultPanel);var panels=this.getPanels();for(var i=0;i<panels.length;i++)
{var ele=panels[i];var addClass=this.hiddenClass;var removeClass=this.visibleClass;if(ele==this.defaultPanel)
{addClass=this.visibleClass;removeClass=this.hiddenClass;this.currentPanel=this.defaultPanel;}
Spry.Utils.addClassName(ele,addClass);Spry.Utils.removeClassName(ele,removeClass);}
if(this.autoPlay)
this.play();this.notifyObservers("onPostInitialize",evt);};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(panel)
{var panels=this.getPanels();for(var i=0;i<panels.length;i++)
{if(panel==panels[i])
return i;}
return-1;};Spry.Widget.PanelSet.prototype.getPanel=function(panelIndex)
{return this.getPanels()[panelIndex];};Spry.Widget.PanelSet.prototype.indexToElement=function(eleOrIndex)
{if(typeof eleOrIndex=="number")
return this.getPanels()[eleOrIndex];return eleOrIndex?Spry.$$(eleOrIndex)[0]:eleOrIndex;};Spry.Widget.PanelSet.prototype.elementToIndex=function(eleOrIndex)
{var panels=this.getPanels();if(typeof eleOrIndex=="number")
return panels[eleOrIndex];if(typeof eleOrIndex=="string")
eleOrIndex=Spry.$$(eleOrIndex)[0];return!eleOrIndex?-1:panels.indexOf(eleOrIndex);};Spry.Widget.PanelSet.prototype.createEvent=function(target,opts)
{var eopts={target:target,targetIndex:this.getPanelIndex(target)};return new Spry.Widget.Event(this,this.setOptions(eopts,opts));};Spry.Widget.PanelSet.prototype.showPanel=function(eleOrIndex)
{var ele=this.indexToElement(eleOrIndex);if(ele&&ele!=this.currentPanel)
{var evt=this.createEvent(ele,{currentPanel:this.currentPanel});this.notifyObservers("onPreShowPanel",evt);if(evt.performDefaultAction)
{if(this.currentPanel)
this.hidePanel(this.currentPanel);this.currentPanel=ele;Spry.Utils.addClassName(ele,this.visibleClass);Spry.Utils.removeClassName(ele,this.hiddenClass);this.notifyObservers("onPostShowPanel",evt);}}};Spry.Widget.PanelSet.prototype.hidePanel=function(eleOrIndex)
{var evt=this.createEvent(this.currentPanel);this.notifyObservers("onPreHidePanel",evt);if(evt.performDefaultAction)
{var ele=this.currentPanel;Spry.Utils.addClassName(ele,this.hiddenClass);Spry.Utils.removeClassName(ele,this.visibleClass);this.currentPanel=null;this.notifyObservers("onPostHidePanel",evt);}};Spry.Widget.PanelSet.prototype.showPreviousPanel=function()
{var evt=new Spry.Widget.Event(this);this.notifyObservers("onPreShowPreviousPanel",evt);if(!evt.performDefaultAction)
return;var curIndex=this.getCurrentPanelIndex();this.showPanel(((curIndex<1)?this.getPanelCount():curIndex)-1);this.notifyObservers("onPostShowPreviousPanel",evt);};Spry.Widget.PanelSet.prototype.showNextPanel=function()
{var evt=new Spry.Widget.Event(this);this.notifyObservers("onPreShowNextPanel",evt);if(!evt.performDefaultAction)
return;this.showPanel((this.getCurrentPanelIndex()+1)%this.getPanelCount());this.notifyObservers("onPostShowNextPanel",evt);};Spry.Widget.PanelSet.prototype.showFirstPanel=function()
{var evt=new Spry.Widget.Event(this);this.notifyObservers("onPreShowFirstPanel",evt);if(!evt.performDefaultAction)
return;this.showPanel(0);this.notifyObservers("onPostShowFirstPanel",evt);};Spry.Widget.PanelSet.prototype.showLastPanel=function()
{var evt=new Spry.Widget.Event(this);this.notifyObservers("onPreShowLastPanel",evt);if(!evt.performDefaultAction)
return;var count=this.getPanelCount();this.showPanel(count>0?count-1:0);this.notifyObservers("onPostShowLastPanel",evt);};Spry.Widget.PanelSet.prototype.startTimer=function()
{this.stopTimer();var self=this;this.displayTimerID=setTimeout(function(){self.showNextPanel();self.startTimer();},this.displayInterval);};Spry.Widget.PanelSet.prototype.stopTimer=function()
{if(this.displayTimerID)
clearTimeout(this.displayTimerID);this.displayTimerID=0;};Spry.Widget.PanelSet.prototype.isPlaying=function()
{return this.displayTimerID!=0;};Spry.Widget.PanelSet.prototype.play=function()
{var evt=new Spry.Widget.Event(this);this.notifyObservers("onPreStartSlideShowMode",evt);if(!evt.performDefaultAction)
return;this.startTimer();this.notifyObservers("onPostStartSlideShowMode",evt);};Spry.Widget.PanelSet.prototype.stop=function()
{var evt=new Spry.Widget.Event(this);this.notifyObservers("onPreStopSlideShowMode",evt);if(!evt.performDefaultAction)
return;this.stopTimer();this.notifyObservers("onPostStopSlideShowMode",evt);};})();(function(){if(typeof Spry=="undefined"||!Spry.Widget||!Spry.Widget.Base)
{alert("SpryPanelSelector.js requires SpryWidget.js!");return;}
Spry.Widget.PanelSelector=function(elements,panel,opts)
{Spry.Widget.Base.call(this);this.buttons=Spry.$$(elements);this.panel=panel;this.disablePanelCallbacks=0;this.currentButton=null;this.setOptions(this,Spry.Widget.PanelSelector.config);this.setOptions(this,opts);if(typeof(this.defaultButton)=="number")
{if(this.defaultButton<0)
this.defaultButton=0;else
{var count=this.getButtonCount();if(this.defaultButton>=count)
this.defaultButton=(count>1)?(count-1):0;}}
this.attachBehaviors();};Spry.Widget.PanelSelector.config={event:"click",defaultButton:0,selectionStopsSlideShow:true,useHrefs:false,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(ele)
{if(ele)
{var href=ele.getAttribute("href");if(href!=undefined&&href.search(/^#\w/)!=-1)
return href.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(ele)
{var ea=this.buttons;var n=ea.length;for(var i=0;i<n;i++)
if(ea[i]==ele)return i;return-1;};Spry.Widget.PanelSelector.prototype.indexToElement=function(eleOrIndex)
{return(typeof eleOrIndex=="number")?this.buttons[eleOrIndex]:eleOrIndex;};Spry.Widget.PanelSelector.prototype.enableButton=function(eleOrIndex)
{var ele=this.indexToElement(eleOrIndex);if(ele&&ele.psButton)
ele.psButton.enable();};Spry.Widget.PanelSelector.prototype.disableButton=function(eleOrIndex)
{var ele=this.indexToElement(eleOrIndex);if(ele&&ele.psButton)
ele.psButton.disable();};Spry.Widget.PanelSelector.prototype.focusButton=function(eleOrIndex)
{var ele=this.indexToElement(eleOrIndex);if(ele&&ele.psButton)
ele.psButton.focus();};Spry.Widget.PanelSelector.prototype.selectButton=function(eleOrIndex,suppressPanelSync)
{++this.disablePanelCallbacks;var buttons=this.buttons;var ele=this.indexToElement(eleOrIndex);for(var i=0;i<buttons.length;i++)
{var e=buttons[i];this.removeClassName(e,(e==ele)?this.unselectedClass:this.selectedClass);this.addClassName(e,(e==ele)?this.selectedClass:this.unselectedClass);}
this.currentButton=ele;if(!suppressPanelSync&&this.panel)
{var href=this.useHrefs?this.getPanelIDFromHREF(ele):null;this.panel.showPanel(href?href:this.elementToIndex(ele));}
--this.disablePanelCallbacks;};Spry.Widget.PanelSelector.prototype.selectPreviousButton=function()
{var evt=new Spry.Widget.Event(this);this.notifyObservers("onPrePanelSelectorSelectPreviousButton",evt);if(!evt.performDefaultAction)
return;var curIndex=this.getCurrentButtonIndex();this.handleActivate(((curIndex<1)?this.getButtonCount():curIndex)-1);this.notifyObservers("onPostPanelSelectorSelectPreviousButton",evt);};Spry.Widget.PanelSelector.prototype.selectNextButton=function()
{var evt=new Spry.Widget.Event(this);this.notifyObservers("onPrePanelSelectorSelectNextButton",evt);if(!evt.performDefaultAction)
return;this.handleActivate((this.getCurrentButtonIndex()+1)%this.getButtonCount());this.notifyObservers("onPostPanelSelectorSelectNextButton",evt);};Spry.Widget.PanelSelector.prototype.selectFirstButton=function()
{var evt=new Spry.Widget.Event(this);this.notifyObservers("onPrePanelSelectorSelectFirstButton",evt);if(!evt.performDefaultAction)
return;this.handleActivate(0);this.notifyObservers("onPostPanelSelectorSelectFirstButton",evt);};Spry.Widget.PanelSelector.prototype.selectLastButton=function()
{var evt=new Spry.Widget.Event(this);this.notifyObservers("onPrePanelSelectorSelectLastButton",evt);if(!evt.performDefaultAction)
return;var count=this.getButtonCount();this.handleActivate(count>0?count-1:0);this.notifyObservers("onPostPanelSelectorSelectLastButton",evt);};Spry.Widget.PanelSelector.prototype.handleActivate=function(ele)
{if(typeof ele=="string")
ele=document.getElementById(ele);var evt=new Spry.Widget.Event(this,{target:ele,targetIndex:this.elementToIndex(ele)});this.notifyObservers("onPrePanelSelectorClick",evt);if(!evt.performDefaultAction)
return;if(this.selectionStopsSlideShow&&this.panel)
this.panel.stop();this.selectButton(ele);this.notifyObservers("onPostPanelSelectorClick",evt);};Spry.Widget.PanelSelector.prototype.handlePanelChange=function(data)
{if(this.disablePanelCallbacks)
return;var panelEle=data.target;var panelIndex=data.targetIndex;if(!this.panel)
return;var panelID=panelEle.id;var btns=this.buttons;var btn=btns[panelIndex];if(panelID)
{for(var i=0;!btn&&i<btns.length;i++)
{var b=btns[i];var id=this.getPanelIDFromHREF(b);if(id==panelID)
{btn=b;break;}}}
if(btn)
this.selectButton(btn,true);};Spry.Widget.PanelSelector.prototype.attachButtonBehaviors=function(ele)
{var self=this;var activateFunc=function(e){self.handleActivate(ele);return false;};ele.psButton=new Spry.Widget.Button(ele,{onclick:activateFunc,downClass:this.downClass,hoverClass:this.hoverClass,disabledClass:this.disabledClass,focusedClass:this.focusedClass});if(this.event!="click")
this.addEventListener(ele,this.event,activateFunc,false);};Spry.Widget.PanelSelector.prototype.attachBehaviors=function()
{var self=this;var buttons=this.buttons;for(var i=0;i<buttons.length;i++)
this.attachButtonBehaviors(buttons[i]);if(this.panel)
this.panel.addObserver({onPostShowPanel:function(n,data){self.handlePanelChange(data);}});this.selectButton(this.defaultButton);};})();(function(){if(typeof Spry=="undefined"||!Spry.Widget||!Spry.Widget.Base)
{alert("SpryTabbedPanels2.js requires SpryWidget.js!");return;}
if(!Spry.Widget)Spry.Widget={};var defaultConfig={event:"click",hideHeader:true,tabsPosition:"top",autoPlay:false,displayInterval:5000,stopOnUserAction:true,injectionType:"replace",tabSelector:"h1,h2,h3,h4,h5,h6",contentDelimiterSelector:null,widgetClass:"TabbedPanels",tabClass:"TabbedPanelsTab",contentClass:"TabbedPanelsContent",tabHoverClass:"TabbedPanelsTabHover",tabSelectedClass:"TabbedPanelsTabSelected",tabFocusedClass:"TabbedPanelsTabFocused",panelVisibleClass:"TabbedPanelsContentVisible",groupClassStr:"Group",firstClassStr:"First",lastClassStr:"Last",plugIns:[],sliceMap:{},classToRemove:"",classToAdd:"",enableKeyboardNavigation:true};Spry.Widget.TabbedPanels2=function(element,opts)
{this.element=this.getElement(element);this.widgetRoot=null;this.tgObj=null;this.cgObj=null;this.setOptions(this,Spry.Widget.TabbedPanels2.config);this.setOptions(this,opts);if(this.tabsPosition=="bottom"||this.tabsPosition=="right"){this.tabsAfterContent=true;}else{this.tabsAfterContent=false;}
this.initializePlugIns(Spry.Widget.TabbedPanels2.config.plugIns,opts);var evt=new Spry.Widget.Event(this);this.notifyObservers("onPreInitialize",evt);if(!evt.performDefaultAction)
return;this.transformMarkup();this.attachBehaviors();this.notifyObservers("onPostInitialize",evt);};Spry.Widget.TabbedPanels2.config=defaultConfig;Spry.Widget.TabbedPanels2.prototype=new Spry.Widget.Base();Spry.Widget.TabbedPanels2.prototype.constructor=Spry.Widget.TabbedPanels2;Spry.Widget.TabbedPanels2.prototype.transformMarkup=function()
{var evt=new Spry.Widget.Event(this);this.notifyObservers("onPreTransformMarkup",evt);if(!evt.performDefaultAction)
return;var tabContent=Spry.$$(this.tabSelector,this.element);var delimSelector=this.contentDelimiterSelector;if(!delimSelector)
delimSelector=this.tabSelector;var delimiters=Spry.$$(delimSelector,this.element);if(tabContent.length!=delimiters.length)
alert("SpryTabbedPanels2.js - WARNING: Mismatch between tab elements and content delimiters!");if(tabContent.length==0)
{alert("SpryTabbedPanels2.js - ERROR: Failed to find tab markup.");return;}
var root=this.createOptionalSlicedStructure(null,"div",this.widgetClass);if(this.widgetID)
root.id=this.widgetID;this.tgObj=this.createOptionalSlicedStructure(null,"div",this.tabClass+this.groupClassStr);var numTabs=tabContent.length;var lastTabIndex=numTabs-1;for(var i=0;i<numTabs;i++)
{var t=this.createOptionalSlicedStructure(null,"div",this.tabClass);var txt=this.getElementText(tabContent[i]);var linkEle=document.createElement("a");linkEle.href="#";linkEle.appendChild(document.createTextNode(txt));t.contentContainer.appendChild(linkEle);if(i==0)
this.addClassName(t,this.tabClass+this.firstClassStr);if(i==lastTabIndex)
this.addClassName(t,this.tabClass+this.lastClassStr);this.tgObj.contentContainer.appendChild(t);if(tabContent[i].id){t.id=tabContent[i].id;tabContent[i].removeAttribute("id");}
var ti=parseInt(tabContent[i].getAttribute("tabIndex"));if(!isNaN(ti)){t.tabIndex=tabContent[i].tabIndex;tabContent[i].removeAttribute("tabindex");}
if(this.hideHeader)
tabContent[i].style.display="none";}
this.cgObj=this.createOptionalSlicedStructure(null,"div",this.contentClass+this.groupClassStr);for(var i=0;i<delimiters.length;i++)
{var c=this.createOptionalSlicedStructure(null,"div",this.contentClass);this.cgObj.contentContainer.appendChild(c);var d=delimiters[i];var nd=delimiters[i+1];while(d&&d!=nd)
{var ns=d.nextSibling;c.contentContainer.appendChild(d);d=ns;}
if(this.hideHeader)
delimiters[i].style.display="none";}
while(this.element.firstChild)
this.element.removeChild(this.element.firstChild);if(this.tabsAfterContent)
{root.contentContainer.appendChild(this.cgObj);root.contentContainer.appendChild(this.tgObj);}
else
{root.contentContainer.appendChild(this.tgObj);root.contentContainer.appendChild(this.cgObj);}
if(this.injectionType=="replace")
{var parent=this.element.parentNode;parent.replaceChild(root,this.element);this.element=root;}
else
{this.element.innerHTML="";this.element.appendChild(root);}
this.widgetRoot=root;if(this.tabsPosition=="bottom")
{this.addClassName(this.widgetRoot,"BTabbedPanels");}
if(this.tabsPosition=="left"||this.tabsPosition=="right")
{this.removeClassName(this.widgetRoot,"TabbedPanels");this.addClassName(this.widgetRoot,"VTabbedPanels");}
if(this.classToRemove)
this.removeClassName(this.widgetRoot,this.classToRemove);if(this.classToAdd)
this.addClassName(this.widgetRoot,this.classToAdd);this.notifyObservers("onPostTransformMarkup",evt);};Spry.Widget.TabbedPanels2.prototype.getElementText=function(ele)
{var ta=[];var c=ele.firstChild;while(c)
{if(c.nodeType==3||c.nodeType==4)
ta.push(c.data);else if(c.firstChild)
{var str=this.getElementText(c);if(str)
ta.push(str);}
c=c.nextSibling;}
return ta.join("");};Spry.Widget.TabbedPanels2.prototype.getTabs=function()
{var tabs=[];if(this.element&&this.tgObj&&this.tgObj.contentContainer)
tabs=this.getElementChildren(this.tgObj.contentContainer);return tabs;};Spry.Widget.TabbedPanels2.prototype.getContentPanels=function()
{var panels=[];if(this.element&&this.cgObj&&this.cgObj.contentContainer)
panels=this.getElementChildren(this.cgObj.contentContainer);return panels;};Spry.Widget.TabbedPanels2.prototype.getTabbedPanelCount=function(ele)
{return Math.min(this.panelSelector.getButtonCount(),this.panelSet.getPanelCount());};Spry.Widget.TabbedPanels2.prototype.getTabIndex=function(ele)
{return this.panelSelector.elementToIndex(ele);};Spry.Widget.TabbedPanels2.prototype.getCurrentTabIndex=function()
{return this.panelSelector.getCurrentButtonIndex();};Spry.Widget.TabbedPanels2.prototype.showPanel=function(idxOrId){this.panelSelector.handleActivate(idxOrId);};Spry.Widget.TabbedPanels2.prototype.showPreviousPanel=function()
{this.panelSelector.selectPreviousButton();};Spry.Widget.TabbedPanels2.prototype.showNextPanel=function()
{this.panelSelector.selectNextButton();};Spry.Widget.TabbedPanels2.prototype.showFirstPanel=function()
{this.panelSelector.selectFirstButton();};Spry.Widget.TabbedPanels2.prototype.showLastPanel=function()
{this.panelSelector.selectLastButton();};Spry.Widget.TabbedPanels2.prototype.markOpenPanel=function(panel)
{var panels=this.panelSet.getPanels();for(var i=0;i<panels.length;i++)
{var p=panels[i];if(panel==p)
{this.addClassName(p,this.panelVisibleClass);p.style.display="block";}else{this.removeClassName(p,this.panelVisibleClass);p.style.display="none";}}};Spry.Widget.TabbedPanels2.prototype.attachBehaviors=function()
{var evt=new Spry.Widget.Event(this);this.notifyObservers("onPreAttachBehaviors",evt);if(!evt.performDefaultAction)
return;this.attachViewBehaviors();this.attachTabBehaviors();this.notifyObservers("onPostAttachBehaviors",evt);};Spry.Widget.TabbedPanels2.prototype.attachViewBehaviors=function()
{var evt=new Spry.Widget.Event(this);this.notifyObservers("onPreAttachViewBehaviors",evt);if(!evt.performDefaultAction)
return;var panels=this.getContentPanels();this.panelSet=new Spry.Widget.PanelSet(panels,{defaultPanel:this.defaultTab,autoPlay:this.autoPlay,displayInterval:this.displayInterval,visibleClass:this.panelVisibleClass});var self=this;this.panelSet.addObserver({onPostShowPanel:function(n,d){self.markOpenPanel(d.target);}});var p=this.panelSet.getCurrentPanel();if(p){this.markOpenPanel(p);}
this.notifyObservers("onPostAttachViewBehaviors",evt);};Spry.Widget.TabbedPanels2.prototype.attachTabBehaviors=function()
{var evt=new Spry.Widget.Event(this);this.notifyObservers("onPreAttachTabBehaviors",evt);if(!evt.performDefaultAction)
return;var tabs=this.getTabs();this.panelSelector=new Spry.Widget.PanelSelector(tabs,this.panelSet,{event:this.event,selectionStopsSlideShow:this.stopOnUserAction,defaultButton:this.defaultTab,selectedClass:this.tabSelectedClass,focusedClass:this.tabFocusedClass,hoverClass:this.tabHoverClass});this.notifyObservers("onPostAttachTabBehaviors",evt);};})();;(function(){if(typeof Spry=="undefined"||!Spry.Widget||!Spry.Widget.TabbedPanels2)
{alert("SpryFadingPanelsPlugin.js requires SpryTabbedPanels2.js!");return;}
var gFPP=Spry.Widget.TabbedPanels2.FadingPanelsPlugin={initialize:function(tp2)
{tp2.addObserver(this);},getOptions:function(tp2){var optMap={"defaultTab":"defaltPanel","autoPlay":"autoPlay","stopOnUserAction":"selectionStopsSlideShow","displayInterval":"displayInterval","minDuration":"minDuration","maxDuration":"maxDuration","stoppedMinDuration":"stoppedMinDuration","stoppedMaxDuration":"stoppedMaxDuration","panelVisibleClass":"visibleClass"};var options={};for(var opt in optMap){if(typeof(tp2[opt])!="undefined"){options[optMap[opt]]=tp2[opt];}}
options.parallelTransition=false;return options;},onPreAttachViewBehaviors:function(tp2,evt){var options=this.getOptions(tp2);tp2.panelSet=new Spry.Widget.FadingPanels(tp2.getContentPanels(),options);tp2.panelSet.addObserver({onPreShowPanelEffect:function(n,d){tp2.markOpenPanel(d.target);}});var p=tp2.panelSet.getCurrentPanel();if(p){tp2.markOpenPanel(p);}
evt.preventDefault();},onPostShowSlide:function(tp2,evt)
{}};})();;(function(){if(typeof Spry=="undefined"||!Spry.Widget||!Spry.Widget.TabbedPanels2)
{alert("SpryTabbedPanelsKeyNavigationPlugin.js requires SpryTabbedPanels2.js!");return;}
var KNP=Spry.Widget.TabbedPanels2.KeyNavigationPlugin={initialize:function(tb)
{tb.addObserver(this);},KEY_UP:38,KEY_DOWN:40,KEY_LEFT:37,KEY_RIGHT:39,KEY_ENTER:13,KEY_SPACE:32,handleOnButtonKeyDown:function(e,tb,btn)
{var currentIndex=tb.panelSelector.elementToIndex(btn);if(currentIndex!=-1)
{var key=e.keyCode;var nextIndex=-1;switch(key)
{case KNP.KEY_LEFT:case KNP.KEY_UP:if(currentIndex>0)
nextIndex=currentIndex-1;else
nextIndex=tb.panelSelector.getButtonCount()-1;break;case KNP.KEY_RIGHT:case KNP.KEY_DOWN:if(currentIndex<tb.panelSelector.getButtonCount()-1)
nextIndex=currentIndex+1;else
nextIndex=0;break;case KNP.KEY_SPACE:case KNP.KEY_ENTER:nextIndex=currentIndex;break;}
if(nextIndex!=-1)
{tb.panelSelector.handleActivate(nextIndex);tb.panelSelector.focusButton(nextIndex);return Spry.Utils.cancelEvent(e);}}},onPostAttachTabBehaviors:function(tb,evt)
{if(tb.enableKeyboardNavigation&&tb.panelSelector){for(var i=0;i<tb.panelSelector.buttons.length;i++){tb.panelSelector.buttons[i].psButton.addObserver({onButtonKeyDown:function(btn,e){KNP.handleOnButtonKeyDown(e.event,tb,e.element);}});}}}};Spry.Widget.TabbedPanels2.config.plugIns.push(Spry.Widget.TabbedPanels2.KeyNavigationPlugin);})();;(function(){if(typeof Spry=="undefined"||!Spry.Widget||!Spry.Widget.Base)
{alert("SpryMenu.js requires SpryWidget.js!");return;}
var defaultConfig={plugIns:[],mainMenuShowDelay:200,mainMenuHideDelay:0,subMenuShowDelay:200,subMenuHideDelay:300,enableHoverNavigation:true,insertMenuBarBreak:false,insertSubMenuBreak:false,widgetID:null,widgetClass:"MenuBar",menuBarViewClass:"MenuBarView",menuBarBreakClass:"MenuBarBreak",subMenuClass:"SubMenu",subMenuViewClass:"SubMenuView",subMenuBreakClass:"SubMenuBreak",subMenuVisibleClass:"SubMenuVisible",menuItemContainerClass:"MenuItemContainer",menuItemContainerHoverClass:"MenuItemContainerHover",menuItemClass:"MenuItem",menuItemHoverClass:"MenuItemHover",menuItemSelectedClass:"MenuItemSelected",menuItemLabelClass:"MenuItemLabel",menuItemWithSubMenuClass:"MenuItemWithSubMenu",menuItemFirstClass:"MenuItemFirst",menuItemLastClass:"MenuItemLast",menuLevelClassPrefix:"MenuLevel",sliceMap:{}};Spry.Widget.MenuBar2=function(ele,opts)
{Spry.Widget.Base.call(this);this.element=Spry.$$(ele)[0];this.setOptions(this,Spry.Widget.MenuBar2.config);this.setOptions(this,opts);this.showMenuTimer=0;this.menuToShow=null;this.hideMenuTimer=0;this.menuToHide=null;this.currentMenuItem=null;this.currentSubMenu=null;this.initializePlugIns(Spry.Widget.MenuBar2.config.plugIns,opts);var evt=new Spry.Widget.Event(this);this.notifyObservers("onPreInitialize",evt);if(!evt.performDefaultAction)
return;this.transformMarkup();this.attachBehaviors();this.notifyObservers("onPostInitialize",evt);};Spry.Widget.MenuBar2.prototype=new Spry.Widget.Base();Spry.Widget.MenuBar2.prototype.constructor=Spry.Widget.MenuBar2;Spry.Widget.MenuBar2.config=defaultConfig;Spry.Widget.MenuBar2.prototype.transformMarkup=function()
{var evt=new Spry.Widget.Event(this);this.notifyObservers("onPreTransformMarkup",evt);if(!evt.performDefaultAction)
return;var eles=Spry.$$("a",this.element);for(var i=0;i<eles.length;i++)
{var a=eles[i];var ca=this.extractChildNodes(a);this.createOptionalSlicedStructure(a,"span",this.menuItemClass);var label=this.createOptionalSlicedStructure(null,"span",this.menuItemLabelClass);this.appendChildNodes(label.contentContainer,ca);a.contentContainer.appendChild(label);}
var eles=Spry.$$("li",this.element);for(var i=0;i<eles.length;i++)
this.addClassName(eles[i],this.menuItemContainerClass);var eles=Spry.$$("ul",this.element);for(var i=0;i<eles.length;i++)
{var ul=eles[i];this.addClassName(ul,this.subMenuViewClass);var sm=this.createOptionalSlicedStructure(null,"div",this.subMenuClass);ul.parentNode.insertBefore(sm,ul);sm.contentContainer.appendChild(ul);var mi=this.getMenuItemForSubMenu(sm);if(mi)
this.addClassName(mi,this.menuItemWithSubMenuClass);if(this.insertSubMenuBreak)
{var br=document.createElement("br");this.addClassName(br,this.subMenuBreakClass);sm.contentContainer.appendChild(br);}}
var sms=Spry.$$("."+this.subMenuClass,this.element);var r=this.element;for(var i=0;i<sms.length;i++)
{var e=sms[i].parentNode;var level=1;while(e&&e!=r)
{if(this.hasClassName(e,this.subMenuClass))
level++;e=e.parentNode;}
this.addClassName(sms[i],this.menuLevelClassPrefix+level);}
var root=this.createOptionalSlicedStructure(null,"div",this.widgetClass);var oldRoot=this.element;oldRoot.parentNode.insertBefore(root,oldRoot);root.contentContainer.appendChild(oldRoot);this.addClassName(oldRoot,this.menuBarViewClass);this.element=root;if(this.insertMenuBarBreak)
{var br=document.createElement("br");this.addClassName(br,this.menuBarBreakClass);root.contentContainer.appendChild(br);}
var eles=Spry.$$("."+this.menuBarViewClass+", ."+this.subMenuViewClass,this.element);for(var i=0;i<eles.length;i++)
{var containers=this.getElementChildren(eles[i]);if(containers.length)
{this.addClassName(this.getElementChildren(containers[0])[0],this.menuItemFirstClass);this.addClassName(this.getElementChildren(containers[containers.length-1])[0],this.menuItemLastClass);}}
if(this.widgetID)
{if(oldRoot.id==this.widgetID)
oldRoot.id="";root.id=this.widgetID;}
this.notifyObservers("onPostTransformMarkup",evt);};Spry.Widget.MenuBar2.prototype.getMenuLevel=function(m)
{var level=0;while(m)
{m=this.getParentMenuForElement(m,true);if(m)++level;}
return level;};Spry.Widget.MenuBar2.prototype.getFirstSiblingWithClass=function(ele,className)
{if(ele&&className)
{var eles=this.getElementChildren(ele.parentNode);for(var i=0;i<eles.length;i++)
{var e=eles[i];if(this.hasClassName(e,className))
return e;}}
return null;};Spry.Widget.MenuBar2.prototype.getSubMenuForMenuItem=function(mi)
{return this.getFirstSiblingWithClass(mi,this.subMenuClass);};Spry.Widget.MenuBar2.prototype.getMenuItemForSubMenu=function(subMenu)
{return this.getFirstSiblingWithClass(subMenu,this.menuItemClass);};Spry.Widget.MenuBar2.prototype.getParentMenuForElement=function(ele,treatMenuBarAsMenu)
{while(ele&&ele!=this.element)
{ele=ele.parentNode;if(this.hasClassName(ele,this.subMenuClass)||(treatMenuBarAsMenu&&this.hasClassName(ele,this.widgetClass)))
return ele;}
return null;};Spry.Widget.MenuBar2.prototype.getMenuItemsForMenu=function(ele)
{var results=[];if(ele&&ele.contentContainer)
{var view=this.getElementChildren(ele.contentContainer)[0];if(view)
{var miContainers=this.getElementChildren(view);if(miContainers.length)
{for(var i=0;i<miContainers.length;i++)
{var mi=Spry.$$("."+this.menuItemClass,miContainers[i])[0];if(mi)
results.push(mi);}}}}
return results;};Spry.Widget.MenuBar2.prototype.clearPendingShowRequest=function(subMenu)
{if(!subMenu||this.menuToShow==subMenu)
{if(this.showMenuTimer)
clearTimeout(this.showMenuTimer);this.showMenuTimer=0;this.menuToShow=null;}};Spry.Widget.MenuBar2.prototype.flushPendingShowRequest=function()
{var mts=this.menuToShow;this.clearPendingShowRequest();if(mts)this.showSubMenu(mts);};Spry.Widget.MenuBar2.prototype.triggerShowRequestForSubMenu=function(subMenu)
{if(subMenu)
{this.clearPendingHideRequest(subMenu);if(this.menuToShow!=subMenu&&!this.hasClassName(subMenu,this.subMenuVisibleClass))
{if(this.showMenuTimer)
clearTimeout(this.showMenuTimer);var self=this;this.menuToShow=subMenu;var delay=this.getMenuLevel(subMenu)>1?this.subMenuShowDelay:this.mainMenuShowDelay;if(delay<=0)
this.flushPendingShowRequest();else
this.showMenuTimer=setTimeout(function(){self.flushPendingShowRequest();},delay);}}};Spry.Widget.MenuBar2.prototype.clearPendingHideRequest=function(subMenu)
{if(!subMenu||this.menuToHide==subMenu||Spry.Utils.isDescendant(this.menuToHide,subMenu))
{if(this.hideMenuTimer)
clearTimeout(this.hideMenuTimer);this.hideMenuTimer=0;this.menuToHide=null;}};Spry.Widget.MenuBar2.prototype.flushPendingHideRequest=function()
{var mth=this.menuToHide;this.clearPendingHideRequest();if(mth)
{var cmi=this.currentMenuItem;var m=this.getParentMenuForElement(cmi);var sm=this.getSubMenuForMenuItem(cmi);this.hideSubMenu(mth,(sm?sm:m));}};Spry.Widget.MenuBar2.prototype.triggerHideRequestForSubMenu=function(subMenu)
{if(subMenu)
{this.clearPendingShowRequest(subMenu);if(this.menuToHide!=subMenu)
{this.flushPendingHideRequest();var self=this;this.menuToHide=subMenu;var delay=this.getMenuLevel(subMenu)>1?this.subMenuHideDelay:this.mainMenuHideDelay;if(delay<1)
this.flushPendingHideRequest();else
this.hideMenuTimer=setTimeout(function(){self.flushPendingHideRequest();},delay);}}};Spry.Widget.MenuBar2.prototype.getElementAndAncestors=function(ele,classNameFilter)
{var root=this.element;var result=[];while(ele&&ele!=root)
{if(!classNameFilter||this.hasClassName(ele,classNameFilter))
result.unshift(ele);ele=ele.parentNode;}
return result;};Spry.Widget.MenuBar2.prototype.getSubMenuHierarchy=function(subMenu)
{return this.getElementAndAncestors(subMenu,this.subMenuClass);};Spry.Widget.MenuBar2.prototype.getMenuItemHierarchy=function(mi)
{var results=[];if(mi)
{results.push(mi);var m=this.getParentMenuForElement(mi);while(m)
{mi=this.getMenuItemForSubMenu(m);if(mi)
results.unshift(mi);m=this.getParentMenuForElement(m);}}
return results;};Spry.Widget.MenuBar2.prototype.pruneCommonAncestorElements=function(a,b)
{var result=[];var minLen=Math.min(a.length,b.length);for(var i=0;i<b.length;i++)
{if(i>=minLen||a[i]!=b[i])
result.push(b[i]);}
return result;};Spry.Widget.MenuBar2.prototype.hideSubMenu=function(subMenu,visibleSubMenu)
{if(subMenu)
{var smh=this.getSubMenuHierarchy(subMenu);var vmh=this.getSubMenuHierarchy(visibleSubMenu);smh=this.pruneCommonAncestorElements(vmh,smh);var evt=new Spry.Widget.Event(this,{subMenus:smh});this.notifyObservers("onPreHideSubMenuHierarchy",evt);if(!evt.performDefaultAction)
return;for(var i=0;i<smh.length;i++)
{var sm=smh[i];var mi=this.getMenuItemForSubMenu(sm);if(mi&&mi!=this.currentMenuItem)this.removeHoverClass(mi);this.removeClassName(sm,this.subMenuVisibleClass);if(sm==this.currentSubMenu)
this.currentSubMenu=this.getParentMenuForElement(sm);}
this.notifyObservers("onPostHideSubMenuHierarchy",evt);}};Spry.Widget.MenuBar2.prototype.showSubMenu=function(ele,forceSync)
{this.clearPendingHideRequest(ele);var csm=this.currentSubMenu;var isSameMenu=csm&&csm==ele;var isVisible=isSameMenu||(ele&&Spry.Utils.isDescendant(ele,csm));if(!isSameMenu)
{if(isVisible)
{if(forceSync)
this.hideSubMenu(csm,ele);this.currentSubMenu=ele;}
else
{if(!Spry.Utils.isDescendant(csm,ele))
this.hideSubMenu(csm,ele);this.flushPendingHideRequest();var nsmh=this.getSubMenuHierarchy(ele);var evt=new Spry.Widget.Event(this,{subMenus:nsmh});this.notifyObservers("onPreShowSubMenuHierarchy",evt);if(!evt.performDefaultAction)
return;for(var i=nsmh.length-1;i>=0;--i)
{var sm=nsmh[i];if(csm==ele)break;var mi=this.getMenuItemForSubMenu(sm);if(mi)this.addHoverClass(mi);this.addClassName(sm,this.subMenuVisibleClass);}
this.currentSubMenu=ele;this.notifyObservers("onPostShowSubMenuHierarchy",evt);}}};Spry.Widget.MenuBar2.prototype.addHoverClass=function(mi)
{var evt=new Spry.Widget.Event(this,{menuItem:mi});this.notifyObservers("onPreAddHoverClass",evt);if(!evt.performDefaultAction)
return;this.addClassName(mi,this.menuItemHoverClass);var mic=Spry.Utils.getAncestor(mi,"."+this.menuItemContainerClass);if(mic)
this.addClassName(mic,this.menuItemContainerHoverClass);this.notifyObservers("onPostAddHoverClass",evt);};Spry.Widget.MenuBar2.prototype.removeHoverClass=function(mi)
{var evt=new Spry.Widget.Event(this,{menuItem:mi});this.notifyObservers("onPreRemoveHoverClass",evt);if(!evt.performDefaultAction)
return;this.removeClassName(mi,this.menuItemHoverClass);var mic=Spry.Utils.getAncestor(mi,"."+this.menuItemContainerClass);if(mic)
this.removeClassName(mic,this.menuItemContainerHoverClass);this.notifyObservers("onPostRemoveHoverClass",evt);};Spry.Widget.MenuBar2.prototype.setCurrentMenuItem=function(ele,forceSync)
{var evt=new Spry.Widget.Event(this,{oldMenuItem:this.currentMenuItem,menuItem:ele});this.notifyObservers("onPreSetCurrentMenuItem",evt);if(!evt.performDefaultAction)
return;if(this.currentMenuItem)
{var ch=this.getMenuItemHierarchy(this.currentMenuItem);var eh=this.getMenuItemHierarchy(ele);ch=this.pruneCommonAncestorElements(eh,ch);for(var i=0;i<ch.length;i++)
this.removeHoverClass(ch[i]);}
this.currentMenuItem=ele;if(ele)
{this.addHoverClass(ele);var menu=this.getParentMenuForElement(ele);this.showSubMenu(menu,forceSync);}
this.notifyObservers("onPostSetCurrentMenuItem",evt);};Spry.Widget.MenuBar2.prototype.handleMenuItemClick=function(evt,ele)
{var oldCSM=this.currentSubMenu;this.setCurrentMenuItem(ele,true);var h=ele.getAttribute("href");h=h?h.replace(document.location,""):h;if(!h||h=="#")
{var sm=this.getSubMenuForMenuItem(ele);if(sm)
{if(oldCSM==sm&&!this.getParentMenuForElement(ele))
{this.setCurrentMenuItem(null);this.hideSubMenu(sm);return false;}
this.showSubMenu(sm,true);}
return false;}
return undefined;};Spry.Widget.MenuBar2.prototype.handleMenuItemEnter=function(evt,ele)
{if(this.currentMenuItem==ele)
return;this.setCurrentMenuItem(ele);var sm=this.getSubMenuForMenuItem(ele);if(sm)
this.triggerShowRequestForSubMenu(sm);};Spry.Widget.MenuBar2.prototype.handleMenuItemExit=function(evt,ele)
{var pm=this.getParentMenuForElement(ele);var sm=this.getSubMenuForMenuItem(ele);var rt=evt.relatedTarget?evt.relatedTarget:evt.toElement;if((rt==ele||Spry.Utils.isDescendant(ele,rt))||(rt==sm||Spry.Utils.isDescendant(sm,rt)))
return;this.removeHoverClass(ele);if(this.currentMenuItem==ele)
this.currentMenuItem=null;if(!sm)sm=(!Spry.Utils.isDescendant(pm,rt)?pm:null);if(sm)this.triggerHideRequestForSubMenu(sm);};Spry.Widget.MenuBar2.prototype.attachMenuItemBehaviors=function(ele,className,clickFunc)
{var evt=new Spry.Widget.Event(this,{menuItem:ele});this.notifyObservers("onPreAttachMenuItemBehaviors",evt);if(!evt.performDefaultAction)
return;var self=this;if(this.enableHoverNavigation)
{this.addEventListener(ele,"mouseover",function(evt){return self.handleMenuItemEnter(evt,ele);});this.addEventListener(ele,"mouseout",function(evt){return self.handleMenuItemExit(evt,ele);});}
this.addEventListener(ele,"click",function(evt){return self.handleMenuItemClick(evt,ele);});this.notifyObservers("onPostAttachMenuItemBehaviors",evt);};Spry.Widget.MenuBar2.prototype.attachBehaviors=function(link)
{var evt=new Spry.Widget.Event(this);this.notifyObservers("onPreAttachBehaviors",evt);if(!evt.performDefaultAction)
return;var mis=Spry.$$("."+this.menuItemClass,this.element);for(var i=0;i<mis.length;i++)
this.attachMenuItemBehaviors(mis[i],this.menuItemClass);this.notifyObservers("onPostAttachBehaviors",evt);};})();
