﻿function googleSkynetPoints() {
    var nearestSkynetPoints = new Array();
    var otherSkynetPoints = new Array();
    var userPointX, userPointY;
    var map = null;
    var gdir  = null;
    
    var workTimeText = "Darbo laikas:";
    
    this.addNearestSkynetPoint = function(pointX, pointY, address, workTime, Phone) {
        var point = new Array(5);
        point[0] = pointX;
        point[1] = pointY;
        point[2] = address;
        point[3] = workTime;
        point[4] = Phone;
        nearestSkynetPoints.push(point);
    }
    
    this.addOtherSkynetPoint = function(pointX, pointY, address, workTime, Phone) {
        var point = new Array(5);
        point[0] = pointX;
        point[1] = pointY;
        point[2] = address;
        point[3] = workTime;
        point[4] = Phone;
        otherSkynetPoints.push(point);
    }
    
    this.addUserLocationPoint = function(pointX, pointY) {
        userPointX = pointX;
        userPointY = pointY;
    }
    
    Penki_HookEvent(window, "load", initialize);
    Penki_HookEvent(window, "unload", GUnload);

    function initialize() {
        map = new GMap2(document.getElementById("map_canvas"));
        map.setCenter(new GLatLng(54.710888, 25.262976), 13);
        map.setUIToDefault();
        //map.addControl(new GSmallMapControl());

        var bounds = map.getBounds();
        var southWest = bounds.getSouthWest();
        var northEast = bounds.getNorthEast();

        icon = createIcon(50, 50, "skynet.png");
        for (var i = 0; i < nearestSkynetPoints.length; i++) {
            var marker = createMarker(nearestSkynetPoints[i], icon);
            map.addOverlay(marker);
        }

        icon = createIcon(30, 30, "skynet.png");
        for (var i = 0; i < otherSkynetPoints.length; i++) {
            var marker = createMarker(otherSkynetPoints[i], icon);
            map.addOverlay(marker);
        }
        
        if(userPointX > 0 && userPointY > 0) {
            icon = createIcon(38, 38, "house.png")
            var point = new GLatLng(userPointX, userPointY);
            var marker = createUserMarker(point, icon);
            map.addOverlay(marker);
        }
        
        overlayDirections();
    }

    function createIcon(width, height, image) {
        var icon = new GIcon();
        icon.image = "/Images/" + image;
        icon.iconSize = new GSize(width, height);
        icon.iconAnchor = new GPoint(Math.round(width / 2), Math.round(height / 2));
        icon.infoWindowAnchor = new GPoint(0, 0);
        return icon;
    }

    function createMarker(skynetPoint, icon) {
        var point = new GLatLng(skynetPoint[0], skynetPoint[1]);
        var marker = new GMarker(point, icon);

        var text = document.createElement('span');
        text.style.color = '#000000';
        text.innerHTML = '<br />' + skynetPoint[2] + '<br />' + workTimeText + '<br />' + skynetPoint[3]
                         + '<br />' + skynetPoint[4]
                         + '<br /><br /><a href="http://miestas.penki.lt/city.aspx?Lang=LT" target="_blank" style="color: #000; text-decoration: underline;">www.skynet.lt</a>';

        GEvent.addListener(marker, "click", function() {
            map.openInfoWindow(point, text);
        });
        return marker;
    }
    
    function createUserMarker(point, icon) {
        var marker = new GMarker(point, icon);
        return marker;
    }
    
    function overlayDirections() {
        fromAddress = userPointX + ',' + userPointY;
        for(var i = 0; i < nearestSkynetPoints.length; i++) {
            gdir = new GDirections(map, document.getElementById("directions"));
            toAddress = nearestSkynetPoints[i][0] + ',' + nearestSkynetPoints[i][1];
            gdir.load("from: " + fromAddress + " to: " + toAddress, {preserveViewport:true,travelMode:G_TRAVEL_MODE_DRIVING});  
        }
    } 
}