addDOMLoadEvent(function() {
  Ajax.Responders.register({
    onCreate: function() {
      if ($('loading') && Ajax.activeRequestCount > 0) {
        $('loading').show();
      }
    },

    onComplete: function() {
      if ($('loading') && Ajax.activeRequestCount == 0) {
        $('loading').hide();
      }
    }
  });
});

Event.addBehavior({
  '#geotude_search:focus' : function(e) {
    this.select();
  },

  '#add_listing:click, #blank_slate a:click' : function(e) {
    if ($('blank_slate')) {
       $('blank_slate').toggle();
    }
    Effect.toggle('new_property_postad', 'slide', { duration: 0.3 });
    return false;
  },

  '#examples ul li a:mouseover' : function(e) {
    $('geotude_search').value = this.getElementsBySelector('span').first().innerHTML;
  },

  '#examples ul li a:mouseout' : function(e) {
    $('geotude_search').value = '';
  }
});

function property_detail(id) {
  $(id).getElementsBySelector('div.crumbs').invoke('toggle');
  $(id).getElementsBySelector('div.listings').invoke('toggle');
}

function latLng2GT(lat, lng, sub, delim) {
  if(sub < 0) return "";

  lat = Number(lat);
  lng = Number(lng);

  // ----- validity check
  if(isNaN(lat) || isNaN(lng) || lat > 90 || lat <= -90 || lng < -180 || lng >= 180) return String(NaN);

  // ----- covert axis
  lat = 180 - (lat + 90);
  lng = lng + 180;

  // ----- main gt
  var gt = Math.floor(lat) * 500 + Math.floor(lng) + 10000;

  // ----- sub gt
  var lats = String(lat).split(".");
  var lngs = String(lng).split(".");

  lats = lats.length == 2 ? lats[1] : "";
  lngs = lngs.length == 2 ? lngs[1] : "";

  for(var i = 0; i < sub; i++) {
    gt += delim + (lats.charAt(i) == "" ? "0" : lats.charAt(i)) + (lngs.charAt(i) == "" ? "0" : lngs.charAt(i));
  }

  return gt;
}