var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));



var beanType = 2;
var menuItemArray = new Array();
var menuItemSelectIndex = -1;
var lastRequest = "";

function SB_SetBeanType(type){
	beanType = type;
}

function SB_ShowMenu(ctrlID, show){
	var menu = document.getElementById(ctrlID + "_Menu");
	
	if(show){
		var btn = document.getElementById(ctrlID + "_TextBox");
		if(btn){
			var x = btn.offsetLeft;
			var y = btn.offsetTop;
			while(btn = btn.offsetParent){
				x += btn.offsetLeft;
				y += btn.offsetTop;
			}
			menu.style.left = x;
			menu.style.top = y + 22;
		}
		menu.style.display = "block";
	}
	else{
		menu.style.display = "none";
	}
}

function SB_OnDropDown(ctrlID){
	lastRequest = "";
	SB_LoadMenuItemArray(ctrlID);
	document.getElementById(ctrlID + "_TextBox").focus();
}

function SB_OnBlur(ctrlID, event){
	SB_ShowMenu(ctrlID, false);
}

function SB_OnKeyDown(ctrlID, event){
	if(event.keyCode == 13 || event.keyCode == 24) return false
	else return true;
}

function SB_OnKeyUp(ctrlID, event){
	var returnValue = false;
	switch(event.keyCode){
		case 38: // UP
			SB_SetMenuItemSelectIndex("OFFSET", -1);
			SB_RebuildMenuSelection(ctrlID);
			break;
			
		case 37: // LEFT
			SB_SetMenuItemSelectIndex("OFFSET", -1);
			SB_RebuildMenuSelection(ctrlID);
			break;
			
		case 40: // DOWN
			SB_SetMenuItemSelectIndex("OFFSET", 1);
			SB_RebuildMenuSelection(ctrlID);
			break;
			
		case 39: // RIGHT
			SB_SetMenuItemSelectIndex("OFFSET", 1);
			SB_RebuildMenuSelection(ctrlID);
			break;
			
		case 13: // ENTER
			SB_SelectMenuItem(ctrlID);
			break;
			
		case 24: // ESC
			SB_ShowMenu(ctrlID, false);
			break;
			
		case 8: // BACKSPACE
			SB_LoadMenuItemArray(ctrlID);
			returnValue = true;
			break;
		
		default:
			SB_LoadMenuItemArray(ctrlID);
			returnValue = true;
			break;
	}
	return returnValue;
}

function SB_SelectMenuItem(ctrlID){
	var text = "";
	var menu = document.getElementById(ctrlID + "_Menu");
	var menuItemList = menu.childNodes;
	for(var i=0; i< menuItemList.length; i++){
		if(i == menuItemSelectIndex){
			text = menuItemList[i].innerText;
			break;
		}
	}
	
	if(text != "") document.getElementById(ctrlID + "_TextBox").value = text;
	
	SB_ShowMenu(ctrlID, false);
	return false;
}

function SB_SetMenuItemSelectIndex(action, index){
	if(action == "SET")
		menuItemSelectIndex = index;
	if(action == "OFFSET")
		menuItemSelectIndex += index;
		
	if(menuItemSelectIndex < 0) menuItemSelectIndex = menuItemArray.length -1;
	if(menuItemSelectIndex >= menuItemArray.length) menuItemSelectIndex = 0;
}

function SB_RebuildMenu(ctrlID){
	var html = "";
	for(var i=0; i<menuItemArray.length; i++){
		html += "<div";
		html += " onClick=\"SB_SelectMenuItem('" + ctrlID + "', '" + menuItemArray[i] + "');\"";
		html += " onMouseOver=\"SB_SetMenuItemSelectIndex('SET', " + i + "); SB_RebuildMenuSelection('" + ctrlID + "');\"";
		html += " onBlur=\"return SB_ShowMenu('" + ctrlID + "', true);\"";
		html += ">";
		html += menuItemArray[i];
		html += "</div>";
	}
	document.getElementById(ctrlID + "_Menu").innerHTML = html;
	
	menuItemSelectIndex = -1;
}

function SB_RebuildMenuSelection(ctrlID){
	var menu = document.getElementById(ctrlID + "_Menu");
	var menuItemList = menu.childNodes;
	for(var i=0; i< menuItemList.length; i++){
		if(i == menuItemSelectIndex) menuItemList[i].className = "MB_MenuSelectedItem";
		else menuItemList[i].className = "";
	}
}

function SB_LoadMenuItemArray(ctrlID){
	if(lastRequest == beanType + document.getElementById(ctrlID + "_TextBox").value){
		return;
	}
	else{
		lastRequest = beanType + document.getElementById(ctrlID + "_TextBox").value;
	}
	
	var httpRequest = SB_GetHttpRequest();
	httpRequest.onreadystatechange = function()
	{
		if(httpRequest.readyState == 1)// 开始加载
		{
			//html = "数据载入中...";
		}
		if(httpRequest.readyState == 4)	// 调用完毕
		{
			if(httpRequest.status == 200) // 加载成功
			{
				var xmldoc = httpRequest.responseXML;

				var listItems = xmldoc.getElementsByTagName("listItem");
				var showMenuNeeded = false;
				
				menuItemArray = new Array();
				for(var i=0; i<listItems.length; i++)
				{
					showMenuNeeded = true;
					var text = listItems[i].attributes[0].value;
					menuItemArray[menuItemArray.length] = text; // read a menu item
				}
				
				if(showMenuNeeded){
					SB_RebuildMenu(ctrlID);
					SB_ShowMenu(ctrlID, true);
				}
				else{
					SB_ShowMenu(ctrlID, false);
				}
			}
			/*
			else{
				html = "请求数据失败...";
			}
			*/
		}
	}
	// var url = "/ModuleData?id=" + moduleID + "&ref=" + new Date().valueOf();
	//var url = "/Controls/SmartBox?type=" + beanType + "&ctrlID=" + ctrlID + "&keyword=" + escape(document.getElementById(ctrlID + "_TextBox").value) + "&rnd=" + new Date().valueOf();
	//var url = "images/SmartBox.xml";
	var url="/AutoComplete.asp?keywords=" + escape(document.getElementById(ctrlID + "_TextBox").value);
	httpRequest.open("get", url, true);
	httpRequest.send(null);
}

function SB_GetHttpRequest(){
	var httpRequest;
	if (window.XMLHttpRequest){ // Mozilla, Safari,...
		httpRequest = new XMLHttpRequest();
		if (httpRequest.overrideMimeType){
			httpRequest.overrideMimeType('text/xml');
		}
	}
	else if (window.ActiveXObject){ // IE
		try{
			httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e){
			try {
				httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch(e){}
		}
	}
	return httpRequest;
}



