/**
 * Main widget map functions
*/
function initializeSimpleMap() {
    if (GBrowserIsCompatible()) {
        var simpleMap = new GMap2(document.getElementById("widget-map-holder"));
        simpleMap.setCenter(new GLatLng(56.188368, 11.469727), 13);
        simpleMap.setUIToDefault();
    }
}


function _createMarker(point, icon, isEmpty, id, type, infoUrl) {
    var marker = new GMarker(point, icon);
    marker.type = type;
    if (!isEmpty ) {
        GEvent.addListener(marker, "click", function() {
            var loader = tusind1.loadOverlay(null, $("#widget-map-holder"));
            tusind1.get(infoUrl + id, function(data) {
                data = eval("(" + data + ")");
                loader.hide();

                //marker.openInfoWindowHtml('<div class="w2_widget_content"><img src="' + data.thumb_url + '" width="50px" height="50px"/><b>' + data.translation.title + '</b><p>' + data.translation.fact + '</p><p><a href="' + data.url + '" target="_top" class="w2_widget_link">' + data.translation.title + ' - 1001fortællinger.dk &gt;&gt;</a></p></div>', {maxWidth: "180"});
                // marker.openInfoWindowHtml(document.createTextNode(data.translation.fact), {maxWidth: "180"});
                $("#bob").html('<div class="w2_widget_content"><img src="' + data.thumb_url + '" width="50px" height="50px"/><b>' + data.translation.title + '</b><p>' + data.translation.fact + '</p><p><a href="' + data.url + '" target="_top" class="w2_widget_link">' + data.translation.title + ' - 1001fortællinger.dk &gt;&gt;</a><br/></p></div>');
                //$("#bob").width(($("#widget-map-holder").width() - 40))
                //$("#bob").height(($("#widget-map-holder").height() * 0.75))
                // $("#bob").top(($("#widget-map-holder").position().top *+ 10))
                $("#bob").attr("style", "left:10; top:" + ($("#widget-map-holder").position().top + 10) + "; max-height:" + ($("#widget-map-holder").height() - 30) + "; min-height: " + ($("#widget-map-holder").height() * 0.05) + "; width:" + ($("#widget-map-holder").width() - 30) + "; height:" + ($("#widget-map-holder").height() * 0.8));
                $("#bob").fadeIn();
            });
        }, {
            load: function() {
                loader.show();
            }
        });
    }
    return marker;
}


function createStoryMarker(point, data, infoUrl) {
    var myIcon        = new GIcon(G_DEFAULT_ICON);
    myIcon.image      = "http://www.kulturarv.dk/1001fortaellinger/images/map-story.png";
    myIcon.shadow     = "http://www.kulturarv.dk/1001fortaellinger/images/map-shadow.png";
    myIcon.iconSize   = new GSize(20, 30);
    myIcon.shadowSize = new GSize(37, 34);
    myIcon.iconAnchor = new GPoint(9, 34);
    myIcon.infoWindowAnchor = new GPoint(9, 2);
    return _createMarker(point, myIcon, data['isEmpty'], data['id'], "StorySight", infoUrl);
}


function initializeWidgetMap(latitude, longitude, zoomLevel, dataUrl, infoUrl) {
    if (GBrowserIsCompatible()) {
        $("#bob").hide();
        containerHeight = window.innerHeight;
        containerWidth  = window.innerWidth;

        var footerImages = new Object();
        footerImages.small = "/images/widget-footer-200.png";
        footerImages.medium = "/images/widget-footer-300.png";
        footerImages.large = "/images/widget-footer-500.png";

        /* Show appropriately sized footer image, default to small */
        footerImg = footerImages.small;
        footerImg = (containerWidth > 200) ? footerImages.medium : footerImages.small;
        footerImg = (containerWidth > 500) ? footerImages.large : footerImg;
        $("#footer_logo").attr("src", footerImg);
        footerHeight = $("#footer_logo").height();
        // console.log(footerHeight);

        /* Force the map size to respect header and footer size */
        mapPosition     = $("#widget-map-holder").position();
        mapHeight       = (containerHeight - (footerHeight + mapPosition.top));
        $("#widget-map-holder").height(mapHeight);
        $("#widget-map-holder").css("height", mapHeight);
        $("#widget-map-holder").width(containerWidth);

        var lat  = latitude  ? parseFloat(latitude)  : 56.188368;
        var lon  = longitude ? parseFloat(longitude) : 11.469727;
        var zoom = zoomLevel ? parseInt(zoomLevel)   : 6;
        // var widgetMap = new GMap2(document.getElementById("widget-map-holder"));
        var widgetMapOptions = {
            zoom: zoom,
            center: new GLatLng(lat, lon),
            navigationControl: true,
            // navigationControlOptions: {
            //     style: google.maps.NavigationControlStyle.SMALL
            // },
            mapTypeControl: false
        }
        var widgetMap = new google.maps.Map(document.getElementById("widget-map-holder"), widgetMapOptions);
        widgetMap.setCenter(new GLatLng(lat, lon), zoom);
        widgetMap.addControl(new GSmallZoomControl3D());
        var loader    = tusind1.loadOverlay(null, $("#widget-map-holder"));
        var clusterer = new Clusterer(widgetMap);

        var groupMarker = new GIcon();
        groupMarker.image            = "http://kulturarv.dk/1001fortaellinger/images/map-expander-30x30-grey.png";
        groupMarker.iconSize         = new GSize(30, 30);
        groupMarker.shadowSize       = new GSize(0, 0);
        groupMarker.iconAnchor       = new GPoint(15, 15);
        groupMarker.infoWindowAnchor = new GPoint(13, 3);
        groupMarker.infoShadowAnchor = new GPoint(27, 37);
        clusterer.SetIcon(groupMarker);

        // <RKK>
        var styles = [];
        var filler = [];
        filler.url = "http://www.kulturarv.dk/1001fortaellinger/images/map-expander-30x30-grey.png";
        filler['height'] = 30;
        filler['width']  = 30;
        styles.push(filler);
        styles.push(filler);
        // </RKK>
        clusterer.markerStyle = styles;
        // $("#bob").fadeIn();
        tusind1.get(dataUrl, function(data) {
                        data = eval('(' + data + ')');
                        for (var i = 0; i < data.length; i++) {
                            var marker = createStoryMarker(new GPoint(data[i].latitude, data[i].longitude), data[i], infoUrl);
                            if (marker) {
                                // console.log(marker);
                                clusterer.AddMarker(marker);
                            }
                        }
                    });
        // $("#bob").fadeOut();
        /* GLoad(); */
    }
}
