//$Id: oputilsdhtmlXTree.js,v 1.13 2011/07/15 04:45:36 aruljose Exp $

String.prototype._dhx_trim = function(){
    return this.replace(/&nbsp;/g," ").replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g,"");
}
/* get node as incoming parameter */
var node=null;
var t=document.location.href.split("?");
var type=null;
var base=t[0].replace("/index.s?html","");
if(t[1]!=null){
    var u=t[1].split("&");
    for(var q=0;q<u.length;q++) {
        if((node==null)&&(u[q].split("=")[0]=="node")){
            node=(u[q].split("=")[1]!=null?u[q].split("=")[1]:null);
            if(node!=null){
                if(node.length==0){
                    node=null;
                }
            };
        }
        if((type==null)&&(u[q].split("=")[0]=="type")){
            type=(u[q].split("=")[1]!=null?u[q].split("=")[1]:null);
        }
    };
};
		
function correctSizes(){
    document.getElementById('tabbarconteiner').style.height = (document.body.offsetHeight - 70)+'px'
}
 function showtooltipTree() {

    var hideElem = document.getElementById("tooltipdiv");


    if(hideElem.style.visibility =="visible")
    {
        hideElem.style.visibility="hidden";


    }else
    {


           
            hideElem.style.visibility= "visible";
    }

    return false;
}
var treeGroupToolTipID;
var toolTipTreeID;
function onMouseInCall(treeitemId)
{
    var parentID = tree.getParentId(treeitemId);
    if(treeitemId != "GROUP_1" && parentID != "GROUP_1")
        {
            window.clearInterval(treeGroupToolTipID);
            toolTipTreeID = treeitemId;
            treeGroupToolTipID = window.setInterval("onMouseToolTip()",1000);
        }
}
function onMouseToolTip()
{
    window.clearInterval(treeGroupToolTipID);
    showOnMouseOverToolTip(toolTipTreeID)
}
function showOnMouseOverToolTip(id)
{
    document.getElementById("actionFrom").value = "showToolTip";
    var treeID = id;
    var childNodeIDs =  getNodeChildUnCheckedSubnetIDs(toolTipTreeID)
    if(childNodeIDs.length == 0)
    {
        childNodeIDs = "&TD=0";
    }
    document.getElementById("treeID").value = treeID;
    var temp = treeID.split("_");
    var parentID = temp[0];
    if(temp.length > 1)
    {
        parentID = temp[1];
     }
     var url = "IPAMTree.do?actionFrom=showToolTip&treeLevelID="+id+"&nodeID="+parentID;
     persistTree(url , "" );
}
function onMouseOutCall()
{
    window.clearInterval(treeGroupToolTipID);
    return nd();
    
}


/* init tree */
var tree;
var aMenu;
var tree_smpl
function loadTree(){
    
    showTreePrevState("doctree_box");
    tree=new dhtmlXTreeObject("doctree_box","100%","100%",0);
  
    tree.setImagePath("/images/imgs/");
    tree.setOnClickHandler(function(id){openPathDocs(id);});
    tree.attachEvent("onOpenEnd",updateTreeSize);
    tree.enableDragAndDrop(1);

//enable Drag&Drop
    tree.enableDragAndDrop(1);

    //set my Drag&Drop handler
    tree.setDragHandler(onDragSubnet);
    tree.preventIECaching(true)
   //this below is enabled for send param for delete all subnet
   tree.attachEvent("onClick",onclickFunction)
   
   tree.attachEvent("onMouseIn",onMouseInCall)
    tree.attachEvent("onMouseOut",onMouseOutCall)
    //tree.attachEvent("onRightClick",onRightClickCall)

    tree.enableIEImageFix(true); 
    tree.enableTreeLines(true);
    tree.enableTreeImages(true);
 // code changed for right click option should not show for Read only user
    var userRole = window.USERROLE;
    if( userRole != "3")
    {
        aMenu=new dhtmlXContextMenuObject('120',0,"");
        aMenu.menu.loadXML("/conf/xml/context.xml");
        aMenu.setContextMenuHandler(onButtonClick);
        aMenu.setOnShowMenuHandler(ChangeMenu)
        tree.enableContextMenu(aMenu);
    }
    
    createTree();

    //This following fix for Mozilla div scroll issue
    tree.parentObject.style.overflow="auto";
    tree.parentObject.style.height = 600;
    tree.parentObject.style.width = 200;
  
  
     
}
function onRightClickCall(id , event)
{
    return false;
}
function onButtonClickaa(menuitemId,type){
        var id = tree.contextID;
                	tree.setItemColor(id,menuitemId.split("_")[1]);

	}
   
function hideTree(value)
{
    var showTreeState;
    if(value == "hide")
        {
             document.getElementById("leftPanel").className = "hide";
             document.getElementById("centerPanel").className = "hide";
             document.getElementById("showtreeTD").className = "txt";
             showTreeState = "hide";
        }else
            {
                 document.getElementById("leftPanel").className = "txt";
                 document.getElementById("centerPanel").className = "txt";
                document.getElementById("showtreeTD").className = "hide";
                showTreeState = "show";
            }
           // divWidth.style.width=currectWidth;
             createCookie("doctree_box",showTreeState);
    
}
function showTreePrevState(treeDivID)
{

    var state = checkTreeStatus(treeDivID)
    if (state == "false")
	{

        hideTree("hide");
      
	}else{
         hideTree("show");
 	}
}

                
function onRightClickShowMenu(id , object)
{
 
    return true;

}              
/* open path funtion */
function getImidiateChildIsSubnet(itemId)
{
    var childTrees = tree.getSubItems(itemId)
    var netID = getChildIDs(childTrees);
    if(netID.length == 0)
    {
        return true;
    }else
    {
        return false;
    }
}

function getImidiateChildIsNodes(itemId)
{
    var childTrees = tree.getSubItems(itemId)
    var nodeID = getChildNodeGroupIDs(childTrees);
    if(nodeID.length == 0)
    {
        return true;

    }else
    {
        return false;
    }
}

function ChangeMenu(itemId)
{
    var userRole = window.USERROLE;
    onMouseOutCall();
    var temp=itemId.split("_");
    var reserved=temp[0];
    //var netID = getNodeChildSubnetIDs(itemId);
    var parentID = tree.getParentId(itemId);
    
     if(itemId == "GROUP_0")
    {
        aMenu.menu.showButtons('GROUP_SCHEDULE');

    }else{
        aMenu.menu.hideButtons('GROUP_SCHEDULE');
    }
    var itemTex = tree.getItemText(itemId);
    if(parentID == "GROUP_1")
        {
            if(userRole == '2' || userRole == '3') {
                aMenu.menu.hideButtons('SUBNET_Delete');
                aMenu.menu.hideButtons('APPROVE_SUBNET');
            } else {
                aMenu.menu.showButtons('SUBNET_Delete');
                aMenu.menu.showButtons('APPROVE_SUBNET');
            }
            aMenu.menu.hideButtons('Group_Add');
            aMenu.menu.hideButtons('Group_Delete');
            aMenu.menu.hideButtons('Group_Add_subnet');
            aMenu.menu.hideButtons('Group_Edit');
            aMenu.menu.hideButtons('Group_Scan');
            aMenu.menu.hideButtons('RECYCLE_Empty');
            aMenu.menu.hideButtons('SUBNET_SCAN');
            aMenu.menu.hideButtons('SUBNET_Edit');
            aMenu.menu.hideButtons('LEARNED_SUBNET_DELETE_ALL');
            return true;
        }else if(itemId == "GROUP_1" || itemTex == "Discovered Subnets"  )
        {
            if(userRole == '2' || userRole == '3') {
                aMenu.menu.hideButtons('LEARNED_SUBNET_DELETE_ALL');
            } else {
                aMenu.menu.showButtons('LEARNED_SUBNET_DELETE_ALL');
            }
            aMenu.menu.hideButtons('Group_Add');
            aMenu.menu.hideButtons('Group_Delete');
            aMenu.menu.hideButtons('Group_Add_subnet');
            aMenu.menu.hideButtons('Group_Edit');
            aMenu.menu.hideButtons('Group_Scan');

            aMenu.menu.hideButtons('RECYCLE_Empty');

            aMenu.menu.hideButtons('SUBNET_Delete');
            aMenu.menu.hideButtons('SUBNET_SCAN');
            aMenu.menu.hideButtons('SUBNET_Edit');
            aMenu.menu.hideButtons('APPROVE_SUBNET');
            return true;
        }else if(itemId == "GROUP_2" || itemTex == "Default Group")
        {
            aMenu.menu.hideButtons('LEARNED_SUBNET_DELETE_ALL');
            if(userRole == '2' || userRole == '3') {
                aMenu.menu.hideButtons('Group_Add');
                aMenu.menu.hideButtons('Group_Add_subnet');
                aMenu.menu.showButtons('Group_Scan');//No I18N
                if(userRole == '3') {
                       aMenu.menu.hideButtons('Group_Scan');//No I18N
                }
            } else {
                aMenu.menu.showButtons('Group_Add');
                aMenu.menu.showButtons('Group_Add_subnet');
                aMenu.menu.showButtons('Group_Scan');//No I18N
            }
//            aMenu.menu.showButtons('Group_Add');
            aMenu.menu.hideButtons('Group_Delete');
//            aMenu.menu.showButtons('Group_Add_subnet');
            aMenu.menu.hideButtons('Group_Edit');
//            aMenu.menu.showButtons('Group_Scan');

            aMenu.menu.hideButtons('RECYCLE_Empty');

            aMenu.menu.hideButtons('SUBNET_Delete');
            aMenu.menu.hideButtons('SUBNET_SCAN');
            aMenu.menu.hideButtons('SUBNET_Edit');
            aMenu.menu.hideButtons('APPROVE_SUBNET');
            return true;
        }else if(reserved == "GROUP"){

            aMenu.menu.hideButtons('SUBNET_Delete');
            aMenu.menu.hideButtons('SUBNET_SCAN');
            aMenu.menu.hideButtons('SUBNET_Edit');
            aMenu.menu.hideButtons('RECYCLE_Empty');
            aMenu.menu.hideButtons('APPROVE_SUBNET');
            aMenu.menu.hideButtons('LEARNED_SUBNET_DELETE_ALL');
           
               var isNoSubnetsAdded = getImidiateChildIsSubnet(itemId);
                if(isNoSubnetsAdded  || itemId == "GROUP_0" )
                {
                    aMenu.menu.showButtons('Group_Add');
                   

                }else
                {
                    aMenu.menu.hideButtons('Group_Add');
                }
                if(itemId == "GROUP_0")
                    {
                        aMenu.menu.hideButtons('Group_Delete');
                    }else
                        {
                            aMenu.menu.showButtons('Group_Delete');
                        }
                

                var isNode = getImidiateChildIsNodes(itemId);

                if( !isNode  )
                {
                    aMenu.menu.hideButtons('Group_Add_subnet');
                }else
                {
                    aMenu.menu.showButtons('Group_Add_subnet');
                }
                aMenu.menu.showButtons('Group_Edit');
                aMenu.menu.showButtons('Group_Scan');
    } else {
                                 
        aMenu.menu.hideButtons('Group_Add');
        aMenu.menu.hideButtons('Group_Delete');
        aMenu.menu.hideButtons('Group_Add_subnet');
        aMenu.menu.hideButtons('Group_Edit');
        aMenu.menu.hideButtons('Group_Scan');
        aMenu.menu.hideButtons('RECYCLE_Empty');
            
        aMenu.menu.showButtons('SUBNET_Delete');
        aMenu.menu.showButtons('SUBNET_SCAN');
        aMenu.menu.showButtons('SUBNET_Edit');
        aMenu.menu.hideButtons('APPROVE_SUBNET');
        aMenu.menu.hideButtons('LEARNED_SUBNET_DELETE_ALL');
    }
    if(userRole == '2' || userRole == '3') {
        aMenu.menu.hideButtons('GROUP_SCHEDULE');
        aMenu.menu.hideButtons('Group_Add');
        aMenu.menu.hideButtons('Group_Delete');
        aMenu.menu.hideButtons('Group_Add_subnet');
        aMenu.menu.hideButtons('Group_Edit');
        aMenu.menu.hideButtons('SUBNET_Delete');
        aMenu.menu.hideButtons('SUBNET_Edit');
        aMenu.menu.hideButtons('APPROVE_SUBNET');
        if(userRole == '3') {
            aMenu.menu.hideButtons('SUBNET_SCAN');//No I18N
            aMenu.menu.hideButtons('Group_Scan');//No I18N
        }
    }
    //tree.selectItem(itemId,true);
    return true;
}

function openPathExamples(itemId) {
    //debugger;
    var url = (tree_smpl.getUserData(itemId, "url")!=null?tree_smpl.getUserData(itemId, "url").toString()._dhx_trim():"");
    if (url=="" && !tree_smpl.hasChildren(itemId)) { 
        url = url+"#"+itemId; 
    }
    var itemIdTmp = itemId;
    var i = 0;
    do {
        itemIdTmp = tree_smpl.getParentId(itemIdTmp);
        if (tree_smpl.getUserData(itemIdTmp, "url") != null) { 
            url = tree_smpl.getUserData(itemIdTmp, "url").toString()._dhx_trim() + ((url.indexOf("#")!==0)?"/":"") + url; 
        }
        i++;
    } while (itemIdTmp != 0)
        loadDivData(url+"?un="+Date.parse(new Date()))
    //window.frames.sampleframe.location.href = url+"?un="+Date.parse(new Date());
    }
    function loadDivData(url,changeTab)
    {
        renderSubnetView(url,changeTab)
    }

    function renderSubnetView(viewName , changeTab)
    {
        viewName = viewName+'&uid='+new Date().getTime();
        var localVar = "ipamtreeView";
        var myAnonFunction = function(response,reqOptions)
        {
            document.getElementById(localVar).innerHTML = response.getOnlyHtml();
            if(changeTab)
             {
                 var homeDetailTab = document.getElementById("homeDetailTab").value
                 var selectView = document.getElementById("selectView").value
                 changeStyle(selectView,homeDetailTab)
                 setPerentPath(tree.getSelectedItemId());
             }
        };
        AjaxAPI.sendRequest({URL:viewName,ONSUCCESSFUNC:myAnonFunction});
    }
    
function onclickFunction(currentID)
{
    sendParamOnClickOnTreeNode(toolTipTreeID);
//    var temp=currentID.split("_");
//    var reserved=temp[0];
//    if(reserved != "SUBNET")
//    {
//       // collapseAllNodes();
//        tree.openItem(currentID)
//    }
}

var firefox = document.getElementById && !document.all
    function openPathDocs(id){
     var parenID = tree.getParentId(id);    
     if(parenID == "GROUP_1")
         {          
              return false;
         }
         
       var url = tree.getUserData(id,"url") ;
       var selectGraph = document.getElementById("selectGraph").value
       if(url)
        {
            var desc=tree.getItemText(id);
            var descArr = desc.split("/");
            desc = descArr[0];
            var parenTreeID = tree.getParentId(id);
            var temp = parenTreeID.split("_");
            var parentID = temp[0];
            if(temp.length > 1)
            {
             parentID = temp[1];
            }
             var parentPath = getParentPath(id);
            url = url+"?&parentPath="+encodeURIComponent(parentPath)+"&PARENTTREEID="+parentID+"&selectGraph="+selectGraph+"&NETWORKADDRESS="+desc;//No I18N
           loadDivData(url);
            return;
        }
        url = tree.getUserData(id,"LearnedSummary") ;
        if(url)
        {

            renderSubnetViewWithHeading(url,true);
            return;
        }
        
        url = tree.getUserData(id,"rootURL") ;
        if(url)
        {
            var homeDetailTab = document.getElementById("homeDetailTab").value
            var parentPath  = tree.getSelectedItemText(id);
            url = url+"&parentPath="+encodeURIComponent(parentPath)+"&homeDetailTab="+encodeURIComponent(homeDetailTab)+"&selectGraph="+selectGraph;//No I18N
          
            loadDivData(url,true);
            return;
        }

        var temp = id.split("_");
        var parentID = temp[0];
        if(parentID == "GROUP")
        {
            loadIPAMGroupSummary(id);
        }
    }
    function getNodeChildSubnetIDs(id)
    {
        var childTrees = tree.getAllSubItems(id)
        return getChildIDs(childTrees);
    }
    function getCheckedSubnetItems(id)
    {
        var childTreesIDs = tree.getAllSubItems(id)
        var temp = childTreesIDs.split(",");
        var netID = "";
        for(var i =0; i< temp.length ; i++)
        {
            var childid = temp[i]
            var childids = childid.split("_");
            if(childids[0] == "SUBNET")
            {
                if(tree.isItemChecked(childid) == 1)
                    {
                        netID = netID+"&TD="+childids[1];
                    }
                
            }
        }        
        return netID;
        //isItemChecked()
    }
    function getChildIDs(childTreesIDs)
    {
        var netID = "";
       if(childTreesIDs)
        {
        var temp = childTreesIDs.split(",");        
        for(var i =0; i< temp.length ; i++)
        {
            var childid = temp[i]
            var childids = childid.split("_");
            if(childids[0] == "SUBNET")
            {
                netID = netID+"&TD="+childids[1];
            }
        }
         }
        return netID;       
    }
    function getChildNodeGroupIDs(childTreesIDs)
    {
        var netID = "";
       if(childTreesIDs)
        {
        var temp = childTreesIDs.split(",");
        for(var i =0; i< temp.length ; i++)
        {
            var childid = temp[i]
            var childids = childid.split("_");
            if(childids[0] == "GROUP")
            {
                netID = netID+"&PARENTID="+childids[1];
            }
        }
         }
        return netID;
    }
function getAllChildNodeIDs(id)
{
    var netID = "";
    var childTreesIDs = tree.getAllSubItems(id)
    if(childTreesIDs)
    {
        var temp = childTreesIDs.split(",");
        for(var i =0; i< temp.length ; i++)
        {
            var childid = temp[i]
            var childids = childid.split("_");
           
            netID = netID+"&PARENTID="+childids[1];
           
        }
    }
    return netID;
}


    function getNodeChildUnCheckedSubnetIDs(id)
    {
        var childTrees = tree.getAllUnchecked(id)       
        return getChildIDs(childTrees);
    }


    function loadIPAMGroupSummary(id)
    {
        var url = tree.getUserData(id,"GROUPSummary") ;
        var netID = getNodeChildSubnetIDs(id);
         var homeDetailTab = document.getElementById("homeDetailTab").value
            var selectGraph = document.getElementById("selectGraph").value
           if(netID.length == 0)
            {
                netID = "TD=0";
            }
        var parentPath = getParentPath(id);
         var temp = id.split("_");
                        var treeNodeID = temp[0];
                        if(temp.length > 1)
                        {
                            treeNodeID = temp[1];
                        }
                       
        url = url+"&treeNodeID="+treeNodeID+"&parentPath="+encodeURIComponent(parentPath)+"&homeDetailTab="+encodeURIComponent(homeDetailTab)+"&selectGraph="+selectGraph;//No I18N
        renderSubnetView123(url ,netID , true);
        //changeStyle(selectView,homeDetailTab)
    }
    function renderSubnetView123(viewName , netID, changeTab)
    {
        viewName = viewName+'&uid='+new Date().getTime();
        var localVar = "ipamtreeView";
        var myAnonFunction = function(response,reqOptions)
        {
            document.getElementById(localVar).innerHTML = response.getOnlyHtml();
            if(changeTab)
             {
                 var homeDetailTab = document.getElementById("homeDetailTab").value
                 var selectView = document.getElementById("selectView").value
                 changeStyle(selectView,homeDetailTab)
                 setPerentPath(tree.getSelectedItemId());
             }
        };
        AjaxAPI.sendRequest({URL:viewName,PARAMETERS:"" , ONSUCCESSFUNC:myAnonFunction});
    }

    function getParentPath(id)
    {
	    id = id.trim();
	    if(!id || id.length == 0 || id == 'null')
	    {
		    id='GROUP_0'
	    }
	    
        var parentPath  ="<span class=txtbold >"+tree.getItemText(id)+"</span>"
        if(id != "GROUP_0" && id != "0"  )
        {
            tree.getItemText(id)

            for( var i = 0 ; isContainParentId(id) ; i++)
            {
                id = tree.getParentId(id);
                parentPath = tree.getItemText(id)+" <span class=notetxt > > </span> "+parentPath
            }
            parentPath = tree.getItemText(tree.getParentId(id))+" <span class=notetxt > > </span>  "+parentPath
        }
        return parentPath;
    }
     function getParentPathWithIfon(id)
    {
        var parentPath  = tree.getItemText(id);
        if(id != "GROUP_0" && id != "0"  )
        {
            tree.getItemText(id)

            for( var i = 0 ; isContainParentId(id) ; i++)
            {
                id = tree.getParentId(id);
                parentPath = tree.getItemText(id)+" > "+parentPath
            }
            parentPath = tree.getItemText(tree.getParentId(id))+" > "+parentPath;
        }
        return parentPath;
    }
    function isContainParentId(id)
    {
        var pId = tree.getParentId(id);
        if(pId != "GROUP_0")
            {
                
                return true;

            }else
                {
                    
                    return false;
                }
        
    }

    function updateTreeSize()
    {
        this.allTree.style.overflow = "visible";
        this.allTree.style.height = this.allTree.scrollHeight+"px";
			
    }
		
    function autoselectNode(){
        if(type=="smpl"){
            tree_smpl.selectItem(node,true);tree_smpl.openItem(node)
        }else{
            tree.selectItem(node,true);tree.openItem(node)
        }
    }
    
 function expandAllNodes(){
       tree.openAllItems(0);
    }    
       function collapseAllNodes(){
       tree.closeAllItems(0);
       
      //
       //leftPanelDiv.style.width=200+"px";
       //rightPanelDiv.style.width=(currectWidth-(200+centerPanelDiv.offsetWidth))+"px";
       tree.parentObject.style.width = 200;
     //  rSlider();
    } 

    function fixImage(id){
                   
        switch(tree.getLevel(id)){
            case 1:
                tree.setItemImage2(id,'books_close.gif','tombs.gif','tombs.gif');
                break;
            case 2:
                tree.setItemImage2(id,'book.gif','books_open.gif','books_close.gif');			
                break;
            case 3:
                tree.setItemImage2(id,'book.gif','books_open.gif','book.gif');			
                break;			
            default:
                tree.setItemImage2(id,'book_titel.gif','book_titel.gif','book_titel.gif');			
                break;
        }
    }
    function addNew()
    {
        var d=new Date(); 
        tree.insertNewChild(tree.getSelectedItemId() , d.valueOf(),document.getElementById('ed1').value,1,1,1,1,'SELECT');
        fixImage(d.valueOf());
    }
    function s_control()
    { 
        this._drag=function(sourceHtmlObject,dhtmlObject,targetHtmlObject){ 
            targetHtmlObject.style.backgroundColor=""; 
            targetHtmlObject.value=sourceHtmlObject.parentObject.label; 
        } 
        this._dragIn=function(htmlObject,shtmlObject)
        {
            htmlObject.style.backgroundColor="#fffacd"; 
            return htmlObject; 
        } 
        this._dragOut=function(htmlObject)
        { 
            htmlObject.style.backgroundColor=""; 
            return this; 
        } 
    } 
    function AddAdMem(parentId,itemId,loc,isRoot,isLeaf,hasChild,ord,chkd)
    {
    
	myAdLst[itemId]=new myNode(itemId,loc,isRoot,isLeaf,hasChild,ord);
	var myArr;
	if(treeAdArr[parentId]==undefined)
	{
            treeAdArr[parentId]=new Array();		
	}
	myArr=treeAdArr[parentId];
	myArr[ord]=itemId;
    }   
    var adTree=null;
    var myDsts=new Array();
    var locgs=new Array();
    var isDevs=new Array();
    var parentChlds=new Array();
    var tSize=180;

    function AddAdNode(parentId,itemId,loc,isRoot,isLeaf,hasChild,ord,chkd)
    {
	//console.log(parentId+":"+itemId+":"+loc);
	var img1=0;
	var img2=0,img3=0;
	var itemText=loc;
	locgs[itemId]=loc;
	if(itemId == -1)
	{
            myDsts[0]=loc;
            isDevs[0]=true;
	}else
	{
            myDsts[itemId]=loc;
            isDevs[itemId]=isLeaf;
	}
	
	
	if(parentChlds[parentId]==undefined)
	{
            parentChlds[parentId]=new Array();
	}
	cldsArr=parentChlds[parentId];
	cldsArr[itemId]=itemId;
        img1="folderClosed.gif";
        img2="folderOpen.gif";
        img3=img1;
        if(isLeaf == '1')
        {
            img1="leaf_pro.gif";
            img2=img1;
            img3=img1;
		
        }
            
        if(isLeaf == '1')
        {
            var subnetID = "SUBNET_"+itemId;
            tree.insertNewChild("GROUP_"+parentId, subnetID ,itemText,isLeaf,img1,img2,img3,'');
            tree.setUserData(subnetID,"url","handleIPAddressLegendAction1.cc")
            var tooltipmessage = itemText;
            tree.setItemText(subnetID , itemText,tooltipmessage);

        }else
        {
            tree.insertNewChild("GROUP_"+parentId,"GROUP_"+itemId,itemText,isLeaf,img1,img2,img3,'');
            tree.setUserData("GROUP_"+itemId,"GROUPSummary","ipAddressManagerInputPage.cc?childNode=true&treeIDValue=GROUP_"+itemId)
        }
            
	
    } 
function setSelectedNode(nodeText)
{
    var newTreeID = getNewSelectedID(nodeText);
    tree.selectItem(newTreeID);
    setPerentPath(newTreeID)
}
function setPerentPath(id)
{
     var parentPath = getParentPath(id);
     document.getElementById("parentPath").innerHTML = parentPath;
}
 function renderSubnetViewWithHeading(viewName , changeTab)
    {
        viewName = viewName+'&uid='+new Date().getTime();
        var localVar = "ipamtreeView";
        var myAnonFunction = function(response,reqOptions)
        {
            document.getElementById(localVar).innerHTML = response.getOnlyHtml();
            if(changeTab)
             {
                 setPerentPath(tree.getSelectedItemId());
             }
        };
        AjaxAPI.sendRequest({URL:viewName,ONSUCCESSFUNC:myAnonFunction});
    }
function checkIPAMSelection(menuItemName,refId,additionalParams,index)
{
   var tblModel = getTableModel(refId);
   var colInd1  = tblModel.getColumnIndex("SubNetwork.NETWORKADDRESS");
   var NETWORKADDRESS = tblModel.getValueAt(index,colInd1)
   var colInd2  = tblModel.getColumnIndex("TreeToSubNet.GID");
   var gid = tblModel.getValueAt(index,colInd2)

     
     /*var newTreeID = getNewSelectedID(NETWORKADDRESS);
      if(newTreeID.length == 0 )
         {
            newTreeID = "SUBNET_"+gid
         }
    */
     var newTreeID = "SUBNET_"+gid;
     var parentPath = getParentPath(newTreeID);
     var parenTreeID = tree.getParentId(newTreeID);
            var temp = parenTreeID.split("_");
            var parentID = temp[0];
            if(temp.length > 1)
            {
             parentID = temp[1];
            }

   var url = "/handleIPAddressLegendAction1.cc?parentPath="+encodeURIComponent(parentPath)+"&PARENTTREEID="+parentID+"&NETWORKADDRESS="+NETWORKADDRESS;//No I18N
        if(menuItemName == "treeSubnetDetailsAvailable")
       {
           url = url+"&selectGraph=1&STATUS=3";
       }else if(menuItemName == "treeSubnetDetailsUsed")
       {
           url = url+"&selectGraph=1&STATUS=1";
       }else if(menuItemName == "treeSubnetDetailsTransient")
       {
           url = url+"&selectGraph=1&STATUS=2";
       }else if(menuItemName == "treeSubnetDetailsNotscan")
       {
           url = url+"&selectGraph=1&STATUS=5";
           
       }else if(menuItemName == "treeSubnetDetailsReserved")
       {
           url = url+"&selectGraph=2&reservedStatus=3";
       }else if(menuItemName == "treeSubnetDetailsReservedAvailable")
       {
           url = url+"&filterValue=resStatic_Available&selectGraph=2&reservedStatus=3&STATUS=3";
       }else if(menuItemName == "treeSubnetDetailsReservedUsed")
       {
           url = url+"&filterValue=resStatic_Used&selectGraph=2&reservedStatus=3&STATUS=1";

       }else if(menuItemName == "treeSubnetDetailsReservedTransient")
       {
           url = url+"&filterValue=resStatic_Transient&selectGraph=2&reservedStatus=3&STATUS=2";

       }else if(menuItemName == "treeSubnetDetailsReservedNotscan")
       {
           url = url+"&filterValue=resStatic_Not Scanned&selectGraph=2&reservedStatus=3&STATUS=5";
           
       }else if(menuItemName == "treeSubnetDetailsRLFail")
       {
           url = url+"&dnsFailure=2&filterValue=dns_2&selectGraph=1";
           
       }else if(menuItemName == "treeSubnetDetailsFLFail")
       {
           url = url+"&dnsFailure=3&filterValue=dns_3&selectGraph=1";
       }else if(menuItemName == "treeSubnetDetailsIPMissmatch")
       {
           url = url+"&dnsFailure=4&filterValue=dns_4&selectGraph=1";
       }
       else if(menuItemName == "ShowsubnetDetailsAD")
       {
           url = url+"&PARTOFAD=true&ADTYPE=In AD&selectGraph=6&filterValue=In AD";
       }
       else if(menuItemName == "ShowsubnetDetailsNonAD")
       {
           url = url+"&PARTOFAD=true&ADTYPE=Not in AD&selectGraph=6&filterValue=Not in AD";
       }
    

   collapseAllNodes();
   tree.openItem("SUBNET_"+gid);
   tree.selectItem("SUBNET_"+gid);
   renderSubnetView(url)
   
//   var msg = document.getElementById('MsgshowStatusID').value;
//   
//   renderCurrentView("AlertMsgBoard.cc?pageLevel=1","MSGTT");
//   document.getElementById('PageLevelID').value = '2';
          
}
    function showTreeGroupDiv(val,divId , treeID , actionFrom) {

        var hideElem = document.getElementById(divId);
        if(hideElem.style.visibility =="visible")
        {
            hideElem.style.visibility="hidden";
                    
        }else
        {
            document.getElementById("editGName").value=val;
            document.getElementById("treeID").value=treeID;
            document.getElementById("actionFrom").value=actionFrom;                        
            hideElem.style.visibility= "visible";
                        
        }
        return true;
    }
    function getNewSelectedID(itemSelectText)
    {
         var netIDS = tree.getAllSubItems("GROUP_0");
         var temp = netIDS.split(",");
         for(var i =0; i< temp.length ; i++)
         {
                var childid = temp[i]
                var childids = childid.split("_");
               // if(childids[0] == "SUBNET")
                {
                    var itemText =  tree.getItemText(childid);

                    var selectedSubnet = itemText.split("/");
                    itemText = selectedSubnet[0];

                    if(itemText == itemSelectText)
                        {
                            return childid;
                        }
                }
            }
            return "";
    }
    function onButtonClick(menuitemId,treeitemId)
    {

        if(menuitemId == "GROUP_SCHEDULE" )
        {
             if (navigator.appName == 'Netscape')
            {
                    showURLInDialog("/ipam/IPAMSchedularConfig.jsp?",'position=absolute,top=150,left=150,modal=yes,width=600,scrollbars=no,title=Scheduler Configuration - IP Address Manager');
            }
            else
            {
                    showURLInDialog("/ipam/IPAMSchedularConfig.jsp?",'position=absolute,top=150,left=150,modal=yes,width=600,scrollbars=no,title=Scheduler Configuration - IP Address Manager');
            }
            //showURLInDialog('/ipam/IPAMSchedularConfig.jsp?GROUP_NAME=IP Address Manager&actionFrom=editSchedular&GROUP_ID=IP_ADDRESS_MANAGER','position=relative,modal=yes,width=480,scrollbars=no,title=Edit Switch');
		
        }else if(menuitemId == "Group_Add" )
        {
	
		var url = '/TreeAddGroupName.cc?treeID='+treeitemId+'&actionFrom=addGroup';
		     showURLInDialog(url,'position=absolute,modal=yes,top=150,left=150,scrollbars=no,title=Add Node');
            
        }else  if(menuitemId == "Group_Delete")
        {
            if(isIDC == "true")
                {
                    alert("Actions have been disabled in the Online demo.");
                    return false;
                }
            var itemText = tree.getSelectedItemText();
            if(treeitemId == "GROUP_0"  )
            {
                alert("Root node cannot be deleted ");
                return false;
                
            }else if(itemText == "Recycle Bin"){
                
                alert("Recycle Bin node  cannot be deleted ");
                return false;

            }else{

               
             
                  if (confirm("This will delete all the child nodes and subnets under this node. Are you sure you want to delete?"))
                    {

                       document.getElementById("actionFrom").value = "deleteGroup";
                        var treeID = treeitemId;
                        var parentPath =  getParentPathWithIfon(treeID);
                        //var childNodeIDs =  getAllChildNodeIDs(treeitemId);
                        document.getElementById("treeID").value = treeID;
                        var temp = treeID.split("_");
                        var parentID = temp[0];
                        if(temp.length > 1)
                        {
                            parentID = temp[1];
                        }
                        var groupName = tree.getItemText(treeID);

                        var url = "IPAMTree.do?actionFrom=deleteGroup&PARENTID="+parentID+"&parentPath="+encodeURIComponent(parentPath)+"&groupName="+encodeURIComponent(groupName);//No I18N
                        persistTree(url , "");
                    }
                
            }
       

        }else if(menuitemId == "LEARNED_SUBNET_DELETE_ALL"){



                if(isIDC == "true")
                {
                    alert("Actions have been disabled in the Online demo.");
                    return false;
                }
                  if (confirm("Are you sure you want to delete?"))
                    {

                       document.getElementById("actionFrom").value = "deleteLearnedSubnets";
                        
                        var parentPath =  getParentPathWithIfon(treeitemId);
                        var childNodeIDs =  getAllChildNodeIDs(treeitemId);
                        document.getElementById("treeID").value = treeitemId;                       
                        var groupName = tree.getItemText(treeID);
                        var url = "IPAMTree.do?actionFrom=deleteGroup"+"&parentPath="+encodeURIComponent(parentPath)+"&groupName="+encodeURIComponent(groupName);//No I18N
                        persistTree(url , childNodeIDs);
                    }




        }else if(menuitemId == "RECYCLE_Empty")
            {
                  if(isIDC == "true")
                {
                    alert("Actions have been disabled in the Online demo.");
                    return false;
                }
                document.getElementById("actionFrom").value = "deleteGroup";
                var treeID = treeitemId;
                var childNodeIDs =  getAllChildNodeIDs(treeitemId)
                document.getElementById("treeID").value = treeID;
                var temp = treeID.split("_");
                var parentID = temp[0];
                if(temp.length > 1)
                {
                    parentID = temp[1];
                }
                var url = "IPAMTree.do?actionFrom=deleteGroup";
                persistTree(url , childNodeIDs);

        }else if(menuitemId == "Group_Add_subnet")
        {
           
            var treeID = treeitemId;
            document.getElementById("treeID").value = treeID;

            var temp = treeID.split("_");
            var parentID = temp[0];
            if(temp.length > 1)
            {
                parentID = temp[1];
            }
            var parentName = tree.getItemText(treeID);
            var parentPath = getParentPathWithIfon(treeID);

            showURLInDialog('/framework/AddSubnetList.jsp?isAddFromTree=true&parentID='+parentID+"&parentName="+encodeURIComponent(parentName)+"&parentPath="+encodeURIComponent(parentPath) ,'position=absolute,modal=yes,top=30,left=250,width=650,scrollbars=no,title=Add Subnet');//No I18N
                                    
        }else  if(menuitemId == "Group_Edit")
        {
                     var name = tree.getItemText(treeitemId)
                    showURLInDialog('/TreeAddGroupName.cc?treeID='+treeitemId+"&actionFrom=editGroup&name="+encodeURIComponent(name),'position=relative,modal=yes,top=150,left=150,modal=yes,scrollbars=no,title=Edit Node');//No I18N

           /*
            showTreeGroupDiv(name,"editGroupName" , treeitemId , "editGroup");
             */
                                  
        }else  if(menuitemId == "SUBNET_Edit")
        {
            //showTreeGroupDiv(name,"editGroupName" , treeitemId , "editSubnet");
                
               
             var temp = treeitemId.split("_");
            var nodeID = temp[0];
            if(temp.length > 1)
            {
                nodeID = temp[1];
            }
             var url = getParentDetails(treeitemId)
               showURLInDialog('/lan/IPAddressMod.jsp?uid='+new Date().getTime()+'&isTreeEdit=true&TD='+nodeID+"&"+url,'position=absmiddle,modal=yes,scrollbars=no,title=Modify Subnet');
              
            
        }else  if(menuitemId == "APPROVE_SUBNET")
        {
            
             var temp = treeitemId.split("_");
            var nodeID = temp[0];
            if(temp.length > 1)
            {
                nodeID = temp[1];
            }
           var parentName = tree.getItemText("GROUP_0");
           var url = "&parentID=0&parentName="+encodeURIComponent(parentName);//No I18N
           showURLInDialog('/lan/IPAMApproveSubnet.jsp?&isAddFromTree=truw&isTreeApprove=true&TD='+nodeID+"&"+url,'top=150,left=250,width=600position=relative,modal=yes,scrollbars=no,title=Approve Subnet');//No I18N


        }else  if(menuitemId == "SUBNET_Delete")
        {
              if(isIDC == "true")
                {
                    alert("Actions have been disabled in the Online demo.");
                    return false;
                }
          
            if (confirm("Are you sure you want to delete this subnet ?"))
              {
                  document.getElementById("actionFrom").value = "deleteSubnet";

                    var treeID = treeitemId;
                    document.getElementById("treeID").value = treeID;
                    var temp = treeID.split("_");
                    var parentID = temp[0];
                    if(temp.length > 1)
                    {
                        parentID = temp[1];
                    }
                     var url = "IPAMTree.do?actionFrom=deleteSubnet";
                    persistTree(url , "parentID="+parentID);
              }
                                 
        }else if(menuitemId == "Group_Scan")
        {

              if(isIDC == "true")
                {
                    alert("Actions have been disabled in the Online demo.");
                    return false;
                }
            var treeID = treeitemId;

            var selSubnetID = getNodeChildSubnetIDs(treeID);

            if(selSubnetID.length == 0)
            {
                    alert("No Subnets have been selected to Scan");
                    return false;
            }
             var childids = treeitemId.split("_");
            document.getElementById("actionFrom").value = "scanSelectedSubnet";
            var url = "/IPAMTree.do?&actionFrom=scanSelectedSubnet&TD="+childids[1]+"&grOrsub=GroupScan"; //No I18N
            persistTree(url , "");
            
        }else if(menuitemId == "SUBNET_SCAN")
            {
                  if(isIDC == "true")
                {
                    alert("Actions have been disabled in the Online demo.");
                    return false;
                }
                    document.getElementById("actionFrom").value = "scanSelectedSubnet";
                    var childids = treeitemId.split("_");
                    var url = "/IPAMTree.do?&actionFrom=scanSelectedSubnet&TD="+childids[1]+"&grOrsub=SubnetScan";//No I18N
                    persistTree(url , "" );

            }

				
    }
    function onsucessTree()
    {
       // alert("111111")
    }
    function validateTreeGroupName()
    {
        
         var treeID =  document.getElementById("treeID").value;
      //   alert(treeID);
        var temp = treeID.split("_");
        var parentID = temp[0];
        if(temp.length > 1)
        {
            parentID = temp[1];
        }

        var name = document.getElementById("editGName").value
        if(name.length == 0 )
        {
            alert("Please specify a name for the Group")
            return false;
        }
        var d=new Date();
        var actionFrom = document.getElementById("actionFrom").value
        return false;
    }
    
    function updateNewGroup()
    {
        var treeID =  document.getElementById("treeID").value;
           
        var temp = treeID.split("_");
        var parentID = temp[0];
        if(temp.length > 1)
        {
            parentID = temp[1];
        }
               
        var name = document.getElementById("editGName").value
        if(name.length == 0 )
        {
            alert("Please specify a name for the Group")
            return false;
        }
        var d=new Date(); 
        var actionFrom = document.getElementById("actionFrom").value
              
        var url;
        if(actionFrom == "addGroup")
        {
            url = "IPAMTree.do?actionFrom="+actionFrom+"&parentID="+parentID+"&groupName="+encodeURIComponent(name);//No I18N
              
        }else if(actionFrom == "editGroup")
        {
            url = "IPAMTree.do?actionFrom="+actionFrom+"&parentID="+parentID+"&groupName="+encodeURIComponent(name);//No I18N
        }else
        {
            tree.setItemText(treeID,encodeURIComponent(name)); //No I18N
        }
         
        persistTree(url , "");
           
            
    }
             
    function onDragSubnet(fromID,targetID)
    {
        if(isIDC == "true")
                {
                    alert("Node moving have been not allow in the Online demo.");
                    return false;
                }
           if( targetID == "0")
            {
                return false;
            }
        var itemTex = tree.getItemText(targetID);
        if(targetID == "GROUP_1" || itemTex == "Discovered Subnets"  )
        {
            alert("The Subnet/Groups cannot be added directly under the \"Discovered Subnets\" node.");
            return false;
        }else if( fromID == "GROUP_1")
            {
                alert("The \"Discovered Subnets\" node cannot be move.");
                return false;
            }

       var pid = tree.getParentId(fromID);

       var actionFrom = document.getElementById("actionFrom").value
        if(pid == 'GROUP_1' && actionFrom != "approve")
        {
            alert("Approve the subnets prior to moving them to different group. Select Learned Subnets from the tree view to verify and approve them.")
            return false
        }

        var temp=targetID.split("_");
        var reserved=temp[0];           
        var toID = temp[0];
        if(temp.length > 1)
        {
            toID = temp[1];
        }
            
        temp = fromID.split("_");
        var frID = temp[0];
         var fromVal =temp[0];
        if(temp.length > 1)
        {
            frID = temp[1];
        }
            
            
        if(reserved == "SUBNET")
        {
            return false;
        }
        var isNoSubnetsAdded = getImidiateChildIsSubnet(targetID);
       
        if(fromVal == "GROUP" && !isNoSubnetsAdded)
        {
            alert("Cannot move a group where the parent group has a subnet as a child node ")
            return false;
        }
       
        if(fromVal == "SUBNET" && reserved == "GROUP" )
        {
            //var netID = getChildIDs(targetID);
              var childTrees = tree.getSubItems(targetID)
             var nodeID = getChildNodeGroupIDs(childTrees);
             
            if(  nodeID.length > 0 )
              {
                      alert("Cannot move a subnet where the parent group has a group as a child node ")
                      return false;
              }

        }
        var isSubnet = getImidiateChildIsSubnet(targetID);        
        var netID = getNodeChildSubnetIDs(targetID);   


            if( (isSubnet || netID.length > 0) || temp[0] != "GROUP")
            {
                var fromParentID = tree.getParentId(fromID);
                var fromNode = tree.getItemText(fromParentID);
                var targetNode = tree.getItemText(targetID);
                var groupName = tree.getSelectedItemText();

                document.getElementById("actionFrom").value = "moveGroup";
                
                var fromPath = getParentPathWithIfon(fromParentID);
                var toPath = getParentPathWithIfon(targetID);

                var url = "IPAMTree.do?groupName="+encodeURIComponent(groupName)+"&&fromNode="+fromNode+"&targetNode="+targetNode+"&actionFrom=moveGroup&fromID="+frID+"&toID="+toID+"&fromPath="+encodeURIComponent(fromPath)+"&toPath="+encodeURIComponent(toPath);//No I18N
                persistTree(url , "");
                return true;
            }
       
            return false;
            
    }
        
	
    function persistTree(url , params)
    {
       url = url+'&uid='+new Date().getTime();
       
        if (window.XMLHttpRequest)
        {
            req = new XMLHttpRequest();
           
        }
        else if (window.ActiveXObject)
        {
                
            isIE = true;
            req = new ActiveXObject("Microsoft.XMLHTTP");
            
        }else
        {
            
            req  = new ActiveXObject("Msxml2.XMLHTTP");
            isIE = true;
            
        }
         req.onreadystatechange = processReqChangeTree;
         req.open("POST", url, true);
         req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    		req.setRequestHeader("Content-length", params.length);
    		req.setRequestHeader("Connection", "close");
    		req.send(params);

        // req.send();

    }
    var req;
    function processReqChangeTree()
    {
        
    if (req.readyState == 4) 
	{
	
            if (req.status == 200) 
            {
                var actionFrom = document.getElementById("actionFrom").value
                var treeID =  document.getElementById("treeID").value;
                var name = document.getElementById("editGName").value
                      
                var childID = trimString(req.responseText); 
                if(actionFrom == "deleteLearnedSubnets" )
                {
                    tree.deleteChildItems(treeID);

                }else if(actionFrom == "deleteGroup" )
                {   
                    tree.deleteItem(treeID);
                            
                }else if(actionFrom == "deleteSubnet")
                {
                    tree.deleteItem("SUBNET_"+childID,true);
                    
                }else if(actionFrom == "moveGroupRecycleBin")
                {
                     var selectedID = treeID;
                     var targetID = getNewSelectedID("Recycle Bin");
                     tree.moveItem(selectedID,"item_child",targetID);

                }else if(actionFrom == "scanSelectedSubnet")
                {
                    var selID = treeID;//tree.getSelectedItemId();
                    var temp = selID.split("_");
                    var frID = temp[0];
                    if(frID == "SUBNET")
                        {
                             var url = "handleIPAddressLegendAction1.cc"
                               var desc=tree.getItemText(selID);
                               var netAdd = desc.split("/");
                                url = url+"?selectGraph="+selectGraph+"&NETWORKADDRESS="+netAdd[0]+"&selID="+selID;//No I18N
                                loadDivData(url);


                        }else
                         {
                                var url = "/ipAddressManagerInputPage.cc?";
                                var netID = getNodeChildSubnetIDs(selID);
                                 var homeDetailTab = document.getElementById("homeDetailTab").value
                                    var selectGraph = document.getElementById("selectGraph").value
                                    homeDetailTab = "input";//No I18N
                                   if(netID.length == 0)
                                    {
                                        url = url+"&TD=0";
                                    }else{

                                    url = url+netID;

                                }
                                var tId = treeID.split("_");
                                url = url+"&homeDetailTab="+homeDetailTab+"&selectGraph="+selectGraph+"&treeNodeID="+tId[1];//No I18N
                                loadDivData(url , true);
                         }
                    
                }else if(actionFrom == "showToolTip")
                {
                      var nodeName =tree.getItemText(toolTipTreeID);
                     //var lineTR = "<tr><td  width=100%><img width=100% src=\"/images/summary_blue_dot.gif\"  height=1></td></tr>";
                     childID = "<table border=0 cellspacing=0 cellpadding=0  width=100%><tr class=bgstrip><td height=28 nowrap class=txtbold width=100%> Summary of "+nodeName+"</td></tr><tr><td valign=top>"+childID+"</td></tr> </table>"
                     return overlib(childID, WIDTH , '750',FGCOLOR, "#ffffff" , BGCOLOR, "#7FB6DF" );
                }
               
            }       
            else
            {  
               // alert("There was a problem retrieving the XML data:\n" +req.statusText);
            }
	}
    }
    function trimString(value) {
        // Remove leading spaces and carriage returns
        var s = value;
        while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r'))
        {
            s = s.substring(1,s.length);
        }
        // Remove trailing spaces and carriage returns
        while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r'))
        {
            s = s.substring(0,s.length-1);
        }
        return s;
    }
    // Choose tree Component


    var chooseParentTree;

    function loadParentTree(){

        
        var url='/IPAMTree.do?actionFrom=formTreeOnDemand'+'&uid='+new Date().getTime();
        persistTreeValues(url);
    
    //    addParentItem(chooseParentTree);
}
var treeReq ;
function persistTreeValues(url) {
        
        if(window.XMLHttpRequest){
            treeReq = new XMLHttpRequest();
        }else if (window.ActiveXObject){
            isIE=true;
            treeReq  = new ActiveXObject("Microsoft.XMLHTTP");
        }

        treeReq.onreadystatechange = function() {
            if(treeReq.readyState == 4){
                if(treeReq.status == 200){
                    chooseParentTree=new dhtmlXTreeObject("choose_parentTree","100%","100%",0);
                    chooseParentTree.setImagePath("/images/imgs/");
                    chooseParentTree.enableIEImageFix(true);
                    chooseParentTree.enableTreeLines(true);
                    chooseParentTree.attachEvent("onDblClick",onDoubleClickFunction)
                    chooseParentTree.enableAutoTooltips(true);
                    //alert(treeReq.responseText)
                    var x = treeReq.responseXML.getElementsByTagName('childNode');

                    var treeArray = new Array();

                    for(var i=0 ; i< x.length ; i++)
                    {
                        //var result = x[i].getAttribute("childNode");
                        var cid = x[i].getAttribute("cid");
                        var name = x[i].getAttribute("name");
                        var pID = x[i].getAttribute("pID");
                        var treeRowArray = new Array();
                        treeRowArray[0] = cid;
                        treeRowArray[1] = pID;
                        treeRowArray[2] = name;
                        treeArray[i] = treeRowArray;

                        }
                     
                     //chooseParentTree.loadCSVString("1,0,1111\n2,0,2222\n3,0,3333\n4,2,child")
                    chooseParentTree.loadJSArray(treeArray , afterTreeLoad);

                    var childTreesIDs = chooseParentTree.getAllSubItems(0)
                    var temp = childTreesIDs.split(",");
                    for(var i =0; i< temp.length ; i++)
                    {
                        var childid = temp[i]
                        var childids = childid.split("_");
                        if(childid == "GROUP_1")
                            {
                              chooseParentTree.deleteItem(childid,true);
                            }

                        img1="folderClosed.gif";
                        img2="folderOpen.gif";
                        img3=img1;
                        chooseParentTree.setItemImage2(childid, img1,img2,img3);
                    }
                    chooseParentTree.openItem("GROUP_0")
                    chooseParentTree.setItemStyle(childid,"font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 11px;text-decoration:");
                    chooseParentTree.setItemImage2("GROUP_0", "../ipaddress_manager.gif","../ipaddress_manager.gif","../ipaddress_manager.gif");
                    chooseParentTree.openAllItems(0);


                }
            }
        };
       treeReq.open("POST", url, true);
       treeReq.send(null);
}
function afterTreeLoad()
{
        document.getElementById("treeStatusImage").src = "/images/spacer.gif";
    }

function expandSelect()
{
    chooseParentTree.openAllItems(0);
}
function closeSelect()
{ 
    chooseParentTree.closeAllItems(0);
}
function onDoubleClickFunction(id)
{
    document.getElementById("actionFrom1").value="selectGname";
     if(!validateParentNode(id))
        {
            return false
        }
     temp = id.split("_");
        var frID = temp[0];
        if(temp.length > 1)
        {
            frID = temp[1];
        }

   
            document.getElementById("parentID").value=frID;
            var nodeName = chooseParentTree.getItemText(id)
            document.getElementById("parentName").value=nodeName;
            showChooseParentTree('chooseParentDiv')
    return true;
}

function selectTreeNode()
{
	//alert('selectTreeNode');
    var  id = chooseParentTree.getSelectedItemId();
    return onDoubleClickFunction(id);
}

 function AddChooseParentNode(parentId,itemId,loc,isRoot,isLeaf,hasChild,ord,chkd)
    {
	//console.log(parentId+":"+itemId+":"+loc);
	var img1=0;
	var img2=0,img3=0;
	var itemText=loc;
	locgs[itemId]=loc;
	if(itemId == -1)
	{
            myDsts[0]=loc;
            isDevs[0]=true;
	}else
	{
            myDsts[itemId]=loc;
            isDevs[itemId]=isLeaf;
	}


	if(parentChlds[parentId]==undefined)
	{
            parentChlds[parentId]=new Array();
	}
	cldsArr=parentChlds[parentId];
	cldsArr[itemId]=itemId;
        img1="folderClosed.gif";
        img2="folderOpen.gif";
        img3=img1;
        if(isLeaf == '1')
        {
            img1="leaf_pro.gif";
            img2=img1;
            img3=img1;

        }
        if(isLeaf == '1')
        {
            

        } else
        {
            chooseParentTree.insertNewChild("GROUP_"+parentId,"GROUP_"+itemId,itemText,isLeaf,img1,img2,img3,'');
         }


    }

    function showChooseParentTree(divId) {
    var hideElem = document.getElementById(divId);
    if(hideElem.style.visibility =="visible")
    {
        hideElem.style.visibility="hidden";
        document.getElementById("actionFrom1").value = ""

    }else
    {
      
      document.getElementById("actionFrom1").value = "selectGname"
      document.getElementById(divId).style.left="350px";
      document.getElementById(divId).style.top="100px";
      hideElem.style.visibility= "visible";
      document.getElementById("choose_parentTree").innerHTML = "";
      document.getElementById("treeStatusImage").src = "/images/loading_img.gif";
      loadParentTree();
    }
    return true;
}
function getParentDetails(gid){
   var parentID = tree.getParentId(gid);
   var parentName = tree.getItemText(parentID);
   var url = "&parentID="+parentID+"&parentName="+encodeURIComponent(parentName);//No I18N
        return url;
}
function checkTreeStatus(tool){

var status = readTreeCookie(tool);
if(status == null || status == 'show'){
	status = "true";
}
else{
	status = "false";
}
return status;
//hideThisTable(status, tool, "false");
}

function readTreeCookie(name)
{
  var ca = document.cookie.split(';');
  var nameEQ = name + "=";
  for(var i=0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1, c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
  return null;
}
function validateParentNode( parentID)
{
    
     if(parentID == "GROUP_1" )
         {
              alert("Please select other parent node to ");
              return false;
         }else if(parentID == "GROUP_0" )
         {
              alert("The Subnet cannot be added directly under the root node; select a group to which the subnet has to be added");
              return false;
         }
    var isNode = getImidiateChildIsNodes(parentID);
    if(!isNode)
        {
              alert("Select a group that do not have another group as a child node");
              return false;
        }
    
    return true;
}
function validateParentNodeName()
{
    var parentName = trim(document.getElementById("parentName").value);
    var parentID = trim(document.getElementById("parentID").value);
    if(parentName.length == 0 )
    {
        alert("Please select a group to add the subnet");
        return false;
    }else if(parentName == "Discovered Subnets" )
    {
        alert("Please select another Parent node");
        return false;
    }else if(parentID == "0" )
    {
        alert("The Subnet cannot be added directly under the root node; select a group to which the subnet has to be added");
        return false;
    }else  if(!validateParentNode( "GROUP_"+parentID))
        {
         return false;
        }
    return true;
}
function showLearnedSubnetsTab()
{
    tree.selectItem("GROUP_1",true);//tree.selectItem("GROUP_1");
    tree.openAllItems("GROUP_1");
	//alert("showlearned subnet called");
    document.getElementById('MsgshowStatusID').value = "ShowNext";
}

function sendParamOnClickOnTreeNode(id) 
{
	//alert('sendParamOnClickOnTreeNode');
	if(!id)
	{
		id = 'GROUP_2';//No I18N
	}
    document.getElementById("treeID").value = id;
    var temp = id.split("_");
    var parentID = temp[0];
    if(temp.length > 1) {
        parentID = temp[1];
    }
    var url = "IPAMTree.do?actionFrom=setParam&treeLevelID="+id+"&nodeID="+parentID;
    persistValuesInMemory(url);
}
function persistValuesInMemory(url){
        var req = null;
        if(window.XMLHttpRequest){
            req = new XMLHttpRequest();
        }else if (window.ActiveXObject){
            isIE=true;
            req  = new ActiveXObject("Microsoft.XMLHTTP");
        }
        req.onreadystatechange = function(){
            if(req.readyState == 4){
                if(req.status == 200){
                   var doc=req.responseText;
                }
            }
        };
       req.open("POST", url, true);
       req.send(null);
    }

