
function hoverQuery(evt) {    
    var hoverButton = dojo.byId("hoverInfo");
    
    
    if(hoverButton.className == "HoverInfoActive"){
        disableHover();
        return;
    }
    else
    {
        if(map.getLevel() < infoZoomLevel)
        {       

            if(confirm("Zoom to a scale where tool tips are visible?")){
                hoverButton.className = "HoverInfoActive";              
                // map extent change will take care of executing the query
                map.setLevel(infoZoomLevel); 
            }
        }
        else
        {
            hoverButton.className = "HoverInfoActive";   
            window.setTimeout("PerformHoverQuery()", 500);  
        }
        
        // If no tool has been selected, default to the pan tool
        if(currentTool == null){
            ActivateTool('Pan');
            navToolbar.activate(esri.toolbars.Navigation.PAN);             
        }          
    }
}    
    
function PerformHoverQuery() 
{   
          
    if (map.getLevel() < infoZoomLevel)      
    {
        disableHover();
    }
    else
    {
        if (dojo.byId("hoverInfo").className == "HoverInfoActive")
        {
            doHoverQuery();
        }
    }
}
    
function disableHover(){
    var hoverButton = dojo.byId("hoverInfo");
    
        hoverButton.className = "HoverInfoStatic";

        map.graphics.clear();         
        var infoDiv = dojo.byId("infoDiv");
        infoDiv.style.display = "none";
}

var leftShapeTimer;

var tansparentSymbol = new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_NULL, new dojo.Color([0,0,0,0]), 0), new dojo.Color([0,0,0,0]));       
var highlightSymbol = new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_NULL, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([255,0,0]), 3), new dojo.Color([125,125,125,0.35]));

var mouseIn = false; 
function doHoverQuery(){
    dojo.byId("loadingImg").style.display ="block";
    
    //build query task
    var queryTask = new esri.tasks.QueryTask(buildingLayer);

    //build query filter
    var query = new esri.tasks.Query();
    query.returnGeometry = true;
    query.outFields = ["PARCEL"];    
    query.geometry = map.extent;
    query.geometry.spatialReference = map.spatialReference;  
    query.outSpatialReference =  map.spatialReference;  
    queryTask.execute(query, HoverQueryComplete);
}


function HoverQueryComplete(featureSet) 
{
        dojo.byId("loadingImg").style.display ="none";
        map.graphics.clear();

        //QueryTask returns a featureSet.  Loop through features in the featureSet and add them to the map.
        for (var i=0; i<featureSet.features.length; i++) {
            var graphic = featureSet.features[i];
            graphic.setSymbol(tansparentSymbol);
            map.graphics.add(graphic);            
        }
        
        map.graphics.enableMouseEvents();                    
        dojo.connect(map.graphics, "onMouseMove", HoverMouseMove);
        dojo.connect(map.graphics, "onMouseOut", HoverMouseOut);         
}

function HoverMouseOut(evt) {
    evt.graphic.setSymbol(tansparentSymbol);
}


function HoverMouseMove(evt) {
    var infoDiv = dojo.byId("infoDiv");
    infoDiv.style.display ="block";
                                                                            
        var content = evt.graphic.attributes["PARCEL"];

        evt.graphic.setSymbol(highlightSymbol);
        
        if((content != "") && (content != " ")){            
            content += "<br/>"
        }else{
            content += "Parcel number not available."
        }
        
        var reportState = dojo.byId("Report").getAttribute("currentclass");
        if(reportState.indexOf("ReportActive") != -1){
            var actionText = "Click in the parcel outline<br/> to generate a report.";
            content += "<span class='HoverClickText'><center>" + actionText + "</center></span>";
        }
        infoDiv.innerHTML = content;
        infoDiv.style.display = "";

    infoDiv.style.top = (parseInt(evt.clientY) - parseInt(infoDiv.clientHeight) - 15) + "px";
    infoDiv.style.left = (parseInt(evt.clientX) - (parseInt(infoDiv.clientWidth) / 2)) + "px";
}

function moveInfoDiv(evt){
     var infoDiv = dojo.byId("infoDiv");
     var mapDiv = dojo.byId("ViewerFrame");
     var topOfMapDiv = 101;
     if(parseInt(infoDiv.style.top) < topOfMapDiv + 5){ // see framework.css for spacing
        infoDiv.style.display = "none";
     }
     infoDiv.style.top = (parseInt(evt.clientY) - parseInt(infoDiv.clientHeight) - 5) + "px";     
}
