var Search_ComboModule = {
	bind:function(instance_id) {
		Search_ComboModule.instance_id = instance_id;
		
		$('.Search_ComboModule a.select').unbind('click');
    	$('.Search_ComboModule a.select').click(
          function () {
			  if ($(this).hasClass('open')) {
				  Search_ComboModule._close(this);
			  } else {
				  Search_ComboModule._open(this);
			  }
			  return false;
          }
        );
		target = instance_id.replace(/_/g,'/');
		$('.Search_ComboModule input[name=place]').autocomplete(target,
			{
				minChars:1,
				maxItemsToShow:20,
				mustMatch:0,
				selectFirst:1,
				autoFill:true,
				onItemSelect:function(li) {
					if (li.extra[0]) {
					    Search_ComboModule.place_id = li.extra[0];
					    $('form[name=form_'+Search_ComboModule.instance_id+ '] input[name=place_id]').val(li.extra[0]);
					}
				},
				onClear: function() {
				    $('form[name=form_'+Search_ComboModule.instance_id+ '] input[name=place_id]').val('');
				}
			}
		);
		
		$(function() {
			$("#slider").slider({
				value:0,
				min: 0,
				max: 60,
				step: 10,
				slide: function(event, ui) {
			        $('form[name=form_'+Search_ComboModule.instance_id+ '] input[name=radius]').val(ui.value);
					if (ui.value == 0) {
					    Search_ComboModule._close_modal($(".select.open"));
						$("#amount").html(window.h_exact_place);
					} else {
					    Search_ComboModule._open_modal($(".select.open"));
						$("#amount").html(ui.value + window.h_km);
					}
					$("#amount").css("left", (ui.value * 100 / $("#slider").slider( 'option' , 'max') - 5) + '%');
				},
				change: function(event, ui) { 
					$("#amount").css("left", (ui.value * 100 / $("#slider").slider( 'option' , 'max') - 5) + '%');
					}
			});
		
			$("#amount").html(window.h_exact_place);
			$("#amount").css("left", ($("#slider").slider('value') * 100 / $("#slider").slider( 'option' , 'max') - 5) + '%');
		});
		
		$('.Search_ComboModule input[name=place]').bind('input', function() {
			Search_ComboModule.setPlaceId();
		});
		
		$('#CS_select').customSelect(function(val) {
			ar(instance_id,'set_place',$('form[name=form_'+instance_id+']').serialize()+'&place_id='+val);
	    });
	},
	setRadius:function(val) {
		$("#slider").slider('value', val);
		if (val == 0) {
			$("#amount").html(window.h_exact_place);
		} else {
			$("#amount").html(val + window.h_km);
		}
	},
	setPlaceId:function(val) {
		Search_ComboModule.place_id = val;
	},
	div: null,
	_open_modal:function(obj) {
		if (Search_ComboModule.div) return;
	    block = $('.Search_ComboModule');
	    Search_ComboModule.div = $("<div/>").css({
	    	width: block.width(),
	    	height: block.height() + 50,
	    	position: "absolute",
	    	'background-color': "white",
	    	'-moz-opacity': 0.7, 
	    	'opacity': 0.7,
	    	'filter': 'alpha(opacity=70)',
	    	'z-index': 1001
	    });//.fadeTo(0, 0.7);
	    $(obj).parents(".part").css({
	    	'-moz-opacity': 1, 
	    	'opacity': 1,
	    	'filter': '',
	    	'z-index': 1002
	    });
	    block.prepend(Search_ComboModule.div);
	},
	_close_modal:function(obj) {
		if (!Search_ComboModule.div) return;
		Search_ComboModule.div.remove();
		Search_ComboModule.div = null;
	    $(obj).css({'z-index': 999});
	},
	_open:function(obj) {
	    $('.Search_ComboModule a.select').each(function(){Search_ComboModule._close(this);})
	    
	    if ($(obj).attr("id") == 'ort' && $('form[name=form_'+Search_ComboModule.instance_id+ '] input[name=radius]').val() > 0)
	    	Search_ComboModule._open_modal(obj);
		$(obj).addClass("open");
		tt='sub_'+ $(obj).attr("id");
		$('#'+tt).show()
		
		$('form[name=form_'+Search_ComboModule.instance_id+ '] input[name=open_cat]').val(
                    $('#sub_category:visible').length
        );
		
        this._set_outside_click_handler(obj);
	},
	_close:function(obj) {
	    Search_ComboModule._close_modal(obj);
		$(obj).removeClass("open");
		tt='sub_'+ $(obj).attr("id");
		$('#'+tt).hide()
        $('body').unbind('click.Search_ComboModule');
	},
	_set_outside_click_handler:function(obj) {
	    this.click_obj = obj;
	    $('body').unbind('click.Search_ComboModule');        
        $('body').bind('click.Search_ComboModule', this._outside_click_handler);        
	},
	click_obj:null,
	_outside_click_handler:function(e) {
	    selector = '#sub_'+ $(Search_ComboModule.click_obj).attr("id");
	    if ($(e.target).parents(selector).length) return;
	    
        Search_ComboModule._close(Search_ComboModule.click_obj);
        if (($(Search_ComboModule.click_obj).attr("id") == 'ort') && $('#place').val()) {
        	if (!$('input[name=place_id]').val())
        		$('form[name=form_'+Search_ComboModule.instance_id+ ']').submit();
        	else
        		$('#set_button').click();
        }
	}
}
