document.getElementsByType = function(sTypeValue,oBox) 
{
	 this.d= oBox || document;
	 var children = this.d.getElementsByTagName('*') || document.all;
	 var elements = new Array();
	 for (var i = 0; i < children.length; i++) 
	 {
		 if (children[i].type == sTypeValue) 
		 {
		 	elements.push(children[i]);
		 }
	 }
	 return elements;
}
document.onclick=function(){
ME.divHide();  
}
var isClose=true;
var timer;
document.onkeydown=function(event)
{
	var theEvent  = window.event;
		if(!theEvent){theEvent=event;}
		var	code=theEvent.which; 
		if(code==undefined){code=theEvent.keyCode;}
    if (code == 13)
    {
        theEvent.returnValue=false;
        theEvent.cancel = true;
        ME.divHide();
    } 
}
function hideDiv(){if(isClose){ME.divHide();clearTimeout(timer);}}
function mathchingEngine()
{
	this.source;
	this.left=0;
	this.top=0;
	this.width=0;
	this.current=-1;
	this.flag=true;
	this.matching=function(source,event)
	{
		this.source=source;
		this.source.onmouseout=function()
		{
			timer=setTimeout("hideDiv()",500);
			isClose=true;
		};
		if(this.source.options.length==1){return ;}
		this.getPosition();
		this.matchingResult(event);
	};
	this.matchingShow=function()
	{
			this.deleteRows();
			var text=this.source;
			var blur=new Array();
			var inner=new Array();
			for(var i=0;i<text.options.length;i++)
			{
				blur.push(text.options[i].text);
				inner.push(text.options[i].value);
			}
			if(blur.length<=1){	return ;}
			else{
				var strHtml;
				var j=0;
				for(;j<blur.length;j++)
				{
					var newRow=TextList.insertRow(TextList.rows.length);
					newRow.point=TextList.rows.length-1;
					if(text.value==inner[j])
					{newRow.style.background='#3366cc';newRow.style.color="#FFF";}
					newRow.onmouseover=function(){
					ME.clearSpark();
					ME.current=this.point;
					this.style.background='#3366cc';
					this.style.color="#FFF";
					isClose=false;
					};
					var newCell=TextList.rows(newRow.rowIndex).insertCell(newRow.cells.length);
					newCell.style.width="100%";
					newCell.style.whiteSpace="nowrap";
					newCell.style.padding ="1px 0px 1px 0px";
					newCell.align="left";
					newCell.value=inner[j];
					newCell.point=TextList.rows.length-1;
					newCell.onclick=function(){
					ME.current=this.point;
					ME.source.value=this.value;
					ME.divHide();
					ME.source.fireEvent("onchange");
					};
					newCell.innerHTML="&nbsp;"+blur[j]+"&nbsp;";
				}
				if(j<24)
				{
					var MatchShield=$('MatchShield');
					MatchShield.style.height="";
					MatchShield.style.overflowY="";
				}else
				{
					var MatchShield=$('MatchShield');
					//MatchShield.style.height="250px";
					MatchShield.style.whiteSpace="nowrap";
					MatchShield.style.overflowY="auto";
					MatchShield.style.scrollbarFaceColor="";
					MatchShield.style.scrollbarHighlightColor="";
					MatchShield.style.scrollbarShadowColor="";
					MatchShield.style.scrollbar3dLightColor="";
					MatchShield.style.scrollbarArrowColor="";
					MatchShield.style.scrollbarTrackColor="";
					MatchShield.style.scrollbarDarkShadowColor="";
					MatchShield.style.scrollbarBaseColor="";												
				}
				this.divShow();
			}
	};
	this.matchingResult=function(event)
	{
		var MatchShield=$('MatchShield');	
		var TextList=$('TextList');
		var theEvent  = window.event;
		if(!theEvent){theEvent=event;}
		var	code=theEvent.which; 
		if(code==undefined){code=theEvent.keyCode;}
		if(document.activeElement.id=='searchText'){return;}
		if(code!=0)
		{
			if(code==38 || code==40)
			{alert(0);
				if(MatchShield.style.display==""){ME.spark(MatchShield,TextList,event);}
				else{this.matchingShow();ME.spark(MatchShield,TextList,event);}
			}
		}
		else{this.matchingShow();}	
	};
	this.spark=function(MatchShield,TextList,event)
	{
		var theEvent  = window.event;
		if(!theEvent){theEvent=event;}
		var	code=theEvent.which; 
		if(code==undefined){code=theEvent.keyCode;}
	    switch  (code)
	    { 
	        case  38:
				if(ME.current>0){ME.current-=1;}
				else{ME.current=TextList.rows.length-1;}
				ME.changeItem(TextList);
				ME.changeScroll(0,MatchShield,TextList);
				code=0;
	    		theEvent.returnValue=false;
	            break; 
	        case   40: 
				if(ME.current<TextList.rows.length-1){ME.current+=1;}
				else{ME.current=0;}
				ME.changeItem(TextList);
				ME.changeScroll(1,MatchShield,TextList);
				code=0;   				
	   			theEvent.returnValue=false;
	            break; 
	        default : 
	            break; 
	    } 
	};
	this.changeScroll=function(caret,MatchShield,TextList)
	{
		if(caret==1)
		{
			if(ME.current*16>MatchShield.clientHeight && ME.current<TextList.rows.length)
			{MatchShield.scrollTop+=16;}else{MatchShield.scrollTop=0;}
		}else
		{
			if(MatchShield.scrollTop>ME.current*16 && ME.current>-1)
			{MatchShield.scrollTop-=16;}else{MatchShield.scrollTop=MatchShield.clientHeight;}
		}
	};
	this.changeItem=function(TextList)
	{
		for(var i=0;i<TextList.rows.length;i++)
		{
			if(i==ME.current)
			{TextList.rows[i].style.background='#3366cc';TextList.rows[i].style.color="#FFF";}
			else{TextList.rows[i].style.background='#FFFFFF';TextList.rows[i].style.color="#7F9DB9";}
		}	
	};
	this.clearSpark=function()
	{
		var TextList=$('TextList');	
		for(var i=0;i<TextList.rows.length;i++)
		{TextList.rows[i].style.background='#FFFFFF';TextList.rows[i].style.cursor='hand';TextList.rows[i].style.color="#000";}	
	};
	this.divHide=function()
	{
		var MatchShield=$('MatchShield');
		MatchShield.style.borderTop=" 0px solid #7F9DB9";
		MatchShield.style.borderLeft=" 0px solid #7F9DB9";
		MatchShield.style.borderRight=" 0px solid  #7F9DB9";
		MatchShield.style.borderBottom=" 0px solid #7F9DB9";
		MatchShield.style.display="none";
		MatchShield.style.height="";
		MatchShield.style.overflowY="";
		ME.current=-1;
	};
	this.divShow=function()
	{
		isClose=false;
		ME.flag=true;this.width=0;
		var MatchShield=$('MatchShield');
		MatchShield.style.borderTop=" 1px solid #7F9DB9";
		MatchShield.style.borderLeft=" 1px solid #7F9DB9";
		MatchShield.style.borderRight=" 1px solid #7F9DB9";
		MatchShield.style.borderBottom=" 1px solid #7F9DB9";
		if(ME.source.id.indexOf("to")>-1){this.left+=17;}
		//if(ME.source.id.indexOf("degree1")>-1){this.left+=2;}
		var browser=navigator.appName 
		var b_version=navigator.appVersion 
		var version=b_version.split(";"); 
		var trim_Version=version[1].replace(/[ ]/g,""); 
		if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE6.0") 
		{this.top+=7;this.width+=6;this.left+=2;} 
		else if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE8.0") 
		{
			this.top+=6;this.left+=4.5;
		}
		else{this.top+=7;this.left+=4}
		
		MatchShield.style.left=this.left+"px";
		MatchShield.style.top=(this.top+this.source.offsetHeight)+"px";
		
		MatchShield.style.width=this.source.offsetWidth+this.width-3+"px";
		//MatchShield.style.width=this.source.offsetWidth+5+"px";
		MatchShield.style.display="";
		
};
	this.deleteRows=function ()
	{	var contentTable=$('TextList');
		for(var i=0;i<contentTable.rows.length;i++){contentTable.deleteRow(i);	i--;}
	};
	this.getPosition=function()
	{
		this.left=0;
		this.top=0;
		var parent=this.source;
		var nodes=$('searchPosition').childNodes;
		for(var i=0;i<nodes.length;i++)
		{
			if(nodes[i]!=parent)
			{
				if(nodes[i].tagName=="SCRIPT")
				{
					continue;
				}else
				{
					if(nodes[i].tagName==undefined)
					{
						this.left+=3;
					}else
					{
						this.left+=nodes[i].offsetWidth==NaN ? 0 : nodes[i].offsetWidth;
					}
				}
			}else
			{
				break;
			}
		}
		this.left+=3*4-5;
		while(parent=parent.offsetParent)
		{			
			this.left+=parent.offsetLeft+parent.clientLeft;
			this.top+=parent.offsetTop;
		}		
	};
	this.createDiv=function()
	{
		var MatchShield = document.createElement("DIV");
		MatchShield.id = "MatchShield";
		MatchShield.style.position = "absolute";
		MatchShield.style.left = "0px";
		MatchShield.style.top = "0px";
		MatchShield.style.background = "#FFFFFF";
		MatchShield.style.textAlign = "center";
		MatchShield.style.zIndex = "500";
		MatchShield.style.opacity = 0;
		MatchShield.style.display="none";
		MatchShield.style.overflowX="hidden";
		MatchShield.onmouseout=function (){
		if(event.toElement)if(!this.contains(event.toElement))
		this.style.display="none";
	};	
		var contentTable=document.createElement("TABLE");
		contentTable.border="0";
		contentTable.style.width="100%";
		contentTable.style.whiteSpace="nowrap";
		contentTable.cellSpacing="0px";
		contentTable.cellPadding="0px";
		contentTable.style.fontSize="12px";
		contentTable.id="TextList";
		MatchShield.appendChild(contentTable);
		document.body.appendChild(MatchShield);
	};
	this.shield=function()
	{
		var e=window.event | e;
		e.cancelBubble=true;
		e.returnValue=false;
		return false;
	}
}