var menu_contador=1
var menuname=''
var menucounter=''

//Menu
function dynmenu() {
	this.nivelpipe=2;
	this.width = menuwidth;
	this.itens=new Array();

	// Pre-load mouse-over images
	menuimage=new Image();
	menuimage.src=menu_path+"/homepage/menu/"+im_hover;

	menuimage2=new Image();
	menuimage2.src=menu_path+"/homepage/menu/"+im_normal;

	arrowdown=new Image();
 	arrowdown.src=menu_path+"/homepage/menu/"+im_flopen;

	arrowleft=new Image();
	arrowleft.src=menu_path+"/homepage/menu/"+im_folder;

	menuselected=new Image();
	menuselected.src=menu_path+"/homepage/menu/"+im_select;

	this.pipe="<img id=\"startimage\" src=\""+menuimage2.src+"\">";

	this.add=function(texto,acao) {
		this.itens[this.itens.length]=new menu_item(texto,acao,1);
		this.lastitem=this.itens[this.itens.length-1];
	}

	this.geraHTML=function() {
		if (menucounter.length == 0) {
			menu_contador=0
		}
		else {
			menu_contador=menucounter
		}
		var txt="<div id=\"menu\" style=\"width:" + this.width + "px\">"
		for(var i=0;i<this.itens.length;i++) {
			txt+=this.itens[i].geraHTML(this)
		}
		txt+="</div>"
		return txt
	}
	this.getMenuCnt=function() {
		return menu_contador
	}
}

//Item de menu
function menu_item(texto,acao,nivel) {
	if( typeof(acao)!="string" )
		acao=""

	this.texto=texto
	this.acao=acao
	this.nivel=nivel
	this.itens=new Array()

	this.add=function(texto,acao) {
		this.itens[this.itens.length]=new menu_item(texto,acao,this.nivel+1)
		this.lastitem=this.itens[this.itens.length-1]
	}

	this.geraHTML=function(o_menu) {
		menu_contador++
		var pipe=o_menu.nivelpipe>this.nivel?"":o_menu.pipe;
		if(this.itens.length==0) {
   		// Submenu
			rExp = /startimage/gi;
			if (pipe != null)
				pipe=pipe.replace(rExp, "image"+menu_contador);
			if ( this.texto.length == 0 )
				var txt="<div id=\"m"+menu_contador+"\" onselectstart=\"return false\" unselectable=\"on\" class=\"n"+this.nivel+"\" style=\"cursor:auto;\"><a href=\"#\" class=\"n"+this.nivel+"\">"
			else
				var txt="<div id=\"m"+menu_contador+"\" onselectstart=\"return false\" unselectable=\"on\" onclick=\"image_ch(menuid);SwitchMenu(switchm);"+this.acao+"\" class=\"n"+this.nivel+"\" onMouseover=\"img_ch(true,menucontador);\" onMouseout=\"img_ch(false,menucontador)\"><a href=\"#\" class=\"n"+this.nivel+"\">"
			rExp = /switchm/g;
			txt=txt.replace(rExp, ""+menu_contador+"");

			rExp = /menuid/g;
			txt=txt.replace(rExp, menu_contador);
			rExp = /menucontador/g;
			txt=txt.replace(rExp, "'image"+menu_contador+"'");
			txt+=pipe+this.texto+"</a></div>"
		} else {
			// Mainmenu
			var menunot="Conferences Publications Education Membership";
			var mouseover="";
			var mouseout="";
			if( menunot.indexOf( this.texto ) == -1) {
				rExp = /startimage/gi;
				if (pipe != null)
					pipe=pipe.replace(rExp, "image"+menu_contador);
				var mouseover="img_ch(true,menucontador)";
				var mouseout="img_ch(false,menucontador)";
			}

			var txt="<div id=\"m"+menu_contador+"\" width=\"100%\" onselectstart=\"return false\" unselectable=\"on\" onclick=\"menu_ch(menuid);SwitchMenu(switchm);"+this.acao+"\" class=\"n"+this.nivel+"\" onMouseover=\""+mouseover+"\" onMouseout=\""+mouseout+"\"><a href=\"#\" class=\"n"+this.nivel+"\">"
			rExp = /menuid/g;
			txt=txt.replace(rExp, menu_contador);
			txt+="<img id=\"i"+menu_contador+"\" class=\"seta\" src=\"" + menu_path + "/homepage/menu/" + im_folder +"\">"+pipe+this.texto+"</a></div>"
			txt+="<div id=\"s"+menu_contador+"\" class=\"s\">"
			rExp = /menucontador/g;
			txt=txt.replace(rExp, "'image"+menu_contador+"'");
			rExp = /switchm/g;
			txt=txt.replace(rExp, ""+menu_contador+"");
			rExp = /reverence/g;
			txt=txt.replace(rExp, "rev"+menu_contador);
 			// Create submenus
			for(var i=0;i<this.itens.length;i++) {
				txt+=this.itens[i].geraHTML(o_menu)
			}
			txt+="</a></div>";
		}
		return txt
	}
}

//Clique em um item de menu
function menu_ch(o) {
	el = document.getElementById('s'+o);
	ar = document.getElementById('i'+o);
	im = document.getElementById('image'+o);
	if (el.style.display!="block") {
		el.style.display="block"
		ar.src=arrowdown.src;
		if (im != null) {
			deselect();
			im.src=menuselected.src;
		}
	} else {
		el.style.display="none"
		ar.src=arrowleft.src;
	}
}

//Clique em um item de menu
function ismenuactive(nr) {
	im = document.getElementById('i'+nr);
	if ( im.src == arrowdown.src ) {
		return true
	} else {
		return false
	}
}

function openmenu(opendivs, nr) {
	for ( var i = 0; i < opendivs.length; i++ ) {
		el = document.getElementById(opendivs[i]);
		var menuid = opendivs[i].substring(1,4);
		ar = document.getElementById('i'+menuid);
		im = document.getElementById('image'+nr);
		if (( el != null) && ( el.style.display != "block")) {
			el.style.display = "block"
			ar.src=arrowdown.src;
			if (im != null) {
				// Deselected current selected menu item
				deselect();
				// Select new menu item
				im.src=menuselected.src;
			}
		}
	}
}

// mouseover and mouseout
function img_ch(on,nr) {
  var el = document.getElementById(nr);
  if ( el != null ) {
		// Mouseover
		if (on && el.src != menuselected.src )
			el.src=menuimage.src;
		else {
			if ( el.src != menuselected.src )
				el.src = menuimage2.src;
		}
	}
}

function image_ch(nr) {
	var el = document.getElementById('image' + nr);
	if ( el != null ) {
		// Deselected current selected menu item
		deselect();
		// Select new menu item
		el.src=menuselected.src;
	}
}

function deselect() {
	var ar = document.getElementsByTagName("img");
	for ( var i = 0; i < ar.length; i++ ) {
		if (ar[i].src == menuselected.src)
			ar[i].src= menuimage2.src;
	}
}

function menu_add(txt) {
	txt=txt.replace(/([^\t\\])/,"add(\"$1")
	if (menuname.length == 0) {
		txt="m."+txt.replace(/\t?\\/g,"lastitem.")
	} else {
		txt=menuname+"."+txt.replace(/\t?\\/g,"lastitem.")
	}
	txt=txt.replace(/\|/g,"\",\"")+"\")"
	eval(txt)
}

function OpenLink(url,selectedmenu, target) {
	// Get all opened submenus
	var ar = document.getElementsByTagName("div");
	var cnt = 0;
	var found = 0;
	for ( var i = 0; i < ar.length; i++ ) {
		if ( ar[i].className != "s" ) {
			// Close all submenus except selected submenu
			var menuid = ar[i].id.substring(1,4);
			// Is submenu not the selected submenu
			if ( selectedmenu == menuid )
				found = cnt;
			else
			  cnt++;
		}
	}
	var windowlink = url + "&ActiveMenu=" + found + "&Opendivs=" + getOpenDivs();
	found = found - 2;
	if ( target.length > 0 )
		var newWindow = window.open(windowlink);
	else
		window.location = url + "&ActiveMenu=" + found + "&Opendivs=" + getOpenDivs();
}

function SwitchMenu(selectedmenu) {
	// Get all opened submenus
	var ar = document.getElementsByTagName("div");
	for ( var i = 0; i < ar.length; i++ ) {
		if ( ar[i].className == "s" ) {
			// Is submenu opened?
			if ( ar[i].style.display == "block" ) {
				// Close all submenus except selected submenu
				var menuid = ar[i].id.substring(1,4);
				// Is submenu not the selected submenu
				if ( selectedmenu != menuid ) {
					var curnode = document.getElementById('m'+selectedmenu);
					var parnode = curnode.parentNode;

					// If mainmenu of submenu(level2) -> close other mainmenus(level1)
					if ( parnode.className != "s" ) {
						menu_ch(menuid);
					} else {
						// If submenu of submenu (level 3)-> close all other submenus (level 2) except selected submenu
						var parentid = parnode.id.substring(1,4);
						var par = parnode.getElementsByTagName("div");
						for ( var j = 0; j < par.length; j++ ) {
							if ( par[j].className == "s" ) {
								if ( par[j].style.display == "block" ) {
									var menuid2 = par[j].id.substring(1,4);
									if ( selectedmenu != menuid2 ) {
										menu_ch(menuid2);
									}
								}
							}
						}
					}
				}
			}
		}
	}
}

function WriteToFile(text) {
	try  {
		var fso, s;
		fso = new ActiveXObject("Scripting.FileSystemObject");
		s = fso.OpenTextFile("C:\\test.txt" , 2, 1, -2);
		s.writeline(text);
		s.Close();
	} catch(err) {
		var strErr = 'Error:';
		strErr += '\nNumber:' + err.number;
		strErr += '\nDescription:' + err.description;
		document.write(strErr);
	}
}

function getCookieData(label) {
	var labelLen = label.length
	var cLen = document.cookie.length
	var i = 0
	while (i < cLen) {
		var j = i + labelLen
		if (document.cookie.substring(i,j) == label) {
			var cEnd = document.cookie.indexOf(";",j)
			if (cEnd == -1) {
				cEnd = document.cookie.length
			}
			return unescape(document.cookie.substring(j,cEnd))
		}
		i++
	}
	return ""
}

function makeSearchString() {
   var args = makeSearchString.arguments
   var searchString = "?"
   var onePair
   for (var i = 0; i < args.length; i++) {
      onePair = escape(args[i++]) + "="
      onePair += escape(args[i])
      searchString += onePair + "&"
   }
   return searchString
}

function getOpenDivs() {
	// Get all opened submenus
	var ar = document.getElementsByTagName("div");
	var openedMenus = new Array();
	for ( var i = 0; i < ar.length; i++ ) {
		if ( ar[i].className == "s" ) {
			// Is submenu opened -> store id
			if ( ar[i].style.display == "block" ) {
				openedMenus = openedMenus + ar[i].id + ',';
			}
		}
	}
	if ( ( openedMenus.length > 0 ) &&  ( openedMenus.charAt(openedMenus.length - 1) == ',' ))
		openedMenus = openedMenus.substring(0,openedMenus.length - 1)

	return openedMenus;
}

