if (!window.console) {
	window.console = {};
	window.console.log = function(msg){
		//alert (msg);
	};

}

var completeExtraParam = new Object();
completeExtraParam.value = '';
completeExtraParam.toString = function(){
	return this.value;
};



function clear_autocomplete(main_name){
	//очищает поля автокомплитов для про темы!
	var name_search = 'search_'+main_name;
	var span_name = name_search.replace('[','_');
	span_name = span_name.replace(']','')

	$('input[name="'+name_search+'"]').attr('check', '');
	$('#span_'+span_name).html('').click();
	$('input[name="'+main_name+'"]').val('');
}

function input_change(name_search){
	
	//if (name_search=="search_tarrival_point") {
	//	$('input[name="hotel_name"]').text("");
	//};
	var span_name = name_search.replace('[','_');
	span_name = span_name.replace(']','')

	var value = $('input[name="'+name_search+'"]').attr("value");

	var check = $('input[name="'+name_search+'"]').attr("check");
	
	if (value != '' && check == ''){
		$('input[name="'+name_search+'"]').attr('value','').show().blur();
		//alert('ok');
		//$('input[name="'+name_search+'"]').show();
		return;
	}


	//$('input[name="'+name_search+'"]').attr("value", '');
	if (check != value) {
		$('#span_'+span_name).html( check );
		$('#span_'+span_name).show();
		if (name_search == 'out_search')
			$("#return_to").html( check );
	}else{
		$('#span_'+span_name).html( check ); //для новой оперы
	}

	if (name_search == 'search_hotel_name'){
		$("#name_search").val("");
		$("input[name=search_hotel_name]").val("");
		$("#span_search_hotel_name").html("");
		$("input[name=search_hotel_name]").show();
		$("#span_search_hotel_name").hide();
		// Возвращаем фокус в окно ввода названия отеля.
		//$("input[name=search_hotel_name]").focus();

	}
//	$('input[name="'+name_search+'"]').val('').blur().show().focus();
}

function rebind_complete(main_name, name_search, uri, min_chars, cache_length, match_case){
	
	if(uri == undefined){
		uri = 'ajax/autocomplete';
	}
	if(cache_length == undefined){
		cache_length = 10;
	}
	if(match_case == undefined){
		match_case = false;
	}

	var span_name = name_search.replace('[','_');
	span_name = span_name.replace(']','')


	if( $('#span_'+span_name).html() == ''){
		$('input[name="'+name_search+'"]').show();
	}
	var no_span = false;
	if($('#span_'+span_name).length == 0 ){
		no_span = true;
	}

	$('.auto_cleaner[clear="'+main_name+'"]').click(function(e){
		$('input[name="'+name_search+'"]').attr('check', '');
		$('#span_'+span_name).html('').click();
		$('input[name="'+main_name+'"]').val('');
		e.preventDefault();
	});

	$('input[name="'+main_name+'"]').blur(function(){

		if($(this).val() == ''){
			//$('input[name="'+name_search+'"]').attr('value','').attr('check','').show().blur();
			//$('#span_'+span_name).hide();
		}
	});

	//$('input[name="'+name_search+'"]').blur( function(){$('input[name="'+main_name+'"]').blur();} );
	var comment = $('input[name="'+name_search+'"]').attr('comment');
	if (comment && comment !=  $('input[name="'+name_search+'"]').val()){
		$('input[name="'+name_search+'"]').attr("check", $('input[name="'+name_search+'"]').val());
	}

	$('#span_'+span_name).click(function(){
		$(this).hide();
		$('input[name="'+name_search+'"]').show().attr('value','').addClass('autocomplete_focus_set').focus();
	});

	$('input[name="'+name_search+'"]').click(function(){
		if (no_span){
			$(this).attr('value','').addClass('autocomplete_focus_set').focus();
		}

	});


	$('input[name="'+name_search+'"]').change(function(){
		if($(this).val() != ''){ // for opera
			if(!no_span){
				$('input[name="'+name_search+'"]').hide();
			}
			if ( $('input[name="'+main_name+'"]').attr("value") != ''  ){
				$('#span_'+span_name).html('&nbsp').show();
			//$('input[name="'+name_search+'"]').hide();

			}
			setTimeout("input_change('"+name_search+"');", 200);
		}
	});
	$('input[name="'+name_search+'"]').blur(function(e){
		//e.preventDefault();
		if( $(this).attr("value") == '' ){
			if($(this).attr("check") != ''){
				$(this).attr("value", ' ');
				if (!no_span){
					$(this).hide();
				}else{
					$(this).attr("value", $(this).attr("check"));
				}
				input_change(name_search);
			}
			$('input[name="'+main_name+'"]').blur();
		}

	});

	function selectItem(li)
	{	
		
		$.autocompleteGoNext = true;

		if(li.extra == null)return;
		if(!no_span){
			$('input[name='+name_search+']').hide();
		}

		if($('input[name="'+main_name+'"]').hasClass('autolist')){
			//для WS_Form_Field_Input_Autolist
			var listname = $('input[name="'+main_name+'"]').attr('name').replace('complete_', '');

			var key = li.extra[0];
			var value = li.selectValue;
			$div = $('div[name="' + listname + '_values"]');

			var html = $div.html();
			if($('[name="'+listname+'['+key+']"]').length == 0){

				html += '<div style="height:20px">';
				html += '<input type="hidden" name="'+listname+'['+key+']" value="'+key+'" />';
				html += '<div style="float:left" class="popup_title_div">'+value+'</div>';
				html += '<div class="todel" name="'+listname+'['+key+']"="'+key+'" style="float:right" >'+'<img height="16" width="16" class="icon" src="templates/basic/images/cross_small.png">'+'</div>';
				html += '</div>';
				//$('.all_message[name="'+listname+'"]').hide();
				//$('.selected_message[name="'+listname+'"]').show();
			}

			$div.html(html);
			$('input[name="'+name_search+'"]').show().val('').focus();
			//.val('').blur().show().focus(); - don't work in Opera

		}
		else{
			$('#span_'+span_name).html(  li.selectValue  );
			$('#span_'+span_name).show();
			$('input[name="'+main_name+'"]').val(li.extra[0]);
			$('input[name="'+main_name+'"]').blur().trigger('autocomplete');

			if (typeof retrieve_hotelname_input !== 'undefined')
				setTimeout('retrieve_hotelname_input()', 100);

			var value = li.selectValue;
			if(no_span){
				var value = value.replace(/^[^\>]*\>/,'').replace(/\<span.*$/,'');
			}
			$('input[name="'+name_search+'"]').val(value);
			$('input[name="'+name_search+'"]').blur().trigger('autocomplete');

			$('input[name="'+name_search+'"]').attr("check", li.selectValue);

			if (name_search == 'out_search')
				$("#return_to").html( li.selectValue );
		}
	
		if (no_span){
			$('input[name="'+name_search+'"]').show();
		}
		if($('input[name="'+name_search+'"]').closest("#div_tarrival_point").length) {
			$('input[name='+name_search+']').hide();
		}
	}



	if(min_chars == undefined){
		min_chars = 2;
	}
	$('input[name="'+name_search+'"]').autocomplete('index.php',{
		delay:300,
		minChars:min_chars,
		matchSubset:1,
		matchCase:match_case,
		matchContains:1,
		cacheLength:cache_length,
		selectFirst:true,
		//formatItem:liFormat,
		maxItemsToShow:10,
		extraParams: {
			'go':encodeURI(uri),
			'extra':completeExtraParam
		},
		width: 'auto',
		onItemSelect:selectItem
	});
}

