var customIcons = {
    1: {
        icon: 'http://koszal.in/template/images/points/FoodPoint.png',
        shadow: ''
    },
    2: {
         icon: 'http://koszal.in/template/images/points/CompanyPoint.png',
        shadow: ''
    },
    3: {
        icon: 'http://koszal.in/template/images/points/HistoryPoint.png',
        shadow: ''
    },
    4: {
        icon: 'http://koszal.in/template/images/points/CulturePoint.png',
        shadow: ''
    },
    5: {
        icon: 'http://koszal.in/template/images/points/ConstructionPoint.png',
        shadow: ''
    },
    6: {
        icon: 'http://koszal.in/template/images/points/InterestingPoint.png',
        shadow: ''
    },
    7: {
        icon: 'http://koszal.in/template/images/points/PhotoPoint.png',
        shadow: ''
    },
    8: {
        icon: 'http://koszal.in/template/images/points/PathPoint.png',
        shadow: ''
    },
    9: {
        icon: 'http://koszal.in/template/images/points/CashPoint.png',
        shadow: ''
    },
    10: {
        icon: 'http://koszal.in/template/images/points/ToiletPoint.png',
        shadow: ''
    }
};

function load() {
    var map = new google.maps.Map(document.getElementById("map_canvas"), {
        center: new google.maps.LatLng(54.193980788958875, 16.171531677246094),
        zoom: 12,
        mapTypeId: 'roadmap'
});
	
	
    var infoWindow = new google.maps.InfoWindow;

    downloadUrl("xml/main.xml", function(data) {
        var xml = parseXml(data);
        var activeCats = getActiveFilters();
        
        //for (var ix = 1; ix < activeCats.length; ix++) {
        for ( var ix in activeCats ) {
            var markers = xml.documentElement.getElementsByTagName('marker_c'+ix);
            
            for (var i = 0; i < markers.length; i++) {
                var name = markers[i].getAttribute("name");
                var cleanname = markers[i].getAttribute("name_clean");
                var cat = markers[i].getAttribute("category");
                var id = markers[i].getAttribute("id");
                var desc = markers[i].getAttribute("description");
                var point = new google.maps.LatLng(
                    parseFloat(markers[i].getAttribute("lat")),
                    parseFloat(markers[i].getAttribute("lng")));
                var html = "<b>" + name + "</b><br />" + desc + "<br /><a href=\"punkt/" + cat + "-" + id + "/" + cleanname + "\">Katalog</a>";
                var icon = customIcons[cat] || {};
                var marker = new google.maps.Marker({
                    map: map,
                    position: point,
                    icon: icon.icon,
                    shadow: icon.shadow
                });
                bindInfoWindow(marker, map, infoWindow, html);
            }

        }
    });
}

function bindInfoWindow(marker, map, infoWindow, html) {
    google.maps.event.addListener(marker, 'click', function() {
        infoWindow.setContent(html);
        infoWindow.open(map, marker);
    });
}

function downloadUrl(url, callback) {
    var request = window.ActiveXObject ?
    new ActiveXObject('Microsoft.XMLHTTP') :
    new XMLHttpRequest;

    request.onreadystatechange = function() {
        if (request.readyState == 4) {
            request.onreadystatechange = doNothing;
            callback(request.responseText, request.status);
        }
    };

    request.open('GET', url, true);
    request.send(null);
}

function parseXml(str) {
    if (window.ActiveXObject) {
        var doc = new ActiveXObject('Microsoft.XMLDOM');
        doc.loadXML(str);
        return doc;
    } else if (window.DOMParser) {
        return (new DOMParser).parseFromString(str, 'text/xml');
    }
}

function doNothing() {}


function getActiveFilters() {
    var ids = new Array();
//var ids;
    jQuery("#filter li a.active").each(function(index, category) {

//        if(index)
//            ids = ids + ',';
        
        ids[jQuery(category).attr('rel')] = jQuery(category).attr('rel');
    });
    return(ids);
}

$(document).ready(function() {
  jQuery("#filter a").click(function(event){
    event.preventDefault()
    if(jQuery(this).hasClass('active')) {
      jQuery(this).removeClass('active')
    } else {
      jQuery(this).addClass('active')
    }
    load();
  });
})

