﻿// JScript

function doAction (pK,pTargetID) {
	//var obj1=document.getElementById("demosel");
	if (pK==38)
	{
		SelectTip(0,-1);
	}
	else if (pK==40)
	{
		SelectTip(0,1);
	}
	else if (pK==13 || pK==32)
	{
		SelectText();
	}
	//alert(pK);
    return false;
}

function kH(e) {
	if (!e) var e = window.event;
	var pK, pTargetID;
	if(document.all)//IE
	{
		pK = e.keyCode;
		pTargetID= window.event.srcElement.name;
	}
	else//Not IE
	{
		pK = e.which;
		pTargetID= e.target.name;
	}
	//alert(pTargetID);
	if (pK == 13 || pK == 32 || pK == 38 || pK == 40 ) {
		if (pTargetID=="txt")
		{
			doAction (pK,pTargetID);
			return false;
		}
		 
	}else
	{
		if (pTargetID=="txt")
		{
			SelectTip(0,0);
		}
		//doAction (pK,pTargetID);
		//return false;
	}
}
function CatchKeys ()
{
      if (document.all) {
            //document.onkeypress = kH;
            //document.onkeydown = kH;
			document.onkeyup = kH;
      }
      else{
            //document.onkeydown = kH;
			document.onkeyup = kH;
      }
}
CatchKeys();

var TempArr=[]; 
var SelTipOption=0;
function Init(){
	var SelectObj=document.getElementById("demosel");
	if(SelectObj)
	{
	    for(i=0;i<SelectObj.length;i++)
	    {
		    TempArr[i]=[SelectObj.options[i].text,SelectObj.options[i].value];
	    }
	}
}

function SelectText()
{
	var obj1 =document.getElementById("demosel");
	var txt = document.getElementById("txt");
	var str = txt.value;
	var lt = str.lastIndexOf(";");
	var leftstr="";
	var currentstr = "";
	if (lt>0)
	{
		leftstr = str.substr(0,lt+1);
	}
	if (obj1.selectIndex)
	{
		currentstr = obj1.options[obj1.selectIndex].value;
	}
	else
	{
		currentstr = obj1.options[SelTipOption].value;
	}
	if (leftstr.indexOf(currentstr)>-1)
	{
		txt.value = leftstr;
	}
	else
	{
		txt.value = leftstr + currentstr + ";";
	}
	return false;
}

function OnClickDemo(_selindex)
{
    mcancelclosetime();
	SelTipOption = _selindex;
	SelectText();
	if(document.all)
	    o("txt").focus();
}

function hidedemo()
{
    if (TempArr.length>0)
    mclosetime('demosel');
    /*
    if(document.all){
        if(window.event.srcElement.id != "demosel"){
            o('demo').style.visibility = "hidden";
        }
    }else{
        if(evt.target.id != "demosel"){
            o('demo').style.visibility = "hidden";
        }
    }
    */
}
function showdemo()
{
    if (TempArr.length>0)
    mopen('demo');
    //o('demo').style.visibility = "visible";
}
function SelectTip(flag,selindex){
	//alert(window.event.keyCode);
	var obj1=document.getElementById("demosel");
	var TxtObj=GetRightTextOfSemi(document.getElementById("txt").value);
	//alert(TxtObj);
	var SelectObj=document.getElementById("demo");
	var Arr=[];

	var SelectHTML=SelectObj.innerHTML.match(/<[^>]*>/)[0];
	var j=0;
	if (selindex!=0)
	{
		if (obj1.selectIndex)
		{
			SelTipOption = selindex + obj1.selectIndex;
		}else
		{
			SelTipOption = SelTipOption + selindex;
		}
		if(SelTipOption<0) SelTipOption=0;
		if(SelTipOption>=obj1.length) SelTipOption=obj1.length-1;
	}else{
		SelTipOption=0;
	}

	for(i=0;i<TempArr.length;i++)
	{
		if(TempArr[i][0].indexOf(TxtObj)==0||flag)
		{
			Arr[Arr.length]="<option value='"+TempArr[i][1]+"'" + (j==SelTipOption?" selected=selected":"") + ">"+TempArr[i][0]+"</option>"
			j++;
		}
	}
	SelectObj.innerHTML=SelectHTML+Arr.join()+"</SELECT>"
	//alert(SelectObj.innerHTML);
}
function GetRightTextOfSemi(t1)
{
	var l = t1.lastIndexOf(";");
	if (l==-1)
	{
		return t1.replace(" ","");
	}else
	{
		return (t1.substr(l+1,t1.length-l)).replace(" ","");
	}

}
