
function getNextFormField(field){var i;for(i=0;i<field.form.elements.length;i++){if(field==field.form.elements[i]){break;}}
i=(i+1)%field.form.elements.length;return(field.form.elements[i]);}
function autoCompleteDB(){this.aNames=new Array();this.aTitles=new Array();};autoCompleteDB.prototype.assignArray=function(aList,aList2){this.aNames=aList;this.aTitles=aList2;};autoCompleteDB.prototype.getMatches=function(str,aList,aIDs,aTitleList,maxSize){var ctr=0;for(var i in this.aNames){if(this.aNames[i].toLowerCase().indexOf(str.toLowerCase())==0){aList.push(this.aNames[i]);aIDs.push(i);aTitleList.push(this.aTitles[i]);ctr++;}
if(ctr==(maxSize-1))
break;}};function autoComplete(aNames,aTitles,oText,oDiv,maxSize,eChange,allowBlur){this.oText=oText;this.oDiv=oDiv;this.maxSize=maxSize;this.cur=-1;this.echange=eChange;this.db=new autoCompleteDB();this.db.assignArray(aNames,aTitles);oText.onkeyup=this.keyUp;oText.onkeydown=this.keyDown;oText.onkeypress=this.keyPress;oText.autoComplete=this;if(allowBlur)oText.onblur=this.hideSuggest;};autoComplete.prototype.hideSuggest=function(){if(this.oDiv)this.oDiv.style.visibility="hidden";};autoComplete.prototype.selectText=function(iStart,iEnd){if(this.oText.createTextRange)
{var oRange=this.oText.createTextRange();oRange.moveStart("character",iStart);oRange.moveEnd("character",iEnd-this.oText.value.length);oRange.select();}
else if(this.oText.setSelectionRange)
{this.oText.setSelectionRange(iStart,iEnd);}
this.oText.focus();};autoComplete.prototype.textComplete=function(sFirstMatch,sFirstIndex){if(this.oText.createTextRange||this.oText.setSelectionRange){var iStart=this.oText.value.length;this.change(sFirstMatch,sFirstIndex);this.selectText(iStart,sFirstMatch.length);}};autoComplete.prototype.keyDown=function(oEvent){oEvent=window.event||oEvent;iKeyCode=oEvent.keyCode;switch(iKeyCode){case 38:this.autoComplete.moveUp();break;case 40:this.autoComplete.moveDown();break;case 13:this.autoComplete.hideSuggest();getNextFormField(this).focus();return(false);break;}};autoComplete.prototype.keyPress=function(oEvent){oEvent=window.event||oEvent;iKeyCode=oEvent.keyCode;switch(iKeyCode){case 13:return(false);break;}}
autoComplete.prototype.moveDown=function(){if(this.oDiv.childNodes.length>0&&this.cur<(this.oDiv.childNodes.length-1)){++this.cur;for(var i=0;i<this.oDiv.childNodes.length;i++){if(i==this.cur){this.oDiv.childNodes[i].className="over";this.change(this.oDiv.childNodes[i].titleStr,this.oDiv.childNodes[i].titleIndex);}else{this.oDiv.childNodes[i].className="";}}}};autoComplete.prototype.moveUp=function(){if(this.oDiv.childNodes.length>0&&this.cur>0){--this.cur;for(var i=0;i<this.oDiv.childNodes.length;i++){if(i==this.cur){this.oDiv.childNodes[i].className="over";this.change(this.oDiv.childNodes[i].titleStr,this.oDiv.childNodes[i].titleIndex);}else{this.oDiv.childNodes[i].className="";}}}};autoComplete.prototype.keyUp=function(oEvent){oEvent=oEvent||window.event;var iKeyCode=oEvent.keyCode;if(iKeyCode==8||iKeyCode==46){this.autoComplete.onTextChange(false);}else if(iKeyCode<32||(iKeyCode>=33&&iKeyCode<=46)||(iKeyCode>=112&&iKeyCode<=123)){}else{this.autoComplete.onTextChange(true);}};autoComplete.prototype.positionSuggest=function(){var oNode=this.oText;var x=0,y=oNode.offsetHeight;while(oNode.offsetParent&&oNode.offsetParent.tagName.toUpperCase()!='BODY'){x+=oNode.offsetLeft;y+=oNode.offsetTop;oNode=oNode.offsetParent;}
x+=oNode.offsetLeft;y+=oNode.offsetTop;this.oDiv.style.top=y+"px";this.oDiv.style.left=x+"px";};autoComplete.prototype.onTextChange=function(bTextComplete){var txt=this.oText.value;var oThis=this;var current=0;this.cur=-1;if(txt.length>0){while(this.oDiv.hasChildNodes())
this.oDiv.removeChild(this.oDiv.firstChild);var aStr=new Array();var aIdMatches=new Array();var aTitleMatches=new Array();this.db.getMatches(txt,aStr,aIdMatches,aTitleMatches,this.maxSize);if(aStr.length==0){this.hideSuggest();this.change(txt,-1);return;}
if(bTextComplete)this.textComplete(aTitleMatches[0],aIdMatches[0]);this.positionSuggest();for(i in aStr){var oNew=document.createElement('div');this.oDiv.appendChild(oNew);oNew.onmouseover=oNew.onmouseout=oNew.onmousedown=function(oEvent){oEvent=window.event||oEvent;oSrcDiv=oEvent.target||oEvent.srcElement;if(oEvent.type=="mousedown"){oThis.change(this.titleStr,this.titleIndex);oThis.hideSuggest();oThis.oText.blur();}else if(oEvent.type=="mouseover"){this.className="over";}else if(oEvent.type=="mouseout"){this.className="";}else{this.oText.focus();}};oNew.innerHTML=aStr[i];oNew.titleStr=aTitleMatches[i];oNew.selectedIndex=current;oNew.titleIndex=aIdMatches[i];}
this.oDiv.style.visibility="visible";}else{this.change(txt,-1);this.oDiv.innerHTML="";this.hideSuggest();}};autoComplete.prototype.change=function(tchange,index)
{this.oText.value=tchange;this.echange(this.oText,tchange,index);};