﻿// ------- autoAutomatic-------

function inputAuto(objId, str)
{

	this.fucName = str;
	this.obj = $(objId);
	this.num = -1;
	this.fd = false;
	this.checkNum = false;
	this.stop = false;

	this.handEvent = function (evt, obj) {
		this.obj.innerHTML = "";
		this.obj.style.display = "none";
		this.input = obj;
		this.fd = false;
		var value = this.input.value.replace(/(^\s*)|(\s*$)/g, "").replace("\\", "");
		if(value == "") {
			this.obj.style.display = "none";
			return false;
		}

		this.e = evt.keyCode ? evt.keyCode : evt.which;
		var reReg = new RegExp("^" + value + "", "i");
		for(var i=0; i < this.msgArr.length; i++) {
			if(reReg.test(this.msgArr[i])) {
				this.append(this.msgArr[i]);
				this.fd = true;
			}
		}

		if(this.fd) {
			this.obj.style.display = "block";
			if(this.e == 38 || this.e == 40 || this.e == 13) {
				this.keyScroll();
			} else {
				this.num = -1;
			}
		} else {
			if(this.e == 13)
			this.submit();
		}
	}
	
	this.keyScroll = function () {
		this.length = this.obj.getElementsByTagName("li").length;
		
		if( this.e == 40 )
		{
			if(this.num >= 0)
				this.obj.getElementsByTagName("li")[this.num].className = "autoMouseout";
				this.num = (this.num >= this.length -1) ? -1 : (this.num + 1) ;
			if(this.num > -1)
				this.obj.getElementsByTagName("li")[this.num].className = "autoMouseover";
		}

		if( this.e == 38 )
		{
			if(this.num >= 0)
				this.obj.getElementsByTagName("li")[this.num].className = "autoMouseout";
				this.num = (this.num  <= 0) ? ((this.num == 0) ? -1 : this.length -1): (this.num - 1);
			if(this.num > -1)
				this.obj.getElementsByTagName("li")[this.num].className = "autoMouseover";
		}
		
		if( this.e == 13 )
		{
				this.obj.style.display = "none";
				if(this.num >= 0) {
					this.input.value = this.obj.getElementsByTagName("li")[this.num].innerHTML;					
				}
				this.submit();
		}

	}

	this.item = function(arr)
	{
		this.msgArr = arr;
	}

	this.append = function(msg) {
		var fucObj = eval(this.fucName);
		if(!this.obj.getElementsByTagName("ul")[0]) {
			var ul = document.createElement("ul");
			this.obj.appendChild(ul);
		}

		ulObj = this.obj.getElementsByTagName("ul")[0];
		var li = document.createElement("li");
		li.innerHTML = msg;
		li.onmouseover = function () {fucObj.mouseover(this)};
		li.onmouseout = function () {fucObj.mouseout(this)};
		li.onclick = function () {fucObj.dclick(this)};
		li.className = "autoMouseout";

		ulObj.appendChild(li);		
	}

	this.mouseover = function(obj) {
		if(this.num >= 0)
		this.obj.getElementsByTagName("li")[this.num].className = "autoMouseout";
		this.num = -1 ;
		obj.className = "autoMouseover";
	}

	this.mouseout = function(obj) {
		obj.className = "autoMouseout";
	}

	this.dclick = function(obj) {
		this.obj.style.display = "none";
		this.input.value = obj.innerHTML;
		this.submit();
	}

	this.submit = function() {
		this.input = this.input ? this.input : $("SearchKeyWords").getElementsByTagName("input")[0];
		if(this.input.value.replace(/(^\s*)|(\s*$)/g, "") == "") return false;
		IntelligentSearch();
	}

	this.hide = function() {
		setTimeout('$("autoAutomatic").style.display = "none"', 500)
	}
		
}