$(document).ready(function () {
    if(GBrowserIsCompatible())
    {
        var marker_array = [];

        var addr_geo = new GClientGeocoder();
        var map = new GMap2(document.getElementById("city_gmap"),{
            size:new GSize(365,400)
        });
        addr_geo.getLatLng(city_map_name,function(a_pt)
        {
            if (!a_pt)
            {
            }
            else
            {
                map.clearOverlays();
                map.setCenter(a_pt,14);
                map.addControl(new GSmallMapControl());
                var time_downloading, time_executing, time_adding;
                var addr_text='';
                var city_url="http://www.lowca-okazji.pl/ajax_city/"+city_map_id+".xml";
                var time=new Date().getTime();
                $.ajax({
                    type: "GET",
                    url: city_url,
                    dataType: "xml",
                    success: function(xml_data){
                        time_downloading = new Date().getTime() - time;
                        time=new Date().getTime();
                        var div_id_c=0;
                        $('#test').hide();
                        $(xml_data).find('ad').each(function(){
                            var addr_comps = new Array();
                            var counters = new Array();
                            var companies_count = 0;
                            var company_cat = new Array();
                            var categories = new Array();
                            var category;
                            //if (div_id_c<5) alert(this.getElementsByTagName('o').length);
                            var xml_offers = this.getElementsByTagName('o');
                            var o_index;
                            for (o_index=0;o_index<xml_offers.length;o_index++){
                                var company=xml_offers[o_index].getAttribute('c');
                                category=xml_offers[o_index].getAttribute('cc');
                                categories[category]=1;
                                company_cat[company]=category;
                                if (!addr_comps[company]){
                                    addr_comps[company]=' ';
                                    counters[company]=0;
                                }
                                if (counters[company]<3){
                                    addr_text='<li><a href="'+xml_offers[o_index].getAttribute('l')+'">'+xml_offers[o_index].getAttribute('ti')+'</a></li>';
                                } else if (counters[company]==3){
                                    addr_text='<li><a href="#" class="more_offers_gmap">[+] Więcej...</a></li><li><ul class="gmap_hidden"><li><a href="#" class="less_offers_gmap">[-] Ukryj...</a></li><li><a href="'+xml_offers[o_index].getAttribute('l')+'">'+xml_offers[o_index].getAttribute('ti')+'</a></li>';
                                } else if (counters[company]>3){
                                    addr_text='<li><a href="'+xml_offers[o_index].getAttribute('l')+'">'+xml_offers[o_index].getAttribute('ti')+'</a></li>';
                                }
                                addr_comps[company]=addr_comps[company]+addr_text;
                                counters[company]++;
                            }
                            var address_lat=$(this).attr('lat');
                            var address_lon=$(this).attr('lon');
                            var address_title=$(this).attr('l');
                            var ico = new GIcon();
                            addr_text=' ';
                            for (var company in addr_comps){
                                companies_count++;
                                addr_text=addr_text+'<span class="gmap_company"><img src="http://www.lowca-okazji.pl/styles/2/img/icons/mini/c'+company_cat[company]+'.png" alt="" />'+company+'</span><ul class="gmap_list">'+addr_comps[company]+'</ul></li></ul>';
                            }

                            if (categories.join('')==1){
                                ico.image = "http://www.lowca-okazji.pl/styles/2/img/icons/map/c"+category+".png";
                            } else {
                                ico.image = "http://www.lowca-okazji.pl/styles/2/img/icons/map/default.png";
                            }

                            ico.shadow = "";
                            ico.iconSize = new GSize(36, 32);
                            ico.infoWindowAnchor = new GPoint(16,16);
                            ico.iconAnchor = new GPoint(16,16);
                            ico.shadowSize = new GSize(59, 32);
                            var point = new GLatLng(address_lat, address_lon);
                            var marker = new GMarker(point,{
                                clickable : true,
                                draggable : false,
                                icon:ico
                            });

                            var div_id ='xx'+div_id_c;
                            div_id_c++;
                            addr_text='<br/><b>'+address_title+'</b><br/><br/>'+addr_text;
                            var nd = document.createElement('div');
                            nd.id = div_id;
                            nd.className = 'gmaps_tooltip';
                            nd.innerHTML = addr_text;
                            var links=nd.getElementsByTagName('a');
                            var link;
                            for (link in links){
                                if (links[link].className == 'more_offers_gmap'){
                                    $(links[link]).bind('click', function(){
                                        $(this).parent().parent().parent().find('.gmap_hidden').hide();
                                        $(this).parent().parent().find('.gmap_hidden').slideDown();
                                        $(this).hide();
                                        return false;
                                    });
                                } else if (links[link].className == 'less_offers_gmap'){
                                    $(links[link]).bind('click', function(){
                                        $(this).parent().parent().slideUp();
                                        $(this).parent().parent().parent().parent().find('.more_offers_gmap').slideDown();
                                        return false;
                                    });
                                }
                            }

                            marker.bindInfoWindow(nd,{
                                maxWidth: 290
                            });
                            marker_array.push(marker);
                            addr_text='';
                        });
                        time_executing = new Date().getTime() - time;
                        time=new Date().getTime();
                        var mgr = new MarkerManager(map, {trackMarkers: true });
						mgr.addMarkers(marker_array,3);
						mgr.refresh();
                        time_adding = new Date().getTime() - time;
                        $('#city_gmap_loading').slideUp(500);
                        $('#city_gmap').slideDown(500);
                        //alert('Downloading: '+time_downloading+'ms'+"\n"+'Executing: '+time_executing+'ms'+"\n"+'Adding: '+time_adding+'ms');
                    }
                    });
            }
        });
    }
});
