/////////////////////////////////////////////////////////////////////////
// variabels:
var foldersArr=foldersPath.split(",")

var mnu_browserName=navigator.appName.toLowerCase();; 
var mnu_isIE = mnu_browserName.toLowerCase().indexOf("explorer")>-1

try{
	var current_item=(isModule=="true")?(!isnull(fi)?fi:0):folder_id
}
catch(e){
	var current_item=(isHome=="true")?homeFI:0
}
/*
try{
	var place=navigator.appVersion.search("M")
	var appver=navigator.appVersion.substring(place+5,navigator.appVersion.length)
	appver=appver.substring(0,appver.search(";"))
	//appver="3.0"
}
catch(e){var appver="3.0";}
*/
var _existDoc=queryStringCount>1 || formCount>0
///////////////////////////////////////////////////////////////
// constants
var MENU_OBJECT_NAME="mnu";
var UPPER_ROOT_MENU_OBJECT_NAME="menus";
///////////////////////////////////////////////////////////////
// CSS definitions for upper menus:
var vertDelimClass="uppermenu_vertdelim";
var horizDelimClass="uppersubmenu_horizdelim";
var containerDivClass="uppersubmenucontainer"

var menuClasses=new Array();
menuClasses[0]="uppermenu";
menuClasses[1]="uppersubmenu";
for(var i=2;i<ubar_maxDepth;i++){
	menuClasses[i]="uppersubmenu_lev"+(i);
}

var ImgArrowSubMenuMenuClasses=new Array();
ImgArrowSubMenuMenuClasses[1]="imgarrowsubmenu";
for(var i=2;i<ubar_maxDepth;i++){
	ImgArrowSubMenuMenuClasses[i]="imgarrowsubmenu_lev"+(i);
}


/*
///////////////////////////////////////////////////////////////////
// go 2 home page func
function goHome(){window.navigate(homeURL);}

///////////////////////////////////////////////////////////////////
*/
// go 2 main page with given fi func
function goIn(fi,doc_id){
	var path=pageURL+"?fi="+fi
	if(!isnull(doc_id))
		path+=("&doc_id="+doc_id)
	go2address(path)
}
function go2address(address){
	window.location.href=address
}
function getRef(id) {
	return document.getElementById(id);
}

function getReference(id){
	return document.getElementById(id);
}
///////////////////////////////////////////////////////////////
// Show/hide selects functions
var hiddenSelects={};
function hideSelects(id){
	return;
	var obj=getReference(id)
	function hideSelect(obj){
		obj.style.visibility='hidden'
		eval("hiddenSelects."+String(obj.uniqueID)+"=1")
	}
	var objOffLeft=0,objOffTop=0,objOffWidth=0,objOffHeight=0;
	//DIV COORDINATES:
	var divLT={},divRT={},divLB={},divRB={};

	objOffWidth=obj.offsetWidth;
	objOffHeight=obj.offsetHeight;
	objOffLeft=obj.offsetLeft;
	objOffTop=obj.offsetTop;
	var objPar=obj.offsetParent;
	while(objPar){
		obj=objPar;
		objOffLeft+=obj.offsetLeft;
		objOffTop+=obj.offsetTop;
		objPar=obj.offsetParent;
	}
	divLT.x=objOffLeft;
	divLT.y=objOffTop;
	divRT.x=objOffLeft+objOffWidth;
	divRT.y=objOffTop;
	divLB.x=objOffLeft;
	divLB.y=objOffTop+objOffHeight;
	divRB.x=objOffLeft+objOffWidth;
	divRB.y=objOffTop+objOffHeight;

	var selects=document.getElementsByTagName("SELECT");
	for(var i=0;i<selects.length;i++){
		var offLeft=0,offTop=0,offW=0,offH=0;
		//SELECT COORDINATES:
		var selLT={},selRT={},selLB={},selRB={};

		var ob=selects[i];
		offW=ob.offsetWidth;
		offH=ob.offsetHeight;
		offLeft+=ob.offsetLeft;
		offTop+=ob.offsetTop;
		var par=ob.offsetParent;
		while(par){
			ob=par;
			offLeft+=ob.offsetLeft;
			offTop+=ob.offsetTop;
			par=ob.offsetParent;
		}

		selLT.x=offLeft;
		selLT.y=offTop;
		selRT.x=offLeft+offW;
		selRT.y=offTop;
		selLB.x=offLeft;
		selLB.y=offTop+offH;
		selRB.x=offLeft+offW;
		selRB.y=offTop+offH;

		if(selLT.y>=divLB.y) continue;
		if((selLT.x>=divLB.x) && (selLT.x<divRB.x)){
			hideSelect(selects[i]);
			continue;
		}
		if((selRT.x>=divLB.x) && (selRT.x<divRB.x)){
			hideSelect(selects[i]);
			continue;
		}
		if((selLT.x<=divLB.x) && (selRT.x>=divRB.x)){
			hideSelect(selects[i]);
			continue;
		}
	}
}
function getOffsetLeft(ob){
	var offLeft=ob.offsetLeft;
	var par=ob.offsetParent;
	while(par){
		offLeft+=par.offsetLeft;
		par=par.offsetParent;
	}
	return offLeft
}
function showSelects(){
	for(var x in hiddenSelects){
		if(!isnull(hiddenSelects[x])){
			getReference(x).style.visibility='visible'
			hiddenSelects[x]=null
		}
	}
}
function reverseDir(id){
return
	var menudiv=getRef('contDiv'+id);
	var upperMenusDiv=getRef("upperMenus");
	var tdContainer=getRef("tdCont"+id);
	try{
		if(dir.toUpperCase()=="RTL" && getOffsetLeft(menudiv)<getOffsetLeft(upperMenusDiv)){
			tdContainer.style.direction="LTR"
		}
		if(dir.toUpperCase()=="LTR" && (getOffsetLeft(menudiv)+menudiv.offsetWidth)>(getOffsetLeft(upperMenusDiv)+upperMenusDiv.offsetWidth)){
			tdContainer.style.direction="RTL"
		}
	}catch(e){
		//dbgE("Error in reverseDir function : " +e.description)
	}
}

///////////////////////////////////////////////////////////////
// Old functions for side bar / flat bar use:
function getChildMenusForCheck(obj){
	var menusArr=new Array();
	var rg=/mnu/;
	if(!obj) return menusArr;
	for(var x in obj){
		if(rg.exec(x))
			menusArr[menusArr.length]=obj[x];
	}
	return 	menusArr;
}
function ifChildOrSelf(obj,id){
	if(obj.id==id) return true;
	var res=false;
	var arr=getChildMenusForCheck(obj);
	for(var i=0;i<arr.length;i++){
		if(arr[i].id==id)
			res=true;
		else
			if(!res)
				res=ifChildOrSelf(arr[i],id);
	}
	return res;
}
/*
function ifParentOrSelf(obj,id){
	if(obj.id==id) return true;
	var res=false;
	var arr=getChildMenusForCheck(obj);
	for(var i=0;i<arr.length;i++){
		if(arr[i].id==id)
			res=true;
		else
			if(!res)
				res=ifParentOrSelf(arr[i],id);
	}
	return res
}
*/
function ifParentOrSelf(id){
	var res=false;
	for(var i=0; i<foldersArr.length; i++){
		//dbgL(foldersArr[i] + ">>>>" + id)
		if(foldersArr[i] == id){
			res=true;
			break;
		}
	}
	return res
}

///////////////////////////////////////////////////////////////
// check if argument menu(object) is 'parent' of current menu
//yossi: make this function generic to all the menus by sending the menu instead of MENU_OBJECT_NAME
function ifParentOfCurrent(obj){
	var res=false;
	if(obj.id==current_item) res=true;
	var re=eval("/^"+MENU_OBJECT_NAME+"\\d+$/");
	for(var x in obj){
		if(re.test(x) && !res){
			if(obj[x].id==current_item){
				res=true;
				break;
			}
			else
				res=ifParentOfCurrent(obj[x]);
		}
	}
	if(!res){
		for(var i=0;i<foldersArr.length;i++){
			if(obj.id==foldersArr[i]){
				res=true;
				break;
			}
		}
	}
	return res
}

///////////////////////////////////////////////////////////////
// check if argument menu(object) is of current menu
function ifCurrent(obj){
	if(obj.id==current_item) return true;
	return false;
}

function getChildMenus(obj){
	var menusArr=new Array();
	var rg=/mnu\d+/;
	if(!obj) return menusArr;
	for(var x in obj){
		if(rg.exec(x) && obj[x].menu==1)
			menusArr[menusArr.length]=obj[x];
	}
	return 	menusArr;
}

function getObject(id,obj){
	if(isnull(id) && isnull(obj)) return menus;
	if(isnull(obj)) obj=menus;
	var rObj
	try{
		//alert(id + "\nobj=" + obj.id+ "\nobj=" + obj.txt)
	}catch(e){}

	if(obj.id==id){
		rObj=obj;
	}
	else{
		var childs=getChildMenusForCheck(obj)
		for(var i=0;i<childs.length;i++){
			if(isnull(rObj)) rObj=getObject(id,childs[i]);
		}
	}
	return rObj
}


/*
function classNameAndStyle(obj){
	var str=""
	var className = (obj.dpt==0) ? "uppermenu" : 'menulevel'+obj.dpt;
	if(obj.act!='1')
		return ' class="' +className+ '" style="cursor:default;" '
	if(obj.id==current_item && isnull(doc_id))
		return ' class="' +className+ '_s" style="cursor:default;" '
	if(ifChildOrSelf(obj,current_item))
		return ' class="' +className+ '_h" style="cursor:hand;" '
	return ' class="' +className+ '" style="cursor:hand;" '
}
*/




////////////////////////////////////////////////////////////////////
//create href
function getHrefFromOnclick(clkStr,is_ssl){
	if(isnull(clkStr)) 
		return "javascript:void(0);"
	if(clkStr.indexOf("goIn(")>-1){
	
		clkStr=clkStr.replace(/^goIn\(\"/,"")
		clkStr=clkStr.replace(/\"\)$/,"")
		if(clkStr.indexOf(",")>-1){
			var hrefPI=clkStr.split("\",\"")[0]
			if(hrefPI.indexOf("_")>-1) hrefPI=hrefPI.split("_")[1]
			return pageURL+"?fi="+hrefPI+"&doc_id="+clkStr.split("\",\"")[1]
		}
		else{
			var hrefPI=clkStr;
			if(hrefPI.indexOf("_")>-1) hrefPI=hrefPI.split("_")[1];
			return pageURL+"?fi="+hrefPI;
		}
	}
	
	if(clkStr.indexOf("go2address(")>-1){
		//dbgL(clkStr)
		clkStr=clkStr.replace(/^go2address\(\"/,"");
		clkStr=clkStr.replace(/\"\)$/,"");
		/*
		if(is_ssl=="1"){
			return clkStr.replace("http://","https://");
		}
		else
			return clkStr;
		*/
		if(is_ssl=="1"){
			return "https://" + serverUrl + clkStr;
		}
		else{
			return "http://" + serverUrl + clkStr;
		}
	}
	
	if(clkStr.indexOf("window.open(")>-1){
		clkStr=clkStr.replace(/^window.open\(\"/,"");
		clkStr=clkStr.replace(/\"\)$/,"");
		return clkStr;
	}
	
	return "javascript:" + clkStr;
}
function getTargetFromOnclick(clkStr){
	if(isnull(clkStr)) return ""
	if(clkStr.indexOf("window.open(")>-1){
		return "target='_blank'"
	}
	return ""
}

///////////////////////////////////////////////////////////////
// Old html construction functions for side bar / flat bar use:
function imgOrText(obj,bar){
	var str=""
	/*
	if(bar=='U'){
		if(isnull(obj.showImg) || obj.showImg=='0' || obj.imgOn=='' || obj.imgOff=='')
			str+=obj.txt.replace(/\&amp;\#34;/g,"\"").replace(/\&amp;\#39;/g,"\'");
		else{
			str+='<img id="menusImg'+obj.id+'" width="'+obj.img_w+'" height="'+obj.img_h+'" hspace="0" '
			if(ifChildOrSelf(obj,current_item))
				str+=' src="'+obj.imgOn+'"><br>'
			else
				str+=' src="'+obj.imgOff+'"><br>'
		}
	}
	*/
	if(bar=='S'){
		var imObjOff,imObjOn
		try{
			var imObjOff=eval("imSdM"+obj.id+"Off")
			var imObjOn=eval("imSdM"+obj.id+"On")
		}catch(e){}
		if(isnull(obj.showImg_SB) || obj.showImg_SB=='0' || isnull(imObjOff) || isnull(imObjOn))
			str+=obj.txt.replace(/\&amp;\#34;/g,"\"").replace(/\&amp;\#39;/g,"\'");
		else{
			str+='<img id="sideBarImg'+obj.id+'" border="0" hspace="0" '
			//if(ifParentOrSelf(obj,current_item)){
			if(ifParentOrSelf(obj.id)){
				str+=' src="'+imObjOn.src+'"><br>'
			}
			else
				str+=' src="'+imObjOff.src+'"><br>'
		}
	}
	if(bar=='SD'){
		var imObjOff,imObjOn
		try{
			var imObjOff=eval("imSdM"+obj.id+"Off")
			var imObjOn=eval("imSdM"+obj.id+"On")
		}catch(e){}
		if(isnull(obj.showImg_SB) || obj.showImg_SB=='0' || isnull(imObjOff) || isnull(imObjOn))
			str+=obj.txt.replace(/\&amp;\#34;/g,"\"").replace(/\&amp;\#39;/g,"\'");
		else{
			str+='<img border="0" id="sideBarImgDiv'+obj.id+'" hspace="0" '
			//if(ifParentOrSelf(obj,current_item)){
			if(ifParentOrSelf(obj.id)){
				str+=' src="'+imObjOn.src+'"><br>'
			}
			else
				str+=' src="'+imObjOff.src+'"><br>'
		}
	}
	if(bar=='F'){
		var imObjOff,imObjOn
		try{
			var imObjOff=eval("imFdM"+obj.id+"Off")
			var imObjOn=eval("imFdM"+obj.id+"On")
		}catch(e){}
		if(isnull(obj.showImg_FB) || obj.showImg_FB=='0' || isnull(imObjOff) || isnull(imObjOn))
			str+=obj.txt.replace(/\&amp;\#34;/g,"\"").replace(/\&amp;\#39;/g,"\'");
		else{
			str+='<img border="0" id="flatImg'+obj.id+'" hspace="0" '
			//if(ifParentOrSelf(obj,current_item)){
			if(ifParentOrSelf(obj.id)){
				str+=' src="'+imObjOn.src+'"><br>'
			}
			else
				str+=' src="'+imObjOff.src+'"><br>'
		}
	}
	return str
}