(function(){var B=YAHOO.util.Dom;var A=YAHOO.util.Event;SODON.widget.Popupmenu=function(D,C){this.init.apply(this,arguments)};SODON.widget.Popupmenu.cfg=function(C){SODON.widget.Popupmenu.cfg.superclass.constructor.apply(this,arguments)};YAHOO.extend(SODON.widget.Popupmenu.cfg,SODON.util.Config,{_DEFAULT_CONFIG:{objName:null,direction:"horizontal",rootmenu:null,submenuTar:null,uniqueId:"hor",_x1:5,_y1:5}});SODON.widget.Popupmenu.prototype={Config:null,_menus:null,_currSubmenus:new Array(),_currId:null,_hideTween:null,_hideTweenTime:1000,HORIZONTAL:"horizontal",VERTICAL:"vertical",HASCHILD:"haschild",init:function(D,C){this.Config={};this.cfg=new SODON.widget.Popupmenu.cfg(this);this.cfg.setupConfig();if(C){this.cfg.setConfig(C)}this._menus=D;this._buildSubmenus(this._menus,1,null);this._initRootmenuEvents()},_buildSubmenus:function(D,F,C,I){var H=this.cfg.getConfigProperty("uniqueId");var G=this.cfg.getConfigProperty("objName");var K=this.cfg.getConfigProperty("submenuTar");if(F>1){var M="";M+='<div id="'+H+"-popupmenu-par-"+C+'" class="popupmenu-submenu" onmouseover="'+G+'._submenuOnMouseover(this);" onmouseout="'+G+"._submenuOnMouseout(this, "+C+", "+I+');" style="display: none; top: 0; left: 0; z-index: '+F+'">';M+='<div class="popupmenu-submenu-in">';M+='<div class="popupmenu-submenu-in-in">'}for(var E=0;E<D.length;E++){if(D[E].items!=null){this._buildSubmenus(D[E].items,F+1,D[E]["id"],D[E]["parent_id"])}if(F>1){var J=D[E]["link"]!=null?D[E]["link"]:"javascript:void(0)";var L=D[E]["target"]!=null?'target="'+D[E]["target"]+'"':"";M+='<a href="'+J+'" id="'+H+"-popupmenu-"+D[E]["id"]+'" '+L+' class="'+(D[E].items==null?"":this.HASCHILD)+'" onmouseover="'+G+"._submenuItemOnMouseover(this, "+D[E]["id"]+", "+D[E]["parent_id"]+');" onmouseout="'+G+"._submenuItemOnMouseout(this, "+D[E]["id"]+", "+D[E]["parent_id"]+');">'+D[E]["label"]+"</a>"}}if(F>1){M+="</div>";M+="</div>";M+="</div>";B.get(K).innerHTML+=M}},_initRootmenuEvents:function(){var C=this;var E=B.get(this.cfg.getConfigProperty("rootmenu")).getElementsByTagName("a");for(var D=0;D<E.length;D++){E[D].id=this.cfg.getConfigProperty("uniqueId")+"-popupmenu-"+this._menus[D]["id"];if(this._menus[D].items!=null){B.addClass(E[D],this.HASCHILD)}A.on(E[D],"mouseover",function(G,F){B.addClass(this,"sel");C._showSubmenu(F.id,null)},{id:this._menus[D]["id"]});A.on(E[D],"mouseout",function(G,F){B.removeClass(this,"sel");C._hideTween=setTimeout(C.cfg.getConfigProperty("objName")+"._hideSubmenus("+F.id+", "+F.parent_id+")",C._hideTweenTime)},{id:this._menus[D]["id"],parent_id:this._menus[D]["parent_id"]})}},_showSubmenu:function(F,D){clearTimeout(this._hideTween);this._hideSubmenus(F,D);this._currId=F;this._currSubmenus.push(F);var E=0;var C=0;if(this.cfg.getConfigProperty("direction")==this.HORIZONTAL){if(D==null){E=B.getRegion(this.cfg.getConfigProperty("uniqueId")+"-popupmenu-"+F).left-B.getRegion(this.cfg.getConfigProperty("submenuTar")).left;C=B.getRegion(this.cfg.getConfigProperty("uniqueId")+"-popupmenu-"+F).bottom-B.getRegion(this.cfg.getConfigProperty("submenuTar")).top}else{E=B.getRegion(this.cfg.getConfigProperty("uniqueId")+"-popupmenu-"+F).right-B.getRegion(this.cfg.getConfigProperty("submenuTar")).left-this.cfg.getConfigProperty("_x1");C=B.getRegion(this.cfg.getConfigProperty("uniqueId")+"-popupmenu-"+F).top-B.getRegion(this.cfg.getConfigProperty("submenuTar")).top+this.cfg.getConfigProperty("_y1")}}else{E=B.getRegion(this.cfg.getConfigProperty("uniqueId")+"-popupmenu-"+F).right-B.getRegion(this.cfg.getConfigProperty("submenuTar")).left-this.cfg.getConfigProperty("_x1");C=B.getRegion(this.cfg.getConfigProperty("uniqueId")+"-popupmenu-"+F).top-B.getRegion(this.cfg.getConfigProperty("submenuTar")).top+this.cfg.getConfigProperty("_y1")}B.setStyle(this.cfg.getConfigProperty("uniqueId")+"-popupmenu-par-"+F,"left",E+"px");B.setStyle(this.cfg.getConfigProperty("uniqueId")+"-popupmenu-par-"+F,"top",C+"px");B.setStyle(this.cfg.getConfigProperty("uniqueId")+"-popupmenu-par-"+F,"display","")},_submenuOnMouseover:function(C){this._saveSubmenu()},_submenuOnMouseout:function(C,E,D){E=parseInt(E,10);D=parseInt(D,10);this._hideTween=setTimeout(this.cfg.getConfigProperty("objName")+"._hideSubmenus("+E+", "+D+")",this._hideTweenTime)},_submenuItemOnMouseover:function(C,E,D){B.addClass(C,"sel");this._showSubmenu(E,D)},_submenuItemOnMouseout:function(C,E,D){B.removeClass(C,"sel")},_saveSubmenu:function(){clearTimeout(this._hideTween)},_hideSubmenus:function(E,D){for(var C=this._currSubmenus.length-1;C>-1;C--){if(D==this._currSubmenus[C]){this._currSubmenus.push(E);break}B.setStyle(this.cfg.getConfigProperty("uniqueId")+"-popupmenu-par-"+this._currSubmenus[C],"display","none");this._currSubmenus.pop()}}}})();