var linkUrl = "http://maps.google.co.nz/maps?f=q&source=s_q&hl=en&geocode=&q=$query";

Kinder = new Class({
  initialize: function(name, address) {
    this.name = name;
    this.address = address;

    this.setupLink();

    if (!this.address.match(/zealand/i))
      this.address = this.address + ", New Zealand";

    this.sidebar = $$('.right-sidebar')[0];

    var wrapper = new Element('div', {'class': 'map-wrapper image block'});
    wrapper.inject(this.sidebar);

    this.element = new Element('div');
    this.element.addClass('map');
    this.element.setStyles({
      width: '200px', height: '200px', overflow: 'hidden'
    });
    this.element.inject(wrapper);
    
    var href = linkUrl.replace('$query', address.replace(/\s{2,}/g, ' ').replace(/\s/g, '+'));
    var link = new Element('a', {'href': href});
    link.addClass('larger-map')
    link.innerHTML = 'View Larger'
    
    link.inject(this.sidebar);
    
    this.setupMap();
  },

  setupLink: function() {
    $$('a[href=/kindergartens.html]').each(function(link) {
      link.getParents('li').each(function(li){Kartel.selectMenu(li)});
    });
  },

  setupMap: function() {
    this.map = new GMap2(this.element);
    var ui = this.map.getDefaultUI();
    ui.controls.menumaptypecontrol = false;
    this.map.setUI(ui);
    this.geocoder = new GClientGeocoder();

    this.geocoder.getLatLng(
      this.address, function(point) {
      if (point) {
        this.map.setCenter(point, 13);
        var marker = new GMarker(point);
        this.map.addOverlay(marker);
      }
    }.bind(this));

    setTimeout(function() {
      var cr = this.element.getElement('#copyright');
      if(cr) cr.setStyle('display', 'none');
    }.bind(this), 1000);
  }
});

Kinder.ready = function() {
  var nameTag = $$('#name')[0];
  var addressTag = $$('#address')[0];

  if (nameTag && addressTag) {
    new Kinder(nameTag.innerHTML, addressTag.innerHTML);
  }
    
  var kinderTables = $$('.kindergarten-list > table');
  kinderTables.each(function(table) {
    table.getNext('.clear').getElements('table tr').each(function(tr, index) {
      if(index % 2 == 1) tr.addClass('odd');
    });
  });
};

window.addEvent('domready', Kinder.ready);
