$(document).ready(function(){



var block_is_show_arr=new Array();
block_is_show_arr[1]=false;
block_is_show_arr[2]=false;


var hover_obj=0;

var _ua = navigator.userAgent.toLowerCase();
var browser = {
  version: (_ua.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1],
  opera: /opera/i.test(_ua),
  msie: (!this.opera && /msie/i.test(_ua)),
  msie6: (!this.opera && /msie 6/i.test(_ua)),
  msie8: (!this.opera && /msie 8/i.test(_ua)),
  mozilla: /firefox/i.test(_ua),
  chrome: /chrome/i.test(_ua),
  safari: (!(/chrome/i.test(_ua)) && /webkit|safari|khtml/i.test(_ua)),
  iphone: /iphone/i.test(_ua)
}
if(browser.msie||browser.chrome)
     document.onkeydown=handleKeyEvent;
else
     document.onkeypress=handleKeyEvent;

function handleKeyEvent(ev)
{	
	if (!ev) ev = window.event;
	
	key = ev.keyCode || ev.which;
	
	if ((key==38 || key==40 || key==13) && block_is_show_arr[GetListLastId])
	{
		if(key==38){
			
				var hover_obj_new=$('#block_'+GetListLastId+' div#'+hover_obj).prev("div").attr('id');
				
				if(hover_obj_new){
					$('#block_'+GetListLastId+' div#'+hover_obj).removeClass("focus_item");
					$('#block_'+GetListLastId+' div#'+hover_obj).siblings("div").removeClass("focus_item");
					hover_obj=hover_obj_new;
					$('#block_'+GetListLastId+' div#'+hover_obj).addClass("focus_item");
					$('#block_'+GetListLastId).scrollTo('div#'+hover_obj, 50, {over:-2} );
				}
		}
		else if(key==40){
				var hover_obj_new=$('#block_'+GetListLastId+' div#'+hover_obj).next("div").attr('id');

				if(hover_obj_new){
					$('#block_'+GetListLastId+' div#'+hover_obj).removeClass("focus_item");
					$('#block_'+GetListLastId+' div#'+hover_obj).siblings("div").removeClass("focus_item");
					hover_obj=hover_obj_new;
					$('#block_'+GetListLastId+' div#'+hover_obj).addClass("focus_item");
					$('#block_'+GetListLastId).scrollTo('div#'+hover_obj, 50, {over:-2} ) ;
				}
     
     
		} if(key==13){
			
			ClockToItem(GetListLastId,hover_obj,'get_list_country');
		}
		
		// отменить дальнейшую обработку
		ev.returnValue = false;
		return false;
	}
}
	
	function ClockToItem(id,hover_obj)
	{		
		var item=hover_obj.split('_');
		
		if(item[0]=='item')
		{
			var text=$('div#'+hover_obj).find("span:first").text();
					
			if (id==2) //если выбрана страна
			{
				if ($('#input_2').attr('value')!=text) //сброс города если выбрана другая страна
				{
					$('#input_hidden_3_main').attr('value','');
					$('#input_3_main').attr('value','');
					/*$('#input_3_main_i').hide();*/
					hover_obj_clock_arr[1]=0;
				}	
				$('#tr_select_input_3_main').show();
				//OpenBlock(item[1]);
			}	
			
			$('#input_'+id+'_main').attr('value',text);
			
			
			window.location = "/?nl="+item[1];
			
			$('#input_hidden_'+id+'_main').attr('value',item[1]);
			GetListLast[id]=text;								
		}
		else if(item[0]=='order')
		{
			$('#'+item[1]).show();
			$('#input_'+id+'_main').attr('value','');
			$('#input_hidden_'+id+'_main').attr('value','');
									
			if (id==2)
			{
				$('#tr_select_input_3_main').hide(); //скрыть города если выбрана order страна
				$('#input_hidden_3_main').attr('value','');
				$('#input_3_main').attr('value','');
				/*$('#input_3_main_i').hide();*/
				hover_obj_clock_arr[1]=0;
			}
			setTimeout(function() { Block_Show(id,'<div  style=\"background-color:#fafafa;font-size:10px;color:#000\">Введите несколько первых букв '+(id==2?'страны':'населенного пункта')+'</div>') }, 100); //показываем "введите название" если выбран другой город/страна
		}
		hover_obj_clock_arr[id] = hover_obj;
		Block_Hide(id);
	}
	
							
	function Block_Hide(id) //скрывает блок селекта
	{
		$('#img_'+id).removeClass("imgclick");
		$('#img_'+id).addClass("img");
		$('#block_'+id).hide().html();
		block_is_show_arr[id] = false;
		
		$('#input_3_main').removeClass("go_to_input");
		$('#input_3_main').addClass("go_to");
		
		Check_Input_Block(GetListLastId);
		
		if($('#input_'+id+'_main').attr('value')=="")
		{
		     $('#input_'+id+'_main').attr('value','Везде');
		}	
	}
	
	function Block_Show(id,msg) //показывает блок селекта
	{
		if($('#input_'+id+'_main').attr('value')=="Везде")
		{
		     $('#input_'+id+'_main').attr('value','');
		}
		
		$('#input_3_main').removeClass("go_to");
		$('#input_3_main').addClass("go_to_input");
		
		$('#block_'+id).show().html(msg);
		
        $('#input_'+id+'_main').focus();
        
		if(hover_obj_clock_arr[id]!=0&&$('#input_'+id+'_main').attr('value')!='') //фокусировка на выбранный
		{
			hover_obj = hover_obj_clock_arr[id];
			
			if ($('#block_'+id+' div#'+hover_obj).attr('id'))
			{
				$('#block_'+id+' div#'+hover_obj).addClass("focus_item");
				$('#block_'+id).scrollTo('div#'+hover_obj, 50, {over:-2} );
			}
			/*else
			{
				hover_obj_clock_arr[id] = 'order_order';
				hover_obj = hover_obj_clock_arr[id];
				$('#block_'+id+' div#'+hover_obj).addClass("focus_item");
				$('#block_'+id).scrollTo('div#'+hover_obj, 50, {over:-2} );
			}*/

		}
		else //фокусировка на первый
		{
			hover_obj=$('#block_'+id).find('div').attr('id');
			if (hover_obj=='info')
				hover_obj = $('#block_'+id+' div#'+hover_obj).next("div").attr('id');
				
			$('#block_'+id+' div#'+hover_obj).addClass("focus_item");
		}
		block_is_show_arr[id] = true;
	}
	
	
	function Check_Input_Block(id) //проверка полей селекта после 
	{
	}
	
	
	$('*').click(function(){
		if (block_is_show_arr[GetListLastId]) Block_Hide(GetListLastId);
	});
	
	
	$('#go_to_region div.img').click(function(){
		id=$(this).attr('id').split('_');
	       switch (id[1])
	       {
		         case '3':
	       	     case '1' : GetList('get_list_city',id[1],$('#go_to_region #input_hidden_2_main').attr('value'),'select',1); break;
		         case '2' : GetList('get_list_country',id[1],0,'select',1); break;
				 default: false;
	        }
	});
	
	$('#go_to_region input').keyup(function(){
		
		id=$(this).attr('id').split('_');
		
        switch (id[1])
        {
             case '3':
        	 case '1' : GetList('get_list_city',id[1],$('#go_to_region #input_hidden_2_main').attr('value'),$('#go_to_region #input_3_main').attr('value')); break;
	         case '2' : GetList('get_list_country',id[1],0,$('#go_to_region #input_'+id[1]).attr('value')); break;
			 default: false;
        }
	})/*.mouseout(function(){
		id=$(this).attr('id').split('_');
        switch (id[1])
        {
	         case '1' : GetList('get_list_city',id[1],$('#go_to_region #input_hidden_2_main').attr('value'),$('#go_to_region #input_'+id[1]).attr('value')); break;
	         case '2' : GetList('get_list_country',id[1],0,$('#go_to_region #input_'+id[1]).attr('value')); break;
			 default: false;
        }
	})*/.blur(function(){
		id=$(this).attr('id').split('_');
		Check_Input_Block(id[1]);
	}).click(function(){
		id=$(this).attr('id').split('_');
		
	    switch (id[1])
	    {
             case '3':
	    	 case '1' : GetList('get_list_city',id[1],$('#go_to_region #input_hidden_2_main').attr('value'),'select',1); break;
		     case '2' : GetList('get_list_country',id[1],0,'select',1); break;
			 default: false;
	    }
	});

	          		     		
	          		
	function GetList(act,id,sub_id,value,q){
		GetListLastId=id;
			
		if((GetListLast[id]!=value&&value!='select')||value=='')
		{
			$('#input_hidden_'+id+'_main').attr('value',''); //сброс id при редактировании
			hover_obj_clock_arr[id]=0;
			
				         	
		    if (act=='get_list_country') //скрытие и сброс списка городов при редактировании страны
			{
				$('#tr_select_input_3_main').hide();
				$('#input_3_main').attr('value','');
				/*$('#input_3_main_i').hide();*/
			}
		}
			
		if (value=='select')
		{
			value = '';
		}
		
		if(q!=undefined||(GetListLast[id]!=value && value.length>2)){
			GetListLast[id]=value;
			$.ajax({
				type: 'POST',
				url: '/autocomplete-ajax.php',
				data: 'switch='+act+'&sub_id='+sub_id+'&no_kladr=y&get_eu=y&a='+encodeURIComponent(value),
				cache: false,
				success: function(response){
					
					$('#img_'+id).removeClass("img");
					$('#img_'+id).addClass("imgclick").show;
					response=unescape(response);
					var response=response.split("|");
					var responseType=response[0];
					var responseMsg=response[1];
					if(responseType=="success"){
						if(responseMsg!=''){
							Block_Show(id,responseMsg);
							$('#block_'+id+' div').click(function() //клик по пункту
							{ 
								ClockToItem(id,$(this).attr('id'));
							}).hover(function(){ //наведение на пункт
										if ($(this).attr('id')!='info')
										{
	                                        $(this).siblings("div").removeClass("focus_item");
	                                        $(this).addClass("focus_item");
	                                        hover_obj=$(this).attr('id');
										}
                            });
                            

						}
						else{
							Block_Hide(id);
						}
					}
					else{
						Block_Show(id,'<p style="color:red">Неизвестная ошибка, попробуйте позже<\/p>'+response);
					}
				}
			});
		}
	}
});