﻿    //var allowedBounds = new GLatLngBounds(new GLatLng(45,-124.8), new GLatLng(49.2,-117.1));	
    var mapTour = new MapTour(null, null);

    var currQuery = new Hash.Cookie('ugomap', {autoSave: false, path: "/"}); //contains current state info about the map
    var bInitialAdjust = false;
        
    function mapLoad() {
        if (GBrowserIsCompatible()) {
        
            mapTour.map = new GMap2(document.getElementById("map"));
            
            var mt = mapTour.map.getMapTypes();
            mt[0].getMinimumResolution = function() { return 0; };
            
            mapTour.map.addControl(new GLargeMapControl());

            var center = currQuery.hasKey('lat') ? new GLatLng(currQuery.get('lat'),currQuery.get('lng')) : new GLatLng(45.735416,-122.851838);
            var zoom = currQuery.hasKey('zoom') ? currQuery.get('zoom') : 3;

            mapTour.map.setCenter(center, zoom);
            var querySt = currQuery.hasKey('st') ? 'st=' + currQuery.get('st') : '';
            var queryC = currQuery.hasKey('c') ? '&c=' + currQuery.get('c') : '';

            //if loading the query from a cookie. set the search panel to the current query values.
            if (currQuery.hasKey('st')) 
            {
                document.getElementById(controlStateSel).value = currQuery.get('st');
                document.getElementById(controlCategorySel).value = currQuery.get('c');
            }
            else
            {
                // State box is hidden, so we are forcing to use a certain state.
                if (document.getElementById(controlStateSel).style.display != "none")
                {
                    document.getElementById(controlStateSel).options[0].selected = true;
                    document.getElementById(controlCategorySel).options[0].selected = true;
                }
            }

            mapTour.mgr = new MarkerClusterer(mapTour.map);
            document.getElementById("loadingMsg").style.display = "block";
            showStops();
        }
    }
    
    function mapUnload() {
        //first save the map position & stop search values to a cookie.
        currQuery.set('lat',mapTour.map.getCenter().lat());
        currQuery.set('lng',mapTour.map.getCenter().lng());
        currQuery.set('zoom',mapTour.map.getZoom());
        currQuery.save();

        //then unload.
        GUnload();
    }

    function showStops()
    {
        //grab current criteria state from the control box
        var tab = document.getElementById("tab_browse_link");
        var state = document.getElementById(controlStateSel).value;
        var cat = document.getElementById(controlCategorySel).value;
        var url = "/stops/"+state+"/"+cat+"/results.aspx";

        currQuery.set('st',state);
        currQuery.set('c',cat);
        currQuery.save();

        var querySt = 'st=' + currQuery.get('st');
        var queryC = '&c=' + currQuery.get('c');

        document.getElementById("loadingMsg").style.display = "block";
        tab.href = url;
        mapTour.placePoints("_s/stop_data.ashx?"+querySt+queryC, {adjust:true, bubble:true, adjustzoom: -1, returnfunc: displayMessages})	
    }
    
    function displayMessages(bReturn) {
        var display = bReturn ? "none" : "block";
        document.getElementById("loadingMsg").style.display = "none";
    }
