// <![CDATA[

function popup() {

  var allLinks = $T('a');
  for (var i = 0; i < allLinks.length; i++) {
    if (/popup/i.test(allLinks[i].className)) {
      allLinks[i].onclick = function() {
        var win = window.open(this.href, 'w' + new Date().getTime(), 'width=700,height=500,scrollbars=1,resizable=1');
        return false;
      }
    }
  }

}

var RealEstateTypes = {

  init: function() {
    this.types    = $('type-flat', 'type-house', 'type-land', 'type-premises');
    this.switcher = $('s-type');
    this.switcher.onchange = this.changeType.bindAEL(this);
    this.changeType();
  },

  changeType: function() {
    for (i in this.types) {
      this.types[i].className = this.types[i].id == 'type-' + this.switcher.value ? '' : 'hidden';
    }
    var metrics = $('s-a-m-metrics', 's-a-s-metrics');
    var units   = null;
    switch(this.switcher.value) {
      case 'flat':
      case 'premises':
      case 'house':
        units = 'm&#178;';
        break;
      case 'land':
        units = 'a';
        break;
    }
    metrics[0].innerHTML = metrics[1].innerHTML = units;
  }

};

var OperationType = {

  init: function() {
    this.saMultLabel   = $('s-a-m-label');
    this.saMultData    = $('s-a-m-data');
    this.saSingleLabel = $('s-a-s-label');
    this.saSingleData  = $('s-a-s-data');
    this.spMultLabel   = $('s-p-m-label');
    this.spMultData    = $('s-p-m-data');
    this.spSingleLabel = $('s-p-s-label');
    this.spSingleData  = $('s-p-s-data');
    this.haMultLabel   = $('h-a-m-label');
    this.haMultData    = $('h-a-m-data');
    this.haSingleLabel = $('h-a-s-label');
    this.haSingleData  = $('h-a-s-data');
    this.switcher      = $('c-status');
    this.switcher.onchange = this.changeType.bindAEL(this);
    this.changeType();
  },

  changeType: function() {

    var saInputs = $T('input', this.saMultData);
    var spInputs = $T('input', this.spMultData);
    var haInputs = $T('input', this.haMultData);

    var multInputs = saInputs.concat(spInputs.concat(haInputs));
    var snglInputs = $('s-area', 's-price', 'h-landarea');

    switch (this.switcher.value) {
      case 'sell':
      case 'rent':
        this.saMultLabel.style.display = 'none';
        this.saMultData.style.display  = 'none';
        this.spMultLabel.style.display = 'none';
        this.spMultData.style.display  = 'none';
        this.haMultLabel.style.display = 'none';
        this.haMultData.style.display  = 'none';

        for (i in multInputs) {
          multInputs[i].disabled = true;
        }

        for (i in snglInputs) {
          snglInputs[i].disabled = false;
        }

        this.saSingleLabel.style.display = '';
        this.saSingleData.style.display  = '';
        this.spSingleLabel.style.display = '';
        this.spSingleData.style.display  = '';
        this.haSingleLabel.style.display = '';
        this.haSingleData.style.display  = '';
        break;
      case 'buy':
      case 'lease':
        this.saMultLabel.style.display = '';
        this.saMultData.style.display  = '';
        this.spMultLabel.style.display = '';
        this.spMultData.style.display  = '';
        this.haMultLabel.style.display = '';
        this.haMultData.style.display  = '';

        for (i in multInputs) {
          multInputs[i].disabled = false;
        }

        for (i in snglInputs) {
          snglInputs[i].disabled = true;
        }

        this.saSingleLabel.style.display = 'none';
        this.saSingleData.style.display  = 'none';
        this.spSingleLabel.style.display = 'none';
        this.spSingleData.style.display  = 'none';
        this.haSingleLabel.style.display = 'none';
        this.haSingleData.style.display  = 'none';
        break;
    }
    Districts.init();
    Districts.getDistricts();
  }

};

var Districts = {

  init: function() {
    this.req = window.XMLHttpRequest ? new XMLHttpRequest() : window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : false;
    if (!this.req) {
      return false;
    }
    this.dTitle   = $('s-district-title');
    this.dBlock   = $('s-district-block');
    this.switcher = $('s-city');

    if (!arguments[0]) {
      this.toggleDistricts('off');
    }
    else {
      this.cityId = arguments[0];
      this.getDistricts();
    }
    this.switcher.onchange = this.getDistricts.bindAEL(this);

  },

  getDistricts: function() {
    this.dBlock.innerHTML = '';
    this.req.open('GET', 'catalog/districts/?city_id=' + this.switcher.value + '&httprequest=yes&id=' + this.cityId + '&status=' + $('c-status').value);
    this.req.send(null);
    this.req.onreadystatechange = function() {
      if (this.req.readyState == 4 && this.req.status == 200) {
        this.dBlock.innerHTML = this.req.responseText;
        this.toggleDistricts(this.dBlock.innerHTML.length === 0 ? 'off' : 'on');
      }
    }.bindAEL(this);
  },

  toggleDistricts: function(type) {
    this.dTitle.style.display = type == 'on' ? '' : 'none';
    this.dBlock.style.display = type == 'on' ? '' : 'none';
  }

};

// ]]>