﻿var map = null;
var geocoder = null;
var mapicon = null;

function gmload() {
    if (!GBrowserIsCompatible()) {
        alert("Sorry, the Google Maps API is not compatible with this browser");
        return;
    }
    if (!document.getElementById("map")) return;
    mapicon = new GIcon(G_DEFAULT_ICON, "/UsersFiles/myikona_pin.png");
    mapicon.iconSize = new GSize(24, 24);

    map = new GMap2(document.getElementById("map"));
    geocoder = new GClientGeocoder();

    map.addControl(new GScaleControl());
    map.addControl(new GSmallMapControl());

    loadpoints();
    loadshapes();
    centermap();
};

function loadpoints() {
    GDownloadUrl(pointsfile + "?id=" + Math.floor(Math.random() * 1001), function(doc) {
        var xmlDoc = GXml.parse(doc);
        var markers = xmlDoc.documentElement.getElementsByTagName("marker");

        for (var i = 0; i < markers.length; i++) {
            // obtain the attribues of each marker
            var lat = parseFloat(markers[i].getAttribute("lat"));
            var lng = parseFloat(markers[i].getAttribute("lng"));
            var point = new GLatLng(lat, lng);
            var html = markers[i].getAttribute("html");
            var label = markers[i].getAttribute("label");
            // create the marker
            //html = "<span class='iwstyle'>LOOGOO<div class='bal_name'>NAAMEE</div><div class='bal_adres'>AADDERESS</div><div class='bal_phone'>PHOONEE</div><div class='bal_mail'>MAAIIL</div></span>";
            html = "<span class='iwstyle'>LOOGOO<div class='bal_name'>NAAMEE</div><div class='bal_adres'>AADDERESS</div><div class='bal_phone'>PHOONEE</div><div class='bal_mail'>MAAIIL</div><div class='bal_download'><a href=\"javascript:getapplication('" + phrase2 + " NAAMEE " + phrase3 + " RREGIONN','http://www.myikona.gr/downloads/FIILEE');\"><img src='/tmp_images/myikona_free_download_small.jpg' alt='" + phrase1 + "' /></a><br /><a href=\"javascript:getapplication('" + phrase2 + " NAAMEE " + phrase3 + " RREGIONN','http://www.myikona.gr/downloads/FIILEE');\">" + phrase1 + "</a></div></span>";

            html = html.replace(/NAAMEE/, markers[i].getAttribute("CompanyName"));
            html = html.replace(/NAAMEE/, markers[i].getAttribute("CompanyName"));
            html = html.replace(/NAAMEE/, markers[i].getAttribute("CompanyName"));
            if (markers[i].getAttribute("Region") == "") {
                html = html.replace(/ "" + phrase3 + "" RREGIONN/, "");
                html = html.replace(/ "" + phrase3 + "" RREGIONN/, "");
            }
            html = html.replace(/RREGIONN/, markers[i].getAttribute("Region"));
            html = html.replace(/RREGIONN/, markers[i].getAttribute("Region"));
            html = html.replace(/AADDERESS/, markers[i].getAttribute("CompanyAddress"));
            html = html.replace(/PHOONEE/, markers[i].getAttribute("CompanyPhone"));
            html = html.replace(/MAAIIL/, markers[i].getAttribute("CompanyMail"));
            html = html.replace(/FIILEE/, markers[i].getAttribute("FileName"));
            html = html.replace(/FIILEE/, markers[i].getAttribute("FileName"));
            html = html.replace(/FIILEE/, markers[i].getAttribute("FileName"));
            if (markers[i].getAttribute("Logo") == "") {
                html = html.replace(/LOOGOO/, "");
            }
            else {
                html = html.replace(/LOOGOO/, "<div class='bal_logo'><img src='./Images/Partners/" + markers[i].getAttribute("Logo") + "' /></div>");
            }
            var tmpstr = markers[i].getAttribute("CompanyName").replace(/&lt;br&gt;/, "<br />");
            var tmpstrnew = "";
            var count = 0;
            while (tmpstr != tmpstrnew) {
                tmpstrnew = tmpstr;
                tmpstr = tmpstr.replace(/<br>/, "<br />");
                count = count + 1;
                //alert(count);
            }
            //alert(html);
            for (ii = 0; ii < count - 1; ii++) {
                html = html.replace(/<br>/, "<br />");
            }
            for (ii = 0; ii < count; ii++) {
                html = html.replace(/<br>/, " ");
                html = html.replace(/<br>/, " ");
            }
            if (isadmin) {
                html = html + "<div>Κάντε κλικ <a href='networkpoint.aspx?action=edit&id=" + markers[i].getAttribute("PointID") + "'>εδώ</a> για επεξεργασία</div><div class='admintext'>Κάντε κλικ <a onclick=\"javascript:return confirm('Είστε σίγουροι για τη διαγραφή;');\"  href='networkpoint.aspx?action=delete&id=" + markers[i].getAttribute("PointID") + "'>εδώ</a> για διαγραφή</div>";
                html = html.replace(/&lt;br&gt;/, "<br />");
            }
            var marker = createMarker(point, label, html, mapicon);
            map.addOverlay(marker);
        }
    })
};

function createMarker(point, name, html, mygicon) {// A function to create the marker and set up the event window
    var marker = new GMarker(point, mygicon);
    GEvent.addListener(marker, "click", function() {
        marker.openInfoWindowHtml(html);
        //map.setCenter(marker.getAttribute("lat"), marker.getAttribute("lng"), 12)
    });
    //gmarkers.push(marker); // save the info we need to use later for the side_bar
    return marker; // add a line to the side_bar html
};

function loadshapes() {
    var request = GXmlHttp.create();
    request.open("GET", shapesfile + "?id=" + Math.floor(Math.random() * 1001), true);
    request.onreadystatechange = function() {
        if (request.readyState == 4) {
            var xmlDoc = GXml.parse(request.responseText);

            // ========= Now process the polylines ===========
            var states = xmlDoc.documentElement.getElementsByTagName("state");

            // read each line
            for (var a = 0; a < states.length; a++) {
                // get any state attributes
                var label = states[a].getAttribute("name");
                var colour = states[a].getAttribute("colour");
                var opac = states[a].getAttribute("opacity");
                // read each point on that line
                var points = states[a].getElementsByTagName("point");
                var pts = [];
                for (var i = 0; i < points.length; i++) {
                    pts[i] = new GLatLng(parseFloat(points[i].getAttribute("lat")),
                                   parseFloat(points[i].getAttribute("lng")));
                }
                var poly = new GPolygon(pts, "#222222", 1, 1, colour, opac, { clickable: false });
                //polys.push(poly);
                //labels.push(label);
                map.addOverlay(poly);
            }
            // ================================================           
        }
    }
    request.send(null);
};

function centermap() {
    load_area(40.629066731872335, 22.944602966308593, 8);
    /*map.setCenter(new GLatLng(40.629066731872335, 22.944602966308593), 8, G_NORMAL_MAP);*/
};

function copy_points(latid, lngid, zoomid) {
    document.getElementById(latid).value = map.getCenter().lat();
    document.getElementById(lngid).value = map.getCenter().lng();
    document.getElementById(zoomid).value = map.getZoom();
};

function load_area(lat, lng, zoom) {
    map.setCenter(new GLatLng(lat, lng), zoom, G_NORMAL_MAP);
};

function showAddress() {
    var address = document.getElementById('address').value;
    if (geocoder) {
        geocoder.getLatLng(address, function(point) {
            if (!point) {
                alert(address + " not found");
            }
            else {
                //document.forms['gmapsform'].Text1.value = point.lat();
                //document.forms['gmapsform'].Text2.value = point.lng();
                map.setCenter(point, 10);
                var marker = new GMarker(point);
                map.addOverlay(marker); //?lat='" + point.lat() "'&lng='" + point.lng() + "
                marker.openInfoWindowHtml("<b>" + address + "</b><br /><a href='networkpoint.aspx?domainid=" + domainid + "&lat=" + point.lat() + "&lng=" + point.lng() + "'>Κάντε κλικ για save</a>");
            }
        });
    }
};

function getapplication(person, link) {
    alert(person);
    window.location = link;
};


