var map;
var geocoder;
var browserSupport = new Boolean();
var initialLocation = "Seattle, WA";
var imageURL = '/images/mapcactus.png';
var currentStartingPoint = "47.6062095, -122.3320708";
var directionService = new google.maps.DirectionsService();
var locations = [
['Tacoma - 19th & Mildred', 47.242444, -122.525472, '6618 19th Street W<br/>Fircrest, WA 98466<br/><strong>Phone: 253.565.4331<br/>Fax: 253.565.8190</strong>', 'Call for hours.', 'Fax Orders Available'],
['Tacoma - 6th Avenue', 47.2556334, -122.4975225, '4427 6th Avenue<br/>Tacoma, WA 98406<br/><strong>Phone: 253.752.8790<br/>Fax: 253.752.5210</strong>', 'Call for hours.', 'Fax Orders Available'],
['Alderwood Mall #850', 47.829867, -122.274871, '3000 184th Street SW - Alderwood Mall<br/>Lynnwood, WA 98036<br/><strong>Phone: 425.712.0184</strong>', 'Call for hours.', ''],
['Seattle - Aurora Avenue', 47.732548, -122.344691, '14300 Aurora Avenue N<br/>Seattle, WA 98133<br/><strong>Phone: 206.362.2115</strong>', 'Mon-Sun: 10:00 AM - 10:00 PM', ''],
['Bellevue', 47.612161, -122.199234, '201 106th Avenue NE<br/>Bellevue, WA 98004<br/><strong>Phone: 425.454.2293</strong>', 'Mon-Sun: 10:00 AM - 10:00 PM', ''],
['Bonney Lake', 47.16819, -122.148075, '21503 Highway 410 E<br/>Bonney Lake, WA 98390<br/><strong>Phone: 253.826.6474</strong>', 'Sun-Wed: 10:00 AM - 9:00 PM<br/>Thurs-Sat: 10:00 AM - 9:30 PM<br/>Drive Thru Open Until 10:00 PM', ''],
['Burien', 47.4656468, -122.344537, '15305 8th SW<br/>Burien, WA 98166<br/><strong>Phone: 206.242.0171</strong>', 'Mon-Sun: 10:00 AM - 9:00 PM', ''],
['Canyon Park', 47.791652, -122.214482, '1317 228th Street SE<br/>Bothell, WA 98011<br/><strong>Phone: 425.481.4844</strong>', 'Call for hours.', ''],
['Covington', 47.357778, -122.11193, '17211 SE 272nd Street<br/>Covington, WA 98042<br/><strong>Phone: 253.630.1249<br/>Fax: 253.631.7192</strong>', 'Call for hours.', 'Fax Orders Available'],
['Crossroads', 47.628261, -122.132916, '2001 156th Avenue NE<br/>Bellevue, WA 98007<br/><strong>Phone: 425.643.9336</strong>', 'Mon-Sun: 10:00 AM - 10:00 PM', ''],
['Des Moines', 47.39522, -122.300897, '809 Kent-Des Moines Road<br/>Des Moines, WA 98188<br/><strong>Phone: 206.824.2772</strong>', 'Mon-Sun: 10:00 AM - 9:00 PM', ''],
['East Bremerton', 47.6243585, -122.6289733, '6749 State Route 303<br/>Bremerton, WA 98311<br/><strong>Phone: 360.613.2842</strong>', 'Mon-Sun: 10:00 AM - 10:00 PM', ''],
['Seattle - East Marginal', 47.545254, -122.331095, '6442 East Marginal Way S<br/>Seattle, WA 98108<br/><strong>Phone: 206.762.5830</strong>', 'Mon-Fri: 10:00 AM - 9:00 PM<br/>Sat-Sun: 10:00 AM - 7:00 PM', ''],
['East Wenatchee', 47.406707, -120.282855, '100 Eastmont Avenue<br/>East Wenatchee, WA 98802<br/><strong>Phone: 509.884.0163</strong>', 'Call for hours.', ''],
['Edmonds', 47.782221, -122.344876, '23904 Highway 99<br/>Edmonds, WA 98020<br/><strong>Phone: 425.775.0110</strong>', 'Call for hours.', ''],
['Seattle - Elliott Avenue', 47.629496, -122.371398, '1140 Elliott Avenue W<br/>Seattle, WA 98119<br/><strong>Phone: 206.282.7525</strong>', 'Mon-Sun: 10:00 AM - 10:00 PM', ''],
['Enumclaw', 47.198398, -121.978579, '865 Watson Street N<br/>Enumclaw, WA 98022<br/><strong>Phone: 360.825.5180</strong>', 'Sun-Wed: 10:00 AM - 9:00 PM<br/>Thurs-Sat: 10:00 AM - 9:30 PM<br/>Drive Thru Open Until 10:00 PM', ''],
['Everett - Rucker Avenue', 47.966993, -122.210502, '3805 Rucker Avenue<br/>Everett, WA 98201<br/><strong>Phone: 425.252.4080</strong>', 'Mon-Sun: 10:00 AM - 10:00 PM', ''],
['Factoria', 47.5767619, -122.169348, '3920 Factoria Boulevard SE<br/>Bellevue, WA 98006<br/><strong>Phone: 425.643.6679</strong>', 'Mon-Sun: 10:00 AM - 10:00 PM', ''],
['Fairwood', 47.4455333, -122.1540857, '14006 SE Petrovitsky Road<br/>Renton, WA 98058<br/><strong>Phone: 425.271.7271</strong>', 'Mon-Sun: 10:00 AM - 10:00 PM', ''],
['Federal Way', 47.3151842, -122.3590726, '2002 S 320th<br/>Federal Way, WA 98003<br/><strong>Phone: 253.941.1770</strong>', 'Mon-Thur: 10:00 AM - 10:30 PM<br/>Fri: 10:00 AM - 11:00 PM<br/>Sat: 10:30 AM - 11:00 PM<br/>Sun: 10:30 AM - 10:30 PM', ''],
['Fife', 47.2430834, -122.3607006, '5105 Pacific Highway. E<br/>Fife, WA 98424<br/><strong>Phone: 253.922.4513</strong>', 'Mon-Sun: 10:00 AM - 9:30 PM<br/>Drive Thru Open Until 10:00 PM', ''],
['Frederickson', 47.0963207, -122.356271, '5606 176th St. East<br/>Puyallup, WA 98375<br/><strong>Phone: 253.875.9423</strong>', 'Mon-Sun: 10:00 AM - 9:30 PM<br/>Drive Thru Open Until 10:00 PM', ''],
['Frontier Village', 48.0041889, -122.1014044, '719 State Route 9 NE<br/>Lake Stevens, WA 98258<br/><strong>Phone: 425.335.5135</strong>', 'Mon-Sun: 10:00 AM - 10:00 PM<br/>Drive Thru Open Until 11:00 PM', ''],
['Gig Harbor', 47.3049589, -122.578759, '5117 Pt. Fosdick Drive NW<br/>Gig Harbor, WA 98335<br/><strong>Phone: 253.851.2888<br/>Fax: 253.853.5019</strong>', 'Call for hours.', 'Fax Orders Available'],
['Guide Meridian', 48.800125, -122.486648, '4373 Meridian Street<br/>Bellingham, WA 98226<br/><strong>Phone: 360.752.2233</strong>', 'Mon-Sun: 10:00 AM - 10:00 PM', ''],
['Lacey', 47.061527, -122.766468, '8208 Quinault Drive NE<br/>Lacey, WA 98516<br/><strong>Phone: 360.923.5717<br/>Fax: 360.923.0150</strong>', 'Call for hours.', 'Fax Orders Available'],
['Highlands', 47.488906, -122.162989, '4114 NE 4th<br/>Renton, WA 98059<br/><strong>Phone: 425.271.2449</strong>', 'Mon-Sun: 10:00 AM - 10:00 PM', ''],
['Issaquah', 47.5456863, -122.0562901, '1125 Gilman Boulevard<br/>Issaquah, WA 98027<br/><strong>Phone: 425.392.6015</strong>', 'Mon-Sun: 10:00 AM - 10:00 PM', ''],
['Kelso', 46.1446417, -122.8955639, '240 Kelso Drive<br/>Kelso, WA 98626<br/><strong>Phone: 360.577.1004</strong>', 'Mon-Sun: 10:30 AM - 9:30 PM', ''],
['Kenmore', 47.7590414, -122.2497452, '18029 68th Avenue NE<br/>Kenmore, WA 98028<br/><strong>Phone: 425.486.4472</strong>', 'Call for hours.', ''],
['Kent - East Hill', 47.40149, -122.2015953, '25649 104th SE<br/>Kent, WA 98031<br/><strong>Phone: 253.850.8898</strong>', 'Mon-Sun: 10:00 AM - 9:30 PM<br/>Drive Thru Open Until 10:00 PM', ''],
['Kent - Meeker', 47.380871, -122.249954, '1302 W Meeker<br/>Kent, WA 98032<br/><strong>Phone: 253.520.1915</strong>', 'Sun-Wed: 10:00 AM - 10:00 PM<br/>Thur-Sat: 10:00 AM - 11:00 PM', ''],
['Lakewood', 47.1621016, -122.4840581, '10507 South Tacoma Way<br/>Tacoma, WA 98499<br/><strong>Phone: 253.588.0755<br/>Fax: 253.588.5805</strong>', 'Call for hours.', 'Fax Orders Available'],
['Longview', 46.146009, -122.927586, '837 Ocean Beach Highway<br/>Longview, WA 98632<br/><strong>Phone: 360.636.3440</strong>', 'Mon-Sat: 10:30 AM - 9:30 PM<br/>Closed Sunday', ''],
['Lynden', 48.9349728, -122.4854356, '8095 Guide Meridian Road<br/>Lynden, WA 98264<br/><strong>Phone: 360.354.1343<br/></strong>', 'Mon-Sun: 10:00 AM - 9:00 PM', ''],
['Lynnwood Square', 47.819713, -122.294096, '4424 196th Street SW<br/>Lynnwood, WA 98036<br/><strong>Phone: 425.771.7186</strong>', 'Call for hours.', ''],
['Everett - Mariner Square', 47.882541, -122.237309, '233 128th Street SW<br/>Everett, WA 98204<br/><strong>Phone: 425.745.5133</strong>', 'Call for hours.', ''],
['Martha Lake', 47.8493489, -122.247366, '1010 164th Street SW<br/>Lynnwood, WA 98037<br/><strong>Phone: 425.742.6430</strong>', 'Call for hours.', ''],
['Monroe', 47.858624, -121.965113, '19801 State Route 2<br/>Monroe, WA 98272<br/><strong>Phone: 360.794.6476</strong>', 'Mon-Sun: 10:00 AM - 10:00 PM', ''],
['Moses Lake', 47.131696, -119.2775953, '203 E Broadway<br/>Moses Lake, WA 98837<br/><strong>Phone: 509.766.9074</strong>', 'Mon-Sun: 10:30 AM - 8:00 PM<br/>Mon-Fri: Drive Thru Open Until 9:00 PM', ''],
['Mount Vernon', 48.435467, -122.332179, '600 E College Way<br/>Mount Vernon, WA 98273<br/><strong>Phone: 360.424.3383</strong>', 'Mon-Sun: 10:00 AM - 9:00 PM<br/>Drive Thru Open Until 10:00 PM', ''],
['North Auburn', 47.3201552, -122.2307121, '5 14th Street NE<br/>Auburn, WA 98002<br/><strong>Phone: 253.833.3320</strong>', 'Mon-Sat: 10:00 AM - 11:00 PM<br/>Sun: 10:00 AM - 10:00 PM', ''],
['North Bend', 47.488569, -121.793068, '726 SW Mt. Si Boulevard<br/>North Bend, WA 98045<br/><strong>Phone: 425.888.3966</strong>', 'Mon-Sun: 10:00 AM - 9:30 PM<br/>Drive Thru Open Until 10:00 PM', ''],
['Olympia', 47.041373, -122.846569, '3501 Pacific Avenue SE<br/>Olympia, WA 98501<br/><strong>Phone: 360.438.0224<br/>Fax: 360.438.9522</strong>', 'Call for hours.', 'Fax Orders Available'],
['Port Angeles', 48.1116, -123.415, '1105 E 1st Street<br/>Port Angeles, WA 98362<br/><strong>Phone: 360.452.8954<br/>Fax: 360.874.2722</strong>', 'Mon-Sun: 10:00 AM - 10:00 PM', 'Fax Orders Available'],
['Port Orchard', 47.5403732, -122.6362492, '1605 SE Vallair Court<br/>Port Orchard, WA 98366<br/><strong>Phone: 360.874.8226<br/>Fax: 360.874.2722</strong>', 'Call for hours.', ''],
['Poulsbo', 47.746512, -122.638543, '20205 10th Avenue NE<br/>Poulsbo, WA 98370<br/><strong>Phone: 360.697.7775<br/>Fax: 360.697.2013</strong>', 'Call for hours.', 'Fax Orders Available'],
['Puyallup - Downtown', 47.192178, -122.278748, '1115 E Main<br/>Puyallup, WA 98372<br/><strong>Phone: 253.848.3700</strong>', 'Mon-Sun: 10:00 AM - 9:30 PM<br/>Drive Thru Open Until 10:00 PM', ''],
['Seattle - Rainier Avenue', 47.583119, -122.301382, '2212 Rainier Avenue S<br/>Seattle, WA 98144<br/><strong>Phone: 206.329.8226</strong>', 'Mon-Sun: 10:00 AM - 10:00 PM', ''],
['Redmond', 47.671248, -122.111136, '17140 NE Redmond Way<br/>Redmond, WA 98052<br/><strong>Phone: 425.883.6979</strong>', 'Mon-Sun: 10:00 AM - 10:00 PM<br/>Drive Thru Open Until 11:00 PM', ''],
['Renton', 47.4813278, -122.2163476, '101 S 2nd<br/>Renton, WA 98055<br/><strong>Phone: 425.255.0771</strong>', 'Mon-Sun: 10:00 AM - 10:00 PM', ''],
['Samish', 48.73343, -122.468984, '3600 Byron Avenue<br/>Bellingham, WA 98225<br/><strong>Phone: 360.738.7630</strong>', 'Mon-Sun: 10:00 AM - 10:00 PM', ''],
['Sammamish Plateau', 47.6135259, -122.0353605, '430 228th Avenue NE<br/>Sammamish, WA 98074<br/><strong>Phone: 425.836.0263</strong>', 'Mon-Sun: 10:00 AM - 10:00 PM', ''],
['Seqium', 48.0758, -123.136, '110 River Road<br/>Sequim, WA 98382<br/><strong>Phone: 360.683.7082</strong>', 'Mon-Sun: 10:00 AM - 10:00 PM', ''],
['Seattle - Shilshole', 47.668441, -122.395456, '2853 NW Market Street<br/>Seattle, WA 98107<br/><strong>Phone: 206.789.2344</strong>', 'Mon-Sun: 10:00 AM - 9:00 PM', ''],
['Smokey Point', 48.153075, -122.184631, '3405 172nd Street NE<br/>Arlington, WA 98223<br/><strong>Phone: 360.653.8134</strong>', 'Call for hours.', ''],
['South Auburn/Pacific', 47.273393, -122.2289035, '4003 "A" Street SE<br/>Auburn, WA 98002<br/><strong>Phone: 253.735.1020</strong>', 'Mon-Sun: 10:00 AM - 9:30 PM<br/>Drive Thru Open Until 10:00 PM', ''],
['Puyallup - South Hill', 47.112319, -122.293904, '15802 Meridian E<br/>Puyallup, WA 98373<br/><strong>Phone: 253.841.2118</strong>', 'Mon-Sun: 10:00 AM - 9:30 PM<br/>Drive Thru Open Until 10:00 PM', ''],
['Speedway', 47.8801684, -122.2783867, '12822 Mukilteo Speedway, #27<br/>Lynnwood, WA 98037<br/><strong>Phone: 425.742.7600</strong>', 'Call for hours.', ''],
['Stanwood', 48.236724, -122.329693, '26479 72nd Avenue NW<br/>Stanwood, WA 98292<br/><strong>Phone: 360.629.5018</strong>', 'Mon-Sun: 10:00 AM - 9:00 PM<br/>Drive Thru Open Until 10:00 PM', ''],
['Surprise Lake', 47.250335, -122.29431, '980 Meridian E, #39<br/>Milton, WA 98354<br/><strong>Phone: 253.952.4532</strong>', 'Mon-Sun: 10:00 AM - 9:30 PM<br/>Drive Thru Open Until 10:00 PM', ''],
['Totem Lake', 47.711987, -122.186876, '12430 116th NE<br/>Kirkland, WA 98034<br/><strong>Phone: 425.823.9001</strong>', 'Mon-Sun: 10:00 AM - 10:00 PM<br/>Drive Thru Open Until 11:00 PM', ''],
['Tukwila', 47.4420641, -122.2705062, '6820 S 180th Street<br/>Tukwila, WA 98168<br/><strong>Phone: 206.574.0959</strong>', 'Mon-Sun: 10:00 AM - 9:00 PM', ''],
['Tulalip', 48.051547, -122.187543, '6325 33rd Avenue NE<br/>Marysville, WA 98270<br/><strong>Phone: 360.659.6815</strong>', 'Call for hours.', ''],
['Tumwater', 46.9993972, -122.9085094, '5320 Capitol Blvd. SE<br/>Tumwater, WA 98501<br/><strong>Phone: 360.352.3490<br/>Fax: 360.352.3823</strong>', 'Call for hours.', 'Fax Orders Available'],
['Wallingford', 47.661617, -122.33172, '2212 N 45th<br/>Seattle, WA 98103<br/><strong>Phone: 206.547.7217</strong>', 'Mon-Sat: 10:30 AM - 10:00 PM<br/>Sun: 11:00 AM - 10:00 PM<br/>Drive Thru Open Until 11:00 PM', ''],
['West Seattle', 47.564474, -122.376527, '3500 SW Avalon Way<br/>Seattle, WA 98126<br/><strong>Phone: 206.923.3378</strong>', 'Mon-Sun: 10:00 AM - 10:00 PM<br/>Drive Thru Open Until 11:00 PM', ''],
['White Center', 47.512098, -122.355436, '10055 16th Avenue SW<br/>Seattle, WA 98146<br/><strong>Phone: 206.763.1782</strong>', 'Mon-Sun: 10:00 AM - 9:00 PM', ''],
['Woodinville', 47.755239, -122.153512, '13912 NE 175th Street<br/>Woodinville, WA 98072<br/><strong>Phone: 425.481.6907</strong>', 'Mon-Sun: 10:00 AM - 10:00 PM<br/>Drive Thru Open Until 11:00 PM', ''],
['Maple Valley', 47.3920268, -122.0460318, '23315 Maple Valley/Black Diamond Road<br/>Maple Valley, WA 98038<br/><strong>Phone: 425.413.4477</strong>', 'Mon-Sun: 10:00 AM - 9:30 PM<br/>Drive Thru Open Until 10:00 PM', ''],
['SeaTac', 47.467612, -122.288426, '15037 Tukwila Intl. Blvd.<br/>Tukwila, WA  98188', 'Mon-Sun: 10:00 AM - 10:00 PM', ''],
['Silverdale', 47.650523, -122.693349, '3141 Bucklin Hill Road<br/>Silverdale, WA 98383<br/><strong>Phone: 360.516.6125</strong>', 'Mon-Sun: 10:00 AM - 10:00 PM', '']
    ];


    
function setMarkers() {
    //add location markers
    var cactusImage = new google.maps.MarkerImage(imageURL, new google.maps.Size(26, 56), new google.maps.Point(0, 0), new google.maps.Point(12, 51), new google.maps.Size(26,56));
    var imageShape = { coord: [0, 0, 26, 56], type: 'rectangle' };

    for (var i = 0; i < locations.length; i++) {
        var location = locations[i];
        var locationLatLng = new google.maps.LatLng(location[1], location[2]);
        window["marker" + i] = new google.maps.Marker({
            position: locationLatLng,
            map: map,
            icon: cactusImage,
            shape: imageShape,
            title: location[0]
        });

        var markerPosition = window["marker" + i].getPosition();

        window["info" + i] = new google.maps.InfoWindow({ content: "<p class='mapdetail'><strong>" + location[0] + "</strong><br/>" + location[3] + "<br/>" +location[4]+ "</p>", disableAutoPan: true, maxWidth: 250, pixelOffset: new google.maps.Size(0, 56, "px", "px") });

        callMarkerEvent(window["marker" + i], window["info" + i]);
    }

}

function checkStartPoint() {
    if (currentStartingPoint != "47.6062095, -122.3320708" && currentStartingPoint != "") {
        location.href("#directions");
    }
    else {
        alert("You must enter a starting point and conduct a search before getting directions.");
    }
}

function callMarkerEvent(markerId, windowId) {
    google.maps.event.addListener(markerId, 'click', function() {
        map.setCenter(markerId.getPosition());
        windowId.open(map, markerId);
    });
}




function getMyLocation() {
    if (navigator.geolocation) {
        browserSupport = true;
        navigator.geolocation.getCurrentPosition(function(position) {
            initialLocation = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
            map.setCenter(initialLocation);
            map.setZoom(12);
            markDynamicLocation(initialLocation);
            currentStartingPoint = initialLocation;
        }, function() {
            noGeoLocation(browserSupport);
        });

    }
}

function markDynamicLocation(dynamicLocation) {
    var dynamicMarker = new google.maps.Marker({
        position: dynamicLocation,
        map: map,
        title: "You Are Here"
    });
    var whereFlag = new google.maps.InfoWindow({ content: "<p>You are approximately here. And here are the Taco Time locations within 5 miles of your location. Close this bubble to see if there are any behind it.</p>", maxWidth: 250 });
    whereFlag.open(map, dynamicMarker);
}

function showMyDirections(endpoint) {
    //alert(endpoint);
    if (currentStartingPoint != '47.6062095, -122.3320708') {
        var request = {
            origin: currentStartingPoint,
            destination: endpoint,
            unitSystem: google.maps.DirectionsUnitSystem.IMPERIAL,
            travelMode: google.maps.DirectionsTravelMode.DRIVING
        };
        directionService.route(request, function(result, status) {
            if (status == google.maps.DirectionsStatus.OK) {
                directionsDisplay.setDirections(result);
                //alert(result);
                //sortLocations(result);
            }
        });
        window.location.href = "#top";
    }
    else {
        alert("You must enter a starting point and conduct a search before mapping your route.");
    }
}

function noGeoLocation(error) {
    if (error == true) {
        alert("Service Failed");
    }
    else {
        alert("Your browser does not support geolocation");
    }
    map.setCenter(initialLocation);
}

function loadGoogleMap(zoomLevel) {
    geocoder = new google.maps.Geocoder();
    directionsDisplay = new google.maps.DirectionsRenderer();
    var latlng = new google.maps.LatLng(47.6062095, -122.3320708);
    var myOptions = {
        zoom: 10,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        mapTypeControl: false
    };
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    directionsDisplay.setMap(map);
    // directionsDisplay.setPanel(document.getElementById("restaurantdisplay")); 
    setMarkers();
}

function codeNewAddress() {
    var address = document.getElementById("address").value;
    var miles = parseInt(document.getElementById("radius").value);
    var zoomlevel;
    document.getElementById("restaurantdisplay").innerHTML = "";

    switch (miles) {
        case 1:
            zoomlevel = 14;
            break;
        case 5:
            zoomlevel = 12;
            break;
        case 10:
            zoomlevel = 11;
            break;
        case 25:
            zoomlevel = 9;
            break;
        case 50:
            zoomlevel = 8;
            break;
        default:
            zoomlevel = 14;
            break;
    }

    if (geocoder) {
        geocoder.geocode({ 'address': address }, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                map.setCenter(results[0].geometry.location);
                map.setZoom(parseInt(zoomlevel));
                currentStartingPoint = results[0].geometry.location;
                var marker = new google.maps.Marker({ map: map, position: results[0].geometry.location
                });

                listLocationsInRange(miles);
                
                // document.getElementById("geolocation").value = results[0].geometry.location;
            }
            else {
                switch (status) {
                    case "ZERO_RESULTS":
                        alert("The address entered is invalid");
                        break;
                    default:
                        alert("I can't because: " + status);
                        break;
                }

            }
        });
    }

}

function listLocationsInRange(miles) {
    
    for (var i = 0; i < locations.length; i++) {
        var location = locations[i];
        var lat = new google.maps.LatLng(location[1], location[2]);
        var request = {
            origin: currentStartingPoint,
            destination: lat,
            unitSystem: google.maps.DirectionsUnitSystem.IMPERIAL,
            travelMode: google.maps.DirectionsTravelMode.DRIVING
        };

        buildLocationTable(request, i, miles);
    }
}

function buildLocationTable(request, locationid, miles) {
   
     directionService.route(request, function(result, status) {
         if (status == google.maps.DirectionsStatus.OK) {//did we succeed with the call?
             var route = result.routes[0].legs[0];
             var distanceInMiles = route.distance.text;
             var durationInMin = route.duration.text;
             var startLatLng = route.start_location;
             var endLatLng = route.end_location;
             var startAddress = route.start_address;
             var endAddress = route.end_address;

             var milesplit = distanceInMiles.split(" "); //seperate the value and string 'mi'
             
             if (parseFloat(milesplit[0]) <= miles) {//only work with the results that are within the specified mile range
                 var addHtmlOutput = "<div class='locationresults'><table width='700' cellpadding='5' cellspacing='0'><tr><td valign='top' width='200'><p><span class='locationresulttitle'>" + locations[locationid][0] + "</span></p><p><span class='locationtrip'><strong>Distance:</strong> " + distanceInMiles + "</span><br/><span class='locationtrip'><strong>Trip Time:</strong> " + durationInMin + "</span></p></td><td valign='top' width='200'><p>" + locations[locationid][3] + "</p></td><td valign='top' width='200'><p>Hours:<br/>" + locations[locationid][4] + "</p><p><strong>" + locations[locationid][5] + "</strong></p></td><td valign='middle'><div id='" + locationid + "' onclick='javascript:toggle(this.id);' class='divlink'><p>Directions</p></div><div id='" + locationid + "' onclick='javascript:showMyDirections(\"" + endLatLng + "\");' class='divlink'><p>    Map Route</p></div></tr></table>";
                 //  alert(route.steps[0].instructions);
                 var recordSteps = "";

                 for (var mysteps = 0; mysteps < route.steps.length; mysteps++) {
                     recordSteps = recordSteps + "<p>" + route.steps[mysteps].instructions + "<br/>";
                 }

                 var htmlOutput = addHtmlOutput + "<div id='" + locationid + "_toggle' style='display:none;' class='locationsteps'>" + recordSteps + "</p></div></div>";
                 //alert(htmlOutput);

                 document.getElementById("restaurantdisplay").innerHTML = document.getElementById("restaurantdisplay").innerHTML + htmlOutput;
             }
         }
     });
    }
    //anything here happens prior to the location getting rendered.



function sortLocations(result) {
    var setofDirections = new Array();
    var route = result.routes[0].legs[0];

    var distanceInMiles = route.distance.text;
    var durationInMinutes = route.duration.text;
    var startLatLng = route.start_location;
    var endLatLng = route.end_location;
    var startAddress = route.start_address;
    var endAddress = route.end_address;

    alert(route.distance.text);
    alert(route.duration.text);
    alert(route.start_location);
    alert(route.end_location);
    alert(route.start_address);
    alert(route.end_address);
    alert(route.steps.length);
    alert(route.steps[0].instructions);

    return route.steps;
}
 
