//
//  bpm_menu.js
//  Copyright (C) 2009 Digital Abacus Corporation. All Rights Reserved.
//
//  version 2.02    4/24/09    fix for external URLs
//  version 2.01    4/13/09    popup menu support
//

var dShowing="";

function show(w) {
	var i=w.substr(1);
	if(dShowing!="") {
		if(w!=dShowing) {
			var ii=dShowing.substr(1);
			if(!(topmenu.onlycurrent==1 && ii==wActive)) {
				if(document.getElementById(dShowing)) document.getElementById(dShowing).className="hidden";
				document.getElementById("img"+ii+"img").src=(ii==wActive?prefix+topmenu.menu[ii].image.selected.up:prefix+topmenu.menu[ii].image.up);
			}
		}
	}
	if(w!=dShowing) {
			if(document.getElementById(w)) document.getElementById(w).className="showing";
			if(!(topmenu.onlycurrent==1 && i!=wActive)) {
				if(topmenu.menu[i].left) document.getElementById("bar"+i+"s0bar").style.marginLeft=topmenu.menu[i].left+"px";
				var o=document.getElementById("ul"+i+"s0ul");
				if(o!=null && defined(topmenu.menu[i].left) && (topmenu.onlycurrent!=1 || i==wActive)) o.style.marginLeft=topmenu.menu[i].left+"px";
			}
			if(topmenu.onlycurrent!=1 || i==wActive) {
				document.getElementById(w).style.backgroundImage="url("+(i==wActive?prefix+topmenu.menu[i].background.selected:prefix+topmenu.menu[i].background.normal)+")";
			}
			document.getElementById("img"+i+"img").src=(i==wActive?prefix+topmenu.menu[i].image.selected.over:prefix+topmenu.menu[i].image.over);
	}
	dShowing=w;
}

function showMenu() {
	show('d'+wActive);
}

function isMouseLeaveOrEnter(e, handler,which) { 
//alert("isMouseLeaveOrEnter");
	if (e.type != 'mouseout' && e.type != 'mouseover') return false; 
	var reltg = e.relatedTarget ? e.relatedTarget : e.type == 'mouseout' ? e.toElement : e.fromElement; 
	while (reltg && reltg != handler) reltg = reltg.parentNode; 
	if(reltg!=handler) {
		//alert("out of "+handler);
		//MM_swapImgRestore();
		if(which=='d') show(which+wActive);
	}
	return (reltg != handler); 
}

function defined(x) {
	return typeof(x)!="undefined";
}

var wActive=-1;		// main menu currently active
var sActive=-1;		// submenu currently active

var navnum=0;		// number for nav popups, must start at 0

function writeMenu(active,subactive) {
	wActive=active;
	sActive=subactive;
	var output="";
	for(ti=0;ti<topmenu.menu.length;++ti) {
		var o=topmenu.menu[ti];
		if((!defined(topmenu.nodividers) || topmenu.nodividers != 1) && (ti>0 || (ti==0 && topmenu.nofirstdivider && topmenu.nofirstdivider!=1))) output+='<img src="'+prefix+topmenu.divider+'"/>';
		var uprefix=prefix;
		if(o.url) {
			if(o.url.search(/^http/)!=-1) uprefix="";
			output+='<div id="d'+ti+'menu" name="d'+ti+'menu" class="menu" onmouseout="isMouseLeaveOrEnter(event,this,\'d\')" onmouseover="document.img'+ti+'img.src=\''+(ti==wActive?prefix+o.image.selected.over:prefix+o.image.over)+'\';show(\'d'+ti+'\')"><a href="'+uprefix+o.url+'"><img id="img'+ti+'img" name="img'+ti+'img" src="'+(ti==wActive?prefix+o.image.selected.up:prefix+o.image.up)+'" alt="'+o.alt+'" border="0"></a>';
		} else {
			output+='<img id="img'+ti+'img" name="img'+ti+'img" src="'+prefix+o.image.up+'" alt="'+o.alt+'"/>';			
		}
	if(!(topmenu.onlycurrent==1 && ti!=wActive)) {
		if(o.center==1) {
			output+='<div class="'+(ti==wActive?"showing":"hidden")+'" id="d'+ti+'" align="center">';
		} else {
			output+='<div class="'+(ti==wActive?"showing":"hidden")+'" id="d'+ti+'">';
		}
		if(topmenu.onlycurrent==1 && ti!=wActive) {
			// do not show
		} else if(defined(o.caption) && (topmenu.onlycurrent==1 && ti==wActive || topmenu.onlycurrent!=1)) {
			output+='<img id="bar'+ti+'s'+0+'bar" src="'+(ti==wActive?prefix+o.caption.selected:prefix+o.caption.normal)+'"/>';
		} else if(topmenu.onlycurrent!=1 || ti==wActive) {
			output+='<ul class="bpmnav" id="bpmnav'+navnum+'">';
			navnum++;
			if(o.menu) for(tj=0;tj<o.menu.length;++tj) {
				xp=o.menu[tj];
				var iname="img"+ti+"s"+tj+"img";
				if(ti==wActive) {
					var uprefix=prefix;
					if(xp.url) {
						if(xp.url.search(/^http/)!=-1) uprefix="";
						output+='<li onmouseover="change(\''+iname+'\',\''+prefix+xp.image.selected.over+'\');addclass(this);" onmouseout="change(\''+iname+'\',\''+(tj==sActive?prefix+xp.image.selected.over:prefix+xp.image.selected.up)+'\');ripclass(this);">';
						output+='<a href="'+uprefix+xp.url+'">';
						output+='<img border="0" id="bar'+ti+'s'+tj+'bar"';
						if(tj==0 && defined(o.nofirstdivider) && o.nofirstdivider==1) {
							output+=' src="'+prefix+'images/nav/2nav-divider-blank.gif"';
						} else {
							output+=' src="'+prefix+o.divider+'"';
						}
						output+='/>';
					
						output+='<img src="'+(tj==sActive?prefix+xp.image.selected.over:prefix+xp.image.selected.up)+'" alt="'+xp.alt+'" name="img'+ti+'s'+tj+'img" border="0" id="'+iname+'"/></a>';
						if(defined(xp.popup)) if(xp.popup.length>0) {
							output+='<ul id="ul'+ti+'s'+tj+'ul">';
							for(var pi=0;pi<xp.popup.length;++pi) {
									var uprefix=prefix;
									if(defined(xp.popup[pi].popup)) if(xp.popup[pi].popup.length>0) {
										if(xp.popup[pi].url.search(/^http/)!=-1) uprefix="";
										output+='<li class="item" onmouseover="addclass(this);" onmouseout="ripclass(this)"><a class="daddy" href="'+uprefix+xp.popup[pi].url+'">'+xp.popup[pi].text+'</a>';
									} else {
										if(xp.popup[pi].url.search(/^http/)!=-1) uprefix="";
										output+='<li class="item" onmouseover="addclass(this);" onmouseout="ripclass(this);"><a href="'+uprefix+xp.popup[pi].url+'">'+xp.popup[pi].text+'</a>';
									} else {
										if(xp.popup[pi].url.search(/^http/)!=-1) uprefix="";
										output+='<li class="item" onmouseover="addclass(this);" onmouseout="ripclass(this);"><a href="'+uprefix+xp.popup[pi].url+'">'+xp.popup[pi].text+'</a>';
									}
									if(defined(xp.popup[pi].popup)) if(xp.popup[pi].popup.length>0) {
											output+='<ul>';
											for(var pj=0;pj<xp.popup[pi].popup.length;++pj) {
												var uprefix=prefix;
												if(xp.popup[pi].popup[pj].url.search(/^http/)!=-1) uprefix="";
												output+='<li class="item" onmouseover="addclass(this);" onmouseout="ripclass(this);"><a href="'+uprefix+xp.popup[pi].popup[pj].url+'">'+xp.popup[pi].popup[pj].text+'</a></li>';
											}
											output+='</ul>';
									}
									output+='</li>';
							}
							output+='</ul>';
						}
						
						output+="</li>";
					} else {
						output+='<img id="img'+ti+'s'+tj+'img" name="'+iname+'" src="'+(tj==sActive?prefix+xp.image.selected.over:prefix+xp.image.selected.up)+'" alt="'+xp.alt+'"/>';				
					}
				} else {
					var uprefix=prefix;
					if(xp.url) {
						if(xp.url.search(/^http/)!=-1) uprefix="";
						output+='<li onmouseover="change(\''+iname+'\',\''+prefix+xp.image.over+'\');addclass(this);" onmouseout="change(\''+iname+'\',\''+prefix+xp.image.up+'\');ripclass(this);">';
						output+='<a href="'+uprefix+xp.url+'">';
						output+='<img border="0" id="bar'+ti+'s'+tj+'bar" ';
						if(tj==0 && defined(o.nofirstdivider) && o.nofirstdivider==1) {
							output+=' src="'+prefix+'images/nav/2nav-divider-blank.gif"';
						} else {
							output+=' src="'+prefix+o.divider+'"';
						}
						output+='/>';
						output+='<img src="'+prefix+xp.image.up+'" alt="'+xp.alt+'" name="img'+ti+'s'+tj+'img" border="0" id="'+iname+'"/></a>';
						if(defined(xp.popup)) if(xp.popup.length>0) {
							output+='<ul id="ul'+ti+'s'+tj+'ul">';
							for(var pi=0;pi<xp.popup.length;++pi) {
									var uprefix=prefix;
									if(defined(xp.popup[pi].popup)) if(xp.popup[pi].popup.length>0) {
										if(xp.popup[pi].url.search(/^http/)!=-1) uprefix="";
										output+='<li class="item" onmouseover="addclass(this);" onmouseout="ripclass(this);"><a class="daddy" href="'+uprefix+xp.popup[pi].url+'">'+xp.popup[pi].text+'</a>';
									} else {
										if(xp.popup[pi].url.search(/^http/)!=-1) uprefix="";
										output+='<li class="item" onmouseover="addclass(this);" onmouseout="ripclass(this);"><a href="'+uprefix+xp.popup[pi].url+'">'+xp.popup[pi].text+'</a>';
									} else {
										if(xp.popup[pi].url.search(/^http/)!=-1) uprefix="";
										output+='<li class="item" onmouseover="addclass(this);" onmouseout="ripclass(this);"><a href="'+uprefix+xp.popup[pi].url+'">'+xp.popup[pi].text+'</a>';
									}
									if(defined(xp.popup[pi].popup)) if(xp.popup[pi].popup.length>0) {
											output+='<ul>';
											for(var pj=0;pj<xp.popup[pi].popup.length;++pj) {
												var uprefix=prefix;
												if(xp.popup[pi].popup[pj].url.search(/^http/)!=-1) uprefix="";
												output+='<li class="item" onmouseover="addclass(this);" onmouseout="ripclass(this);"><a href="'+uprefix+xp.popup[pi].popup[pj].url+'">'+xp.popup[pi].popup[pj].text+'</a></li>';
											}
											output+='</ul>';
									}
									output+='</li>';
							}
							output+='</ul>';
						}
						output+="</li>";
					} else {
						output+='<img id="img'+ti+'s'+tj+'img" name="'+iname+'" src="'+prefix+xp.image.up+'" alt="'+xp.alt+'">';				
					}
				}
			}
			if(false) {
				output+='<img border="0" ';
				if(tj==0 && defined(o.nofirstdivider) && o.nofirstdivider==1) {
					output+=' src="'+prefix+'images/nav/2nav-divider-blank.gif"';
				} else {
					output+=' src="'+prefix+o.divider+'"';
				}
				output+='/>';
			}
			output+="</ul>";
		}
		output+="</div>";
	}
	output+="</div>";
	}
	if((!defined(topmenu.nodividers) || topmenu.nodividers!=1) && (!defined(topmenu.nolastdivider) || topmenu.nolastdivider!=1)) output+='<img src="'+prefix+topmenu.divider+'"/>';
	//alert(output);
	document.write(output);
	show("d"+active);
	//document.getElementById("d"+active).style.backgroundImage="url("+(topmenu.menu[active].background.selected)+")";
}

function preload_images() {
	var d=document; 
	if(d.images){ 
		if(!d.MM_p) d.MM_p=new Array();
		var i,jj=d.MM_p.length;
		for(i=0;i<topmenu.length;++i) {
			d.MM_p[jj]=new Image;d.MM_p[jj++].src=prefix+topmenu.divider;
			d.MM_p[jj]=new Image;d.MM_p[jj++].src=prefix+topmenu.background;
			d.MM_p[jj]=new Image;d.MM_p[jj++].src=prefix+topmenu.menu[i].image.up;
			d.MM_p[jj]=new Image;d.MM_p[jj++].src=prefix+topmenu.menu[i].image.over;
			d.MM_p[jj]=new Image;d.MM_p[jj++].src=prefix+topmenu.menu[i].image.selected.up;
			d.MM_p[jj]=new Image;d.MM_p[jj++].src=prefix+topmenu.menu[i].image.selected.over;
			d.MM_p[jj]=new Image;d.MM_p[jj++].src=prefix+topmenu.menu[i].divider;
			for(k=0;k<menu[i].length;++k) {
				d.MM_p[jj]=new Image;d.MM_p[jj++].src=prefix+topmenu.menu[i].menu[k].image.up;
				d.MM_p[jj]=new Image;d.MM_p[jj++].src=prefix+topmenu.menu[i].menu[k].image.over;
				d.MM_p[jj]=new Image;d.MM_p[jj++].src=prefix+topmenu.menu[i].menu[k].image.selected.up;
				d.MM_p[jj]=new Image;d.MM_p[jj++].src=prefix+topmenu.menu[i].menu[k].image.selected.over;
			}
		}
	}
}

function addclass(t) {
	if(document.all) t.className+=" sfhover";
}

function ripclass(t) {
	if(document.all) t.className=t.className.replace(new RegExp(" sfhover\\b"), "");
}

function sfhover() {
	n=0;
	while(true) {
		var o=document.getElementById("bpmnav"+n);
		if(o==null) break;
		var sfEls = o.getElementsByTagName("LI");
		for (var i=0; i<sfEls.length; i++) {
			sfEls[i].onmouseover+=function() {
				this.className+=" sfhover";
			}
			sfEls[i].onmouseout+=function() {
				this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
			}
		}
		n++;
	}
}

function change(el,im) {
	var o=document.getElementById(el);
	o.src=im;
}
