/*
	Copyright (c) 2004-2007, The Dojo Foundation
	All Rights Reserved.

	Licensed under the Academic Free License version 2.1 or above OR the
	modified BSD license. For more information on Dojo licensing, see:

		http://dojotoolkit.org/book/dojo-book-0-9/introduction/licensing
*/


dojo._xdResourceLoaded({depends:[["provide","dijit.form.ComboBox"],["require","dojo.data.ItemFileReadStore"],["require","dijit.form.ValidationTextBox"],["requireLocalization","dijit.form","ComboBox",null,"ROOT,cs,de,es,fr,hu,it,ja,ko,pl,pt,ru,zh,zh-tw","ROOT,cs,de,es,fr,hu,it,ja,ko,pl,pt,ru,zh,zh-tw"]],defineResource:function(_1){if(!_1._hasResource["dijit.form.ComboBox"]){_1._hasResource["dijit.form.ComboBox"]=true;_1.provide("dijit.form.ComboBox");_1.require("dojo.data.ItemFileReadStore");_1.require("dijit.form.ValidationTextBox");_1.declare("dijit.form.ComboBoxMixin",null,{item:null,pageSize:Infinity,store:null,query:{},autoComplete:true,searchDelay:100,searchAttr:"name",ignoreCase:true,hasDownArrow:true,_hasFocus:false,templateString:"<table style=\"display: -moz-inline-stack;\" class=\"dijit dijitReset dijitInlineTable dijitLeft\" cellspacing=\"0\" cellpadding=\"0\"\n\tid=\"widget_${id}\" name=\"${name}\" dojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse\" waiRole=\"presentation\"\n\t><tr class=\"dijitReset\"\n\t\t><td class='dijitReset dijitStretch dijitInputField' width=\"100%\"\n\t\t\t><input type=\"text\" autocomplete=\"off\" name=\"${name}\"\n\t\t\tdojoAttachEvent=\"onkeypress, onkeyup, onfocus, onblur, compositionend\"\n\t\t\tdojoAttachPoint=\"textbox,focusNode\" waiRole=\"combobox\"\n\t\t/></td\n\t\t><td class=\"dijitReset dijitValidationIconField\" width=\"0%\"\n\t\t\t><div dojoAttachPoint='iconNode' class='dijitValidationIcon'></div><div class='dijitInline dijitValidationIconText'>&Chi;</div\n\t\t></td\n\t\t><td class='dijitReset dijitRight dijitButtonNode dijitDownArrowButton' width=\"0%\"\n\t\t\tdojoAttachPoint=\"downArrowNode\"\n\t\t\tdojoAttachEvent=\"ondijitclick:_onArrowClick,onmousedown:_onArrowMouseDown,onmouseup:_onMouse,onmouseenter:_onMouse,onmouseleave:_onMouse\"\n\t\t\t><div class=\"dijitDownArrowButtonInner\" waiRole=\"presentation\" tabIndex=\"-1\"\n\t\t\t\t><div class=\"dijitDownArrowButtonChar\">&#9660;</div\n\t\t\t></div\n\t\t></td\t\n\t></tr\n></table>\n",baseClass:"dijitComboBox",_lastDisplayedValue:"",getValue:function(){return dijit.form.TextBox.superclass.getValue.apply(this,arguments);},setDisplayedValue:function(_2){this._lastDisplayedValue=_2;this.setValue(_2,true);},_getCaretPos:function(_3){if(typeof (_3.selectionStart)=="number"){return _3.selectionStart;}else{if(_1.isIE){var tr=document.selection.createRange().duplicate();var _5=_3.createTextRange();tr.move("character",0);_5.move("character",0);try{_5.setEndPoint("EndToEnd",tr);return String(_5.text).replace(/\r/g,"").length;}catch(e){return 0;}}}},_setCaretPos:function(_6,_7){_7=parseInt(_7);this._setSelectedRange(_6,_7,_7);},_setSelectedRange:function(_8,_9,_a){if(!_a){_a=_8.value.length;}if(_8.setSelectionRange){dijit.focus(_8);_8.setSelectionRange(_9,_a);}else{if(_8.createTextRange){var _b=_8.createTextRange();with(_b){collapse(true);moveEnd("character",_a);moveStart("character",_9);select();}}else{_8.value=_8.value;_8.blur();dijit.focus(_8);var _c=parseInt(_8.value.length)-_a;var _d=String.fromCharCode(37);var _e=_d.charCodeAt(0);for(var x=0;x<_c;x++){var te=document.createEvent("KeyEvents");te.initKeyEvent("keypress",true,true,null,false,false,false,false,_e,_e);_8.dispatchEvent(te);}}}},onkeypress:function(evt){if(evt.altKey||(evt.ctrlKey&&evt.charCode!=118)){return;}var _12=false;this.item=null;if(this._isShowingNow){this._popupWidget.handleKey(evt);}switch(evt.keyCode){case _1.keys.PAGE_DOWN:case _1.keys.DOWN_ARROW:if(!this._isShowingNow||this._prev_key_esc){this._arrowPressed();_12=true;}else{this._announceOption(this._popupWidget.getHighlightedOption());}_1.stopEvent(evt);this._prev_key_backspace=false;this._prev_key_esc=false;break;case _1.keys.PAGE_UP:case _1.keys.UP_ARROW:if(this._isShowingNow){this._announceOption(this._popupWidget.getHighlightedOption());}_1.stopEvent(evt);this._prev_key_backspace=false;this._prev_key_esc=false;break;case _1.keys.ENTER:var _13;if(this._isShowingNow&&(_13=this._popupWidget.getHighlightedOption())){if(_13==this._popupWidget.nextButton){this._nextSearch(1);_1.stopEvent(evt);break;}else{if(_13==this._popupWidget.previousButton){this._nextSearch(-1);_1.stopEvent(evt);break;}}}else{this.setDisplayedValue(this.getDisplayedValue());}evt.preventDefault();case _1.keys.TAB:var _14=this.getDisplayedValue();if(this._popupWidget&&(_14==this._popupWidget._messages["previousMessage"]||_14==this._popupWidget._messages["nextMessage"])){break;}if(this._isShowingNow){this._prev_key_backspace=false;this._prev_key_esc=false;if(this._popupWidget.getHighlightedOption()){this._popupWidget.setValue({target:this._popupWidget.getHighlightedOption()},true);}this._hideResultList();}break;case _1.keys.SPACE:this._prev_key_backspace=false;this._prev_key_esc=false;if(this._isShowingNow&&this._popupWidget.getHighlightedOption()){_1.stopEvent(evt);this._selectOption();this._hideResultList();}else{_12=true;}break;case _1.keys.ESCAPE:this._prev_key_backspace=false;this._prev_key_esc=true;this._hideResultList();if(this._lastDisplayedValue!=this.getDisplayedValue()){this.setDisplayedValue(this._lastDisplayedValue);_1.stopEvent(evt);}else{this.setValue(this.getValue());}break;case _1.keys.DELETE:case _1.keys.BACKSPACE:this._prev_key_esc=false;this._prev_key_backspace=true;_12=true;break;case _1.keys.RIGHT_ARROW:case _1.keys.LEFT_ARROW:this._prev_key_backspace=false;this._prev_key_esc=false;break;default:this._prev_key_backspace=false;this._prev_key_esc=false;if(_1.isIE||evt.charCode!=0){_12=true;}}if(this.searchTimer){clearTimeout(this.searchTimer);}if(_12){this.searchTimer=setTimeout(_1.hitch(this,this._startSearchFromInput),this.searchDelay);}},_autoCompleteText:function(_15){this._setSelectedRange(this.focusNode,this.focusNode.value.length,this.focusNode.value.length);if(new RegExp("^"+escape(this.focusNode.value),this.ignoreCase?"i":"").test(escape(_15))){var _16=this._getCaretPos(this.focusNode);if((_16+1)>this.focusNode.value.length){this.focusNode.value=_15;this._setSelectedRange(this.focusNode,_16,this.focusNode.value.length);dijit.setWaiState(this.focusNode,"valuenow",_15);}}else{this.focusNode.value=_15;this._setSelectedRange(this.focusNode,0,this.focusNode.value.length);dijit.setWaiState(this.focusNode,"valuenow",_15);}},_openResultList:function(_17,_18){if(this.disabled||_18.query[this.searchAttr]!=this._lastQuery){return;}this._popupWidget.clearResultList();if(!_17.length){this._hideResultList();return;}var _19=new String(this.store.getValue(_17[0],this.searchAttr));if(_19&&this.autoComplete&&!this._prev_key_backspace&&(_18.query[this.searchAttr]!="*")){this._autoCompleteText(_19);dijit.setWaiState(this.focusNode||this.domNode,"valuenow",_19);}this._popupWidget.createOptions(_17,_18,_1.hitch(this,this._getMenuLabelFromItem));this._showResultList();if(_18.direction){if(_18.direction==1){this._popupWidget.highlightFirstOption();}else{if(_18.direction==-1){this._popupWidget.highlightLastOption();}}this._announceOption(this._popupWidget.getHighlightedOption());}},_showResultList:function(){this._hideResultList();var _1a=this._popupWidget.getItems(),_1b=Math.min(_1a.length,this.maxListLength);this._arrowPressed();this._displayMessage("");with(this._popupWidget.domNode.style){width="";height="";}var _1c=this.open();var _1d=_1.marginBox(this._popupWidget.domNode);this._popupWidget.domNode.style.overflow=((_1c.h==_1d.h)&&(_1c.w==_1d.w))?"hidden":"auto";var _1e=_1c.w;if(_1c.h<this._popupWidget.domNode.scrollHeight){_1e+=16;}_1.marginBox(this._popupWidget.domNode,{h:_1c.h,w:Math.max(_1e,this.domNode.offsetWidth)});},_hideResultList:function(){if(this._isShowingNow){dijit.popup.close(this._popupWidget);this._arrowIdle();this._isShowingNow=false;}},_onBlur:function(){this._hasFocus=false;this._hasBeenBlurred=true;this._hideResultList();var _1f=this.getDisplayedValue();if(this._popupWidget&&(_1f==this._popupWidget._messages["previousMessage"]||_1f==this._popupWidget._messages["nextMessage"])){this.setValue(this._lastValueReported);}else{this.setDisplayedValue(_1f);}},onfocus:function(evt){this._hasFocus=true;this._onMouse(evt);},onblur:function(evt){this._arrowIdle();this.validate(false);this._onMouse(evt);},_announceOption:function(_22){if(_22==null){return;}var _23;if(_22==this._popupWidget.nextButton||_22==this._popupWidget.previousButton){_23=_22.innerHTML;}else{_23=this.store.getValue(_22.item,this.searchAttr);}this.focusNode.value=this.focusNode.value.substring(0,this._getCaretPos(this.focusNode));this._autoCompleteText(_23);},_selectOption:function(evt){var tgt=null;if(!evt){evt={target:this._popupWidget.getHighlightedOption()};}if(!evt.target){this.setDisplayedValue(this.getDisplayedValue());return;}else{tgt=evt.target;}if(!evt.noHide){this._hideResultList();this._setCaretPos(this.focusNode,this.store.getValue(tgt.item,this.searchAttr).length);}this._doSelect(tgt);},_doSelect:function(tgt){this.item=tgt.item;this.setValue(this.store.getValue(tgt.item,this.searchAttr),true);},_onArrowClick:function(){if(this.disabled){return;}this.focus();if(this._isShowingNow){this._hideResultList();}else{this._startSearch("");}},_onArrowMouseDown:function(evt){this._layoutHack();this._onMouse(evt);},_startSearchFromInput:function(){this._startSearch(this.focusNode.value);},_startSearch:function(key){if(!this._popupWidget){this._popupWidget=new dijit.form._ComboBoxMenu({onChange:_1.hitch(this,this._selectOption)});}var _29=this.query;this._lastQuery=_29[this.searchAttr]=key+"*";var _2a=this.store.fetch({queryOptions:{ignoreCase:this.ignoreCase,deep:true},query:_29,onComplete:_1.hitch(this,"_openResultList"),start:0,count:this.pageSize});function nextSearch(_2b,_2c){_2b.start+=_2b.count*_2c;_2b.direction=_2c;_2b.store.fetch(_2b);};this._nextSearch=this._popupWidget.onPage=_1.hitch(this,nextSearch,_2a);},_getValueField:function(){return this.searchAttr;},_arrowPressed:function(){if(!this.disabled&&this.hasDownArrow){_1.addClass(this.downArrowNode,"dijitArrowButtonActive");}},_arrowIdle:function(){if(!this.disabled&&this.hasDownArrow){_1.removeClass(this.downArrowNode,"dojoArrowButtonPushed");}},compositionend:function(evt){this.onkeypress({charCode:-1});},constructor:function(){this.query={};},postMixInProperties:function(){if(!this.hasDownArrow){this.baseClass="dijitTextBox";}if(!this.store){var _2e=this.srcNodeRef?_1.query("> option",this.srcNodeRef).map(function(_2f){_2f.style.display="none";return {value:_2f.getAttribute("value"),name:String(_2f.innerHTML)};}):{};this.store=new _1.data.ItemFileReadStore({data:{identifier:this._getValueField(),items:_2e}});if(_2e&&_2e.length&&!this.value){this.value=_2e[this.srcNodeRef.selectedIndex!=-1?this.srcNodeRef.selectedIndex:0][this._getValueField()];}}},uninitialize:function(){if(this._popupWidget){this._hideResultList();this._popupWidget.destroy();}},_getMenuLabelFromItem:function(_30){return {html:false,label:this.store.getValue(_30,this.searchAttr)};},open:function(){this._isShowingNow=true;return dijit.popup.open({popup:this._popupWidget,around:this.domNode,parent:this});}});_1.declare("dijit.form._ComboBoxMenu",[dijit._Widget,dijit._Templated],{templateString:"<div class='dijitMenu' dojoAttachEvent='onclick,onmouseover,onmouseout' tabIndex='-1' style='overflow:\"auto\";'>"+"<div class='dijitMenuItem dijitMenuPreviousButton' dojoAttachPoint='previousButton'></div>"+"<div class='dijitMenuItem dijitMenuNextButton' dojoAttachPoint='nextButton'></div>"+"</div>",_messages:null,postMixInProperties:function(){this._messages=_1.i18n.getLocalization("dijit.form","ComboBox",this.lang);this.inherited("postMixInProperties",arguments);},setValue:function(_31){this.value=_31;this.onChange(_31);},onChange:function(_32){},onPage:function(_33){},postCreate:function(){this.previousButton.innerHTML=this._messages["previousMessage"];this.nextButton.innerHTML=this._messages["nextMessage"];this.inherited("postCreate",arguments);},onClose:function(){this._blurOptionNode();},_createOption:function(_34,_35){var _36=_35(_34);var _37=document.createElement("div");if(_36.html){_37.innerHTML=_36.label;}else{_37.appendChild(document.createTextNode(_36.label));}if(_37.innerHTML==""){_37.innerHTML="&nbsp;";}_37.item=_34;return _37;},createOptions:function(_38,_39,_3a){this.previousButton.style.display=_39.start==0?"none":"";var _3b=this;_1.forEach(_38,function(_3c){var _3d=_3b._createOption(_3c,_3a);_3d.className="dijitMenuItem";_3b.domNode.insertBefore(_3d,_3b.nextButton);});this.nextButton.style.display=_39.count==_38.length?"":"none";},clearResultList:function(){while(this.domNode.childNodes.length>2){this.domNode.removeChild(this.domNode.childNodes[this.domNode.childNodes.length-2]);}},getItems:function(){return this.domNode.childNodes;},getListLength:function(){return this.domNode.childNodes.length-2;},onclick:function(evt){if(evt.target===this.domNode){return;}else{if(evt.target==this.previousButton){this.onPage(-1);}else{if(evt.target==this.nextButton){this.onPage(1);}else{var tgt=evt.target;while(!tgt.item){tgt=tgt.parentNode;}this.setValue({target:tgt},true);}}}},onmouseover:function(evt){if(evt.target===this.domNode){return;}var tgt=evt.target;if(!(tgt==this.previousButton||tgt==this.nextButton)){while(!tgt.item){tgt=tgt.parentNode;}}this._focusOptionNode(tgt);},onmouseout:function(evt){if(evt.target===this.domNode){return;}this._blurOptionNode();},_focusOptionNode:function(_43){if(this._highlighted_option!=_43){this._blurOptionNode();this._highlighted_option=_43;_1.addClass(this._highlighted_option,"dijitMenuItemHover");}},_blurOptionNode:function(){if(this._highlighted_option){_1.removeClass(this._highlighted_option,"dijitMenuItemHover");this._highlighted_option=null;}},_highlightNextOption:function(){if(!this.getHighlightedOption()){this._focusOptionNode(this.domNode.firstChild.style.display=="none"?this.domNode.firstChild.nextSibling:this.domNode.firstChild);}else{if(this._highlighted_option.nextSibling&&this._highlighted_option.nextSibling.style.display!="none"){this._focusOptionNode(this._highlighted_option.nextSibling);}}dijit.scrollIntoView(this._highlighted_option);},highlightFirstOption:function(){this._focusOptionNode(this.domNode.firstChild.nextSibling);dijit.scrollIntoView(this._highlighted_option);},highlightLastOption:function(){this._focusOptionNode(this.domNode.lastChild.previousSibling);dijit.scrollIntoView(this._highlighted_option);},_highlightPrevOption:function(){if(!this.getHighlightedOption()){this._focusOptionNode(this.domNode.lastChild.style.display=="none"?this.domNode.lastChild.previousSibling:this.domNode.lastChild);}else{if(this._highlighted_option.previousSibling&&this._highlighted_option.previousSibling.style.display!="none"){this._focusOptionNode(this._highlighted_option.previousSibling);}}dijit.scrollIntoView(this._highlighted_option);},_page:function(up){var _45=0;var _46=this.domNode.scrollTop;var _47=parseInt(_1.getComputedStyle(this.domNode).height);if(!this.getHighlightedOption()){this._highlightNextOption();}while(_45<_47){if(up){if(!this.getHighlightedOption().previousSibling||this._highlighted_option.previousSibling.style.display=="none"){break;}this._highlightPrevOption();}else{if(!this.getHighlightedOption().nextSibling||this._highlighted_option.nextSibling.style.display=="none"){break;}this._highlightNextOption();}var _48=this.domNode.scrollTop;_45+=(_48-_46)*(up?-1:1);_46=_48;}},pageUp:function(){this._page(true);},pageDown:function(){this._page(false);},getHighlightedOption:function(){return this._highlighted_option&&this._highlighted_option.parentNode?this._highlighted_option:null;},handleKey:function(evt){switch(evt.keyCode){case _1.keys.DOWN_ARROW:this._highlightNextOption();break;case _1.keys.PAGE_DOWN:this.pageDown();break;case _1.keys.UP_ARROW:this._highlightPrevOption();break;case _1.keys.PAGE_UP:this.pageUp();break;}}});_1.declare("dijit.form.ComboBox",[dijit.form.ValidationTextBox,dijit.form.ComboBoxMixin],{postMixInProperties:function(){dijit.form.ComboBoxMixin.prototype.postMixInProperties.apply(this,arguments);dijit.form.ValidationTextBox.prototype.postMixInProperties.apply(this,arguments);}});}}});