DiComboBox=Class.create();DiComboBox.VISIBLE='visible';DiComboBox.INVISIBLE='invisible';DiComboBox.DISABLED='list-box-disabled';DiComboBox.attName='data';DiComboBox._default=function(e){if(e){e.preventDefault();}else{window.event.returnValue=false; }};DiComboBox.prototype={ initialize:function(dom,paramName,form){var items,nameEl;var listHolder=dom.getElementsByTagName('ul')[0].getElementsByTagName('li')[0];this._area=listHolder.getElementsByTagName('a')[0];var nameEl=this._area.getElementsByTagName('span')[0];this._form=form;this._title=nameEl.getElementsByTagName('span')[0];this._defaultTitle=this._title.innerHTML;(listHolder=listHolder.getElementsByTagName('ul')[0])&&(items=listHolder.getElementsByTagName('li'));this._params={};(this.listHolder=this._area.listHolder=listHolder)._opened=false;this.paramName=paramName;this.options=[];for(var i=0; i<items.length; i++){items[i].index=i;items[i].onclick=function(e){DiComboBox._onclick(this,dom.model);if(e){e.stopPropagation();e.preventDefault();}else{window.event.cancelBubble=true;window.event.returnValue=false; }};items[i].style.display=(typeof items[i].getAttribute('disabled')=='string')?'none':'block';this.options.push(items[i]);}(this.dom=dom).model=this;this._k={selectedIndex:-1,selectedValue:null};this.getSelectedIndex=function(){return this._k.selectedIndex;};this.getSelectedValue=function(){return this._k.selectedValue;};this._defClassName=this.dom.className;this.setDisabled(typeof this.dom.getAttribute('disabled')=='string');this._onconstruct&&this._onconstruct();return this;},setDisabled:function(flag){if(flag){this._area.onclick=DiComboBox._default;this.dom.className=DiComboBox.DISABLED;}else{this._area.onclick=this._open;this._defClassName&&(this.dom.className=this._defClassName);}},setIDisabled:function(index,flag){return this.options[index].style.display=flag?'none':'block';},setISelected:function(index){if(this.options[index]){var p=this.paramName;var i=this.options[index];if(!this._params[p]){var hInput=$('__empty_hidden').cloneNode(true);hInput.id=null;hInput.setAttribute('name',p);this._form.appendChild(hInput);this._params[p]=hInput;}this._params[p].setAttribute('value',i.getAttribute(DiComboBox.attName));this._k.selectedIndex=index;this._k.selectedValue=i.getAttribute(DiComboBox.attName);return(this._title.innerHTML=this.getICaption(index));}return null;},getICaption:function(index){if(!this.options[index])return null;  	var oi=this.options[index]; 	oi=oi.getElementsByTagName('a')[0].getElementsByTagName('span')[0]; 	return oi.innerHTML;},setICaption:function(index,obj){ 	var oi=this.options[index]; 	oi=oi.getElementsByTagName('a')[0].getElementsByTagName('span')[0]; 	if(typeof obj==='string'){ 		oi.innerHTML=obj;}else{ 		oi.innerHTML=''; 		oi.appendChild(obj);} 	return obj;},getIValue:function(index){return this.options[index].getAttribute(DiComboBox.attName);},setIValue:function(index,data){this.options[index].setAttribute(DiComboBox.attName,data);return data; },_open:function(e){if(this.listHolder._opened){this.listHolder.className=DiComboBox.INVISIBLE;document._currentOpened=null;}else{if(document._currentOpened){document._currentOpened._opened=false;document._currentOpened.className=DiComboBox.INVISIBLE;};document._currentOpened=this.listHolder;this.listHolder.className=DiComboBox.VISIBLE;}this.listHolder._opened=!this.listHolder._opened;if(e){e.stopPropagation();e.preventDefault();}else{window.event.cancelBubble=true;window.event.returnValue=false; }},_close:function(e){try{this.listHolder.className=DiComboBox.INVISIBLE;this.listHolder._opened=false;document._currentOpened=null;}catch(ee){ee.show&&ee.show('_close');}},reset:function(){this._k.selectedIndex=-1;this._k.selectedValue=null;this._title.innerHTML=this._defaultTitle;var i=this.options.length;while(--i>-1){this.options[i].style.display='block';}for(var item in this.params){this._form.removeChild(this._params[item]);};},toString:function(){return "DiComboBox";}};DiComboBox._onclick=function(item,list){list.setISelected(item.index);list.onchange&&list.onchange.call(list);list._close();};DiEComboBox=Class.create();DiEComboBox.prototype={initialize:function(){},_onconstruct:function(){var v;if(typeof(v=this.dom.getAttribute(DiComboBox.attName))=='string'){this.setISelectedByValue(v);}},addItem:function(text,value){},removeItemByValue:function(value){},setIDisabledByValue:function(value,flag){ 	for(var i=0; i<this.options.length; i++){ 		if(this.getIValue(i)==value){ 			return this.setIDisabled(i,flag);};}}, replaceIValue:function(oldValue,newValue){  	for(var i=0; i<this.options.length; i++){if(this.getIValue(i)==oldValue){return this.setIValue(i,newValue);};}},  setITextByValue:function(value,obj){  	for(var i=0; i<this.options.length; i++){ 		if(this.getIValue(i)==value){ 			return this.setICaption(i,obj);};}},  setISelectedByValue:function(value){  	for(var i=0; i<this.options.length; i++){  		if(this.getIValue(i)==value){  			return this.setISelected(i);}}}};Object.extend(DiEComboBox.prototype,DiComboBox.prototype);DiEComboBox.prototype.toString=function(){  	return "DiEComboBox";};DiComboBoxParser=Class.create();DiComboBoxParser.prototype={initialize:function(){}};DiComboBoxParser.parse=function(cssClass,Type,set){var paramName=set.paramName||cssClass;var form=(set.formId?$(set.formId):document.forms[set.formName]);if(!(paramName&&cssClass&&form)){return;};var boxes=document.getElementsByClassName(cssClass);for(var i=0; i<boxes.length; i++){boxes[i]=new Type(boxes[i],paramName,form);}return boxes;};DiComboBoxParser._findInTag=function(el,tagName){if(!(el&&tagName)){return};var c=el.parentNode;tagName=tagName.toUpperCase();do{if(c.tagName.toUpperCase()==tagName){return c;}}while(c=c.parentNode);return null;};DiComboBoxParser.locate=function(cssClass,Type,set){ 	if(!(cssClass.length&&Type)){return;}; 	set=(set||{}); 	var form=(set.formId)?$(set.formId):document.forms[set.formName]; 	var boxes=document.getElementsByClassName(cssClass);var param,f;for(var i=0; i<boxes.length; i++){param=(set.parameter||boxes[i].getAttribute('parameter'));f=(form||DiComboBoxParser._findInTag(boxes[i],"FORM"));if(param&&f){boxes[i]=(new Type(boxes[i],param,f));};};return boxes;};Event.observe(document,'click',function(e){if(document._currentOpened){document._currentOpened.className=DiComboBox.INVISIBLE;document._currentOpened._opened=false;document._currentOpened=null;}});