function IS(){
    this.init = function(){
    	(function($) {
			
			// preselect from CBs
			$('#immoSearchForm .checkbox:checked').each(function(k, v) {
				self.switchOn(v.name, true, true);
			})
			
    	})(jQuery);
    }
	
    this.toggleCheckbox = function(str){
    	(function($) {

    	var cb = $('#cb'+str);
    	var span = $('#span'+str);
    	
    	if($(cb).attr('checked')){
    		self.switchOff(str);
    	}
		else
		{
    		self.switchOn(str);
    	}
    	

    	})(jQuery);
    }
	
	
	this.switchOn = function(str, dnv, noupdate){
    	(function($) {
		
		
		
    	var cb = $('#cb'+str);
    	var span = $('#span'+str);
		
    	if (self.validate(str, 'on') || dnv) {
			$(span).addClass('checked');
			$(cb).attr('checked', 'checked');
			

		}
		
		if (!noupdate && str) {
			self.updateFilter();
		}
		
    	})(jQuery);
    }
	
	this.switchOff = function(str, dnv){
    	(function($) {

    	var cb = $('#cb'+str);
    	var span = $('#span'+str);
		
    	if (self.validate(str, 'off') || dnv) {
			$(span).removeClass('checked');
			$(cb).removeAttr('checked');
		}
		
		if (str) {
			self.updateFilter();
		}
		
    	})(jQuery);
    }
	
	this.validate = function(str, mode){
		var returnVal = true;
		
    	(function($) {
			if(mode == "on") {
				switch(str) {
					case "buy":
						self.switchOff('rent', true);
					break;
					case "rent":
						self.switchOff('buy', true);
					break;
				}
			}
			else {
				switch (str) {
					case "buy":
						returnVal = false;
					break;
					case "rent":
						returnVal = false;
					break;
					case "haus":
					case "grundstueck":
					case "wohnung":
						if($('.CB .art.checked').length <= 1)
						returnVal = false;
					break;
					
				}	
			}
			
			//alert(str + "-" + mode);
			//returnVal = false;
			
    	})(jQuery);
		
		return returnVal;
    }
		
	this.updateFilter = function(){
		(function($) {
			$.post("/immosearch/setFilter",   $("#immoSearchForm").serialize() ,
			   function(data){
			    }
			);
		})(jQuery);
	}
	
	this.setSort = function(sort){
		(function($) {
			$.post("/immosearch/setSort",  { sort: sort } ,
			   function(data){
					document.location.reload();
			}
			);
		})(jQuery);
	}
	

    var self = this;
}

var is = new IS();

(function($) {
	$(document).ready(function(){
		is.init();
	});

})(jQuery);
