﻿
// JScript File
var flag = 0;

//Finds the location of the Query string.
function SearchLocation()
{  
      
    var noOfResultsJs = MAX_SEARCH_RESULTS;
    if( GetElement('txtNumResults') != null )
    {
        noOfResultsJs = GetElement('txtNumResults').value;
    }
    
    var resultDivJs = GetElement( 'resultDiv' );
    if( resultDivJs != null )
    {
        resultDivJs.innerHTML = '';
    }
    
    var txtSearchJs = GetElement( SearchBoxControlID );

    if( txtSearchJs != null && txtSearchJs.value.length > 0 )
    {       
        flag = 0;
        /* 
            VEMap.Find(what, where, findType, shapeLayer, startIndex, numberOfResults, showResults, createResults, useDefaultDisambiguation, setBestMapView, callback);
        */
        results = map.Find
            ( null, txtSearchJs.value, null, null, 0, noOfResultsJs, true, true, false, true, MoreResults );
        
    }  
}
//This function is call back from the VEMap.Find method
//Finds more than one location for the Query string.
function MoreResults(a,b, searchResults,d,e)
{
    
    var noOfResultsJs1 = MAX_SEARCH_RESULTS;
    var resultDivJs = GetElement( 'resultDiv' );

    var noMoreResultsDivJs = GetElement( 'noMoreResultsDiv' );

    if (searchResults != null && searchResults.length > 0)
    {

        var results="";
        for (x=0; x<searchResults.length; x++)

        {
           // var flag1 = 0;
           // for(y=0; y<searchResults.length,y != x; y++)
           // {
           //     if(searchResults[x].Name == searchResults[y].Name)
           //     flag1 = 1;
           // }
            
           // if(flag1 == 0)
           // {
            results+="<a href='javascript:SetTextBoxToValue(\"" + SearchBoxControlID + "\", \"" + searchResults[x].Name + "\"); HideElement(\"resultDiv\");map.Find(null, \""+searchResults[x].Name+"\",null, null, 0, 1, true, true , false, true, MoreResults);'>"+searchResults[x].Name+"</a><br>";
           // }

        }
        
        if(( resultDivJs != null ) && (flag ==0)) {

            var ieversion = GetInternetExplorerVersion();
            if (ieversion != -1 && ieversion < 8) {
                resultDivJs.style.marginLeft='-300px';
                resultDivJs.style.marginTop='25px';           
            
          }
          else
          {
            resultDivJs.style.marginLeft='227px';
          }
            
            flag = 1;
            GetElement('resultDiv').innerHTML=results;

            ShowBlockElement( 'resultDiv' );
            
        }



        //  attach an onclick event to hide the result div if the user clicks on the div or anywhere
        //  on the map
        var mapDivJs = GetElement( "myMap" );
        if( mapDivJs != null )
        { 
            if( IE )
            {
                mapDivJs.attachEvent( "onclick", RegisterHideResultDivCallBack );
            }
            else
            {
                mapDivJs.addEventListener( "click", RegisterHideResultDivCallBack, false );
            }
        }
    }
}

 //  register call back to hide the result div when the user clicks on the map div
//  requires the map div id to be called "myMap" 
function RegisterHideResultDivCallBack()
{
    var resultDivJs = GetElement( "resultDiv" );
    if( resultDivJs != null )
    {
        resultDivJs.style.display = "none";
    }    
    RemoveHideResultDivCallBack();
}

function RemoveHideResultDivCallBack()
{
    var mapDivJs = GetElement( "myMap" );
    if( mapDivJs != null )
    {
        if( IE )
        {
            mapDivJs.detachEvent( "onclick", RegisterHideResultDivCallBack );
        }
        else
        {
            mapDivJs.removeEventListener( "click", RegisterHideResultDivCallBack, false );
        }        
    }
}



