﻿// JScript File
// KCGIS Center 10/28/2008

function zoomToFeature(objectid, layerID) {

    var queryServiceName = dynamicAlertsURL + "/";
    var taskString = queryServiceName + layerID;
    queryTask = new esri.tasks.QueryTask(taskString);
    queryParams = new esri.tasks.Query();
    queryParams.where = "OBJECTID = '" + objectid + "'"; 
    queryParams.outFields = ["OBJECTID"]; 
    queryParams.returnGeometry = true;
      console.log(queryParams.where)
    queryTask.execute(queryParams, viewResults);
}

function zoomToCamera(camerID, layerID) {

    var queryServiceName = dynamicAlertsURL + "/";
    var taskString = queryServiceName + layerID;
    queryTask = new esri.tasks.QueryTask(taskString);
    queryParams = new esri.tasks.Query();
    queryParams.where = "TRAFCAM_ID = '" + camerID + "'"; 
    queryParams.outFields = ["TRAFCAM_ID"]; 
    queryParams.returnGeometry = true;
      console.log('zoomToCamera ' + queryParams.where);
    queryTask.execute(queryParams, function(featureSet){
        var idPoint = featureSet.features[0].geometry;
        var zoomPoint = idPoint.offset(0, -5000);
        map.centerAndZoom(zoomPoint,7);
        setTimeout(function() {doIdentifyProg(idPoint); }, 800);
    });
}

function zoomToClosure(closureID, layerID) {

    var queryServiceName = dynamicAlertsURL + "/";
    var taskString = queryServiceName + layerID;
    queryTask = new esri.tasks.QueryTask(taskString);
    queryParams = new esri.tasks.Query();
    queryParams.where = "GlobalID = '" + closureID + "'"; 
    queryParams.outFields = ["GlobalID"]; 
    queryParams.returnGeometry = true;
      console.log('zoomToClosure ' + queryParams.where);
    queryTask.execute(queryParams, viewResults);

}

function viewResults(featureSet) {
    var extent;
    var idPoint = featureSet.features[0].geometry.getPoint(0, 0);
    identifyParams.layerIds = [0,1];
    extent = featureSet.features[0].geometry.getExtent();
    extentCenter = extent.getCenter();   
      console.log("Inside viewResults(featureSet)");
    extent = extent.expand(4);
    //map.setExtent(extent);
    map.centerAndZoom(extentCenter,7);
      console.log("mapLevel: " + map.getLevel());
    //setTimeout(function() {console.log("delayed mapLevel: " + map.getLevel()); }, 500);
    //setTimeout(function() {adjustMapLevel(); }, 500);   
    //doIdentifyProg(idPoint);  // Without a delay, the infoWindow will likely appear in the wrong place on the screen
    setTimeout(function() {doIdentifyProg(idPoint); }, 800);   // calls an Identify function on a delay to display the infoWindow    
}

function adjustMapLevel(){
// this function is used to make sure the map doesn't zoom in too far on a feature
    if (map.getLevel() > 9){
        map.setLevel(9);
    }    
}