//v.2.5 build 91111

/*
Copyright DHTMLX LTD. http://www.dhtmlx.com
To use this component please contact sales@dhtmlx.com to obtain license
*/




function dhtmlXComboFromSelect(parent,size){
/*AGGIUNTA RICCARDO 18/01/2011 PER CONTROLLO SU FILTRO PERSONALIZZATO */
 this.filterActivationValue = 0;
 this.customFilter = false;
 //RICCARDO 31/01/2011
 this.customList = false;
/* FINE RICCARDO 18/01/2011 */
 if (typeof(parent)=="string")
 parent=document.getElementById(parent);
 /* AGGIUNTA RICCARDO 20/04/2011 PER MANTENIMENTO VECCHIA CLASSE */
 this.beforeParentClass = parent.className;
 /* FINE */
 size=size||parent.getAttribute("width")||(window.getComputedStyle?window.getComputedStyle(parent,null)["width"]:(parent.currentStyle?parent.currentStyle["width"]:0));if ((!size)||(size=="auto"))
 size=parent.offsetWidth||100;var z=document.createElement("SPAN");z.className = this.beforeParentClass;if(parent.style.direction=="rtl")z.style.direction = "rtl";parent.parentNode.insertBefore(z,parent);parent.style.display='none';var s_type = parent.getAttribute('opt_type');
 var w= new dhtmlXCombo(z,parent.name,size,s_type,parent.tabIndex);var x=new Array();var sel=0;for (var i=0;i<parent.options.length;i++){if (parent.options[i].selected)sel=i;var label=parent.options[i].innerHTML;var val=parent.options[i].getAttribute("value");if ((typeof(val)=="undefined")||(val===null)) val=label;x[i]={value:val,text:label,img_src:parent.options[i].getAttribute("img_src")}};w.addOption(x);parent.parentNode.removeChild(parent);w.selectOption(sel,null,true);if (parent.onchange)w.attachEvent("onChange",parent.onchange);return w};
 var dhtmlXCombo_optionTypes = [];
 
function dhtmlXCombo(parent,name,width,optionType,tabIndex){
	/*AGGIUNTA RICCARDO 18/01/2011 PER CONTROLLO SU FILTRO PERSONALIZZATO */
	this.filterActivationValue = 0;
	this.customFilter = false;
	//RICCARDO 31/01/2011
	this.customList = false;
	/* FINE RICCARDO 18/01/2011 */
	if (typeof(parent)=="string") {
		parent=document.getElementById(parent);
	}
	/* AGGIUNTA RICCARDO 20/04/2011 PER MANTENIMENTO VECCHIA CLASSE */
	this.beforeParentClass = parent.className;
	/* FINE */
	this.dhx_Event();
	this.optionType = (optionType != window.undefined && dhtmlXCombo_optionTypes[optionType]) ? optionType : 'default';
	this._optionObject = dhtmlXCombo_optionTypes[this.optionType];
	this._disabled = false;
	if(parent.style.direction == "rtl") {
		this.rtl = true;
	} else {
		this.rtl = false;
	}
	if (!window.dhx_glbSelectAr){
	window.dhx_glbSelectAr=new Array();
	window.dhx_openedSelect=null;
	window.dhx_SelectId=1;
	dhtmlxEvent(document.body,"click",this.closeAll);
	dhtmlxEvent(document.body,"keydown",function(e){try {if ((e||event).keyCode==9) window.dhx_glbSelectAr[0].closeAll()}catch(e) {};return true})
	}
	if (parent.tagName=="SELECT"){
		return dhtmlXComboFromSelect(parent);
	}else {
		this._createSelf(parent,name,width,tabIndex);
	}
	dhx_glbSelectAr.push(this);
};

 /*AGGIUNTA RICCARDO 18/01/2011 PER ABILITAZIONE FILTRO PERSONALIZZATO */
 dhtmlXCombo.prototype.enableCustomFilter = function(mode,filterMinLimit,listMode) {
	/* CONTROLLO LO STATO DI INIZIALIZZAZIONE DELLE VARIABILI */
	mode = mode||false;
	filterMinLimit = filterMinLimit||0;
	listMode = listMode||false;
	/* FINE CONTROLLO INIZIALIZZAZIONE VARIABILI */
	var boolMode = convertStringToBoolean(mode);
	if (boolMode) {
		this.customFilter = true;
		if (filterMinLimit>0) {
			this.filterActivationValue = filterMinLimit;
		}
	}
	var boolListMode = convertStringToBoolean(listMode);
	if (boolListMode) {
		this.customList = true;
	}
 }
 /* FINE RICCARDO 18/01/2011 */
 
 dhtmlXCombo.prototype.setSize = function(new_size,method) {
	 if (method=='percent') {
			this.DOMlist.style.width=new_size+"%";
			if (this.DOMlistF)this.DOMlistF.style.width=new_size+"%";
			this.DOMelem.style.width=new_size+"%";
			this.DOMelem_input.style.width = Math.max(0,(new_size-1))+'%';
		} else {
			this.DOMlist.style.width=new_size+"px";
			if (this.DOMlistF)this.DOMlistF.style.width=new_size+"px";
			this.DOMelem.style.width=new_size+"px";
			this.DOMelem_input.style.width = Math.max(0,(new_size-19))+'px';
	 }
 };

 dhtmlXCombo.prototype.enableFilteringMode = function(mode,url,cache,autosubload) {
	this._filter=convertStringToBoolean(mode);
	if (url){
		this._xml=url;
		this._autoxml=convertStringToBoolean(autosubload)
		};
	if (convertStringToBoolean(cache)) this._xmlCache=[];
	};

 dhtmlXCombo.prototype.setFilteringParam=function(name,value){if (!this._prs)this._prs=[];this._prs.push([name,value])};

 dhtmlXCombo.prototype.disable = function(mode){var z=convertStringToBoolean(mode);if (this._disabled==z)return;this.DOMelem_input.disabled=z;this._disabled=z};

 dhtmlXCombo.prototype.readonly = function(mode,autosearch){this.DOMelem_input.readOnly=mode ? true : false;if(autosearch===false || mode===false){this.DOMelem.onkeyup=function(ev){}}else {var that = this;this.DOMelem.onkeyup=function(ev){ev=ev||window.event;if (ev.keyCode!=9)ev.cancelBubble=true;if((ev.keyCode >= 48 && ev.keyCode <= 57)||(ev.keyCode >= 65 && ev.keyCode <= 90)){for(var i=0;i<that.optionsArr.length;i++){var text = that.optionsArr[i].text;if(text.toString().toUpperCase().indexOf(String.fromCharCode(ev.keyCode)) == 0){that.selectOption(i);break}};ev.cancelBubble=true}}}};

 dhtmlXCombo.prototype.getOption = function(value)
 {for(var i=0;i<this.optionsArr.length;i++)if(this.optionsArr[i].value==value)return this.optionsArr[i];return null};
 
 /* AGGIUNTA RICCARDO 20/04/2011 */
dhtmlXCombo.prototype.getOptionCount = function() {
	return this.optionsArr.length;
}
/* FINE RICCARDO 20/04/2011 */

 dhtmlXCombo.prototype.getOptionByLabel = function(value)
 {for(var i=0;i<this.optionsArr.length;i++)if(this.optionsArr[i].text==value || this.optionsArr[i]._ctext==value)return this.optionsArr[i];return null};

 dhtmlXCombo.prototype.getOptionByIndex = function(ind){return this.optionsArr[ind]};

 dhtmlXCombo.prototype.clearAll = function(all)
 {if (all)this.setComboText("");this.optionsArr=new Array();this.redrawOptions();if (all)this._confirmSelection()};

 dhtmlXCombo.prototype.deleteOption = function(value)
 {var ind=this.getIndexByValue(value);if(ind<0)return;if (this.optionsArr[ind]==this._selOption)this._selOption=null;this.optionsArr.splice(ind, 1);this.redrawOptions()};

 dhtmlXCombo.prototype.render=function(mode){this._skiprender=(!convertStringToBoolean(mode));this.redrawOptions()};

 dhtmlXCombo.prototype.updateOption = function(oldvalue, avalue, atext, acss)
 {var dOpt=this.getOption(oldvalue);if (typeof(avalue)!="object") avalue={text:atext,value:avalue,css:acss};dOpt.setValue(avalue);this.redrawOptions()};

 dhtmlXCombo.prototype.addOption = function(options)
 {if (!arguments[0].length || typeof(arguments[0])!="object")
 args = [arguments];else
 args = options;this.render(false);for (var i=0;i<args.length;i++){var attr = args[i];if (attr.length){attr.value = attr[0]||"";attr.text = attr[1]||"";attr.css = attr[2]||""};this._addOption(attr)};this.render(true)};

 dhtmlXCombo.prototype._addOption = function(attr)
 {dOpt = new this._optionObject();this.optionsArr.push(dOpt);dOpt.setValue.apply(dOpt,[attr]);this.redrawOptions()};

 dhtmlXCombo.prototype.getIndexByValue = function(val){for(var i=0;i<this.optionsArr.length;i++)if(this.optionsArr[i].value == val)return i;return -1};

 dhtmlXCombo.prototype.getSelectedValue = function(){return (this._selOption?this._selOption.value:null)};

 dhtmlXCombo.prototype.getComboText = function(){return this.DOMelem_input.value};

 dhtmlXCombo.prototype.setComboText = function(text){this.DOMelem_input.value=text};

 dhtmlXCombo.prototype.setComboValue = function(text){this.setComboText(text);for(var i=0;i<this.optionsArr.length;i++)if (this.optionsArr[i].data()[0]==text)
 return this.selectOption(i,null,true);this.DOMelem_hidden_input.value=text};

 dhtmlXCombo.prototype.getActualValue = function(){return this.DOMelem_hidden_input.value};

 dhtmlXCombo.prototype.getSelectedText = function(){return (this._selOption?this._selOption.text:"")};

 dhtmlXCombo.prototype.getSelectedIndex = function(){for(var i=0;i<this.optionsArr.length;i++)if(this.optionsArr[i] == this._selOption)return i;return -1};

 dhtmlXCombo.prototype.setName = function(name){this.DOMelem_hidden_input.name = name;this.DOMelem_hidden_input2 = name.replace(/(\]?)$/, "_new_value$1");this.name = name};

 dhtmlXCombo.prototype.show = function(mode){if (convertStringToBoolean(mode))
 this.DOMelem.style.display = "";else
 this.DOMelem.style.display = "none"};

 dhtmlXCombo.prototype.destructor = function()
 {var _sID = this._inID;this.DOMParent.removeChild(this.DOMelem);this.DOMlist.parentNode.removeChild(this.DOMlist);var s=dhx_glbSelectAr;this.DOMParent=this.DOMlist=this.DOMelem=0;this.DOMlist.combo=this.DOMelem.combo=0;for(var i=0;i<s.length;i++){if(s[i]._inID == _sID){s[i] = null;s.splice(i,1);return}}};

dhtmlXCombo.prototype._createSelf = function(selParent, name, width, tab){
	if (width.toString().indexOf("%")!=-1){
		var self = this;var resWidht=parseInt(width)/100;
		window.setInterval(function(){
			if (!selParent.parentNode)return;
			var ts=selParent.parentNode.offsetWidth*resWidht-2;
			if (ts<0)return;if (ts==self._lastTs)return;
			self.setSize(self._lastTs=ts)},500);
		var width=parseInt(selParent.offsetWidth);
	};
	var width=parseInt(width||100);
	this.ListPosition = "Bottom";
	this.DOMParent = selParent;
	this._inID = null;
	this.name = name;
	this._selOption = null;
	this.optionsArr = Array();
	var opt = new this._optionObject();
	opt.DrawHeader(this,name, width,tab);
	this.DOMlist = document.createElement("DIV");
	this.DOMlist.className = 'dhx_combo_list'+(this.rtl?"_rtl":"")+' '+(dhtmlx.skin?dhtmlx.skin+"_list":"");
	this.DOMlist.style.width=width-(_isIE?0:0)+"px";
	if (_isOpera || _isKHTML )this.DOMlist.style.overflow="auto";
	this.DOMlist.style.display = "none";
	document.body.insertBefore(this.DOMlist,document.body.firstChild);
	if (_isIE){this.DOMlistF = document.createElement("IFRAME");this.DOMlistF.style.border="0px";this.DOMlistF.className = 'dhx_combo_list';this.DOMlistF.style.width=width-(_isIE?0:0)+"px";this.DOMlistF.style.display = "none";this.DOMlistF.src="javascript:false;";document.body.insertBefore(this.DOMlistF,document.body.firstChild)};
	this.DOMlist.combo=this.DOMelem.combo=this;
	this.DOMelem_input.onkeydown = this._onKey;
	this.DOMelem_input.onkeypress = this._onKeyF;
	this.DOMelem_input.onblur = this._onBlur;
	this.DOMelem.onclick = this._toggleSelect;
	this.DOMlist.onclick = this._selectOption;
	this.DOMlist.onmousedown = function(){this._skipBlur=true};
	this.DOMlist.onkeydown = function(e){this.combo.DOMelem_input.focus();(e||event).cancelBubble=true;this.combo.DOMelem_input.onkeydown(e)};
	this.DOMlist.onmouseover = this._listOver;
};

 dhtmlXCombo.prototype._listOver = function(e)
 {e = e||event;e.cancelBubble = true;var node = (_isIE?event.srcElement:e.target);var that = this.combo;if ( node.parentNode == that.DOMlist ){if(that._selOption)that._selOption.deselect();if(that._tempSel)that._tempSel.deselect();var i=0;for (i;i<that.DOMlist.childNodes.length;i++){if (that.DOMlist.childNodes[i]==node)break};var z=that.optionsArr[i];that._tempSel=z;that._tempSel.select();if ((that._autoxml)&&((i+1)==that._lastLength)){that._fetchOptions(i+1,that._lasttext||"")}}};

 dhtmlXCombo.prototype._positList = function()
 {var pos=this.getPosition(this.DOMelem);if(this.ListPosition == 'Bottom'){this.DOMlist.style.top = pos[1]+this.DOMelem.offsetHeight-1+"px";this.DOMlist.style.left = pos[0]+"px"}else if(this.ListPosition == 'Top'){this.DOMlist.style.top = pos[1] - this.DOMlist.offsetHeight+"px";this.DOMlist.style.left = pos[0]+"px"}else{this.DOMlist.style.top = pos[1]+"px";this.DOMlist.style.left = pos[0]+this.DOMelem.offsetWidth+"px"}};

 dhtmlXCombo.prototype.getPosition = function(oNode,pNode){if (_isChrome){if(!pNode)var pNode = document.body
 
 var oCurrentNode=oNode;var iLeft=0;var iTop=0;while ((oCurrentNode)&&(oCurrentNode!=pNode)){iLeft+=oCurrentNode.offsetLeft-oCurrentNode.scrollLeft;iTop+=oCurrentNode.offsetTop-oCurrentNode.scrollTop;oCurrentNode=oCurrentNode.offsetParent};if (pNode == document.body ){if (_isIE && _isIE<8){if (document.documentElement.scrollTop)iTop+=document.documentElement.scrollTop;if (document.documentElement.scrollLeft)iLeft+=document.documentElement.scrollLeft}else
 if (!_isFF){iLeft+=document.body.offsetLeft;iTop+=document.body.offsetTop}};return new Array(iLeft,iTop)};var pos = getOffset(oNode);return [pos.left, pos.top]};

 dhtmlXCombo.prototype._correctSelection = function(){
	if (this.getComboText()!="")
		for (var i=0;i<this.optionsArr.length;i++)
			if (!this.optionsArr[i].isHidden()){
				return this.selectOption(i,true,false)
			};
			this.unSelectOption()
	};

 dhtmlXCombo.prototype.selectNext = function(step){var z=this.getSelectedIndex()+step;while (this.optionsArr[z]){if (!this.optionsArr[z].isHidden())
 return this.selectOption(z,false,false);z+=step}};

 dhtmlXCombo.prototype._onKeyF = function(e){var that=this.parentNode.combo;var ev=e||event;ev.cancelBubble=true;if (ev.keyCode=="13" || ev.keyCode=="9" ){that._confirmSelection();that.closeAll()}else
 if (ev.keyCode=="27" ){that._resetSelection();that.closeAll()}else that._activeMode=true;if (ev.keyCode=="13" || ev.keyCode=="27" ){that.callEvent("onKeyPressed",[ev.keyCode])
 return false};return true};

 dhtmlXCombo.prototype._onKey = function(e){
 var that=this.parentNode.combo;
 (e||event).cancelBubble=true;
 var ev=(e||event).keyCode;
 if (ev>15 && ev<19)return true;if (ev==27)return;if ((that.DOMlist.style.display!="block")&&(ev!="13")&&(ev!="9")&&((!that._filter)||(that._filterAny)))
 that.DOMelem.onclick(e||event);if ((ev!="13")&&(ev!="9")){window.setTimeout(function(){that._onKeyB(ev)},1);if (ev=="40" || ev=="38")return false}else if (ev==9){that.closeAll();(e||event).cancelBubble=false}};

 dhtmlXCombo.prototype._onKeyB = function(ev) {if (ev=="40"){var z=this.selectNext(1)}else if (ev=="38"){this.selectNext(-1)}else{this.callEvent("onKeyPressed",[ev])
 if (this._filter)return this.filterSelf((ev==8)||(ev==46));for(var i=0;i<this.optionsArr.length;i++)if (this.optionsArr[i].data()[1]==this.DOMelem_input.value){this.selectOption(i,false,false);return false};this.unSelectOption()};return true};

 dhtmlXCombo.prototype._onBlur = function()
 {var self = this.parentNode._self;window.setTimeout(function(){if (self.DOMlist._skipBlur)return !(self.DOMlist._skipBlur=false);self._confirmSelection();self.callEvent("onBlur",[])},100)
 
 };

 dhtmlXCombo.prototype.redrawOptions = function(){if (this._skiprender)return;for(var i=this.DOMlist.childNodes.length-1;i>=0;i--)this.DOMlist.removeChild(this.DOMlist.childNodes[i]);for(var i=0;i<this.optionsArr.length;i++)this.DOMlist.appendChild(this.optionsArr[i].render());};

 dhtmlXCombo.prototype.loadXML = function(url,afterCall){this._load=true;this.callEvent("onXLS",[]);if (this._prs)for (var i=0;i<this._prs.length;i++)url+=[getUrlSymbol(url),escape(this._prs[i][0]),"=",escape(this._prs[i][1])].join("");if ((this._xmlCache)&&(this._xmlCache[url])){this._fillFromXML(this,null,null,null,this._xmlCache[url]);if (afterCall)afterCall()}else{var xml=(new dtmlXMLLoaderObject(this._fillFromXML,this,true,true));if (afterCall)xml.waitCall=afterCall;xml._cPath=url;xml.loadXML(url)}};

 dhtmlXCombo.prototype.loadXMLString = function(astring){var xml=(new dtmlXMLLoaderObject(this._fillFromXML,this,true,true));xml.loadXMLString(astring)};

 dhtmlXCombo.prototype._fillFromXML = function(obj,b,c,d,xml){if (obj._xmlCache)obj._xmlCache[xml._cPath]=xml;var toptag=xml.getXMLTopNode("complete");if (toptag.tagName!="complete")return;var top=xml.doXPath("//complete");var options=xml.doXPath("//option");var add = false;obj.render(false);if ((!top[0])||(!top[0].getAttribute("add"))){obj.clearAll();obj._lastLength=options.length;if (obj._xml){if ((!options)|| (!options.length)) 
 obj.closeAll();else {if (obj._activeMode){obj._positList();obj.DOMlist.style.display="block";if (_isIE)obj._IEFix(true)}}}}else {obj._lastLength+=options.length;add = true};for (var i=0;i<options.length;i++){var attr = new Object();attr.text = options[i].firstChild?options[i].firstChild.nodeValue:"";for (var j=0;j<options[i].attributes.length;j++){var a = options[i].attributes[j];if (a)attr[a.nodeName] = a.nodeValue};obj._addOption(attr)};obj.render(add!=true || (!!options.length));if ((obj._load)&&(obj._load!==true))
 obj.loadXML(obj._load);else{obj._load=false;if ((!obj._lkmode)&&(!obj._filter))
 obj._correctSelection()};var selected=xml.doXPath("//option[@selected]");if (selected.length)obj.selectOption(obj.getIndexByValue(selected[0].getAttribute("value")),false,true);obj.callEvent("onXLE",[])};

 dhtmlXCombo.prototype.unSelectOption = function(){if (this._selOption)this._selOption.deselect();if(this._tempSel)this._tempSel.deselect();this._tempSel=this._selOption=null};

 dhtmlXCombo.prototype._confirmSelection = function(data,status) {
	
	if(arguments.length==0) {
		var z=this.getOptionByLabel(this.DOMelem_input.value);
		data = z?z.value:this.DOMelem_input.value;
		status = (z==null);
		if (data==this.getActualValue()) return
	};
	
	/* MODIFICA RICCARDO 18/01/2001: aggiunto controllo per autocompletamento in caso di filtro personalizzato */
	var input_text;
	var input_value;
	var OptionObject;
	/*
	AGGIUNTA RICCARDO 04/02/2011
		- if(!OptionObject)
			Se dovesse essere ricaricata la combo con nuovi valori, questo passaggio evita che l'oggetto cerci di settarsi su un elemento prima di averlo a disposizione.
			Il settaggio deve avvenire dopo il caricamento.
		- if (input_text=='')
			Se viene aperta la combo e poi richiusa senza aver settato niente, questo impedisce la generazione di un errore e lascia invariato il suo contenuto
	*/
	
	/* MODIFICA RICCARDO 19/01/2011 PER GESTIONE INVIO CON CAMPO VUOTO */
	if (data=="") {
		if (this.DOMelem_hidden_input.value!="") {
			input_value = this.DOMelem_hidden_input.value;
			OptionObject = this.getOption(input_value);
			if (!OptionObject) {
				return;
			}
			input_text = OptionObject.text;
		} else {
			return;
		}
	} else {
		if (this.customFilter && this.optionsArr.length>this.filterActivationValue) { //ATTIVO IL FILTRO SOLO SE É PREVISTO E SODDISFA IL VALORE MINIMO PER L'ATTIVAZIONE
			if (!this._selOption)  {
				if (this.DOMelem_hidden_input.value!="") {
					input_value = this.DOMelem_hidden_input.value;
					OptionObject = this.getOption(input_value);
					if (!OptionObject) {
						return;
					}
					input_text = OptionObject.text;
				} else {
					return;
				}
			} else {
				var full_data = this._selOption.data();
				input_text = full_data[1];
				if (input_text=='') {
					return;
				}
				OptionObject = this.getOptionByLabel(input_text);
				if (!OptionObject) {
					return;
				}
				input_value = OptionObject.value;
			}
		} else {
			input_value = data;
			OptionObject = this.getOption(data);
			if (!OptionObject) {
				return;
			}
			input_text = OptionObject.text;
		}
	}
	/* FINE MODIFICA RICCARDO 19/01/2011 */
	
	this.setComboText(input_text); /* IMPOSTA IL TESTO DELLA COMBO COME LA PRIMA OPZIONE DISPONIBILE FRA QUELLE FILTRATE */

	this.DOMelem_hidden_input.value=input_value;
	/* FINE MODIFICA RICCARDO 18/01/2011 */
	
	this.DOMelem_hidden_input2.value = (status?"true":"false");
	this.callEvent("onChange",[]);
	this._activeMode=false
	};

 dhtmlXCombo.prototype._resetSelection = function(data,status){var z=this.getOption(this.DOMelem_hidden_input.value);this.setComboValue(z?z.data()[0]:this.DOMelem_hidden_input.value)
 this.setComboText(z?z.data()[1]:this.DOMelem_hidden_input.value)
 };

 dhtmlXCombo.prototype.selectOption = function(ind,filter,conf){
	 if (arguments.length<3)conf=true;
	 this.unSelectOption();
	 var z=this.optionsArr[ind];
	 if (!z)return;
	 this._selOption=z;
	 this._selOption.select();
	 var corr=this._selOption.content.offsetTop+this._selOption.content.offsetHeight-this.DOMlist.scrollTop-this.DOMlist.offsetHeight;
	 if (corr>0)this.DOMlist.scrollTop+=corr;
	 corr=this.DOMlist.scrollTop-this._selOption.content.offsetTop;
	 if (corr>0)this.DOMlist.scrollTop-=corr;
	 var data=this._selOption.data();
	  /*** MODIFICA RICCARDO 17-18/01/2011: AGGIUNTI I CONTROLLI SULL'EVENTO PASSATO DALLA FUNZIONE PER l'AUTOCOMPLETAMENTO SULL'INVIO ***/
	 if (conf){
		 this.setComboText(data[1]);
		 this._confirmSelection(data[0],false)
	 };
	 if ((this._autoxml)&&((ind+1)==this._lastLength)) this._fetchOptions(ind+1,this._lasttext||"");
	 if (filter) {
		
		var text=this.getComboText();
		if (text!=data[1]){
			if (!this.customFilter) {
				this.setComboText(data[1]);
			} else if (this.optionsArr.length<=this.filterActivationValue) {
				this.setComboText(data[1]);
			}
			dhtmlXRange(this.DOMelem_input,text.length+1,data[1].length)
			}
		
		} else this.setComboText(data[1]);
	this._selOption.RedrawHeader(this);
	/*** FINE MODIFICA RICCARDO 17-18/01/2011 ***/
	this.callEvent("onSelectionChange",[])
 };

 dhtmlXCombo.prototype._selectOption = function(e)
 {(e||event).cancelBubble = true;var node=(_isIE?event.srcElement:e.target);var that=this.combo;while (!node._self){node = node.parentNode;if (!node)return};var i=0;for (i;i<that.DOMlist.childNodes.length;i++){if (that.DOMlist.childNodes[i]==node)break};that.selectOption(i,false,true);that.closeAll();that.callEvent("onBlur",[])
 that._activeMode=false};

 /* AGGIUNTA RICCARDO 31/01/2011 PER VISUALIZZAZIONE COMPLETA ELENCO OPZIONI ANCHE IN CASO DI FILTRO COMPILATO */
  dhtmlXCombo.prototype._customRedrawList = function(){
	if (this.customList) {
		while (this.DOMlist.firstChild) this.DOMlist.removeChild(this.DOMlist.firstChild);
		var elementTemp;
		for(var i=0;i<this.optionsArr.length;i++) {
			elementTemp = this.optionsArr[i].render();
			elementTemp.style.display = 'block';
			this.DOMlist.appendChild(elementTemp);
		}
	}
 }
 /* FINE AGGIUNTA RICCARDO 31/01/2011 */
 
 dhtmlXCombo.prototype.openSelect = function(){if (this._disabled)return;this.closeAll();this._positList();this._customRedrawList();this.DOMlist.style.display="block";this.callEvent("onOpen",[]);if(this._tempSel)this._tempSel.deselect();if(this._selOption)this._selOption.select();if(this._selOption){var corr=this._selOption.content.offsetTop+this._selOption.content.offsetHeight-this.DOMlist.scrollTop-this.DOMlist.offsetHeight;if (corr>0)this.DOMlist.scrollTop+=corr;corr=this.DOMlist.scrollTop-this._selOption.content.offsetTop;if (corr>0)this.DOMlist.scrollTop-=corr};if (_isIE)this._IEFix(true);this.DOMelem_input.focus();/* MODIFICA RICCARDO 31/01/2011: COMMENTATO PER ABILITARE LA VISUALIZZAZIONE COMPLETA DELL'ELENCO AL CLICK DEL MOUSE, ANCHE CON FILTRO GIÀ COMPILATO *//*if (this._filter)this.filterSelf()*/};

 dhtmlXCombo.prototype._toggleSelect = function(e)
 {var that=this.combo;if ( that.DOMlist.style.display == "block" ){that.closeAll()}else {that.openSelect()};(e||event).cancelBubble = true};

 dhtmlXCombo.prototype._fetchOptions=function(ind,text){if (text==""){this.closeAll();return this.clearAll()};var url=this._xml+((this._xml.indexOf("?")!=-1)?"&":"?")+"pos="+ind+"&mask="+encodeURIComponent(text);this._lasttext=text;if (this._load)this._load=url;else {if (!this.callEvent("onDynXLS",[text,ind])) return;this.loadXML(url)}};

 dhtmlXCombo.prototype.filterSelf = function(mode) {
	var text=this.getComboText();if (this._xml){this._lkmode=mode;return this._fetchOptions(0,text)};
	/* DA QUI INIZIA IL FILTRO DINAMICO SUL CONTENUTO DELLA COMBO */
	/** MODIFICA RICCARDO 18/01/2011: AGGIUNTA LA POSSIBILITÀ DI EFFETTUARE UN FILTRO CON UN'ESPRESSIONE REGOLARE DIVERSA **/
	if (this.customFilter && this.optionsArr.length>this.filterActivationValue) {
		try{var filter=new RegExp(text,"i")}catch (e){var filter=new RegExp(text.replace(/([\[\]\{\}\(\)\+\*\\])/g,"\\$1"))};
	} else {
		try{var filter=new RegExp("^"+text,"i")}catch (e){var filter=new RegExp("^"+text.replace(/([\[\]\{\}\(\)\+\*\\])/g,"\\$1"))};
	}
	/** FINE MODIFICA RICCARDO 18/01/2011 **/
	this.filterAny=false;for(var i=0;i<this.optionsArr.length;i++){var z=filter.test(this.optionsArr[i].text);this.filterAny|=z;this.optionsArr[i].hide(!z)};if (!this.filterAny){this.closeAll();this._activeMode=true}else {if (this.DOMlist.style.display!="block")this.openSelect();if (_isIE)this._IEFix(true)};if (!mode)this._correctSelection();else this.unSelectOption()};

 dhtmlXCombo.prototype._IEFix = function(mode){this.DOMlistF.style.display=(mode?"block":"none");this.DOMlistF.style.top=this.DOMlist.style.top;this.DOMlistF.style.left=this.DOMlist.style.left};

 dhtmlXCombo.prototype.closeAll = function()
 {if(window.dhx_glbSelectAr)for (var i=0;i<dhx_glbSelectAr.length;i++){if (dhx_glbSelectAr[i].DOMlist.style.display=="block"){dhx_glbSelectAr[i].DOMlist.style.display = "none";if (_isIE)dhx_glbSelectAr[i]._IEFix(false)};dhx_glbSelectAr[i]._activeMode=false}};function dhtmlXRange(InputId, Start, End)
{var Input = typeof(InputId)=='object' ? InputId : document.getElementById(InputId);try{Input.focus()}catch(e){};var Length = Input.value.length;Start--;if (Start < 0 || Start > End || Start > Length)Start = 0;if (End > Length)End = Length;if (Start==End)return;if (Input.setSelectionRange){Input.setSelectionRange(Start, End)}else if (Input.createTextRange){var range = Input.createTextRange();range.moveStart('character', Start);range.moveEnd('character', End-Length);range.select()}};dhtmlXCombo_defaultOption = function(){this.init()};dhtmlXCombo_defaultOption.prototype.init = function(){this.value = null;this.text = "";this.selected = false;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(mode){this.render().style.display=mode?"none":""};dhtmlXCombo_defaultOption.prototype.isHidden = function(){return (this.render().style.display=="none")};dhtmlXCombo_defaultOption.prototype.deselect = function(){if (this.content)this.render();this.content.className=""};dhtmlXCombo_defaultOption.prototype.setValue = function(attr){this.value = attr.value||"";this.text = attr.text||"";this.css = attr.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(self, name, width, tab)
{var z=document.createElement("DIV");z.style.width = width+"px";z.className = self.beforeParentClass+' '+'dhx_combo_box '+(dhtmlx.skin||"");z._self = self;self.DOMelem = z;this._DrawHeaderInput(self, name, width,tab);this._DrawHeaderButton(self, name, width);self.DOMParent.appendChild(self.DOMelem)};dhtmlXCombo_defaultOption.prototype._DrawHeaderInput = function(self, name, width,tab)
{if(self.rtl && _isIE){var z=document.createElement('textarea');z.style.overflow = "hidden";z.style.whiteSpace="nowrap"
 }else {var z=document.createElement('input');z.setAttribute("autocomplete","off");z.type = 'text'};z.className = 'dhx_combo_input'+(dhtmlx.skin?"_"+dhtmlx.skin:"");if(self.rtl){z.style.left = "18px";z.style.direction = "rtl";z.style.unicodeBidi = "bidi-override"};if (tab)z.tabIndex=tab;z.style.width = (width-19)+'px';self.DOMelem.appendChild(z);self.DOMelem_input = z;z = document.createElement('input');z.type = 'hidden';z.name = name;self.DOMelem.appendChild(z);self.DOMelem_hidden_input = z;z = document.createElement('input');z.type = 'hidden';z.name = (name||"").replace(/(\]?)$/, "_new_value$1");z.value="true";self.DOMelem.appendChild(z);self.DOMelem_hidden_input2 = z};dhtmlXCombo_defaultOption.prototype._DrawHeaderButton = function(self, name, width)
{
var z=document.createElement('div'); /*CAMBIATO createElement('img') in createElement('div') */
z.className = (self.rtl)?('dhx_combo_img_rtl'+(dhtmlx.skin?"_"+dhtmlx.skin:"")):('dhx_combo_img'+(dhtmlx.skin?"_"+dhtmlx.skin:""));/* z.className = (self.rtl)?'dhx_combo_img_rtl':'dhx_combo_img'; */
if(dhtmlx.image_path)dhx_globalImgPath = dhtmlx.image_path;
self.DOMelem.appendChild(z);self.DOMelem_button=z};dhtmlXCombo_defaultOption.prototype.RedrawHeader = function(self)
{};dhtmlXCombo_optionTypes['default'] = dhtmlXCombo_defaultOption;
dhtmlXCombo.prototype.dhx_Event=function()
{this.dhx_SeverCatcherPath="";this.attachEvent = function(original, catcher, CallObj)
 {CallObj = CallObj||this;original = 'ev_'+original;if ( ( !this[original] )|| ( !this[original].addEvent ) ) {var z = new this.eventCatcher(CallObj);z.addEvent( this[original] );this[original] = z};return ( original + ':' + this[original].addEvent(catcher) )};this.callEvent=function(name,arg0){if (this["ev_"+name])return this["ev_"+name].apply(this,arg0);return true};this.checkEvent=function(name){if (this["ev_"+name])return true;return false};this.eventCatcher = function(obj)
 {var dhx_catch = new Array();var m_obj = obj;var func_server = function(catcher,rpc)
 {catcher = catcher.split(":");var postVar="";var postVar2="";var target=catcher[1];if (catcher[1]=="rpc"){postVar='<?xml version="1.0"?><methodCall><methodName>'+catcher[2]+'</methodName><params>';postVar2="</params></methodCall>";target=rpc};var z = function() {};return z};var z = function()
 {if (dhx_catch)var res=true;for (var i=0;i<dhx_catch.length;i++){if (dhx_catch[i] != null){var zr = dhx_catch[i].apply( m_obj, arguments );res = res && zr}};return res};z.addEvent = function(ev)
 {if ( typeof(ev)!= "function" )
 if (ev && ev.indexOf && ev.indexOf("server:")== 0)
 ev = new func_server(ev,m_obj.rpcServer);else
 ev = eval(ev);if (ev)return dhx_catch.push( ev ) - 1;return false};z.removeEvent = function(id)
 {dhx_catch[id] = null};return z};this.detachEvent = function(id)
 {if (id != false){var list = id.split(':');this[ list[0] ].removeEvent( list[1] )}}};(function(){dhtmlx.extend_api("dhtmlXCombo",{_init:function(obj){if (obj.image_path)dhx_globalImgPath=obj.image_path;return [obj.parent, obj.name, (obj.width||"100%"), obj.type, obj.index ]},
 filter:"filter_command",
 auto_height:"enableOptionAutoHeight",
 auto_position:"enableOptionAutoPositioning",
 auto_width:"enableOptionAutoWidth",
 xml:"loadXML",
 readonly:"readonly",
 items:"addOption"
 },{filter_command:function(data){if (typeof data == "string")this.enableFilteringMode(true,data);else
 this.enableFilteringMode(data)}})})();//(c)dhtmlx ltd. www.dhtmlx.com
//v.2.5 build 91111

/*
Copyright DHTMLX LTD. http://www.dhtmlx.com
To use this component please contact sales@dhtmlx.com to obtain license
*/
