function DOM(){}DOM.createElement=function(f,c,b,e){var g=document.createElement(f);if(!g){return false}for(var d in c){g[d]=c[d]}if(typeof(b)=="string"&&!e){g.appendChild(document.createTextNode(b))}else{if(typeof(b)=="string"&&e){g.innerHTML=b}else{if(typeof(b)=="object"){g.appendChild(b)}}}return g};DOM.getPos=function(a){var c=a;var d=0;if(c.offsetParent){while(c.offsetParent){d+=c.offsetLeft;c=c.offsetParent}}else{if(c.x){d+=c.x}}var c=a;var b=0;if(c.offsetParent){while(c.offsetParent){b+=c.offsetTop;c=c.offsetParent}}else{if(c.y){b+=c.y}}return{x:d,y:b}};function SuggestionsObj(){}SuggestionsObj.prototype.isVisible=function(){if(this.sgDiv!=null&&this.sgDiv.style.visibility=="visible"){return true}return false};SuggestionsObj.prototype.cleanSgDiv=function(){if(this.sgDiv!=null&&this.divLinks!=null){for(var a in this.divLinks){this.sgDiv.removeChild(this.divLinks[a])}this.divLinks=null}};SuggestionsObj.prototype.hide=function(){this.sgDiv.style.visibility="hidden";this.cleanSgDiv()};SuggestionsObj.prototype.show=function showSuggestions(e,d){var a=this;if(e.keypress==null){e.onkeypress=function(f){return SuggestionsObj.onKeyPress(a,f)}}pos=DOM.getPos(e);this.sgElem=e;this.curSel=-1;this.sgDiv=document.getElementById(sgDivId);if(this.sgDiv==null){this.sgDiv=DOM.createElement("div",{className:"suggestDiv",id:sgDivId});document.body.appendChild(this.sgDiv);if(document.body.onclick==null){document.body.onclick=function(){suggestionsObj.hide()}}}this.sgDiv.style.left=pos.x+"px";this.sgDiv.style.top=(pos.y+e.offsetHeight+2)+"px";this.sgDiv.style.width=e.offsetWidth+"px";this.sgDiv.style.maxHeight=MAX_HEIGHT+"px";this.cleanSgDiv();this.divLinks=new Array(d.length);for(var b in d){var c=DOM.createElement("a",{href:"#",id:b});c.onclick=function(){SuggestionsObj.onmouseclicksglink(a,this)};c.onmouseover=function(){SuggestionsObj.onMouseOverSgLink(a,this)};c.innerHTML=d[b];this.sgDiv.appendChild(c);this.divLinks[b]=c}if(this.sgDiv.offsetHeight>MAX_HEIGHT){this.sgDiv.style.height=MAX_HEIGHT+"px"}this.sgDiv.style.visibility="visible"};SuggestionsObj.prototype.hilightNewElem=function(a,b){if(a>=0){this.divLinks[a].style.border="1px solid #000"}this.divLinks[this.curSel].style.borderTop="1px solid #ddc";this.divLinks[this.curSel].style.borderLeft="1px solid #ddc";this.divLinks[this.curSel].style.borderRight="1px solid #777";this.divLinks[this.curSel].style.borderBottom="1px solid #777";if(!b){this.divLinks[this.curSel].scrollIntoView(true)}};SuggestionsObj.onMouseOverSgLink=function(a,b){old=a.curSel;a.curSel=b.id-0;if(a.curSel!=old){a.hilightNewElem(old,true)}};SuggestionsObj.onmouseclicksglink=function(a,b){a.curSel=b.id-0;a.setSelected()};SuggestionsObj.prototype.selectNext=function(){if(this.divLinks!=null){old=this.curSel;if(this.curSel<this.divLinks.length-1){this.curSel++}if(old!=this.curSel){this.hilightNewElem(old,false)}}};SuggestionsObj.prototype.selectPrev=function(){if(this.divLinks!=null){old=this.curSel;if(this.curSel>0){this.curSel--}if(old!=this.curSel){this.hilightNewElem(old,false)}}};SuggestionsObj.prototype.setSelected=function(){if(this.divLinks!=null&&this.curSel>=0){this.sgElem.value=this.divLinks[this.curSel].innerHTML}this.hide()};SuggestionsObj.onKeyPress=function(a,c){var b=c.keyCode;switch(b){case keyTab:a.setSelected();return true;case keyEnter:a.setSelected();return false;case keyEscape:a.hide();return true;default:return true}};SuggestionsObj.onKeyUp=function(a,b){switch(b){case keyDown:a.selectNext();return;case keyUp:a.selectPrev();return;default:return}};var sgDivId="sgDiv";var suggestionsObj=new SuggestionsObj();var keyDown=40;var keyUp=38;var keyTab=9;var keyEnter=13;var keyEscape=27;var MAX_HEIGHT=150;
