﻿var RecordsListMap = {
    mapPnl: "myMap",
    isInit: false,
    mapObj: null,
    defaultGeo: [40.75637049973011, -73.98652620613575],
    defaultZoom: 12,
    pinIds: [],

    init: function(callback) {
        MapScriptManager.infoBoxWidth = 410;

        RecordsListMap.mapObj = new NycVEMap(RecordsListMap.mapPnl, RecordsListMap.defaultGeo[0],
                    RecordsListMap.defaultGeo[1], RecordsListMap.defaultZoom);
        RecordsListMap.mapObj.getMap(function() {
            RecordsListMap.isInit = true;

            if (callback) callback();
        });
    },

    add: function(recordid, name, lat, lon, baseurl, phone, address, imgurl, rating, desc, ishotel, bookurl, isBotLinks, pinIcon) {
        if (!RecordsListMap.isInit) {
            RecordsListMap.init(function() {
                RecordsListMap.addRecord(recordid, name, lat, lon, baseurl, phone, address, imgurl, rating,
                    desc, ishotel, bookurl, isBotLinks, pinIcon);
            });

            return;
        }

        var h = [];
        h.push("<div class='rdListInfoBox'>");
        h.push("<div class='top'>");
        if (imgurl) {
            h.push("<a href='" + baseurl + "/editorial.aspx'>");
            h.push("<img src='" + imgurl + "' alt='thumb' />");
            h.push("</a>");
        }

        h.push("<a href='" + baseurl + "editorial.aspx'>" + name + "</a><br />");

        if (phone) h.push(phone + "<br />");

        if (address) h.push(address + "<br />");
        h.push("</div>");
        if (rating) {
            h.push("<div class='rate'>");
            for (idx = 1; idx <= 5; idx++) {
                if (rating >= idx)
                    h.push("<img src='/image/stars/shopon_mini.gif' />");
                else if (rating >= parseFloat(idx) - 0.5)
                    h.push("<img src='/image/stars/shophalf_mini.gif' />");
                else
                    h.push("<img src='/image/stars/grey_mini.gif' />");
            }
            h.push("</div>");
        }

        if (ishotel) {
            h.push("<div class='pnlBtn'>");
            h.push("<a href='" + baseurl + "editorial.aspx'>");
            h.push("<img src='/image/hotels/searchbox/checkrates-on.gif' ");
            h.push("onmouseover=\"this.src='/image/hotels/searchbox/checkrates-off.gif'\" ");
            h.push("onmouseout=\"this.src='/image/hotels/searchbox/checkrates-on.gif'\" /></a> ");
            h.push("<img class='brate' src='/image/hotels/searchbox/bestrate.gif' /> ");
            h.push("<img class='digi' src='/image/hotels/searchbox/digicert.gif' />");
            h.push("</div>");
            h.push("<br />");
        } else if (bookurl) {
            h.push("<a href='" + bookurl + "'>");
            h.push("<img src='/image/home/reserve/reserve-on.gif' ");
            h.push("onmouseover=\"this.src='/image/home/reserve/reserve-off.gif'\" ");
            h.push("onmouseout=\"this.src='/image/home/reserve/reserve-on.gif'\" /></a><br  /><br />");
        }

        if (desc) {
            h.push("<div class='desc'>" + desc + "</div>");
        }

        if (isBotLinks) {
            h.push("<div class='botLinks'>");
            h.push("<a href='" + baseurl + "map_location.aspx'>Get Directions</a> | ");
            h.push("<a href='javascript://zoom in' onclick='RecordsListMap.zoomIn(" + recordid + ");'>Zoom to Street Level</a> | ");
            h.push("<a href='javascript://zoom out' onclick='RecordsListMap.mapObj.setMapView();'>Zoom Out</a> | ");
            h.push("<a href='" + baseurl + "street_view.aspx'>Street View</a>");
            h.push("</div>");
        }

        h.push("</div>");

        RecordsListMap.mapObj.addPin(lat, lon, "", h.join(''), "/image/spacer.gif", (pinIcon ? pinIcon : "pushpinSolo"));
        RecordsListMap.pinIds[recordid] = RecordsListMap.mapObj.pinID - 1;
    },

    remove: function(recordid) {
        if (RecordsListMap.pinIds[recordid]) {
            RecordsListMap.mapObj.deletePin(RecordsListMap.pinIds[recordid]);
            RecordsListMap.pinIds[recordid] = null;
        }
    },

    zoomIn: function(recordid) {
        if (RecordsListMap.pinIds[recordid]) {
            RecordsListMap.mapObj.setMapCenter(RecordsListMap.pinIds[recordid], 17);
            RecordsListMap.pinIds[recordid] = null;
        }
    },

    showBubble: function(recordid) {
        if (!RecordsListMap.isInit)
            return;

        if (RecordsListMap.pinIds[recordid]) {
            RecordsListMap.mapObj.showPushpinHover(RecordsListMap.pinIds[recordid]);
        }
    },

    hideBubble: function(recordid) {
        if (!RecordsListMap.isInit)
            return;


        if (RecordsListMap.pinIds[recordid]) {
            RecordsListMap.mapObj.hidePushpinHover(RecordsListMap.pinIds[recordid]);
        }
    },

    makeIconGrey: function(recordid) {
        if (!RecordsListMap.isInit)
            return;

        var pinid = RecordsListMap.pinIds[recordid];

        if (pinid) {
            RecordsListMap.mapObj.shapesInMap[pinid - 1].SetCustomIcon("<div class='veIconStarSelect'></div>");
        }
    }
};