var loading_txt='<div class="agorta_loading"><div class="big_square"><div class="small_square"></div></div></div>';
var caps=false;

function false_alarm() {
	if($('#false_alarm').length>0) {
		document.getElementById('false_alarm').pause();
		document.getElementById('false_alarm').currentTime=0;
		document.getElementById('false_alarm').play();
	}
	display_false_alarm();
}

function success_alarm() {
	if($('#success_alarm').length>0) {
		document.getElementById('success_alarm').pause();
		document.getElementById('success_alarm').currentTime=0;
		document.getElementById('success_alarm').play();
	}
}

function window_open_alarm() {
	if($('#window_open_alarm').length>0) {
		document.getElementById('window_open_alarm').pause();
		document.getElementById('window_open_alarm').currentTime=0;
		document.getElementById('window_open_alarm').play();
	}
}

function error_click_alarm() {
	if($('#error_click_alarm').length>0) {
		document.getElementById('error_click_alarm').pause();
		document.getElementById('error_click_alarm').currentTime=0;
		document.getElementById('error_click_alarm').play();
	}
	display_false_alarm();
}

function display_false_alarm() {
	if($('#display_false_alarm').length>0) {
		$('#display_false_alarm').show();
		setTimeout("$('#display_false_alarm').hide()", 10);
	}
}

$('body').off('click','input[type="reset"]');
$('body').on('click','input[type="reset"]', function(e){
	e.preventDefault();
	var form=$(this).closest('form');
	$(form).find('input[type="text"]').val('');
	$(form).find('input[type="hidden"]').val('');
	$(form).find('input[type="date"]').val('');
	$(form).find('input[type="number"]').val('');
	$(form).find('select').prop("selectedIndex", 0);
});

var DOMSubtreeModifiedBinded = false;
$('body').bind("DOMSubtreeModified",function(){
	//задержка позволяет костылём пофиксить баг
	//с черным экраном на некоторых версиях Android
	//может быть это только на мобилах делать?
	setTimeout(body_overflow, 500*set_timeout_popup);
	
	//это позволит не биндить кучу анонимных функций
	if(!DOMSubtreeModifiedBinded) {
		DOMSubtreeModifiedBinded = true;
	}
});

function show_window(id=null, html=loading_txt) {
	$('input').blur();
	$('textarea').blur();
	var res=$('body').append('<div class="popup" id="'+id+'"><div class="popup_area"><div class="close close_button"><i class="fa fa-times" aria-hidden="true"></i></div><div class="popup_content">'+html+'</div></div></div>');
	if(html==loading_txt) {
		$('#'+id+' .close').hide();
	}
	return res;
}

function body_overflow() {
	if($('.popup').length==0) {
		$('body').css('overflow', 'auto');
	}
	else {
		$('body').css('overflow', 'hidden');
	}
}

function close_window(elem){
	var w=$(elem).closest('.popup');
	if($('.page_reload', w).length>0) {
		location.reload();
	}
	$(w).remove();
}

function load_window(link, close=true) {
	var id=$.now();
	show_window(id);
	$('#'+id+' .popup_content').load(link, function(response, status, xhr) {
  		if(status=="error") {
  			false_alarm();
    		$('#'+id+' .popup_content').html(xhr.status+" "+xhr.statusText);
    		$("#"+id+" .close").show();
  		}
  		else {
  			window_open_alarm();
  			if(!close) {
  				$("#"+id+" .close").hide();
  			}
  			else {
  				$("#"+id+" .close").show();
  			}
  		}
	});
}

$('body').off('click', '.close');
$('body').on('click', '.close', function (){
	close_window(this);
});

function close_all_window() {
	if($('.only_hand_close').length>0) {
		$('.only_hand_close').closest('.popup').addClass('only_hand_close_window');
	}
	$('.popup').not('.only_hand_close_window').remove();
	$('.only_hand_close_window').removeClass('only_hand_close_window');
	if($('form[name="product_search_form"] input[name="product_search"]').length>0) {
		$('input[type="button"]').blur();
		$('button').blur();
	}
	body_overflow();
}

// Если есть документы на фискализацию
function view_remote_receipts(n) {
	if(n>0) { // Если есть документы на удаленную фискализацию
		$('.remote_receipts').show();
		$('#remote_receipts_n').html('('+n+')');
	}
	else { // Если нет документов на удаленную фискализацию
		$('.remote_receipts').hide();
		$('#remote_receipts_n').html('');
	}
}

// Показать кол-во новых интернет-заказов
function view_new_orders(n) {
	if($('#neworder').length==0) return;
	if(n>0) {
		if($('.neworders_count b').html()<n && orders_alarm==1) {
			document.getElementById('neworder').play();
		}
		/*var n0=$('#neworders_count b').html()*1;
		if(n0!=n) {
			document.getElementById('neworder').play();
		}*/
		$('.neworders_count b').html(n);
		$('.neworders_count').show();
	}
	else {
		$('.neworders_count').hide();
	}
}

$(document).ajaxStart(function(x) {
	$('#product_search_form .virtual_key_total').attr('disabled', true);
	$('#receipts_buttons .line_control').attr('disabled', true);
});

$(document).ajaxStop(function(x) {
	$('#product_search_form .virtual_key_total').removeAttr('disabled');
	$('#receipts_buttons .line_control').removeAttr('disabled');
});


function reload_elem(elem, elem_id, scroll, scrollto) {
	var href=$(elem).attr('href');
	if(href==undefined) href='';
	if(elem_id) {
		if(href.indexOf('?')>0) {
			href+='&';
		}
		else {
			href+='?';
		}
		href+='id='+elem_id;
	}
	show_window('loading', loading_txt);
	if(scroll=='.receiptlines_div') {
		var receiptlines_div_scroll=$('.receiptlines_div').scrollTop();
	}

	$(elem).load(href+' '+elem+' .reload', function(){
		if(elem=='.receiptlines') {
			$('.button_total .receipt_sum').html($('.total_table .receipt_sum').html());
			//$('.select_line').trigger('click');
			receiptlines_div_resize();
			//$('.receiptlines_div ').scrollTop($('.receiptlines_div ').height());
		}
		if(scroll) {
			if($(scrollto).length>0) {
				var contactTopPosition = $(scrollto).position().top;
				if(scroll=='.receiptlines_div') {
					if(receiptlines_div_scroll+$('.receiptlines_div ').height()>contactTopPosition) {
						$('.receiptlines_div').scrollTop(receiptlines_div_scroll);
					}
					else {
						$('.receiptlines_div').scrollTop(contactTopPosition);
					}
				}
				else {
					$(scroll).scrollTop(contactTopPosition);
				}
			}
		}
		close_window('#loading');
	});
}

function ajax_response(response) {
	var res=JSON.parse(response);
	if(res.txt!=undefined && res.txt) {
    	show_window('message', '<p class="'+res.success+'">'+res.txt+'</p>');
    }
    if(res.success==true) success_alarm();
    else false_alarm();

	if(res.next_step) {
		//show_window('loading', loading_txt);
		load_ajax(res.next_step);
	}
	if(res.reroute) {
		location.href=res.reroute;
	}

	if(res.ticket_reset) {
		$('.discount_input').val(0);
		$('.discount_input').show(0);
		$('.partner_button').remove();
		$('.partner_search_button').show();
		$('.discount_input').show();
		$('.line_control').each(function(){
			var href=$(this).attr('href');
			if(href) {
				href=href.substr(0, href.indexOf('=')+1);
				$(this).attr('href', href);
			}
		});
	}

	// Если есть документы на удаленную фискализацию
	if(res.remote_receipts!=undefined) {
		view_remote_receipts(res.remote_receipts);
	}
	
	if(res.reload) {
		if(Array.isArray(res.reload)===true) {
			for(var i=0; i<res.reload.length; i++) {
				reload_elem(res.reload[i], res.id, res.scroll, res.scrollto);
			}
		}
		else {
			reload_elem(res.reload, res.id, res.scroll, res.scrollto);
		}
	}
	if(res.reload_menu) {
		var a='?';
		if(location.href.indexOf('?')>0) a='&';
		$('#settings_menu').load(location.href+a+'show_menu=1 #settings_menu > .first_menu');
		$('#receipt_menu').load(location.href+a+'show_menu=1 #receipt_menu > .first_menu');
		$('#room_menu').load(location.href+a+'show_menu=1 #room_menu > .first_menu');
	}
	if(res.close_all_window) {
		close_all_window();
	}
	if(res.form_reset) {
		$('form').trigger("reset");
	}
	if(res.function) {
		eval(res.function);
	}
	if(res.show_qr) {
		$('#message').remove();
		load_window(res.show_qr, false);
	}
	if(res.show_message!=undefined && res.show_message!='') {
		close_all_window();
		load_window(res.show_message);
	}
	if(res.close_window) {
		if(Array.isArray(res.close_window)===true) {
			for(var i=0; i<res.close_window.length; i++) {
				$(res.close_window[i]).closest('.popup').remove();
			}
		}
		else {
			$(res.close_window).closest('.popup').remove();
		}
	}
	if(res.message!=undefined && res.message!='') {
		if(res.next_button!=undefined) {
			res.message+='<p align="center"><a href="'+res.next_button+'"><input type="button" value="Дальше"></a></p>';
		}
		let currentDateTime = new Date();
		var id='message_'+currentDateTime.getSeconds();
		show_window(id, res.message);
		if(res.next_button!=undefined) {
			$('#'+id+' .close').remove();
		}
	}
}

var http_request=null;
function load_ajax(href, loading=true) {
	if(loading)	show_window('loading', loading_txt);
	http_request=$.ajax({
        url: href,
        dataType: "html",
        success: function(response) {
        	close_all_window();
       		var isJson = true;
        	var res;
        	try {
    			res=JSON.parse(response);
			} catch(e) {
    			isJson = false;
			}
       		if(isJson) {
       			ajax_response(response);
       		}
       		else {
       			show_window(null, response);
       		}
    	},
    	error: function(response) {
    		false_alarm();
    		if(response.statusText=='abort') return;
    		close_all_window();
            show_window('error', response.statusText);
            //$("#loading .close").show();
    	},
    	timeout: 65000
 	});
}

function send_form(form) {
	$('input', form).blur();
	var submit_button=$('input[type="submit"]', form);
	submit_button.attr('disabled', 'disabled');
	var no_loading_txt=0
	if($(form).attr('no_loading_txt')==1) {
		no_loading_txt=1;
	}
	if(no_loading_txt==0) {
		show_window('loading', loading_txt);
	}
	action=$(form).attr('action');
	if(action==undefined)action='';
	var method=$(form).attr('method');
	if(method==undefined)action='GET';
	var time_out=$(form).attr('timeout');
	if(time_out==undefined) {
		time_out=305000;
	}
	var show_error=$(form).attr('showerror');
	if(show_error==undefined) {
		show_error=1;
	}
	var formData = $(form).serialize();
	$.ajax({
        url: action,
        type: method,
        dataType: "html",
        data: formData,
        success: function(response) {
        	submit_button.removeAttr('disabled');
        	$('#receipt_pay_ok, .receipt_pay_ok').prop('disabled', false);
        	$("#loading").remove();
        	var isJson = true;
        	var res;
        	try {
    			res=JSON.parse(response);
			} catch(e) {
    			isJson = false;
			}
       		if(isJson) {
       			ajax_response(response);
       		}
       		else {
       			show_window(null, response);
       		}
       		$('#loading').remove();
    	},
    	error: function(response) {
    		false_alarm();
    		submit_button.removeAttr('disabled');
    		$('#receipt_pay_ok, .receipt_pay_ok').prop('disabled', false);
    		if(show_error==1) {
            	$("#loading .popup_content").html(response.statusText);
            	$("#loading .close").show();
            }
            else {
            	$("#loading").remove();
            }
    	},
    	timeout: time_out
 	});
}

$('body').on('click', '.popup .pagination a', function(e){
	var href=$(this).attr('href');
	close_window(this);
	load_window(href);
	e.preventDefault();
});

$('body').on('submit', '.popup .close_window', function(){
	close_window(this);
});

$('body').on('click', '.show_window', function(e){
	var href=$(this).attr('href');
	load_window(href);
	e.preventDefault();
});

$('body').on('click', '.send_ajax', function(e){
	var href=$(this).attr('href');
	load_ajax(href);
	e.preventDefault();
});

$('body').on('click', '.gen_pass', function(){
	var input=$('input[name="'+$(this).attr('for')+'"]');
	var l=$(this).attr('length');
	if(l==undefined || l==null) {
		l=6;
	}
	var pass="";
	var words='0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM';
	var max_pos=words.length-1;
	for(i=0; i<l; i++) {
		pos=Math.floor(Math.random()*max_pos);
		pass+=words.substring(pos, pos+1);
	}
	input.val(pass);
});

$('body').on('submit', 'form:not(.no_ajax)', function(e){
	e.preventDefault();
	if(caps===true && ($(this).attr('name')=='product_search_form' || $(this).attr('name')=='add_marking_form')) {
		false_alarm();
		show_window('error', '<p class="false">Отключите "Caps Lock" на клавиатуре</p>');
		return;
	}
	send_form(this);
});

// Экранная цифровая клавиатура

// Цифры
$('body').on('click', '.virtual_key', function(e){
	var sel = window.getSelection()+'';
	var el=$('.'+$(this).attr('for')).eq(0);
	if(sel.length>0) {
		el.val($(this).val());
	}
	else {
		el.val(el.val()+$(this).val());
	}
	if(!el.is(':focus')) el.focus();
});

// очистить
$('body').off('click', '.virtual_key_delete');
$('body').on('click', '.virtual_key_delete', function(){
	var el=$(this).attr('for');
	var form=$('.'+el).closest('form');
	$('input[type="text"]', form).val('');
	$('input[type="password"]', form).val('');

	$('select', form).trigger('change');
	$('.'+el).val('');
});

// удалить символ
$('body').on('click', '.virtual_key_bks', function(){
	var val=$('.'+$(this).attr('for')).val();
	val=val.substr(0, val.length-1);
	$('.'+$(this).attr('for')).val(val);
	$('.'+$(this).attr('for')).focus();
});

$('body').on('submit', 'form[name="messages_continue_form"]', function(){
	close_window(this);
});

$('body').off('click', '#smile');
$('body').on('click', '#smile', function(){
	$('body').toggleClass('body_replace');
});

function synchronization_action() {
	$('#synchronization_status').html('');
	var dt = new Date();
	var time = dt.getMinutes();
	if(time%synchronization_timer!=0) return;
	$('#synchronization_status').html('Идет синхронизация...');
	var l='/api/auto';
	if($('.users_list').length>0) {
		l+='?reload=1';
	}

	var url=l;
	var xhr = new XMLHttpRequest();
	xhr.open("GET", url, true);
	xhr.timeout = 65000;
	xhr.onload = () => {
		if(xhr.status===200) {
			var res=xhr.response;
        	try {
    			var res=JSON.parse(res);
        		$('#synchronization_status').html(res.txt);
        		setTimeout('$("#synchronization_status").html("");', 10000);
        		view_remote_receipts(res.remote_receipts);
        		if(typeof res.neworders!=='undefined') {
        			view_new_orders(res.neworders);
        		}
        		if(typeof res.update_stage!=='undefined' && res.update_stage>0) {
        			$('.update_stage').removeClass('hide');
        			$('#clock').addClass('show_window');
        		}
        		else {
        			$('.update_stage').addClass('hide');
        			$('#clock').removeClass('show_window');
        		}
        		if(typeof res.balance!=='undefined') {
        			if(res.balance>0) {
        				$('.receiptlines_div').removeClass('limited_version');
        				if(res.balance_alarm>0) {
	        				$('.receiptlines_div').addClass('balance_alarm');
	        			}
	        			else {
	        				$('.receiptlines_div').removeClass('balance_alarm');
	        			}
	        			if(res.time_alarm==true) {
	        				$('.receiptlines_div').addClass('time_alarm');
	        			}
	        			else {
	        				$('.receiptlines_div').removeClass('time_alarm');
	        			}
        			}
        			else {
        				$('.receiptlines_div').addClass('limited_version');
        			}
        		}

        		if(res.reload) {
        			var user_id=$(res.reload+' select').val();
					$(res.reload).load(location.href+' .reload', function(){
						$(res.reload+' select').val(user_id);
					});
				}
			} catch(e) {
    			$('#synchronization_status').html('');
			}
		}
		else {
			$('#synchronization_status').html('');
		}
	};

	xhr.ontimeout = (e) => {
		$('.receiptlines_div').addClass('offline');
	};
	xhr.send(null);
}

var is_online_n=0;
function isOnline() {
    var url='https://agorta.ru/api/isonline';
	var xhr = new XMLHttpRequest();
	xhr.open("HEAD", url, true);
	xhr.timeout = 3000;
	xhr.onload = () => {
		if(xhr.status===200) {
			$('.receiptlines_div').removeClass('offline');
			is_online_n=0;
   			synchronization_action();
		}
		else {
			is_online_n+=1;
			if(is_online_n>=3) {
				$('.receiptlines_div').addClass('offline');
			}
		}
	};

	xhr.ontimeout = (e) => {
		is_online_n+=1;
		if(is_online_n>=3) {
			$('.receiptlines_div').addClass('offline');
		}
	};

	xhr.onerror = (e) => {
		is_online_n+=1;
		if(is_online_n>=3) {
			$('.receiptlines_div').addClass('offline');
		}
	};

	xhr.send(null);
}

// Автоматическая синхронизация
function synchronization() {
	isOnline();
}

// Запускаем синхронизацию
if(typeof synchronization_start!='undefined' && synchronization_start>0) {
	synchronization();
	setInterval('synchronization()', 75000);
}

// Управляем полным экраном
function exit_fullscreen() {
	if(document.cancelFullScreen) {
    	document.cancelFullScreen();
  	}
  	else if(document.mozCancelFullScreen) {
    	document.mozCancelFullScreen();
  	}
  	else if(document.webkitCancelFullScreen) {
    	document.webkitCancelFullScreen();
  	}
}

function fullscreen() {
	var element=document.documentElement;
	if(element.requestFullScreen) {
    	element.requestFullScreen();
  	}
  	else if(element.mozRequestFullScreen) {
    	element.mozRequestFullScreen();
  	}
  	else if(element.webkitRequestFullScreen) {
    	element.webkitRequestFullScreen();
  	}
}

function toggle_fullscreen() {
	var full=document.fullscreenElement;
	if(full==null) {
		fullscreen();
	}
	else {
		exit_fullscreen();
	}
}

$('body').off('click', '#fullscreen');
$('body').on('click', '#fullscreen', function(){
	toggle_fullscreen();
});

function auto_fullscreen() {
	if((location.pathname=='/receipts/sales' || location.pathname=='/' || location.pathname=='/receipts/return') && $('input[name="auto_fullscreen"]').val()==1) {
		fullscreen();
	}
	else {
		clearInterval(auto_fs);
		return;
	}

	var full=document.fullscreenElement;
	if(full!=null) {
		clearInterval(auto_fs);
	}
}

var auto_fs=setInterval("auto_fullscreen()", 3000);

var auto_close;

function auto_logout_function() {
	auto_logout_timer++;
	if(auto_logout_timer==auto_logout) {
		load_ajax('/users/logout');
	}
}

var auto_logout_timer=0;
if(typeof auto_logout!='undefined' && auto_logout>0) {
	$('body').keypress(function(){
		auto_logout_timer=0;
	});
	$('body').mousemove(function(){
		auto_logout_timer=0;
	});
	setInterval(auto_logout_function, 1000);
}

function auto_remote_fiscalization_function() {
	if($('#remote_receipts_n').html()=='') {
		auto_remote_fiscalization_timer=0;
		return;
	}
	auto_remote_fiscalization_timer++;
	var a=auto_remote_fiscalization-auto_remote_fiscalization_timer;
	$('#countdown').remove();
	if(a>0 && a<=5) {
		var html='<h1>Сейчас что-то произойдет...</h1><p align="center"><big>'+a+'</big></p>';
		show_window('countdown', html);
	}

	if(auto_remote_fiscalization_timer==auto_remote_fiscalization) {
		var href='/receipts/fiscalization/?close=1';
		load_ajax(href);
	}
}

var auto_remote_fiscalization_timer=0;
if(typeof auto_remote_fiscalization!='undefined' && auto_remote_fiscalization>0) {
	$('body').keypress(function(){
		auto_remote_fiscalization_timer=0;
	});
	$('body').mousemove(function(){
		auto_remote_fiscalization_timer=0;
	});
	setInterval(auto_remote_fiscalization_function, 1000);
}

var isCtrl = false;
$(document).keyup(function (e) {
	if(e.which == 17) isCtrl=false;
}).keydown(function (e) {
	if(e.which == 17) isCtrl=true;
	if(e.which == 81 && isCtrl == true) {
		close_all_window();
		$('body').toggleClass('qwerty');
	}
});

$('body').off('click', '.first_menu');
$('body').on('click', '.first_menu', function() {
	$(this).toggleClass('first_menu_hover');
});

$(document).mouseup(function(e) {
	var div=$('.first_menu_hover');
	if(!div.is(e.target) && div.has(e.target).length===0 ) {
		div.removeClass('first_menu_hover');
	}
});

$('body').off('click', '.error_trace_show');
$('body').on('click', '.error_trace_show', function(){
	$('.error_trace', $(this).closest('div')).show();
	$(this).remove();
});

history.pushState( "nohb", null, location.href );
$(window).on( "popstate", function(event){
  	event.preventDefault();
  	history.pushState( "nohb", null, location.href );
  	return false;
});

$('body').off('click', '.virtual_key_eng');
$('body').on('click', '.virtual_key_eng', function(){
	$('.virtual_keyboard .ru').hide();
	$('.virtual_keyboard .eng').show();
});

$('body').off('click', '.virtual_key_ru');
$('body').on('click', '.virtual_key_ru', function(){
	$('.virtual_keyboard .ru').show();
	$('.virtual_keyboard .eng').hide();
});

$('body').off('focus', '.mixed_pay');
$('body').on('focus', '.mixed_pay', function(){
	var form=$(this).closest('form');
	var attr=form.find('.virtual_keyboard input[type="button"]').attr('for');
	if(attr!='mixed_pay_'+$(this).attr('pid')) {
		$(this).select();
	}
	form.find('.virtual_keyboard input[type="button"]').attr('for', 'mixed_pay_'+$(this).attr('pid'));
	form.find('.virtual_keyboard button').attr('for', 'mixed_pay_'+$(this).attr('pid'));
});

// Поиск других касс при работе в совместном режиме
function scan_cashboxes() {
    var url='/multikassa/scan';
	var xhr = new XMLHttpRequest();
	xhr.open("GET", url, true);
	xhr.timeout = 65000;
	xhr.onload = () => {
		if(xhr.status===200) {
			try {
    			var res=JSON.parse(xhr.response);
        		$('#synchronization_status').html(res.txt);
        		setTimeout('$("#synchronization_status").html("");', 10000);
			}
			catch(e) {
    			$('#synchronization_status').html('');
			}
		}
		else {
			$('#synchronization_status').html('');
		}
	};

	xhr.ontimeout = (e) => {
		$('#synchronization_status').html('');
	};
	xhr.send(null);
}

function check_window_table() {
	if($('.receiptlines').length>0) return;
	location.href=location.pathname;
}

$('body').off('click', '.select_all');
$('body').on('click', '.select_all', function(){
	var elems=$(this).attr('data-select');
	$('.'+elems).prop('checked', true);
});

$('body').off('click', '.unselect_all');
$('body').on('click', '.unselect_all', function(){
	var elems=$(this).attr('data-select');
	$('.'+elems).prop('checked', false);
});

function balance_error_wait(s) {
	$('.balance_error_time').html(s);
	if(s>0) {
		setTimeout(balance_error_wait, 1000, s-1);
	}
	else {
		$('#balance_error_wait').remove();
	}
}

function clock() {
	let currentDateTime = new Date();
    let formattedTime = currentDateTime.getHours() + ":" + currentDateTime.getMinutes();
    let h=currentDateTime.getHours();
    if(h<10) h='0'+h;
    let m=currentDateTime.getMinutes();
    if(m<10) m='0'+m;
    $('#clock .h').html(h);
    $('#clock .m').html(m);
}

setInterval(clock, 10000);

function search_dropdown(elem) {
	var div=$(elem).closest('.dropdown');
    $('li', div).addClass('hide_item');
    $('.item_service', div).removeClass('hide_item');
    var val=$(elem).val().toUpperCase();
    val=val.replace(/ /g, '');
    if(val=='') {
    	$('li', div).removeClass('hide_item');
    }
    var li=$('li[data-search*="'+val+'"]', div);
    if(li.length>0) {
        $(li).removeClass('hide_item');
    }
}

$('body').off('keyup change', '.search_dropdown');
$('body').on('keyup change', '.search_dropdown', function(e) {
    e.preventDefault();
    search_dropdown(this);
    if(e.which==13) {
        $(this).val('');
    }
});

$('body').off('click', '.dropdown .first');
$('body').on('click', '.dropdown .first', function(){
	var dropdown=$(this).closest('.dropdown');
	dropdown.toggleClass('dropdown_show');
	$('.search_dropdown', dropdown).focus();
});

$(document).mouseup(function(e) {
	if($('.dropdown').length==0) return;
	if($(e.target).closest(".dropdown_show").length>0) return;
	if($(e.target).closest('.virtual_keyboard').length>0) {
		$('.'+$(e.target).attr('for')).trigger('change');
		return;
	}
	$('.dropdown_show li').removeClass('hide_item');
	$('.dropdown_show .search_dropdown').val('');
	$('.dropdown_show').removeClass('dropdown_show');
});

$('body').off('click', '.dropdown li label');
$('body').on('click', '.dropdown li label', function(){
	var dropdown=$(this).closest('.dropdown');
	dropdown.removeClass('dropdown_show');
	$('.item_select', dropdown).removeClass('item_select');
	$(this).closest('li').addClass('item_select');
	$('.first', dropdown).html($('.item_txt', this).html());
	$('.search_dropdown', dropdown).val('');
	$('.item', dropdown).removeClass('hide_item');
});

$('body').off('click', '.show_div');
$('body').on('click', '.show_div', function() {
	$($(this).attr('data-showdiv')).show();
});

$('body').off('click', '.hide_div');
$('body').on('click', '.hide_div', function() {
	$($(this).attr('data-hidediv')).hide();
});
