function cBrowser(){var userAgent=navigator.userAgent.toLowerCase() this.version=parseInt(navigator.appVersion) this.subVersion=parseFloat(navigator.appVersion) this.ns=((userAgent.indexOf('mozilla')!=-1)&&((userAgent.indexOf('spoofer')==-1)&&(userAgent.indexOf('compatible')==-1))) this.ns2=(this.ns&&(this.version==2)) this.ns3=(this.ns&&(this.version==3)) this.ns4b=(this.ns&&(this.subVersion<4.04)) this.ns4=(this.ns&&(this.version==4)) this.ns5=(this.ns&&(this.version==5)) this.ie=(userAgent.indexOf('msie')!=-1) this.ie3=(this.ie&&(this.version==2)) this.ie4=(this.ie&&(this.version==4)&&(userAgent.indexOf('msie 4.')!=-1)) this.ie5=(this.ie&&(this.version==4)&&(userAgent.indexOf('msie 5.0')!=-1)) this.ie55=(this.ie&&(this.version==4)&&(userAgent.indexOf('msie 5.5')!=-1)) this.ie6=(this.ie&&(this.version==4)&&(userAgent.indexOf('msie 6.0')!=-1)) this.op3=(userAgent.indexOf('opera')!=-1) this.win=(userAgent.indexOf('win')!=-1) this.mac=(userAgent.indexOf('mac')!=-1) this.unix=(userAgent.indexOf('x11')!=-1) this.name=navigator.appName this.dom=this.ns5||this.ie5||this.ie55||this.ie6} var bw=new cBrowser() cDomEvent={e:null,type:'',button:0,key:0,x:0,y:0,pagex:0,pagey:0,target:null,from:null,to:null} cDomEvent.init=function(e) {if(window.event)e=window.event this.e=e this.type=e.type this.button=(e.which)?e.which:e.button this.key=(e.which)?e.which:e.keyCode this.target=(e.srcElement)?e.srcElement:e.originalTarget this.currentTarget=(e.currentTarget)?e.currentTarget:e.srcElement this.from=(e.originalTarget)?e.originalTarget:(e.fromElement)?e.fromElement:null this.to=(e.currentTarget)?e.currentTarget:(e.toElement)?e.toElement:null this.x=(e.layerX)?e.layerX:(e.offsetX)?e.offsetX:null this.y=(e.layerY)?e.layerY:(e.offsetY)?e.offsetY:null this.screenX=e.screenX this.screenY=e.screenY this.pageX=(e.pageX)?e.pageX:e.x+document.body.scrollLeft this.pageY=(e.pageY)?e.pageY:e.y+document.body.scrollTop} cDomEvent.getEvent=function(e) {if(window.event)e=window.event return{e:e,type:e.type,button:(e.which)?e.which:e.button,key:(e.which)?e.which:e.keyCode,target:(e.srcElement)?e.srcElement:e.originalTarget,currentTarget:(e.currentTarget)?e.currentTarget:e.srcElement,from:(e.originalTarget)?e.originalTarget:(e.fromElement)?e.fromElement:null,to:(e.currentTarget)?e.currentTarget:(e.toElement)?e.toElement:null,x:(e.layerX)?e.layerX:(e.offsetX)?e.offsetX:null,y:(e.layerY)?e.layerY:(e.offsetY)?e.offsetY:null,screenX:e.screenX,screenY:e.screenY,pageX:(e.pageX)?e.pageX:(e.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft)),pageY:(e.pageY)?e.pageY:(e.clientY+(document.documentElement.scrollTop||document.body.scrollTop))}} cDomEvent.cancelEvent=function(e) {if(e.preventDefault) {e.preventDefault()} e.returnValue=false e.cancelBubble=true return false} cDomEvent.addEvent=function(hElement,sEvent,handler,bCapture) {if(hElement.addEventListener) {hElement.addEventListener(sEvent,handler,bCapture) return true} else if(hElement.attachEvent) {return hElement.attachEvent('on'+sEvent,handler)} else if(document.all||hElement.captureEvents) {if(hElement.captureEvents)eval('hElement.captureEvents( Event.'+sEvent.toUpperCase()+' )') eval('hElement.on'+sEvent+' = '+handler)} else {alert('Not implemented yet!')}} cDomEvent.encapsulateEvent=function(hHandler) {return function(hEvent) {hEvent=cDomEvent.getEvent(hEvent) hHandler.call(hEvent.target,hEvent.e)}} cDomEvent.addEvent2=function(hElement,sEvent,handler,bCapture) {if(hElement) {if(hElement.addEventListener) {hElement.addEventListener(sEvent,cDomEvent.encapsulateEvent(handler),bCapture) return true} else if(hElement.attachEvent) {return hElement.attachEvent('on'+sEvent,cDomEvent.encapsulateEvent(handler))} else {alert('Not implemented yet!')}} else {}} cDomEvent.addCustomEvent2=function(hElement,sEvent,handler) {if(hElement) {hElement[sEvent]=handler} else {}} cDomEvent.removeEvent=function(hElement,sEvent,handler,bCapture) {if(hElement.addEventListener) {hElement.removeEventListener(sEvent,handler,bCapture) return true} else if(hElement.attachEvent) {return hElement.detachEvent('on'+sEvent,handler)} else if(document.all||hElement.captureEvents) {eval('hElement.on'+sEvent+' = null')} else {alert('Not implemented yet!')}} function MouseButton() {if(document.layers) {this.left=1 this.middle=2 this.right=3} else if(document.all) {this.left=1 this.middle=4 this.right=2} else {this.left=0 this.middle=1 this.right=2}} var MB=new MouseButton() if(document.ELEMENT_NODE==null) {document.ELEMENT_NODE=1 document.TEXT_NODE=3} function getSubNodeByName(hNode,sNodeName) {if(hNode!=null) {var nNc=0 var nC=0 var hNodeChildren=hNode.childNodes var hCNode=null while(nC=0) {hCNode=hNodeChildren.item(nLength) if((hCNode.nodeType==1)&&(hCNode.nodeName.toLowerCase()==sNodeName)) {return hCNode} nLength--}} return null} function getSubNodeByProperty(hNode,sProperty,sPropValue) {if(hNode!=null) {var nNc=0 var nC=0 var hNodeChildren=hNode.childNodes var hCNode=null var sAttribute var hProp sPropValue=sPropValue.toLowerCase() while(nC=0) {hCNode=hNodeChildren.item(nLength) if(hCNode.nodeType==document.ELEMENT_NODE) {sAttribute=hCNode.getAttribute(sAtt) if(sAttribute&&sAttribute.toLowerCase()==sAttValue) return hCNode} nLength--}} return null} function getParentByTagName(hNode,sParentTagName) {while((hNode.tagName)&&!(/(body|html)/i.test(hNode.tagName))) {if(hNode.tagName==sParentTagName) {return hNode} hNode=hNode.parentNode} return null} function getParentByAttribute(hNode,sAtt,sAttValue) {while((hNode.tagName)&&!(/(body|html)/i.test(hNode.tagName))) {var sAttr=hNode.getAttribute(sAtt) if(sAttr!=null&&sAttr.toString().length>0) {if(sAttValue!==null) {if(sAttr==sAttValue) {return hNode}} else {return hNode}} hNode=hNode.parentNode} return null} function getParentByProperty(hNode,sProperty,sPropValue) {while((hNode.tagName)&&!(/(body|html)/i.test(hNode.tagName))) {var hProp=eval('hNode.'+sProperty) if(hProp!=null&&hProp.toString().length>0) {if(sPropValue!==null) {if(hProp==sPropValue) {return hNode}} else {return hNode}} hNode=hNode.parentNode} return null} function getNodeText(hNode) {if(hNode==null) {return''} var sRes if(hNode.hasChildNodes()) {sRes=hNode.childNodes.item(0).nodeValue} else {sRes=hNode.text} return sRes} function cDomExtension(hParent,aSelectors,hInitFunction) {this.hParent=hParent this.aSelectors=aSelectors this.hInitFunction=hInitFunction} cDomExtensionManager={aExtensions:new Array()} cDomExtensionManager.register=function(hDomExtension) {cDomExtensionManager.aExtensions.push(hDomExtension)} cDomExtensionManager.initSelector=function(hParent,sSelector,hInitFunction) {var hSelectorRegEx var hAttributeRegEx var aSelectorData var aAttributeData var sAttribute hSelectorRegEx=/([a-z0-9_]*)\[?([^\]]*)\]?/i hAttributeRegEx=/([a-z0-9_]*)([\*\^\$]?)(=?)(([a-z0-9_=]*))/i if(hSelectorRegEx.test(sSelector)&&!/[@#\.]/.test(sSelector)) {aSelectorData=hSelectorRegEx.exec(sSelector) if(aSelectorData[1]!='') {hGroup=hParent.getElementsByTagName(aSelectorData[1].toLowerCase()) for(nI=0;nI0) {if(aAttributeData[3]=='=') {if(aAttributeData[2]=='') {if(sAttribute==aAttributeData[4]) {hInitFunction(hGroup[nI])}} else {switch(aAttributeData[2]) {case'^':if(sAttribute.indexOf(aAttributeData[4])==0) {hInitFunction(hGroup[nI])} break case'$':if(sAttribute.lastIndexOf(aAttributeData[4])==sAttribute.length-aAttributeData[4].length) {hInitFunction(hGroup[nI])} break case'*':if(sAttribute.indexOf(aAttributeData[4])>=0) {hInitFunction(hGroup[nI])} break}}} else {hInitFunction(hGroup[nI])}}}} return}} hSelectorRegEx=/([a-z0-9_]*)([\.#@]?)([a-z0-9_=~]*)/i hAttributeRegEx=/([a-z0-9_]*)([=~])?([a-z0-9_]*)/i aSelectorData=hSelectorRegEx.exec(sSelector) if(aSelectorData[1]!='') {var hGroup=hParent.getElementsByTagName(aSelectorData[1]) for(nI=0;nI0) {if(aAttributeData[3]!='') {if(aAttributeData[2]=='=') {if(sAttribute==aAttributeData[3]) {hInitFunction(hGroup[nI])}} else {if(sAttribute.indexOf(aAttributeData[3])>=0) {hInitFunction(hGroup[nI])}}} else {hInitFunction(hGroup[nI])}} break}}}}} cDomExtensionManager.initialize=function() {var hDomExtension=null var aSelectors for(var nKey in cDomExtensionManager.aExtensions) {aSelectors=cDomExtensionManager.aExtensions[nKey].aSelectors for(var nKey2 in aSelectors) {cDomExtensionManager.initSelector(cDomExtensionManager.aExtensions[nKey].hParent,aSelectors[nKey2],cDomExtensionManager.aExtensions[nKey].hInitFunction)}}} if(window.addEventListener) {window.addEventListener('load',cDomExtensionManager.initialize,false)} else if(window.attachEvent) {window.attachEvent('onload',cDomExtensionManager.initialize)} function cDomObject(sId) {if(bw.dom||bw.ie) {this.hElement=document.getElementById(sId) this.hStyle=this.hElement.style}} cDomObject.prototype.getWidth=function() {return cDomObject.getWidth(this.hElement)} cDomObject.getWidth=function(hElement) {if(hElement.currentStyle) {var nWidth=parseInt(hElement.currentStyle.width) if(isNaN(nWidth)) {return parseInt(hElement.offsetWidth)} else {return nWidth}} else {return parseInt(hElement.offsetWidth)}} cDomObject.prototype.getHeight=function() {return cDomObject.getHeight(this.hElement)} cDomObject.getHeight=function(hElement) {if(hElement.currentStyle) {var nHeight=parseInt(hElement.currentStyle.height) if(isNaN(nHeight)) {return parseInt(hElement.offsetHeight)} else {return nHeight}} else {return parseInt(hElement.offsetHeight)}} cDomObject.prototype.getLeft=function() {return cDomObject.getLeft(this.hElement)} cDomObject.getLeft=function(hElement) {return parseInt(hElement.offsetLeft)} cDomObject.prototype.getTop=function() {return cDomObject.getTop(this.hElement)} cDomObject.getTop=function(hElement) {return parseInt(hElement.offsetTop)} cDomObject.getOffsetParam=function(hElement,sParam,hLimitParent) {var nRes=0 if(hLimitParent==null) {hLimitParent=document.body.parentElement} while(hElement!=hLimitParent) {nRes+=eval('hElement.'+sParam) if(!hElement.offsetParent){break} hElement=hElement.offsetParent} return nRes} cDomObject.getScrollOffset=function(hElement,sParam,hLimitParent) {nRes=0 if(hLimitParent==null) {hLimitParent=document.body.parentElement} while(hElement!=hLimitParent) {nRes+=eval('hElement.scroll'+sParam) if(!hElement.offsetParent){break} hElement=hElement.parentNode} return nRes} function getDomDocumentPrefix(){if(getDomDocumentPrefix.prefix) return getDomDocumentPrefix.prefix;var prefixes=["MSXML2","Microsoft","MSXML","MSXML3"];var o;for(var i=0;i0) {if(document.getElementsByTagName('INPUT')[nI].id==null||document.getElementsByTagName('INPUT')[nI].id.length==0) {document.getElementsByTagName('INPUT')[nI].id=cAutocomplete.CS_OBJ_NAME+cAutocomplete.nCount} hACE=new cAutocomplete(document.getElementsByTagName('INPUT')[nI].id)}}} var nTALength=document.getElementsByTagName('TEXTAREA').length for(nI=0;nI0) {if(document.getElementsByTagName('TEXTAREA')[nI].id==null||document.getElementsByTagName('TEXTAREA')[nI].id.length==0) {document.getElementsByTagName('TEXTAREA')[nI].id=cAutocomplete.CS_OBJ_NAME+cAutocomplete.nCount} hACE=new cAutocomplete(document.getElementsByTagName('TEXTAREA')[nI].id)}} var nSelectsLength=document.getElementsByTagName('SELECT').length var aSelect=null for(nI=0;nI0) {if(aSelect.id==null||aSelect.id.length==0) {aSelect.id=cAutocomplete.CS_OBJ_NAME+cAutocomplete.nCount} hACE=new cAutocomplete(aSelect.id) nSelectsLength-- nI--}}} if(cAutocomplete.CB_AUTOINIT) {if(window.attachEvent) {window.attachEvent('onload',cAutocomplete.autoInit)} else if(window.addEventListener) {window.addEventListener('load',cAutocomplete.autoInit,false)}} cAutocomplete.prototype.init=function(sInputId) {this.bDebug=false this.sInputId=sInputId this.sListId=cAutocomplete.CS_LIST_PREFIX+sInputId this.sObjName=cAutocomplete.CS_OBJ_NAME+'_obj_'+(cAutocomplete.nCount++) this.hObj=this.sObjName this.hActiveSelection=null this.nSelectedItemIdx=-1 this.sLastActiveValue='' this.sActiveValue='' this.bListDisplayed=false this.nItemsDisplayed=0 this.bAssociative=true this.sHiddenInputId=null this.bHasButton=false this.aData=null this.aSearchData=new Array() this.bSorted=false this.nLastMatchLength=0 this.bForceCorrect=cAutocomplete.CB_FORCECORRECT var sForceCorrect=document.getElementById(this.sInputId).getAttribute('autocomplete_forcecorrect') if(sForceCorrect!=null&&sForceCorrect.length>0) {this.bForceCorrect=eval(sForceCorrect)} this.bMatchBegin=cAutocomplete.CB_MATCHSTRINGBEGIN var sMatchBegin=document.getElementById(this.sInputId).getAttribute('autocomplete_matchbegin') if(sMatchBegin!=null&&sMatchBegin.length>0) {this.bMatchBegin=eval(sMatchBegin)} this.bMatchSubstring=cAutocomplete.CB_MATCHSUBSTRING var sMatchSubstring=document.getElementById(this.sInputId).getAttribute('autocomplete_matchsubstring') if(sMatchSubstring!=null&&sMatchSubstring.length>0) {this.bMatchSubstring=eval(sMatchSubstring)} this.bAutoComplete=cAutocomplete.CB_AUTOCOMPLETE this.bAutocompleted=false var sAutoComplete=document.getElementById(this.sInputId).getAttribute('autocomplete_complete') if(sAutoComplete!=null&&sAutoComplete.length>0) {this.bAutoComplete=eval(sAutoComplete)} this.formatOptions=null var sFormatFunction=document.getElementById(this.sInputId).getAttribute('autocomplete_format') if(sFormatFunction!=null&&sFormatFunction.length>0) {this.formatOptions=eval(sFormatFunction)} this.onSelect=null var sOnSelectFunction=document.getElementById(this.sInputId).getAttribute('autocomplete_onselect') if(sOnSelectFunction!=null&&sOnSelectFunction.length>0) {this.onSelect=eval(sOnSelectFunction)} if(this.getListArrayType()=='url'||this.getListArrayType()=='xmlrpc') {this.bAssociative=false this.bRemoteList=true this.sListURL=this.getListURL() this.hXMLHttp=XmlHttp.create() this.bXMLRPC=(this.getListArrayType()=='xmlrpc')} else {this.bRemoteList=false} var sAssociative=document.getElementById(this.sInputId).getAttribute('autocomplete_assoc') if(sAssociative!=null&&sAssociative.length>0) {this.bAssociative=eval(sAssociative)} this.initListArray() this.initListContainer() this.initInput() eval(this.hObj+'= this')} cAutocomplete.prototype.initInput=function() {var hInput=document.getElementById(this.sInputId) hInput.hAutocomplete=this var hContainer=document.getElementById(this.sListId) hContainer.hAutocomplete=this var nWidth=hInput.offsetWidth if(!nWidth||nWidth==0) {var hOWInput=hInput.cloneNode(true) hOWInput.style.position='absolute' hOWInput.style.top='-1000px' document.body.appendChild(hOWInput) var nWidth=hOWInput.offsetWidth document.body.removeChild(hOWInput)} var sInputName=hInput.name var hForm=hInput.form var bHasButton=false var sHiddenValue=hInput.value var sValue=hInput.type.toLowerCase()=='text'?hInput.value:'' var sHasButton=hInput.getAttribute('autocomplete_button') if(sHasButton!=null&&sHasButton.length>0) {bHasButton=true} if(hInput.type.toLowerCase()=='select-one') {bHasButton=true if(hInput.selectedIndex>=0) {sHiddenValue=hInput.options[hInput.selectedIndex].value sValue=hInput.options[hInput.selectedIndex].text}} if(hForm) {var hHiddenInput=document.createElement('INPUT') hHiddenInput.id=cAutocomplete.CS_HIDDEN_INPUT_PREFIX+this.sInputId hHiddenInput.type='hidden' hForm.appendChild(hHiddenInput) if(this.bAssociative) {hHiddenInput.name=sInputName hInput.name=cAutocomplete.CS_INPUT_PREFIX+sInputName} else {hHiddenInput.name=cAutocomplete.CS_INPUT_PREFIX+sInputName} hHiddenInput.value=sHiddenValue this.sHiddenInputId=hHiddenInput.id} if(bHasButton) {this.bHasButton=true var hInputContainer=document.createElement('DIV') hInputContainer.className='acinputContainer' hInputContainer.style.width=nWidth var hInputButton=document.createElement('INPUT') hInputButton.id=cAutocomplete.CS_BUTTON_PREFIX+this.sInputId hInputButton.type='button' hInputButton.className='button' hInputButton.tabIndex=hInput.tabIndex+1 hInputButton.hAutocomplete=this var hNewInput=document.createElement('INPUT') if(this.bAssociative) {hNewInput.name=cAutocomplete.CS_INPUT_PREFIX+sInputName} else {hNewInput.name=sInputName} hNewInput.type='text' hNewInput.value=sValue hNewInput.style.width=nWidth-22 hNewInput.className=cAutocomplete.CS_INPUT_CLASSNAME hNewInput.tabIndex=hInput.tabIndex hNewInput.hAutocomplete=this hInputContainer.appendChild(hNewInput) hInputContainer.appendChild(hInputButton) hInput.parentNode.replaceChild(hInputContainer,hInput) hNewInput.id=this.sInputId hInput=hNewInput} if(hInput.attachEvent) {hInput.attachEvent('onkeyup',cAutocomplete.onInputKeyUp) hInput.attachEvent('onkeyup',cAutocomplete.saveCaretPosition) hInput.attachEvent('onkeydown',cAutocomplete.onInputKeyDown) hInput.attachEvent('onblur',cAutocomplete.onInputBlur) hInput.attachEvent('onfocus',cAutocomplete.onInputFocus) if(hInputButton) {hInputButton.attachEvent('onclick',cAutocomplete.onButtonClick)}} else if(hInput.addEventListener) {hInput.addEventListener('keyup',cAutocomplete.onInputKeyUp,false) hInput.addEventListener('keyup',cAutocomplete.saveCaretPosition,false) hInput.addEventListener('keydown',cAutocomplete.onInputKeyDown,false) hInput.addEventListener('keypress',cAutocomplete.onInputKeyPress,false) hInput.addEventListener('blur',cAutocomplete.onInputBlur,false) hInput.addEventListener('focus',cAutocomplete.onInputFocus,false) if(hInputButton) {hInputButton.addEventListener('click',cAutocomplete.onButtonClick,false)}} hInput.setAttribute('autocomplete','OFF') if(hForm) {if(hForm.attachEvent) {hForm.attachEvent('onsubmit',cAutocomplete.onFormSubmit) if(this.bDebug){this.debug("attachEvent added")}} else if(hForm.addEventListener) {hForm.addEventListener('submit',cAutocomplete.onFormSubmit,false) if(this.bDebug){this.debug("addEventListener")}}}} cAutocomplete.prototype.initListContainer=function() {var hInput=document.getElementById(this.sInputId) var hContainer=document.createElement('DIV') hContainer.className='autocomplete_holder' hContainer.id=this.sListId hContainer.style.zIndex=10000+cAutocomplete.nCount hContainer.hAutocomplete=this var hFirstBorder=document.createElement('DIV') hFirstBorder.className='autocomplete_firstborder' var hSecondBorder=document.createElement('DIV') hSecondBorder.className='autocomplete_secondborder' var hList=document.createElement('UL') hList.className='autocomplete' hSecondBorder.appendChild(hList) hFirstBorder.appendChild(hSecondBorder) hContainer.appendChild(hFirstBorder) document.body.appendChild(hContainer) if(hContainer.attachEvent) {hContainer.attachEvent('onblur',cAutocomplete.onListBlur) hContainer.attachEvent('onfocus',cAutocomplete.onListFocus)} else if(hInput.addEventListener) {hContainer.addEventListener('blur',cAutocomplete.onListBlur,false) hContainer.addEventListener('focus',cAutocomplete.onListFocus,false)} if(hContainer.attachEvent) {hContainer.attachEvent('onclick',cAutocomplete.onItemClick)} else if(hContainer.addEventListener) {hContainer.addEventListener('click',cAutocomplete.onItemClick,false)}} cAutocomplete.prototype.createList=function() {var hInput=document.getElementById(this.sInputId) var hContainer=document.getElementById(this.sListId) var hList=hContainer.getElementsByTagName('UL')[0] if(hList) {hList=hList.parentNode.removeChild(hList) while(hList.hasChildNodes()) {hList.removeChild(hList.childNodes[0])}} var hListItem=null var hListItemLink=null var hArrKey=null var sArrEl=null var hArr=this.aData var nI=0 var sRealText for(hArrKey in hArr) {sArrEl=hArr[hArrKey] hListItem=document.createElement('LI') hListItemLink=document.createElement('A') hListItemLink.setAttribute('itemvalue',hArrKey) var sArrData=sArrEl.split(cAutocomplete.CS_ARRAY_SEPARATOR) if(sArrData.length>1) {this.aData[hArrKey]=sArrData[0] hListItemLink.setAttribute('itemdata',sArrEl.substring(sArrEl.indexOf(cAutocomplete.CS_ARRAY_SEPARATOR)+1)) sRealText=sArrData[0]} else {sRealText=sArrEl} hListItemLink.href='#' hListItemLink.appendChild(document.createTextNode(sRealText)) hListItemLink.realText=sRealText if(nI==this.nSelectedItemIdx) {this.hActiveSelection=hListItemLink this.hActiveSelection.className='selected'} hListItem.appendChild(hListItemLink) hList.appendChild(hListItem) this.aSearchData[nI++]=sRealText.toLowerCase()} var hSecondBorder=hContainer.firstChild.firstChild hSecondBorder.appendChild(hList) this.bListUpdated=false} cAutocomplete.prototype.initListArray=function() {var hInput=document.getElementById(this.sInputId) var hArr=null if(hInput.type.toLowerCase()=='select-one') {hArr=new Object() for(var nI=0;nI0) {if(sAA.indexOf('array:')>=0) {return'array'} else if(sAA.indexOf('list:')>=0) {return'list'} else if(sAA.indexOf('url:')>=0) {return'url'} else if(sAA.indexOf('xmlrpc:')>=0) {return'xmlrpc'}}} cAutocomplete.prototype.getListURL=function() {var hInput=document.getElementById(this.sInputId) var sAA=hInput.getAttribute('autocomplete_list') if(sAA!=null&&sAA.length>0) {if(sAA.indexOf('url:')>=0) {return sAA.substring(4)} if(sAA.indexOf('xmlrpc:')>=0) {return sAA.substring(7)}}} cAutocomplete.prototype.setListURL=function(sURL) {this.sListURL=sURL;} cAutocomplete.prototype.onXmlHttpLoad=function() {if(this.hXMLHttp.readyState==4) {var hError=this.hXMLHttp.parseError if(hError&&hError.errorCode!=0) {alert(hError.reason)} else {this.afterRemoteLoad()}}} cAutocomplete.prototype.onXMLRPCHttpLoad=function() {if(this.hXMLHttp.readyState==4) {var hError=this.hXMLHttp.parseError if(hError&&hError.errorCode!=0) {alert(hError.reason)} else {this.afterRemoteLoadXMLRPC()}}} cAutocomplete.prototype.loadXMLRPCListArray=function() {var sURL=this.sListURL var xmlrpc_url=data_path+'/RPC2.php' var aMethodArgs=sURL.split(' ') var sMethodName=aMethodArgs[0] var sStartWith=this.getStringForAutocompletion(this.sActiveValue,this.nInsertPoint) sStartWith=sStartWith.replace(/^\s/,'') sStartWith=sStartWith.replace(/\s$/,'') if(sMethodName.indexOf('?')>0) {sMethodName=sMethodName.replace('/^.+\?/','') sURL=sURL.replace('/\?.+$/','')} else {sURL=xmlrpc_url} if(sMethodName.length<1) {var hInput=document.getElementById(this.sInputId) hInput.value=this.sActiveValue return} var sRequest='\n' sRequest+=''+sMethodName+'\n' if(aMethodArgs.length<=1) {sRequest+='\n'} else {sRequest+='\n' for(var nI=1;nI=0) {sArg=sArg.replace('[S]',sStartWith)} sRequest+='' sRequest+=sArg sRequest+='\n'} sRequest+='\n'} sRequest+='' if(this.bDebug){this.debug('url: "'+sURL+'" sRequest: "'+sRequest.substring(20)+'"')} this.hXMLHttp.open('POST',sURL,true) var hAC=this this.hXMLHttp.onreadystatechange=function(){hAC.onXMLRPCHttpLoad()} this.hXMLHttp.send(sRequest)} cAutocomplete.prototype.loadListArray=function() {var sURL=this.sListURL var sStartWith=this.getStringForAutocompletion(this.sActiveValue,this.nInsertPoint) sStartWith=sStartWith.replace(/^\s/,'') sStartWith=sStartWith.replace(/\s$/,'') if(sURL.indexOf('[S]')>=0) {sURL=sURL.replace('[S]',sStartWith)} else {sURL+=this.sActiveValue} this.hXMLHttp.open('GET',sURL,true) var hAC=this this.hXMLHttp.onreadystatechange=function(){hAC.onXmlHttpLoad()} this.hXMLHttp.send(null)} cAutocomplete.prototype.afterRemoteLoad=function() {var hInput=document.getElementById(this.sInputId) var hArr=new Array() var hTmpArray=this.hXMLHttp.responseText.split('|') var aValueArr for(hKey in hTmpArray) {aValueArr=hTmpArray[hKey].split(cAutocomplete.CS_ARRAY_SEPARATOR) if(aValueArr.length==1) {hArr[hKey]=hTmpArray[hKey]} else {hArr[aValueArr[0]]=hTmpArray[hKey].substr(hTmpArray[hKey].indexOf(cAutocomplete.CS_ARRAY_SEPARATOR)+1)}} hInput.className='' hInput.readonly=false hInput.value=this.sActiveValue this.setListArray(hArr)} cAutocomplete.prototype.afterRemoteLoadXMLRPC=function() {var hInput=document.getElementById(this.sInputId) var hArr=new Array() sResult=this.hXMLHttp.responseText if(this.bDebug){this.debug("response: "+sResult.substring(70,190))} sResult.replace('\n','');sResult.replace('\r','');var hKey=0 var i=sResult.indexOf('') while(i>=0){var j sResult=sResult.substring(i+8) j=sResult.indexOf('') hArr[hKey]=sResult.substring(0,j) hKey+=1 sResult=sResult.substring(j+9) i=sResult.indexOf('')} hInput.className='' hInput.readonly=false hInput.value=this.sActiveValue this.setListArray(hArr)} cAutocomplete.prototype.prepareList=function(bFullList) {var hInput=document.getElementById(this.sInputId) this.sActiveValue=hInput.value var sST=this.getStringForAutocompletion(this.sActiveValue,this.nInsertPoint) var sLST=this.getStringForAutocompletion(this.sLastActiveValue,this.nInsertPoint) if(sLST!=sST||bFullList||!this.bListDisplayed||this.bMatchSubstring) {if(this.bRemoteList) {hInput.className='search' this.bXMLRPC?this.loadXMLRPCListArray():this.loadListArray() return} this.updateAndShowList(bFullList)}} cAutocomplete.prototype.updateAndShowList=function(bFullList) {var hContainer=document.getElementById(this.sListId) var hList=hContainer.getElementsByTagName('UL')[0] var hInput=document.getElementById(this.sInputId) if(this.bListUpdated) {this.createList()} var sST=this.bMatchSubstring?this.getStringForAutocompletion(this.sActiveValue,this.nInsertPoint):this.sActiveValue var sLST=this.bMatchSubstring?this.getStringForAutocompletion(this.sLastActiveValue,this.nInsertPoint):this.sLastActiveValue if(sST==sLST) {if(!this.bMatchSubstring) {bFullList=true}} this.filterOptions(bFullList) if(this.nItemsDisplayed==0) {if(this.bForceCorrect) {var aPos=this.getInsertPos(this.sActiveValue,this.nInsertPoint,'') cAutocomplete.markInputRange(hInput,this.nLastMatchLength,aPos[0])}} this.sLastActiveValue=this.sActiveValue if(this.nItemsDisplayed>0) {if(!bFullList||this.bMatchSubstring) {this.deselectOption()} if(this.bAutoComplete&&this.nItemsDisplayed==1) {var sStartWith=this.getStringForAutocompletion(this.sActiveValue,this.nInsertPoint) var sItemText=hList.getElementsByTagName('LI')[this.nFirstDisplayed].getElementsByTagName('A')[0].realText if(sStartWith.toLowerCase()==sItemText.toLowerCase()) {this.selectOption(hList.getElementsByTagName('LI')[this.nFirstDisplayed].getElementsByTagName('A')[0]) this.hideOptions() return}} if(this.bAutoComplete&&!bFullList) {this.selectOption(hList.getElementsByTagName('LI')[this.nFirstDisplayed].getElementsByTagName('A')[0])} this.showList()} else {this.clearList()}} cAutocomplete.prototype.showList=function() {if(cAutocomplete.hListDisplayed) {cAutocomplete.hListDisplayed.clearList()} var hInput=document.getElementById(this.sInputId) var nTop=cDomObject.getOffsetParam(hInput,'offsetTop') var nLeft=cDomObject.getOffsetParam(hInput,'offsetLeft') var hContainer=document.getElementById(this.sListId) var hList=hContainer.getElementsByTagName('UL')[0] if(this.bHasButton) {hContainer.style.width=document.getElementById(this.sInputId).parentNode.offsetWidth} else {hContainer.style.width=document.getElementById(this.sInputId).offsetWidth} var nNumLines=(this.nItemsDisplayedsFilter) {nHigh=nTry-1 continue} if(sData==sFilter) {nHigh=nTry-1 nLastTry=nTry continue} return nTry} if(typeof(nLastTry)!="undefined") {return nLastTry} else {return null}} cAutocomplete.prototype.getStringForAutocompletion=function(sString,nPos) {if(sString==null||sString.length==0) {return''} if(this.bMatchSubstring) {var nStartPos=sString.lastIndexOf(cAutocomplete.CS_SEPARATOR,nPos-1) nStartPos=nStartPos<0?0:nStartPos var nEndPos=sString.indexOf(cAutocomplete.CS_SEPARATOR,nPos) nEndPos=nEndPos<0?sString.length:nEndPos var sStr=sString.substr(nStartPos,nEndPos-nStartPos) sStr=sStr.replace(/^(\,?)(\s*)(\S*)(\s*)(\,?)$/g,'$3') return sStr} else {return sString}} cAutocomplete.prototype.insertString=function(sString,nPos,sInsert) {if(this.bMatchSubstring) {var nStartPos=sString.lastIndexOf(cAutocomplete.CS_SEPARATOR,nPos-1) nStartPos=nStartPos<0?0:nStartPos var nEndPos=sString.indexOf(cAutocomplete.CS_SEPARATOR,nPos) nEndPos=nEndPos<0?sString.length:nEndPos var sStr=sString.substr(nStartPos,nEndPos-nStartPos) sStr=sStr.replace(/^(\,?)(\s*)(\S?[\S\s]*\S?)(\s*)(\,?)$/g,'$1$2'+sInsert+'$4$5') sStr=sString.substr(0,nStartPos)+sStr+sString.substr(nEndPos) return sStr} else {return sInsert}} cAutocomplete.prototype.getInsertPos=function(sString,nPos,sInsert) {nPos=nPos==null?0:nPos var nStartPos=sString.lastIndexOf(cAutocomplete.CS_SEPARATOR,nPos-1) nStartPos=nStartPos<0?0:nStartPos var nEndPos=sString.indexOf(cAutocomplete.CS_SEPARATOR,nPos) nEndPos=nEndPos<0?sString.length:nEndPos var sStr=sString.substr(nStartPos,nEndPos-nStartPos) sStr=sStr.replace(/^(\,?)(\s*)(\S?[\S\s]*\S?)(\s*)(\,?)$/g,'$1$2'+sInsert) return[nPos,nStartPos+sStr.length]} cAutocomplete.prototype.filterOptions=function(bShowAll) {if(this.hActiveSelection&&!bShowAll) {this.hActiveSelection.className=''} if(typeof bShowAll=='undefined') {bShowAll=false} var hInput=document.getElementById(this.sInputId) var sStartWith=this.getStringForAutocompletion(this.sActiveValue,this.nInsertPoint) if(bShowAll) {sStartWith=''} var hContainer=document.getElementById(this.sListId) var hList=hContainer.getElementsByTagName('UL')[0] var nItemsLength=hList.childNodes.length var hLinkItem=null var nCount=0 var hParent=hList.parentNode var hList=hList.parentNode.removeChild(hList) var hTItems=hList.childNodes this.nItemsDisplayed=0 if(sStartWith.length==0) {for(var nI=0;nI0) {this.nFirstDisplayed=0 this.nLastDisplayed=nItemsLength-1} else {this.nFirstDisplayed=this.nLastDisplayed=-1} var aPos=this.getInsertPos(this.sActiveValue,this.nInsertPoint,sStartWith) this.nLastMatchLength=aPos[0]} else {this.nFirstDisplayed=this.nLastDisplayed=-1 sStartWith=sStartWith.toLowerCase() var bEnd=false if(this.bSorted&&this.bMatchBegin) {var nStartAt=this.binarySearch(sStartWith) for(var nI=0;nI=nStartAt&&!bEnd) {if(!bEnd&&this.aSearchData[nI].indexOf(sStartWith)!=0) {bEnd=true continue} if(this.formatOptions) {hTItems[nI].childNodes[0].innerHTML=this.formatOptions(hTItems[nI].childNodes[0].realText,nI)} hTItems[nI].style.display='block' nCount++ if(this.nFirstDisplayed<0) {this.nFirstDisplayed=nI} this.nLastDisplayed=nI}}} else {for(var nI=0;nI=0)) {if(this.formatOptions) {hTItems[nI].childNodes[0].innerHTML=this.formatOptions(hTItems[nI].childNodes[0].realText,nI)} hTItems[nI].style.display='block' nCount++ if(this.nFirstDisplayed<0) {this.nFirstDisplayed=nI} this.nLastDisplayed=nI}}} if(nCount>0) {var aPos=this.getInsertPos(this.sActiveValue,this.nInsertPoint,sStartWith) this.nLastMatchLength=aPos[0]}} hParent.appendChild(hList) this.nItemsDisplayed=nCount} cAutocomplete.prototype.hideOptions=function() {var hContainer=document.getElementById(this.sListId) hContainer.style.visibility='hidden' hContainer.style.display='none' this.hListDisplayed=null} cAutocomplete.prototype.markAutocompletedValue=function() {var hInput=document.getElementById(this.sInputId) var sValue=this.hActiveSelection.realText if(this.bMatchSubstring) {var aPos=this.getInsertPos(this.sLastActiveValue,this.nInsertPoint,sValue) var nStartPos=aPos[0] var nEndPos=aPos[1]} else {var nStartPos=this.nInsertPoint var nEndPos=sValue.length} this.nStartAC=nStartPos this.nEndAC=nEndPos if(this.hMarkRangeTimeout!=null) {clearTimeout(this.hMarkRangeTimeout)} this.hMarkRangeTimeout=setTimeout(function(){cAutocomplete.markInputRange2(hInput.id)},cAutocomplete.CN_MARK_TIMEOUT)} cAutocomplete.prototype.selectOptionByIndex=function(nOptionIndex) {if(this.bListUpdated) {this.createList()} var hContainer=document.getElementById(this.sListId) var hList=hContainer.getElementsByTagName('UL')[0] var nItemsLength=hList.childNodes.length if(nOptionIndex>=0&&nOptionIndex=0) {this.selectOption(hList.childNodes[nSelectedIndex].getElementsByTagName('A')[0])}} cAutocomplete.prototype.selectOption=function(hNewOption) {if(this.hActiveSelection) {if(this.hActiveSelection==hNewOption) {return} else {this.hActiveSelection.className=''}} this.hActiveSelection=hNewOption var hInput=document.getElementById(this.sInputId) if(this.hActiveSelection!=null) {if(this.sHiddenInputId!=null) {if(this.bMatchSubstring) {document.getElementById(this.sHiddenInputId).value=this.hActiveSelection.getAttribute('itemvalue')} else {document.getElementById(this.sHiddenInputId).value=this.hActiveSelection.getAttribute('itemvalue')}} this.hActiveSelection.className='selected' if(this.bAutoComplete) {hInput.value=this.insertString(this.sLastActiveValue,this.nInsertPoint,this.hActiveSelection.realText) this.bAutocompleted=true this.markAutocompletedValue()} else {var aPos=this.getInsertPos(this.sLastActiveValue,this.nInsertPoint,this.hActiveSelection.realText) hInput.value=this.insertString(this.sActiveValue,this.nInsertPoint,this.hActiveSelection.realText) cAutocomplete.setInputCaretPosition(hInput,aPos[1])} this.sActiveValue=hInput.value if(this.onSelect) {this.onSelect()}} else {hInput.value=this.sActiveValue cAutocomplete.setInputCaretPosition(hInput,this.nInsertPoint)}} cAutocomplete.prototype.deselectOption=function() {if(this.hActiveSelection!=null) {this.hActiveSelection.className='' this.hActiveSelection=null}} cAutocomplete.prototype.clearList=function() {this.hideOptions() this.bListDisplayed=false} cAutocomplete.prototype.getPrevDisplayedItem=function(hItem) {if(hItem==null) {var hContainer=document.getElementById(this.sListId) hItem=hContainer.getElementsByTagName('UL')[0].childNodes.item(hContainer.getElementsByTagName('UL')[0].childNodes.length-1)} else {hItem=getPrevNodeSibling(hItem.parentNode)} while(hItem!=null) {if(hItem.style.display=='block') {return hItem} hItem=hItem.previousSibling} return null} cAutocomplete.prototype.getNextDisplayedItem=function(hItem) {if(hItem==null) {var hContainer=document.getElementById(this.sListId) hItem=hContainer.getElementsByTagName('UL')[0].childNodes.item(0)} else {hItem=getNextNodeSibling(hItem.parentNode)} while(hItem!=null) {if(hItem.style.display=='block') {return hItem} hItem=hItem.nextSibling} return null} cAutocomplete.prototype.debug=function(s) {if(this.bDebug){var hInput=document.getElementById(this.sInputId) var hContainer=document.createElement('DIV') hContainer.className='debug' hContainer.innerHTML=s hInput.form.appendChild(hContainer)}} cAutocomplete.onInputKeyDown=function(hEvent) {if(hEvent==null) {hEvent=window.event} var hElement=(hEvent.srcElement)?hEvent.srcElement:hEvent.originalTarget var hAC=hElement.hAutocomplete var hContainer=document.getElementById(hAC.sListId) var hInput=document.getElementById(hAC.sInputId) var hList=hContainer.getElementsByTagName('UL')[0] var hEl=getParentByTagName(hElement,'A') if(hContainer!=null&&hAC.bListDisplayed) {var hLI=null var hLINext=null if((hEvent.keyCode==13)||(hEvent.keyCode==27)) {var bItemSelected=hEvent.keyCode==13?true:false hAC.clearList() if(hAC.bDebug){hAC.debug("key "+hEvent.keyCode+" new active selection")}} if(hEvent.keyCode==38) {if(hAC.bDebug){hAC.debug("key "+hEvent.keyCode+" up")} hLINext=hAC.getPrevDisplayedItem(hAC.hActiveSelection) if(hLINext!=null) {hAC.selectOption(hLINext.childNodes.item(0)) if(hAC.nItemsDisplayed>cAutocomplete.CN_NUMBER_OF_LINES) {if(hList.scrollTop<5&&hLINext.offsetTop>hList.offsetHeight) {hList.scrollTop=hList.scrollHeight-hList.offsetHeight} if(hLINext.offsetTop-hList.scrollTop<0) {hList.scrollTop-=hLINext.offsetHeight}}} else {hAC.selectOption(null)}} else if(hEvent.keyCode==40) {if(hAC.bDebug){hAC.debug("key "+hEvent.keyCode+" down")} hLINext=hAC.getNextDisplayedItem(hAC.hActiveSelection) if(hLINext!=null) {hAC.selectOption(hLINext.childNodes.item(0)) if(hAC.nItemsDisplayed>cAutocomplete.CN_NUMBER_OF_LINES) {if(hList.scrollTop>0&&hList.scrollTop>hLINext.offsetTop) {hList.scrollTop=0} if(Math.abs(hLINext.offsetTop-hList.scrollTop-hList.offsetHeight)<5) {hList.scrollTop+=hLINext.offsetHeight}}} else {hAC.selectOption(null)}}} if(hInput.form) {hInput.form.bLocked=true if(hAC.bDebug){hAC.debug("onInputKeyDown form blocked")}} if(hEvent.keyCode==13||hEvent.keyCode==27||hEvent.keyCode==38||hEvent.keyCode==40) {if(hEvent.preventDefault) {hEvent.preventDefault()}else{if(hAC.bDebug){hAC.debug("no preventDefault return false")}} hEvent.cancelBubble=true hEvent.returnValue=false return false}} cAutocomplete.onInputKeyPress=function(hEvent) {if(hEvent.keyCode==13||hEvent.keyCode==38||hEvent.keyCode==40) {if(hEvent.preventDefault) {hEvent.preventDefault()} hEvent.cancelBubble=true hEvent.returnValue=false return false}} cAutocomplete.onInputKeyUp=function(hEvent) {if(hEvent==null) {hEvent=window.event} var hElement=(hEvent.srcElement)?hEvent.srcElement:hEvent.originalTarget var hAC=hElement.hAutocomplete var hInput=document.getElementById(hAC.sInputId) switch(hEvent.keyCode) {case 8:if(hAC.bAutoComplete&&hAC.bAutocompleted) {hAC.bAutocompleted=false return false} break case 38:case 40:if(hAC.bListDisplayed) {if(hEvent.preventDefault) {hEvent.preventDefault()} hEvent.cancelBubble=true hEvent.returnValue=false return false} break case 32:case 46:case 35:case 36:break;default:if(hEvent.keyCode<48) {if(hEvent.preventDefault) {hEvent.preventDefault()} if(hAC.bDebug){hAC.debug("keyUp: hEvent.returnValue = false")} hEvent.cancelBubble=true hEvent.returnValue=false return false} break} if(hAC.hMarkRangeTimeout!=null) {clearTimeout(hAC.hMarkRangeTimeout)} if(hAC.hShowTimeout) {clearTimeout(hAC.hShowTimeout) hAC.hShowTimeout=null} var nTimeout=hAC.bRemoteList?cAutocomplete.CN_REMOTE_SHOW_TIMEOUT:cAutocomplete.CN_SHOW_TIMEOUT hAC.hShowTimeout=setTimeout(function(){hAC.prepareList()},nTimeout) if(hAC.bDebug){hAC.debug("setTimeout "+nTimeout)}} cAutocomplete.onInputBlur=function(hEvent) {if(hEvent==null) {hEvent=window.event} var hElement=(hEvent.srcElement)?hEvent.srcElement:hEvent.originalTarget if(hElement.form) {hElement.form.bLocked=false} var hAC=hElement.hAutocomplete if(!hAC.hClearTimeout) {hAC.hClearTimeout=setTimeout(function(){hAC.clearList()},cAutocomplete.CN_CLEAR_TIMEOUT)}} cAutocomplete.onInputFocus=function(hEvent) {if(hEvent==null) {hEvent=window.event} var hElement=(hEvent.srcElement)?hEvent.srcElement:hEvent.originalTarget var hAC=hElement.hAutocomplete if(hAC.hClearTimeout) {clearTimeout(hAC.hClearTimeout) hAC.hClearTimeout=null}} cAutocomplete.saveCaretPosition=function(hEvent) {if(hEvent==null) {hEvent=window.event} var hElement=(hEvent.srcElement)?hEvent.srcElement:hEvent.originalTarget var hAC=hElement.hAutocomplete var hInput=document.getElementById(hAC.sInputId) if(hEvent.keyCode!=38&&hEvent.keyCode!=40) {hAC.nInsertPoint=cAutocomplete.getInputCaretPosition(hInput)}} cAutocomplete.getInputCaretPosition=function(hInput) {if(typeof hInput.selectionStart!='undefined') {if(hInput.selectionStart==hInput.selectionEnd) {return hInput.selectionStart} else {return hInput.selectionStart}} else if(hInput.createTextRange) {var hSelRange=document.selection.createRange() if(hInput.tagName.toLowerCase()=='textarea') {var hSelBefore=hSelRange.duplicate() var hSelAfter=hSelRange.duplicate() hSelRange.moveToElementText(hInput) hSelBefore.setEndPoint('StartToStart',hSelRange) return hSelBefore.text.length} else {hSelRange.moveStart('character',-1*hInput.value.length) var nLen=hSelRange.text.length return nLen}} return null} cAutocomplete.setInputCaretPosition=function(hInput,nPosition) {if(hInput.setSelectionRange) {hInput.setSelectionRange(nPosition,nPosition)} else if(hInput.createTextRange) {var hRange=hInput.createTextRange() hRange.moveStart('character',nPosition) hRange.moveEnd('character',nPosition) hRange.collapse(true) hRange.select()}} cAutocomplete.markInputRange=function(hInput,nStartPos,nEndPos) {if(hInput.setSelectionRange) {hInput.focus() hInput.setSelectionRange(nStartPos,nEndPos)} else if(hInput.createTextRange) {var hRange=hInput.createTextRange() hRange.collapse(true) hRange.moveStart('character',nStartPos) hRange.moveEnd('character',nEndPos-nStartPos) hRange.select()}} cAutocomplete.markInputRange2=function(sInputId) {var hInput=document.getElementById(sInputId) var nStartPos=hInput.hAutocomplete.nStartAC var nEndPos=hInput.hAutocomplete.nEndAC cAutocomplete.markInputRange(hInput,nStartPos,nEndPos)} cAutocomplete.onListBlur=function(hEvent) {if(hEvent==null) {hEvent=window.event} var hElement=(hEvent.srcElement)?hEvent.srcElement:hEvent.originalTarget hElement=getParentByProperty(hElement,'className','autocomplete_holder') var hAC=hElement.hAutocomplete if(!hAC.hClearTimeout) {hAC.hClearTimeout=setTimeout(function(){hAC.clearList()},cAutocomplete.CN_CLEAR_TIMEOUT)}} cAutocomplete.onListFocus=function(hEvent) {if(hEvent==null) {hEvent=window.event} var hElement=(hEvent.srcElement)?hEvent.srcElement:hEvent.originalTarget hElement=getParentByProperty(hElement,'className','autocomplete_holder') var hAC=hElement.hAutocomplete if(hAC.hClearTimeout) {clearTimeout(hAC.hClearTimeout) hAC.hClearTimeout=null}} cAutocomplete.onItemClick=function(hEvent) {if(hEvent==null) {hEvent=window.event} var hElement=(hEvent.srcElement)?hEvent.srcElement:hEvent.originalTarget var hContainer=getParentByProperty(hElement,'className','autocomplete_holder') var hEl=getParentByTagName(hElement,'A') if(hContainer!=null) {var hAC=hContainer.hAutocomplete hAC.selectOption(hEl) document.getElementById(hAC.sInputId).focus() hAC.clearList()} if(hEvent.preventDefault) {hEvent.preventDefault()} hEvent.cancelBubble=true hEvent.returnValue=false return false} cAutocomplete.onButtonClick=function(hEvent) {if(hEvent==null) {hEvent=window.event} var hElement=(hEvent.srcElement)?hEvent.srcElement:hEvent.originalTarget var hAC=hElement.hAutocomplete var hInput=document.getElementById(hAC.sInputId) if(hInput.disabled) {return} if(hAC.bDebug){hAC.debug("onButtonClick")} hAC.prepareList(true) var hInput=document.getElementById(hAC.sInputId) hInput.focus()} cAutocomplete.onFormSubmit=function(hEvent) {if(hEvent==null) {hEvent=window.event} var hElement=(hEvent.srcElement)?hEvent.srcElement:hEvent.originalTarget if(hElement.bLocked) {var hAC=hElement.hAutocomplete if(hAC.bDebug){hAC.debug("onSubmit: hElement.bLocked")} hElement.bLocked=false hEvent.returnValue=false if(hEvent.preventDefault) {hEvent.preventDefault()} return false}}