var oFirstLevelMenuOpen = ""; 
var oFirstLevelIndicator = ""; 
var CONST_MENU_WITH_NO_CHILDREN="MenuWithNoChildren";
var oSecondLevelMenuOpen = "";
var blnKeepOneSecondLevelOpenForEachParnetOnChange = true;
var blnKeepAllLevelsOpenOnChange = false;
var sChildImgSrc="";
var sActiveChildImgSrc="";
var globalApplicationPath="";
var iTableUniqueID=0;
var guidLevelUniqueID="";
var iLastDrawnLevel=-1;
var guidHighlightedUniqueID="";
var gChannelGroup = 1;
			
function openCloseFirstLevelSub(oTD)
{
	var oTR, oNextTR;
	oTR = oTD.parentElement;
				
	oNextTR = oTR.nextSibling;
	

	if((typeof(oNextTR)=="undefined")||(oNextTR==null))
	{
		return;
	}
	
	if(oNextTR.style.display!="none")
	{	

		if((oNextTR.className=="TopChannel")||(oNextTR.className=="HighlightedTopChannel")||(oNextTR.className=="TopPosting")||(oNextTR.className=="HighlightedTopPosting"))
		{

			return;
		}
		
	}

	if(blnKeepAllLevelsOpenOnChange)
	{
		if (oNextTR.style.display == "")
		{

			if(oNextTR.className!="MenuSeparatorRow")
			{
				oNextTR.style.display = "none";
				oTR.childNodes[1].childNodes[0].src=sTopCollapsdImgSrc;
				oTR.className="TopChannel";
			}
		}
		else
		{
			oNextTR.style.display = "";
			oTR.childNodes[1].childNodes[0].src=sTopExpandedImgSrc;
			oTR.className="HighlightedTopChannel";
		}
	}	
	else
	{
		if (oNextTR.style.display == "none")
		{
			if ((oFirstLevelMenuOpen != "")&&(oFirstLevelMenuOpen!=CONST_MENU_WITH_NO_CHILDREN))
			{
				if (oFirstLevelMenuOpen.style.display == "")
				{

					oFirstLevelMenuOpen.style.display = "none";
					oFirstLevelMenuOpen.previousSibling.childNodes[1].childNodes[0].src=sTopCollapsdImgSrc;
					oFirstLevelMenuOpen.previousSibling.className="TopChannel";
				}	
			}
			else if(oFirstLevelMenuOpen==CONST_MENU_WITH_NO_CHILDREN)
			{
				oFirstLevelIndicator.childNodes[1].childNodes[0].src=sTopCollapsdImgSrc;
				oFirstLevelIndicator.className="TopChannel";
			}
						
			oNextTR.style.display = "";
			oFirstLevelMenuOpen = oNextTR;
			oTR.childNodes[1].childNodes[0].src=sTopExpandedImgSrc;
			oTR.className="HighlightedTopChannel";
		}
		else 
		{
			if(oNextTR.className!="MenuSeparatorRow")
			{
				oNextTR.style.display = "none";
				oFirstLevelMenuOpen = "";
				//changing the image to show that the menu is closed
				oTR.childNodes[1].childNodes[0].src=sTopCollapsdImgSrc;
				oTR.className="TopChannel";
			}
		}
	}
	
}
			
			
			
function openCloseSecondLevelSub(oTD)
{
	var oTR, oNextTR;
	var oTable;
	oTR = oTD.parentElement;
	oTable = oTR.parentElement;
	oNextTR = oTR.nextSibling;
	

	if(oNextTR)
	{
		if(oNextTR.style.display!="none")
		{
			if(oTR.childNodes[1].childNodes[0].src.indexOf(sCollapsdImgSrc)>-1)
			{
				return;
			}
		}
	}
	else
	{
		return;
	}
	

	if(blnKeepAllLevelsOpenOnChange)
	{
		if (oNextTR.style.display == "")
		{
			oNextTR.style.display = "none";
			oTR.childNodes[1].childNodes[0].src=sCollapsdImgSrc;
			oTR.className="Channel";
		}
		else
		{
			oNextTR.style.display = "";
			oTR.childNodes[1].childNodes[0].src=sExpandedImgSrc;
			oTR.className="HighlightedChannel";
		}
	}	
	else
	{

		if (oNextTR.style.display == "none")
		{
			if(blnKeepOneSecondLevelOpenForEachParnetOnChange)
			{
				for(var i=0;i<oTable.childNodes.length;i++)
				{
					if(oTR!=oTable.childNodes[i] && (oTable.childNodes[i].className=="Channel" || oTable.childNodes[i].className=="HighlightedChannel") && oTable.childNodes[i].isChild=="0")
					{

						if(oTable.childNodes[i].nextSibling)
						{
							 if(typeof(oTable.childNodes[i].nextSibling.MenuLevel)=="undefined")
							 {
								if (oTable.childNodes[i].nextSibling.style.display == "")
								{
									oTable.childNodes[i].nextSibling.style.display = "none";
									oTable.childNodes[i].childNodes[1].childNodes[0].src=sCollapsdImgSrc;
									oTable.childNodes[i].className="Channel";
								}
							}
						}
					}
				}
			}
			oNextTR.style.display = "";
			oTR.childNodes[1].childNodes[0].src=sExpandedImgSrc;
			oTR.className="HighlightedChannel";
		}
		else
		{
			oNextTR.style.display = "none";
			oTR.childNodes[1].childNodes[0].src=sCollapsdImgSrc;
			oTR.className="Channel";
		}
	}
}
			
function highlightPosting(oTD)
{
	var oTR;
	oTR = oTD.parentElement;
	
	if(oTR.className=="Posting")
	{
		oTR.className="HighlightedPosting";
	}
	else if(oTR.className=="TopPosting")
	{
		oTR.className="HighlightedTopPosting";
	}
	else if(oTR.className=="MiddlePosting")
	{
		oTR.className="HighlightedMiddlePosting";
	}
	
	if(sActiveChildImgSrc!="")
	{
		oTR.childNodes[1].childNodes[0].src=sActiveChildImgSrc;
	}
	
	if(guidHighlightedUniqueID!="")
		disableSubSub(guidHighlightedUniqueID)
	guidHighlightedUniqueID=oTR.LevelUniqueID;
}





			
function disableSubSub(guidLevelUniqueID)
{
	var oTRCol = FirstLevelMainMenu.all.tags("TR");
	var oParentMenu;
	for(var i=0;i<oTRCol.length;i++)
	{

		if(oTRCol[i].LevelUniqueID==guidLevelUniqueID)
		{
			if(oTRCol[i].className=="HighlightedPosting")
			{
				oTRCol[i].className="Posting";
			}
			else if(oTRCol[i].className=="HighlightedTopPosting")
			{
				oTRCol[i].className="TopPosting";
			}
			else if(oTRCol[i].className=="HighlightedMiddlePosting")
			{
				oTRCol[i].className="MiddlePosting";
			}
			if(sChildImgSrc!="")
			{
				oTRCol[i].childNodes[1].childNodes[0].src=sChildImgSrc;
			}
		}
	}
}



function OpenMenu(LevelUniqueID)
{
	var oTRCol = FirstLevelMainMenu.all.tags("TR");
	var oParentMenu;

	for(var i=0;i<oTRCol.length;i++)
	{
		if(oTRCol[i].LevelUniqueID==LevelUniqueID)
		{
			bIsRowFound=true;
			if(oTRCol[i].isChild=="1")
			{
				highlightPosting(oTRCol[i].childNodes[1]);
				var iParentUniqueID,oParent;
				oParentMenu=getParentMenu(oTRCol[i]);
				if(oParentMenu!=null)
				{
					OpenMenu(oParentMenu.previousSibling.LevelUniqueID)
				}
			}
			else
			{
				oParentMenu=getParentMenu(oTRCol[i]);
				if(oParentMenu==null)
				{
					oTRCol[i].childNodes[1].childNodes[0].src=sTopExpandedImgSrc;
					oTRCol[i].className="HighlightedTopChannel";

					if(oTRCol[i].nextSibling!=null)
					{
						if(oTRCol[i].nextSibling.style.display=="none")
						{
							oTRCol[i].nextSibling.style.display="";
							oFirstLevelMenuOpen=oTRCol[i].nextSibling;
						}
						else
						{
							oFirstLevelMenuOpen=CONST_MENU_WITH_NO_CHILDREN;
							oFirstLevelIndicator=oTRCol[i];
						}
					}
					return;
				}
				else
				{

					oTRCol[i].childNodes[1].childNodes[0].src=sExpandedImgSrc;
					oTRCol[i].className="HighlightedChannel";
					if(oTRCol[i].nextSibling)
						oTRCol[i].nextSibling.style.display="";
					
					oParentMenu.style.display=""
					oFirstLevelMenuOpen=oParentMenu;
					oParentMenu.previousSibling.childNodes[1].childNodes[0].src=sTopExpandedImgSrc;
					oParentMenu.previousSibling.className="HighlightedTopChannel";
				}
			}
		}
	}
}
			
function getParentMenu(currMenuTR)
{
	var oParentMenu;
	var bGoUp=true;
	var bTopLevelMenu=false;
	oParentMenu=currMenuTR.parentElement;
	while(bGoUp)
	{
		if(oParentMenu.tagName=="TR")
			bGoUp=false;
		else if(oParentMenu.id=="FirstLevelMainMenu")
		{
			bGoUp=false;
			return null;
		}
		else
			oParentMenu=oParentMenu.parentElement;
	}
	return oParentMenu;
}
			
function writeMenuStart()
{
	var str;
	str="<TABLE border=0 id='FirstLevelMainMenu' cellSpacing='0' cellPadding='0' align='center'>\n";
	return str;
}
function writeMenuEnd()
{
	var str;
	str="</TABLE>\n";
	return str;
}
function DrawNewLevelTableEnd()
{
	var str="";
	str+="</table>";
	str+="</TD>"
	str+="</TR>\n"
	return str;
}
			
function DrawNewLevelTableStart()
{
	var str="";
	str+="<TR style='DISPLAY: none'>";
	str+="<TD align=right colSpan='2'>";
	str+="<TABLE id='Table" + iTableUniqueID + "' cellSpacing='0' cellPadding='0' width='0' bordercolor=red  border='0' align=right>\n";
	iTableUniqueID++;
	return str;
}



function addSeparatorRow()
{
	var sSeparatorRow = "";
	sSeparatorRow = "<TR class='MenuSeparatorRow'><TD colspan='2'></td></tr>\n";
	sSeparatorRow = sSeparatorRow + addSeparatorExtension();
	return sSeparatorRow;
}	



function addSeparatorExtension()
{
	var sSeparatorRow = "";
	sSeparatorRow =  "<TR class='MenuSeparatorRow1'><TD colspan='2'></td></tr>\n";
	return sSeparatorRow;
}			


function writeMenuRow(iRowIndex)
{
	var str,sClassName,sRightTDOnClick,sLeftTDOnClick;
	var iLevel,sCaption,sLink,bIsDirectory,sImgSrc;
	var iChannelGroup;
	str="";
	sRightTDOnClick="";
	sLeftTDOnClick="";
	iIsChild="-1";
	sCaption=mnuArr[iRowIndex][0];
	iLevel=parseInt(mnuArr[iRowIndex][1]);
	sLink=mnuArr[iRowIndex][2];

	guidLevelUniqueID=mnuArr[iRowIndex][4];

	iChannelGroup = mnuArr[iRowIndex][5];
	
	
	if(mnuArr[iRowIndex][3]=="c")
		bIsDirectory=true;
	else
		bIsDirectory=false;
				
	switch(iLevel)
	{
		case 0:
			if(bIsDirectory)
			{
				sRightTDOnClick="";
				sLeftTDOnClick="openCloseFirstLevelSub(this.nextSibling);";
				iIsChild="0";
				sClassName="TopChannel";
				sImgSrc=sTopCollapsdImgSrc;
			}
			else
			{

				sClassName="TopPosting";
				sRightTDOnClick="";
				sLeftTDOnClick="highlightPosting(this.nextSibling);";
				iIsChild="1";
				sImgSrc=sChildImgSrc;
			}
			
		break;
		case 1:
			if(bIsDirectory)
			{
				sClassName="Channel";

				sRightTDOnClick="";
				sLeftTDOnClick="openCloseSecondLevelSub(this.nextSibling);";
				iIsChild="0";
				sImgSrc=sCollapsdImgSrc;
			}
			else
			{
				sClassName="MiddlePosting";
				sRightTDOnClick="";
				sLeftTDOnClick="highlightPosting(this.nextSibling);";
				iIsChild="1";
				sImgSrc=sChildImgSrc;
			}
			
		break;
		case 2:
			sClassName="Posting";
			sRightTDOnClick="";
			sLeftTDOnClick="highlightPosting(this.nextSibling);";
			iIsChild="1";
			sImgSrc=sChildImgSrc;
		break;
		default:
			sClassName="Posting";
			sRightTDOnClick="";
			sLeftTDOnClick="highlightPosting(this.nextSibling);";
			iIsChild="1";
			sImgSrc=sChildImgSrc;
		break;
	}
	
	if(sLink!="")
	{
		sLeftTDOnClick+="document.location=\"" + sLink + "\";"
		if((iLevel==2)||(!bIsDirectory))
		{
			sRightTDOnClick+="document.location=\"" + sLink + "\";"
		}
	}
				
	if(iLastDrawnLevel>=0)
	{
		if(iLastDrawnLevel>iLevel)
		{
			var iNumOfTablesToClose;
			iNumOfTablesToClose=iLastDrawnLevel-iLevel;
			for(var j=0;j<iNumOfTablesToClose;j++)
			{
				str+=DrawNewLevelTableEnd();
			}
		}
	}
				
	if(iLastDrawnLevel>=0)
	{
		if(iLastDrawnLevel<iLevel)
		{
			str+=DrawNewLevelTableStart();
		}
	}
	
	if (gChannelGroup != iChannelGroup)
	{

		gChannelGroup = iChannelGroup;
	}
	
	str+="<TR class='" + sClassName + "' isChild='" + iIsChild + "' LevelUniqueID=" + guidLevelUniqueID + " MenuLevel=" + iLevel + ">";
	str+="<TD class='LeftCell' onclick='" + sLeftTDOnClick + "' "
	str+=" dir=rtl align=right valign=middle width='" + iMenuLeftCellWidth + "'>&nbsp;&nbsp;&nbsp;" + sCaption + "</TD>";
	str+="<TD class='BulletCell' width=0";
				
	if(sImgSrc!="")
	{
		str+="onclick='" + sRightTDOnClick + "' width='10'" + iMenuBulletCellwidth + "' valign='top'><IMG SRC='images/menu_off.gif' align=absmiddle></TD>";
	}
	else
	{
		str+="onclick='" + sRightTDOnClick + "' width='10'" + iMenuBulletCellwidth + "'></TD>";
	}

	str+="</TR>\n";
	
	iLastDrawnLevel=iLevel;
	return str;
}

function drawMenu(strAppPath)
{
	sTopCollapsdImgSrc = strAppPath + sTopCollapsdImgSrc;
	sTopExpandedImgSrc = strAppPath + sTopExpandedImgSrc;
	sCollapsdImgSrc = strAppPath + sCollapsdImgSrc;
	sExpandedImgSrc = strAppPath + sExpandedImgSrc;
	if(sChildImgSrc!="")
	{
		sChildImgSrc = strAppPath + sChildImgSrc;
	}
	if(sActiveChildImgSrc!="")
	{
		sActiveChildImgSrc = strAppPath + sActiveChildImgSrc;
	}
	

	if(!preloadMenuFlag)
		preloadMenuImages();

	var str;
	str="";
	str+=writeMenuStart();
				
	str+=addSeparatorExtension()
	for(var i=0;i<mnuArr.length;i++)
	{
		str+=writeMenuRow(i);
	}
	str+=writeMenuEnd();
	MenuDiv.innerHTML = str;
}