
if(!window.DW){window.DW={};}
if(!window.Richfaces){window.Richfaces={};}
var PanelMenuStorage=new Object();PanelMenu=Class.create();PanelMenu.prototype={initialize:function(myId,so,selectedChild){this.childObj=new Array();this.expandSingle=so;this.lastExpanded=null;this.selectedChild=selectedChild;this.defaultSelectedClass='dr-pmenu-selected-item';this.userDefinedSelectedClass='rich-pmenu-selected-element';this.is='panelMenu';this.selectedNameInput=$(myId+'selectedItemName');PanelMenuStorage[myId]=this;}};PanelMenuItem=Class.create();PanelMenuItem.prototype={initialize:function(params,ids,options,hoveredStyles,hoveredClasses,level,haveDynamicIcon,action,opened,ajaxFunction,onItemHover,iconAlign,iconExpanded,iconCollapsed,iconSpacer){if(!ids.parentId){return};this.type=options.type;this.onopen=options.onopen;this.itemId=ids.myId;this.onclose=options.onclose;this.event=options.event;this.disabled=options.disabled;this.name=options.name;this.params=params;this.myId=ids.myId;this.mode=options.mode;if(!this.mode)
this.mode=("node"==this.type)?"none":"server";this.ajaxSubmit=ajaxFunction;this.onItemHover=onItemHover;this.target=options.target;this.hoveredStyles=hoveredStyles;this.hoveredClasses=hoveredClasses;this.tdhider=$(ids.myId);this.tablehider=$("tablehide"+ids.myId);this.haveDynamicIcon=haveDynamicIcon;if(this.haveDynamicIcon==true)
this.iconswitcher=$("icon"+ids.myId);this.childObj=new Array();this.parentObj=PanelMenuStorage[ids.parentId];this.parentObj.childObj.push(this);var parent=this.parentObj;while(parent){if(parent.is&&"panelMenu"==parent.is){this.expandSingle=parent.expandSingle;break;}
parent=parent.parentObj;}
this.rootMenu=parent;if(this.rootMenu.selectedChild==this.name){this.selected=true;}else{this.selected=false;}
this.clientId=ids.myId;this.obj=$(ids.myId);this.leftIcon=$('leftIcon'+ids.myId);this.rightIcon=$('rightIcon'+ids.myId);this.labelArea=$('icon'+ids.myId);this.content=document.getElementsByClassName("dr-pmenu-group-self-label",this.obj)[0];this.iconAlign=iconAlign;this.mainRow=$("row_"+ids.myId);this.iconCollapsed=iconCollapsed;this.iconExpanded=iconExpanded;this.iconSpacer=iconSpacer;if(action){this.action=action;}
PanelMenuStorage[ids.myId]=this;this.initialStyles=null;this.hasInitialSylesChecked=false;this._attachBehaviors();this.inputs=this._getDirectChildrenByTag(this.content,"INPUT");for(var i=0;i<this.inputs.length;i++){if(this.inputs[i].name.indexOf("panelMenuState")!=-1){this.inputState=this.inputs[i];}else if(this.inputs[i].name.indexOf("panelMenuAction")!=-1){this.inputAction=this.inputs[i];}}
if(opened){this.parentObj.lastExpanded=this;this.expand();}else{this.expanded=false;}
if(this.parentObj.type=="node"&&this.parentObj.expanded){if(this.type=="node")
this.tdhider.style.display="";}},collapse:function(){if(!this.disabled){if(this.expanded){if(this._getDirectChildrenByTag(this.content,"INPUT")[0]!=null){this._getDirectChildrenByTag(this.content,"INPUT")[0].value="closed";}
for(var i=0;i<this.childObj.length;i++){if(this.childObj[i]._getDirectChildrenByTag(this.childObj[i].content,"INPUT")[0]!=null){this.childObj[i]._getDirectChildrenByTag(this.childObj[i].content,"INPUT")[0].value="";}
if(this.haveDynamicIcon){var img=null;if(this.iconAlign=="right"){img=this.rightIcon;}else{img=this.leftIcon;}
if(img!=null){if(this.iconCollapsed!="none"){if(this.iconCollapsed!=null){img.src=this.iconCollapsed;}else{img.src=this.iconSpacer;}}}}
this.childObj[i].collapse();this.childObj[i].hide();}}
this.expanded=false;}},hide:function(){this.obj.style.display='none';},expand:function(){if(!this.disabled){if(!this.expanded){if(this._getDirectChildrenByTag(this.content,"INPUT")[0]!=null){this.inputState.value="opened";}
if(this.haveDynamicIcon){var img=null
if(this.iconAlign=="right"){img=this.rightIcon;}else{img=this.leftIcon;}
if(img!=null){if(this.iconExpanded!="none"){if(this.iconExpanded!=null){img.src=this.iconExpanded;}else{img.src=this.iconSpacer;}}}}
for(var i=0;i<this.childObj.length;i++){this.childObj[i].show();}}
this.expanded=true;}},show:function(){this.tdhider.style.display="";this.tablehider.style.display="";this.obj.style.display="";},preTrigger:function(e){this.inputAction.setAttribute('value',this.clientId);},postTrigger:function(e){this.inputAction.setAttribute('value','');},trigger:function(e){if("none"==this.mode)
return;this.preTrigger(e);var form=Event.findElement(e,"form");if("server"==this.mode){if(this.target)
form.target=this.target;Richfaces.jsFormSubmit(this.myId,form.name,this.target,this.params);}
else if("ajax"==this.mode){var event=e;eval(this.ajaxSubmit);}
this.postTrigger(e);},itemClicked:function(e){this.globalClearSelection();this.setSelectedClass();this.rootMenu.selectedNameInput.value=this.name;if(this.action){if(this.action=='panelMenuNodeAction'){if(this.expanded){if("node"==this.type){if(new Function(this.onclose+";return true;")()){this.collapse();}}
this.trigger(e);}else{if(this.parentObj.expandSingle){if(this.parentObj.lastExpanded!=null){this.parentObj.lastExpanded.collapse();}
if("node"==this.type){if(new Function(this.onopen+";return true;")()){this.expand();}}
this.trigger(e);this.parentObj.lastExpanded=this;}else{if("node"==this.type){if(new Function(this.onopen+";return true;")()){this.expand();}}
this.trigger(e);}}}else{this.trigger(e);}}else{if(this.expanded){if("node"==this.type){if(new Function(this.onclose+";return true;")()){this.collapse();}}
this.trigger(e);}else{if(this.parentObj.expandSingle){if(this.parentObj.lastExpanded!=null){this.parentObj.lastExpanded.collapse();}
if("node"==this.type){if(new Function(this.onopen+";return true;")()){this.expand();}}
if(this.action){this.trigger(e);}
this.parentObj.lastExpanded=this;}else{if("node"==this.type){if(new Function(this.onopen+";return true;")()){this.expand();}}
this.trigger(e);}}}},globalClearSelection:function(e){for(var key in PanelMenuStorage){if(PanelMenuStorage.hasOwnProperty(key)){if(PanelMenuStorage[key].type=='node'||PanelMenuStorage[key].type=='item'){PanelMenuStorage[key].removeSelectedClass();}}}},setSelectedClass:function(e){this.mainRow.addClassName(this.rootMenu.defaultSelectedClass);this.mainRow.addClassName(this.rootMenu.userDefinedSelectedClass);},removeSelectedClass:function(e){this.mainRow.removeClassName(this.rootMenu.defaultSelectedClass);this.mainRow.removeClassName(this.rootMenu.userDefinedSelectedClass);},addHoverStyles:function(e){if(!this.selected){if(!this.hasInitialSylesChecked){this.initialStyles=this.tablehider.style.cssText;this.hasInitialSylesChecked=true;}
if(this.hoveredStyles){Element.setStyle(this.tablehider,this.hoveredStyles);}
if(this.hoveredClasses)
for(i=0;i<this.hoveredClasses.length;i++){this.tablehider.addClassName(this.hoveredClasses[i]);}}},removeHoverStyles:function(e){if(!this.selected){if(this.hoveredStyles&&this.hasInitialSylesChecked){this.tablehider.style.cssText=this.initialStyles;}
if(this.hoveredClasses)
for(var i=0;i<this.hoveredClasses.length;i++){this.tablehider.removeClassName(this.hoveredClasses[i]);}}},_getDirectChildrenByTag:function(e,tagName){var allKids=e.childNodes;var kids=new Array();var ddk;tagName=tagName.toLowerCase();for(var i=0;i<allKids.length;i++)
if(allKids[i]&&allKids[i].tagName&&allKids[i].tagName.toLowerCase()==tagName)
kids.push(allKids[i]);return kids;},_fireEditEvent:function(e){if(document.createEvent){var evObj=document.createEvent('HTMLEvents');evObj.initEvent(e,true,false);this.edit.dispatchEvent(evObj);}else if(document.createEventObject){this.edit.fireEvent('on'+e);}},hoverItem:function(e){if(this.onItemHover!=""){eval(this.onItemHover);}},_attachBehaviors:function(){if(!this.disabled){if(this.event)
Event.observe(this.tablehider,this.event,this.itemClicked.bindAsEventListener(this),false);else
Event.observe(this.tablehider,"click",this.itemClicked.bindAsEventListener(this),false);Event.observe(this.obj,"mouseover",this.hoverItem.bindAsEventListener(this),false);Event.observe(this.tablehider,"mouseover",this.addHoverStyles.bindAsEventListener(this),false);Event.observe(this.tablehider,"mouseout",this.removeHoverStyles.bindAsEventListener(this),false);}}};PanelMenu.doExpand=function(id){var group=PanelMenuStorage[id];if(group&&group.type&&"node"==group.type){var parent=group.parentObj;if(parent.expandSingle){if(group.parentObj.lastExpanded!=null){group.parentObj.lastExpanded.collapse();}}
while(parent){if(parent.type&&"node"==parent.type){parent.expand();}
parent=parent.parentObj;}
if(!group.expanded&&new Function(group.onopen+";return true;")()){group.expand();}}}
PanelMenu.doCollapse=function(id){var group=PanelMenuStorage[id];if(group&&group.type&&"node"==group.type){if(group.expanded&&new Function(group.onclose+";return true;")()){group.collapse();}}}
