/*
function suckerfish(fun, tag, parentId){
	if (window.attachEvent){
		window.attachEvent("onload", function(){
			var objs = (parentId==null)?document.getElementsByTagName(tag):document.getElementById(parentId).getElementsByTagName(tag);
			fun(objs);
		});
	}
}
sfFocus=function(objs){
	for (var i=0; i<objs.length; i++)
	{
		objs[i].onfocus=function(){
			if(this.type=="button")
				return;
			this.className+=" focus";
			if( this.value == this.defaultValue ) { this.value = ""; }
		}
		objs[i].onblur=function(){
			this.className=this.className.replace(new RegExp(" focus\\b"), "");
			if( this.value == "" ) { this.value = this.defaultValue; }
		}
	}
}
suckerfish(sfFocus, "INPUT");
suckerfish(sfFocus, "TEXTAREA"); 
suckerfish(sfFocus, "SELECT");

tipArrList.sort(function(a,b){
	if(a.length>b.length)return 1;
	else if(a.length==b.length)return a[0].localeCompare(b[0]);
	else return -1;
})
*/

function promptList(arrList,objInputId,objInputAppendix){
	var tipArrList = arrList;
	if (tipArrList.constructor!=Array){
		alert('smanPromptList初始化失败:第一个参数非数组!');
		return;
	}
	
	var objouter=document.getElementById("__tipDisp") // 显示的DIV对象
	var objouterAppendix=document.getElementById("__tipDispAppendix"); // 附属DIV
	var objInput=document.getElementById(objInputId); // 文本框对象
	var objAppendix=document.getElementById(objInputAppendix); // 附属文本框
	
	var selectedIndex=-1;
	var intTmp; //循环用
	if (objInput==null) {alert('初始化失败:没有找到"'+objInputId+'"文本框');return ;}
	// 文本框失去焦点
	objInput.onblur=function(){
		objouter.style.display='none';
	}
	window.onfocus=function(){
		objouter.style.display='none';
	}
	//文本框按键抬起
	objInput.onkeyup=checkKeyCode;
	//文本框得到焦点
	objInput.onfocus=checkAndShow;
	
	function checkKeyCode(){
		var ie = (document.all)? true:false
		if (ie){
			var keyCode=event.keyCode
			if (keyCode==40||keyCode==38){ //下上
				var isUp=false
				if(keyCode==40)
					isUp=true ;
				chageSelection(isUp)
			}else if (keyCode==13){//回车
				outSelection(selectedIndex);
			}else{
				checkAndShow()
			}
		}else{
			checkAndShow()
		}
		divPosition()
	}
	function checkAndShow(){
		var strInput = objInput.value
		if (strInput!=""){
			divPosition();
			selectedIndex=-1;
			objouter.innerHTML="";
			objouterAppendix.innerHTML="";
			for (intTmp=0;intTmp<tipArrList.length;intTmp++){
				if (tipArrList[intTmp][0].substr(0, strInput.length).toUpperCase()==strInput.toUpperCase()){
					addOption(tipArrList[intTmp][0],strInput,tipArrList[intTmp][1]);
				}
			}
			objouter.style.display='';
		}else{
			objouter.style.display='none';
		}
		//向下拉列表里添加匹配项
		function addOption(value,keyw,valueAppendix){
			var v=value.replace(keyw,"<b><font color=red>"+keyw+"</font></b>");
			objouter.innerHTML +="<div style=\"line-height:1.5\" onmouseover=\"this.className='tipSelectedStyle'\" onmouseout=\"this.className=''\" onmousedown=\"document.getElementById('"+objInputId+"').value='" + value + "';document.getElementById('"+objInputAppendix+"').value='"+valueAppendix+"';window.focus();\">" + v + "</div>" 
			objouterAppendix.innerHTML+="<div>" + valueAppendix + "</div>";
		}
	}
	function chageSelection(isUp){
		if (objouter.style.display=='none'){
			objouter.style.display='';
		}else{
			if (isUp)
			  selectedIndex++
			else
			  selectedIndex--
			}
			var maxIndex = objouter.children.length-1;
			if (selectedIndex<0){selectedIndex=0}
			if (selectedIndex>maxIndex) {selectedIndex=maxIndex}
			for (intTmp=0;intTmp<=maxIndex;intTmp++){
			if (intTmp==selectedIndex){
			  objouter.children[intTmp].className="tipSelectedStyle";
			}else{
			  objouter.children[intTmp].className="";
			}
		}
	}
	function outSelection(Index){
		if(!objouter.children[Index])return;
		objInput.value = objouter.children[Index].innerText;
		objouter.style.display='none';
		objAppendix.value=objouterAppendix.children[Index].innerText;
	}
	//显示下拉列表项
	function divPosition(){
		objouter.style.top =getAbsoluteHeight(objInput)+getAbsoluteTop(objInput);
		objouter.style.left =getAbsoluteLeft(objInput); 
		objouter.style.width=getAbsoluteWidth(objInput)
	}	

	function getAbsoluteHeight(ob){
		return ob.offsetHeight
	}
	function getAbsoluteWidth(ob){
		return ob.offsetWidth
	}
	function getAbsoluteLeft(ob){
		var s_el=0;el=ob;while(el){s_el=s_el+el.offsetLeft;el=el.offsetParent;}; return s_el
	}
	function getAbsoluteTop(ob){
		var s_el=0;el=ob;while(el){s_el=s_el+el.offsetTop ;el=el.offsetParent;}; return s_el
	}
}

var __smanDispStyle = "background:#eeeeee;border: 1px solid #CCCCCC;font-size:14px;cursor: default;"
document.write("<div id='__tipDisp' style='position:absolute;display:none;" + __smanDispStyle + "'> </div>");
document.write("<div id='__tipDispAppendix' style='position:absolute;display:none;'> </div>");
document.write("<style>.tipSelectedStyle{background-Color:#102681;color:#FFFFFF}</style>");
