var geocoder;
var map;
var marker_on = false;
var wojMapka = new Array(16);

wojMapka[1] = "51.11042,16.506958";
wojMapka[2] = "53.021392,18.632813";
wojMapka[3] = "51.279099,22.785645";
wojMapka[4] = "52.184037,15.402832";
wojMapka[5] = "51.618017,19.588623";
wojMapka[6] = "49.866317,20.280762";
wojMapka[7] = "52.315195,20.983887";
wojMapka[8] = "50.625073,17.95166";
wojMapka[9] = "49.922935,22.181396";
wojMapka[10] = "53.166534,22.977905";
wojMapka[11] = "54.223496,18.023071";
wojMapka[12] = "50.324423,18.901978";
wojMapka[13] = "50.764259,20.720215";
wojMapka[14] = "53.888154,20.923462";
wojMapka[15] = "52.13686,17.10022";
wojMapka[16] = "53.517451,15.611572";

var baseIcon = new GIcon(G_DEFAULT_ICON);
baseIcon.shadow = "";
    
var objectsMarker = new Array(1000);
    
function generateWoj() {
    for(i = 1; i < 17; i++)
    {
        var point = GLatLng.fromUrlValue(wojMapka[i]);
        map.addOverlay(createMarkerWoj(point, i, wojAmount[i]));
    }
}
function generateObjects() {
    for( var key in objectParams ) {
        try {
            var latLngString = objectParams[key];
            var point = GLatLng.fromUrlValue(latLngString);
            map.addOverlay(createMarker(point, key));
        }
        catch(err) {}
    } 	
}
function createMarker(point, id) {

    baseIcon.iconSize = new GSize(32, 32);
    baseIcon.imageMap = [0,0, 32,0, 32,32, 0,32];
    //baseIcon.iconAnchor = new GPoint(100, 100);
    baseIcon.infoWindowAnchor = new GPoint(15, 12);
	
    var letteredIcon = new GIcon(baseIcon);
    letteredIcon.image = base_url + "gfx/marker_hotel.png";
    markerOptions = {
        icon:letteredIcon
    };
    var marker = new GMarker(point, markerOptions);
	
    //var marker = new GMarker(point, {});
    //var info = '<b>' + nazwa + '</b><br><a target="_blank" href="'+ base_url +'system/application/views/images/marker.jpg">Przejdz do prezentacji</a><br>' + ulica + ', ' + kod + ' ' + miasto;
    GEvent.addListener(marker, "click", function() {
        //marker.openInfoWindowHtml(info);
        showObject(point.x, point.y, id);
    });
    objectsMarker[id] = marker;
    return marker;
}
function LoadGMap() {
    map = new GMap2(document.getElementById("gmap"));
    map.setCenter(new GLatLng(52.173931692568,18.852530625), 6);
    var mapControl = new GMapTypeControl();
    map.addControl(mapControl);
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
    map.enableScrollWheelZoom();
    map.addControl(new GScaleControl());
    generateWoj();
    GEvent.addListener(map, "zoomend", function(oldLvl, newLvl) {
        if(newLvl >= 8 && !marker_on)
        {
            marker_on = true;
            map.clearOverlays();
            generateObjects();
        }
        if(newLvl < 8 && marker_on)
        {
            marker_on = false;
            map.clearOverlays();
            generateMenuWoj();
            generateWoj();
        }
    });

    if (province_start > 0){
        zoomWoj(wojMapka[province_start], province_start, pagination_number);
    }

}
function zoomWoj(point_str, nr, pag)
{
    get_map_area_objects(nr, pag);
    var point = GLatLng.fromUrlValue(point_str);
    map.setCenter(point, 8);
}
function zoomObject(x,y,id)
{
    map.setCenter(new GLatLng(x, y), 14);
    createRequest();
    var url = base_url + "map_ico/get_object_desc/" + id;
    request.onreadystatechange = function()
    {
        if (request.readyState == 4)
        {
            objectsMarker[id].openInfoWindowHtml(request.responseText);
        }
    } 
    request.open("GET", url, true);
    request.send(null);
}
function showObject(x,y,id)
{
    createRequest();
    var url = base_url + "map_ico/get_object_desc/" + id;
    request.onreadystatechange = function()
    {
        if (request.readyState == 4)
        {
            objectsMarker[id].openInfoWindowHtml(request.responseText);
        }
    } 
    request.open("GET", url, true);
    request.send(null);
}
function getObjectDesc(id)
{
    createRequest();
    var url = base_url + "map_ico/get_object_desc/" + id;
    request.open("GET", url, true);
    request.onreadystatechange = getObjectDescAction;
    request.send(null);
}
function getObjectDescAction(id)
{
    if (request.readyState == 4) {
        objectsMarker[id].openInfoWindowHtml(request.responseText);
        alert(id);
    }
}
function createMarkerWoj(point, nr, amount) {   
    baseIcon.iconSize = new GSize(39, 38);
    baseIcon.imageMap = [0,0, 39,0, 39,39, 0,39];
    var letteredIcon = new GIcon(baseIcon);
    letteredIcon.image = base_url + "map_ico/marker_woj/" + amount;
    markerOptions = {
        icon:letteredIcon
    };
    var marker = new GMarker(point, markerOptions);
    GEvent.addListener(marker, "click", function() {
        map.setCenter(point, 8);
        get_map_area_objects(nr, 1);
    });
    return marker;
}
function goToHotel(x,y) {
    map.setCenter(new GLatLng(x, y), 14);
}
function goToWoj(point_str, nr) {
    getWojMenu(nr);
    var point = GLatLng.fromUrlValue(point_str);
    map.setCenter(point, 8);
}
function get_map_area_objects(id_woj, pag)
{
    createRequest();

    var url = base_url + "map_ico/get_map_area_objects/" + id_woj + "/" + pag;
    request.open("GET", url, true);
    request.onreadystatechange = update_menu_map;
    request.send(null);
}
function update_menu_map() {
    if (request.readyState == 4) {
        var map_menu = document.getElementById('objects_list');
        map_menu.innerHTML = request.responseText;
    }
}
function generateMenuWoj()
{
    createRequest();
    var url = base_url + "map_ico/gen_menu";
    request.open("GET", url, true);
    request.onreadystatechange = get_menu_woj;
    request.send(null);
}
function get_menu_woj() {
    if (request.readyState == 4) {
        var map_menu = document.getElementById('objects_area');
        map_menu.innerHTML = request.responseText;
    }
}


