//Image map stuff
var ImageStateMap = new Object();

LigeoAPI.addOnLoad(function(){

	initializeStateRollovers();
	if ( LigeoAPI.getLigeoMapById(LigeoAPI.RESULT_MAP_ID) && LigeoAPI.getLigeoMapById(LigeoAPI.RESULT_MAP_ID).getVEMap() ) {
		LigeoAPI.getLigeoMapById(LigeoAPI.RESULT_MAP_ID).getVEMap().AttachEvent("onendzoom", initializeStateRollovers);
	}
    
    if (window.addEventListener){
        window.addEventListener('DOMMouseScroll', wheel, false);
    }
    window.onmousewheel = document.onmousewheel = wheel;
});


   
function wheel(event){
    // Only pertinent if the map showing
    if (LigeoFeaturesAPI.isStateImageMapShowing == true) {
        //Find target of event
        var targ;
        var myEvent = event || window.event;
        targ = myEvent.target || myEvent.srcElement;
        if (targ.nodeType == 3) { // defeat Safari bug
            targ = targ.parentNode;
        }
            
        //Only if event came from a child of the map
        //Call it two ways to support IE and FF
        supported = false;
        if (targ.descendantOf) {
            supported = true;
        }

        if (supported && targ.descendantOf('imageMap')) {
            killPrompt();
	    hideImageMap();
	}
        else if( !supported ) {

		// IE8  workaround
		if (typeof Element != "undefined" && Element != null) {
		
			if ( Element.descendantOf(targ, 'imageMap') ) {
				killPrompt();
				hideImageMap();
			}	
		}

        }
    }
}

initializeStateRollovers = function()
{
  if ( LigeoAPI.getLigeoMapById(LigeoAPI.RESULT_MAP_ID) && LigeoAPI.getLigeoMapById(LigeoAPI.RESULT_MAP_ID).getVEMap() ) {
  
    if (LigeoAPI.getLigeoMapById(LigeoAPI.RESULT_MAP_ID).getVEMap().GetZoomLevel() == 4)
    {
        //alert("Zoom Level 4");
        showImageMap();
    }

    else
    {
        hideImageMap();
    }
  }

    return true;
}


 function hideImageMap(e){
     if (!e) var e = window.event;
    LigeoAPI.getLigeoMapById(LigeoAPI.RESULT_MAP_ID).getVEMap().ShowDashboard();
    if (!e) var e = window.event;
    var imageMap = document.getElementById(LigeoAPI.DEFAULT_MAP_ID);
    imageMap.style.display = "none";
    if (LigeoFeaturesAPI.isStateImageMapShowing == true){
	    LigeoFeaturesAPI.setIsStateImageMapShowing(false);
	    if(e != null && e.type == 'dblclick'){
	    	var latLong = LigeoMap.createLatLonFromMapClick(e);
	    	var resultElement = document.getElementById('resultsBlock');
	    	LigeoAddressParser.setFormToSubmit($('searchForm'));
                //Inform the middle tier this is a map event that is triggering the search
                LigeoAddressParser.addHidden("mapEventSearch", "mapEventSearch", "true");
	    	LigeoAddressParser.searchFromLatLon(latLong, resultElement);
                //Set the form back to false on mapevent for future submitals
                LigeoAddressParser.addHidden("mapEventSearch", "mapEventSearch", "false");
	    }
	}
 }


 function showImageMap(){
        //WE must remove all locations from the map so they do not show 
     LigeoAPI.getLigeoMapById(LigeoAPI.RESULT_MAP_ID).clearResults();
 	LigeoAPI.getLigeoMapById(LigeoAPI.RESULT_MAP_ID).getVEMap().HideDashboard();
 	if (LigeoFeaturesAPI.isStateImageMapShowing == false){
	    LigeoAPI.getLigeoMapById(LigeoAPI.RESULT_MAP_ID).getVEMap().SetCenterAndZoom(new VELatLong(38.86883, -96.486962), 4);
	    var imageMap = document.getElementById(LigeoAPI.DEFAULT_MAP_ID);
	    imageMap.style.display = "block";
	    LigeoFeaturesAPI.setIsStateImageMapShowing(true);
 	}
 }
 
 

 