// Controller JScript File

//-------------------------------------------------------------------------------------------------
// *** Global Objects ***
//.................................................................................................
var jsobjDisplay				= new DisplayClass();
var jsobjToolBar				= new ToolBarClass();
var jsobjBenchmarkSearch	= new BenchmarkSearchClass();
var jsobjController			= new ControllerClass();
//.................................................................................................
// *** Global Objects ***
//-------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------
// *** Global Classes ***
//.................................................................................................

function ControllerClass()
{
	//-------------------------------------------------------------------------------------------------
	// *** Private Variables ***
	//.................................................................................................
	//.................................................................................................
	// *** Private Variables ***
	//-------------------------------------------------------------------------------------------------
	//-------------------------------------------------------------------------------------------------
	// *** Public Properties ***
	//.................................................................................................
	//.................................................................................................
	// *** Public Properties ***
	//-------------------------------------------------------------------------------------------------
	//-------------------------------------------------------------------------------------------------
	// *** Public Methods ***
	//.................................................................................................
	// Initializes the Map controls.
	this.Initialize = function()
	{
		jsobjToolBar.Initialize();
		jsobjDisplay.Initialize();
		
		this.SetContentVisibilty();
	}
	//.................................................................................................
	// When a Tool or Action button on the ToolBar is clicked,
	// Set the Display object Action based on the Tool selected and update map if needed,
	// and display the appropriate control(s) for viewing or selecting information.
	this.divToolBarClick = function()
	{
		switch (jsobjToolBar.SelectedAction().toUpperCase())
		{
			case "ZOOMQUERY" :
			    this.SetContentVisibilty();
				divBenchmarkSearch.style.visibility='visible';
				break;

			case "ZOOMTOFEATURE" :
			    this.SetContentVisibilty();
				divZoomToFeature.style.visibility='visible';
				break;
			
			case "PRINT" :
			    this.SetContentVisibilty();
			    divPrintMap.style.visibility='visible';
			    break;
			
			case "CONTACTINFO" :
			    this.SetContentVisibilty();
			    divContactInfo.style.visibility='visible';
				break;
				    
			case "HELP" :
			     helpWin = window.open( "", "helpwin", "width=800,height=725,resizable=no,scrollbars=yes,screenX=20,screenY=40,left=10,top=0");
                 helpWin.location="/MAP/maphelp.aspx?"; 
			    break;
				
			case "ZOOMFULL" :
				jsobjDisplay.Action(jsobjToolBar.SelectedAction());
				//this.ShowMapProgress();
				jsobjDisplay.UpdateMap();
				break;				

			case "IDENTIFY" : 
				this.SetContentVisibilty();
				document.getElementById(hfIdentifyResultsClientID).style.visibility='visible';
				//document.getElementById(hfupdateResultsClientID).visible=true;
				break;
				
			case "CIRCLEQUERY" : 
				this.SetContentVisibilty();
				//document.getElementById(hfCircleQueryResultsID).style.visibility='visible';
				//document.getElementById(hfupdateResultsClientID).visible=true;
				break;
				
			case "ZOOMIN" :
			case "ZOOMOUT" :
			case "PAN" :
				break;
			default :
				break;
		}
		jsobjToolBar.SetTool();
		jsobjDisplay.Action(jsobjToolBar.CurrentToolName());
		return false;
	}
	
	this.SetContentVisibilty = function()
	{
        divBenchmarkSearch.style.visibility='hidden';
        divZoomToFeature.style.visibility='hidden';
        divPrintMap.style.visibility='hidden';
        divContactInfo.style.visibility='hidden';
        document.getElementById(hfCircleQueryResultsID).style.visibility='hidden';
        document.getElementById(hfIdentifyResultsClientID).style.visibility='hidden';
        document.getElementById(hfupdateResultsClientID).style.visibility='hidden';
        //document.getElementById(hfCircleQueryResultsID).visible=false;
        //document.getElementById(hfIdentifyResultsClientID).visible=false;
        //document.getElementById(hfupdateResultsClientID).visible=false;
	}

	this.SetDivVisibility = function(DivID)	
	{
        try
        {
            var divArray = new Array("divBenchmarkSearch","divZoomToFeature","divPrintMap","divContactInfo","hfCircleQueryResultsID","hfIdentifyResultsClientID", "hfupdateResultsClientID");

            for (i=0; i<divArray.length; i++)
            {
                //document.write(divArray[i] + "<br>")
                var obj =  document.getElementById(divArray[i]);
                if (obj  != null)
                {
                    if (obj.id == DivID)
                    {
                        if (obj.style.visibility == "hidden") 
                            obj.style.visibility='visible'; 
                    }
                    else
                    {
                        obj.style.visibility='hidden'; 
                    }
                }
            }
        }
        catch (Err)
        { 
            alert("Error : " + Err.description);
        } 	    
	}
	
	this.ShowMapProgress = function()
	{
	    //alert('ShowMapProgress');
        objProgress = document.getElementById("divMapProgress");
        objImg = document.getElementById("imgMapProgress");
        if ((objProgress) && (objImg))
            {
                //objProgress.style.visibility = (objProgress.style.visibility == "hidden" ? "visible" : "hidden");
                objProgress.style.visibility =  "visible"; 
                objImg.style.visibility = "visible";          
            }
	}
	
	this.HideMapProgress = function()
	{
	    objProgress = document.getElementById("divMapProgress");
        objImg = document.getElementById("imgMapProgress");
        if ((objProgress) && (objImg))
            { 
                objProgress.style.visibility =  "hidden"; 
                objImg.style.visibility = "hidden";          
            }
	}
}
//.................................................................................................
// *** Global Classes ***
//-------------------------------------------------------------------------------------------------
