/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["RA.Controls"]){dojo._hasResource["RA.Controls"]=!0;dojo.provide("RA.Controls");dojo.require("dijit.dijit");dojo.require("RA.Core");dojo.require("RA.I18N");RA.Controls={objects:null,create:function(a,b,c){var d;if(RA.Controls.objects==null)dojo.addOnWindowUnload(RA.Controls.cleanup),RA.Controls.objects={};if(typeof a=="string")d=dojo.byId(a);else if(d=a,a=d.id,a==null||a.length==0)a=RA.Util.createGuid();b=new b(d,c==null?{}:c);b._id=a;return RA.Controls.objects[a]=b},get:function(a){return RA.Controls.objects==
null?null:RA.Controls.objects[a]},destroy:function(a){var b,c=RA.Controls.objects;typeof a=="string"?b=c[a]:(b=a,a=b._id);b!=null&&b.destroy!=null&&(b.destroy(),delete c[a])},cleanup:function(){var a,b,c=RA.Controls.objects;for(a in c)if(b=c[a],b.destroy!=null)try{b.destroy(),delete c[a]}catch(d){delete c[a]}},limitChars:function(a,b,c,d,e){if(a==null)a=window.event;var f=b-c.value.length,d=document.getElementById(d);if(f<0)c.value=c.value.substr(0,b),f=0;d.innerHTML=e.replace("{0}",f);a!=null&&f===
0&&!RA.Util.isControlKey(a.keyCode)&&dojo.stopEvent(a)}};$RAInstantiate=RA.Controls.create;$RAGet=RA.Controls.get;$RADestroy=RA.Controls.destroy;var clsObj;clsObj={"-chains-":{destroy:"before"},constructor:function(a){this.m_element=a},destroy:function(){$clearHandlers(this.m_element)},copyConstructor:function(a){dojo.mixin(this,a)},getElement:function(){return this.m_element}};dojo.declare("RA.Controls.Control",null,clsObj);clsObj={constructor:function(a,b){var c=this,d,e;c.m_container=a;c.m_container.style.position=
"relative";c.m_content=c.createContent(b);c.m_container.appendChild(c.m_content);d=document.createElement("BUTTON");d.className=b.downArrowClass?b.downArrowClass:"SelectButton";d.tabIndex=-1;c.m_container.appendChild(d);c.m_selectButton=d;$addHandler(d,"click",function(a){c.toggleMenu(a)});e=document.createElement("SPAN");e.innerHTML="&#9660;";d.appendChild(e);c.m_menu=c.createMenu(b);if(b.menuClass!=null)c.m_menu.className=b.menuClass;c.m_container.appendChild(c.m_menu);b.menuStyles!=null&&dojo.style(c.m_menu.id,
b.menuStyles)},destroy:function(){$removeHandler(this.m_selectButton,"click")},createMenu:function(){var a=document.createElement("DIV");a.id=this.m_container.id+"_menu";a.className="Menu";a.style.position="absolute";return a},appendMenuContent:function(a){this.m_menu.appendChild(a)},showMenu:function(a){var b=this.m_menu,c;if(a)c=dojo.position(this.m_container),b.style.left="0px",b.style.top=c.h+"px";b.style.display=a?"block":"none"},menuVisible:function(){return this.m_menu.style.display=="block"},
toggleMenu:function(a){this.showMenu(!this.menuVisible());this.m_selectButton.blur();dojo.stopEvent(a)},getDomNode:function(){return this.m_container}};dojo.declare("RA.Controls.ComboButtonBase",[RA.Controls.Control],clsObj);clsObj={constructor:function(a,b){var c=this;c.m_vecItems=[];c.m_activeItem=null;c.m_onClick=b.onClick==null?null:b.onClick;$addHandler(c.m_button,"click",function(a){c.onClickButton(a)})},destroy:function(){var a,b,c=this.m_vecItems;b=c.length;for(a=0;a<b;++a)c[a].img!=null&&
$removeHandler(c[a].img,"click");this.m_activeItem=this.m_vecItems=null;$removeHandler(this.m_button,"click")},createContent:function(a){var b=document.createElement("BUTTON");b.id=this.m_container.id+"_content";b.className=a.buttonClass?a.buttonClass:"Button";b.tabIndex=-1;return this.m_button=b},populateMenu:function(a){var b=this,c,d;b.m_vecItems=a;if(a.length>0){b.m_activeItem=a[0];b.m_activeItem.img!=null&&(c=b.createButtonImage(b.m_activeItem.img),b.setButtonContent(c,b.m_activeItem.img.title));
c=a.length;for(d=0;d<c;++d)a[d].img.m_idx=d,$addHandler(a[d].img,"click",function(a){b.onSelectItem(a)}),b.appendMenuContent(a[d].img)}},setButtonContent:function(a,b){for(var c=this.m_button,d=this.m_button.childNodes;d.length>0;)c.removeChild(d[0]);this.m_button.appendChild(a);if(b!=null)this.m_button.title=b},onClickButton:function(a){this.m_onClick!==null&&this.m_onClick(this,this.m_activeItem.value);this.showMenu(!1);this.m_button.blur();dojo.stopEvent(a)},onSelectItem:function(a){if(this.m_vecItems.length!==
0)a=this.m_vecItems[a.target.m_idx],this.setButtonContent(this.createButtonImage(a.img),a.img.title),this.m_activeItem=a,this.m_onClick!=null&&this.m_onClick(this,a.value),this.showMenu(!1)},createButtonImage:function(a){var b=document.createElement("IMG");b.src=a.src;return b}};dojo.declare("RA.Controls.ComboButton",[RA.Controls.ComboButtonBase],clsObj);clsObj={constructor:function(a,b){this.m_element=a;this.m_bRequired=b.bRequired===!0;this.m_bHighlight=b.bHighlight===!0;this.m_vecHandlers=[];this.checkRequired()},
checkRequired:function(){if(this.m_bRequired||this.m_bHighlight)this.m_element.className=this.isValid()&&!this.m_bHighlight?"":"Required"}};dojo.declare("RA.Controls.FieldBase",[RA.Controls.Control],clsObj);clsObj={constructor:function(){var a=this;a.m_vecCbChange=[];$addHandler(a.m_element,"change",function(b){a.onChange(b)})},destroy:function(){$removeHandler(this.m_element,"change")},getValue:function(){var a=this.m_element,b=a.selectedIndex;return b==-1?"":a.options[b].value},onChange:function(){var a,
b,c=this.m_vecCbChange;this.checkRequired();b=c.length;for(a=0;a<b;++a)c[a]()},isValid:function(){return this.getValue()!=-1},addChangedHandler:function(a){this.m_vecCbChange.push(a)}};dojo.declare("RA.Controls.DropDownField",[RA.Controls.FieldBase],clsObj);clsObj={constructor:function(a,b){var c=this;c.m_strWatermark=b.watermark;c.m_bOverwritable=b.bOverwritable==null||b.bOverwritable===!0;c.m_bNonUserData=c.m_bOverwritable;c.m_bTrapEnter=b.trapEnter;$addHandler(a,"focus",function(a){c.onFocus(a)});
$addHandler(a,"blur",function(a){c.onBlur(a)});$addHandler(a,"change",function(a){c.onChange(a)});$addHandler(a,"keyup",function(a){c.onKeyUp(a)});$addHandler(a,"keydown",function(a){c.onKeyDown(a)});if(!c.m_bNonUserData)c.m_bNonUserData=c.getText().length==0;c.onBlurImp()},destroy:function(){$clearHandlers(this.getElement())},onBlurImp:function(){var a=this.m_element,b=this.m_strWatermark;if(a.value.length===0||b!=null&&a.value==b){if(b!=null)a.value=b;a.style.color="#C0C0C0"}else a.style.color=
"";this.checkRequired()},onBlur:function(){this.onBlurImp()},setFocus:function(){this.m_element.focus()},onFocus:function(){var a=this.m_element,b=this.m_strWatermark;a.value.length===0||b!=null&&a.value==b?(a.value="",a.style.color=""):a.select()},onChange:function(){this.onBlurImp()},onKeyUp:function(a){if(this.getText().length==0)this.m_bOverwritable=this.m_bNonUserData=!0;else if(!RA.Util.isControlKey(a.keyCode)||a.keyCode==8)this.m_bNonUserData=!1;this.checkRequired()},onKeyDown:function(a){this.m_bTrapEnter&&
a.keyCode==dojo.keys.ENTER&&RA.Util.preventBubbling(a)},setOverwritable:function(a){this.m_bOverwritable=a},setValue:function(a,b){return this.m_bNonUserData&&this.m_bOverwritable||b===!0?(this.m_element.value=a,this.m_element.style.color="",this.onBlur(),!0):!1},appendValue:function(a){return this.m_bNonUserData&&this.m_bOverwritable?(this.m_element.value+=a,this.m_element.style.color="",this.onBlur(),!0):!1},getText:function(){var a=this.m_element;return a.value==this.m_strWatermark?"":a.value},
getValue:function(){return this.getText()},getWatermark:function(){return this.m_strWatermark},enable:function(a){this.m_element.disabled=!a},isValid:function(){return this.getValue().length>0},addFocusHandler:function(a){$addHandler(this.m_element,"focus",function(b){a(b)})},addBlurHandler:function(a){$addHandler(this.m_element,"blur",function(b){a(b)})},addChangeHandler:function(a){$addHandler(this.m_element,"change",function(b){a(b)})},addKeyUpHandler:function(a){$addHandler(this.m_element,"keyup",
function(b){a(b)})},addKeyDownHandler:function(a){$addHandler(this.m_element,"keydown",function(b){a(b)})},addKeyPressHandler:function(a){$addHandler(this.m_element,"keypress",function(b){a(b)})}};dojo.declare("RA.Controls.TextField",[RA.Controls.FieldBase],clsObj);clsObj={constructor:function(a,b){this.m_calendar=null;this.m_cssClass=b.calendarCssClass;this.m_firstDayOfWeek=b.firstDayOfWeek;this.m_vecDays=[];this.m_month=this.m_date=null;this.m_vecCtrls=[];this.m_resources=this.getDefaultResources();
this.m_now=this.getDate();this.checkRequired()},destroy:function(){var a,b=this.m_vecCtrls,c=b.length;for(a=0;a<c;++a)$clearHandlers(b[a])},getDefaultResources:function(){return RA.I18N.Calendar},onKeyDown:function(a){this.inherited(arguments);a.keyCode==13?(RA.Util.preventBubbling(a),this.show(!1)):a.keyCode==9&&this.show(!1)},onKeyUp:function(a){var b;this.inherited(arguments);b=this.getDate();if(b!=null)this.m_date=b,this.render(b)},onFocus:function(a){this.inherited(arguments);this.show(!0)},
onBlur:function(a){this.inherited(arguments);this.onEdited()},show:function(a){var b=this,c;b.m_calendar==null&&b.create();if(b.m_calendar.style.display=="block"!=a)a?(c=b.parse(b.getValue(),b.m_strWatermark),c==null&&(c=new Date),b.m_date=c,b.render(c),$addHandler(document.body,"click",function(a){b.onBodyClick(a)})):$removeHandler(document.body,"click",function(a){b.onBodyClick(a)}),b.m_calendar.style.display=a?"block":"none"},onBodyClick:function(a){if(a.target!=this.getElement()){for(a=a.target,
calendar=this.m_calendar;a!=null&&a!=calendar;)a=a.parentNode;a==null&&this.show(!1)}},create:function(){var a=this,b=a.m_vecDays,c,d,e,f,g,h,k=new Date;h=a.m_firstDayOfWeek;var j=a.m_resources.dayAbbrev2;c=document.createElement("div");a.m_calendar=c;document.body.appendChild(c);c.className=a.m_cssClass;d=document.createElement("DIV");c.appendChild(d);d.className="Header";e=document.createElement("DIV");d.appendChild(e);e.className="Prev";e.innerHTML="&laquo;";$addHandler(e,"click",function(){a.m_date=
new Date(a.m_date.getFullYear()-1,a.m_date.getMonth(),1);a.render(a.m_date)});a.m_vecCtrls.push(e);e=document.createElement("DIV");d.appendChild(e);e.className="Prev";e.innerHTML="&lsaquo;";$addHandler(e,"click",function(){var b=a.m_date.getFullYear(),c=a.m_date.getMonth(),c=(c+11)%12;c==11&&--b;a.m_date=new Date(b,c,1);a.render(a.m_date)});a.m_vecCtrls.push(e);e=document.createElement("DIV");d.appendChild(e);e.className="Next";e.innerHTML="&raquo;";$addHandler(e,"click",function(){a.m_date=new Date(a.m_date.getFullYear()+
1,a.m_date.getMonth(),1);a.render(a.m_date)});a.m_vecCtrls.push(e);e=document.createElement("DIV");d.appendChild(e);e.className="Next";e.innerHTML="&rsaquo;";$addHandler(e,"click",function(){var b=a.m_date.getFullYear(),c=a.m_date.getMonth(),c=(c+13)%12;c==0&&++b;a.m_date=new Date(b,c,1);a.render(a.m_date)});a.m_vecCtrls.push(e);e=document.createElement("DIV");d.appendChild(e);e.className="Current";a.m_month=e;e=document.createElement("TABLE");c.appendChild(e);e.className="Calendar";d=document.createElement("TBODY");
e.appendChild(d);$addHandler(e,"click",function(b){a.selectNow(b.target)});a.m_vecCtrls.push(e);e=document.createElement("TR");d.appendChild(e);for(g=0;g<7;++g,h=++h%7)f=document.createElement("TH"),e.appendChild(f),f.appendChild(document.createTextNode(j[h]));for(g=0;g<6;++g){e=document.createElement("TR");d.appendChild(e);for(h=0;h<7;++h)f=document.createElement("TD"),e.appendChild(f),b.push(f)}div=document.createElement("div");div.className="Footer";div.innerHTML="Today: "+a.format(k);c.appendChild(div);
a.m_vecHandlers.push(dojo.connect(div,"onclick",function(){a.setDate(new Date)}));b=dojo.position(a.getElement(),!0);$RASetPosition(a.m_calendar,b.x,b.y+b.h-1)},parse:function(a,b){for(var c,d=RA.Controls.DateField,e=b.match(d.regexFlags),d=a.match(d.regexDate),f=-1,g=0,h=0,k=0,j=new Date,l=this.m_resources.monthAbbrev3,m;e[++f]!=void 0&&d[f]!=void 0;)switch(c=e[f],c){case "d":case "dd":k=parseInt(d[f],10);break;case "M":case "MM":h=parseInt(d[f],10);break;case "MMM":m=d[f].toLowerCase();for(c=0;c<
l.length;++c)if(l[c].toLowerCase()==m){h=c+1;break}break;case "yy":g=parseInt(d[f],10);g+=Math.abs(g+1900-j.getFullYear())<Math.abs(g+2E3-j.getFullYear())?1900:2E3;break;case "yyyy":g=parseInt(d[f],10)}return g>0&&h>0&&k>0?new Date(g,h-1,k):null},format:function(a){var b,c=this.m_resources.monthAbbrev3;return this.m_strWatermark.replace(RA.Controls.DateField.regexFlags,function(d){switch(d){case "d":return a.getDate();case "dd":return b=a.getDate(),(b<10?"0":"")+b;case "M":return a.getMonth()+1;case "MM":return b=
a.getMonth()+1,(b<10?"0":"")+b;case "MMM":return c[a.getMonth()];case "yy":return a.getFullYear().toString().substr(2);case "yyyy":return a.getFullYear();default:return""}})},isValid:function(){var a=this.m_strWatermark;return this.inherited(arguments)&&a!=null&&this.m_resources!=null&&this.parse(this.getValue(),a)!=null},render:function(a){var b,c,d=this.m_vecDays,e=d.length;b=new Date;var f=b.getDate(),g=b.getMonth(),h=b.getFullYear(),k,j,l,m=a.getDate(),n=a.getMonth(),o=a.getFullYear();this.m_month.innerHTML=
this.m_resources.monthFull[n]+", "+o;a=new Date(o+(n==11?1:0),(n+1)%12,1);a.setDate(a.getDate()-1);a.setDate(a.getDate()-(a.getDay()-this.m_firstDayOfWeek+7)%7);a.getDay()>=this.m_firstDayOfWeek&&a.setDate(a.getDate()+6-a.getDay()+this.m_firstDayOfWeek);a.setDate(a.getDate()-42+1);for(b=0;b<e;++b)c=d[b],k=a.getDate(),c.innerHTML=k,c.m_date=new Date(a.getFullYear(),a.getMonth(),a.getDate()),j=a.getMonth(),l=a.getFullYear(),c.className=k==f&&j==g&&l==h?"Today":k==m&&j==n&&l==o?"Now":j==n?"Current":
l==o&&j<n||l<o?"Prev":"Next",a.setDate(k+1)},getDate:function(){return this.parse(this.getValue(),this.m_strWatermark)},getJsonDate:function(){var a=this.getDate(),b=null;a!=null&&(b=a.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate());return b},setDate:function(a){this.setValue(this.format(a));this.show(!1)},selectNow:function(a){a.tagName=="TD"&&(this.setDate(a.m_date),this.onEdited())},onEdited:function(){var a=this.getDate(),b=this.m_vecChangeHandlers,c;c=this.m_now;if(b!=null&&(c=c==null?0:
c.getTime(),a=a==null?0:a.getTime(),c!=a)){c=b.length;for(a=0;a<c;++a)b[a](this);this.m_now=this.getDate()}},addDateChangedHandler:function(a){if(this.m_vecChangeHandlers==null)this.m_vecChangeHandlers=[];this.m_vecChangeHandlers.push(a)}};dojo.declare("RA.Controls.DateField",RA.Controls.TextField,clsObj);RA.Controls.DateField.regexFlags=RegExp("(yy|yyyy|d|dd|M|MM|MMM)*","g");RA.Controls.DateField.regexDate=RegExp("(\\d+|\\w)*","g");clsObj={constructor:function(){},getValue:function(){var a=NaN;this.isValid()&&
(a=this.inherited(arguments),a=parseInt(a,10));return a},isValid:function(){var a=RA.Controls.TextField.prototype.getValue.apply(this,[]);return a!=null&&a.length>0&&a==parseInt(a,10).toString()}};dojo.declare("RA.Controls.IntegerField",[RA.Controls.TextField],clsObj);clsObj={constructor:function(a,b){this.m_decimalSeparator=b.decimalSeparator},getValue:function(){var a=NaN;this.isValid()&&(a=this.inherited(arguments),a=a.replace(this.m_decimalSeparator,"."),a=parseFloat(a));return a},setValue:function(a,
b){a=a.toString();a=a.replace(".",this.m_decimalSeparator);return this.inherited(arguments)},getDecimalSeparator:function(){return this.m_decimalSeparator},isValid:function(){var a=RA.Controls.TextField.prototype.getValue.apply(this,[]);return a!=null&&a.length>0&&RA.Util.isDecimal(a,this.m_decimalSeparator)}};dojo.declare("RA.Controls.DecimalField",[RA.Controls.TextField],clsObj);clsObj={constructor:function(a,b){this.m_ctrlUnit=dojo.byId(b.ctrlUnit)},destroy:function(){$clearHandlers(this.m_ctrlUnit)},
getMeters:function(){return RA.Math.convertDistance(this.getValue(),this.getUnit(),RA.DistanceUnit.Meter)},getUnit:function(){var a=this.m_ctrlUnit.selectedIndex;a<0&&(a=0);return a},getUnitText:function(a){if(a==null)a=this.m_ctrlUnit.selectedIndex;return this.m_ctrlUnit.options[a].text},getUnitElement:function(){return this.m_ctrlUnit},setValue:function(a,b,c){var d=arguments[1];arguments[1]=c;return this.inherited(arguments)?(this.m_ctrlUnit.selectedIndex=d,!0):!1},setUnit:function(a){if(this.m_bNonUserData&&
this.m_bOverwritable)this.m_ctrlUnit.selectedIndex=a},addUnitChangedHandler:function(a){$addHandler(this.m_ctrlUnit,"change",function(b){a(b)})}};dojo.declare("RA.Controls.DistanceField",[RA.Controls.DecimalField],clsObj);clsObj={constructor:function(a,b){this.m_ctrlUnit=dojo.byId(b.idUnit)},getUnit:function(){var a=this.m_ctrlUnit.selectedIndex;return a=Math.max(a,0)},getUnitText:function(a){if(a==null)a=this.m_ctrlUnit.selectedIndex;return this.m_ctrlUnit.options[a].text},setValue:function(a,b,
c){return this.inherited(arguments)?(this.m_ctrlUnit.selectedIndex=b,!0):!1},addUnitChangedHandler:function(a){this.m_vecHandlers.push(dojo.connect(this.m_ctrlUnit,"onchange",a))}};dojo.declare("RA.Controls.WeightField",[RA.Controls.DecimalField],clsObj);clsObj={constructor:function(a,b){this.m_ctrlUnit=dojo.byId(b.idUnit)},getUnit:function(){var a=this.m_ctrlUnit.selectedIndex;a<0&&(a=0);return a},setValue:function(a,b,c){return this.inherited(arguments)?(this.m_ctrlUnit.selectedIndex=b,!0):!1}};
dojo.declare("RA.Controls.TemperatureField",[RA.Controls.DecimalField],clsObj);clsObj={constructor:function(a,b){var c=this,d,e,f;c.copyConstructor(b);f=function(a){c.onKeyUp(a)};for(e=0;e<c.m_vecTextBoxes.length;++e){d=$RAGet(c.m_vecTextBoxes[e]);if(d==null){d=$RAGetElement(c.m_vecTextBoxes[e]);if(d==null)continue;$addHandler(d,"keyup",f)}else d.addChangedHandler!=null&&d.addChangedHandler(f),$addHandler(d.getElement(),"keyup",f);c.m_vecTextBoxes[e]=d}for(e=0;e<c.m_vecButtons.length;++e)c.m_vecButtons[e]=
$RAGetElement(c.m_vecButtons[e]);c.onKeyUp()},destroy:function(){var a;for(a=0;a<this.m_vecButtons.length;++a)$clearHandlers(this.m_vecButtons[a])},onKeyUp:function(){this.validate()},validate:function(){var a=!1,b,c;for(b=0;b<this.m_vecTextBoxes.length;++b)if(this.m_vecTextBoxes[b].isValid==null){if(this.m_vecTextBoxes[b].value.length==0){a=!0;break}}else if(!this.m_vecTextBoxes[b].isValid()){a=!0;break}for(b=0;b<this.m_vecButtons.length;++b)c=this.m_vecButtons[b],c.disabled=a,c.tagName!="INPUT"&&
(a?$RAAddClass(c,"disabled"):$RARemoveClass(c,"disabled"))}};dojo.declare("RA.Controls.RequiredField",RA.Controls.Control,clsObj);clsObj={constructor:function(a,b){var c=a.parentNode;this.m_result=null;this.m_bAutoGeocode=b.bAutoGeocode===!0;this.m_bGeolocating=!1;this.m_latlng=b.latlng;this.m_divProgress=dojo.create("div",{"class":"GeoCodeProgress"},c);this.m_divResults=dojo.create("div",{"class":"GeoCodeResults"},c);this.m_divError=dojo.create("div",{"class":"GeoCodeError"},c);this.m_cbCompleted=
null;this.m_vecResultHandlers=[]},destroy:function(){this.removeHandlers(this.m_vecResultHandlers)},removeHandlers:function(){var a,b,c=this.m_vecResultHandlers;b=c.length;for(a=0;a<b;++a)$clearHandlers(c[a])},getLocation:function(){return this.m_result},onBlur:function(){this.inherited(arguments);this.m_bAutoGeocode?this.geocode():this.m_strLocation=""},geocode:function(a){var b=this,a={callback:function(a,c){b.onCompleted(c)},onError:function(){b.onError()},cb:a},c;this.hideResults();if(b.m_bGeolocating)return!1;
if(!b.isValid())return!0;c=b.getValue();this.showProgress("Geocoding "+c);RA.Ajax.Ajax("Geocode",a,{location:c});return!1},hideResults:function(){var a=this.m_divResults,b;this.m_vecResultHandlers!=null&&this.removeHandlers(this.m_vecResultHandlers);if(a!=null)for(a.style.display="none";a.hasChildNodes();)b=a.firstChild,a.removeChild(b)},showProgress:function(a){var b,c;this.hideProgress();c=this.m_divProgress;if(c!=null)b=dojo.position(this.getElement()),c.style.top=b.h+b.y+"px",c.style.left=b.x+
"px",c.style.position="absolute",a=document.createTextNode(a),c.appendChild(a),c.style.display="block"},hideProgress:function(){var a=this.m_divProgress;if(a!=null){for(;a.hasChildNodes();)a.removeChild(a.firstChild);a.style.display="none"}},showError:function(a){var b=this,c=this.m_divError,d=this.getElement(),d=dojo.position(d);for(this.hideProgress();c.hasChildNodes();)c.removeChild(c.firstChild);c.style.top=d.h+d.y+"px";c.style.left=d.x+"px";c.style.position="absolute";c.innerHTML=a;c.style.display=
"block";setTimeout(function(){b.hideError()},2E3)},hideError:function(){this.m_divError.style.display="none"},onCompleted:function(a){this.hideProgress();this.m_results=a=a.data;a==null||a.length==0?this.error():a.length==1?this.selectResult(0):(this.displayResults(),this.m_bGeolocating=!1)},onError:function(){this.showError("<strong>Error getting location: </strong><br />"+this.getValue());me.m_bGeolocating=!1},displayResults:function(){var a=this,b=a.m_results,c,d=a.m_divResults,e=dojo.position(a.getElement()),
f,g,h,k=a.m_vecResultHandlers;a.hideResults();d.style.top=e.h+e.y+"px";d.style.left=e.x+"px";d.style.position="absolute";e=function(b){for(c=b.target;c!=null&&c.resultNumber==null;)c=c.parentNode;a.selectResult(c.resultNumber)};for(h=0;h<b.length;++h)c=document.createElement("div"),c.className="ResultPanel",c.resultNumber=h,k.push(dojo.connect(c,"onclick",e)),d.appendChild(c),b[h].address!=null&&b[h].address.Length>0&&(f=document.createElement("div"),g=document.createTextNode(result.Address),f.appendChild(g),
c.appendChild(f)),f=document.createElement("div"),g="",g=b[h].country,b[h].state!=null&&b[h].state.length>0&&(g=b[h].state+", "+g),b[h].city!=null&&b[h].city.length>0&&(g=b[h].city+", "+g),g=document.createTextNode(g),f.appendChild(g),c.appendChild(f),null!=b[h].zip&&b[h].zip.length>0&&(f=document.createElement("div"),g=document.createTextNode(b[h].zip),f.appendChild(g),c.appendChild(f));d.style.display="inline"},selectResult:function(a){var a=this.m_results[a],b=[];this.m_result=a;a.address!=null&&
a.address.length>0&&b.push(a.address);a.city!=null&&a.city.length>0&&b.push(a.city);a.state!=null&&a.state.length>0&&b.push(a.state);a.zip!=null&&a.zip.length>0&&b.push(a.zip);a.country!=null&&a.country.length>0&&b.push(a.country);b.length>0?this.setValue(b.join(", ").trim()):this.setValue("");dojo.byId(this.m_latlng).value=a.latitude!=null&&a.longitude!=null?'{"lat":'+a.latitude+',"lng":'+a.longitude+"}":"";this.m_cbCompleted!=null&&this.m_cbCompleted(a);this.hideResults()},onKeyDown:function(a){if(a.keyCode==
dojo.keys.ENTER||a.keyCode==3)dojo.stopEvent(a),this.geocode()},setCompletedCallback:function(a){this.m_cbCompleted=a}};dojo.declare("RA.Controls.GeoCoderTextField",[RA.Controls.TextField],clsObj);clsObj={constructor:function(a,b){var c=this;c.m_ctrlDistance=$RAGet(b.ctrlDistance);c.m_ctrlDuration=$RAGet(b.ctrlDuration);c.m_txtLabel=dojo.byId(b.ctrlLabel);c.m_txtData=dojo.byId(b.ctrlData);c.m_bPace=!b.bPace;c.m_bSwimMode=!1;c.m_nDefaultUnit=b.defaultUnit;c.m_ctrlDistance.addKeyUpHandler(function(){c.onCalculate()});
c.m_ctrlDistance.addUnitChangedHandler(function(){c.onCalculate()});c.m_ctrlDuration.addKeyUpHandler(function(){c.onCalculate()});$addHandler(c.m_txtLabel,"click",function(a){c.onSwitchDisplay(a)});c.onSwitchDisplay();c.onCalculate()},destroy:function(){$removeHandler(me.m_txtLabel,"click")},setUnit:function(a){this.m_nDefaultUnit=a},setSwimMode:function(a){this.m_bSwimMode=a},onSwitchDisplay:function(){this.m_bPace=!this.m_bPace;this.m_txtLabel.innerHTML=this.m_bPace?"Pace":"Speed";this.onCalculate()},
onCalculate:function(){var a,b;b=this.m_ctrlDistance.getValue();var c=this.m_ctrlDuration.getValue();this.m_txtData.innerHTML="N/A";if(!(isNaN(b)||c===0))if(c=RA.Util.timeStringToSeconds(c),!(c<=0))if(b=RA.Math.convertDistance(b,this.m_ctrlDistance.getUnit(),this.m_nDefaultUnit),a=this.m_ctrlDistance.getUnitText(this.m_nDefaultUnit),this.m_bSwimMode){if(b!=0)b=Math.ceil(c*100/b),this.m_txtData.innerHTML=RA.Util.secondsToTimeString(b)+" / 100"+a}else if(this.m_bPace){if(b!=0)b=Math.ceil(c/b),this.m_txtData.innerHTML=
RA.Util.secondsToTimeString(b)+" / "+a}else b=RA.Math.round(b*3600/c,2),this.m_txtData.innerHTML=b+" "+a+" / hour"}};dojo.declare("RA.Controls.PaceCalc",[RA.Controls.Control],clsObj);clsObj={constructor:function(a,b){var c=this;c.getElement().innerHTML=b.text;c.m_ctrlScreenName=$RAGet(b.screenName);c.m_ctrlScreenName.addBlurHandler(function(){c.validate()});c.m_screenName=""},validate:function(){var a=this,b,c;b=a.m_ctrlScreenName.getValue();if(a.m_screenName!=b)a.m_screenName=b,b!=null&&b.length>
0&&(c={callback:function(b,c){a.onResult(c)},onError:function(){return!0}},RA.Ajax.Ajax("ValidateUserName",c,{strName:b}))},onResult:function(a){this.getElement().style.visibility=a.data==="true"?"hidden":""}};dojo.declare("RA.Controls.ScreenNameValidator",[RA.Controls.Control],clsObj);clsObj={constructor:function(a){var b=this,c,d,e;RA.Controls.ImageResizer.m_instance=b;b.m_vecImages=[];b.m_button=null;b.m_state=0;b.m_timer=null;if(g_vecForumImages!=null&&g_vecForumImages.length>0){c=g_vecForumImages;
d=c.length;for(e=0;e<d;++e)b.addImage(c[e])}c=document.createElement("img");c.src=RA.Controls.ImageResizer.ButtonImages[b.m_state];c.style.display="none";c.style.position="absolute";c.style.zIndex="100";c.style.cursor="pointer";a.parentNode.appendChild(c);b.m_button=c;$addHandler(c,"mouseover",function(a){b.onButtonMouseOver(a)});$addHandler(c,"mouseout",function(a){b.onMouseOut(a)});$addHandler(c,"click",function(a){b.onClick(a)})},destroy:function(){var a,b;b=this.m_vecImages.length;for(a=0;a<b;++a)this.handlerHelper($clearHandlers,
this.m_vecImages[a]);this.m_button!=null&&($clearHandlers(this.m_button,"mouseover"),$clearHandlers(this.m_button,"mouseout"),$clearHandlers(this.m_button,"click"))},handlerHelper:function(a,b){var c=this;a(b,"mouseover",function(a){c.onMouseOver(a)});a(b,"mouseout",function(a){c.onMouseOut(a)})},addImage:function(a){this.handlerHelper($addHandler,a);this.m_vecImages.push(a)},onMouseOver:function(a){var b,c;this.m_button.m_image=a.target;this.m_button.style.display="";a=a.target;b=dojo.position(a,
!0);c=dojo.position(this.m_button);this.m_button.style.left=b.x+a.width-5-c.w+"px";this.m_button.style.top=b.y+a.height-5-c.h+"px"},onMouseOut:function(){if(this.m_timer==null){var a=this;a.m_timer=setTimeout(function(){a.hideButton()},200)}},onButtonMouseOver:function(){if(this.m_timer!=null)clearTimeout(this.m_timer),this.m_timer=null;this.m_button.style.display="block"},onClick:function(a){var a=a.target.m_image,b=a.width;a.width=a.m_origWidth;a.m_origWidth=b;b=a.height;a.height=a.m_origHeight;
a.m_origHeight=b;this.m_state=++this.m_state%2;this.m_button.src=RA.Controls.ImageResizer.ButtonImages[this.m_state];this.m_button.style.display="none"},hideButton:function(){this.m_button.style.display="none";this.m_timer=null}};dojo.declare("RA.Controls.ImageResizer",RA.Controls.Control,clsObj);RA.Controls.ImageResizer.ButtonImages=["/images/img_expand.png","/images/img_reduce.png"];RA.Controls.ImageResizer.Images=[];clsObj={constructor:function(a,b){var c=this;c.m_content=$RAGetElement(b.content);
c.m_onClickCb=null;c.m_ctrls=[];b.open!=null&&c.connect(b.open.split(","),function(){c.open()});b.close!=null&&c.connect(b.close.split(","),function(){c.close()})},destroy:function(){var a,b,c;b=this.m_ctrls;c=b.length;for(a=0;a<c;++a)$clearHandlers(b[a])},connect:function(a,b){len=a.length;for(i=0;i<len;++i)ctrl=$RAGetElement(a[i]),ctrl!=null&&$addHandler(ctrl,"click",b),this.m_ctrls.push(ctrl)},open:function(a){var b=this,c;c=RA.Controls.DialogBox.panel;if(c==null)c=document.createElement("div"),
document.body.appendChild(c),c.className="ModalBackground",c.style.position="fixed",c.style.zIndex=3E4,RA.Controls.DialogBox.panel=c;$RASetPosition(c,0,0);c.style.display="block";c=b.getElement();c.style.zIndex=30001;c.style.display="block";b.m_onCloseCb=a;b.setPosition();$addHandler(document,"keypress",function(a){a.keyCode==27&&b.close()})},close:function(){this.getElement().style.display="none";RA.Controls.DialogBox.panel.style.display="none";this.m_onCloseCb!=null&&this.m_onCloseCb();$removeHandler(document,
"keypress")},setContentHtml:function(a){this.m_content.innerHTML=a;this.setPosition()},setPosition:function(){var a,b,c=dijit.getViewport(),d;a=this.getElement();b=dojo.position(a,!1);d=parseInt((RA.UI.getWindowWidth()-b.w)/2,10);b=parseInt((RA.UI.getWindowHeight()-b.h)/2+c.t,10);d=Math.max(d,0);b=Math.max(b,0);$RASetPosition(a,d,b)}};dojo.declare("RA.Controls.DialogBox",RA.Controls.Control,clsObj);clsObj={constructor:function(a,b){var c=this;c.copyConstructor(b);c.m_ctrlDropDown=$RAGetElement(c.m_ctrlDropDown);
c.m_ctrlData=$RAGetElement(c.m_ctrlData);$addHandler(c.m_ctrlDropDown,"mouseover",function(a){c.onMouseOver(a)});$addHandler(c.getElement(),"mouseover",function(a){c.onMouseOver(a)});$addHandler(c.m_ctrlDropDown,"mouseout",function(a){c.onMouseOut(a)});$addHandler(c.getElement(),"mouseout",function(a){c.onMouseOut(a)});$addHandler(c.m_ctrlDropDown,"click",function(a){c.onClick(a)});$addHandler(c.getElement(),"click",function(a){c.onClick(a)});++RA.Controls.ColorPicker.RefCount},destroy:function(){var a=
RA.Controls.ColorPicker;if(--a.RefCount<=0&&a.palette!=null)a.palette.dispose(),a.palette=null;$clearHandlers(this.getElement());$clearHandlers(this.m_ctrlDropDown)},onClick:function(){var a=this,b,c,d=RA.Controls.ColorPicker;if(d.palette==null)d.palette=new RA.Controls.ColorPalette,RA.Controls.ColorPicker=d;b=a.getElement();c=dojo.position(b);d.palette.show(c.x,c.y+c.h+2,b.style.backgroundColor,function(b){a.onSelect(b)})},onMouseOver:function(){this.getElement().style.borderColor="#AAAAAA";this.m_ctrlDropDown.style.borderColor=
"#AAAAAA"},onMouseOut:function(){this.getElement().style.borderColor="#CCCCCC";this.m_ctrlDropDown.style.borderColor="#CCCCCC"},onSelect:function(a){this.m_ctrlData.value=a;this.getElement().style.backgroundColor=a}};dojo.declare("RA.Controls.ColorPicker",RA.Controls.Control,clsObj);RA.Controls.ColorPicker.RefCount=0;RA.Controls.ColorPicker.palette=null;clsObj={constructor:function(){this.m_preview=this.m_close=this.m_palette=null;this.m_colors=[];this.m_bFirstClick=!0;this.m_cbSelect=null;this.create()},
destroy:function(){var a;$clearHandlers(this.m_close);$clearHandlers(this.m_palette);for(a=0;a<this.m_colors.length;++a)$clearHandlers(this.m_colors[a]);if(document.m_fnOldOnClick!=null)document.onclick=null,document.onclick=document.m_fnOldOnClick,document.m_fnOldOnClick=null},show:function(a,b,c,d){var e=this;$RASetPosition(e.m_palette,a,b);e.m_preview.style.backgroundColor=c;e.m_palette.style.visibility="visible";e.m_cbSelect=d;e.m_bFirstClick=!0;document.m_fnOldOnClick=document.onclick;document.onclick=
function(){e.m_bFirstClick?e.m_bFirstClick=!1:(e.onClose(),document.onclick=null,document.onclick=document.m_fnOldOnClick,document.m_fnOldOnClick=null)}},create:function(){var a=this,b,c,d,e,f,g,h,k=0,j,l,m,n,o=RA.Util.byte2Hex;b=document.createElement("div");a.m_palette=b;$addHandler(b,"click",function(b){a.onIgnore(b)});b.className="ColorPalette";b.style.visibility="hidden";b.style.cssFloat="left";b.style.position="absolute";document.body.appendChild(b);c=document.createElement("table");d=document.createElement("tbody");
e=document.createElement("tr");a.m_preview=document.createElement("td");a.m_preview.className="ColorPreview";a.m_preview.innerHTML="&nbsp;";e.appendChild(a.m_preview);f=document.createElement("td");a.m_close=document.createElement("img");$addHandler(a.m_close,"click",function(b){a.onClose(b)});a.m_close.src="/images/icons/close.png";f.align="right";f.appendChild(a.m_close);e.appendChild(f);d.appendChild(e);c.appendChild(d);g=document.createElement("table");h=document.createElement("tbody");g.setAttribute("cellPadding",
"0");g.setAttribute("cellSpacing","2");g.setAttribute("border","0");e=null;for(l=0;l<6;++l)for(m=0;m<6;++m)for(n=0;n<6;++n)k++%18===0&&(e!=null&&h.appendChild(e),e=document.createElement("tr")),j=document.createElement("div"),j.className="ColorCell",$addHandler(j,"click",function(b){a.onSelect(b)}),$addHandler(j,"mouseover",function(b){a.onMouseOver(b)}),j.m_color="#"+o(51*l)+o(51*m)+o(51*n),j.style.backgroundColor=j.m_color,a.m_colors.push(j),f=document.createElement("td"),f.appendChild(j),e.appendChild(f);
e!=null&&h.appendChild(e);g.appendChild(h);f=document.createElement("td");f.setAttribute("colSpan","2");f.appendChild(g);e=document.createElement("tr");e.appendChild(f);d.appendChild(e);c.appendChild(d);b.appendChild(c)},onMouseOver:function(a){this.m_preview.style.backgroundColor=a.target.style.backgroundColor},onSelect:function(a){if(this.m_cbSelect!=null)this.m_cbSelect(a.target.m_color),this.m_cbSelect=null;this.onClose()},onClose:function(){this.m_palette.style.visibility="hidden"},onIgnore:function(){this.m_bFirstClick=
!0}};dojo.declare("RA.Controls.ColorPalette",RA.Controls.Control,clsObj);clsObj={constructor:function(){},enable:function(a){this.getElement().style.visibility=a?"":"hidden"}};dojo.declare("RA.Controls.WaitIndicator",RA.Controls.Control,clsObj);clsObj={constructor:function(a,b){var c=this,d,e,f,g,h=[],k=b.readOnly,j=function(a){c.onClick(a)},l=function(a){c.onMouseOver(a)},m=function(a){c.onMouseOut(a)};c.m_value=$RAGetElement(b.valueId);c.m_max=b.max;c.m_emptyCssClass=b.emptyCssClass;c.m_filledCssClass=
b.filledCssClass;a.appendChild(document.createTextNode(" "));f=parseInt(c.m_value.value,10);e=c.m_max;for(d=0;d<e;++d)g=document.createElement("a"),a.appendChild(g),h.push(g),g.m_value=d+1,g.innerHTML="&nbsp;",k||($addHandler(g,"click",j),$addHandler(g,"mouseover",l),$addHandler(g,"mouseout",m));c.m_vecItems=h;c.setClass(f)},onClick:function(a){value=RA.Math.collar(a.target.m_value,0,this.m_max);this.m_value.value=value;this.setClass(value)},onMouseOver:function(a){this.setClass(a.target.m_value)},
onMouseOut:function(){this.setClass(this.m_value.value)},setClass:function(a){var b,c,d,e=this.m_vecItems,f=e.length,g=this.m_emptyCssClass,h=this.m_filledCssClass;for(b=0;b<f;++b)d=e[b],c=d.m_value,d.className=c<=a?h:g}};dojo.declare("RA.Controls.RatingField",RA.Controls.Control,clsObj);clsObj={constructor:function(a,b){var c;this.m_dictionary=null;this.m_text=$RAGetElement(b.textId);this.m_value=$RAGetElement(b.valueId);this.m_button=$RAGetElement(b.buttonId);this.m_vecVisibleItems=[];this.m_vecCache=
[];this.m_activeList=0;this.m_watermark=b.watermark==null?"":b.watermark;this.m_webservice=b.webservice;this.m_wait=b.wait;this.m_selected={};this.m_vecBlurCbs=[];this.m_mode=b.mode;this.m_requestedItemCb=this.m_requestItemCb=null;this.m_bRequired=b.bRequired===!0;this.m_bHighlight=b.bHighlight===!0;c=document.createElement("div");document.body.appendChild(c);this.m_dropdown=c;if(b.dropdownClass!=null)c.className=b.dropdownClass;c.style.height=b.height==null?"15em":b.height;if(b.items==null)b.items=
[];this.cache("",b.items,b.bPartial);this.m_select=this.m_vecCache[0].ul;this.m_vecVisibleItems=this.m_select.childNodes;this.m_selected.index=-1;this.m_selected.prevIndex=-1;this.m_selected.item=null;c.appendChild(this.m_select);this.loadCache("");this.setDisplay(this.m_vecVisibleItems,"block");this.resize();this.handlerHelper($addHandler);this.onBlur();this.checkRequired()},destroy:function(){this.handlerHelper($clearHandlers)},handlerHelper:function(a){var b=this;text=b.m_text;dropdown=b.m_dropdown;
a(text,"keypress",function(a){b.onKeyPress(a)});a(text,"focus",function(a){b.onFocus(a)});a(text,"blur",function(a){b.onBlur(a)});(b.m_bRequired||b.m_bHighlight)&&a(text,"keyup",function(){b.checkRequired()});a(b.m_button,"click",function(a){b.onClick(a)});a(b.m_button,"focus",function(){this.blur()});a(dropdown,"click",function(a){b.onSelect(a.target)});a(dropdown,"mouseover",function(){b.deselect()})},getText:function(){var a=this.m_text.value;return a==this.m_watermark?"":a},setText:function(a){var b=
this.m_text;a!=null&&a.length>0?(b.value=a,this.selectItemByString(a)):b.value=""},getValue:function(){return this.m_value.value},isValid:function(){if(this.m_mode==1)return this.getText().length>0;else if(this.m_mode==2)return this.getValue().length>0;alert("unsupported mode: "+this.m_mode)},showDropdown:function(a){var b=this,c=b.m_dropdown.style;if(b.isVisible()!=a)if(c.display=a?"block":"none",a){if(b.resize(),b.m_bodyClickHandler==null)b.m_bodyClickHandler=function(a){b.onClose(a)},$addHandler(document.body,
"click",function(a){b.m_bodyClickHandler!=null&&b.m_bodyClickHandler(a)})}else b.deselect()},isVisible:function(){return this.m_dropdown.style.display=="block"},deselect:function(){var a=this.m_selected;if(a.item!=null)$RARemoveClass(a.item,"selected"),a.item=null,a.index=-1},resize:function(){var a=this.m_dropdown,b=this.m_select,c,d=a.style;c=dojo.position(this.getElement(),!0);RA.UI.setPosition(a,c.x,c.y+c.h-1);d.width=null;a=dojo.position(a,!0);if(!(a.h<=0)){if(this.m_height==null)this.m_height=
a.h;if(a.w<c.w)d.width=c.w-2+"px";b==null?d.height="0px":(b=dojo.position(b),d.height=(b.h<this.m_height?b.h:this.m_height)+"px")}},checkRequired:function(){if(this.m_bRequired||this.m_bHighlight)this.isValid()?$RARemoveClass(this.getElement(),"ComboBoxRequired"):$RAAddClass(this.getElement(),"ComboBoxRequired")},setFocus:function(){this.m_text.focus()},onFocus:function(){var a=this.m_text;if(this.getText()=="")a.value="",$RARemoveClass(a,"Empty");a.select();this.showDropdown(!0)},onBlur:function(){this.selectItemByString(this.m_text.value,
!0)},onClick:function(){this.isVisible()?(this.m_button.blur(),this.showDropdown(!1)):this.m_text.focus()},onKeyPress:function(a){var b=this,c=a.keyCode;switch(c){case 9:case 13:if(b.m_selected.item!=null)b.onSelect(b.m_selected.item);c==13?RA.Util.preventBubbling(a):b.showDropdown(!1);break;case 38:case 40:b.scroll(c==38?-1:1);break;default:b.m_value.value="";if(b.m_selected.item!=null)$RARemoveClass(b.m_selected.item,"selected"),b.m_selected.index=-1;b.m_hTask!=null&&$taskManager.cancelTask(b.m_hTask);
b.m_hTask=$taskManager.enqueue(function(){delete b.m_hTask;b.showDropdown(!0);b.suggest()},200)}},onSelect:function(a){var b=this.m_text;for(this.showDropdown(!1);a!=null&&a.tagName!="LI";)a=a.parentNode;if(a!=null&&a.tagName=="LI")b.value=RA.Util.decodeHtml(a.m_content),this.m_value.value=a.m_val==null?"":a.m_val,$RARemoveClass(b,"Empty")},addValue:function(a,b,c){var d=document.createElement("li"),e=this.m_vecCache[0];d.m_content=d.innerHTML=a.replace("<","&lt;");if(b!=null)d.m_val=b;e.ul.appendChild(d);
d.style.display="none";e.dictionary.add(this.tokenize(a),d);if(c)this.m_text.value=RA.Util.decodeHtml(a),this.m_value.value=b},cache:function(a,b,c){var d,e,f,g=b.length,h,k=this.m_vecCache,j;b.sort(function(a,b){var c=a.text.toLowerCase(),d=b.text.toLowerCase();return c<d?-1:c==d?0:1});d=document.createElement("ul");j=this.m_dictionary=new RA.Dictionary;for(h=0;h<g;++h){f=document.createElement("li");e=b[h];f.m_content=f.innerHTML=e.text.replace("<","&lt;");if(e.value!=null)f.m_val=e.value;d.appendChild(f);
f.style.display="none";j.add(this.tokenize(e.text),f)}e={text:a,ul:d,partial:c,dictionary:j};k.push(e);k.sort(function(a,b){a=a.text;b=b.text;return a<b?-1:a==b?0:1})},loadCache:function(a){for(var b=this.m_vecCache,c=b.length,d=0,e=c,f,g,h=0,k,j=this.m_dropdown;d<e;){f=parseInt((d+e)/2,10);g=b[f].text;k=a.substr(0,g.length);if(g==k){for(d=f;++f<c;)if(g=b[f].text,k=a.substr(0,g.length),g==k)d=f;else break;break}g<k?d=f+1:e=f}if(d<c)g=b[d].text,k=a.substr(0,g.length),g==k&&(h=d);this.m_activeList=
h;this.m_select!=null&&j.removeChild(this.m_select);b.length==0?this.m_dictionary=this.m_select=null:(this.m_select=b[h].ul,j.appendChild(this.m_select),this.m_dictionary=b[h].dictionary)},clear:function(){this.m_vecCache=[];this.cache("",[],!1);this.m_dictionary=null;this.setDisplay(this.m_vecVisibleItems,"none");this.setText("");this.loadCache("")},clearFilter:function(){this.loadCache("");this.m_select==null?this.m_vecVisibleItems=[]:(this.m_vecVisibleItems=this.m_select.childNodes,this.setDisplay(this.m_vecVisibleItems,
"block"))},selectItemByString:function(a,b){var c=!1,d,e,f,g=this.m_text,h,k=this.m_value;e=this.m_watermark;a=a.trim().toLowerCase();if(a.length==0||e.toLowerCase()==a)g.value=e,k.value="",$RAAddClass(g,"Empty");else{e=this.tokenize(a);h=this.m_dictionary.lookup(e);e=null;f=h.length;for(d=0;d<f;++d)if(h[d].m_content.toLowerCase()==a){e=h[d];break}if(e!=null&&(d=e.m_content==null?e.innerHTML:e.m_content,d.toLowerCase()==a))g.value=d,a=e.m_val,k.value=a==null?"":a,$RARemoveClass(g,"Empty"),c=!0}b||
this.clearFilter();return c},suggest:function(a){var b=this.getText().trim(),c,d,e,f,g,h;f=this.m_dictionary;this.setDisplay(this.m_vecVisibleItems,"none");c=this.tokenize(b);e=c.length;if(e>0){this.loadCache(b);f=this.m_dictionary;if(f==null)return;g="\\b(";for(d=0;d<e;++d)d>0&&(g+="|"),g+=c[d];g+=")";c=f.lookup(c);e=c.length;if(e==1&&c[0].m_content==b)this.loadCache(""),this.m_vecVisibleItems=this.m_select.childNodes,this.setDisplay(this.m_vecVisibleItems,"block"),this.m_selected.index=-1,a=!0;
else{for(d=0;d<e;++d)f=c[d],h=f.innerHTML,f.m_content=h,f.innerHTML=h.replace(RegExp(g,"ig"),"<b>$&</b>","ig"),f.style.display="block";this.m_vecVisibleItems=c}f=this.m_vecCache[this.m_activeList];!a&&f.partial&&f.text!=b&&this.m_webservice.fetchString==null&&this.requestItems(b)}else this.clearFilter();this.resize()},tokenize:function(a){for(var b=0,a=a.replace(RegExp("["+RA.Controls.ComboBox.ignoredChars+"]","g")," "),a=a.split(" ");b<a.length;)a[b].trim().length==0?a.removeAt(b):++b;return a},
setDisplay:function(a,b){var c,d=a.length,e;for(e=0;e<d;++e)c=a[e],c.style.display=b,c.innerHTML=c.m_content},onReceiveData:function(a){var b=a.data,c=this.m_webservice.fetchString;this.m_webservice.fetchString=null;this.m_requestedItemCb!=null&&this.m_requestedItemCb(a);b!=null&&(this.cache(c,b.items,b.partial===!0),this.suggest(!0));this.m_wait!=null&&$RAGet(this.m_wait).enable(!1)},scroll:function(a){var b=this.m_selected,a=b.prevIndex+a,c=this.m_vecVisibleItems;if(!(a<0||c.length<=a))b.item!=
null&&$RARemoveClass(b.item,"selected"),b.index=a,b.prevIndex=a,b.item=c[a],$RAAddClass(b.item,"selected"),this.m_dropdown.scrollTop=dojo.position(b.item).h*a},onClose:function(a){var b=a.target,a=this.m_vecBlurCbs,c=a.length;if(this.m_text!=b&&this.m_dropdown!=b&&this.m_button!=b){this.showDropdown(!1);this.m_bodyClickHandler!=null&&($clearHandlers(document.body),delete this.m_bodyClickHandler);for(b=0;b<c;++b)a[b](this)}},requestItems:function(a){var b=this,c,d,e;d=b.tokenize(a);e=b.m_webservice.endpoint;
e.charAt(e.length-1)!="/"&&(e+="/");e+=b.m_webservice.method;c={callback:function(a,c){b.onReceiveData(c)}};d={text:d,count:50};b.m_requestItemCb!=null&&b.m_requestItemCb(b,c,d);RA.Ajax.post(e,c,{context:d});b.m_webservice.fetchString=a;b.m_wait!=null&&$RAGet(b.m_wait).enable(!0)},addRequestItemHandler:function(a){this.m_requestItemCb=a},addRequestedItemHandler:function(a){this.m_requestedItemCb=a},addKeyUpHandler:function(a){$addHandler(this.m_text,"keyup",a)},addChangedHandler:function(a){var b=
this;$addHandler(this.m_dropdown,"click",function(){a(b)})},addBlurHandler:function(a){this.m_vecBlurCbs.push(a)}};dojo.declare("RA.Controls.ComboBox",RA.Controls.Control,clsObj);RA.Controls.ComboBox.ignoredChars="\\^$*+?.()[]{}!<>|-_='\"/".replace(RegExp("(.)","g"),"\\$1");clsObj={constructor:function(){this.indexes=[];this.entries=[]},add:function(a,b){var c=this.indexes,d,e,f,g=a.length;e=this.entries.length;this.entries.push(b);for(f=0;f<g;++f)text=a[f].toLowerCase(),d=this.find(text),d==-1?(entry=
{text:text,indexes:[]},c.push(entry),c.sort(function(a,b){a=a.text;b=b.text;return a<b?-1:a==b?0:1})):entry=c[d],entry.indexes.push(e)},lookup:function(a){var b,c=this.indexes,d=c.length,e,f=a.length,g,h=[],k,j,l,m,n=0;for(k=0;k<f;++k){e=a[k].toLowerCase();b=this.find(e,!0);if(b==-1)return[];m=e.length;for(j=g=b;--j>=0&&c[j].text.substr(0,m)==e;)g=j;for(j=b;++j<d&&c[j].text.substr(0,m)==e;)b=j;e={};for(j=g;j<=b;++j){g=c[j].indexes;m=g.length;for(l=0;l<m;++l)e[g[l]]=1}h.push(e)}a=h[0];m=h.length;if(m>
1){for(j in a)++n;for(k=1;k<m&&n>0;++k)for(j in e=h[k],a)e[j]!==1&&(delete a[j],--n)}h=[];g=this.entries;for(j in a)h.push(g[j]);return h},find:function(a,b){for(var c=this.indexes.length,d=0,e=c,f,g,h=this.indexes;d<e;)f=parseInt((d+e)/2,10),g=h[f].text,b&&(g=g.substr(0,a.length)),g<a?d=f+1:e=f;return d<c&&(g=h[d].text,b&&(g=g.substr(0,a.length)),g==a)?d:-1}};dojo.declare("RA.Dictionary",null,clsObj);clsObj={constructor:function(a){$addHandler(a,"click",function(){var a=document.getElementById("LocalTime");
if(a!=null){var c=new Date;a.value=c.getHours()+":"+c.getMinutes()}})},destroy:function(){$clearHandlers(element)}};dojo.declare("RA.Controls.UserButton",RA.Controls.Control,clsObj)};
