    var outp1;
	var oldins1;
	var posi1 = -1;
	var words1 = new Array();
	var input1;
	var key1;
    var suggestions1;
    var formatSuggestions1 = new Array();
	function setVisible1(visi){
		var x = document.getElementById("shadow1");
		var t = document.getElementsByName("hp-search")[0];
		x.style.position = 'absolute';
		x.style.top =  (findPosY1(t)+3)+"px";
		x.style.left = (findPosX1(t)+2)+"px";
		x.style.visibility = visi;
	}

	function init1(names){
		
      suggestions1 = names.split(",");
	
		outp1 = document.getElementById("output1");
		window.setInterval("lookAt1()", 100);
		setVisible1("hidden");
		document.onkeydown = keygetter1; //needed for Opera...
		document.onkeyup = keyHandler1;
	}

	function findPosX1(obj)
	{
		var curleft = 0;
		if (obj.offsetParent){
			while (obj.offsetParent){
				curleft += obj.offsetLeft;
				obj = obj.offsetParent;
			}
		}
		else if (obj.x)
			curleft += obj.x;
		return curleft;
	}

	function findPosY1(obj)
	{
		var curtop = 0;
		if (obj.offsetParent){
			curtop += obj.offsetHeight;
			while (obj.offsetParent){
				curtop += obj.offsetTop;
				obj = obj.offsetParent;
			}
		}
		else if (obj.y){
			curtop += obj.y;
			curtop += obj.height;
		}
		return curtop;
	}
	
	function lookAt1(){
	  var nwords = new Array(); 
		var ins = document.getElementsByName("hp-search")[0].value;
		 ins = document.getElementById("hpsearch").value;
		//	  alert(ins);
		if (oldins1 == ins) return;
		else if (posi1 > -1);
		else if (ins.length > 0){
			nwords = getWord1(ins);
			//	 alert("words1.. "+nwords.length);
			if (nwords.length > 0){
					// alert("words1.. "+nwords);
				clearOutput1();
				for (var i=0;i < nwords.length; ++i)
				 addWord1 (nwords[i]);
				setVisible1("visible");
				input1 = document.getElementsByName("hp-search")[0].value;
				
			}
			else{
				setVisible1("hidden");
				posi1 = -1;
			}
		}
		else{
			setVisible1("hidden");
			posi1 = -1;
		}
		oldins1 = ins;
	}
	
	function addWord1(word){
		var sp1 = document.createElement("div");
		sp1.appendChild(document.createTextNode(word));
		sp1.style.background = "white";
		sp1.style.color= "black";
		sp1.style.borderRight = "1px solid #dddddd";
		   sp1.style.borderLeft = "1px solid #dddddd";
		  sp1.style.color= "#666666";
		  sp1.style.padding= "2px";
		  sp1.style.width= "194px";
		  sp1.style.fontSize= "11px";
		  sp1.style.textTransform= "lowercase";
		sp1.onclick = mouseClick1;
		outp1.appendChild(sp1);
		 outp1.style.borderBottom = "1px solid #dddddd";
	}
	
	function clearOutput1(){
		while (outp1.hasChildNodes()){
			noten=outp1.firstChild;
			outp1.removeChild(noten);
		}
		posi1 = -1;
	}
	
	function getWord1(beginning){
	
		words1 = new Array();
		finalwords = new Array();
		var tempsuggestions;
		var matchChar;
		beginning = beginning.toUpperCase();
          	for (var z=0;z < suggestions1.length; ++z){
       	     formatSuggestions1[z] = suggestions1[z].toUpperCase();
         	}
         		/*for (var m=0;m < formatSuggestions1.length; ++m){
       	     	 if (formatSuggestions1[m].charAt(0) == beginning.charAt(0)){
       	          matchChar = true;
       	          break;
       	          }
                 } */
          //alert(formatSuggestions1.length);
		for (var i=0;i < formatSuggestions1.length; ++i){
			var j = -1;
			var correct = 1;
		    var temValue = formatSuggestions1[i];
			//work for more than one word and char not matches
			//alert("first .. "+temValue +" compare.."+beginning.charAt(0));

				 if ((temValue.charAt(0) != beginning.charAt(0)))
			  {
			  
					var tempSplitData = temValue.split(' ');
					// alert("inside if.."+tempSplitData.length);
					if(tempSplitData.length  > 1){
				
							  for(var k=0; k<tempSplitData.length; k++){
						  	    var b = tempSplitData[k].charAt(0);
						  	    // alert("inside if.b."+b);
						  	     //alert("inside if.."+tempSplitData[k]);
						  	     	      if(b  == beginning){
						  	     //  document.write(" temValue \n"+temValue);
						  	    // alert("inside if.."+tempSplitData[k]);
						        // for(var z=0; z<tempSplitData.length; z++){
						         // var c = tempSplitData[z].charAt(0);
						           //alert("inside if.."+tempSplitData[z]);
						           words1[words1.length] = temValue;
						           //  getSWord(temValue.charAt(0),words1);
						           //  matchChar = true;
						           //  }
						          //  break;
						            }
					          }
					    }
				   //end 
				  }
				  else{
							while (correct == 1 && ++j < beginning.length){
								if (temValue.charAt(j) != beginning.charAt(j)) correct = 0;
				
							}
							if (correct == 1){
							      words1[words1.length] = temValue;
							      }
					    }		          
			          //end of else
		   }
		finalwords =  unique1(words1);
		//  alert("final words1 length "+finalwords.length);
		
		return finalwords;
	}
	

	function unique1(a) {
      var r = new Array();
       o:for(var i = 0, n = a.length; i < n; i++) {
      for(var x = 0, y = r.length; x < y; x++)
         if(r[x]==a[i]) continue o;
      r[r.length] = a[i];
   }
   return r;
}
	function setColor1 (_posi, _color, _forg){
		outp1.childNodes[_posi].style.background = _color;
		outp1.childNodes[_posi].style.color = _forg;
	}
	
	function keygetter1(event){
		if (!event && window.event) event = window.event;
		if (event) key1 = event.keyCode;
		else key1 = event.which;
	}
		
	function keyHandler1(event){
		if (document.getElementById("shadow1").style.visibility == "visible"){
		var textfield = document.getElementsByName("hp-search")[0];
		if (key1 == 40){ //Key down
			//alert (words1);
			if (words1.length > 0 && posi1 !=  words1.length-1){
						if (posi1 >=0) setColor1(posi1, "#fff", "black");
				else input1 = textfield.value;
				setColor1(++posi1, "blue", "white");
				textfield.value = outp1.childNodes[posi1].firstChild.nodeValue;
			}
		}
		else if (key1 == 38){ //Key up
			if (words1.length > 0 && posi1 >= 0){
				if (posi1 >=1){
					setColor1(posi1, "#000", "black");
					setColor1(--posi1, "blue", "white");
					textfield.value = outp1.childNodes[posi1].firstChild.nodeValue;
				}
				else{
					setColor1(posi1, "#000", "black");
					textfield.value = input1;
					textfield.focus();
					posi1--;
				}
			}
		}
		else if (key1 == 27){ // Esc
			textfield.value = input1;
			setVisible1("hidden");
			posi1 = -1;
			oldins1 = input1;
		}
		else if (key1 == 8){ // Backspace
			posi1 = -1;
			oldins1=-1;
		}
		}
	}
	
	var mouseHandler=function(){
		for (var i=0; i < words1.length; ++i)
			setColor1 (i, "white", "black");
	
		this.style.background = "blue";
		this.style.color= "white";
	}
	
	var mouseHandlerOut=function(){
		this.style.background = "white";
		this.style.color= "black";
	}
	
	var mouseClick1=function(){
		document.getElementsByName("hp-search")[0].value = this.firstChild.nodeValue;
		setVisible1("hidden");
		posi1 = -1;
		oldins1 = this.firstChild.nodeValue;
		document.getElementsByTagName("input").value = "";
	}
	 function clearfields(){
    document.getElementsByName("hp-search")[0].value = "";
    }
