var search_param = {
	direction: '',
	category: 'village',
	currency: 1,
	distance_ot: 0,
	distance_do: 200,
	price_ot: 0,
	price_do: 1000000
};

var selective_mode = '';
var timeout;
var ajax_url = "ajax/search.php";
var max_height_div = 400;
var ie_bag = ($.browser.msie)?45:30;
var categories = {
	cottage: 45,
	village: 44,
	site: 47,
	rent: 46
};


$("#searchad a, #search-more a").addClass("cur");
$('#search_selective_div').center({vertical: false});

$('.do_search').click(function (){
	//alert(get_search_params_string());
	location = BASE+get_search_params_string();
});

// sliders
function render_slider_scale(slider_width,marks_ar,id) {
	var part_width = Math.floor(slider_width/marks_ar.length);
	var slider_width_real = part_width*(marks_ar.length-1);
	var slider_offset = Math.floor((slider_width-slider_width_real)/2);
	
	var slider_scale_marks = '';
	var slider_scale = '';
	for(var i=0; i<marks_ar.length; i++) {
		slider_scale_marks += '<div class="ui-slider-marks">'+marks_ar[i]+'</div>';
		if(i < marks_ar.length-1) slider_scale += '<div class="ui-slider-scale"></div>'
	}
	//var scale = '<div class="slider-scale-marks">'+slider_scale_marks+'<div class="clr"></div></div><div class="slider-scale">'+slider_scale+'<div class="clr"></div></div>';	
	/*
	$('#'+id).empty().append(scale)
		.append('<div id="'+id+'_slider"></div>')
		.append('<div class="slider_bg"></div>');
	*/
	$('.slider-scale-marks','#'+id).html(slider_scale_marks+'<div class="clr"></div>');
	$('.slider-scale','#'+id).html(slider_scale+'<div class="clr"></div>');
		
	$('.ui-slider-marks','#'+id).width(part_width+2);	// + 2px border	
	$('.ui-slider-scale','#'+id).width(part_width);
	
	// real width + 1px border twice + 2px own border
	$('#'+id+'_slider').width(slider_width_real+marks_ar.length*2-2).css({marginLeft: -5+'px'}); 
	$('.slider_bg','#'+id).width(slider_width_real+marks_ar.length*2-2)
	$('.slider-scale-marks','#'+id).css({position: 'relative', left: -slider_offset+'px'});
	
	if($.browser.msie && ($.browser.version).substr(0,1) == '6') {
		//$('.slider-scale-marks','#'+id).css({position: 'absolute', left: -slider_offset+'px'});
		//$('.slider-scale','#'+id).css({paddingTop: '13px'}).parent().css({height: '10px'});
	}
	
	return slider_width_real;
}

function render_price_slider(arg){
	var slider_width_real = render_slider_scale(280,arg.scale,'slider_1');
	$('#slider_1_slider').slider({
		step: arg.step,
		min: arg.min, 
		max: arg.max,
		range: true,
		slide: slider_1_handler,
		change: slider_1_handler
	});
	
	function slider_1_handler(e,ui) { 
		var tmp = Math.round($('#slider_1_slider').slider('values', 1));
		if(tmp == arg.max) tmp = '>'+arg.max;
		search_param.price_ot = Math.round($('#slider_1_slider').slider('values', 0));
		search_param.price_do = tmp;
		$('#search_price_1').val(search_param.price_ot); 
		$('#search_price_2').val(search_param.price_do); 
	}
		
	$('#slider_1_slider').slider('values',1,arg.max);
}

var currency1 = {
	scale: new Array('0','&nbsp;2 млн','&nbsp;4 млн','&nbsp;','&nbsp;8 млн','&nbsp;','&nbsp;','&nbsp;','&nbsp;>16млн'),
	min: 0,
	max: 16000000,
	step: 10000
};
var currency2 = {
	scale: new Array('0','150','&nbsp;300&nbsp;тыс.','&nbsp;','&nbsp;600&nbsp;тыс.','&nbsp;','&nbsp;','&nbsp;','>1.2&nbsp;млн'),
	min: 0,
	max: 1200000,
	step: 1000
};
var currency3 = {
	scale: new Array('0','100','&nbsp;200&nbsp;тыс.','&nbsp;','&nbsp;400&nbsp;тыс.','&nbsp;','&nbsp;','&nbsp;','>800&nbsp;тыс.'),
	min: 0,
	max: 800000,
	step: 1000
};

render_price_slider(currency1);

//------------------------------------------------------------//
var slider_width_real = render_slider_scale(280, new Array('0','&nbsp;','50','&nbsp;','100','&nbsp;','150','&nbsp;','>200'),'slider_2');

$('#slider_2_slider').slider({
	min: 0, 
	max: 200,
	step: 5,
	range: true,
	slide: slider_2_handler,
	change: slider_2_handler
});

function slider_2_handler(e,ui) { 
	var tmp = Math.round($('#slider_2_slider').slider('values', 1));
	if(tmp == 200) tmp = '>'+200;
	search_param.distance_ot = Math.round($('#slider_2_slider').slider('values', 0));
	search_param.distance_do = tmp;
	$('#search_distance_1').val(search_param.distance_ot); 
	$('#search_distance_2').val(search_param.distance_do); 
}

$('#slider_2_slider').slider('values',1,search_param.distance_do);


// currency
$('#search_price_currency').change(function (){
	render_price_slider(eval('currency'+$(this).val()));
	search_param.currency = $(this).val();
});

// direction
$('a','#direction_div').click(function (){$(this).toggleClass('checked');});

$("#direction_but").click(function() {show_selective_div('direction');});



$('#search_selective_div_close').click(function (){
	$('#search_selective_div').hide();
	overlay.hide();
    
    //hack for save state when clear+close clicked
    $('a','#'+selective_mode+'_div').removeClass('checked');
    var ids = (search_param[selective_mode]+'').split(',');
    for(var i in ids) $('a[name='+selective_mode+'_item_'+ids[i]+']','#'+selective_mode+'_div').addClass('checked');
});

$('#search_selective_list_clear_but').click(function (){$('a','#search_selective_list').removeClass('checked');});

$('#search_selective_list_ok_but').click(function (){       
	var tmp = [];
	$('a.checked','#'+selective_mode+'_div').each(function (){
		tmp.push((this.name).replace(selective_mode+'_item_',''));
	});
	
	$('#'+selective_mode).text(((tmp.length > 0)?'выбрано '+tmp.length:'не важно'));
	search_param[selective_mode] = tmp.join(',');    
	
	$('#search_selective_div').hide();
	overlay.hide();
});

function show_selective_div(mode){
    if(mode != selective_mode) {
        selective_mode = mode;
        $('#search_selective_list').children('div').hide();
        $('#'+selective_mode+'_div').show(); 
		$('#search_selective_head').show();    
    }
    overlay.show();
	$('#overlay').one('click',function (){$('#search_selective_div_close').click();});
	$('#search_selective_div').show();
}



// txt input to slider handlers
$('#search_price_1').keyup(function (){
	var tmp = parseInt($(this).val());
	if(isNaN(tmp) || tmp > parseInt($('#search_price_2').val())) return;
	$('#slider_1_slider').slider('values',0,tmp);
});
$('#search_price_2').keyup(function (){
	var tmp = (($(this).val()).substr(0,1)=='>')?($(this).val()).substr(1):$(this).val();
	tmp = parseInt(tmp);
	if(isNaN(tmp) || tmp <= parseInt($('#search_price_1').val())) return;
	$('#slider_1_slider').slider('values',1,tmp);
});
$('#search_distance_1').keyup(function (){
	var tmp = parseInt($(this).val());
	if(isNaN(tmp) || tmp > parseInt($('#search_distance_2').val())) return;
	$('#slider_2_slider').slider('values',0,tmp);
});
$('#search_distance_2').keyup(function (){
	var tmp = (($(this).val()).substr(0,1)=='>')?($(this).val()).substr(1):$(this).val();
	tmp = parseInt(tmp);
	if(isNaN(tmp) || tmp <= parseInt($('#search_distance_1').val())) return;	
	$('#slider_2_slider').slider('values',1,tmp);
});


// set parameters
function set_search_form_state(sparam){
	if(sparam == '') return;
	var param = {};
	
	var tmp = sparam.split('&');
	
	for(var i=0; i < tmp.length; i++) {
		tmp2 = tmp[i].split('=');		
		param[tmp2[0]] = tmp2[1];		
	}
	
	if(SEARCH_MORE) {
		$('.search-more-but').toggleClass('dis');
		$('li','#tabsI').removeClass('current');
	}
	
	if(typeof param.direction != 'undefined' && param.direction != '' && param.direction != 0) {
		tmp = param.direction.split(',');
		for(var i in tmp) $('a[name=direction_item_'+tmp[i]+']','#direction_div').addClass('checked');
		selective_mode = 'direction';   
		$('#search_selective_list_ok_but').click(); 
	}
    
	selective_mode = '';
    
	
	if(typeof param.currency != 'undefined' && search_param.currency != param.currency) 
	$('#search_price_currency').val(param.currency).change();
	
	if(typeof param.price_do != 'undefined') {
		param.price_do = (param.price_do.substr(0,1)=='>')?param.price_do.substr(1):param.price_do;
		$('#slider_1_slider').slider('values',1,param.price_do);
		if(typeof param.price_ot != 'undefined') $('#slider_1_slider').slider('values',0,param.price_ot);
	}
	
	if(typeof param.distance_do != 'undefined') {
		param.distance_do = (param.distance_do.substr(0,1)=='>')?param.distance_do.substr(1):param.distance_do;	
		$('#slider_2_slider').slider('values',1,param.distance_do);
		if(typeof param.distance_ot != 'undefined') $('#slider_2_slider').slider('values',0,param.distance_ot);	
	}
	
	// mark searched tabs
	if(typeof param.category_ids != 'undefined') {
		$('li','#tabsI').removeClass('current');
		var tmp = param.category_ids.split(',');
		
		for(var k in categories) {		
			if($.inArray(categories[k]+'',tmp) >= 0) $('#search_tab_'+k).addClass('current');
		}
	}
}


function get_search_params_string(){
	var tmp = {search:1};
	
	for(var k in search_param) {
		tmp[k] = search_param[k];
	}
	
	
	if(SEARCH_MORE) {
		var search_more_form_data = getFormData($('#search_more_form'));
		for(var k in search_more_form_data) {
			tmp[k] = search_more_form_data[k];
		}
		
		tmp.ext = 1;
	}
	
	
	var cat_dir = tmp.category;
	delete tmp.category;	
	
	if(tmp.currency == 1) delete tmp.currency;
	if(tmp.price_ot == 0 && tmp.price_do.toString().substr(0,1) == '>') {
		delete tmp.price_ot;
		delete tmp.price_do;
	}
	if(tmp.distance_ot == 0 && tmp.distance_do.toString().substr(0,1) == '>') {
		delete tmp.distance_ot;
		delete tmp.distance_do;
	}
	
	// delete empty param
	for(var k in tmp) {
		if(tmp[k] == '' || tmp[k] == 0) delete tmp[k];
	}	
	
	return 'objects/'+cat_dir+'/?'+$.param(tmp);
}


// SEARCH MORE
var SEARCH_MORE = false;

$('.search_more_but').click(function (){
	$('.search_more_but,#search-more').toggleClass('dis');
	SEARCH_MORE = !$('#search-more').hasClass('dis');
	but_sync();
});

$('.search-more-form-reset').click(function (){clearForm('#search_more_form');});

function but_sync(){$('.search-more-form-reset:first').toggleClass('dis');}

$(function (){$('[name=category_ids]').change();})