﻿
var TellusListMap;
function getText(el) {
    if (el.textContent) return el.textContent;
    if (el.innerText) return el.innerText;
    return el.innerHTML.replace(/<[^>]*>/g, '');
}

function setText(el, str) {
    el.textContent = el.textContent + str;
        
//    if ((el.textContent != null) && () {
//        return el.textContent;
//    }
//    if (el.innerText) {
//        return el.innerText;
//    }

//    return el.innerHTML.replace(/<[^>]*>/g, '');
}

function AddContentToTellusMap(str) {
    var holder = document.getElementById("TellusListMapObjects");
    if (holder != null) {
        var str = setText(holder, str);
    }
}
var TellusProductListObjects;

function initializeTellusListMap() {
    if (GBrowserIsCompatible() && (TellusListMap == null)) {

        TellusListMap = new google.maps.Map2(document.getElementById("TellusListMapCol"));
        TellusListMap.setCenter(new google.maps.LatLng(58.7400352, 7.5094803), 7);
        //                  map.setCenter(new google.maps.LatLng(<xsl:value-of select="latitude"/>, <xsl:value-of select="longitude"/>), 6);
        //                  var point = new google.maps.LatLng(<xsl:value-of select="latitude"/>, <xsl:value-of select="longitude"/>);
        TellusListMap.enableScrollWheelZoom();
        TellusListMap.addControl(new GSmallZoomControl());
        TellusListMap.removeMapType(G_SATELLITE_MAP);
        TellusListMap.addControl(new GMapTypeControl());
        //map.addOverlay(new google.maps.Marker(point));
    }
}

function LoadTellusListMapObject() {
    initializeTellusListMap();
    if (TellusProductListObjects == null) {
        TellusProductListObjects = new Array();

        var holder = document.getElementById("TellusListMapObjects");
        var str = getText(holder);
        var bounds = new GLatLngBounds();

        var objects = str.split("product");
        for (var i = 1; i < objects.length; i++) {
            try {
                var values = objects[i].split("¤");

                if ((values[2] == "") || (values[3] == "")) {
                    continue;
                }

                var p = new Object();
                p.seqNo = values[0];
                p.tid = values[1];
                p.lng = parseFloat(values[2]);
                p.lat = parseFloat(values[3]);
                p.url = values[4];

                p.point = new GLatLng(p.lat, p.lng);
                bounds.extend(p.point);

                var icon = new GIcon(); 
                icon.image = "/graphics/Kristiansand/map/marker.png"; 
                icon.iconSize = new GSize(20, 34); 
                icon.iconAnchor = new GPoint(10, 34); 
                icon.infoWindowAnchor = new GPoint(25, 7);

                //p.marker = createMarker(p.point, p.html, icon);
                p.marker = cm_createMarker(p.tid, p.point, p.seqNo.toString(), icon, p.url);
                p.marker.setImage("/graphics/Kristiansand/map/marker.png");
                //add marker to map
                //p.marker.setPoint(p.point);
                TellusListMap.addOverlay(p.marker);
                p.marker.hide();
                p.marker.show();

                TellusProductListObjects.push(p);
            } catch (err) {
                //alert(err.Message);
            }

        }
        TellusListMap.setZoom(TellusListMap.getBoundsZoomLevel(bounds));

        TellusListMap.setCenter(bounds.getCenter());
    }

    //setTimeout(ShowMarkers, 1000);
}

/**
* Creates marker with ranked Icon or blank icon,
* depending if rank is defined. Assigns onclick function.
* @param {GLatLng} point Point to create marker at
* @param {String} title Tooltip title to display for marker
* @param {String} html HTML to display in InfoWindow
* @param {Number} rank Number rank of marker, used in creating icon
* @return {GMarker} Marker created
*/
function cm_createMarker(tellusID, point, title, icon,url) {
    var markerOpts = {};

    markerOpts = {
        "icon": icon,
        "clickable": true,
        "labelText": title,
        "labelOffset": new GSize(-10, -30)
    };
    var newPoint = point;
    var marker = new LabeledMarker(newPoint, markerOpts);
    GEvent.addListener(marker, "click", function () {
        //alert("test");
        document.location = url;
    });

    return marker;
}


function createMarker(point, html, icon) {
    var cmarker;
    if (icon)
        cmarker = new GMarker(point, icon);
    else
        cmarker = new GMarker(point);
    if (html) {
        GEvent.addListener(cmarker, "click",
                function () {
                    document.location = url;
                });
    }
    return cmarker;
}

function setActiveListItem(seqNo) {
    if (TellusProductListObjects != null) {
        for (var i = 0; i < TellusProductListObjects.length; i++) {
            var p = TellusProductListObjects[i];
            if (p.seqNo == seqNo.toString()) {
                p.marker.setImage("/graphics/Kristiansand/map/markerblue.png");
                break;
            }
        }
    }
}

function DeactivateListItem(seqNo) {
    if (TellusProductListObjects != null) {
        for (var i = 0; i < TellusProductListObjects.length; i++) {
            var p = TellusProductListObjects[i];
            if (p.seqNo == seqNo.toString()) {
                p.marker.setImage("/graphics/Kristiansand/map/marker.png");
                break;
            }
        }
    }
}

