//v.3.0 build 110707 /* Copyright DHTMLX LTD. http://www.dhtmlx.com You allowed to use this component or parts of it under GPL terms To use it on other terms or get Professional edition of the component please contact us at sales@dhtmlx.com */ function dhtmlXComboFromSelect(a,b){typeof a=="string"&&(a=document.getElementById(a));b=b||a.getAttribute("width")||(window.getComputedStyle?window.getComputedStyle(a,null).width:a.currentStyle?a.currentStyle.width:0);if(!b||b=="auto")b=a.offsetWidth||100;var c=document.createElement("SPAN");a.parentNode.insertBefore(c,a);a.style.display="none";for(var e=a.getAttribute("opt_type"),d=new dhtmlXCombo(c,a.name,b,e,a.tabIndex),f=[],h=-1,g=0;g=0&&d.selectOption(h,null,!0);a.onchange&&d.attachEvent("onChange",a.onchange);a.style.direction=="rtl"&&d.setRTL&&d.setRTL(!0);return d}var dhtmlXCombo_optionTypes=[]; function dhtmlXCombo(a,b,c,e,d){typeof a=="string"&&(a=document.getElementById(a));this.dhx_Event();this.optionType=e!=window.undefined&&dhtmlXCombo_optionTypes[e]?e:"default";this._optionObject=dhtmlXCombo_optionTypes[this.optionType];this._disabled=!1;if(!window.dhx_glbSelectAr)window.dhx_glbSelectAr=[],window.dhx_openedSelect=null,window.dhx_SelectId=1,dhtmlxEvent(document.body,"click",this.closeAll),dhtmlxEvent(document.body,"keydown",function(a){try{(a||event).keyCode==9&&window.dhx_glbSelectAr[0].closeAll()}catch(b){}return!0}); if(a.tagName=="SELECT")return dhtmlXComboFromSelect(a);else this._createSelf(a,b,c,d);dhx_glbSelectAr.push(this)}dhtmlXCombo.prototype.setSize=function(a){this.DOMlist.style.width=a+"px";if(this.DOMlistF)this.DOMlistF.style.width=a+"px";this.DOMelem.style.width=a+"px";this.DOMelem_input.style.width=Math.max(0,a-19)+"px"}; dhtmlXCombo.prototype.enableFilteringMode=function(a,b,c,e){this._filter=convertStringToBoolean(a);if(b)this._xml=b,this._autoxml=convertStringToBoolean(e);if(convertStringToBoolean(c))this._xmlCache=[]};dhtmlXCombo.prototype.setFilteringParam=function(a,b){if(!this._prs)this._prs=[];this._prs.push([a,b])};dhtmlXCombo.prototype.disable=function(a){var b=convertStringToBoolean(a);if(this._disabled!=b)this._disabled=this.DOMelem_input.disabled=b}; dhtmlXCombo.prototype.readonly=function(a,b){this.DOMelem_input.readOnly=a?!0:!1;if(b===!1||a===!1)this.DOMelem.onkeyup=function(){};else{var c=this;this.DOMelem.onkeyup=function(a){a=a||window.event;if(a.keyCode!=9)a.cancelBubble=!0;if(a.keyCode>=48&&a.keyCode<=57||a.keyCode>=65&&a.keyCode<=90){for(var b=0;b15&&c<19)return!0;if(c==27)return!0;if(b.DOMlist.style.display!="block"&&c!="13"&&c!="9"&&(!b._filter||b._filterAny))b.DOMelem.onclick(a||event);if(c!="13"&&c!="9"){if(window.setTimeout(function(){b._onKeyB(c)},1),c=="40"||c=="38")return!1}else if(c==9)b._confirmSelection(),b.closeAll(),(a||event).cancelBubble=!1}; dhtmlXCombo.prototype._onKeyB=function(a){if(a=="40")var b=this.selectNext(1);else if(a=="38")this.selectNext(-1);else{this.callEvent("onKeyPressed",[a]);if(this._filter)return this.filterSelf(a==8||a==46);for(var c=0;c=0;a--)this.DOMlist.removeChild(this.DOMlist.childNodes[a]);for(a=0;a0&&(this.DOMlist.scrollTop+=d);d=this.DOMlist.scrollTop-this._selOption.content.offsetTop;d>0&&(this.DOMlist.scrollTop-=d);var f=this._selOption.data();c&&(this.setComboText(f[1]),this._confirmSelection(f[0], !1),this._autoxml&&a+1==this._lastLength&&this._fetchOptions(a+1,this._lasttext||""));if(b){var h=this.getComboText();h!=f[1]&&(this.setComboText(f[1]),dhtmlXRange(this.DOMelem_input,h.length+1,f[1].length))}else this.setComboText(f[1]);this._selOption.RedrawHeader(this);this.callEvent("onSelectionChange",[])}}; dhtmlXCombo.prototype._selectOption=function(a){(a||event).cancelBubble=!0;for(var b=_isIE?event.srcElement:a.target,c=this.combo;!b._self;)if(b=b.parentNode,!b)return;for(var e=0;e0&&(this.DOMlist.scrollTop+=a);a=this.DOMlist.scrollTop-this._selOption.content.offsetTop;a>0&&(this.DOMlist.scrollTop-= a)}_isIE&&this._IEFix(!0);this.DOMelem_input.focus();this._filter&&this.filterSelf()}};dhtmlXCombo.prototype._toggleSelect=function(a){var b=this.combo;b.DOMlist.style.display=="block"?b.closeAll():b.openSelect();(a||event).cancelBubble=!0}; dhtmlXCombo.prototype._fetchOptions=function(a,b){if(b=="")return this.closeAll(),this.clearAll();var c=this._xml+(this._xml.indexOf("?")!=-1?"&":"?")+"pos="+a+"&mask="+encodeURIComponent(b);this._lasttext=b;this._load?this._load=c:this.callEvent("onDynXLS",[b,a])&&this.loadXML(c)}; dhtmlXCombo.prototype.filterSelf=function(a){var b=this.getComboText();if(this._xml)this._lkmode=a,this._fetchOptions(0,b);var c=RegExp("^"+b.replace(/([\[\]\{\}\(\)\+\*\\\?\.])/g,"\\$1"),"i");this.filterAny=!1;for(var e=0;ec||b>f)b=0;c>f&&(c=f);if(b!=c)if(e.setSelectionRange)e.setSelectionRange(b,c);else if(e.createTextRange){var h=e.createTextRange();h.moveStart("character",b);h.moveEnd("character",c-f);try{h.select()}catch(g){}}}dhtmlXCombo_defaultOption=function(){this.init()}; dhtmlXCombo_defaultOption.prototype.init=function(){this.value=null;this.text="";this.selected=!1;this.css=""};dhtmlXCombo_defaultOption.prototype.select=function(){if(this.content)this.content.className="dhx_selected_option"+(dhtmlx.skin?" combo_"+dhtmlx.skin+"_sel":"")};dhtmlXCombo_defaultOption.prototype.hide=function(a){this.render().style.display=a?"none":""};dhtmlXCombo_defaultOption.prototype.isHidden=function(){return this.render().style.display=="none"}; dhtmlXCombo_defaultOption.prototype.deselect=function(){this.content&&this.render();this.content.className=""};dhtmlXCombo_defaultOption.prototype.setValue=function(a){this.value=a.value||"";this.text=a.text||"";this.css=a.css||"";this.content=null}; dhtmlXCombo_defaultOption.prototype.render=function(){if(!this.content){this.content=document.createElement("DIV");this.content._self=this;this.content.style.cssText="width:100%; overflow:hidden;"+this.css;if(_isOpera||_isKHTML)this.content.style.padding="2px 0px 2px 0px";this.content.innerHTML=this.text;this._ctext=_isIE?this.content.innerText:this.content.textContent}return this.content}; dhtmlXCombo_defaultOption.prototype.data=function(){if(this.content)return[this.value,this._ctext?this._ctext:this.text]};dhtmlXCombo_defaultOption.prototype.DrawHeader=function(a,b,c,e){var d=document.createElement("DIV");d.style.width=c+"px";d.className="dhx_combo_box "+(dhtmlx.skin||"");d._self=a;a.DOMelem=d;this._DrawHeaderInput(a,b,c,e);this._DrawHeaderButton(a,b,c);a.DOMParent.appendChild(a.DOMelem)}; dhtmlXCombo_defaultOption.prototype._DrawHeaderInput=function(a,b,c,e){var d=document.createElement("input");d.setAttribute("autocomplete","off");d.type="text";d.className="dhx_combo_input";if(e)d.tabIndex=e;d.style.width=c-19-(document.compatMode=="BackCompat"?0:3)+"px";a.DOMelem.appendChild(d);a.DOMelem_input=d;d=document.createElement("input");d.type="hidden";d.name=b;a.DOMelem.appendChild(d);a.DOMelem_hidden_input=d;d=document.createElement("input");d.type="hidden";d.name=(b||"").replace(/(\]?)$/, "_new_value$1");d.value="true";a.DOMelem.appendChild(d);a.DOMelem_hidden_input2=d};dhtmlXCombo_defaultOption.prototype._DrawHeaderButton=function(a){var b=document.createElement("img");b.className="dhx_combo_img";if(dhtmlx.image_path)dhx_globalImgPath=dhtmlx.image_path;b.src=(window.dhx_globalImgPath?dhx_globalImgPath:"")+"combo_select"+(dhtmlx.skin?"_"+dhtmlx.skin:"")+".gif";a.DOMelem.appendChild(b);a.DOMelem_button=b};dhtmlXCombo_defaultOption.prototype.RedrawHeader=function(){}; dhtmlXCombo_optionTypes["default"]=dhtmlXCombo_defaultOption; dhtmlXCombo.prototype.dhx_Event=function(){this.dhx_SeverCatcherPath="";this.attachEvent=function(a,b,c){c=c||this;a="ev_"+a;if(!this[a]||!this[a].addEvent){var e=new this.eventCatcher(c);e.addEvent(this[a]);this[a]=e}return a+":"+this[a].addEvent(b)};this.callEvent=function(a,b){return this["ev_"+a]?this["ev_"+a].apply(this,b):!0};this.checkEvent=function(a){return this["ev_"+a]?!0:!1};this.eventCatcher=function(a){var b=[],c=a,e=function(a,b){var a=a.split(":"),c="",d="",e=a[1];a[1]=="rpc"&&(c= ''+a[2]+"",d="",e=b);var k=function(){};return k},d=function(){if(b)var a=!0;for(var d=0;d