﻿/// <reference name="MicrosoftAjax.js"/>

var eventsMonthCollapsebleInfoList = new Array();

var eventMedalsAndPlacesCollapsebleInfoList = new Array();

var eventMonthDetailsMedalWinnersToolTips = new Array();

//Google map integration add-on:
var GMapView;
var MonthsListView;

var btnShowMap;

var geocoder;
var map;
var markersArray = [];

//Rad tool tip:
var radToolTip;
var toolTipContent;
var toolTipPoint;

function ShowOnMap(addresses) {

    if (!map) {
        initMap();
    }

    showMap(true);
    map.setZoom(4);

    for (var i = 0; i < addresses.length; i++) 
    {
        var location = addresses[i];
        var letteredIcon = new GIcon(G_DEFAULT_ICON);
        letteredIcon.image = "../images/marker" + location.EventType + ".png";
        var coords = new GLatLng(parseFloat(location.Latitude), parseFloat(location.Longitude));
        var marker = new GMarker(coords, { icon: letteredIcon });
        marker.title = location.RadToolTipID;
        map.addOverlay(marker);
        map.panTo(coords);
        markersArray.push(marker);
        
        GEvent.addListener(marker, "click", function(latlng) 
        {
            toolTipPoint.style.position = "absolute";
            toolTipPoint.style.top = yMousePos + 'px';
            toolTipPoint.style.left = xMousePos + 'px';
            var currentMarker;
            for (var j = 0; j < markersArray.length; j++) 
            {
                if (markersArray[j].getLatLng() == latlng) 
                {
                    currentMarker = markersArray[j];
                    break;
                }
            }
            var toolTip = document.getElementById(currentMarker.title);
            toolTip.control.show();
        });
        
        //setTimeout(function() { GEvent.trigger(marker, "mousedown"); },1000);
        
        //setTimeout(function() { GEvent.trigger(marker, "click", marker.getPoint()); },1000);

       var handler = function(m) {
            GMapViewX = GMapView.offsetWidth/2;
            GMapViewY = GMapView.offsetHeight/2;
        
            toolTipPoint.style.position = "relative";
            toolTipPoint.style.top = -GMapViewY + 'px';
            toolTipPoint.style.left = GMapViewX + 'px';
            
            var toolTip = document.getElementById(m.title);
            toolTip.control.show();
        }
        
        setTimeout(function() { handler(marker); }, 1000);
    }
}

function initMap() {
    map = new GMap2(document.getElementById("map_canvas"));
    map.setCenter(new GLatLng(10.4419, -35.1419), 5);
    map.addControl(new GLargeMapControl());
    map.addControl(new GOverviewMapControl());
}





var closeOn = true;
var stackedToolTip;

var timeoutCloseModeOn;
var timeoutCloseModeOff;

function StackedToolTipShow(sender, eventArgs) {
    stackedToolTip = sender;
}

//Month and Places details, tooltips:
function onClientBeforeHide(sender, eventArgs) {
    if (!closeOn) {
        eventArgs.set_cancel(true);
    }
    else {
        if (stackedToolTip) {
            stackedToolTip.hide();
        }
    }
}

    function closeModeOff(obj) {
        if (timeoutCloseModeOff) {
            clearTimeout(timeoutCloseModeOff);
            cOff();
        }
        else {
            setTimeout(cOff, 100);
        }

        //obj.className = 'red';
    }

    function closeModeOn(obj) {
        if (timeoutCloseModeOn) {
            clearTimeout(timeoutCloseModeOn);
            cOn();
        }
        else {
            setTimeout(cOn, 100);
        }

        //obj.className = 'black';
    }

    function cOn() {
        if (!closeOn) {
            closeOn = true;
        }
    }

    function cOff() {
        if (closeOn) {
            closeOn = false;
        }
    }

    function winnerClicked(obj) {
        var parentPanel = obj.parentNode
        var spanList = parentPanel.getElementsByTagName('span');

        for (var i = 0; i < spanList.length; i++) {
            if (spanList[i].className == 'red') {
                spanList[i].className = '';
                //break;
            }
        }
    
        obj.className = 'red';
    }
   
