// JavaScript Document
var map;
var geoXml;
var toggleState = 1;
var markers;

function gid(id)
{
	return document.getElementById(id);
}

function initialize(lat,lng,type,id) 
{
    if(GBrowserIsCompatible()) 
    {
        map = new GMap2(document.getElementById("map_canvas"));
        
        if(lat === null || lng === null) 
        {
            var lLat = 44.11914151643737;
            var lLng = 15.941162109375;   
        }
        else
        {
            var lLat = lat;
            var lLng = lng;
            
            var latlng = new GLatLng(lat,lng);
            var marker = new GMarker(latlng);
        }
        
        if(type == 1)
        {
            map.setCenter(new GLatLng(lLat, lLng), 14);
            map.setMapType(map.getMapTypes()[2]);
            
            showInput(id);
        }
        else if(type == 2)
        {
            showRegion(id);
            
            switch(id)
            {
                case 'dubrovnik':
                    map.setCenter(new GLatLng(42.75507954507213, 17.9681396484375), 8);
                    break;
                case 'istrie':
                    map.setCenter(new GLatLng(45.1588737, 13.9364206), 9);
                    break;
                case 'kvarner':
                    map.setCenter(new GLatLng(44.9609111593886, 14.91119384765625), 9);
                    break;
                case 'split':
                    map.setCenter(new GLatLng(43.36213053699735, 16.579742431640625), 9);
                    break;
                case 'sibenik':
                    map.setCenter(new GLatLng(43.69667260550319, 15.893783569335938), 10);
                    break;
                case 'zadar':
                    map.setCenter(new GLatLng(44.230440594623865, 15.260009765625), 9);
                    break;
                default:
                    map.setCenter(new GLatLng(43.90185050, 16.009826), 6);
                    break;                            
            }
        }
        else if(type == 3)
        {
            if(lat != null && lng != null)
            {
                map.setCenter(new GLatLng(lat, lng), 11);
            }
            else
            {
                map.setCenter(new GLatLng(lLat, lLng), 6);
            }
            
            showCity(id);       
        }
        else if(type == 5)
        {
            if(lat != null && lng != null)
            {
                map.setCenter(new GLatLng(lat, lng), 11);
            }
            else
            {
                map.setCenter(new GLatLng(lLat, lLng), 6);
            }
            
            showCity2(id);       
        }
        else if(type == 4)
        {
            map.setCenter(new GLatLng(lLat, lLng), 6);
            
            showAll();        
        }
        else
        {
            map.setCenter(new GLatLng(lLat, lLng), 6);
        }
        
        map.setUIToDefault();
        map.disableScrollWheelZoom();
        
    
    }
}

function showAll()
{
    GDownloadUrl("./gm-all.php", function(data) 
    {
        var xml = GXml.parse(data);
        markers = xml.documentElement.getElementsByTagName("marker");
        showMarkers('./');
    });
}

function showInput(id)
{
    GDownloadUrl("../gm-input.php?id="+id, function(data) 
    {
        var xml = GXml.parse(data);
        markers = xml.documentElement.getElementsByTagName("marker");
        showMarkers('./');
    });
} 

function showRegion(region)
{
    GDownloadUrl("../gm-region.php?region="+region, function(data) 
    {
        var xml = GXml.parse(data);
        markers = xml.documentElement.getElementsByTagName("marker");
        showMarkers('../');
    });
}

function showCity(city)
{
    GDownloadUrl("./gm-city.php?city="+city, function(data) 
    {
        var xml = GXml.parse(data);
        markers = xml.documentElement.getElementsByTagName("marker");
        showMarkers('./');
    });
}

function showCity2(city)
{
    GDownloadUrl("../gm-city.php?city="+city, function(data) 
    {
        var xml = GXml.parse(data);
        markers = xml.documentElement.getElementsByTagName("marker");
        showMarkers('../');
    });
}

function showMarkers(path)
{
    var is_print = 0;
    for (var i = 0; i < markers.length; i++)
    {
        var marker = createMarker(markers[i],path);
            
        if(is_print == 1)
        {
            map.clearOverlays();
        }
        map.addOverlay(marker);    
    }
}
    
function createMarker(input,path)
{
    var id = input.getAttribute('id');
    var lat = parseFloat(input.getAttribute("lat"));
    var lng = parseFloat(input.getAttribute("lng"));
    
    var latlng = new GLatLng(lat,lng);
          
    var marker = new GMarker(latlng);    
    
    var inputData;

    GEvent.addListener(marker, "click", function() {
        
        GDownloadUrl(path+"gm-input.php?id="+id, function(data) 
        {
            var xml = GXml.parse(data);
            inputData = xml.documentElement.getElementsByTagName("marker");
            
            var name = inputData[0].getAttribute('name');
            var address = inputData[0].getAttribute('address');
            var cityname = inputData[0].getAttribute('cityname');
            
            var city = inputData[0].getAttribute('city');
            var location = inputData[0].getAttribute('location');
            
            
            
            var myHtml = '<b>'+name+'</b><br />'+address+', '+cityname+'<br /><a href="http://www.croatia-hrvatska.eu/'+city+'/'+location+'/" target="main">house presentation</a>';
            map.openInfoWindowHtml(latlng, myHtml);
        });
    });
        
    return marker;
}
