 

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<hNodeChildren.length)
{hCNode=hNodeChildren.item(nC++)
if((hCNode.nodeType==1)&&(hCNode.nodeName.toLowerCase()==sNodeName))
{return hCNode}}}
return null}
function getPrevNodeSibling(hNode)
{if(hNode!=null)
{do{hNode=hNode.previousSibling}while(hNode!=null&&hNode.nodeType!=1)
return hNode}}
function getNextNodeSibling(hNode)
{if(hNode!=null)
{do{hNode=hNode.nextSibling}while(hNode!=null&&hNode.nodeType!=1)
return hNode}}
function getLastSubNodeByName(hNode,sNodeName)
{if(hNode!=null)
{var nNc=0
var nC=0
var hNodeChildren=hNode.childNodes
var hCNode=null
var nLength=hNodeChildren.length-1
while(nLength>=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<hNodeChildren.length)
{hCNode=hNodeChildren.item(nC++)
if(hCNode.nodeType==document.ELEMENT_NODE)
{hProp=eval('hCNode.'+sProperty)
if(typeof(sPropValue)!='undefined')
{if(hProp.toLowerCase()==sPropValue)
{return hCNode}}
else
{return hCNode}}
nNc++}}
return null}
function findAttribute(hNode,sAtt)
{sAtt=sAtt.toLowerCase()
for(var nI=0;nI<hNode.attributes.length;nI++)
{if(hNode.attributes.item(nI).nodeName.toLowerCase()==sAtt)
{return hNode.attributes.item(nI).nodeValue}}
return null}
function getSubNodeByAttribute(hNode,sAtt,sAttValue)
{if(hNode!=null)
{var nNc=0
var nC=0
var hNodeChildren=hNode.childNodes
var hCNode=null
var sAttribute
sAttValue=sAttValue.toLowerCase()
while(nC<hNodeChildren.length)
{hCNode=hNodeChildren.item(nC++)
if(hCNode.nodeType==document.ELEMENT_NODE)
{sAttribute=hCNode.getAttribute(sAtt)
if(sAttribute&&sAttribute.toLowerCase()==sAttValue)
return hCNode}
nNc++}}
return null}
function getLastSubNodeByAttribute(hNode,sAtt,sAttValue)
{if(hNode!=null)
{var nNc=0
var nC=0
var hNodeChildren=hNode.childNodes
var hCNode=null
var nLength=hNodeChildren.length-1
while(nLength>=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;nI<hGroup.length;nI++)
{hGroup[nI].markExt=true}
for(nI=0;nI<hGroup.length;nI++)
{if(!hGroup[nI].markExt)
{continue}
else
{hGroup[nI].markExt=false}
if(aSelectorData[2]=='')
{if(hGroup[nI].tagName.toLowerCase()==aSelectorData[1].toLowerCase())
{hInitFunction(hGroup[nI])}}
else
{aAttributeData=hAttributeRegEx.exec(aSelectorData[2])
if(aAttributeData[1]=='class')
{sAttribute=hGroup[nI].className}
else
{sAttribute=hGroup[nI].getAttribute(aAttributeData[1])}
if(sAttribute!=null&&sAttribute.length>0)
{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;nI<hGroup.length;nI++)
{hGroup[nI].markExt=true}
for(nI=0;nI<hGroup.length;nI++)
{if(!hGroup[nI].markExt)
{continue}
else
{hGroup[nI].markExt=false}
if(aSelectorData[2]!='')
{switch(aSelectorData[2])
{case'.':if(hGroup[nI].className==aSelectorData[3])
{hInitFunction(hGroup[nI])}
break
case'#':if(hGroup[nI].id==aSelectorData[3])
{hInitFunction(hGroup[nI])}
break
case'@':aAttributeData=hAttributeRegEx.exec(aSelectorData[3])
sAttribute=hGroup[nI].getAttribute(aAttributeData[1])
if(sAttribute!=null&&sAttribute.length>0)
{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)}
cMoTabs=new Object()
cMoTabs.getTabGroup=function(hElement)
{return getParentByTagName(hElement,'UL')}
cMoTabs.getTabElement=function(hElement)
{if(hElement==null)
{return null}
try
{if(typeof hElement.tagName=='undefined')return null}
catch(hException)
{return null}
return getParentByProperty(hElement,'className','tab')}
cMoTabs.setActiveTabElement=function(hTabElement)
{if(hTabElement==null)
{return}
hTabElement.className='tabactive'
var hView=document.getElementById(hTabElement.getAttribute('tabview'))
if(hView)
{hView.style.display='block'}}
cMoTabs.setInactiveTabElement=function(hTabElement)
{if(hTabElement==null)
{return}
hTabElement.className='tab'
var hView=document.getElementById(hTabElement.getAttribute('tabview'))
if(hView)
{hView.style.display='none'}}
cMoTabs.doTab=function(e)
{cDomEvent.init(e)
var hTabElement=null
if(e.type.indexOf('keypress')>-1)
{if(e.keyCode!=13)
{return}}
hTabElement=cMoTabs.getTabElement(cDomEvent.target)
if(hTabElement!=null)
{var hGroup=cMoTabs.getTabGroup(hTabElement)
if(hGroup.hAcvtiveElm==null)
{var hActiveTab=getSubNodeByProperty(hTabElement.parentNode,'className','tabactive')}
else
{var hActiveTab=hGroup.hAcvtiveElm}
if(hActiveTab==hTabElement)
{}
else
{cMoTabs.setInactiveTabElement(hActiveTab)
cMoTabs.setActiveTabElement(hTabElement)
hGroup.hAcvtiveElm=hTabElement}}
return true}
cMoTabs.doTabClick=function(e)
{cDomEvent.init(e)
if(e.preventDefault)
{e.preventDefault()}
e.cancelBubble=false
e.returnValue=false
return false}
cMoTabs.init=function(hListItem)
{var hLink=getSubNodeByName(hListItem,'a')
cDomEvent.addEvent(hLink,'activate',cMoTabs.doTab,false)
cDomEvent.addEvent(hLink,'focus',cMoTabs.doTab,false)
cDomEvent.addEvent(hLink,'mousedown',cMoTabs.doTab,false)
cDomEvent.addEvent(hLink,'keypress',cMoTabs.doTab,false)
cDomEvent.addEvent(hLink,'click',cMoTabs.doTabClick,false)}
cDomExtensionManager.register(new cDomExtension(document,["li[tabview]"],cMoTabs.init))
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;i<prefixes.length;i++){try{o=new ActiveXObject(prefixes[i]+".DomDocument");return getDomDocumentPrefix.prefix=prefixes[i];}
catch(ex){};}
throw new Error("Could not find an installed XML parser");}
function getXmlHttpPrefix(){if(getXmlHttpPrefix.prefix)
return getXmlHttpPrefix.prefix;var prefixes=["MSXML2","Microsoft","MSXML","MSXML3"];var o;for(var i=0;i<prefixes.length;i++){try{o=new ActiveXObject(prefixes[i]+".XmlHttp");return getXmlHttpPrefix.prefix=prefixes[i];}
catch(ex){};}
throw new Error("Could not find an installed XML parser");}
function XmlHttp(){}
XmlHttp.create=function(){try{if(window.XMLHttpRequest){var req=new XMLHttpRequest();if(req.readyState==null){req.readyState=1;req.addEventListener("load",function(){req.readyState=4;if(typeof req.onreadystatechange=="function")
req.onreadystatechange();},false);}
return req;}
if(window.ActiveXObject){return new ActiveXObject(getXmlHttpPrefix()+".XmlHttp");}}
catch(ex){}
throw new Error("Your browser does not support XmlHttp objects");};function XmlDocument(){}
XmlDocument.create=function(){try{if(document.implementation&&document.implementation.createDocument){var doc=document.implementation.createDocument("","",null);if(doc.readyState==null){doc.readyState=1;doc.addEventListener("load",function(){doc.readyState=4;if(typeof doc.onreadystatechange=="function")
doc.onreadystatechange();},false);}
return doc;}
if(window.ActiveXObject)
return new ActiveXObject(getDomDocumentPrefix()+".DomDocument");}
catch(ex){}
throw new Error("Your browser does not support XmlDocument objects");};if(window.DOMParser&&window.XMLSerializer&&window.Node&&Node.prototype&&Node.prototype.__defineGetter__){Document.prototype.loadXML=function(s){var doc2=(new DOMParser()).parseFromString(s,"text/xml");while(this.hasChildNodes())
this.removeChild(this.lastChild);for(var i=0;i<doc2.childNodes.length;i++){this.appendChild(this.importNode(doc2.childNodes[i],true));}};Document.prototype.__defineGetter__("xml",function(){return(new XMLSerializer()).serializeToString(this);});}
function cAutocomplete(sInputId)
{this.init(sInputId)}
cAutocomplete.CS_NAME='Autocomplete component'
cAutocomplete.CS_OBJ_NAME='AC_COMPONENT'
cAutocomplete.CS_LIST_PREFIX='ACL_'
cAutocomplete.CS_BUTTON_PREFIX='ACB_'
cAutocomplete.CS_INPUT_PREFIX='AC_'
cAutocomplete.CS_HIDDEN_INPUT_PREFIX='ACH_'
cAutocomplete.CS_INPUT_CLASSNAME='dropdown'
cAutocomplete.CB_AUTOINIT=true
cAutocomplete.CB_AUTOCOMPLETE=false
cAutocomplete.CB_FORCECORRECT=false
cAutocomplete.CB_MATCHSUBSTRING=false
cAutocomplete.CS_SEPARATOR=','
cAutocomplete.CS_ARRAY_SEPARATOR=','
cAutocomplete.CB_MATCHSTRINGBEGIN=true
cAutocomplete.CN_OFFSET_TOP=2
cAutocomplete.CN_OFFSET_LEFT=-1
cAutocomplete.CN_LINE_HEIGHT=19
cAutocomplete.CN_NUMBER_OF_LINES=10
cAutocomplete.CN_HEIGHT_FIX=2
cAutocomplete.CN_CLEAR_TIMEOUT=300
cAutocomplete.CN_SHOW_TIMEOUT=400
cAutocomplete.CN_REMOTE_SHOW_TIMEOUT=1000
cAutocomplete.CN_MARK_TIMEOUT=400
cAutocomplete.hListDisplayed=null
cAutocomplete.nCount=0
cAutocomplete.autoInit=function()
{var nI=0
var hACE=null
var sLangAtt
for(nI=0;nI<document.getElementsByTagName('INPUT').length;nI++)
{if(document.getElementsByTagName('INPUT')[nI].type.toLowerCase()=='text')
{sLangAtt=document.getElementsByTagName('INPUT')[nI].getAttribute('acdropdown')
if(sLangAtt!=null&&sLangAtt.length>0)
{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;nI<nTALength;nI++)
{sLangAtt=document.getElementsByTagName('TEXTAREA')[nI].getAttribute('acdropdown')
if(sLangAtt!=null&&sLangAtt.length>0)
{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;nI<nSelectsLength;nI++)
{aSelect=document.getElementsByTagName('SELECT')[nI]
sLangAtt=aSelect.getAttribute('acdropdown')
if(sLangAtt!=null&&sLangAtt.length>0)
{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.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=false
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=true}
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)}
this.bAssociative=true
var sAssociative=document.getElementById(this.sInputId).getAttribute('autocomplete_assoc')
if(sAssociative!=null&&sAssociative.length>0)
{if(sAssociative=='false')
{this.bAssociative=false}}
if(this.getListArrayType()!='url')
{this.bRemoteList=false}
else
{this.bRemoteList=true
this.sListURL=this.getListURL()
this.hXMLHttp=XmlHttp.create()}
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)}
else if(hForm.addEventListener)
{hForm.addEventListener('submit',cAutocomplete.onFormSubmit,false)}}}
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;nI<hInput.options.length;nI++)
{hArrKey=hInput.options.item(nI).value
sArrEl=hInput.options.item(nI).text
hArr[hArrKey]=sArrEl
if(hInput.options.item(nI).selected)
{this.nSelectedItemIdx=nI}}}
else
{var sAA=hInput.getAttribute('autocomplete_list')
var sAAS=hInput.getAttribute('autocomplete_list_sort')
var sArrayType=this.getListArrayType()
switch(sArrayType)
{case'array':hArr=eval(sAA.substring(6))
break
case'list':hArr=new Array()
var hTmpArray=sAA.substring(5).split('|')
var aValueArr
for(hKey in hTmpArray)
{aValueArr=hTmpArray[hKey].split(cAutocomplete.CS_ARRAY_SEPARATOR)
if(aValueArr.length==1)
{hArr[hKey]=hTmpArray[hKey]
this.bAssociative=false}
else
{hArr[aValueArr[0]]=aValueArr[1]}}
break}
if(sAAS!=null&&eval(sAAS))
{this.bSorted=true
this.aData=hArr.sort()
hArr=hArr.sort()}}
this.setArray(hArr)}
cAutocomplete.prototype.setArray=function(sArray)
{if(typeof sArray=='string')
{this.aData=eval(sArray)}
else
{this.aData=sArray}
this.bListUpdated=true}
cAutocomplete.prototype.setListArray=function(sArray)
{this.setArray(sArray)
this.updateAndShowList()}
cAutocomplete.prototype.getListArrayType=function()
{var hInput=document.getElementById(this.sInputId)
var sAA=hInput.getAttribute('autocomplete_list')
if(sAA!=null&&sAA.length>0)
{if(sAA.indexOf('array:')>=0)
{return'array'}
else if(sAA.indexOf('list:')>=0)
{return'list'}
else if(sAA.indexOf('url:')>=0)
{return'url'}}}
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)}}}
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.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.prepareList=function(bFullList)
{var hInput=document.getElementById(this.sInputId)
this.sActiveValue=hInput.value
if(this.bRemoteList)
{hInput.readonly=true}
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'
hInput.value='espere...'
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.nItemsDisplayed<cAutocomplete.CN_NUMBER_OF_LINES)?this.nItemsDisplayed:cAutocomplete.CN_NUMBER_OF_LINES;hList.style.height=nNumLines*cAutocomplete.CN_LINE_HEIGHT+cAutocomplete.CN_HEIGHT_FIX+'px'
hContainer.style.top=nTop+hInput.offsetHeight+cAutocomplete.CN_OFFSET_TOP+'px'
hContainer.style.left=nLeft+cAutocomplete.CN_OFFSET_LEFT+'px'
hContainer.style.display='none'
hContainer.style.visibility='visible'
hContainer.style.display='block'
cAutocomplete.hListDisplayed=this
this.bListDisplayed=true}
cAutocomplete.prototype.binarySearch=function(sFilter)
{var nLow=0
var nHigh=this.aSearchData.length-1
var nMid
var nTry,nLastTry
var sData
var nLen=sFilter.length
var lastTry
while(nLow<=nHigh)
{nMid=(nLow+nHigh)/2
nTry=(nMid<1)?0:parseInt(nMid)
sData=this.aSearchData[nTry].substr(0,nLen)
if(sData<sFilter)
{nLow=nTry+1
continue}
if(sData>sFilter)
{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;nI<nItemsLength;nI++)
{if(this.formatOptions)
{hTItems[nI].childNodes[0].innerHTML=this.formatOptions(hTItems[nI].childNodes[0].realText,nI)}
hTItems[nI].style.display='block'}
nCount=nItemsLength
if(nItemsLength>0)
{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<nItemsLength;nI++)
{hTItems[nI].style.display='none'
if(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<nItemsLength;nI++)
{hTItems[nI].style.display='none'
if((this.bMatchBegin&&this.aSearchData[nI].indexOf(sStartWith)==0)||(!this.bMatchBegin&&this.aSearchData[nI].indexOf(sStartWith)>=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'
cAutocomplete.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<nItemsLength)
{this.selectOption(hList.childNodes[nOptionIndex].getElementsByTagName('A')[0])}}
cAutocomplete.prototype.selectOptionByValue=function(sValue)
{if(this.bListUpdated)
{this.createList()}
sValue=sValue.toLowerCase()
var hContainer=document.getElementById(this.sListId)
var hList=hContainer.getElementsByTagName('UL')[0]
var nItemsLength=hList.childNodes.length
var nSelectedIndex=-1
for(var nI=0;nI<nItemsLength;nI++)
{if(this.aSearchData[nI].indexOf(sValue)==0)
{nSelectedIndex=nI}}
if(nSelectedIndex>=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.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(hEvent.keyCode==38)
{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)
{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(hEvent.keyCode==13||hEvent.keyCode==27||hEvent.keyCode==38||hEvent.keyCode==40)
{if(hEvent.preventDefault)
{hEvent.preventDefault()}
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 13:case 32:case 46:case 35:case 36:break;default:if(hEvent.keyCode<48)
{if(hEvent.preventDefault)
{hEvent.preventDefault()}
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)}
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}
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)
{hElement.bLocked=false
hEvent.returnValue=false
if(hEvent.preventDefault)
{hEvent.preventDefault()}
return false}}
var dp={sh:{Utils:{},Brushes:{}}};dp.sh.Config={Version:'1.1.0',About:'<html><head><title>About...</title></head><body class="dp-about"><table cellspacing="0"><tr><td class="copy"><div class="para title">dp.SyntaxHighlighter</div><div class="para">Version: {V}</div><div class="para"><a href="http://www.dreamprojections.com/sh/?ref=about" target="_blank">http://www.dreamprojections.com/SyntaxHighlighter</a></div>&copy;2004-2005 Dream Projections Inc. All right reserved.</td></tr><tr><td class="footer"><input type="button" class="close" value="OK" onClick="window.close()"/></td></tr></table></body></html>'};dp.SyntaxHighlighter=dp.sh;dp.sh.Utils.ViewSource=function(sender)
{var code=sender.parentNode.originalCode;var wnd=window.open('','_blank','width=750, height=400, location=0, resizable=1, menubar=0, scrollbars=1');code=code.replace(/</g,'&lt;');wnd.document.write('<pre>'+code+'</pre>');wnd.document.close();}
dp.sh.Utils.ToClipboard=function(sender)
{var code=sender.parentNode.originalCode;if(window.clipboardData)
{window.clipboardData.setData('text',code);alert('The code is in your clipboard now.');}}
dp.sh.Utils.PrintSource=function(sender)
{var td=sender.parentNode;var code=td.processedCode;var iframe=document.createElement('IFRAME');var doc=null;var wnd=iframe.style.cssText='position:absolute; width:0px; height:0px; left:-5px; top:-5px;';td.appendChild(iframe);doc=iframe.contentWindow.document;code=code.replace(/</g,'&lt;');doc.open();doc.write('<pre>'+code+'</pre>');doc.close();iframe.contentWindow.focus();iframe.contentWindow.print();td.removeChild(iframe);}
dp.sh.Utils.About=function()
{var wnd=window.open('','_blank','dialog, width=320, height=150');var doc=wnd.document;var styles=document.getElementsByTagName('style');var links=document.getElementsByTagName('link');doc.write(dp.sh.Config.About.replace('{V}',dp.sh.Config.Version));for(var i=0;i<styles.length;i++)
doc.write('<style>'+styles[i].innerHTML+'</style>');for(var i=0;i<links.length;i++)
if(links[i].rel.toLowerCase()=='stylesheet')
doc.write('<link type="text/css" rel="stylesheet" href="'+links[i].href+'"></link>');doc.close();wnd.focus();}
dp.sh.Match=function(value,index,css)
{this.value=value;this.index=index;this.length=value.length;this.css=css;}
dp.sh.Highlighter=function()
{this.addGutter=true;this.addControls=true;this.tabsToSpaces=true;}
dp.sh.Highlighter.SortCallback=function(m1,m2)
{if(m1.index<m2.index)
return-1;else if(m1.index>m2.index)
return 1;else
{if(m1.length<m2.length)
return-1;else if(m1.length>m2.length)
return 1;}
return 0;}
dp.sh.Highlighter.prototype.GetMatches=function(regex,css)
{var index=0;var match=null;while((match=regex.exec(this.code))!=null)
{this.matches[this.matches.length]=new dp.sh.Match(match[0],match.index,css);}}
dp.sh.Highlighter.prototype.AddBit=function(str,css)
{var span=document.createElement('span');str=str.replace(/&/g,'&amp;');str=str.replace(/ /g,'&nbsp;');str=str.replace(/</g,'&lt;');str=str.replace(/\n/gm,'&nbsp;<br>');if(css!=null)
{var regex=new RegExp('<br>','gi');if(regex.test(str))
{var lines=str.split('&nbsp;<br>');str='';for(var i=0;i<lines.length;i++)
{span=document.createElement('SPAN');span.className=css;span.innerHTML=lines[i];this.div.appendChild(span);if(i+1<lines.length)
{this.div.appendChild(document.createElement('BR'));}}}
else
{span.className=css;span.innerHTML=str;this.div.appendChild(span);}}
else
{span.innerHTML=str;this.div.appendChild(span);}}
dp.sh.Highlighter.prototype.IsInside=function(match)
{if(match==null||match.length==0)
{return;}
for(var i=0;i<this.matches.length;i++)
{var c=this.matches[i];if(c==null)
{continue;}
if((match.index>c.index)&&(match.index<=c.index+c.length))
{return true;}}
return false;}
dp.sh.Highlighter.prototype.ProcessRegexList=function()
{for(var i=0;i<this.regexList.length;i++)
{this.GetMatches(this.regexList[i].regex,this.regexList[i].css);}}
dp.sh.Highlighter.prototype.ProcessSmartTabs=function(code)
{var lines=code.split('\n');var result='';var tabSize=4;var tab='\t';function InsertSpaces(line,pos,count)
{var left=line.substr(0,pos);var right=line.substr(pos+1,line.length);var spaces='';for(var i=0;i<count;i++)
{spaces+=' ';}
return left+spaces+right;}
function ProcessLine(line,tabSize)
{if(line.indexOf(tab)==-1)
{return line;}
var pos=0;while((pos=line.indexOf(tab))!=-1)
{var spaces=tabSize-pos%tabSize;line=InsertSpaces(line,pos,spaces);}
return line;}
for(var i=0;i<lines.length;i++)
{var line=lines[i];result+=ProcessLine(line,tabSize)+'\n';}
return result;}
dp.sh.Highlighter.prototype.SwitchToTable=function()
{var lines=this.div.innerHTML.split(/<BR>/gi);var row=null;var cell=null;var html='';var pipe=' | ';function UtilHref(util,text)
{return'<a href="#" onclick="dp.sh.Utils.'+util+'(this); return false;">'+text+'</a>';}
row=this.table.insertRow(-1);if(this.addGutter==true)
{cell=row.insertCell(-1);cell.className='tools-corner';}
if(this.addControls==true)
{cell=row.insertCell(-1);cell.originalCode=this.originalCode;cell.processedCode=this.code;cell.className='tools';cell.innerHTML=UtilHref('ViewSource','view plain')+pipe+UtilHref('PrintSource','print');if(window.clipboardData)
{cell.innerHTML+=pipe+UtilHref('ToClipboard','copy to clipboard');}
cell.innerHTML+=pipe+UtilHref('About','?');}
for(var i=0;i<lines.length-1;i++)
{row=this.table.insertRow(-1);if(this.addGutter==true)
{cell=row.insertCell(-1);cell.className='gutter';cell.innerHTML=i+1;}
cell=row.insertCell(-1);cell.className='line';cell.innerHTML=lines[i];}
this.div.innerHTML='';}
dp.sh.Highlighter.prototype.Highlight=function(code)
{function Trim(str)
{var begining=new RegExp('^[\\s\\n]','g');var end=new RegExp('[\\s\\n]$','g');while(begining.test(str))
{str=str.substr(1);}
while(end.test(str))
{str=str.substr(0,str.length-1);}
return str;}
function Copy(string,pos1,pos2)
{return string.substr(pos1,pos2-pos1);}
var pos=0;this.originalCode=code;this.code=Trim(code);this.div=document.createElement('DIV');this.table=document.createElement('TABLE');this.matches=new Array();if(this.CssClass!=null)
{this.table.className=this.CssClass;}
if(this.tabsToSpaces==true)
{this.code=this.ProcessSmartTabs(this.code);}
this.table.border=0;this.table.cellSpacing=0;this.table.cellPadding=0;this.ProcessRegexList();if(this.matches.length==0)
{return;}
this.matches=this.matches.sort(dp.sh.Highlighter.SortCallback);for(var i=0;i<this.matches.length;i++)
{if(this.IsInside(this.matches[i]))
{this.matches[i]=null;}}
for(var i=0;i<this.matches.length;i++)
{var match=this.matches[i];if(match==null||match.length==0)
{continue;}
this.AddBit(Copy(this.code,pos,match.index),null);this.AddBit(match.value,match.css);pos=match.index+match.length;}
this.AddBit(this.code.substr(pos),null);this.SwitchToTable();}
dp.sh.Highlighter.prototype.GetKeywords=function(str)
{return'\\b'+str.replace(/ /g,'\\b|\\b')+'\\b';}
dp.sh.HighlightAll=function(name,showGutter,showControls)
{var elements=document.getElementsByName(name);var highlighter=null;var registered=new Object();var propertyName='value';function FindValue()
{var a=arguments;for(var i=0;i<a.length;i++)
if(a[i]!=null&&((typeof(a[i])=='string'&&a[i]!='')||(typeof(a[i])=='object'&&a[i].value!='')))
return a[i];return null;}
if(elements==null)
{return;}
if(showGutter==null)
{showGutter=true;}
if(showControls==null)
{showControls=true;}
for(var brush in dp.sh.Brushes)
{var aliases=dp.sh.Brushes[brush].Aliases;if(aliases==null)
{continue;}
for(var i=0;i<aliases.length;i++)
{registered[aliases[i]]=brush;}}
for(var i=0;i<elements.length;i++)
{var element=elements[i];var language=FindValue(element.attributes['class'],element.className,element.attributes['language'],element.language);if(language==null)
continue;if(language.value)
language=language.value;language=(language+'').toLowerCase();if(registered[language]==null)
{continue;}
highlighter=new dp.sh.Brushes[registered[language]]();element.style.display='none';highlighter.addGutter=showGutter;highlighter.addControls=showControls;highlighter.Highlight(element[propertyName]);var div=document.createElement('DIV');div.className='dp-highlighter';div.appendChild(highlighter.table);element.parentNode.insertBefore(div,element);}}
dp.sh.Brushes.Xml=function()
{this.CssClass='dp-xml';}
dp.sh.Brushes.Xml.prototype=new dp.sh.Highlighter();dp.sh.Brushes.Xml.Aliases=['xml','xhtml','xslt','html','xhtml'];dp.sh.Brushes.Xml.prototype.ProcessRegexList=function()
{function push(array,value)
{array[array.length]=value;}
var index=0;var match=null;var regex=null;this.GetMatches(new RegExp('<\\!\\[[\\w\\s]*?\\[(.|\\s)*?\\]\\]>','gm'),'cdata');this.GetMatches(new RegExp('<!--\\s*.*\\s*?-->','gm'),'comments');regex=new RegExp('([\\w-\.]+)\\s*=\\s*(".*?"|\'.*?\'|\\w+)*','gm');while((match=regex.exec(this.code))!=null)
{push(this.matches,new dp.sh.Match(match[1],match.index,'attribute'));if(match[2]!=undefined)
{push(this.matches,new dp.sh.Match(match[2],match.index+match[0].indexOf(match[2]),'attribute-value'));}}
this.GetMatches(new RegExp('</*\\?*(?!\\!)|/*\\?*>','gm'),'tag');regex=new RegExp('</*\\?*\\s*([\\w-\.]+)','gm');while((match=regex.exec(this.code))!=null)
{push(this.matches,new dp.sh.Match(match[1],match.index+match[0].indexOf(match[1]),'tag-name'));}}
document.getElementById('in_buscador').innerHTML='\
<form name="buscador" id="buscador" action="">\
<input name="from_date" id="from_date" class="textoform" value="" type="hidden" onchange="document.forms[\'buscador\'][\'departureDateDay\'].selectedIndex=document.forms[\'buscador\'][\'from_date\'].value.substring(0,2)-1;document.forms[\'buscador\'][\'departureDateMes\'].selectedIndex=document.forms[\'buscador\'][\'from_date\'].value.substring(3,5)-1;document.forms[\'buscador\'][\'departureDateAno\'].selectedIndex=(document.forms[\'buscador\'][\'from_date\'].value.substring(6,10)==\'2010\')?0:1;" />\
<input name="to_date" id="to_date" class="textoform" value="" type="hidden" onchange="document.forms[\'buscador\'][\'returnDateDay\'].selectedIndex=document.forms[\'buscador\'][\'to_date\'].value.substring(0,2)-1;document.forms[\'buscador\'][\'returnDateMes\'].selectedIndex=document.forms[\'buscador\'][\'to_date\'].value.substring(3,5)-1;document.forms[\'buscador\'][\'returnDateAno\'].selectedIndex=(document.forms[\'buscador\'][\'to_date\'].value.substring(6,10)==\'2010\')?0:1;" />\
<a name="n_tabla_buscador"></a><table summary="" border="0" id="tabla_buscador">\
<tr><td align="left" valign="top">\
<div>\
<div>\
<table width="390" border="0" cellspacing="0" cellpadding="0">\
<tr>\
<td class="topbg" ></td>\
</tr>\
<tr>\
<td class="backtab">\
<table width="0" border="0" cellpadding="3" cellspacing="1">\
<tr>\
<td class="campir" >Tipo de vuelo</td>\
<td nowrap="nowrap" class="campiex" valign="top"><div style="font-size:11px;font-family:Verdana,arial,helvetica">\
<input name="td_chkOneWay" id="flight_type" class="textoform" type="radio" value="2" onclick="oneWay(false)" checked="checked"/>\
Ida y Vuelta &nbsp;&nbsp;\
<input name="td_chkOneWay" id="flight_type" class="textoform" type="radio" value="1" onclick="oneWay(true)" />\
Sólo Ida</div></td>\
</tr>\
<tr>\
<td nowrap="nowrap" class="campir" >Ciudad de Origen</td>\
<td nowrap="nowrap" class="campiex" style="text-align:right">\
<input type="hidden" name="td_D_City" id="td_D_City" />\
<input id="autocomplete_remote" name="td_D_xCity" style="height:14px;width:210px;font-size:12px" class="textoform"\
value="" acdropdown="true" autocomplete_list="url:/autocompletar/codigos_aeropuertos.php?s=[S]&l=10" autocomplete_matchsubstring="true" tabindex="2" onkeypress="ponindi(0);" />&nbsp;\
<img src="http://i1a.comprarvuelosbaratos.com/ayuda01.gif" style="cursor:help" alt="" width="16" height="16" title="&lt;div&gt; &lt;span class=\'c11\'&gt;Origen del vuelo:&lt;/span &gt; &lt;ul class=\'xc2\'&gt;&lt;li class=\'xc111\'&gt;Escribe el código del aeropuerto de partida (3 letras)&lt;/li&gt;&lt;li class=\'xc111\'&gt;Después de un momento aparecerá una lista con el nombre de la ciudad y país, y otras posibles opciones&lt;/li&gt;&lt;li class=\'xc111\'&gt;Selecciona la ciudad y país que corresponda&lt;/li&gt;&lt;li class=\'xc111\'&gt;Si no conoces el código del aeropuerto, escribe las primeras letras del nombre de la ciudad.&lt;/li&gt;&lt;li class=\'xc111\'&gt;Tras un momento aparece una lista de posibles ciudades y países&lt;/li&gt;&lt;li class=\'xc111\'&gt;Selecciona la ciudad y país que corresponda&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt">\
</td>\
</tr>\
<tr>\
<td nowrap="nowrap" class="campir" >Ciudad de Destino</td>\
<td nowrap="nowrap" class="campiex" style="text-align:right">\
<input type="hidden" name="td_A_City" id="td_A_City" />\
<input id="zautocomplete_remote" name="td_A_xCity" style="height:14px;width:210px;font-size:12px" class="textoform"\
value="" acdropdown="true" autocomplete_list="url:/autocompletar/codigos_aeropuertos.php?s=[S]&l=10" autocomplete_matchsubstring="true" tabindex="3" onkeypress="ponindi(0);" />&nbsp;\
<img src="http://i1a.comprarvuelosbaratos.com/ayuda01.gif" style="cursor:help" alt="" width="16" height="16" title="&lt;div&gt; &lt;span class=\'c11\'&gt;Destino del vuelo:&lt;/span &gt; &lt;ul class=\'xc2\'&gt;&lt;li class=\'xc111\'&gt;Escribe el código del aeropuerto de destino (3 letras)&lt;/li&gt;&lt;li class=\'xc111\'&gt;Después de un momento aparecerá una lista con el nombre de la ciudad y país, y otras posibles opciones&lt;/li&gt;&lt;li class=\'xc111\'&gt;Selecciona la ciudad y país que corresponda&lt;/li&gt;&lt;li class=\'xc111\'&gt;Si no conoces el código del aeropuerto, escribe las primeras letras del nombre de la ciudad.&lt;/li&gt;&lt;li class=\'xc111\'&gt;Tras un momento aparece una lista de posibles ciudades y países&lt;/li&gt;&lt;li class=\'xc111\'&gt;Selecciona la ciudad y país que corresponda&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt">\
</td>\
</tr>\
<tr>\
<td nowrap="nowrap" class="campir" >Fecha de salida</td>\
<td nowrap="nowrap" class="campiex">Día <select name="td_D_Day" id="departureDateDay" class="textoform" onchange="ponindi(0);">\
<span class="textoform">\
<option value="01">01</option>\
<option value="02">02</option>\
<option value="03">03</option>\
<option value="04">04</option>\
<option value="05">05</option>\
<option value="06">06</option>\
<option value="07">07</option>\
<option value="08">08</option>\
<option value="09">09</option>\
<option value="10">10</option>\
<option value="11">11</option>\
<option value="12">12</option>\
<option value="13">13</option>\
<option value="14">14</option>\
<option value="15">15</option>\
<option value="16">16</option>\
<option value="17">17</option>\
<option value="18">18</option>\
<option value="19">19</option>\
<option value="20">20</option>\
<option value="21">21</option>\
<option value="22">22</option>\
<option value="23">23</option>\
<option value="24">24</option>\
<option value="25">25</option>\
<option value="26">26</option>\
<option value="27">27</option>\
<option value="28">28</option>\
<option value="29">29</option>\
<option value="30">30</option>\
<option value="31">31</option>\
</span>\
</select>\
&nbsp;Mes <select name="td_D_Mes" id="departureDateMes" class="textoform" onchange="ponindi(0);">\
<span class="textoform">\
<option value="01">01</option>\
<option value="02">02</option>\
<option value="03">03</option>\
<option value="04">04</option>\
<option value="05">05</option>\
<option value="06">06</option>\
<option value="07">07</option>\
<option value="08">08</option>\
<option value="09">09</option>\
<option value="10">10</option>\
<option value="11">11</option>\
<option value="12">12</option>\
</span>\
</select>\
&nbsp;Año <select name="td_D_Anno" id="departureDateAno" class="textoform" onchange="ponindi(0);">\
<option class="textoform" value="2010">2010</option>\
<option class="textoform" value="2011">2011</option>\
</select>\
&nbsp;<img width="16" height="16" style="cursor:pointer" src="http://i1a.comprarvuelosbaratos.com/cal.gif" name="from_date_img" id="from_date_img" alt="" />\
</td>\
</tr>\
<tr>\
<td nowrap="nowrap" class="campir" >Fecha de regreso</td>\
<td nowrap="nowrap" class="campiex">Día <select name="td_R_Day" id="returnDateDay" class="textoform" onchange="ponindi(0);">\
<span class="textoform">\
<option value="01" >01</option>\
<option value="02">02</option>\
<option value="03">03</option>\
<option value="04">04</option>\
<option value="05">05</option>\
<option value="06">06</option>\
<option value="07">07</option>\
<option value="08">08</option>\
<option value="09">09</option>\
<option value="10">10</option>\
<option value="11">11</option>\
<option value="12">12</option>\
<option value="13">13</option>\
<option value="14">14</option>\
<option value="15">15</option>\
<option value="16">16</option>\
<option value="17">17</option>\
<option value="18">18</option>\
<option value="19">19</option>\
<option value="20">20</option>\
<option value="21">21</option>\
<option value="22">22</option>\
<option value="23">23</option>\
<option value="24">24</option>\
<option value="25">25</option>\
<option value="26">26</option>\
<option value="27">27</option>\
<option value="28">28</option>\
<option value="29">29</option>\
<option value="30">30</option>\
<option value="31">31</option>\
</span>\
</select>\
&nbsp;Mes <select name="td_R_Mes" id="returnDateMes" class="textoform" onchange="ponindi(0);">\
<span class="textoform">\
<option value="01" >01</option>\
<option value="02">02</option>\
<option value="03">03</option>\
<option value="04">04</option>\
<option value="05">05</option>\
<option value="06">06</option>\
<option value="07">07</option>\
<option value="08">08</option>\
<option value="09">09</option>\
<option value="10">10</option>\
<option value="11">11</option>\
<option value="12">12</option>\
</span>\
</select>\
&nbsp;Año <select name="td_R_Anno" id="returnDateAno" class="textoform" onchange="ponindi(0);">\
<option class="textoform" value="2010" >2010</option>\
<option class="textoform" value="2011">2011</option>\
</select>\
&nbsp;<img width="16" height="16" style="cursor:pointer" src="http://i1a.comprarvuelosbaratos.com/cal.gif" name="to_date_img" id="to_date_img" alt="" />\
</td>\
</tr>\
<tr>\
<td nowrap="nowrap" class="campir" title=""> N&uacute;m. de pasajeros</td>\
<td nowrap="nowrap" class="campiexb">\
<table cellpadding="0" cellspacing="0" width="100%" align="center">\
<tr>\
<td class="textoform" height="25" colspan="4"><span class="Stile1"> Adultos </span>\
<select name="td_select_adt" id="td_select_adt" class="textoform" onchange="ponindi(0)">\
<span class="textoform">\
<option value="1">1</option>\
<option value="2">2</option>\
<option value="3">3</option>\
<option value="4">4</option>\
<option value="5">5</option>\
<option value="6">6</option>\
<option value="7">7</option>\
<option value="8">8</option>\
<option value="0" >0</option>\
</span>\
</select>\
&nbsp;<span class="Stile1">Niños </span>\
<select name="td_select_chd" id="td_select_chd" class="textoform" onchange="ponindi(0)">\
<span class="textoform">\
<option value="0" >0</option>\
<option value="1">1</option>\
<option value="2">2</option>\
<option value="3">3</option>\
<option value="4">4</option>\
<option value="5">5</option>\
<option value="6">6</option>\
<option value="7">7</option>\
<option value="8">8</option>\
</span>\
</select>\
&nbsp;<span class="Stile1">Bebés </span>\
<span class="textoform">\
<select name="td_select_inf" id="td_select_inf" class="textoform" onchange="ponindi(0);if(this.selectedIndex>this.form.td_select_adt.selectedIndex+1){alert(\'El número de bebés debe ser inferior o igual al número de adultos.\');this.selectedIndex=0;this.focus();}">\
<option value="0" >0</option>\
<option value="1">1</option>\
<option value="2">2</option>\
<option value="3">3</option>\
<option value="4">4</option>\
<option value="5">5</option>\
</span>\
</select></td>\
</tr></table>\
</td></tr></table>\
<table width="380" border="0" cellspacing="0" cellpadding="0" align="center">\
<tr>\
<td align="left" class="Stile1"></td>\
</tr>\
</table>\
<table width="380" border="0" cellspacing="1" cellpadding="2" id="ab_buscador">\
<tr>\
<td height="90" colspan="4" align="center" bgcolor="#FFFFFF" style="border-top:1px dashed #917E43">\
<a href="#n_tabla_buscador"><img style="cursor:pointer" id="boton_buscar_vuelo2" src="http://i1a.comprarvuelosbaratos.com/buscar_vuelos_mas_baratos.png" width="230" height="28" alt="" onclick="Buscar(2)" border="0" /></a><img style="margin-bottom:11px;margin-left:2px;cursor:help" src="http://i1a.comprarvuelosbaratos.com/ayuda01.gif" title="Busca los proveedores que más barato están vendiendo este vuelo." /><br />\
<a style="margin-top:10px" title="Alerta al usuario sobre la aparición de una oferta o bajada en el precio de su vuelo." href="http://www.comprarvuelosbaratos.com/index_buscavuelos_altas.php">Alta en alerta de precios</a><br />\
<div id="infobus"></div>\
</td>\
</tr>\
</table>\
</td></tr><tr><td class="bottombot">\
</td></tr></table>\
</div>\
<input type="hidden" value="2" name="td_TripType" />\
<input type="hidden" name="td_D_Date" />\
<input type="hidden" name="td_R_Date" />\
<input type="hidden" value="08" name="td_D_Time" />\
<input type="hidden" value="08" name="td_R_Time" />\
<input type="hidden" name="td_D_Month" />\
<input type="hidden" name="td_R_Month" />\
<input type="hidden" name="empresa" />\
</td></tr></table>\
</form>'
var vuelos_hoy=new Date()
var vuelos_salida=new Date()
var vuelos_regreso=new Date()
vuelos_salida.setDate(vuelos_hoy.getDate()+4)
vuelos_regreso.setDate(vuelos_hoy.getDate()+18)
document.forms['buscador']['departureDateDay'].selectedIndex=vuelos_salida.getDate()-1
document.forms['buscador']['departureDateMes'].selectedIndex=vuelos_salida.getMonth()
document.forms['buscador']['departureDateAno'].selectedIndex=(vuelos_salida.getFullYear()=='2010')?0:1
document.forms['buscador']['returnDateDay'].selectedIndex=vuelos_regreso.getDate()-1
document.forms['buscador']['returnDateMes'].selectedIndex=vuelos_regreso.getMonth()
document.forms['buscador']['returnDateAno'].selectedIndex=(vuelos_regreso.getFullYear()=='2010')?0:1
document.forms['buscador']['from_date'].value=(vuelos_salida.getDate())+'/'+(vuelos_salida.getMonth()+1-0)+'/'+vuelos_salida.getFullYear()
document.forms['buscador']['to_date'].value=(vuelos_regreso.getDate())+'/'+(vuelos_regreso.getMonth()+1-0)+'/'+vuelos_regreso.getFullYear()
Calendar.setup({dateStatusFunc:disableDate,onUpdate:set2later,inputField:"from_date",ifFormat:"%d/%m/%Y",button:"from_date_img",daFormat:"%d/%m/%Y",firstDay:1,date:"25/12/07",weekNumbers:false,range:[2010,2011],electric:false});Calendar.setup({dateStatusFunc:disableDateTo,inputField:"to_date",ifFormat:"%d/%m/%Y",button:"to_date_img",daFormat:"%d/%m/%Y",date:"1/01/08",firstDay:1,weekNumbers:false,range:[2010,2011],electric:false});oneWay(false);document.getElementById("autocomplete_remote").focus()

