//  COPYRIGHT © 2006 ESRI
//
//  TRADE SECRETS: ESRI PROPRIETARY AND CONFIDENTIAL
//  Unpublished material - all rights reserved under the
//  Copyright Laws of the United States and applicable international
//  laws, treaties, and conventions.
// 
//  For additional information, contact:
//  Environmental Systems Research Institute, Inc.
//  Attn: Contracts and Legal Services Department
//  380 New York Street
//  Redlands, California, 92373
//  USA
// 
//  email: contracts@esri.com

var TreeViewPlusObjects=new Array();

function TreeViewPlusObject(tvpID, expandedImage, collapsedImage, clearImage, callbackFunctionString)
{
    this.id = tvpID;
    this.callbackFunctionString=callbackFunctionString;
    this.expandedImage=expandedImage;
    this.collapsedImage=collapsedImage;
    this.clearImage=clearImage;
    
    this.toggleNodeState=function (nodeID, fireClickedEvent)
    {
        var argument='nodeID=' + nodeID + '&';
	    var childrenContainer=document.getElementById(nodeID+'_childrenContainer');
	    var button=document.getElementById(nodeID + '_StateButton');
	    if (childrenContainer==null || button==null) return;
	    if (fireClickedEvent==null)fireClickedEvent=false;
	    if (childrenContainer.style.display=='none')
	    {
	        argument+='EventArg=expanded&Value=true';
	        if (fireClickedEvent)argument+='&Action=clicked';
		    childrenContainer.style.display='';
		    button.src=this.expandedImage;
	    }
	    else
	    {
	        argument+='EventArg=expanded&Value=false';
	        if (fireClickedEvent)argument+='&Action=clicked';
		    childrenContainer.style.display='none';
		    button.src=this.collapsedImage;
	    }
    	
	    var context = null;
	    eval(this.callbackFunctionString);
    }
    
    this.nodeChecked=function (nodeID)
    {
        var argument='nodeID=' + nodeID + '&';
	    var checkBox=document.getElementById(nodeID + '_CheckBox');
	    if (checkBox==null) return;
	    if (checkBox.checked==false)
	    {
	        argument+='EventArg=checked&Value=false';
	        checkBox.value=false;
	    }
	    else
	    {
	        argument+='EventArg=checked&Value=true';
	        checkBox.value=true;
	    }
    	
	    var context = null;
	    eval(this.callbackFunctionString);
    }

    this.nodeClicked=function (nodeID)
    {
        var argument='nodeID=' + nodeID + '&EventArg=nodeClicked';
	    var context = null;
	    eval(this.callbackFunctionString);
    }
    
    this.clearNode=function (nodeID)
    {
        var argument='nodeID=' + nodeID + '&EventArg=clearNode';
	    var context = null;
            alert("clear this one here");
	    eval(this.callbackFunctionString);
    }
    
    this.nextPage=function (nodeID)
    {
        var argument='nodeID=' + nodeID + '&EventArg=nextPage';
	    var context = null;
	    eval(this.callbackFunctionString);
    }

    this.previousPage=function (nodeID)
    {
        var argument='nodeID=' + nodeID + '&EventArg=previousPage';
	    var context = null;
	    eval(this.callbackFunctionString);
    }

    this.clearAllNodes=function ()
    {
        var argument='EventArg=clearAllNodes';
	    var context = null;
	   var selnodeid = document.getElementById("Results_TaskResults1_hfSelectedNode").value;

// Map IT Change
// Added to allow counter to reset when all id's cleared. (counter for id's on id sticky on map)
// Djones - 6/12/07
            var idCount = document.getElementById("identifycounter").value;
            idCount++;
            for(i = 1; i< idCount;i++)
	    {
		var idwin = document.getElementById("IdentifyLocation_" + i);
		idwin.style.visibility="hidden";		
            }
	    document.getElementById("identifycounter").value = 0;
//-*
	    eval(this.callbackFunctionString);
    }

    this.nodeLegendClicked=function (nodeID)
    {
        var argument='nodeID=' + nodeID + '&EventArg=nodeLegendClicked';
	    var context = null;
	    eval(this.callbackFunctionString);
    }
        
    this.unselectNode=function (nodeID, backColor, hoverColor)
    {
        var node=document.getElementById(nodeID);
        if (node==null)return;
        node.style.backgroundColor=backColor;
        node.onmouseover=function(){this.style.backgroundColor=hoverColor;}
        node.onmouseout=function(){this.style.backgroundColor=backColor;}
    }
}