function dbg(msg) {
  if (typeof(console) != 'undefined') console.log(msg);
}

var immoId = '3';
var searchparams = $.JSONCookie('searchparams') || {};
var searchdefaults = {
  category : '0',
  roomsFrom : 1,
  roomsTo : 6,
  areaFrom : 10,
  areaTo : 200,
  rentFrom : 100,
  rentTo : 1000
}
searchparams = $.extend({}, searchdefaults, searchparams);


function getResults(searchparams) {

  if (!searchparams) {
  
    searchparams = {
      category  : '0',
      roomsFrom : parseFloat( $('#ui-room-slider').slider('values', 0) ),
      roomsTo   : parseFloat( $('#ui-room-slider').slider('values', 1) ),
      areaFrom  : parseFloat( $('#ui-area-slider').slider('values', 0) ),
      areaTo    : parseFloat( $('#ui-area-slider').slider('values', 1) ),
      rentFrom  : parseFloat( $('#ui-rent-slider').slider('values', 0) ),
      rentTo    : parseFloat( $('#ui-rent-slider').slider('values', 1) )
    };
    
    var immoUrl = '/' + immoId +'.1?_search_=&_options_[object_type]=' + searchparams.category + '&_options_[room_count][from]=' + searchparams.roomsFrom + '&_options_[room_count][to]=' + searchparams.roomsTo + '&_options_[living_area][from]=' + searchparams.areaFrom + '&_options_[living_area][to]=' + searchparams.areaTo + '&_options_[cold_rent][from]=' + searchparams.rentFrom + '&_options_[cold_rent][to]=' + searchparams.rentTo;
  
  }
  else {
    var immoUrl = '/' + immoId +'.1' + searchparams;  
  }

  loadResults(immoUrl);    
}


function loadResults(immoUrl) {

  $.get(immoUrl, function(data) {})
    .success(function(data) {})
    .error(function(data) {})
    .complete(function(data) {
     
      var result = $(data.responseText);
      result.find('.object-marketing').each(function() {
        var objectPrice = $(this).find('.object-price').text();
        var onDemand = $(this).find('.on-demand').text();
        if (objectPrice == '0,00 €' && onDemand == true) {
          $(this).text('Preis auf Anfrage');
        }
        else {
          $(this).text(objectPrice);
        } 
      });   
      
      $('#ajax-result').html(result);
    });
}


function CufonReplace() {
  Cufon.replace('#hnav a, #hnav label', {hover:true, textShadow: '1px 1px 3px rgba(0,0,0,.3)'});
  Cufon.replace('#main .rcol label, #main .rcol h6, #main .lcol h6');
}

function setFs(fs) {  
  $('body').css('font-size', fs+'%');
  CufonReplace();
}

var fsCookie = $.JSONCookie('fontsize') || {}, 
    fs = (fsCookie.size) ? fsCookie.size : 100, 
    fsRange = 40;




$(function(){
  
  setFs(fs);  

  if ( $('#ajax-result').length > 0 ) {
  
    //dbg(searchparams);
  
    var roomSlider = $('#ui-room-slider').slider({
                      range : true,
                      min : searchdefaults.roomsFrom,
                      max : searchdefaults.roomsTo,
                      step : 1,
                      values : [searchparams.roomsFrom, searchparams.roomsTo],
                      create : function(event,ui) {
                        $(this).siblings('.value').text( searchparams.roomsFrom + ' - ' + searchparams.roomsTo );
                      },
                      slide : function(event,ui) {
                        $(this).siblings('.value').text( ui.values[0] + ' - ' + ui.values[1] );
                      },
                      change : function(event,ui) {
                        getResults();
                      }
                    });
    
    var areaSlider = $('#ui-area-slider').slider({
                      range : true,
                      min : searchdefaults.areaFrom,
                      max : searchdefaults.areaTo,
                      step : 10,
                      values : [searchparams.areaFrom, searchparams.areaTo],
                      create : function(event,ui) {
                        $(this).siblings('.value').text( searchparams.areaFrom + ' - ' + searchparams.areaTo + ' m²' );
                      },
                      slide : function(event,ui) {
                        $(this).siblings('.value').text( ui.values[0] + ' - ' + ui.values[1] + ' m²' );
                      },
                      change : function(event,ui) {
                        getResults();
                      }
                    });
    
    var rentSlider = $('#ui-rent-slider').slider({
                      range : true,
                      min : searchdefaults.rentFrom,
                      max : searchdefaults.rentTo,
                      step: 100,
                      values : [searchparams.rentFrom, searchparams.rentTo],
                      create : function(event,ui) {
                        $(this).siblings('.value').text( searchparams.rentFrom + ' - ' + searchparams.rentTo + ' €' );
                      },
                      slide : function(event,ui) {
                        $(this).siblings('.value').text( ui.values[0] + ' - ' + ui.values[1] + ' €' );
                      },
                      change : function(event,ui) {
                        getResults();
                      }
                    });
        
    window.location.search ? getResults(window.location.search) : getResults('?');

    $('#show-parking').bind('click', function(e) {
      getResults('?_search_=&_options_[object_type]=17,18');
      return false;
    });
    
    $('#show-gewerbe').bind('click', function(e) {
      getResults('?_search_=&_options_[object_type]=7,8,9,10,11,12');
      return false;
    });
  }
  
  // acquire & display number of available objects on map
  if ( $('#immo-map').length > 0 && window.location.pathname == '/63') {
    
    var areas = $('#immo-map').find('a'), all = areas.length;
    
    areas.each(function(i) {
    
      var $this = $(this);
      var tip = $('<span class="tip"></span>').hide();
      var url = this.href.split('?')[1];

      if (url != undefined) {
        $.get( '/' + immoId + '.1?'+url, function(data) {})
        .complete(function(data) {
        
          var count = $(data.responseText).find('div.vorschau').length;
          count = (count == 1) ? count + ' Objekt' : count + ' Objekte';
          dbg(count);
          tip.text(count).appendTo($this);                    
          
          if (i+1 == all) {                    
            setTimeout(function() { $('#immo-map').find('.tip').show(200); }, 1000);
          }
        });           
      }       
    });
  }
                  
  $('#small').click(function()  { if (fs >= 100-fsRange) fs -= 10; setFs(fs) });
  $('#medium').click(function() { fs = 100; setFs(fs) });
  $('#large').click(function()  { if (fs <= 100+fsRange) fs += 10; setFs(fs) });
  
  $('a.fancybox').fancybox({
		'transitionIn'	:	'elastic',
		'transitionOut'	:	'elastic',
		'speedIn'		:	600, 
		'speedOut'		:	200, 
		'overlayShow'	:	false
	});

});

$(window).unload(function() {
  var fsCookie = { size: fs };
  $.JSONCookie('searchparams', searchparams, {path: '/'});
  $.JSONCookie('fontsize', fsCookie, {path: '/'});
});
