/* WebMa map markers */
var markers = [];

/**
 * Add a marker to Google Map object.
 * @param {Number} marker_id
 **/
function addMarker(map, marker_id, map_lang) {
    var marker = new GMarker(new GLatLng(markers[marker_id].y,
                                         markers[marker_id].x));
    GEvent.addListener(marker, "click", function() {
	    openMarker(marker_id, map_lang);
	});
    map.addOverlay(marker);
    markers[marker_id].self = marker;
}

/**
 *  Open info window.
 **/
function openMarker(marker_id, map_lang) {
    var i;
    var html;
    for (i = 0; i < markers.length; i++) {
        document.getElementById('marker_' + i).setAttribute("class", "");
    }
    html = "<p><strong>" + markers[marker_id][map_lang].title + "</strong>"
        + "</p><embed id=\"VideoPlayback" + marker_id + "\""
        + " style=\"width:400px; height:326px;\""
        + " type=\"application/x-shockwave-flash\""
        + " src=\"http://video.google.com/googleplayer.swf?docId="
        + markers[marker_id].videoId + "&hl=hu\" flashvars=\"\"> </embed>";
    markers[marker_id].self.openInfoWindowHtml(html);
    document.getElementById('marker_' + marker_id).setAttribute("class", "sdoc");
}

/**
 * Localize map controls.
 **/
function labelGMaps() {
    var g_divs = document.getElementById('gmaps').childNodes;
    var div_cntr = 0;
    var i, j;
    var g_labels;
    for (i = 0; i < g_divs.length; i++) {
	    if (g_divs[i].className == 'gmnoprint') {
	        div_cntr++;
	        if (div_cntr == 3) {
	            g_labels = g_divs[i].childNodes;
		        for (j = 0; j < g_labels.length; j++) {
		            if (g_labels[j].textContent) {
			            switch(g_labels[j].textContent) {
			            case 'Map':
			                g_labels[j].textContent = 'Térkép';
			                break;
			            case 'Satellite':
			                g_labels[j].textContent = 'Műhold';
			                break;
			            case 'Hybrid':
			                g_labels[j].textContent = 'Hibrid';
			                break;
			            }
		            } else if (g_labels[j].innerText) {
			            switch(g_labels[j].innerText) {
			            case 'Map':
			                g_labels[j].innerText = 'Térkép';
			                break;
			            case 'Satellite':
			                g_labels[j].innerText = 'Műhold';
			                break;
			            case 'Hybrid':
			                g_labels[j].innerText = 'Hibrid';
			                break;
			            }
		            }
		        }
		        break;
	        }
	    }
    }
}

/**
 * Generate HTML list from WebMa map markers.
 **/
function tocGMaps(map_lang) {
    var items = "";
    var i;
    for (i = 0; i < markers.length; i++) {
        items += '<li id="marker_' + i + '">'
            + '<a href="javascript:openMarker(' + i + ',\'' + map_lang + '\')">'
            + markers[i][map_lang].title + '</a></li>';
    }
    document.getElementById('maptoc').innerHTML += "<ul>" + items + "</ul>";
}

function adjustGMapsSize() {
    if (document.getElementById("sidebar").offsetHeight
        > document.getElementById("gmaps").offsetHeight ) {
        document.getElementById("gmaps").style.height =
                document.getElementById("sidebar").offsetHeight + "px";
    }
}

/**
 * Load GMaps.
 **/
function gmapsLoad() {
    var i;
    var map;
    var map_lang = "hu";
    var center = { y: 46.915682, x: 17.88763 };

    if (GBrowserIsCompatible()) {

        map = new GMap2(document.getElementById("gmaps"));
	    map.setCenter(new GLatLng(center.y, center.x), 15);
	    map.addControl(new GSmallMapControl());
	    map.addControl(new GMapTypeControl());
	    map.setMapType(G_SATELLITE_MAP);

	    for (i = 0; i < markers.length; i++) {
	        addMarker(map, i, map_lang);
	    }

	    labelGMaps();
	    tocGMaps(map_lang);
        adjustGMapsSize();
    }
}


