/*<![CDATA[*/ 		
		var j=-1;
		var temp_str;
		
		// get html element by id
		var $=function(node){
			return document.getElementById(node);
		    }
	    // get html element by tag name
		var $$=function(node){
			return document.getElementById('suggest').getElementsByTagName(node);
		    }
			
		var $$$=function(node){
			return document.getElementsByTagName(node);
		    }	

        
		var debugMode = true;
		var xmlhttp;

		function ajax_keyword(){
				
				  xmlhttp=creatXmlHttpObject();
				  if (xmlhttp==null){
				//	  alert ("Your browser does not support AJAX!");
					  return;
				   } 
					
				  try {			
						  var strKeyword;	
						  strKeyword = $("keyword").value;
						  strKeyword = strKeyword.replace(/&/g,"%26");  //"%26" instead of "&"  , g means global replace
						  strKeyword = strKeyword.replace("+","%2B");
						  strURL = "/search-suggest.asp?keyword=" + strKeyword;
						  strURL = encodeURI(strURL);  //
						  xmlhttp.open("Get",strURL, true);
						  xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');	
						  xmlhttp.onreadystatechange = handleGettingSuggestions;
						  xmlhttp.send(null); 	

					}
		
				  catch(e){displayError("Can't connect to server:\n" + e.toString());}
		 }


		function creatXmlHttpObject()	{
				  
				  var xmlhttp=null;
				  try
				  {
					// try to create XMLHttpRequest object
					xmlhttp = new XMLHttpRequest();
				  }
				  catch(e)  {
					// assume IE6 or older
					var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
													"MSXML2.XMLHTTP.5.0",
													"MSXML2.XMLHTTP.4.0",
													"MSXML2.XMLHTTP.3.0",
													"MSXML2.XMLHTTP",
													"Microsoft.XMLHTTP");
					// try every prog id until one works
					for (var i=0; i<XmlHttpVersions.length && !xmlhttp; i++) 
					{
					  try 
				 
					  { 
						// try to create XMLHttpRequest object
						xmlhttp = new ActiveXObject(XmlHttpVersions[i]);
					  } 
					  catch (e) {}
					}
				  }
				  
				  // return the created object or display an error message
				  if (!xmlhttp) {
				//	   alert("Error creating the XMLHttpRequest object.");
				       return;
					 }
				  else {
					 return xmlhttp;
				  }
		 }


		function handleGettingSuggestions(){

				  if (xmlhttp.readyState==4 || xmlhttp.readyState=="complete"){
						if (xmlhttp.status==200){
							try {
								var data=xmlhttp.responseText;
								// if any server error?
								if (data.indexOf("ERRNO") >= 0 || data.indexOf("error:") >= 0 || data.length == 0)
								throw(data.length == 0 ? "Void server response." : data);
								$("suggest").innerHTML=data;
								j=-1;
							   }
							catch(e)
							   {
								// display the error message
								displayError(e.toString()); 
							   }  										
							}
						else
						   {
						    displayError("There was a problem retrieving the data:\n" + xmlhttp.statusText);
						   }
				  }
			//	  else if (xmlhttp.readyState==1 || xmlhttp.readyState=="loading") {
           	//			$("suggest").innerHTML="loading" ;
       		//	  }

			   }



		function displayError(message){
			  	// display error message, with more technical details if debugMode is true
			 // 	alert("Error accessing the server! "+ (debugMode ? "\n" + message : ""));
			return;
			}
		 
		
		// keycode:arrow up=38; arrow down=40
		function keyupdeal(e){
			var keyc;
			if(window.event){
				keyc=e.keyCode;
				}
			else if(e.which){
				keyc=e.which;
				}
			if(keyc!=40 && keyc!=38){
				ajax_keyword();
				temp_str=$("keyword").value;
			    }
			}
         
		 // higlite the style when mouseover this value (i is a value of Li, all i are white background)
		function set_style(num){
			
			for(var i=0;i<$$("li").length;i++){
				var li_node=$$("li")[i];
				li_node.className="";
			   }
			
			//j will be highlited when mouse on J.(onmouseover=""), and off j off highlighted  
			if(j>=0 && j<$$("li").length){
			     var i_node=$$("li")[j];
				 i_node.className="select";
				}
			}
		
		// display style when the mouseover: mouse over the variable is J 	
		function mo(nodevalue){
			j=nodevalue;
			set_style(j);
		    }
		
		// submit the highlited value from drop down list
		function form_submit(){
			if(j>=0 && j<$$("li").length){
				
				var li_nodes = $$("li")[j];
				var li_nodes_value = li_nodes.innerText || li_nodes.textContent;			
				
				//	$$$("input")[2].value=$$("li")[j].childNodes[0].nodeValue;		   // this list box is the first "input" on the homepage		
					
				$$$("input")[0].value = li_nodes_value;	
				}
		//	document.search.submit();	
		    }
		
		// don't display drop down list cause no keywords inputed
		function hide_suggest(){
			var nodes=document.body.childNodes;
			for(var i=0;i<nodes.length;i++){
				if(nodes[i]!=$("keyword")){
					$("suggest").innerHTML="";
					}
				}
			}
			
		// keycode:arrow up=38; arrow down=40	
		 function keydowndeal(e){		
			var keyc;
			if(window.event){
				keyc=e.keyCode;
				}
			else if(e.which){
				keyc=e.which;
				}	
			if(keyc==40 || keyc==38){
				  if(keyc==40){
					if(j<$$("li").length){
						j++;
						if(j>=$$("li").length){
							j=-1;
						}
					}
					if(j>=$$("li").length){
							j=-1;
						}
				  }			  
				 if(keyc==38){
					if(j>=0){
						j--;
						if(j<=-1){
							j=$$("li").length;
						}
					 }
					else{
						j=$$("li").length-1;
					}
				  }
			  
			set_style(j);
			
			if(j>=0 && j<$$("li").length){
				 var li_nodes = $$("li")[j];
			     var li_nodes_value = li_nodes.innerText || li_nodes.textContent;	
				 $("keyword").value = li_nodes_value;
			//	$("keyword").value=$$("li")[j].childNodes[0].nodeValue;
				}
			else{
				$$("li").value=temp_str;
				}
			}
		}
		
		/*]]>*/
