var _DEBUG=false;function debug(b){if(!_DEBUG){return}if(browser.mozilla&&typeof console=="object"){console.log(b)}else{if(ge("console")){ge("console").innerHTML+=b+"<br />"}}}var uiWindowDispatcher={_ui_current_uid:0,_event_listeners:[],_initialized:false,_initialize:function(){if(this._initialized){return}this._initialized=true;var e=this;var d=function(b){var n=e._event_listeners[b.type];if(!n){return}for(var l in n){var i=n[l][0],a=n[l][1];if(!i||!i.parentNode||i.id&&!ge(i.id)){debug("splice");n.splice(l,1)}if(!isVisible(i)){continue}if((b.type=="click"||b.type=="mousedown")){b.outside=true;var m=b.target;while(m!=null){if(m==i){b.outside=false;break}m=m.parentNode}}if(a(b)===false){return false}}};addEvent(document,"keypress keydown mousedown",d)},getUID:function(){return this._ui_current_uid++},attachListener:function(e,g,f){e=ge(e);if(!e||!isFunction(f)){return false}this._initialize();if(!isArray(this._event_listeners[g])){this._event_listeners[g]=[]}this._event_listeners[g].push([e,f])}};function Dropdown(f,g,e){if(!e){e={}}return Selector(f,e.autocomplete?g:[],extend({introText:"",multiselect:false,autocomplete:false,selectedItems:e.selectedItem},e,{defaultItems:g}))}function Autocomplete(f,g,e){return Selector(f,g,e)}function Selector(input,data,options){var self=this,guid=uiWindowDispatcher.getUID(),dataURL=typeof(data)=="string"?data:null,dataItems=isArray(data)?data:[],undefined;var timeout,requestTimeout,selectedItems=[],selectedTokenId=0,activeItemValue,hasFocus=0,cache,select,disabled=false,defaultList=false,receivedData,changeAfterBlur=false;if(input==null||input.autocomplete){return false}var defaults={selectedItems:[],defaultItems:[],multiselect:true,autocomplete:true,dropdown:true,cacheLength:0,showMax:10,maxItems:50,maxItemsShown:function(query_length){if(query_length>6){return 500}else{if(query_length>4){return 200}else{if(query_length>2){return 150}else{return 100}}}},selectFirst:true,dividingLine:"smart",enableCustom:false,valueForCustom:-1,width:300,height:250,progressBar:false,highlight:function(label,term){label=term.indexOf(" ")==-1?label.split(" "):[label];var tmp="";var termRus=parseLatin(term);if(termRus!=null){term=term+"|"+termRus}var re=new RegExp("(?![^&;]+;)(?!<[^<>]*)((\\(*)("+term.replace("+","\\+")+"))(?![^<>]*>)(?![^&;]+;)","gi");for(var i in label){tmp+=(i>0?" ":"")+label[i].replace(re,"$2<em>$3</em>")}return tmp},resultField:input.name||"selectedItems",customField:input.name?(input.name+"_custom"):"selectedItems_custom",placeholder:"",placeholderColor:"#afb8c2",introText:"Start typing",noResult:getLang("search_nothing_found"),noImageSrc:"/images/question_s.gif",formatResult:function(data){return data[1]+(typeof(data[2])=="string"?" <span>"+data[2]+"</span>":"")}};function convertText_in_options(options){each(["disabledText","placeholder"],function(){if(this in options){options[this]=winToUtf(stripHTML(options[this]))}});return options}if(!options){options={}}options=convertText_in_options(options);options=extend(defaults,options);if(dataItems.length){sort(dataItems.length)}options.highlight=options.highlight||function(label){return label};if(!isArray(options.selectedItems)&&isEmpty(options.selectedItems)){options.selectedItems=[]}if(input.value&&!options.selectedItems.length){options.selectedItems=input.value}cache=new _Cache(dataItems,options);var container,selector,resultList,resultListShadow,resultField,customField,dropdownButton,selectedItemsContainer,readOnly="",scrollBarWidth=0,mouseIsOver=false;var dropdown_html=options.dropdown?'<td id="dropdown'+guid+'" class="selector_dropdown">&nbsp;</td>':"";container=document.createElement("div");container.id="container"+guid;container.className="selector_container";if(!options.autocomplete){readOnly='readonly="true"'}var customField_html='<input type="hidden" name="'+options.customField+'" id="'+options.customField+'" value="" class="customField">';container.innerHTML='<table cellspacing="0" cellpadding="0"><tr><td class="selector"><span class="selected_items"></span><input type="text" class="selector_input" '+readOnly+' /><input type="hidden" name="'+options.resultField+'" id="'+options.resultField+'" value="" class="resultField">'+customField_html+"</td>"+dropdown_html+'</tr></table><div class="results_container"><div class="result_list" style="display:none;"></div><div class="result_list_shadow"><div class="shadow1"></div><div class="shadow2"></div></div></div>';input.parentNode.replaceChild(container,input);selector=geByClass("selector",container)[0];resultList=geByClass("result_list",container)[0];if(browser.chrome){resultList.style.opacity=1}resultListShadow=geByClass("result_list_shadow",container)[0];input=geByClass("selector_input",container)[0];input.style.color=options.placeholderColor;selectedItemsContainer=geByClass("selected_items",container)[0];if(!options.autocomplete){addClass(container,"dropdown_container")}input.autocomplete="1";if(options.dividingLine){addClass(resultList,"dividing_line")}resultField=geByClass("resultField",container)[0];customField=geByClass("customField",container)[0];options.width=parseInt(options.width)>0?parseInt(options.width):defaults.width;options.height=parseInt(options.height)>0?parseInt(options.height):defaults.height;options.resultListWidth=parseInt(options.resultListWidth)>0?parseInt(options.resultListWidth):options.width;container.style.width=options.width+"px";resultList.style.width=resultListShadow.style.width=options.resultListWidth+"px";selector._width=options.width;function initDropdown(){dropdownButton=geByClass("selector_dropdown",container)[0];addEvent(dropdownButton,"mouseover",function(){addClass(this,"selector_dropdown_hover")});addClass(dropdownButton,"mouseout",function(){removeClass(this,"selector_dropdown_hover")});var fadeToColor,fadeToWhite;fadeToColor=function(){var state=window.is_rtl?{backgroundColor:"#E1E8ED",borderRightColor:"#D2DBE0"}:{backgroundColor:"#E1E8ED",borderLeftColor:"#D2DBE0"};animate(dropdownButton,state,200,function(){if(!mouseIsOver){if(!select.isVisible()){fadeToWhite()}else{dropdownButton.style.backgroundColor=dropdownButton.style[window.is_rtl?"borderRightColor":"borderLeftColor"]=""}}})};fadeToWhite=function(){animate(dropdownButton,{backgroundColor:"#FFFFFF",borderLeftColor:"#FFFFFF"},200,function(){dropdownButton.style.backgroundColor=dropdownButton.style[window.is_rtl?"borderRightColor":"borderLeftColor"]="";if(mouseIsOver){fadeToColor()}})};addEvent(container,"mouseover",function(){mouseIsOver=true;if(disabled){return}fadeToColor()});addEvent(container,"mouseout",function(){mouseIsOver=false;if(disabled){return}setTimeout(function(){if(mouseIsOver){return}if(!select.isVisible()){fadeToWhite()}else{dropdownButton.style.backgroundColor=dropdownButton.style[window.is_rtl?"borderRightColor":"borderLeftColor"]=""}},0)});addEvent(dropdownButton,"mousedown",function(){if(!select.isVisible()){showDefaultList()}else{select.toggle()}});var test=document.createElement("div");with(test.style){overflowY="scroll";position="absolute";height="100px";width="100px"}test.innerHTML='<div style="height:200px;">1<br/>1<br/>1<br/>1<br/></div>';var body=document.getElementsByTagName("body")[0];body.appendChild(test);scrollbarWidth=test.offsetWidth-test.getElementsByTagName("div")[0].offsetWidth-1;dropdownButton.style.width=scrollbarWidth+"px";selector._width-=scrollbarWidth;body.removeChild(test);delete test}function destroyDropdown(){dropdownButton=geByClass("selector_dropdown",container)[0];removeEvent(dropdownButton,"mouseover");removeEvent(dropdownButton,"mouseout");removeEvent(dropdownButton,"mousedown");removeEvent(container,"mouseover");removeEvent(container,"mouseout");scrollbarWidth=0;selector._width=options.width}if(options.dropdown){initDropdown()}function updateInput(){if(!selectedItems.length&&!hasFocus){input.value=options.placeholder;input.style.color=options.placeholderColor}if(!options.autocomplete&&options.multiselect&&selectedItems.length){hide(input)}else{if(!isVisible(input)){show(input)}input.style.width="20px";var w=window.is_rtl?(input.offsetLeft+input.offsetWidth-9):(selector._width-input.offsetLeft-9);input.style.width=Math.max(20,w)+"px"}}updateInput();select=new _Select(resultList,resultListShadow,{selectFirst:options.selectFirst,height:options.height,onItemActive:function(value){showImage(value);activeItemValue=value},onItemSelect:selectItem,onShow:function(){highlightInput(true)},onHide:function(){highlightInput(false)}});uiWindowDispatcher.attachListener(container,"mousedown",function(e){if(e.outside){select.hide();deselectTokens()}});var keyevent=browser.opera||browser.mozilla?"keypress":"keydown";uiWindowDispatcher.attachListener(container,keyevent,function(e){if(disabled||input.value.length>0&&hasFocus||!hasFocus&&selectedTokenId==0){return}switch(e.keyCode){case KEY.RETURN:return false;break;case KEY.LEFT:for(var i=selectedItems.length-1;i>=0;i--){if(!selectedTokenId||selectedItems[i][0]==selectedTokenId&&i>0){if(selectedTokenId){i--}selectToken(selectedItems[i][0]);input.blur();break}}return false;break;case KEY.RIGHT:for(var i=0;i<selectedItems.length;i++){if(selectedItems[i][0]==selectedTokenId){if(i<selectedItems.length-1){selectToken(selectedItems[i+1][0]);input.blur()}else{if(!readOnly){deselectTokens();input.focus()}}break}}return false;break;case KEY.DEL:if(selectedTokenId){var nextTokenId=0;for(var i=selectedItems.length-2;i>=0;i--){if(selectedItems[i][0]==selectedTokenId&&selectedItems[i+1]){nextTokenId=selectedItems[i+1][0]}}removeTagData(selectedTokenId);if(nextTokenId){selectToken(nextTokenId)}else{if(!readOnly&&!hasFocus){input.focus()}}}else{if(hasFocus&&selectedItems.length){selectToken(selectedItems[selectedItems.length-1][0])}}return false;break}});var keyevent=browser.msie||browser.safari||browser.chrome?"keydown":"keypress";addEvent(input,"keypress",function(e){if(e.which==KEY.RETURN&&browser.opera&&options.enableCustom&&(select.selectedItem()===null)){select.hide();input.blur();return false}else{if(e.which==KEY.SPACE||e.which>40&&!e.metaKey){clearTimeout(timeout);timeout=setTimeout(function(){onChange()},0)}}});addEvent(input,"keydown",function(e){switch(e.keyCode){case KEY.DOWN:if(!select.isVisible()){setTimeout(showDefaultList,0);return false}break;case KEY.DEL:if(input.value.length>0){clearTimeout(timeout);timeout=setTimeout(function(){onChange()},0)}return;break;case KEY.RETURN:if(!browser.opera&&options.enableCustom&&(select.selectedItem()===null)){select.hide();input.blur();return false}break}});addEvent(input,"focus",function(){debug("focus");if(!disabled&&!select.isVisible()){showDefaultList()}if(disabled||readOnly){this.blur();return}if((selectedItems.length==0)||options.multiselect){this.value=""}addClass(this,"focused");this.style.color="#000";hasFocus++});addEvent(input,"blur",function(){if(readOnly){return}if(!disabled){if(options.enableCustom&&this.value.length){var custom_val=this.value;if(selectedItems.length==0){resultField.value=parseInt(!options.valueForCustom);customField.value=custom_val;selectItem([options.valueForCustom,custom_val])}}else{if(selectedItems.length==0){this.value=options.placeholder}else{if(options.multiselect){this.value=""}}}clearTimeout(requestTimeout);if(changeAfterBlur&&isFunction(options.onChange)){if(!options.enableCustom||!selectedItems.length){options.onChange("")}changeAfterBlur=false}}if(!hasClass(this,"selected")){this.style.color=options.placeholderColor}removeClass(this,"focused");hasFocus=0});function onInputClick(e){deselectTokens();if(!select.isVisible()){showDefaultList()}else{select.toggle()}if(!readOnly){input.focus()}var event=e.originalEvent||e;if(event.preventDefault){event.preventDefault()}}addEvent(selector,"mousedown",function(e){var click_over_token=false;var el=e.target;while(el!=null){if(hasClass(el,"token")){click_over_token=true;break}el=el.parentNode}if(!click_over_token&&!hasFocus){return onInputClick(e)}});if(options.selectedItems!==undefined){if(isArray(options.selectedItems)){for(var i in options.selectedItems){selectItem(options.selectedItems[i],false)}}else{each((options.selectedItems+"").split(","),function(i,x){selectItem(x,false)})}}if(!selectedItems.length&&!options.autocomplete&&!options.multiselect&&options.defaultItems.length){selectItem(options.defaultItems[0],false)}function highlightInput(focus){if(focus){addClass(container,"selector_focused")}else{removeClass(container,"selector_focused")}}function selectToken(id){if(!options.multiselect){return}select.hide();removeClass(ge("bit_"+guid+"_"+selectedTokenId),"token_selected");addClass(ge("bit_"+guid+"_"+id),"token_selected");selectedTokenId=id;if(options.onTokenSelected){options.onTokenSelected(id)}showImage(id)}function deselectTokens(){if(!selectedTokenId||!options.multiselect){return}removeClass(ge("bit_"+guid+"_"+selectedTokenId),"token_selected");selectedTokenId=0;if(options.onTokenSelected){options.onTokenSelected()}showImage()}function showImage(itemValue,itemData){if(!options.imageId){return false}var img=ge(options.imageId);if(!img){return false}if(itemData===undefined){if(!itemValue){itemValue=resultField.value.split(",")[0]}var data=selectedItems.concat(dataItems);if(data&&data.length){for(var i in data){if(data[i][0]==itemValue){itemData=data[i];break}}}}if(itemData!==undefined&&typeof(itemData[3])=="string"&&itemData[3].length){if(itemData[3]=="none"){img.style.display="none"}else{img.style.display="";img.setAttribute("src",itemData[3]);img.parentNode.href="/id"+itemData[0];removeEvent(img.parentNode,"click")}}else{img.style.display="";img.setAttribute("src",options.noImageSrc);img.parentNode.href="#";addEvent(img.parentNode,"click",function(){return false})}}function selectItem(item,fireEvent,setFocus){if(item==null){return false}if(fireEvent===undefined){fireEvent=true}var data;if(typeof(item)=="object"){data=item}else{var all_data=new Array();each([dataItems,options.defaultItems,receivedData],function(i,items){if(items&&items.length){all_data=all_data.concat(items)}});for(var i in all_data){if(all_data[i][0]==item||all_data[i]==item){data=all_data[i];break}}}if(typeof data!="object"){data=[item,item]}data[0]=data[0].toString();data[1]=data[1].toString();changeAfterBlur=false;if(data[0]===resultField.value){if(!options.multiselect){input.value=winToUtf(stripHTML(data[1]));showImage();if(input.value.length||!options.placeholder){addClass(input,"selected");input.style.color="#000"}else{input.value=options.placeholder;input.style.color=options.placeholderColor}}return}select.hide();if(selectedItems.length>=options.maxItems){return}deselectTokens();addTagData(data);showImage();if(options.multiselect){input.value="";if(dataURL){select.clear()}else{select.removeItem(data[0])}}else{input.value=winToUtf(stripHTML(data[1]));addClass(input,"selected");input.style.color="#000"}updateInput();if(setFocus&&!readOnly){input.focus()}else{if(!options.multiselect){input.blur()}}if(fireEvent){if(options.multiselect&&isFunction(options.onTagAdd)){options.onTagAdd(data,resultField.value)}if(isFunction(options.onChange)){options.onChange(resultField.value)}}}function addTagData(data){if(!data||data.length<2){return false}if(!options.multiselect){selectedItems.splice(0,selectedItems.length,data);resultField.value=data[0];showImage(data[0],data);return}for(var i in selectedItems){if(selectedItems[i][0]==data[0]){selectToken(selectedItems[i][0]);return false}}selectedItems.push(data);var resultArr=[];for(i in selectedItems){resultArr.push(selectedItems[i][0])}resultField.value=resultArr.join(",");input.style.width="1px";var token=document.createElement("div");token.id="bit_"+guid+"_"+data[0];token.className="token";var maxTokenWidth=Math.max(selector.clientWidth,getSize(token)[0]);token.innerHTML='<span class="l">'+data[1]+'</span><span class="x" />';addEvent(token,"click",function(){selectToken(data[0]);return false});addEvent(token,"dblclick",function(){if(data[4]){removeTagData(data[0]);each(data[4],function(i,v){selectItem(v,false)})}return false});addEvent(token,"mouseover",function(e){addClass(token,"token_hover");showImage(data[0],data)});addEvent(token,"mouseout",function(e){removeClass(token,"token_hover");showImage(activeItemValue?activeItemValue:selectedTokenId)});var close=geByClass("x",token)[0];addEvent(close,"mousedown",function(){select.hide();removeTagData(data[0]);if(!readOnly&&hasFocus){input.focus()}return false});selectedItemsContainer.appendChild(token);var label=token.firstChild;var labelStr=label.innerHTML;while(token.offsetWidth>maxTokenWidth&&labelStr.length>3){labelStr=labelStr.substr(0,labelStr.length-2);label.innerHTML=labelStr+"..."}}function removeTagData(id){selectedTokenId=0;var token=ge("bit_"+guid+"_"+id);token.parentNode.removeChild(token);var index,resultArr=[];for(i in selectedItems){if(selectedItems[i][0]==id){index=i;continue}resultArr.push(selectedItems[i][0])}if(index==undefined){return false}resultField.value=resultArr.join(",");if(options.onTagRemove){options.onTagRemove(selectedItems[i],resultField.value)}if(isFunction(options.onChange)){options.onChange(resultField.value)}selectedItems.splice(index,1);if(options.multiselect){defaultList=false}showImage();updateInput();return false}function onChange(){var term=trim(input.value.toLowerCase());if(!options.multiselect){if(selectedItems.length){changeAfterBlur=true}clear()}clearTimeout(requestTimeout);if(term.length==0){showDefaultList();return false}var data=cache.load(term,!dataURL);if(data==null&&dataURL){requestTimeout=setTimeout(function(){request(receiveData,showNoDataList)},300)}else{if(data!=null){if(data&&data.length){receiveData(term,data)}else{showNoDataList()}}}}function showNoDataList(){if(hasFocus||readOnly){_showSelectList(options.noResult);defaultList=false}}function showDefaultList(){if(defaultList&&select.hasItems()){if(options.multiselect||!selectedItems.length){select.show()}else{select.show(selectedItems[0][0])}}else{defaultList=true;var text=options.autocomplete?options.introText:null;_showSelectList(text,options.defaultItems)}}function showDataList(items,query){defaultList=false;_showSelectList(null,items,query)}function _showSelectList(text,items,query){if(window.is_rtl){var res_cont=geByClass("results_container",container)[0];var l=getXY(container)[0];if(l){res_cont.style.left=l+"px"}}items=isArray(items)&&items.length?items:[];select.clear();if(text){select.appendItem({text:text,disabled:true})}if(items.length){for(var i in items){if(typeof items[i]!="object"){items[i]=[items[i],items[i]]}}if(options.multiselect){items=filterData(items)}if(options.dividingLine=="smart"){removeClass(resultList,"dividing_line");for(var i in items){if(typeof(items[i][2])=="string"&&items[i][2].length){addClass(resultList,"dividing_line")}}}var itemsToShow=(options.autocomplete&&query)?options.maxItemsShown(query.length):items.length;each(items,function(){if(!itemsToShow){return}var formatted=options.formatResult(this);if(query){if(formatted=options.highlight(formatted,query)){--itemsToShow}}if(!formatted){return}select.appendItem({value:this[0],text:formatted})});if(!text&&!items.length){return showNoDataList()}}if(options.multiselect||!selectedItems.length){select.show()}else{select.show(selectedItems[0][0])}}function receiveData(q,data){if(q!=""&&data&&data.length&&hasFocus){receivedData=data;showDataList(data,q)}else{select.hide()}}function filterData(items){var result=[];each(items,function(i){for(var j in selectedItems){if(this[0]==selectedItems[j][0]){return}}result.push(this)});return result}function request(success,failure){if(dataURL){var term=trim(input.value.toLowerCase());if(term.length==0){return}var sep=dataURL.indexOf("?")==-1?"?":"&";var url=dataURL+sep+"str="+encodeURI(term);var ajax=new Ajax(function(ajaxObj,data){if(options.progressBar){hide(options.progressBar)}try{data=eval("("+data+")")}catch(e){}if(data.length){cache.add(term,data);if(isFunction(success)){success(term,data)}}else{cache.addEmpty(term);if(isFunction(failure)){failure(term)}}});ajax.get(url);if(options.progressBar){show(options.progressBar)}}}function sort(data){var i,j,tmp;if(!data.length||data.length<2){return data}for(i=0;i<data.length-1;i++){for(j=i+1;j<data.length;j++){if(data[i][1]>data[j][1]){tmp=data[i];data[i]=data[j];data[j]=tmp}}}}function disable(value){if(value&&!disabled){disabled=true;addClass(container,"disabled");var s=getSize(container),h=document.createElement("div");h.className="hide_mask";each({position:"absolute",background:"#000",opacity:"0",filter:"alpha(opacity=0)",width:s[0]+"px",height:s[1]+"px",marginTop:-s[1]+"px"},function(k,v){h.style[k]=v});if(options.disabledText){input.value=options.disabledText}container.appendChild(h);input.blur();input.style.color="";select.hide()}else{if(!value&&disabled){disabled=false;if(options.autocomplete){input.value=""}removeClass(container,"disabled");container.removeChild(geByClass("hide_mask",container)[0])}}}function clear(){showImage();if(options.multiselect){selectedTokenId=0;selectedItemsContainer.innerHTML=""}if(!options.multiselect&&!options.autocomplete){if(selectedItems[0]!=options.defaultItems[0]){selectItem(options.defaultItems[0],false)}}else{removeClass(input,"selected");resultField.value="";selectedItems.splice(0,selectedItems.length)}return false}return{setURL:function(url){if(typeof(url)=="string"){dataURL=url;cache.flush();dataItems=[]}},setData:function(dataArr){if(!isArray(dataArr)){return}if(!options.autocomplete){select.clear();options.defaultItems=dataArr;if(!options.multiselect){if(!selectedItems.length&&options.defaultItems.length){selectItem(options.defaultItems[0],false)}else{if(selectedItems.length){var exists=false;for(var i in options.defaultItems){var item=options.defaultItems[i][0]||options.defaultItems[i];if(item==selectedItems[0][0]||item==selectedItems[0][0]){exists=true;break}}if(!exists){selectItem(options.defaultItems[0],false)}else{selectItem(selectedItems[0][0],false)}}}}}else{dataItems=dataArr;dataURL=null;cache.flush();cache.populate(dataItems)}},focus:function(){if(!readOnly){input.focus()}},selectItem:function(item){selectItem(item,false)},setOptions:function(new_options){new_options=convertText_in_options(new_options);extend(options,new_options);if("maxItems" in new_options&&options.maxItems>=0){for(var i=selectedItems.length-1;i>=options.maxItems;i--){removeTagData(selectedItems[i][0])}}if("defaultItems" in new_options){select.clear();if(select.isVisible(container)){showDefaultList()}}if("enableCustom" in new_options){if(options.enableCustom&&!options.autocomplete){options.autocomplete=new_options.autocomplete=true}}if("width" in new_options){container.style.width=options.width+"px";resultList.style.width=resultListShadow.style.width=options.width+"px";selector._width=options.width-scrollbarWidth}if("dropdown" in new_options){var dd=geByClass("selector_dropdown",container)[0];if(!options.dropdown&&dd){destroyDropdown();dd.parentNode.removeChild(dd)}else{if(!dd&&options.dropdown){dd=container.firstChild.rows[0].insertCell(1);dd.id="dropdown"+guid;dd.className="selector_dropdown";dd.innerHTML="&nbsp;";initDropdown()}}}if(("width" in new_options)||("autocomplete" in new_options)||("dropdown" in new_options)){updateInput()}if("autocomplete" in new_options){if(options.autocomplete){removeClass(container,"dropdown_container");input.readOnly=false;readOnly=""}else{addClass(container,"dropdown_container");input.readOnly=true;options.enableCustom=false;readOnly='readonly="true"'}}},disable:disable,val:function(value,fireEvent){if(value!==undefined){selectItem(value,(fireEvent===undefined)?false:fireEvent)}return resultField.value},val_full:function(){if(options.multiselect){return selectedItems}else{if(selectedItems.length){return selectedItems[0]}else{return[resultField.value,input.value]}}},customVal:function(value,fireEvent){if(value!==undefined){customField.value=value;selectItem([options.valueForCustom,value],(fireEvent===undefined)?false:fireEvent)}return customField.value},selectedItems:function(){return selectedItems},clear:function(){clear();updateInput()}}}function _Cache(q,j){var n={};var p=0;function l(e,a){var b,d;if(typeof(e)!="string"){return false}e=trim(stripHTML(e.toLowerCase()));while(1){if(e.indexOf(a)==0){return true}if((b=e.indexOf(" "))==-1){if((b=e.indexOf("("))==-1){return false}}else{if((d=e.indexOf("("))!=-1){b=b<d?b:d}}e=e.substr(b+1)}}function m(b,a){if(p>j.cacheLength){k()}if(!n[b]){p++}n[b]=a}function o(a){if(!a){return false}var d={},e=0;j.cacheLength=1;d[""]=[];for(var h=0,b=a.length;h<b;h++){var f=a[h];f=(typeof f=="string")?f.split("|"):f;var g=f[1].charAt(0).toLowerCase();if(!d[g]){d[g]=[]}d[g].push(f);if(e++<j.showMax){d[""].push(f)}}each(d,function(s,i){j.cacheLength++;m(s,i)})}o(q);function k(){n={};p=0}return{flush:k,add:m,populate:o,addEmpty:function(a){n[a]=[]},load:function(f,b){if(!j.cacheLength||!p){return null}var a=[];if(b){for(var d in n){if(d.length>0){var e=n[d];each(e,function(h,g){if(l(g[1],f)){a.push(g)}})}}}else{if(n[f]==null){return null}each(n[f],function(h,g){if(l(g[1],f)){a.push(g)}})}return a}}}function _Select(I,N,R){var U={FIRST:"first",LAST:"last",ACTIVE:"active",FIRST_ACTIVE:"first_active",LAST_ACTIVE:"last_active",SCROLLABLE:"result_list_scrollable"};var O=-1,y=[],A,E=R.height?R.height:250;A=document.createElement("ul");I.appendChild(A);var H=browser.opera?"keypress":"keydown";uiWindowDispatcher.attachListener(A,H,S);function S(a){if(!isVisible(I)){return}switch(a.keyCode){case KEY.UP:K(-1);return false;break;case KEY.DOWN:K(1);return false;break;case KEY.PAGEUP:return false;break;case KEY.PAGEDOWN:return false;break;case KEY.TAB:if(isFunction(R.onItemSelect)&&O>-1){R.onItemSelect(J());return false}D();break;case KEY.RETURN:if(isFunction(R.onItemSelect)&&O>-1){R.onItemSelect(J())}return false;break;case KEY.ESC:D();return false;break}}function F(){O=-1;A.innerHTML="";G();debug("clear select")}function J(){if(O>=0&&A.childNodes[O]){var b=A.childNodes[O];var a=b._value||b.innerHTML;return a}return null}function K(a){if(M(a)){P(A.childNodes[O])}}function M(a){var b=parseInt(O)+parseInt(a);if(b<0){I.scrollTop=0}else{if(b+1>A.childNodes.length){I.scrollTop=A.offsetTop+A.offsetHeight-I.offsetHeight}}while(1){if(b+1>A.childNodes.length||b<0){return false}if(!A.childNodes[b]["_disabled"]){break}b++}O=b;return true}function P(a){if(!a){return}each(A.childNodes,function(b,d){removeClass(d,U.ACTIVE)});addClass(a,U.ACTIVE);removeClass(A.firstChild,U.FIRST_ACTIVE);removeClass(A.lastChild,U.LAST_ACTIVE);if(a==A.firstChild){addClass(a,U.FIRST_ACTIVE)}else{if(a==A.lastChild){addClass(a,U.LAST_ACTIVE)}}if(isFunction(R.onItemActive)){R.onItemActive(a._value||a.innerHTML)}if(a.offsetTop+a.offsetHeight+A.offsetTop>I.offsetHeight+I.scrollTop-1){I.scrollTop=a.offsetTop+A.offsetTop+a.offsetHeight-I.offsetHeight+1}else{if(a.offsetTop+A.offsetTop<I.scrollTop){I.scrollTop=a.offsetTop+A.offsetTop}}}function B(a){if(hasClass(this,"active")){return false}O=indexOf(A.childNodes,this);P(this)}function T(a){var b=this["_value"]||this.innerHTML;if(isFunction(R.onItemSelect)){R.onItemSelect(b)}D()}function G(){if(E<A.offsetHeight){I.style.height=E+"px";show(N);N.style.marginTop=(E+1)+"px";addClass(I,U.SCROLLABLE)}else{removeClass(I,U.SCROLLABLE);I.style.height="auto";var a=intval(A.offsetHeight)+intval(A.offsetTop);if(a){show(N);N.style.marginTop=a+"px"}else{hide(N)}}}function Q(a){if(typeof a!="object"){return false}if(A.lastChild){removeClass(A.lastChild,U.LAST_ACTIVE);removeClass(A.lastChild,U.LAST)}var b=document.createElement("li");a.text=a.text===undefined?"":a.text.toString();a.value=a.value===undefined?"":a.value.toString();b.innerHTML=a.text||a.value;b._value=a.value||"";A.appendChild(b);if(a.disabled){b._disabled=true;addClass(b,"disabled")}else{addEvent(b,"mousemove",B);addEvent(b,"mousedown",T)}addClass(A.lastChild,U.LAST);if(A.childNodes.length==1){addClass(A.firstChild,U.FIRST)}G()}function z(a){if(a===undefined){return}for(var d in A.childNodes){var b=A.childNodes[d];if(b&&(b._value==a||b.innerHTML==a)){b.parentNode.removeChild(b);break}}G()}function C(){A.style.position="absolute";A.style.visibility="hidden";show(I);show(N);G();A.style.position="relative";A.style.visibility="visible"}function L(e){var a=isVisible(I);if(!a){C();debug("show list"+I.parentNode.parentNode.id)}var b;if(e){for(var d=0;d<A.childNodes.length;d++){b=A.childNodes[d];if(b._value==e){O=d;P(b);break}}}else{if(R.selectFirst){for(var d=0;d<A.childNodes.length;d++){b=A.childNodes[d];if(!b._disabled){O=d;P(b);break}}}}if(!a&&isFunction(R.onShow)){R.onShow()}}function D(){if(!isVisible(I)){return}debug("hide list");hide(I);hide(N);if(isFunction(R.onHide)){R.onHide()}O=-1;if(isFunction(R.onItemActive)){R.onItemActive()}}return{data:y,clear:F,isVisible:function(){return isVisible(I)},hasItems:function(){return A.childNodes.length>0},toggle:function(){if(this.isVisible(I)){D()}else{L()}},handleKeyEvent:function(a){if(isVisible(I)){S(a)}},hide:D,show:L,selectedItem:J,appendItem:Q,removeItem:z}}function Checkbox(r,p){var q=this,s=uiWindowDispatcher.getUID(),z;var x=false;if(r==null){return false}var y={checked:r.value,checkedValue:1,notCheckedValue:"",width:300,label:"checkbox",resultField:r.name||"checkbox"};p=extend(y,p);p.checked=intval(p.checked)?true:false;var B,u,C,v=false;B=document.createElement("div");B.id="container"+s;B.className="checkbox_container";B.innerHTML='<table cellpadding=0 cellspacing=0><tr><td class="checkbox"><div class="checkbox_off"></div></td><td class="checkbox_label">'+p.label+'<input type="hidden" name="'+p.resultField+'" id="'+p.resultField+'" value=""></td></tr></table>';r.parentNode.replaceChild(B,r);u=geByClass("checkbox_off",B)[0];C=ge(p.resultField);C.value=p.checked?p.checkedValue:p.notCheckedValue;p.width=intval(p.width)>0?intval(p.width):y.width;B.style.width=p.width+"px";addEvent(B,"click",function(a){if(!x){t(!p.checked)}});addEvent(B,"mouseover",function(a){v=true;A()});addEvent(B,"mouseout",function(a){v=false;A()});function w(a){if(a&&!x){x=true;addClass(B,"disabled")}else{if(!a&&x){x=false;removeClass(B,"disabled")}}}function A(){if(v&&p.checked){u.className="checkbox_on_over"}else{if(v){u.className="checkbox_off_over"}else{if(p.checked){u.className="checkbox_on"}else{u.className="checkbox_off"}}}}function t(a,b,d){if(b===z){b=true}if(d===z){d=false}a=a?true:false;if(p.checked==a&&!d){return}p.checked=a;A();C.value=p.checked?p.checkedValue:p.notCheckedValue;if(b&&isFunction(p.onChange)){p.onChange(C.value)}}t(p.checked,false,true);return{setOptions:function(a){extend(p,a);if(("checked" in a)||("checkedValue" in a)||("notCheckedValue" in a)){t(p.checked,false,true)}},disable:w,checked:function(a){if(a!==z){t(a)}return p.checked},val:function(){return C.value}}}var uiRadioButtonsData={_radio_buttons:{},_callbacks:{},register:function(e,d){if(!isArray(this._radio_buttons[e])){this._radio_buttons[e]=[]}this._radio_buttons[e].push(d)},deselect:function(e){for(var d=0;d<this._radio_buttons[e].length;++d){this._radio_buttons[e][d].checked(false)}},select:function(f,g){for(var e=0;e<this._radio_buttons[f].length;++e){if(this._radio_buttons[f][e].val()==g){this._radio_buttons[f][e].checked(true);return}}},setChangeEvent:function(e,d){if(isFunction(d)){this._callbacks[e]=d}else{delete (this._callbacks[e])}},_onValueChange:function(e,d){if(isFunction(this._callbacks[e])){this._callbacks[e](d)}}};function Radiobutton(v,r){var t=this,w=uiWindowDispatcher.getUID(),C;var A=false;if(v==null){return false}var B={checked:false,value:v.value,width:300,label:"radiobutton",resultField:v.name||"radiobutton"};r=extend(B,r);r.checked=intval(r.checked)?true:false;var F,D,G,y=false;F=document.createElement("div");F.id="container"+w;F.className="radiobtn_container";var u=r.checked?'checked="true"':"";F.innerHTML='<table cellpadding=0 cellspacing=0><tr><td class="radiobtn"><div class="radiobtn_off"><div></div></div></td><td class="radiobtn_label">'+r.label+'<input type="radio" name="'+r.resultField+'" id="'+v.id+'" '+u+" /></td></tr></table>";v.parentNode.replaceChild(F,v);D=geByClass("radiobtn_off",F)[0];G=F.getElementsByTagName("input")[0];G.value=r.value;r.width=intval(r.width)>0?intval(r.width):B.width;F.style.width=r.width+"px";addEvent(F,"click",function(a){if(!A&&!r.checked){x(true)}});addEvent(F,"mouseover",function(a){y=true;E()});addEvent(F,"mouseout",function(a){y=false;E()});function z(a){if(a&&!A){A=true;addClass(F,"disabled")}else{if(!a&&A){A=false;removeClass(F,"disabled")}}}function E(){if(y&&r.checked){D.className="radiobtn_on_over"}else{if(y){D.className="radiobtn_off_over"}else{if(r.checked){D.className="radiobtn_on"}else{D.className="radiobtn_off"}}}}function x(a,b,d){if(b===C){b=true}if(d===C){d=false}a=a?true:false;if(r.checked==a&&!d){return}if(a){uiRadioButtonsData.deselect(r.resultField)}r.checked=a;E();G.checked=a;if(b){if(r.checked&&isFunction(r.onSelect)){r.onSelect(G.value)}if(isFunction(r.onChange)){r.onChange(G.value,a)}if(a){uiRadioButtonsData._onValueChange(G.name,G.value)}}}x(r.checked,false,true);var s={setOptions:function(a){extend(r,a);if("checked" in a){r.checked=!r.checked;x(!r.checked,false)}},disable:z,checked:function(a){if(a!==C){x(a)}return r.checked},val:function(){return G.value}};uiRadioButtonsData.register(G.name,s);return s}function Autosize(y,r){var t=this,B=uiWindowDispatcher.getUID(),D;if(y==null){return false}var C={height:0,minHeight:0};r=extend(C,r);var A=y,u,F;var G,v,w,x,s;u=ge("autosize_helpers");if(!u){u=document.createElement("div");u.id="autosize_helpers";u.style.position="absolute";u.style.left="-10000px";u.style.top="-10000px";document.body.appendChild(u)}F=document.createElement("div");u.appendChild(F);w=intval(r.minHeight);x=intval(r.height);if(!w){w=intval(getStyle(A,"height"))}s=intval(getStyle(A,"fontSize"));A.style.overflow="hidden";var z=intval(getStyle(A,"width"));if(z<1){z=intval(getStyle(A,"width",false))}F.style.width=(z<0?0:z)+"px";F.style.fontFamily=getStyle(A,"fontFamily");F.style.fontSize=s+"px";F.style.lineHeight=getStyle(A,"lineHeight");function E(a){return function(d){var b=A.value;if(a){if(d.keyCode==13&&!d.ctrlKey&&!d.altKey){b+="\n"}}if(b==G){return}G=b;F.innerHTML=trim(replaceChars(b)).replace(/<br>$/,"<br>&nbsp;");var e=getSize(F,true)[1]+s;if(e<w){e=w}if(x>0&&e>x){e=x;A.style.overflow="auto"}else{A.style.overflow="hidden"}if(v!=e){A.style.height=(v=e)+"px";if(r.onResize){r.onResize(e)}}}}addEvent(A,"keydown",E(true));addEvent(A,"keypress",E(true));addEvent(A,"keyup",E(false));E(false)();return{update:E(false)}}function DropdownMenu(h,m){if(this==window){throw"Use new DropdownMenu"}if(!m){m={}}var i=this;var j=this.guid=uiWindowDispatcher.getUID();this.options={};if(!m.title&&m.target){m.title=m.target.innerHTML}m=extend({},this.defaults,m);this.container=document.createElement("div");this.visible=false;var k=this.container;k.className="dd_menu";this.header=document.createElement("div");extend(this.header,{className:"dd_menu_header",innerHTML:"<div>"+this.options.title+"</div>"});this.body=document.createElement("div");extend(this.body,{className:"dd_menu_body",innerHTML:'<table cellspacing="0" cellpadding="0"><tbody><tr><td class="dd_menu_shad_l"><div></div></td><td><div id="dd_rows_'+j+'" class="dd_menu_rows"></div><div class="dd_menu_shad_b"></div><div class="dd_menu_shad_b2"></div></td><td class="dd_menu_shad_r"><div> </div></td></tr></tbody></table>'});k.appendChild(this.header);k.appendChild(this.body);hide(this.header);hide(this.body);this.rows=document.createElement("div");this.rows.id="rows"+j;if(isArray(h)&&h.length){for(var l=0;l<h.length;l++){this.addItem(h[l])}}this.mouseTimer=0;addEvent(k,"mouseover mouseout",this.__onMouseEvent.bind(this));this.onHide=function(a){this.visible=false;if(a||!this.options.showHover){hide(this.header)}else{addClass(this.header,"dd_header_hover")}hide(this.body);if(this.options.onHide){this.options.onHide()}};onDomReady(function(){document.body.appendChild(k);var a=i.header,e=i.body;e.style.top=getSize(a)[1]-1+"px";ge("dd_rows_"+j).appendChild(i.rows);i.setOptions(m);if(m.target){m.target.onclick=function(){i.show();return false}}if(m.target&&m.showHover){var b;var d=function(){if(!i.visible){hide(a)}removeClass(a,"dd_header_hover")};addEvent(m.target,"mouseover",function(){addClass(a,"dd_header_hover");i.moveToTarget();show(a);b=setTimeout(d,100)});addEvent(a,"mouseover",function(){clearTimeout(b)});addEvent(a,"mouseout",d)}})}DropdownMenu.prototype={moveTo:function(d,e){extend(this.container.style,{top:intval(e)+"px",left:intval(d)+"px"})},moveToTarget:function(){var b=getXY(this.options.target);if(/mac/.test(_ua)&&browser.mozilla){b[1]+=1}this.moveTo(b[0]+this.options.offsetLeft,b[1]+this.options.offsetTop)},addItem:function(g){var e=document.createElement("a");e.innerHTML=g.l;if(g.i){e.index=g.i}if(g.c){e.className=c}if(g.s){extend(e.style,g.s)}if(g.b){extend(e.style,{backgroundImage:"url('"+g.b+"')",paddingLeft:"27px"})}var f=this;addEvent(e,"click",function(a){var b=true;if(isFunction(g.onClick)&&g.onClick(a)===false){b=false}if(f.options.onSelect(a)===false){b=false}if(b){f.hide()}});if(browser.msie){e.onmouseover=function(){addClass(e,"dd_a_hover")};e.onmouseout=function(){removeClass(e,"dd_a_hover")}}this.rows.appendChild(e)},getRows:function(){return this.rows},setOptions:function(d){var e=this;extend(this.options,d);if(d.title){this.header.innerHTML="<div>"+this.options.title+"</div>"}if(typeof d.hideOnClick!="undefined"){this.header.onclick=d.hideOnClick?this.toggle.bind(this):this.show.bind(this)}},toggle:function(){this.visible?this.hide(false):this.show()},show:function(){if(this.visible){return}if(this.options.target&&!this.options.showHover){this.moveToTarget()}clearTimeout(this.mouseTimer);show(this.header);show(this.body);if(this.options.showHover){removeClass(this.header,"dd_header_hover")}this.visible=true},hide:function(d){if(!this.visible){return}var e=this;(d===false)?this.onHide(false):fadeOut(this.container,100,function(){show(e.container);e.onHide.call(e,true)})},__onMouseEvent:function(b){clearTimeout(this.mouseTimer);if(b.type=="mouseout"){this.mouseTimer=setTimeout(this.hide.bind(this),400)}}};DropdownMenu.prototype.defaults={title:"Menu",hideOnClick:true,showHover:true,offsetLeft:-7,offsetTop:-4,onSelect:function(){}};
