var Page = {
  load: function() {
    var map = new AMap("mapka");
    this.map = map;
    this.markers = [[],[],[],[],[]];
    this.initMarkers();
    map.loadMaps(stred, meritko, typ_mapy);
    map.addMapPart(new AMapControl());
    map.addMapPart(new AMapTypeControl());
    $$("#hotely, #chaty, #pensiony, #ost").addEvent("click",this.toggleMarkers.bindWithEvent(this));
  },
  initMarkers: function() {
    function createElm(t,s,a,pos,tl) {
      var elm = new Element('div');
      var h = new Element('h5', {'class':'bl'});
      h.appendText(t+' ');
      for (var i=0;i<s;i++) {
        var img = new Element('img', {'src':'/images/hvezdicka.gif','class':'bs'});
        img.inject(h);
      }
      h.inject(elm);
      if (a != null || tl != null) {
        var p = new Element('p');
        var b = new Element('br');
        p.appendText(a);
        if (tl != null) {
          b.inject(p);
          p.appendText('Tel: +420' + tl);
        }
        p.inject(elm);
      }
      var po  = new Element('p');
      po.appendText(pos.toDisplayGPS());
      po.inject(elm);
      return elm;
    };
    var PENSION_ICON = new AIcon({
      fastRollover: false,
      fixPng: true,
      imageSrc: '/images/amapa/pension.png',
      imageSize: new ASize(15, 15),
      shadowSrc: null,
      iconOffset: new APoint(8, 8)
    });
    function createMarker(id,cat,st,pos,pl,ad,tl) {
      var icon;
      switch (cat) {
        case 2:icon = PENSION_ICON;break;
        case 3:icon = PENSION_ICON;break;
        case 4:icon = PENSION_ICON;break;
        default:icon = A_BLUE_FLAG;break;
      }
      var marker = new AMarker(pos, {icon:icon,title:pl,clickable:true});
      if (cat > 0) {
        var foot = new Element('div',{'class':'bubble'});
        var myHref = '/katalog/' + id;
        var anchor = new Element('a',{'href':myHref});
        anchor.appendText('detail').inject(foot);
      }
      marker.addEvent('onClick', function() {
        marker.showBubble(createElm(pl,st,ad,pos,tl), {footerContent:foot});
      });
      return marker;
    }
    for(var place in places) {
      var p = places[place];
      var marker = createMarker(place,p[2],p[1],p[3],p[0],p[4],p[5]);
      this.map.addOverlay(marker);
      this.markers[p[2]].push(marker);
      if (show_bubble) {
        marker.showBubble(createElm(p[0],p[1],p[4],p[3],p[5]));
        show_bubble = false;
      }
    }
  },
  toggleMarkers: function(e) {
    var idx = e.target.value;
    this.markers[idx].each(function(marker) {
      if (marker.isHidden())
        marker.show();
      else
        marker.hide();
    });
  }
}
window.addEvent('domready', Page.load.bind(Page));

