;(function($) {
$.fn.extend({
	ekiAutocompleter: function( options) {
		options = $.extend({}, $.EkiAutocompleterSetting, options);
		return this.each(function() {
			$.EkiAutocompleter(this,options)	
		})
	},
	
	ekiAutoChange: function( options){
		options = $.extend({}, $.EkiAutocompleterSetting, options);
		return this.each(function() {
			$.EkiAutoChange(this,options)	
		})
	}
});



$.EkiAutocompleterSetting = {

	removeDaTarget:".js_focus_ballon_target .clr",
	delay: 10,
	url:"",
	url1:"",
	target:".js_focus_ballon_target",
	addTarget:".suggest_section_inner",
	interval:1000,
	targetForm:"#form1",
	isAutoData:false
	
	
};

$.EkiAutocompleter = function(input, options) {

	var KEY = {
		UP: 38,
		DOWN: 40,
		DEL: 46,
		TAB: 9,
		RETURN: 13,
		ESC: 27,
		COMMA: 188,
		PAGEUP: 33,
		PAGEDOWN: 34,
		BACKSPACE: 8
	};
	
		var timeout;
		var $input = $(input);
		var $target  = $input.parent().siblings(options.target);
		var value = $input.val();
		var $kensakuBtn = $input.siblings(":image");
		if(value != null && $.trim(value)) {
			$kensakuBtn.attr("disabled",true);
		}
		var ar = $(":hidden[name=ar]",options.targetForm).val();
		var ra = $(":hidden[name=ra],options.targetForm").val();
		
		$target.hover(
				function(ev){
					$input.unbind("blur.focus_ballon");
				},
				function(ev){
					$input.trigger("focus");
				}
			).hide();
			
		$input.bind("focus.focus_ballon", function(){
			$(this).bind("blur.focus_ballon", function(){
				clear()
				$target.hide();
			})
			
				clear()
				timeout = setInterval(onEkiChange,options.interval);
		});
		
		$input.bind(($.browser.opera ? "keypress" : "keydown") + ".focus_ballon", function(event) {
			options.isAutoData = false;
			clear()
			timeout = setInterval(onEkiChange,options.interval);
		})
		
	function onEkiChange() {
		if($input.val() == "") {
			$target.hide();
		}
		if($input.val() != "" && value != $input.val() && !options.isAutoData) {
			$kensakuBtn.attr("disabled",true);
			value = $input.val(); 
			var dataVal = $(options.targetForm).serialize();
			//var dataVal = 'ar='+ar+"&ra="+ra+"&ekNm="+value;
			$.ajax({
			type: 'post',
				data:dataVal,
				url: options.url,
				success: function(data) {
					$(".ekiSync").remove();
					ekiParse(data)
				}
			});
		}
	};
	
	function clear() {
		try{
			if(timeout)clearInteval(timeout);
		} catch(e) {}
	}
	
	function ekiParse(data) {

		if(null == data || $.trim(data) == "") {
			$target.hide();
			return;
		}
		//Mantis 0014776 2009/08/18 lixin start
		if(null != data && $.trim(data) == "[1Eki]") {
			$target.hide();
			$kensakuBtn.attr("disabled",false);
			return;
		}
		//Mantis 0014776 2009/08/18 lixin end
		var parsed = [];
		
		var rows = eval("(" + data + ")");
		
		var htmlText = "";
		if( rows.length > 0) {
			$kensakuBtn.attr("disabled",false);
		}
		for(var i = 0;i< rows.length;i++) {
			
			if(i % 3 == 0) {
				htmlText += '<ul  class="first_top clr ekiSync" id="ekiSync">';
			}
			var row = $.trim(rows[i]).split(":$$:");
			htmlText += '<li><a href="javascript:void(0);" onclick="$.setEkiText(\''+row[0]+'\',\''+row[1]+'\')">'+row[1]+'</a></li>';

			if((i + 1) % 3 == 0 || i == rows.length) {
				htmlText += '</ul>';
			}
			
		};
		
		var suggest_section_inner = $(options.addTarget);

		suggest_section_inner.html(suggest_section_inner.html()+htmlText);
		$target.show();
	};
	
	$.setEkiText = function(ekicd,ekiNm) {
		options.isAutoData = true;
		$input.val(ekiNm);
		$target.hide();
		$input.attr('readonly','readonly')
		value = $input.val();
		$kensakuBtn.attr("disabled",true);
		//var dataVal = 'ar='+ar+"&ra="+ra+"&ek="+ekicd;
		var dataVal = $(options.targetForm).serialize()+"&ek="+ekicd;
		$.ajax({
			type: 'post',
				data:dataVal,
				url: options.url1,
				success: function(data) {
					$input.removeAttr('readonly');
					if(data != null  && data != "") {
						var datas = data.split("=");
						if(datas.length == 2 ) {
							$kensakuBtn.attr("disabled",false);
						}
					} 
				}
			});
		
	
	};
	
}

$.EkiAutoChange = function(input, options) {

	var KEY = {
		UP: 38,
		DOWN: 40,
		DEL: 46,
		TAB: 9,
		RETURN: 13,
		ESC: 27,
		COMMA: 188,
		PAGEUP: 33,
		PAGEDOWN: 34,
		BACKSPACE: 8
	};
	
		var timeout;
		var $input = $(input);
		var $target  = $input.parent().siblings(options.target);
		var value = $input.val();
		var $kensakuBtn = $input.siblings(":image");
		if(value != null && $.trim(value)) {
			$kensakuBtn.attr("disabled",true);
		}
		
		$target.hover(
				function(ev){
					$input.unbind("blur.focus_ballon");
				},
				function(ev){
					$input.trigger("focus");
				}
			).hide();
			
		$input.bind("focus.focus_ballon", function(){
			$(this).bind("blur.focus_ballon", function(){
				clear()
				$target.hide();
			})
			
				clear()
				timeout = setInterval(onEkChange,options.interval);
		});
		
		$input.bind(($.browser.opera ? "keypress" : "keydown") + ".focus_ballon", function(event) {
			options.isAutoData = false;
			clear()
			timeout = setInterval(onEkChange,options.interval);
		})
		
	function onEkChange() {
		if($input.val() == "") {
			$kensakuBtn.attr("disabled",true);
		}
		if($input.val() != "" && !options.isAutoData) {
			$kensakuBtn.attr("disabled",false);
			value = $input.val(); 
		}
	};
	
	function clear() {
		try{
			if(timeout)clearInteval(timeout);
		} catch(e) {}
	}
	
}

})(jQuery);






