$(function(){

    YM.init();
    
    $("a.okay_link").click(function() {
        $(this).parent().parent().parent().slideUp();
    });
    
    $(document).keydown(function(e){
        if (e.which == 27) {
            location.href = "http://admin.wpbinc.com";
        }
    });

});

var Utils = {

    email_link: function(sEmailName, sDomain, sSubject)
    {
        if(!sDomain) sDomain = 'wpbinc.com';
        var subject = (sSubject) ? "?" + sSubject : "";
        var sEmailLink = "mailto:" + sEmailName + "@" + sDomain + subject;
        location.href = sEmailLink;
    }

}

/**
 * Yahoo maps API interaction
 */
var YM = {
    
    // Yahoo maps API key for http://www.wpbinc.com
    iKey: "HV6jlMrV34G9cwn_MKOyW4fAoYXMUhY7yIWhkzve4vcIwm_330MKdi5rZA4jMGfaR2gQnw--",
    
    // WP&B locations
    aLocs: [],
    
    // array of geopoint objects for the locations
    geo_points: [],
    
    init: function()
    {
        if ($("#wpb_map").length == 0) return; 
        
        // setup the locations data
        YM.aLocs[0] = {title: "Portland Office", div: $('#portlandLocDiv'), lat: 45.546772, lon: -122.711966};
        YM.aLocs[1] = {title: "Downtown Office", div: $('#downtownLocDiv'), lat: 45.520312, lon: -122.684475};
        
        // create the map
        // set up map object
        YM.map = new YMap(document.getElementById('wpb_map')); 
        
        //  - add a pan control 
        YM.map.addPanControl(); 
        //  - add a slider zoom control 
        YM.map.addZoomLong();
        //  - add map type control
        YM.map.addTypeControl();
        
        // add markers
        for (var i = 0; i < YM.aLocs.length; i++) {
            // get geo point
            var oGeoPoint = new YGeoPoint(YM.aLocs[i].lat, YM.aLocs[i].lon);
            // add geo point to geo_points array for later use
            YM.geo_points[YM.geo_points.length] = oGeoPoint;
            // plot geo point on map
            YM.map.addOverlay(YM.marker(oGeoPoint, i));
        }
        
        var oZoomCenter = YM.map.getBestZoomAndCenter(YM.geo_points);
        var bestZoom = oZoomCenter.zoomLevel;
        var bestCenter = oZoomCenter.YGeoPoint;
        YM.map.drawZoomAndCenter(bestCenter, bestZoom + 1);
    },
    
    // creating a custom marker image and specifying the popup tooltip with location information
    marker: function(geopoint, iIndex)
    {
        // create custom marker
        var marker = new YMarker(geopoint);
        // add a ref of the marker to the locations array for later use
        YM.aLocs[iIndex].marker = marker;
        // get the tooltip HTML
        var tooltipHTML = "<div class='mapTooltip'>" + YM.aLocs[iIndex].div.html() + "</div>";
        var sLabel = "<p class='mapLabel'>" + YM.aLocs[iIndex].title + " &#187;</p>";
        marker.addAutoExpand(sLabel);
        
        YEvent.Capture(marker, EventsList.MouseClick, function() {marker.openSmartWindow(tooltipHTML)});
        return marker;
    },
    
    tooltip: function(iLocIndex)
    {
        
    },
    
    // zooms in on the 
    closeup: function(iId)
    {
        var iId = parseInt(iId);
        // YM.aLocs[iId].marker.closeSmartWindow();
        var oGeoPoint = new YGeoPoint(YM.aLocs[iId].lat, YM.aLocs[iId].lon);
        YM.map.drawZoomAndCenter(oGeoPoint, 3);
    }
    
}
