//  Copyright (c) 2006. Adobe Systems Incorporated.
//    * Redistributions of source code must retain the above copyright notice,
//    * Redistributions in binary form must reproduce the above copyright notice,
//  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
//  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
var Spry;if(!Spry){Spry={};}
if(!Spry.Widget){Spry.Widget={};}
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;var isie=(typeof document.all !='undefined' && typeof window.opera=='undefined' && navigator.vendor !='KDE');if(typeof document.getElementById=='undefined' || (navigator.vendor=='Apple Computer, Inc.' && typeof window.XMLHttpRequest=='undefined') || (isie && typeof document.uniqueID=='undefined')){
return;}
if(opts){for(var k in opts){var rollover=new Image;rollover.src=opts[k];}}
if(this.element){this.currMenu=this.element;var items=this.element.getElementsByTagName('li');for(var i=0; i<items.length; i++){this.initialize(items[i], element, isie);if(isie){this.addClassName(items[i], "MenuBarItemIE");items[i].style.position="static";}}
if(isie){if(this.hasClassName(this.element, "MenuBarVertical")){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.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:false;';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.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, "MenuBarActive");};Spry.Widget.MenuBar.prototype.bubbledTextEvent=function(){return (navigator.vendor=='Apple Computer, Inc.' && (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, "MenuBarSubmenuVisible");if(typeof document.all !='undefined' && typeof window.opera=='undefined' && navigator.vendor !='KDE'){if(!this.hasClassName(this.element, "MenuBarHorizontal") || menu.parentNode.parentNode !=this.element){menu.style.top=menu.parentNode.offsetTop+'px';}}
if(typeof document.uniqueID !="undefined"){this.createIframeLayer(menu);}}
this.addClassName(this.element, "MenuBarActive");};Spry.Widget.MenuBar.prototype.hideSubmenu=function(menu){if(menu){this.removeClassName(menu, "MenuBarSubmenuVisible");if(typeof document.all !='undefined' && typeof window.opera=='undefined' && navigator.vendor !='KDE'){menu.style.top='';menu.style.left='';}
this.removeIframeLayer(menu);}};Spry.Widget.MenuBar.prototype.initialize=function(listitem, element, isie){var opentime, closetime;var link=listitem.getElementsByTagName('a')[0];var submenus=listitem.getElementsByTagName('ul');var menu=(submenus.length > 0 ? submenus[0] : null);var hasSubMenu=false;if(menu){this.addClassName(link, "MenuBarItemSubmenu");hasSubMenu=true;}
if(!isie){
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){if(self.bubbledTextEvent()){
return;}
clearTimeout(closetime);if(self.currMenu==listitem){self.currMenu=null;}
self.addClassName(link, hasSubMenu ? "MenuBarItemSubmenuHover" : "MenuBarItemHover");if(menu && !self.hasClassName(menu, "MenuBarSubmenuVisible")){opentime=window.setTimeout(function(){self.showSubmenu(menu);}, 0);}}, false);this.addEventListener(listitem, 'mouseout', function(e){if(self.bubbledTextEvent()){
return;}
var related=(typeof e.relatedTarget !='undefined' ? e.relatedTarget : e.toElement);if(!listitem.contains(related)){clearTimeout(opentime);self.currMenu=listitem;self.removeClassName(link, hasSubMenu ? "MenuBarItemSubmenuHover" : "MenuBarItemHover");if(menu){closetime=window.setTimeout(function(){self.hideSubmenu(menu);}, 0);}}}, false);};