﻿/**
 * main.js
 */

/**
 * jQuery and Prototype libraries conflict with each other (both use "$").
 * In order to maintain the full, original functionality of Lightbox (which requires Prototype),
 * all jQuery code is contained within the DOM ready event.
 * Ref: "Using jQuery with Other Libraries" [http://docs.jquery.com/Using_jQuery_with_Other_Libraries]
 */

// Initializes object(s) when the DOM is loaded.
jQuery(document).ready(function($) {
    var Page = {
        init: function() {
            //
            // Page-specific initialization.
            //
            
            // Food > Take Out Orders
            if ($("div#take-out-orders").length > 0) {
                // Insert Flash
                var flashvars = {};
                flashvars.width = 607;
                flashvars.height = 258;
                flashvars.file = '../flash/punch_oven.flv';
                flashvars.backcolor = '0xFFFFFF';
                flashvars.bufferlength = 1;
                flashvars.backcolor = '0xFFFFFF';
                flashvars.frontcolor = '0xF26722';
                flashvars.lightcolor = '0xFBE9A1';
                flashvars.screencolor = '0xFFFFFF';
                flashvars.volume = 100;
                flashvars.showdigits = false;
                flashvars.usefullscreen = false;
                flashvars.shuffle = false;
                //
                var params = {
                    play: "true",
                    loop: "true",
                    menu: "true",
                    quality: "high",
                    scale: "showall",
                    salign: "",
                    wmode: "opaque",
                    bgcolor: "#ffffff",
                    devicefont: "false",
                    allowFullScreen: "false",
                    allowScriptAccess: "sameDomain"
                };
                //
                var attributes = {};
                //
                swfobject.embedSWF("/flash/punch_player.swf", "flashcontent", "617", "293", "8", false, flashvars, params, attributes);
            }
            
            // Where > Index
            if ($("div#where").length > 0) {
                GoogleMap.load();
                $("body").unload(function () { GoogleMap.unload(); });
            }
        }
    }

    var GoogleMap = {
        load: function() {
            // Add icon
            var icon = new GIcon();
            icon.image = "/images/where/icon_map_small.png";
			icon.shadow = "/images/where/icon_shadow_small-v2.png";
            icon.iconSize = new GSize(25, 35);
			icon.shadowSize = new GSize(40, 35);
            icon.iconAnchor = new GPoint(10, 35);
            icon.infoWindowAnchor = new GPoint(31, 8);
			icon.infoShadowAnchor = new GPoint(48, 42);

            var map = new GMap(document.getElementById("map"));
            //map.addControl(new GMapTypeControl());
            //map.addControl(new GSmallMapControl());
            map.centerAndZoom(new GPoint(-93.320985,44.948423), 7);

            // Add marker (Eden Prairie)
            var point = new GPoint(-93.433497,44.853494);
            var location = 'Eden Prairie';
            var address = '8353 Crystal View Rd Eden Prairie MN 55334';
            GoogleMap.addMarker(map, point, icon, address, location);

            // Add marker (Wayzata)
            var point = new GPoint(-93.496713,44.971655);
            var location = 'Wayzata';
            var address = '1313 Wayzata Blvd E Wayzata MN 55391';
            GoogleMap.addMarker(map, point, icon, address, location);
			
            // Add marker (Northeast Minneapolis )
            var point = new GPoint(-93.256797,44.987835);
            var location = 'Northeast Minneapolis';
            var address = '210 E Hennepin Ave Minneapolis MN 55414';
            GoogleMap.addMarker(map, point, icon, address, location);

            // Add marker (Highland Park)
            var point = new GPoint(-93.187356,44.920328);
            var location = 'Highland Park';
            var address = '704 Cleveland Ave S St Paul MN 55116';
            GoogleMap.addMarker(map, point, icon, address, location);

            // Add marker (Lake Calhoun Minneapolis)
            var point = new GPoint(-93.321326,44.948441);
            var location = 'Lake Calhoun Minneapolis';
            var address = '3226 W Lake St Minneapolis MN 55416';
            GoogleMap.addMarker(map, point, icon, address, location);
            
            // Add marker (Grand Avenue)
            var point = new GPoint(-93.132509,44.940235);
            var location = 'Grand Avenue';
            var address = '769 Grand Ave St Paul MN 55105';
            GoogleMap.addMarker(map, point, icon, address, location);
            
            // Add marker (Stadium Village)
            var point = new GPoint(-93.227055,44.973613);
            var location = 'Stadium Village';
            var address = '802 Washington Avenue SE Minneapolis MN 55414';
            GoogleMap.addMarker(map, point, icon, address, location);
        },

        unload: function() {
            GUnload();
        },
        
        addMarker: function(map, point, icon, address, location) {
            var marker = new GMarker(point, icon);
            
            GEvent.addListener(marker, "click", function() {
                var html = "";
                html += '<div style="width: 220px; background: url(/images/where/icon_marker.gif) no-repeat top left; padding: 10px 0 0 25px; font-size: 13px;">';
                html += '<div style="color: #F26722; font-weight: bold; text-transform: uppercase;">' + location + '</div>';
                html += '<strong>Get directions</strong> by entering your starting address below:<br /><br />';
                html += '<input id="StartAddress" type="text" style="border:1px solid #FFCD05; height:16px; padding:2px;margin-right:5px; vertical-align:middle;" />';
                html += '<input id="GoogleSubmit" onclick="googleMapHelper.go(\'' + address + '\');" type="button" value="Go" style="display: inline; border:1px solid #FFCD05;height:22px;background:#FFF;vertical-align:middle;padding: 0 5px;"/>';
                html += '</div>';

                marker.openInfoWindowHtml(html);
            });

            map.addOverlay(marker);
        }
    }

    // Initializes general and page-specific script behavior.
    Page.init();
});

// See comment above re jQuery and Prototype conflict.
jQuery.noConflict();

var googleMapHelper = {
    go: function (address) {
        var googleMapsUrl = 'http://maps.google.com/maps?';
        var spaceRegex = /\s/;
        var saddr = jQuery("#StartAddress").attr("value");

        while (spaceRegex.test(saddr) == true) {
            saddr = saddr.replace(spaceRegex, '+');
        }
        
        var daddr = address;
        while (spaceRegex.test(daddr) == true) {
            daddr = daddr.replace(spaceRegex, '+');
        }
        
        var href = googleMapsUrl + 'saddr=' + saddr + '&' + 'daddr=' + daddr;                    
        window.open(href, "window");
    }
}

// EOF
