var MaxNoOfLevels=3
var MenuDelay=200
var MenuObjName="myMenu"
var CurToOpenId=-1
function Menu(objName){
this.Name=objName
this.MenuItems=[]
this.Levels=[]
this.browser=new Browser()}
function MenuItem(id,displayName,url,target,parent,imgText){
this.id=id
this.displayName=displayName
this.url=url
this.target=target
this.parent=parent
this.imgText=imgText}
function Level(id,level,positioning,width,itemwidth,itemheight,itemcss,itemcsson){
this.id=id
this.Level=level
this.positioning=positioning
this.width=width
this.itemwidth=itemwidth
this.itemheight=itemheight
this.itemcss=itemcss
this.itemcsson=itemcsson}
Menu.prototype.toString=function(){
return this.CreateMenu()}
Menu.prototype.AddNewLevel=function(id,level,positioning,width,itemwidth,itemheight,itemcss,itemcsson){
this.Levels[this.Levels.length]=new Level(id,level,positioning,width,itemwidth,itemheight,itemcss,itemcsson)}
Menu.prototype.GetLevel=function(levelid){
for(i=0;i<this.Levels.length;i++){
if(this.Levels[i].level==level){
return this.Levels[i]}}
if(i==this.Levels.length){
return null}}
Menu.prototype.AddNewMenuItem=function(id,displayName,url,target,parent,imgText){
this.MenuItems[this.MenuItems.length]=new MenuItem(id,displayName,url,target,parent,imgText)}
Menu.prototype.CreateMenu=function(){
var str=""
if(this.browser.isie6){
for(var i=0;i<this.Levels.length;i++){
str+=insertIframe(this.Levels[i].id)}}
ClearStyle()
AddStyle("width",this.Levels[0].width,"px")
AddStyle("position",this.Levels[0].positioning)
AddStyle("z-Index",50)
str+="<div id=\""+this.Name+"Level0Container\" "+BuildStyle()+" >"
for(var i=0;i<this.MenuItems.length;i++){
if(this.MenuItems[i].parent==-1){
ClearStyle()
str+="<div id=\""+this.Name+"Item"+this.MenuItems[i].id+"\""+BuildStyle()
if(this.MenuItems[i].url==""){
var tmpdefalut0level=""
if(typeof(myMenuOpenedItem)!='undefined'){
if(myMenuOpenedItem[0] !='undefined'){
if(typeof(myMenuOpenedItem[0])!=""){
tmpdefalut0level=myMenuOpenedItem[0]
}}}
if(tmpdefalut0level==this.MenuItems[i].id){
if(this.Levels[0].itemcss !=""){
str+=" class=\""+this.Levels[0].itemcss+"DefaultSelected"+"\" "
}}
else if(this.Levels[0].itemcss !=""){
str+=" class=\""+this.Levels[0].itemcss+"\" "}
str+=" >"
str+="<a"
str+=" href=\"javascript:;\" "
if(tmpdefalut0level !=this.MenuItems[i].id){
str+=" onmouseover=\"javascript: "+this.Name+".OpenSubMenu('"+this.Name+"',"+this.MenuItems[i].id+","+0+")\" onMouseOut=\""+this.Name+".ExitMenu("+this.MenuItems[i].id+");\" "}
if(this.Levels[0].itemcss !=""){
str+=" class=\""+this.Levels[0].itemcss+"A\" "}
str+=" >"
if(typeof(this.MenuItems[i].imgText)!='undefined'&&this.MenuItems[i].imgText !=""){
str+="<img border=0 src=\""+this.MenuItems[i].imgText+"\" alt=\""+this.MenuItems[i].displayName+"\"/>"}
else{
str+=this.MenuItems[i].displayName}
str+="</a>"
str+="</div>"
if(tmpdefalut0level==this.MenuItems[i].id){
str+="<div id=\""+this.Name+"DefaultLevel0Container\">"
if(document.getElementById){
str+=this.CreateSubMenu(this.MenuItems[i].id,1,"visible")}
str+="</div>"}
else{
str+="<div>"+this.CreateSubMenu(this.MenuItems[i].id,1,"hidden")+"</div>"}}
else{
var tmpdefalut0level=""
if(typeof(myMenuOpenedItem)!='undefined'){
if(myMenuOpenedItem[0] !='undefined'){
if(typeof(myMenuOpenedItem[0])!=""){
tmpdefalut0level=myMenuOpenedItem[0]
}}}
if(tmpdefalut0level==this.MenuItems[i].id){
if(this.Levels[0].itemcss !=""){
str+=" class=\""+this.Levels[0].itemcss+"NoSubMenuDefaultSelected"+"\" "}}
if(this.Levels[0].itemcss !=""){
str+=" class=\""+this.Levels[0].itemcss+"NoSubMenu"+"\" "}
str+=" >"
str+="<a"
str+=" href=\""+this.MenuItems[i].url+"\" "
if(this.MenuItems[i].target !=""){
str+=" target=\""+this.MenuItems[i].target+"\" "}
if(this.Levels[0].itemcss !=""){
str+=" class=\""+this.Levels[0].itemcss+"A\" "}
str+=" onmouseover=\"javascript: "+this.Name+".OpenSubMenu('"+this.Name+"',"+this.MenuItems[i].id+","+0+",1)\"  onMouseOut=\""+this.Name+".ExitMenu("+this.MenuItems[i].id+");\" "
str+=" >"
if(typeof(this.MenuItems[i].imgText)!='undefined'&&this.MenuItems[i].imgText !=""){}
else{
str+=this.MenuItems[i].displayName}
str+="</a>"
str+="</div>"
}}}
return str;}
Menu.prototype.CreateSubMenu=function(parent,level,visibility){
str=""
ClearStyle();AddStyle("width",this.Levels[level].width,"px");if(visibility=="hidden"){
AddStyle("position",this.Levels[level].positioning);}else{AddStyle("position","relative");}
AddStyle("visibility",visibility)
str+="<div id=\""+this.Name+"SubMenu"+parent+"Container\" "+BuildStyle()+" >"
for(var i=0;i<this.MenuItems.length;i++){
if(this.MenuItems[i].parent==parent){
ClearStyle()
str+="<div id=\""+this.Name+"Item"+this.MenuItems[i].id+"\""+BuildStyle()
var tmpdefalutlevel=""
if(typeof(myMenuOpenedItem)!='undefined'){
if(typeof(myMenuOpenedItem[level])!='undefined'){
if(myMenuOpenedItem[level] !=""){
tmpdefalutlevel=myMenuOpenedItem[level]}}}
if(this.MenuItems[i].url==""){
if(tmpdefalutlevel==this.MenuItems[i].id){
if(this.Levels[level].itemcss !=""){
str+=" class=\""+this.Levels[level].itemcss+"DefaultSelected"+"\" "}}
else if(this.Levels[level].itemcss !=""){
if(visibility=="hidden"){
str+=" class=\""+this.Levels[level].itemcss+"\" "}
else if(visibility=="visible"){
str+=" class=\""+this.Levels[level].itemcss+"SelectedItem"+"\" "}}
str+=">"
str+="<a"
str+=" href=\"javascript:;\""
if(tmpdefalutlevel !=this.MenuItems[i].id){
str+="onmouseover=\"javascript: "+this.Name+".OpenSubMenu('"+this.Name+"',"+this.MenuItems[i].id+","+level+")\" onMouseOut=\""+this.Name+".ExitMenu("+this.MenuItems[i].id+");\""}
if(this.Levels[level].itemcss !=""){
str+=" class=\""+this.Levels[level].itemcss+"A\" "}
str+=">"
str+=this.MenuItems[i].displayName
str+="</a>"
str+="</div>"
if(tmpdefalutlevel==this.MenuItems[i].id){
str+="<div id=\""+this.Name+"DefaultLevel"+level+"Container\">"
if(document.getElementById){
str+=this.CreateSubMenu(this.MenuItems[i].id,level+1,"visible")}
str+="</div>"}
else{
str+="<div>"+this.CreateSubMenu(this.MenuItems[i].id,level+1,"hidden")+"</div>"}}
else{
if(this.Levels[level].itemcss !=""){
if(tmpdefalutlevel==this.MenuItems[i].id){
str+=" class=\""+this.Levels[level].itemcss+"NoSubMenuDefaultSelected"+"\" "}
if(visibility=="hidden"){
str+=" class=\""+this.Levels[level].itemcss+"NoSubMenu"+"\" "}
else if(visibility=="visible"){
str+=" class=\""+this.Levels[level].itemcss+"NoSubMenuSelectedItem"+"\" "}}
str+=" >"
str+="<a"
str+=" href=\""+this.MenuItems[i].url+"\" "
if(this.MenuItems[i].target !=""){
str+=" target=\""+this.MenuItems[i].target+"\" "}
str+=" onmouseover=\"javascript: "+this.Name+".OpenSubMenu('"+this.Name+"',"+this.MenuItems[i].id+","+level+",1)\"  onMouseOut=\""+this.Name+".ExitMenu("+this.MenuItems[i].id+");\""
if(this.Levels[level].itemcss !=""){
str+=" class=\""+this.Levels[level].itemcss+"A\" "}
str+=" >"
str+=this.MenuItems[i].displayName
str+="</a>"
str+="</div>"}}}
str+="</div>"
return str}
Menu.prototype.findLevel=function(menuid,level){
if(level=="" || typeof(level)=='undefined'){
level=0}
if(menuid<=0){
return level}
for(var i=0;i<this.MenuItems.length;i++){
if(this.MenuItems[i].id==menuid){
if(this.MenuItems[i].parent==-1){
return level}
else{
return this.findLevel(this.MenuItems[i].parent,level+1)}}}
return level}
Menu.prototype.findParent=function(menuid){
for(var i=0;i<this.MenuItems.length;i++){
if(this.MenuItems[i].id==menuid){
return this.MenuItems[i].parent}}
return-1}
Menu.prototype.hasSubMenu=function(menuid){
for(var i=0;i<this.MenuItems.length;i++){
if(this.MenuItems[i].parent==menuid){
return true}}
return false}
var curOpenedItem=new Array(MaxNoOfLevels)
for(var i=0;i<curOpenedItem.length;i++){
curOpenedItem[i]=""}
var can_close_flag=true
function checkCurOpenedItems(){
for(var i=0;i<curOpenedItem.length;i++){
if(curOpenedItem[i] !=""){
alert(i)
alert(curOpenedItem[i])}}}
Menu.prototype.OpenSubMenu=function(objname,parent,level,islink){
CurToOpenId=parent
GCloseLevel=level
can_close_flag=false
if(curOpenedItem[level] !=parent){
if(curOpenedItem[level]	!=""){
this.CloseSubMenu(curOpenedItem[level],level)}
curOpenedItem[level]=parent
if(islink !=1){
var subMenu=objname+"SubMenu"+parent+"Container"
var parentItem=objname+"Item"+parent
var objsubMenu=document.getElementById(subMenu)
var objparentItem=document.getElementById(parentItem)
var subMenuLeft=parseInt(objparentItem.offsetWidth)+"px"
var subMenuTop=parseInt(objparentItem.offsetTop)+"px"
objparentItem.className=AppendToStrEnd(objparentItem.className,"On")
objsubMenu.style.left=subMenuLeft
objsubMenu.left=subMenuLeft
objsubMenu.style.top=subMenuTop
objsubMenu.top=subMenuTop
if(this.browser.isie6){
var iefixiframe=document.getElementById("iframefix"+(level+1))
iefixiframe.style.left=findPosX(objsubMenu)
iefixiframe.style.top=findPosY(objsubMenu)
iefixiframe.style.width=parseInt(objsubMenu.offsetWidth)+"px"
iefixiframe.style.height=parseInt(objsubMenu.offsetHeight)+"px"
iefixiframe.style.display="block"}
objsubMenu.style.visibility="visible"}
else{
var parentItem=objname+"Item"+parent
var objparentItem=document.getElementById(parentItem)
objparentItem.className=AppendToStrEnd(objparentItem.className,"On")}}}
Menu.prototype.CloseOpenedSubLevels=function(level){
for(var i=level+1;i<curOpenedItem.length;i++){
if(curOpenedItem[i] !=""){
this.CloseSubMenu(curOpenedItem[i],this.findLevel(curOpenedItem[i]))}}}
Menu.prototype.CloseSubMenu=function(parent,level,islink){
this.CloseOpenedSubLevels(this.findLevel(parent))
customAlert(parent+" "+CurToOpenId+"--")
if(CurToOpenId==parent)return
curOpenedItem[level]=""
var subMenu=this.Name+"SubMenu"+parent+"Container"
var parentItem=this.Name+"Item"+parent
var objsubMenu=document.getElementById(subMenu)
var objparentItem=document.getElementById(parentItem)
if(objsubMenu !=null){
objparentItem.className=RemoveFromStrEnd(objparentItem.className,"On")
objsubMenu.style.visibility="hidden"
if(myMenu.browser.isie6){
var iefixiframe=document.getElementById("iframefix"+(level+1))
iefixiframe.style.display="none"}}
else{
objparentItem.className=RemoveFromStrEnd(objparentItem.className,"On")}}
Menu.prototype.CloseSubMenu1=function(parent,level,islink){
customAlert(parent+" "+CurToOpenId+"--")
level=this.findLevel(parent)
if(CurToOpenId==parent)return
curOpenedItem[level]=""
var subMenu=this.Name+"SubMenu"+parent+"Container"
var parentItem=this.Name+"Item"+parent
var objsubMenu=document.getElementById(subMenu)
var objparentItem=document.getElementById(parentItem)
if(objsubMenu !=null){
objparentItem.className=RemoveFromStrEnd(objparentItem.className,"On")
objsubMenu.style.visibility="hidden"
if(myMenu.browser.isie6){
var iefixiframe=document.getElementById("iframefix"+(level+1))
iefixiframe.style.display="none"}}
else{
objparentItem.className=RemoveFromStrEnd(objparentItem.className,"On")}}
Menu.prototype.ExitMenu=function(id){
CurToOpenId=-1
can_close_flag=true
setTimeout(this.Name+".CloseOpenedItems("+id+")",MenuDelay)}
Menu.prototype.CloseOpenedItems=function(id){
var ap1=this.findParent(id)
var ap2=this.findParent(CurToOpenId)
if(this.findLevel(id)==this.findLevel(CurToOpenId)){}
else{
if(id==ap1 || id==ap2 || CurToOpenId==ap1 || CurToOpenId==ap2){}
else{
can_close_flag=true}}
if(can_close_flag){
customAlert(id+" "+CurToOpenId+" ")
var closeLevelStart=-1
if(CurToOpenId !=-1){
if(this.findLevel(id)<this.findLevel(CurToOpenId)){
if(this.findParent(CurToOpenId)==id){
closeLevelStart=this.findLevel(id)+1}
else{}}
else if(this.findLevel(id)>this.findLevel(CurToOpenId)){
this.CloseSubMenu1(id)
closeLevelStart=this.findLevel(id)+1}
else{
closeLevelStart=this.findLevel(id)+1}}
customAlert(closeLevelStart+" ")
for(var i=closeLevelStart+1;i<curOpenedItem.length;i++){
if(curOpenedItem[i] !=""){
if(curOpenedItem[i] !=CurToOpenId){
this.CloseSubMenu(curOpenedItem[i],i)}}}}
else{}}
function StyleData(style,value,styleunit){
this.style=style
this.value=value
this.styleunit=styleunit}
var GlobalTempStyle,GlobalTempStyleIndex
function ClearStyle(){
GlobalTempStyle=null
GlobalTempStyleIndex=-1}
function AddStyle(style,value,styleunit){
if(GlobalTempStyleIndex==-1){
GlobalTempStyle=new Array()
GlobalTempStyleIndex=0}
else{
GlobalTempStyleIndex++}
GlobalTempStyle[GlobalTempStyleIndex]=new StyleData(style,value,styleunit)}
function BuildStyle(){
var oldTypeStyle=""
var newTypeStyle=""
if(GlobalTempStyle !=null&&GlobalTempStyleIndex !=-1){
for(var i=0;i<=GlobalTempStyleIndex;i++){
oldTypeStyle+=" "+GlobalTempStyle[i].style+"=\""+GlobalTempStyle[i].value+"\" "
newTypeStyle+=GlobalTempStyle[i].style+":"+GlobalTempStyle[i].value
if(GlobalTempStyle[i].styleunit !=undefined){
newTypeStyle+=GlobalTempStyle[i].styleunit}
newTypeStyle+=";"}
newTypeStyle="Style=\""+newTypeStyle+"\""}
return oldTypeStyle+" "+newTypeStyle}
function findPos(obj){
var curleft=curtop=0
if(obj.offsetParent){
curleft=obj.offsetLeft
curtop=obj.offsetTop
while(obj=obj.offsetParent){
curleft+=obj.offsetLeft
curtop+=obj.offsetTop}}
return [curleft,curtop]}
function findPosX(obj){
var curleft=0
if(obj.offsetParent)
while(1){
curleft+=obj.offsetLeft
if(!obj.offsetParent)
break
obj=obj.offsetParent}
else if(obj.x)
curleft+=obj.x
return curleft}
function findPosY(obj){
var curtop=0
if(obj.offsetParent)
while(1){
curtop+=obj.offsetTop
if(!obj.offsetParent)
break
obj=obj.offsetParent}
else if(obj.y)
curtop+=obj.y
return curtop}
function customAlert(str){if(document.getElementById("tempalert")!=null){document.getElementById("tempalert").value+=str;}}
function RemoveFromStrEnd(str,remstr)
{if(str.substr(str.length-2).toLowerCase()==remstr.toLowerCase()){str=str.substring(0,str.length-2);}return str;}
function AppendToStrEnd(str,remstr)
{if(str.substr(str.length-2).toLowerCase()!=remstr.toLowerCase()){str+=remstr;}return str;}
function Browser()
{this.name=navigator.appName;this.version=0;this.isie6=false;if(this.name.indexOf("Microsoft Internet Explorer")!=-1){this.version=getInternetExplorerVersion();if(this.version<7){this.isie6=true;}}else{this.version=parseFloat(navigator.appVersion);}}
function getInternetExplorerVersion()
{var rv=-1;if(navigator.appName=='Microsoft Internet Explorer'){var ua=navigator.userAgent;var re=new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");if(re.exec(ua)!=null)rv=parseFloat(RegExp.$1);}return rv;}function insertIframe(id){var iframestr="";iframestr+="<IFRAME width=145 id=\"iframefix"+id+"\" style=\"Display: none; Left: 0px; top: 0px;  Position: absolute;  z-index: 1; filter: progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=100)\" ";iframestr+=" src=\"javascript: false;\" frameborder=\"1\" scrolling=\"no\"></IFRAME>";return iframestr;}
