/*
   Seeff Property Search Module Script
   -----------------------------------
*/

/*global window*/
/*jslint browser: true, devel: true, indent: 2, white: false*/

// alert('Template script is loaded');

//--------------------------------------------------------------------------
/* Simulate console output in IE. */
window.addEvent('domready',
  function () {
    if (window.console === undefined) {
      window.console = {};
      window.console.el = document.getElementById('debug-output');
      if (window.console.el) {
	window.console.log = function (txt) {
	  window.console.el.innerHTML += txt + '<br />'; return true;
	};
      }
      else{
	window.console.log = function (txt) {return true;};
      }
    }
  }
);

//--------------------------------------------------------------------------
/* Show hide the type (sale, rent, show) specific filters. */
window.addEvent('domready', function(){
  $$('.seeff-search-module').each(function(el){
    var search_sale = $E('.search-sale', el);
    var search_rent_long = $E('.search-rent-long', el);
    var search_rent_short = $E('.search-rent-short', el);
    var search_sale_c = $E('.search-sale-criteria', el);
    var search_rent_long_c = $E('.search-rent-long-criteria', el);
    var search_rent_short_c = $E('.search-rent-short-criteria', el);

    var start_style = {'display': 'block'};
    search_sale_c.setStyles(start_style);
    search_rent_long_c.setStyles(start_style);
    search_rent_short_c.setStyles(start_style);

    var search_sale_effect = new Fx.Slide(search_sale_c);
    var search_rent_short_effect = new Fx.Slide(search_rent_short_c);
    var search_rent_long_effect = new Fx.Slide(search_rent_long_c);

    search_sale.addEvent('click', function(){
      search_sale_effect.slideIn();
      this.removeClass('inactive');
      this.addClass('active');

      search_rent_short_effect.slideOut();
      search_rent_short.removeClass('active');
      search_rent_short.addClass('inactive');

      search_rent_long_effect.slideOut();
      search_rent_long.removeClass('active');
      search_rent_long.addClass('inactive');
    });

    search_rent_short.addEvent('click', function(){
      search_rent_short_effect.slideIn();
      this.removeClass('inactive');
      this.addClass('active');

      search_sale_effect.slideOut();
      search_sale.removeClass('active');
      search_sale.addClass('inactive');

      search_rent_long_effect.slideOut();
      search_rent_long.removeClass('active');
      search_rent_long.addClass('inactive');
    });

    search_rent_long.addEvent('click', function(){
      search_rent_long_effect.slideIn();
      this.removeClass('inactive');
      this.addClass('active');

      search_sale_effect.slideOut();
      search_sale.removeClass('active');
      search_sale.addClass('inactive');

      search_rent_short_effect.slideOut();
      search_rent_short.removeClass('active');
      search_rent_short.addClass('inactive');
    });

    search_sale.hasClass('inactive') && search_sale_effect.hide();
    search_rent_short.hasClass('inactive') && search_rent_short_effect.hide();
    search_rent_long.hasClass('inactive') && search_rent_long_effect.hide();

    // Change the form action.
    var form = $E('form', el);
    ['.search-sale', '.search-rent-short', '.search-rent-long'].each(function(str){
      var knob = $E(str, el);
      knob.addEvent('click', function(event){
	var event = new Event(event);
	event.stop();
	form.action = knob.href;
      });
    });

  }); // $$('seeff-search-module').each(function(el){
});

//--------------------------------------------------------------------------
/* Show/hide more criteria */
window.addEvent('domready', function(){
  $$('.seeff-search-module').each(function(el){
    var key = 'seeff-search-module.slider';
    var extra_knob = $E('.extra-criteria-knob a');
    var extra_slider = $E('.extra-criteria-slider');
    var extra_effect = new Fx.Slide(extra_slider);
    var current = Cookie.get(key);
    if(current == 'in'){
      extra_knob.toggleClass('inactive');
      extra_knob.toggleClass('active');
    }
    else{
      extra_effect.hide();
    }
    extra_knob.addEvent('click', function(){
      if(this.hasClass('active')){
	extra_effect.slideOut();
	Cookie.set(key, 'out');
      }
      else{
	extra_effect.slideIn();
	Cookie.set(key, 'in');
      }
      this.toggleClass('inactive');
      this.toggleClass('active');
    });
  });
});

//--------------------------------------------------------------------------
/* Submit the form */
window.addEvent('domready', function(){
  $$('.seeff-search-module').each(function(el){
    var form = $E('form', el);
    $ES('.submit-form', el).each(function(el2){
      el2.addEvent('click', function(){
	form.submit();
      });
    });
  });
});
