/*
	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
*/

/*
	This is an optimized version of Dojo, built for deployment and not for
	development. To get sources and documentation, please visit:

		http://dojotoolkit.org
*/

dojo.provide("RATrainingLog");
if(!dojo._hasResource["dojo.window"])dojo._hasResource["dojo.window"]=!0,dojo.provide("dojo.window"),dojo.getObject("window",!0,dojo),dojo.window.getBox=function(){var a=dojo.doc.compatMode=="BackCompat"?dojo.body():dojo.doc.documentElement,b=dojo._docScroll();return{w:a.clientWidth,h:a.clientHeight,l:b.x,t:b.y}},dojo.window.get=function(a){if(dojo.isIE&&window!==document.parentWindow){a.parentWindow.execScript("document._parentWindow = window;","Javascript");var b=a._parentWindow;a._parentWindow=
null;return b}return a.parentWindow||a.defaultView},dojo.window.scrollIntoView=function(a,b){try{var a=dojo.byId(a),c=a.ownerDocument||dojo.doc,d=c.body||dojo.body(),f=c.documentElement||d.parentNode,g=dojo.isIE,h=dojo.isWebKit;if((!dojo.isMoz&&!g&&!h&&!dojo.isOpera||a==d||a==f)&&typeof a.scrollIntoView!="undefined")a.scrollIntoView(!1);else{var k=c.compatMode=="BackCompat",l=g>=9&&a.ownerDocument.parentWindow.frameElement?f.clientHeight>0&&f.clientWidth>0&&(d.clientHeight==0||d.clientWidth==0||d.clientHeight>
f.clientHeight||d.clientWidth>f.clientWidth)?f:d:k?d:f,c=h?d:l,m=l.clientWidth,n=l.clientHeight,o=!dojo._isBodyLtr(),p=b||dojo.position(a),q=a.parentNode,l=function(a){return g<=6||g&&k?!1:dojo.style(a,"position").toLowerCase()=="fixed"};if(!l(a))for(;q;){q==d&&(q=c);var s=dojo.position(q),t=l(q);if(q==c){s.w=m;s.h=n;c==f&&g&&o&&(s.x+=c.offsetWidth-s.w);if(s.x<0||!g)s.x=0;if(s.y<0||!g)s.y=0}else{var r=dojo._getPadBorderExtents(q);s.w-=r.w;s.h-=r.h;s.x+=r.l;s.y+=r.t;var u=q.clientWidth,z=s.w-u;if(u>
0&&z>0)s.w=u,s.x+=o&&(g||q.clientLeft>r.l)?z:0;u=q.clientHeight;z=s.h-u;if(u>0&&z>0)s.h=u}if(t){if(s.y<0)s.h+=s.y,s.y=0;if(s.x<0)s.w+=s.x,s.x=0;if(s.y+s.h>n)s.h=n-s.y;if(s.x+s.w>m)s.w=m-s.x}var A=p.x-s.x,v=p.y-Math.max(s.y,0),w=A+p.w-s.w,C=v+p.h-s.h;if(w*A>0){var D=Math[A<0?"max":"min"](A,w);if(o&&(g==8&&!k||g>=9))D=-D;p.x+=q.scrollLeft;q.scrollLeft+=D;p.x-=q.scrollLeft}C*v>0&&(p.y+=q.scrollTop,q.scrollTop+=Math[v<0?"max":"min"](v,C),p.y-=q.scrollTop);q=q!=c&&!t&&q.parentNode}}}catch(B){console.error("scrollIntoView: "+
B),a.scrollIntoView(!1)}};
dojo._hasResource["dijit._base.manager"]||(dojo._hasResource["dijit._base.manager"]=!0,dojo.provide("dijit._base.manager"),dojo.declare("dijit.WidgetSet",null,{constructor:function(){this._hash={};this.length=0},add:function(a){if(this._hash[a.id])throw Error("Tried to register widget with id=="+a.id+" but that id is already registered");this._hash[a.id]=a;this.length++},remove:function(a){this._hash[a]&&(delete this._hash[a],this.length--)},forEach:function(a,b){var b=b||dojo.global,c=0,d;for(d in this._hash)a.call(b,
this._hash[d],c++,this._hash);return this},filter:function(a,b){var b=b||dojo.global,c=new dijit.WidgetSet,d=0,f;for(f in this._hash){var g=this._hash[f];a.call(b,g,d++,this._hash)&&c.add(g)}return c},byId:function(a){return this._hash[a]},byClass:function(a){var b=new dijit.WidgetSet,c,d;for(c in this._hash)d=this._hash[c],d.declaredClass==a&&b.add(d);return b},toArray:function(){var a=[],b;for(b in this._hash)a.push(this._hash[b]);return a},map:function(a,b){return dojo.map(this.toArray(),a,b)},
every:function(a,b){var b=b||dojo.global,c=0,d;for(d in this._hash)if(!a.call(b,this._hash[d],c++,this._hash))return!1;return!0},some:function(a,b){var b=b||dojo.global,c=0,d;for(d in this._hash)if(a.call(b,this._hash[d],c++,this._hash))return!0;return!1}}),function(){dijit.registry=new dijit.WidgetSet;var a=dijit.registry._hash,b=dojo.attr,c=dojo.hasAttr,d=dojo.style;dijit.byId=function(b){return typeof b=="string"?a[b]:b};var f={};dijit.getUniqueId=function(b){var c;do c=b+"_"+(b in f?++f[b]:f[b]=
0);while(a[c]);return dijit._scopeName=="dijit"?c:dijit._scopeName+"_"+c};dijit.findWidgets=function(b){function c(b){for(b=b.firstChild;b;b=b.nextSibling)if(b.nodeType==1){var f=b.getAttribute("widgetId");f?(f=a[f])&&d.push(f):c(b)}}var d=[];c(b);return d};dijit._destroyAll=function(){dijit._curFocus=null;dijit._prevFocus=null;dijit._activeStack=[];dojo.forEach(dijit.findWidgets(dojo.body()),function(a){a._destroyed||(a.destroyRecursive?a.destroyRecursive():a.destroy&&a.destroy())})};dojo.isIE&&
dojo.addOnWindowUnload(function(){dijit._destroyAll()});dijit.byNode=function(b){return a[b.getAttribute("widgetId")]};dijit.getEnclosingWidget=function(b){for(;b;){var c=b.getAttribute&&b.getAttribute("widgetId");if(c)return a[c];b=b.parentNode}return null};var g=dijit._isElementShown=function(a){var c=d(a);return c.visibility!="hidden"&&c.visibility!="collapsed"&&c.display!="none"&&b(a,"type")!="hidden"};dijit.hasDefaultTabStop=function(a){switch(a.nodeName.toLowerCase()){case "a":return c(a,"href");
case "area":case "button":case "input":case "object":case "select":case "textarea":return!0;case "iframe":var b;try{var d=a.contentDocument;if("designMode"in d&&d.designMode=="on")return!0;b=d.body}catch(f){try{b=a.contentWindow.document.body}catch(g){return!1}}return b.contentEditable=="true"||b.firstChild&&b.firstChild.contentEditable=="true";default:return a.contentEditable=="true"}};var h=dijit.isTabNavigable=function(a){return b(a,"disabled")?!1:c(a,"tabIndex")?b(a,"tabIndex")>=0:dijit.hasDefaultTabStop(a)};
dijit._getTabNavigable=function(a){function d(a){return a&&a.tagName.toLowerCase()=="input"&&a.type&&a.type.toLowerCase()=="radio"&&a.name&&a.name.toLowerCase()}var f,n,o,p,q,s,t={},r=function(a){dojo.query("> *",a).forEach(function(a){if(!(dojo.isIE&&a.scopeName!=="HTML")&&g(a)){if(h(a)){var k=b(a,"tabIndex");if(!c(a,"tabIndex")||k==0)f||(f=a),n=a;else if(k>0){if(!o||k<p)p=k,o=a;if(!q||k>=s)s=k,q=a}k=d(a);dojo.attr(a,"checked")&&k&&(t[k]=a)}a.nodeName.toUpperCase()!="SELECT"&&r(a)}})};g(a)&&r(a);
return{first:t[d(f)]||f,last:t[d(n)]||n,lowest:t[d(o)]||o,highest:t[d(q)]||q}};dijit.getFirstInTabbingOrder=function(a){a=dijit._getTabNavigable(dojo.byId(a));return a.lowest?a.lowest:a.first};dijit.getLastInTabbingOrder=function(a){a=dijit._getTabNavigable(dojo.byId(a));return a.last?a.last:a.highest};dijit.defaultDuration=dojo.config.defaultDuration||200}());
dojo._hasResource["dijit._base.focus"]||(dojo._hasResource["dijit._base.focus"]=!0,dojo.provide("dijit._base.focus"),dojo.mixin(dijit,{_curFocus:null,_prevFocus:null,isCollapsed:function(){return dijit.getBookmark().isCollapsed},getBookmark:function(){var a,b,c=dojo.doc.selection,d=dijit._curFocus;if(dojo.global.getSelection){if(c=dojo.global.getSelection())if(c.isCollapsed){if(a=d?d.tagName:"")if(a=a.toLowerCase(),a=="textarea"||a=="input"&&(!d.type||d.type.toLowerCase()=="text"))return c={start:d.selectionStart,
end:d.selectionEnd,node:d,pRange:!0},{isCollapsed:c.end<=c.start,mark:c};a={isCollapsed:!0};if(c.rangeCount)a.mark=c.getRangeAt(0).cloneRange()}else b=c.getRangeAt(0),a={isCollapsed:!1,mark:b.cloneRange()}}else if(c){a=d?d.tagName:"";a=a.toLowerCase();if(d&&a&&(a=="button"||a=="textarea"||a=="input"))return c.type&&c.type.toLowerCase()=="none"?{isCollapsed:!0,mark:null}:(b=c.createRange(),{isCollapsed:b.text&&b.text.length?!1:!0,mark:{range:b,pRange:!0}});a={};try{b=c.createRange(),a.isCollapsed=
!(c.type=="Text"?b.htmlText.length:b.length)}catch(f){return a.isCollapsed=!0,a}if(c.type.toUpperCase()=="CONTROL")if(b.length){a.mark=[];c=0;for(d=b.length;c<d;)a.mark.push(b.item(c++))}else a.isCollapsed=!0,a.mark=null;else a.mark=b.getBookmark()}else console.warn("No idea how to store the current selection for this browser!");return a},moveToBookmark:function(a){var b=dojo.doc;if(a=a.mark)if(dojo.global.getSelection)(b=dojo.global.getSelection())&&b.removeAllRanges?a.pRange?(b=a.node,b.selectionStart=
a.start,b.selectionEnd=a.end):(b.removeAllRanges(),b.addRange(a)):console.warn("No idea how to restore selection for this browser!");else if(b.selection&&a){var c;a.pRange?c=a.range:dojo.isArray(a)?(c=b.body.createControlRange(),dojo.forEach(a,function(a){c.addElement(a)})):(c=b.body.createTextRange(),c.moveToBookmark(a));c.select()}},getFocus:function(a,b){var c=!dijit._curFocus||a&&dojo.isDescendant(dijit._curFocus,a.domNode)?dijit._prevFocus:dijit._curFocus;return{node:c,bookmark:c==dijit._curFocus&&
dojo.withGlobal(b||dojo.global,dijit.getBookmark),openedForWindow:b}},focus:function(a){if(a){var b="node"in a?a.node:a,c=a.bookmark,a=a.openedForWindow,d=c?c.isCollapsed:!1;if(b){var f=b.tagName.toLowerCase()=="iframe"?b.contentWindow:b;if(f&&f.focus)try{f.focus()}catch(g){}dijit._onFocusNode(b)}if(c&&dojo.withGlobal(a||dojo.global,dijit.isCollapsed)&&!d){a&&a.focus();try{dojo.withGlobal(a||dojo.global,dijit.moveToBookmark,null,[c])}catch(h){}}}},_activeStack:[],registerIframe:function(a){return dijit.registerWin(a.contentWindow,
a)},unregisterIframe:function(a){dijit.unregisterWin(a)},registerWin:function(a,b){var c=function(a){dijit._justMouseDowned=!0;setTimeout(function(){dijit._justMouseDowned=!1},0);if(!dojo.isIE||!a||!(a.srcElement&&a.srcElement.parentNode==null))dijit._onTouchNode(b||a.target||a.srcElement,"mouse")},d=dojo.isIE?a.document.documentElement:a.document;if(d)if(dojo.isIE){a.document.body.attachEvent("onmousedown",c);var f=function(a){a.srcElement.tagName.toLowerCase()!="#document"&&dijit.isTabNavigable(a.srcElement)?
dijit._onFocusNode(b||a.srcElement):dijit._onTouchNode(b||a.srcElement)};d.attachEvent("onactivate",f);var g=function(a){dijit._onBlurNode(b||a.srcElement)};d.attachEvent("ondeactivate",g);return function(){a.document.detachEvent("onmousedown",c);d.detachEvent("onactivate",f);d.detachEvent("ondeactivate",g);d=null}}else{d.body.addEventListener("mousedown",c,!0);var h=function(a){dijit._onFocusNode(b||a.target)};d.addEventListener("focus",h,!0);var k=function(a){dijit._onBlurNode(b||a.target)};d.addEventListener("blur",
k,!0);return function(){d.body.removeEventListener("mousedown",c,!0);d.removeEventListener("focus",h,!0);d.removeEventListener("blur",k,!0);d=null}}},unregisterWin:function(a){a&&a()},_onBlurNode:function(){dijit._prevFocus=dijit._curFocus;dijit._curFocus=null;if(!dijit._justMouseDowned)dijit._clearActiveWidgetsTimer&&clearTimeout(dijit._clearActiveWidgetsTimer),dijit._clearActiveWidgetsTimer=setTimeout(function(){delete dijit._clearActiveWidgetsTimer;dijit._setStack([]);dijit._prevFocus=null},100)},
_onTouchNode:function(a,b){dijit._clearActiveWidgetsTimer&&(clearTimeout(dijit._clearActiveWidgetsTimer),delete dijit._clearActiveWidgetsTimer);var c=[];try{for(;a;){var d=dojo.attr(a,"dijitPopupParent");if(d)a=dijit.byId(d).domNode;else if(a.tagName&&a.tagName.toLowerCase()=="body"){if(a===dojo.body())break;a=dojo.window.get(a.ownerDocument).frameElement}else{var f=a.getAttribute&&a.getAttribute("widgetId"),g=f&&dijit.byId(f);g&&!(b=="mouse"&&g.get("disabled"))&&c.unshift(f);a=a.parentNode}}}catch(h){}dijit._setStack(c,
b)},_onFocusNode:function(a){if(a&&a.nodeType!=9&&(dijit._onTouchNode(a),a!=dijit._curFocus)){if(dijit._curFocus)dijit._prevFocus=dijit._curFocus;dijit._curFocus=a;dojo.publish("focusNode",[a])}},_setStack:function(a,b){var c=dijit._activeStack;dijit._activeStack=a;for(var d=0;d<Math.min(c.length,a.length);d++)if(c[d]!=a[d])break;for(var f,g=c.length-1;g>=d;g--)if(f=dijit.byId(c[g]))f._focused=!1,f.set("focused",!1),f._hasBeenBlurred=!0,f._onBlur&&f._onBlur(b),dojo.publish("widgetBlur",[f,b]);for(g=
d;g<a.length;g++)if(f=dijit.byId(a[g]))f._focused=!0,f.set("focused",!0),f._onFocus&&f._onFocus(b),dojo.publish("widgetFocus",[f,b])}}),dojo.addOnLoad(function(){var a=dijit.registerWin(window);dojo.isIE&&dojo.addOnWindowUnload(function(){dijit.unregisterWin(a);a=null})}));
if(!dojo._hasResource["dojo.AdapterRegistry"])dojo._hasResource["dojo.AdapterRegistry"]=!0,dojo.provide("dojo.AdapterRegistry"),dojo.AdapterRegistry=function(a){this.pairs=[];this.returnWrappers=a||!1},dojo.extend(dojo.AdapterRegistry,{register:function(a,b,c,d,f){this.pairs[f?"unshift":"push"]([a,b,c,d])},match:function(){for(var a=0;a<this.pairs.length;a++){var b=this.pairs[a];if(b[1].apply(this,arguments))return b[3]||this.returnWrappers?b[2]:b[2].apply(this,arguments)}throw Error("No match found");
},unregister:function(a){for(var b=0;b<this.pairs.length;b++)if(this.pairs[b][0]==a)return this.pairs.splice(b,1),!0;return!1}});
if(!dojo._hasResource["dijit._base.place"])dojo._hasResource["dijit._base.place"]=!0,dojo.provide("dijit._base.place"),dijit.getViewport=function(){return dojo.window.getBox()},dijit.placeOnScreen=function(a,b,c,d){c=dojo.map(c,function(a){var c={corner:a,pos:{x:b.x,y:b.y}};d&&(c.pos.x+=a.charAt(1)=="L"?d.x:-d.x,c.pos.y+=a.charAt(0)=="T"?d.y:-d.y);return c});return dijit._place(a,c)},dijit._place=function(a,b,c,d){var f=dojo.window.getBox();(!a.parentNode||String(a.parentNode.tagName).toLowerCase()!=
"body")&&dojo.body().appendChild(a);var g=null;dojo.some(b,function(b){var h=b.corner,m=b.pos,n=0,o={w:h.charAt(1)=="L"?f.l+f.w-m.x:m.x-f.l,h:h.charAt(1)=="T"?f.t+f.h-m.y:m.y-f.t};c&&(n=c(a,b.aroundCorner,h,o,d),n=typeof n=="undefined"?0:n);var p=a.style,q=p.display,s=p.visibility;p.visibility="hidden";p.display="";var t=dojo.marginBox(a);p.display=q;p.visibility=s;p=Math.max(f.l,h.charAt(1)=="L"?m.x:m.x-t.w);q=Math.max(f.t,h.charAt(0)=="T"?m.y:m.y-t.h);s=Math.min(f.l+f.w,h.charAt(1)=="L"?p+t.w:m.x);
m=Math.min(f.t+f.h,h.charAt(0)=="T"?q+t.h:m.y);s-=p;m-=q;n+=t.w-s+(t.h-m);if(g==null||n<g.overflow)g={corner:h,aroundCorner:b.aroundCorner,x:p,y:q,w:s,h:m,overflow:n,spaceAvailable:o};return!n});g.overflow&&c&&c(a,g.aroundCorner,g.corner,g.spaceAvailable,d);var b=dojo._isBodyLtr(),h=a.style;h.top=g.y+"px";h[b?"left":"right"]=(b?g.x:f.w-g.x-g.w)+"px";return g},dijit.placeOnScreenAroundNode=function(a,b,c,d){b=dojo.byId(b);b=dojo.position(b,!0);return dijit._placeOnScreenAroundRect(a,b.x,b.y,b.w,b.h,
c,d)},dijit.placeOnScreenAroundRectangle=function(a,b,c,d){return dijit._placeOnScreenAroundRect(a,b.x,b.y,b.width,b.height,c,d)},dijit._placeOnScreenAroundRect=function(a,b,c,d,f,g,h){var k=[],l;for(l in g)k.push({aroundCorner:l,corner:g[l],pos:{x:b+(l.charAt(1)=="L"?0:d),y:c+(l.charAt(0)=="T"?0:f)}});return dijit._place(a,k,h,{w:d,h:f})},dijit.placementRegistry=new dojo.AdapterRegistry,dijit.placementRegistry.register("node",function(a,b){return typeof b=="object"&&typeof b.offsetWidth!="undefined"&&
typeof b.offsetHeight!="undefined"},dijit.placeOnScreenAroundNode),dijit.placementRegistry.register("rect",function(a,b){return typeof b=="object"&&"x"in b&&"y"in b&&"width"in b&&"height"in b},dijit.placeOnScreenAroundRectangle),dijit.placeOnScreenAroundElement=function(a,b,c,d){return dijit.placementRegistry.match.apply(dijit.placementRegistry,arguments)},dijit.getPopupAroundAlignment=function(a,b){var c={};dojo.forEach(a,function(a){switch(a){case "after":c[b?"BR":"BL"]=b?"BL":"BR";break;case "before":c[b?
"BL":"BR"]=b?"BR":"BL";break;case "below-alt":b=!b;case "below":c[b?"BL":"BR"]=b?"TL":"TR";c[b?"BR":"BL"]=b?"TR":"TL";break;case "above-alt":b=!b;default:c[b?"TL":"TR"]=b?"BL":"BR",c[b?"TR":"TL"]=b?"BR":"BL"}});return c};if(!dojo._hasResource["dijit._base.window"])dojo._hasResource["dijit._base.window"]=!0,dojo.provide("dijit._base.window"),dijit.getDocumentWindow=function(a){return dojo.window.get(a)};
if(!dojo._hasResource["dijit._base.popup"])dojo._hasResource["dijit._base.popup"]=!0,dojo.provide("dijit._base.popup"),dijit.popup={_stack:[],_beginZIndex:1E3,_idGen:1,_createWrapper:function(a){var b=a.declaredClass?a._popupWrapper:a.parentNode&&dojo.hasClass(a.parentNode,"dijitPopup"),c=a.domNode||a;if(!b&&(b=dojo.create("div",{"class":"dijitPopup",style:{display:"none"},role:"presentation"},dojo.body()),b.appendChild(c),c=c.style,c.display="",c.visibility="",c.position="",c.top="0px",a.declaredClass))a._popupWrapper=
b,dojo.connect(a,"destroy",function(){dojo.destroy(b);delete a._popupWrapper});return b},moveOffScreen:function(a){a=this._createWrapper(a);dojo.style(a,{visibility:"hidden",top:"-9999px",display:""})},hide:function(a){a=this._createWrapper(a);dojo.style(a,"display","none")},getTopPopup:function(){for(var a=this._stack,b=a.length-1;b>0&&a[b].parent===a[b-1].widget;b--);return a[b]},open:function(a){for(var b=this._stack,c=a.popup,d=a.orient||((a.parent?a.parent.isLeftToRight():dojo._isBodyLtr())?
{BL:"TL",BR:"TR",TL:"BL",TR:"BR"}:{BR:"TR",BL:"TL",TR:"BR",TL:"BL"}),f=a.around,g=a.around&&a.around.id?a.around.id+"_dropdown":"popup_"+this._idGen++;b.length&&(!a.parent||!dojo.isDescendant(a.parent.domNode,b[b.length-1].widget.domNode));)dijit.popup.close(b[b.length-1].widget);var h=this._createWrapper(c);dojo.attr(h,{id:g,style:{zIndex:this._beginZIndex+b.length},"class":"dijitPopup "+(c.baseClass||c["class"]||"").split(" ")[0]+"Popup",dijitPopupParent:a.parent?a.parent.id:""});if((dojo.isIE||
dojo.isMoz)&&!c.bgIframe)c.bgIframe=new dijit.BackgroundIframe(h);d=f?dijit.placeOnScreenAroundElement(h,f,d,c.orient?dojo.hitch(c,"orient"):null):dijit.placeOnScreen(h,a,d=="R"?["TR","BR","TL","BL"]:["TL","BL","TR","BR"],a.padding);h.style.display="";h.style.visibility="visible";c.domNode.style.visibility="visible";f=[];f.push(dojo.connect(h,"onkeypress",this,function(b){if(b.charOrCode==dojo.keys.ESCAPE&&a.onCancel)dojo.stopEvent(b),a.onCancel();else if(b.charOrCode===dojo.keys.TAB&&(dojo.stopEvent(b),
(b=this.getTopPopup())&&b.onCancel))b.onCancel()}));c.onCancel&&f.push(dojo.connect(c,"onCancel",a.onCancel));f.push(dojo.connect(c,c.onExecute?"onExecute":"onChange",this,function(){var a=this.getTopPopup();if(a&&a.onExecute)a.onExecute()}));b.push({widget:c,parent:a.parent,onExecute:a.onExecute,onCancel:a.onCancel,onClose:a.onClose,handlers:f});if(c.onOpen)c.onOpen(d);return d},close:function(a){for(var b=this._stack;a&&dojo.some(b,function(b){return b.widget==a})||!a&&b.length;){var c=b.pop(),
d=c.widget,f=c.onClose;if(d.onClose)d.onClose();dojo.forEach(c.handlers,dojo.disconnect);d&&d.domNode&&this.hide(d);f&&f()}}},dijit._frames=new function(){var a=[];this.pop=function(){var b;a.length?(b=a.pop(),b.style.display=""):(dojo.isIE<9?(b="<iframe src='"+(dojo.config.dojoBlankHtmlUrl||dojo.moduleUrl("dojo","resources/blank.html")+""||'javascript:""')+"' style='position: absolute; left: 0px; top: 0px;z-index: -1; filter:Alpha(Opacity=\"0\");'>",b=dojo.doc.createElement(b)):(b=dojo.create("iframe"),
b.src='javascript:""',b.className="dijitBackgroundIframe",dojo.style(b,"opacity",0.1)),b.tabIndex=-1,dijit.setWaiRole(b,"presentation"));return b};this.push=function(b){b.style.display="none";a.push(b)}},dijit.BackgroundIframe=function(a){if(!a.id)throw Error("no id");if(dojo.isIE||dojo.isMoz){var b=this.iframe=dijit._frames.pop();a.appendChild(b);dojo.isIE<7||dojo.isQuirks?(this.resize(a),this._conn=dojo.connect(a,"onresize",this,function(){this.resize(a)})):dojo.style(b,{width:"100%",height:"100%"})}},
dojo.extend(dijit.BackgroundIframe,{resize:function(a){this.iframe&&dojo.style(this.iframe,{width:a.offsetWidth+"px",height:a.offsetHeight+"px"})},destroy:function(){if(this._conn)dojo.disconnect(this._conn),this._conn=null;this.iframe&&(dijit._frames.push(this.iframe),delete this.iframe)}});if(!dojo._hasResource["dijit._base.scroll"])dojo._hasResource["dijit._base.scroll"]=!0,dojo.provide("dijit._base.scroll"),dijit.scrollIntoView=function(a,b){dojo.window.scrollIntoView(a,b)};
dojo._hasResource["dojo.uacss"]||(dojo._hasResource["dojo.uacss"]=!0,dojo.provide("dojo.uacss"),function(){var a=dojo,b=a.doc.documentElement,c=a.isIE,d=a.isOpera,f=Math.floor,g=a.isFF,h=a.boxModel.replace(/-/,""),c={dj_ie:c,dj_ie6:f(c)==6,dj_ie7:f(c)==7,dj_ie8:f(c)==8,dj_ie9:f(c)==9,dj_quirks:a.isQuirks,dj_iequirks:c&&a.isQuirks,dj_opera:d,dj_khtml:a.isKhtml,dj_webkit:a.isWebKit,dj_safari:a.isSafari,dj_chrome:a.isChrome,dj_gecko:a.isMozilla,dj_ff3:f(g)==3};c["dj_"+h]=!0;var k="",l;for(l in c)c[l]&&
(k+=l+" ");b.className=a.trim(b.className+" "+k);dojo._loaders.unshift(function(){if(!dojo._isBodyLtr()){var c="dj_rtl dijitRtl "+k.replace(/ /g,"-rtl ");b.className=a.trim(b.className+" "+c)}})}());dojo._hasResource["dijit._base.sniff"]||(dojo._hasResource["dijit._base.sniff"]=!0,dojo.provide("dijit._base.sniff"));
if(!dojo._hasResource["dijit._base.typematic"])dojo._hasResource["dijit._base.typematic"]=!0,dojo.provide("dijit._base.typematic"),dijit.typematic={_fireEventAndReload:function(){this._timer=null;this._callback(++this._count,this._node,this._evt);this._currentTimeout=Math.max(this._currentTimeout<0?this._initialDelay:this._subsequentDelay>1?this._subsequentDelay:Math.round(this._currentTimeout*this._subsequentDelay),this._minDelay);this._timer=setTimeout(dojo.hitch(this,"_fireEventAndReload"),this._currentTimeout)},
trigger:function(a,b,c,d,f,g,h,k){if(f!=this._obj)this.stop(),this._initialDelay=h||500,this._subsequentDelay=g||0.9,this._minDelay=k||10,this._obj=f,this._evt=a,this._node=c,this._count=this._currentTimeout=-1,this._callback=dojo.hitch(b,d),this._fireEventAndReload(),this._evt=dojo.mixin({faux:!0},a)},stop:function(){if(this._timer)clearTimeout(this._timer),this._timer=null;if(this._obj)this._callback(-1,this._node,this._evt),this._obj=null},addKeyListener:function(a,b,c,d,f,g,h){if(b.keyCode)b.charOrCode=
b.keyCode,dojo.deprecated("keyCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.","","2.0");else if(b.charCode)b.charOrCode=String.fromCharCode(b.charCode),dojo.deprecated("charCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.","","2.0");return[dojo.connect(a,"onkeypress",this,function(k){k.charOrCode==b.charOrCode&&(b.ctrlKey===void 0||b.ctrlKey==k.ctrlKey)&&(b.altKey===void 0||b.altKey==k.altKey)&&(b.metaKey===
void 0||b.metaKey==(k.metaKey||!1))&&(b.shiftKey===void 0||b.shiftKey==k.shiftKey)?(dojo.stopEvent(k),dijit.typematic.trigger(k,c,a,d,b,f,g,h)):dijit.typematic._obj==b&&dijit.typematic.stop()}),dojo.connect(a,"onkeyup",this,function(){dijit.typematic._obj==b&&dijit.typematic.stop()})]},addMouseListener:function(a,b,c,d,f,g){var h=dojo.connect;return[h(a,"mousedown",this,function(h){dojo.stopEvent(h);dijit.typematic.trigger(h,b,a,c,a,d,f,g)}),h(a,"mouseup",this,function(a){dojo.stopEvent(a);dijit.typematic.stop()}),
h(a,"mouseout",this,function(a){dojo.stopEvent(a);dijit.typematic.stop()}),h(a,"mousemove",this,function(a){a.preventDefault()}),h(a,"dblclick",this,function(h){dojo.stopEvent(h);dojo.isIE&&(dijit.typematic.trigger(h,b,a,c,a,d,f,g),setTimeout(dojo.hitch(this,dijit.typematic.stop),50))})]},addListener:function(a,b,c,d,f,g,h,k){return this.addKeyListener(b,c,d,f,g,h,k).concat(this.addMouseListener(a,d,f,g,h,k))}};
if(!dojo._hasResource["dijit._base.wai"])dojo._hasResource["dijit._base.wai"]=!0,dojo.provide("dijit._base.wai"),dijit.wai={onload:function(){var a=dojo.create("div",{id:"a11yTestNode",style:{cssText:'border: 1px solid;border-color:red green;position: absolute;height: 5px;top: -999px;background-image: url("'+(dojo.config.blankGif||dojo.moduleUrl("dojo","resources/blank.gif"))+'");'}},dojo.body()),b=dojo.getComputedStyle(a);if(b){var c=b.backgroundImage;dojo[b.borderTopColor==b.borderRightColor||c!=
null&&(c=="none"||c=="url(invalid-url:)")?"addClass":"removeClass"](dojo.body(),"dijit_a11y");dojo.isIE?a.outerHTML="":dojo.body().removeChild(a)}}},(dojo.isIE||dojo.isMoz)&&dojo._loaders.unshift(dijit.wai.onload),dojo.mixin(dijit,{hasWaiRole:function(a,b){var c=this.getWaiRole(a);return b?c.indexOf(b)>-1:c.length>0},getWaiRole:function(a){return dojo.trim((dojo.attr(a,"role")||"").replace("wairole:",""))},setWaiRole:function(a,b){dojo.attr(a,"role",b)},removeWaiRole:function(a,b){var c=dojo.attr(a,
"role");c&&(b?(c=dojo.trim((" "+c+" ").replace(" "+b+" "," ")),dojo.attr(a,"role",c)):a.removeAttribute("role"))},hasWaiState:function(a,b){return a.hasAttribute?a.hasAttribute("aria-"+b):!!a.getAttribute("aria-"+b)},getWaiState:function(a,b){return a.getAttribute("aria-"+b)||""},setWaiState:function(a,b,c){a.setAttribute("aria-"+b,c)},removeWaiState:function(a,b){a.removeAttribute("aria-"+b)}});dojo._hasResource["dijit._base"]||(dojo._hasResource["dijit._base"]=!0,dojo.provide("dijit._base"));
if(!dojo._hasResource["dojo.date.stamp"])dojo._hasResource["dojo.date.stamp"]=!0,dojo.provide("dojo.date.stamp"),dojo.getObject("date.stamp",!0,dojo),dojo.date.stamp.fromISOString=function(a,b){if(!dojo.date.stamp._isoRegExp)dojo.date.stamp._isoRegExp=/^(?:(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(.\d+)?)?((?:[+-](\d{2}):(\d{2}))|Z)?)?$/;var c=dojo.date.stamp._isoRegExp.exec(a),d=null;if(c){c.shift();c[1]&&c[1]--;c[6]&&(c[6]*=1E3);b&&(b=new Date(b),dojo.forEach(dojo.map("FullYear,Month,Date,Hours,Minutes,Seconds,Milliseconds".split(","),
function(a){return b["get"+a]()}),function(a,b){c[b]=c[b]||a}));d=new Date(c[0]||1970,c[1]||0,c[2]||1,c[3]||0,c[4]||0,c[5]||0,c[6]||0);c[0]<100&&d.setFullYear(c[0]||1970);var f=0,g=c[7]&&c[7].charAt(0);g!="Z"&&(f=(c[8]||0)*60+(Number(c[9])||0),g!="-"&&(f*=-1));g&&(f-=d.getTimezoneOffset());f&&d.setTime(d.getTime()+f*6E4)}return d},dojo.date.stamp.toISOString=function(a,b){var c=function(a){return a<10?"0"+a:a},b=b||{},d=[],f=b.zulu?"getUTC":"get",g="";b.selector!="time"&&(g=a[f+"FullYear"](),g=["0000".substr((g+
"").length)+g,c(a[f+"Month"]()+1),c(a[f+"Date"]())].join("-"));d.push(g);if(b.selector!="date"){g=[c(a[f+"Hours"]()),c(a[f+"Minutes"]()),c(a[f+"Seconds"]())].join(":");f=a[f+"Milliseconds"]();b.milliseconds&&(g+="."+(f<100?"0":"")+c(f));if(b.zulu)g+="Z";else if(b.selector!="time"){var f=a.getTimezoneOffset(),h=Math.abs(f);g+=(f>0?"-":"+")+c(Math.floor(h/60))+":"+c(h%60)}d.push(g)}return d.join("T")};
if(!dojo._hasResource["dojo.parser"])dojo._hasResource["dojo.parser"]=!0,dojo.provide("dojo.parser"),dojo.parser=new function(){function a(a,b){switch(b){case "string":return a;case "number":return a.length?Number(a):NaN;case "boolean":return typeof a=="boolean"?a:a.toLowerCase()!="false";case "function":d.isFunction(a)&&(a=a.toString(),a=d.trim(a.substring(a.indexOf("{")+1,a.length-1)));try{return a===""||a.search(/[^\w\.]+/i)!=-1?new Function(a):d.getObject(a,!1)||new Function(a)}catch(c){return new Function}case "array":return a?
a.split(/\s*,\s*/):[];case "date":switch(a){case "":return new Date("");case "now":return new Date;default:return d.date.stamp.fromISOString(a)}case "url":return d.baseUrl+a;default:return d.fromJson(a)}}function b(a,b){for(var c in a)if(c.charAt(0)!="_"&&!(c in f)){var g=b,n=c,o;o=a[c];o=d.isString(o)?"string":typeof o=="number"?"number":typeof o=="boolean"?"boolean":d.isFunction(o)?"function":d.isArray(o)?"array":o instanceof Date?"date":o instanceof d._Url?"url":"object";g[n]=o}return b}function c(a,
c){var f=g[a];if(f){if(!c&&!f.params)f.params=b(f.cls.prototype,{})}else{var f=d.getObject(a),m=null;if(!f)return null;c||(m=b(f.prototype,{}));f={cls:f,params:m}}return f}var d=dojo,f={},g={};d.connect(d,"extend",function(){g={}});this._functionFromScript=function(a,b){var c="",f="",g=a.getAttribute(b+"args")||a.getAttribute("args");g&&d.forEach(g.split(/\s*,\s*/),function(a,b){c+="var "+a+" = arguments["+b+"]; "});(g=a.getAttribute("with"))&&g.length&&d.forEach(g.split(/\s*,\s*/),function(a){c+=
"with("+a+"){";f+="}"});return new Function(c+a.innerHTML+f)};this.instantiate=function(b,f,g){var m=[],f=f||{},g=g||{},n=(g.scope||d._scopeName)+"Type",o="data-"+(g.scope||d._scopeName)+"-";d.forEach(b,function(b){if(b){var h,s,t,r,u,z;b.node?(h=b.node,s=b.type,z=b.fastpath,r=(t=b.clsInfo||s&&c(s,z))&&t.cls,u=b.scripts):(h=b,u=(r=(t=(s=n in f?f[n]:h.getAttribute(n))&&c(s))&&t.cls)&&(r._noScript||r.prototype._noScript)?[]:d.query("> script[type^='dojo/']",h));if(!t)throw Error("Could not load class '"+
s);var A={};g.defaults&&d._mixin(A,g.defaults);b.inherited&&d._mixin(A,b.inherited);if(z){if((t=h.getAttribute(o+"props"))&&t.length)try{t=d.fromJson.call(g.propsThis,"{"+t+"}"),d._mixin(A,t)}catch(v){throw Error(v.toString()+" in data-dojo-props='"+t+"'");}if(t=h.getAttribute(o+"attach-point"))A.dojoAttachPoint=t;if(t=h.getAttribute(o+"attach-event"))A.dojoAttachEvent=t;dojo.mixin(A,f)}else{var b=h.attributes,w;for(w in t.params)if((s=w in f?{value:f[w],specified:!0}:b.getNamedItem(w))&&(s.specified||
dojo.isIE&&w.toLowerCase()=="value")){s=s.value;switch(w){case "class":s="className"in f?f.className:h.className;break;case "style":s="style"in f?f.style:h.style&&h.style.cssText}z=t.params[w];A[w]=typeof s=="string"?a(s,z):s}}var C=[],D=[];d.forEach(u,function(a){h.removeChild(a);var b=a.getAttribute(o+"event")||a.getAttribute("event"),c=a.getAttribute("type"),a=d.parser._functionFromScript(a,o);b?c=="dojo/connect"?C.push({event:b,func:a}):A[b]=a:D.push(a)});var B=(u=r.markupFactory||r.prototype&&
r.prototype.markupFactory)?u(A,h,r):new r(A,h);m.push(B);(r=h.getAttribute(o+"id")||h.getAttribute("jsId"))&&d.setObject(r,B);d.forEach(C,function(a){d.connect(B,a.event,null,a.func)});d.forEach(D,function(a){a.call(B)})}});f._started||d.forEach(m,function(a){!g.noStart&&a&&dojo.isFunction(a.startup)&&!a._started&&(!a.getParent||!a.getParent())&&a.startup()});return m};this.parse=function(a,b){function f(a,d){var g=dojo.clone(a.inherited);dojo.forEach(["dir","lang"],function(b){var c=a.node.getAttribute(b);
c&&(g[b]=c)});for(var h=a.clsInfo&&!a.clsInfo.cls.prototype._noScript?a.scripts:null,m=!a.clsInfo||!a.clsInfo.cls.prototype.stopParser||b&&b.template,p=a.node.firstChild;p;p=p.nextSibling)if(p.nodeType==1){var q,w=m&&p.getAttribute(o+"type");q=w?w:m&&p.getAttribute(n);w=w==q;q?(q={type:q,fastpath:w,clsInfo:c(q,w),node:p,scripts:[],inherited:g},d.push(q),f(q,d)):h&&p.nodeName.toLowerCase()=="script"?(q=p.getAttribute("type"))&&/^dojo\/\w/i.test(q)&&h.push(p):m&&f({node:p,inherited:g},d)}}var g;!b&&
a&&a.rootNode?(b=a,g=b.rootNode):g=a;g=g?dojo.byId(g):dojo.body();var b=b||{},n=(b.scope||d._scopeName)+"Type",o="data-"+(b.scope||d._scopeName)+"-",p={};if(b&&b.inherited)for(var q in b.inherited)b.inherited[q]&&(p[q]=b.inherited[q]);q=[];f({node:g,inherited:p},q);return this.instantiate(q,b&&b.template?{template:!0}:null,b)}},function(){var a=function(){dojo.config.parseOnLoad&&dojo.parser.parse()};dojo.getObject("dijit.wai.onload")===dojo._loaders[0]?dojo._loaders.splice(1,0,a):dojo._loaders.unshift(a)}();
dojo._hasResource["dojo.Stateful"]||(dojo._hasResource["dojo.Stateful"]=!0,dojo.provide("dojo.Stateful"),dojo.declare("dojo.Stateful",null,{postscript:function(a){a&&dojo.mixin(this,a)},get:function(a){return this[a]},set:function(a,b){if(typeof a==="object"){for(var c in a)this.set(c,a[c]);return this}c=this[a];this[a]=b;this._watchCallbacks&&this._watchCallbacks(a,c,b);return this},watch:function(a,b){var c=this._watchCallbacks;if(!c)var d=this,c=this._watchCallbacks=function(a,b,f,l){var m=function(c){if(c)for(var c=
c.slice(),l=0,m=c.length;l<m;l++)try{c[l].call(d,a,b,f)}catch(q){console.error(q)}};m(c["_"+a]);l||m(c["*"])};!b&&typeof a==="function"?(b=a,a="*"):a="_"+a;var f=c[a];typeof f!=="object"&&(f=c[a]=[]);f.push(b);return{unwatch:function(){f.splice(dojo.indexOf(f,b),1)}}}}));
dojo._hasResource["dijit._WidgetBase"]||(dojo._hasResource["dijit._WidgetBase"]=!0,dojo.provide("dijit._WidgetBase"),function(){dojo.declare("dijit._WidgetBase",dojo.Stateful,{id:"",lang:"",dir:"","class":"",style:"",title:"",tooltip:"",baseClass:"",srcNodeRef:null,domNode:null,containerNode:null,attributeMap:{id:"",dir:"",lang:"","class":"",style:"",title:""},_blankGif:(dojo.config.blankGif||dojo.moduleUrl("dojo","resources/blank.gif")).toString(),postscript:function(a,b){this.create(a,b)},create:function(a,
b){this.srcNodeRef=dojo.byId(b);this._connects=[];this._subscribes=[];if(this.srcNodeRef&&typeof this.srcNodeRef.id=="string")this.id=this.srcNodeRef.id;if(a)this.params=a,dojo._mixin(this,a);this.postMixInProperties();if(!this.id)this.id=dijit.getUniqueId(this.declaredClass.replace(/\./g,"_"));dijit.registry.add(this);this.buildRendering();if(this.domNode){this._applyAttributes();var c=this.srcNodeRef;c&&c.parentNode&&this.domNode!==c&&c.parentNode.replaceChild(this.domNode,c)}this.domNode&&this.domNode.setAttribute("widgetId",
this.id);this.postCreate();this.srcNodeRef&&!this.srcNodeRef.parentNode&&delete this.srcNodeRef;this._created=!0},_applyAttributes:function(){var a=function(a,b){(b.params&&a in b.params||b[a])&&b.set(a,b[a])},b;for(b in this.attributeMap)a(b,this);dojo.forEach(this._getSetterAttributes(),function(b){b in this.attributeMap||a(b,this)},this)},_getSetterAttributes:function(){var a=this.constructor;if(!a._setterAttrs){var b=a._setterAttrs=[],c,d=a.prototype,f;for(f in d)dojo.isFunction(d[f])&&(c=f.match(/^_set([a-zA-Z]*)Attr$/))&&
c[1]&&b.push(c[1].charAt(0).toLowerCase()+c[1].substr(1))}return a._setterAttrs},postMixInProperties:function(){},buildRendering:function(){if(!this.domNode)this.domNode=this.srcNodeRef||dojo.create("div");if(this.baseClass){var a=this.baseClass.split(" ");this.isLeftToRight()||(a=a.concat(dojo.map(a,function(a){return a+"Rtl"})));dojo.addClass(this.domNode,a)}},postCreate:function(){},startup:function(){this._started=!0},destroyRecursive:function(a){this._beingDestroyed=!0;this.destroyDescendants(a);
this.destroy(a)},destroy:function(a){this._beingDestroyed=!0;this.uninitialize();var b=dojo,c=b.forEach,d=b.unsubscribe;c(this._connects,function(a){c(a,b.disconnect)});c(this._subscribes,function(a){d(a)});c(this._supportingWidgets||[],function(a){a.destroyRecursive?a.destroyRecursive():a.destroy&&a.destroy()});this.destroyRendering(a);dijit.registry.remove(this.id);this._destroyed=!0},destroyRendering:function(a){this.bgIframe&&(this.bgIframe.destroy(a),delete this.bgIframe);this.domNode&&(a?dojo.removeAttr(this.domNode,
"widgetId"):dojo.destroy(this.domNode),delete this.domNode);this.srcNodeRef&&(a||dojo.destroy(this.srcNodeRef),delete this.srcNodeRef)},destroyDescendants:function(a){dojo.forEach(this.getChildren(),function(b){b.destroyRecursive&&b.destroyRecursive(a)})},uninitialize:function(){return!1},_setClassAttr:function(a){dojo.replaceClass(this[this.attributeMap["class"]||"domNode"],a,this["class"]);this._set("class",a)},_setStyleAttr:function(a){var b=this[this.attributeMap.style||"domNode"];dojo.isObject(a)?
dojo.style(b,a):b.style.cssText?b.style.cssText+="; "+a:b.style.cssText=a;this._set("style",a)},_attrToDom:function(a,b){var c=this.attributeMap[a];dojo.forEach(dojo.isArray(c)?c:[c],function(c){var f=this[c.node||c||"domNode"];switch(c.type||"attribute"){case "attribute":dojo.isFunction(b)&&(b=dojo.hitch(this,b));c=c.attribute?c.attribute:/^on[A-Z][a-zA-Z]*$/.test(a)?a.toLowerCase():a;dojo.attr(f,c,b);break;case "innerText":f.innerHTML="";f.appendChild(dojo.doc.createTextNode(b));break;case "innerHTML":f.innerHTML=
b;break;case "class":dojo.replaceClass(f,b,this[a])}},this)},get:function(a){var b=this._getAttrNames(a);return this[b.g]?this[b.g]():this[a]},set:function(a,b){if(typeof a==="object"){for(var c in a)this.set(c,a[c]);return this}c=this._getAttrNames(a);if(this[c.s])var d=this[c.s].apply(this,Array.prototype.slice.call(arguments,1));else a in this.attributeMap&&this._attrToDom(a,b),this._set(a,b);return d||this},_attrPairNames:{},_getAttrNames:function(a){var b=this._attrPairNames;if(b[a])return b[a];
var c=a.charAt(0).toUpperCase()+a.substr(1);return b[a]={n:a+"Node",s:"_set"+c+"Attr",g:"_get"+c+"Attr"}},_set:function(a,b){var c=this[a];this[a]=b;this._watchCallbacks&&this._created&&b!==c&&this._watchCallbacks(a,c,b)},toString:function(){return"[Widget "+this.declaredClass+", "+(this.id||"NO ID")+"]"},getDescendants:function(){return this.containerNode?dojo.query("[widgetId]",this.containerNode).map(dijit.byNode):[]},getChildren:function(){return this.containerNode?dijit.findWidgets(this.containerNode):
[]},connect:function(a,b,c){a=[dojo._connect(a,b,this,c)];this._connects.push(a);return a},disconnect:function(a){for(var b=0;b<this._connects.length;b++)if(this._connects[b]==a){dojo.forEach(a,dojo.disconnect);this._connects.splice(b,1);break}},subscribe:function(a,b){var c=dojo.subscribe(a,this,b);this._subscribes.push(c);return c},unsubscribe:function(a){for(var b=0;b<this._subscribes.length;b++)if(this._subscribes[b]==a){dojo.unsubscribe(a);this._subscribes.splice(b,1);break}},isLeftToRight:function(){return this.dir?
this.dir=="ltr":dojo._isBodyLtr()},placeAt:function(a,b){a.declaredClass&&a.addChild?a.addChild(this,b):dojo.place(this.domNode,a,b);return this}})}());
if(!dojo._hasResource["dijit._Widget"])dojo._hasResource["dijit._Widget"]=!0,dojo.provide("dijit._Widget"),dojo.connect(dojo,"_connect",function(a,b){a&&dojo.isFunction(a._onConnect)&&a._onConnect(b)}),dijit._connectOnUseEventHandler=function(){},dijit._lastKeyDownNode=null,dojo.isIE?function(){var a=function(a){dijit._lastKeyDownNode=a.srcElement};dojo.doc.attachEvent("onkeydown",a);dojo.addOnWindowUnload(function(){dojo.doc.detachEvent("onkeydown",a)})}():dojo.doc.addEventListener("keydown",function(a){dijit._lastKeyDownNode=
a.target},!0),function(){dojo.declare("dijit._Widget",dijit._WidgetBase,{_deferredConnects:{onClick:"",onDblClick:"",onKeyDown:"",onKeyPress:"",onKeyUp:"",onMouseMove:"",onMouseDown:"",onMouseOut:"",onMouseOver:"",onMouseLeave:"",onMouseEnter:"",onMouseUp:""},onClick:dijit._connectOnUseEventHandler,onDblClick:dijit._connectOnUseEventHandler,onKeyDown:dijit._connectOnUseEventHandler,onKeyPress:dijit._connectOnUseEventHandler,onKeyUp:dijit._connectOnUseEventHandler,onMouseDown:dijit._connectOnUseEventHandler,
onMouseMove:dijit._connectOnUseEventHandler,onMouseOut:dijit._connectOnUseEventHandler,onMouseOver:dijit._connectOnUseEventHandler,onMouseLeave:dijit._connectOnUseEventHandler,onMouseEnter:dijit._connectOnUseEventHandler,onMouseUp:dijit._connectOnUseEventHandler,create:function(a,b){this._deferredConnects=dojo.clone(this._deferredConnects);for(var c in this.attributeMap)delete this._deferredConnects[c];for(c in this._deferredConnects)this[c]!==dijit._connectOnUseEventHandler&&delete this._deferredConnects[c];
this.inherited(arguments);if(this.domNode)for(c in this.params)this._onConnect(c)},_onConnect:function(a){a in this._deferredConnects&&(this.connect(this[this._deferredConnects[a]||"domNode"],a.toLowerCase(),a),delete this._deferredConnects[a])},focused:!1,isFocusable:function(){return this.focus&&dojo.style(this.domNode,"display")!="none"},onFocus:function(){},onBlur:function(){},_onFocus:function(){this.onFocus()},_onBlur:function(){this.onBlur()},setAttribute:function(a,b){dojo.deprecated(this.declaredClass+
"::setAttribute(attr, value) is deprecated. Use set() instead.","","2.0");this.set(a,b)},attr:function(a,b){if(dojo.config.isDebug){var c=arguments.callee._ach||(arguments.callee._ach={}),d=(arguments.callee.caller||"unknown caller").toString();c[d]||(dojo.deprecated(this.declaredClass+"::attr() is deprecated. Use get() or set() instead, called from "+d,"","2.0"),c[d]=!0)}return arguments.length>=2||typeof a==="object"?this.set.apply(this,arguments):this.get(a)},nodesWithKeyClick:["input","button"],
connect:function(a,b,c){var d=dojo,f=d._connect,g=this.inherited(arguments,[a,b=="ondijitclick"?"onclick":b,c]);if(b=="ondijitclick"&&d.indexOf(this.nodesWithKeyClick,a.nodeName.toLowerCase())==-1){var h=d.hitch(this,c);g.push(f(a,"onkeydown",this,function(b){if((b.keyCode==d.keys.ENTER||b.keyCode==d.keys.SPACE)&&!b.ctrlKey&&!b.shiftKey&&!b.altKey&&!b.metaKey)dijit._lastKeyDownNode=b.target,"openDropDown"in this&&a==this._buttonNode||b.preventDefault()}),f(a,"onkeyup",this,function(a){if((a.keyCode==
d.keys.ENTER||a.keyCode==d.keys.SPACE)&&a.target==dijit._lastKeyDownNode&&!a.ctrlKey&&!a.shiftKey&&!a.altKey&&!a.metaKey)return dijit._lastKeyDownNode=null,h(a)}))}return g},_onShow:function(){this.onShow()},onShow:function(){},onHide:function(){},onClose:function(){return!0}})}();
if(!dojo._hasResource["dojo.string"])dojo._hasResource["dojo.string"]=!0,dojo.provide("dojo.string"),dojo.getObject("string",!0,dojo),dojo.string.rep=function(a,b){if(b<=0||!a)return"";for(var c=[];;){b&1&&c.push(a);if(!(b>>=1))break;a+=a}return c.join("")},dojo.string.pad=function(a,b,c,d){c||(c="0");a=String(a);b=dojo.string.rep(c,Math.ceil((b-a.length)/c.length));return d?a+b:b+a},dojo.string.substitute=function(a,b,c,d){d=d||dojo.global;c=c?dojo.hitch(d,c):function(a){return a};return a.replace(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g,
function(a,g,h){a=dojo.getObject(g,!1,b);h&&(a=dojo.getObject(h,!1,d).call(d,a,g));return c(a,g).toString()})},dojo.string.trim=String.prototype.trim?dojo.trim:function(a){for(var a=a.replace(/^\s+/,""),b=a.length-1;b>=0;b--)if(/\S/.test(a.charAt(b))){a=a.substring(0,b+1);break}return a};
if(!dojo._hasResource["dojo.cache"]){dojo._hasResource["dojo.cache"]=!0;dojo.provide("dojo.cache");var cache={};dojo.cache=function(a,b,c){typeof a=="string"?a=dojo.moduleUrl(a,b):c=b;b=a.toString();a=c;c!=void 0&&!dojo.isString(c)&&(a="value"in c?c.value:void 0);c=c&&c.sanitize?!0:!1;typeof a=="string"?a=cache[b]=c?dojo.cache._sanitize(a):a:a===null?delete cache[b]:(b in cache||(a=dojo._getText(b),cache[b]=c?dojo.cache._sanitize(a):a),a=cache[b]);return a};dojo.cache._sanitize=function(a){if(a){var a=
a.replace(/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,""),b=a.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);b&&(a=b[1])}else a="";return a}}
if(!dojo._hasResource["dijit._Templated"])dojo._hasResource["dijit._Templated"]=!0,dojo.provide("dijit._Templated"),dojo.declare("dijit._Templated",null,{templateString:null,templatePath:null,widgetsInTemplate:!1,_skipNodeCache:!1,_earlyTemplatedStartup:!1,constructor:function(){this._attachPoints=[];this._attachEvents=[]},_stringRepl:function(a){var b=this.declaredClass,c=this;return dojo.string.substitute(a,this,function(a,f){f.charAt(0)=="!"&&(a=dojo.getObject(f.substr(1),!1,c));if(typeof a=="undefined")throw Error(b+
" template:"+f);return a==null?"":f.charAt(0)=="!"?a:a.toString().replace(/"/g,"&quot;")},this)},buildRendering:function(){var a=dijit._Templated.getCachedTemplate(this.templatePath,this.templateString,this._skipNodeCache),b;if(dojo.isString(a)){if(b=dojo._toDom(this._stringRepl(a)),b.nodeType!=1)throw Error("Invalid template: "+a);}else b=a.cloneNode(!0);this.domNode=b;this.inherited(arguments);this._attachTemplateNodes(b);if(this.widgetsInTemplate)a=this._startupWidgets=dojo.parser.parse(b,{noStart:!this._earlyTemplatedStartup,
template:!0,inherited:{dir:this.dir,lang:this.lang},propsThis:this,scope:"dojo"}),this._supportingWidgets=dijit.findWidgets(b),this._attachTemplateNodes(a,function(a,b){return a[b]});this._fillContent(this.srcNodeRef)},_fillContent:function(a){var b=this.containerNode;if(a&&b)for(;a.hasChildNodes();)b.appendChild(a.firstChild)},_attachTemplateNodes:function(a,b){for(var b=b||function(a,b){return a.getAttribute(b)},c=dojo.isArray(a)?a:a.all||a.getElementsByTagName("*"),d=dojo.isArray(a)?0:-1;d<c.length;d++){var f=
d==-1?a:c[d];if(!this.widgetsInTemplate||!b(f,"dojoType")&&!b(f,"data-dojo-type")){var g=b(f,"dojoAttachPoint")||b(f,"data-dojo-attach-point");if(g)for(var h=g.split(/\s*,\s*/);g=h.shift();)dojo.isArray(this[g])?this[g].push(f):this[g]=f,this._attachPoints.push(g);if(g=b(f,"dojoAttachEvent")||b(f,"data-dojo-attach-event"))for(var h=g.split(/\s*,\s*/),k=dojo.trim;g=h.shift();)if(g){var l=null;g.indexOf(":")!=-1?(l=g.split(":"),g=k(l[0]),l=k(l[1])):g=k(g);l||(l=g);this._attachEvents.push(this.connect(f,
g,l))}(g=b(f,"waiRole"))&&dijit.setWaiRole(f,g);(g=b(f,"waiState"))&&dojo.forEach(g.split(/\s*,\s*/),function(a){a.indexOf("-")!=-1&&(a=a.split("-"),dijit.setWaiState(f,a[0],a[1]))})}}},startup:function(){dojo.forEach(this._startupWidgets,function(a){a&&!a._started&&a.startup&&a.startup()});this.inherited(arguments)},destroyRendering:function(){dojo.forEach(this._attachPoints,function(a){delete this[a]},this);this._attachPoints=[];dojo.forEach(this._attachEvents,this.disconnect,this);this._attachEvents=
[];this.inherited(arguments)}}),dijit._Templated._templateCache={},dijit._Templated.getCachedTemplate=function(a,b,c){var d=dijit._Templated._templateCache,f=b||a,g=d[f];if(g){try{if(!g.ownerDocument||g.ownerDocument==dojo.doc)return g}catch(h){}dojo.destroy(g)}b||(b=dojo.cache(a,{sanitize:!0}));b=dojo.string.trim(b);if(c||b.match(/\$\{([^\}]+)\}/g))return d[f]=b;else{a=dojo._toDom(b);if(a.nodeType!=1)throw Error("Invalid template: "+b);return d[f]=a}},dojo.isIE&&dojo.addOnWindowUnload(function(){var a=
dijit._Templated._templateCache,b;for(b in a){var c=a[b];typeof c=="object"&&dojo.destroy(c);delete a[b]}}),dojo.extend(dijit._Widget,{dojoAttachEvent:"",dojoAttachPoint:"",waiRole:"",waiState:""});
dojo._hasResource["dijit._Container"]||(dojo._hasResource["dijit._Container"]=!0,dojo.provide("dijit._Container"),dojo.declare("dijit._Container",null,{isContainer:!0,buildRendering:function(){this.inherited(arguments);if(!this.containerNode)this.containerNode=this.domNode},addChild:function(a,b){var c=this.containerNode;if(b&&typeof b=="number"){var d=this.getChildren();if(d&&d.length>=b)c=d[b-1].domNode,b="after"}dojo.place(a.domNode,c,b);this._started&&!a._started&&a.startup()},removeChild:function(a){typeof a==
"number"&&(a=this.getChildren()[a]);if(a)(a=a.domNode)&&a.parentNode&&a.parentNode.removeChild(a)},hasChildren:function(){return this.getChildren().length>0},destroyDescendants:function(a){dojo.forEach(this.getChildren(),function(b){b.destroyRecursive(a)})},_getSiblingOfChild:function(a,b){var c=a.domNode,d=b>0?"nextSibling":"previousSibling";do c=c[d];while(c&&(c.nodeType!=1||!dijit.byNode(c)));return c&&dijit.byNode(c)},getIndexOfChild:function(a){return dojo.indexOf(this.getChildren(),a)},startup:function(){this._started||
(dojo.forEach(this.getChildren(),function(a){a.startup()}),this.inherited(arguments))}}));
dojo._hasResource["dijit._Contained"]||(dojo._hasResource["dijit._Contained"]=!0,dojo.provide("dijit._Contained"),dojo.declare("dijit._Contained",null,{getParent:function(){var a=dijit.getEnclosingWidget(this.domNode.parentNode);return a&&a.isContainer?a:null},_getSibling:function(a){var b=this.domNode;do b=b[a+"Sibling"];while(b&&b.nodeType!=1);return b&&dijit.byNode(b)},getPreviousSibling:function(){return this._getSibling("previous")},getNextSibling:function(){return this._getSibling("next")},
getIndexInParent:function(){var a=this.getParent();return!a||!a.getIndexOfChild?-1:a.getIndexOfChild(this)}}));
if(!dojo._hasResource["dijit.layout._LayoutWidget"])dojo._hasResource["dijit.layout._LayoutWidget"]=!0,dojo.provide("dijit.layout._LayoutWidget"),dojo.declare("dijit.layout._LayoutWidget",[dijit._Widget,dijit._Container,dijit._Contained],{baseClass:"dijitLayoutContainer",isLayoutContainer:!0,buildRendering:function(){this.inherited(arguments);dojo.addClass(this.domNode,"dijitContainer")},startup:function(){if(!this._started){this.inherited(arguments);var a=this.getParent&&this.getParent();if(!a||
!a.isLayoutContainer)this.resize(),this.connect(dojo.isIE?this.domNode:dojo.global,"onresize",function(){this.resize()})}},resize:function(a,b){var c=this.domNode;if(a){dojo.marginBox(c,a);if(a.t)c.style.top=a.t+"px";if(a.l)c.style.left=a.l+"px"}var d=b||{};dojo.mixin(d,a||{});if(!("h"in d)||!("w"in d))d=dojo.mixin(dojo.marginBox(c),d);var f=dojo.getComputedStyle(c),g=dojo._getMarginExtents(c,f),h=dojo._getBorderExtents(c,f),d=this._borderBox={w:d.w-(g.w+h.w),h:d.h-(g.h+h.h)},g=dojo._getPadExtents(c,
f);this._contentBox={l:dojo._toPixelValue(c,f.paddingLeft),t:dojo._toPixelValue(c,f.paddingTop),w:d.w-g.w,h:d.h-g.h};this.layout()},layout:function(){},_setupChild:function(a){dojo.addClass(a.domNode,this.baseClass+"-child "+(a.baseClass?this.baseClass+"-"+a.baseClass:""))},addChild:function(a,b){this.inherited(arguments);this._started&&this._setupChild(a)},removeChild:function(a){dojo.removeClass(a.domNode,this.baseClass+"-child"+(a.baseClass?" "+this.baseClass+"-"+a.baseClass:""));this.inherited(arguments)}}),
dijit.layout.marginBox2contentBox=function(a,b){var c=dojo.getComputedStyle(a),d=dojo._getMarginExtents(a,c),f=dojo._getPadBorderExtents(a,c);return{l:dojo._toPixelValue(a,c.paddingLeft),t:dojo._toPixelValue(a,c.paddingTop),w:b.w-(d.w+f.w),h:b.h-(d.h+f.h)}},function(){var a=function(a,c){var d=a.resize?a.resize(c):dojo.marginBox(a.domNode,c);d?dojo.mixin(a,d):(dojo.mixin(a,dojo.marginBox(a.domNode)),dojo.mixin(a,c))};dijit.layout.layoutChildren=function(b,c,d,f,g){c=dojo.mixin({},c);dojo.addClass(b,
"dijitLayoutContainer");d=dojo.filter(d,function(a){return a.region!="center"&&a.layoutAlign!="client"}).concat(dojo.filter(d,function(a){return a.region=="center"||a.layoutAlign=="client"}));dojo.forEach(d,function(b){var d=b.domNode,l=b.region||b.layoutAlign,m=d.style;m.left=c.l+"px";m.top=c.t+"px";m.position="absolute";dojo.addClass(d,"dijitAlign"+(l.substring(0,1).toUpperCase()+l.substring(1)));d={};f&&f==b.id&&(d[b.region=="top"||b.region=="bottom"?"h":"w"]=g);l=="top"||l=="bottom"?(d.w=c.w,
a(b,d),c.h-=b.h,l=="top"?c.t+=b.h:m.top=c.t+c.h+"px"):l=="left"||l=="right"?(d.h=c.h,a(b,d),c.w-=b.w,l=="left"?c.l+=b.w:m.left=c.l+c.w+"px"):(l=="client"||l=="center")&&a(b,c)})}}();
dojo._hasResource["dijit._CssStateMixin"]||(dojo._hasResource["dijit._CssStateMixin"]=!0,dojo.provide("dijit._CssStateMixin"),dojo.declare("dijit._CssStateMixin",[],{cssStateNodes:{},hovering:!1,active:!1,_applyAttributes:function(){this.inherited(arguments);dojo.forEach(["onmouseenter","onmouseleave","onmousedown"],function(a){this.connect(this.domNode,a,"_cssMouseEvent")},this);dojo.forEach("disabled,readOnly,checked,selected,focused,state,hovering,active".split(","),function(a){this.watch(a,dojo.hitch(this,
"_setStateClass"))},this);for(var a in this.cssStateNodes)this._trackMouseState(this[a],this.cssStateNodes[a]);this._setStateClass()},_cssMouseEvent:function(a){if(!this.disabled)switch(a.type){case "mouseenter":case "mouseover":this._set("hovering",!0);this._set("active",this._mouseDown);break;case "mouseleave":case "mouseout":this._set("hovering",!1);this._set("active",!1);break;case "mousedown":this._set("active",!0);this._mouseDown=!0;var b=this.connect(dojo.body(),"onmouseup",function(){this._mouseDown=
!1;this._set("active",!1);this.disconnect(b)})}},_setStateClass:function(){function a(a){b=b.concat(dojo.map(b,function(b){return b+a}),"dijit"+a)}var b=this.baseClass.split(" ");this.isLeftToRight()||a("Rtl");this.checked&&a("Checked");this.state&&a(this.state);this.selected&&a("Selected");this.disabled?a("Disabled"):this.readOnly?a("ReadOnly"):this.active?a("Active"):this.hovering&&a("Hover");this._focused&&a("Focused");var c=this.stateNode||this.domNode,d={};dojo.forEach(c.className.split(" "),
function(a){d[a]=!0});"_stateClasses"in this&&dojo.forEach(this._stateClasses,function(a){delete d[a]});dojo.forEach(b,function(a){d[a]=!0});var f=[],g;for(g in d)f.push(g);c.className=f.join(" ");this._stateClasses=b},_trackMouseState:function(a,b){function c(){var c="disabled"in h&&h.disabled||"readonly"in h&&h.readonly;dojo.toggleClass(a,b+"Hover",d&&!f&&!c);dojo.toggleClass(a,b+"Active",f&&!c);dojo.toggleClass(a,b+"Focused",g&&!c)}var d=!1,f=!1,g=!1,h=this,k=dojo.hitch(this,"connect",a);k("onmouseenter",
function(){d=!0;c()});k("onmouseleave",function(){f=d=!1;c()});k("onmousedown",function(){f=!0;c()});k("onmouseup",function(){f=!1;c()});k("onfocus",function(){g=!0;c()});k("onblur",function(){g=!1;c()});this.watch("disabled",c);this.watch("readOnly",c)}}));
dojo._hasResource["dijit.form._FormWidget"]||(dojo._hasResource["dijit.form._FormWidget"]=!0,dojo.provide("dijit.form._FormWidget"),dojo.declare("dijit.form._FormWidget",[dijit._Widget,dijit._Templated,dijit._CssStateMixin],{name:"",alt:"",value:"",type:"text",tabIndex:"0",disabled:!1,intermediateChanges:!1,scrollOnFocus:!0,attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{value:"focusNode",id:"focusNode",tabIndex:"focusNode",alt:"focusNode",title:"focusNode"}),postMixInProperties:function(){this.nameAttrSetting=
this.name?'name="'+this.name.replace(/'/g,"&quot;")+'"':"";this.inherited(arguments)},postCreate:function(){this.inherited(arguments);this.connect(this.domNode,"onmousedown","_onMouseDown")},_setDisabledAttr:function(a){this._set("disabled",a);dojo.attr(this.focusNode,"disabled",a);this.valueNode&&dojo.attr(this.valueNode,"disabled",a);dijit.setWaiState(this.focusNode,"disabled",a);a?(this._set("hovering",!1),this._set("active",!1),a="tabIndex"in this.attributeMap?this.attributeMap.tabIndex:"focusNode",
dojo.forEach(dojo.isArray(a)?a:[a],function(a){a=this[a];dojo.isWebKit||dijit.hasDefaultTabStop(a)?a.setAttribute("tabIndex","-1"):a.removeAttribute("tabIndex")},this)):this.tabIndex!=""&&this.focusNode.setAttribute("tabIndex",this.tabIndex)},setDisabled:function(a){dojo.deprecated("setDisabled("+a+") is deprecated. Use set('disabled',"+a+") instead.","","2.0");this.set("disabled",a)},_onFocus:function(a){this.scrollOnFocus&&dojo.window.scrollIntoView(this.domNode);this.inherited(arguments)},isFocusable:function(){return!this.disabled&&
this.focusNode&&dojo.style(this.domNode,"display")!="none"},focus:function(){this.disabled||dijit.focus(this.focusNode)},compare:function(a,b){return typeof a=="number"&&typeof b=="number"?isNaN(a)&&isNaN(b)?0:a-b:a>b?1:a<b?-1:0},onChange:function(){},_onChangeActive:!1,_handleOnChange:function(a,b){if(this._lastValueReported==void 0&&(b===null||!this._onChangeActive))this._resetValue=this._lastValueReported=a;this._pendingOnChange=this._pendingOnChange||typeof a!=typeof this._lastValueReported||
this.compare(a,this._lastValueReported)!=0;if((this.intermediateChanges||b||b===void 0)&&this._pendingOnChange)if(this._lastValueReported=a,this._pendingOnChange=!1,this._onChangeActive)this._onChangeHandle&&clearTimeout(this._onChangeHandle),this._onChangeHandle=setTimeout(dojo.hitch(this,function(){this._onChangeHandle=null;this.onChange(a)}),0)},create:function(){this.inherited(arguments);this._onChangeActive=!0},destroy:function(){this._onChangeHandle&&(clearTimeout(this._onChangeHandle),this.onChange(this._lastValueReported));
this.inherited(arguments)},setValue:function(a){dojo.deprecated("dijit.form._FormWidget:setValue("+a+") is deprecated.  Use set('value',"+a+") instead.","","2.0");this.set("value",a)},getValue:function(){dojo.deprecated(this.declaredClass+"::getValue() is deprecated. Use get('value') instead.","","2.0");return this.get("value")},_onMouseDown:function(a){if(!a.ctrlKey&&dojo.mouseButtons.isLeft(a)&&this.isFocusable())var b=this.connect(dojo.body(),"onmouseup",function(){this.isFocusable()&&this.focus();
this.disconnect(b)})}}),dojo.declare("dijit.form._FormValueWidget",dijit.form._FormWidget,{readOnly:!1,attributeMap:dojo.delegate(dijit.form._FormWidget.prototype.attributeMap,{value:"",readOnly:"focusNode"}),_setReadOnlyAttr:function(a){dojo.attr(this.focusNode,"readOnly",a);dijit.setWaiState(this.focusNode,"readonly",a);this._set("readOnly",a)},postCreate:function(){this.inherited(arguments);if(dojo.isIE<9||dojo.isIE&&dojo.isQuirks)this.connect(this.focusNode||this.domNode,"onkeydown",this._onKeyDown);
if(this._resetValue===void 0)this._lastValueReported=this._resetValue=this.value},_setValueAttr:function(a,b){this._handleOnChange(a,b)},_handleOnChange:function(a,b){this._set("value",a);this.inherited(arguments)},undo:function(){this._setValueAttr(this._lastValueReported,!1)},reset:function(){this._hasBeenBlurred=!1;this._setValueAttr(this._resetValue,!0)},_onKeyDown:function(a){if(a.keyCode==dojo.keys.ESCAPE&&!a.ctrlKey&&!a.altKey&&!a.metaKey){var b;if(dojo.isIE)a.preventDefault(),b=document.createEventObject(),
b.keyCode=dojo.keys.ESCAPE,b.shiftKey=a.shiftKey,a.srcElement.fireEvent("onkeypress",b)}},_layoutHackIE7:function(){if(dojo.isIE==7)for(var a=this.domNode,b=a.parentNode,c=a.firstChild||a,d=c.style.filter,f=this;b&&b.clientHeight==0;)(function(){var a=f.connect(b,"onscroll",function(){f.disconnect(a);c.style.filter=(new Date).getMilliseconds();setTimeout(function(){c.style.filter=d},0)})})(),b=b.parentNode}}));dojo._hasResource["dijit.dijit"]||(dojo._hasResource["dijit.dijit"]=!0,dojo.provide("dijit.dijit"));
dojo._hasResource["dojox.html.entities"]||(dojo._hasResource["dojox.html.entities"]=!0,dojo.provide("dojox.html.entities"),function(){var a=function(a,b){var f,g;if(b._encCache&&b._encCache.regexp&&b._encCache.mapper&&b.length==b._encCache.length)f=b._encCache.mapper,g=b._encCache.regexp;else{f={};g=["["];var h;for(h=0;h<b.length;h++)f[b[h][0]]="&"+b[h][1]+";",g.push(b[h][0]);g.push("]");g=RegExp(g.join(""),"g");b._encCache={mapper:f,regexp:g,length:b.length}}return a=a.replace(g,function(a){return f[a]})},
b=function(a,b){var f,g;if(b._decCache&&b._decCache.regexp&&b._decCache.mapper&&b.length==b._decCache.length)f=b._decCache.mapper,g=b._decCache.regexp;else{f={};g=["("];var h;for(h=0;h<b.length;h++){var k="&"+b[h][1]+";";h&&g.push("|");f[k]=b[h][0];g.push(k)}g.push(")");g=RegExp(g.join(""),"g");b._decCache={mapper:f,regexp:g,length:b.length}}return a=a.replace(g,function(a){return f[a]})};dojox.html.entities.html=[["&","amp"],['"',"quot"],["<","lt"],[">","gt"],["\u00a0","nbsp"]];dojox.html.entities.latin=
[["\u00a1","iexcl"],["\u00a2","cent"],["\u00a3","pound"],["\u20ac","euro"],["\u00a4","curren"],["\u00a5","yen"],["\u00a6","brvbar"],["\u00a7","sect"],["\u00a8","uml"],["\u00a9","copy"],["\u00aa","ordf"],["\u00ab","laquo"],["\u00ac","not"],["\u00ad","shy"],["\u00ae","reg"],["\u00af","macr"],["\u00b0","deg"],["\u00b1","plusmn"],["\u00b2","sup2"],["\u00b3","sup3"],["\u00b4","acute"],["\u00b5","micro"],["\u00b6","para"],["\u00b7","middot"],["\u00b8","cedil"],["\u00b9","sup1"],["\u00ba","ordm"],["\u00bb",
"raquo"],["\u00bc","frac14"],["\u00bd","frac12"],["\u00be","frac34"],["\u00bf","iquest"],["\u00c0","Agrave"],["\u00c1","Aacute"],["\u00c2","Acirc"],["\u00c3","Atilde"],["\u00c4","Auml"],["\u00c5","Aring"],["\u00c6","AElig"],["\u00c7","Ccedil"],["\u00c8","Egrave"],["\u00c9","Eacute"],["\u00ca","Ecirc"],["\u00cb","Euml"],["\u00cc","Igrave"],["\u00cd","Iacute"],["\u00ce","Icirc"],["\u00cf","Iuml"],["\u00d0","ETH"],["\u00d1","Ntilde"],["\u00d2","Ograve"],["\u00d3","Oacute"],["\u00d4","Ocirc"],["\u00d5",
"Otilde"],["\u00d6","Ouml"],["\u00d7","times"],["\u00d8","Oslash"],["\u00d9","Ugrave"],["\u00da","Uacute"],["\u00db","Ucirc"],["\u00dc","Uuml"],["\u00dd","Yacute"],["\u00de","THORN"],["\u00df","szlig"],["\u00e0","agrave"],["\u00e1","aacute"],["\u00e2","acirc"],["\u00e3","atilde"],["\u00e4","auml"],["\u00e5","aring"],["\u00e6","aelig"],["\u00e7","ccedil"],["\u00e8","egrave"],["\u00e9","eacute"],["\u00ea","ecirc"],["\u00eb","euml"],["\u00ec","igrave"],["\u00ed","iacute"],["\u00ee","icirc"],["\u00ef",
"iuml"],["\u00f0","eth"],["\u00f1","ntilde"],["\u00f2","ograve"],["\u00f3","oacute"],["\u00f4","ocirc"],["\u00f5","otilde"],["\u00f6","ouml"],["\u00f7","divide"],["\u00f8","oslash"],["\u00f9","ugrave"],["\u00fa","uacute"],["\u00fb","ucirc"],["\u00fc","uuml"],["\u00fd","yacute"],["\u00fe","thorn"],["\u00ff","yuml"],["\u0192","fnof"],["\u0391","Alpha"],["\u0392","Beta"],["\u0393","Gamma"],["\u0394","Delta"],["\u0395","Epsilon"],["\u0396","Zeta"],["\u0397","Eta"],["\u0398","Theta"],["\u0399","Iota"],
["\u039a","Kappa"],["\u039b","Lambda"],["\u039c","Mu"],["\u039d","Nu"],["\u039e","Xi"],["\u039f","Omicron"],["\u03a0","Pi"],["\u03a1","Rho"],["\u03a3","Sigma"],["\u03a4","Tau"],["\u03a5","Upsilon"],["\u03a6","Phi"],["\u03a7","Chi"],["\u03a8","Psi"],["\u03a9","Omega"],["\u03b1","alpha"],["\u03b2","beta"],["\u03b3","gamma"],["\u03b4","delta"],["\u03b5","epsilon"],["\u03b6","zeta"],["\u03b7","eta"],["\u03b8","theta"],["\u03b9","iota"],["\u03ba","kappa"],["\u03bb","lambda"],["\u03bc","mu"],["\u03bd",
"nu"],["\u03be","xi"],["\u03bf","omicron"],["\u03c0","pi"],["\u03c1","rho"],["\u03c2","sigmaf"],["\u03c3","sigma"],["\u03c4","tau"],["\u03c5","upsilon"],["\u03c6","phi"],["\u03c7","chi"],["\u03c8","psi"],["\u03c9","omega"],["\u03d1","thetasym"],["\u03d2","upsih"],["\u03d6","piv"],["\u2022","bull"],["\u2026","hellip"],["\u2032","prime"],["\u2033","Prime"],["\u203e","oline"],["\u2044","frasl"],["\u2118","weierp"],["\u2111","image"],["\u211c","real"],["\u2122","trade"],["\u2135","alefsym"],["\u2190",
"larr"],["\u2191","uarr"],["\u2192","rarr"],["\u2193","darr"],["\u2194","harr"],["\u21b5","crarr"],["\u21d0","lArr"],["\u21d1","uArr"],["\u21d2","rArr"],["\u21d3","dArr"],["\u21d4","hArr"],["\u2200","forall"],["\u2202","part"],["\u2203","exist"],["\u2205","empty"],["\u2207","nabla"],["\u2208","isin"],["\u2209","notin"],["\u220b","ni"],["\u220f","prod"],["\u2211","sum"],["\u2212","minus"],["\u2217","lowast"],["\u221a","radic"],["\u221d","prop"],["\u221e","infin"],["\u2220","ang"],["\u2227","and"],
["\u2228","or"],["\u2229","cap"],["\u222a","cup"],["\u222b","int"],["\u2234","there4"],["\u223c","sim"],["\u2245","cong"],["\u2248","asymp"],["\u2260","ne"],["\u2261","equiv"],["\u2264","le"],["\u2265","ge"],["\u2282","sub"],["\u2283","sup"],["\u2284","nsub"],["\u2286","sube"],["\u2287","supe"],["\u2295","oplus"],["\u2297","otimes"],["\u22a5","perp"],["\u22c5","sdot"],["\u2308","lceil"],["\u2309","rceil"],["\u230a","lfloor"],["\u230b","rfloor"],["\u2329","lang"],["\u232a","rang"],["\u25ca","loz"],
["\u2660","spades"],["\u2663","clubs"],["\u2665","hearts"],["\u2666","diams"],["\u0152","Elig"],["\u0153","oelig"],["\u0160","Scaron"],["\u0161","scaron"],["\u0178","Yuml"],["\u02c6","circ"],["\u02dc","tilde"],["\u2002","ensp"],["\u2003","emsp"],["\u2009","thinsp"],["\u200c","zwnj"],["\u200d","zwj"],["\u200e","lrm"],["\u200f","rlm"],["\u2013","ndash"],["\u2014","mdash"],["\u2018","lsquo"],["\u2019","rsquo"],["\u201a","sbquo"],["\u201c","ldquo"],["\u201d","rdquo"],["\u201e","bdquo"],["\u2020","dagger"],
["\u2021","Dagger"],["\u2030","permil"],["\u2039","lsaquo"],["\u203a","rsaquo"]];dojox.html.entities.encode=function(b,d){b&&(d?b=a(b,d):(b=a(b,dojox.html.entities.html),b=a(b,dojox.html.entities.latin)));return b};dojox.html.entities.decode=function(a,d){a&&(d?a=b(a,d):(a=b(a,dojox.html.entities.html),a=b(a,dojox.html.entities.latin)));return a}}());
if(!dojo._hasResource["RA.Core"]){dojo._hasResource["RA.Core"]=!0;dojo.provide("RA.Core");var clsObj=null;RA.DistanceUnit={Kilometer:0,Mile:1,Meter:2,Yard:3,Foot:4,toString:function(a){var b=RA.DistanceUnit;switch(a){case b.Kilometer:return"kilometer";case b.Mile:return"mile";case b.Meter:return"meter";case b.Yard:return"yard";case b.Foot:return"foot"}},toAbbrevString:function(a){var b=RA.DistanceUnit;switch(a){case b.Kilometer:return"km";case b.Mile:return"mi";case b.Meter:return"m";case b.Yard:return"yd";
case b.Foot:return"ft"}}};RA.WeightUnit={Pound:0,Kilogram:1};if(typeof Array.prototype.insertAt=="undefined")Array.prototype.insertAt=function(a,b){this.splice(a,0,b)};if(typeof Array.prototype.removeAt=="undefined")Array.prototype.removeAt=function(a){var b=this[a];this.splice(a,1);return b};if(typeof String.prototype.trim=="undefined")String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")};RA.Ajax={Ajax:function(a,b,c){var d=document.getElementById("signed_request"),a=RA.Urls.WsAjax+
a;d!=null&&d.value!=null&&(a+="?signed_request="+d.value);RA.Ajax.post(a,b,c)},Api:function(a,b,c){RA.Ajax.post(RA.Urls.WsApi+a,b,c)},post:function(a,b,c){c==null&&(c={});a={url:a,handleAs:"json",contentType:"application/json; charset=utf-8",postData:dojo.toJson(c),load:function(a){RA.Ajax.onResponse(a,b)},error:function(a){RA.Ajax.onError(a,b)}};dojo.rawXhrPost(a)},onResponse:function(a,b){if(b.callback!=null){var c=a.d;if(c.Data!=null)c.data=c.Data,delete c.Data;b.callback(b,c)}},onError:function(a,
b){var c=!0;b.onError!=null&&(c=!b.onError(b));c&&alert(error.get_message())}};RA.Json={deserialize:function(a){return dojo.fromJson(a)},serialize:function(a){return dojo.toJson(a,!1,!1)}};RA.Util={getMousePos:function(a){var b={x:0,y:0};if(a==null)a=window.event;if(a.pageX||a.pageY)b.x=a.pageX,b.y=a.pageY;else if(e.clientX||e.clientY)b.x=a.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,b.y=e.clientY+document.body.scrollTop+document.documentElement.scrollTop;return b},isDecimal:function(a,
b){b==null&&(b=".");return RegExp("^(\\d+)?(\\"+b+"\\d+)?$","g").test(a)},secondsToTimeString:function(a){var b="",c=Math.floor(a/3600),d=Math.floor(a/60)%60,f;f=a.toString().split(".");f=f.length==2?f[1]:"";a=Math.floor(a)%60;c>0&&(b=c.toString()+":");d<10&&c>0&&(b+="0");b+=d.toString()+":";a<10&&(b+="0");b+=a.toString();f.length>0&&(b+="."+f);return b},timeStringToSeconds:function(a){var a=a.match(/^((\d+:)?(\d+:))?(\d+)(\.\d+)?$/),b=-1,c;a!=null&&a.length>=3&&(b=0,c=parseInt(a[2],10),isNaN(c)||
(b+=c),b*=60,c=parseInt(a[3],10),isNaN(c)||(b+=c),b*=60,c=parseInt(a[4],10),isNaN(c)||(b+=c),c=parseFloat(a[5]),isNaN(c)||(b+=c));return b},byte2Hex:function(a){a=Number(a).toString(16);a.length==1&&(a="0"+a);return a},isTextNode:function(a){return a.nodeType==3},getFirstNode:function(a){for(;a!=null&&$isTextNode(a);)a=a.nextSibling;return a},getLastNode:function(a){for(a=a.parentNode.lastChild;a!=null&&$isTextNode(a);)a=a.previousSibling;return a},getPrevNode:function(a){for(a=a.previousSibling;a!=
null&&$isTextNode(a);)a=a.previousSibling;return a},getNextNode:function(a){for(a=a.nextSibling;a!=null&&$isTextNode(a);)a=a.nextSibling;return a},getKeyCode:function(a){var b=null;if(window.event!=null)b=window.event.keyCode;else if(a.which!=null)b=a.which;else if(a.keyCode!=null)b=a.keyCode;return b},isControlKey:function(a){switch(a){case 8:case 9:case 13:case 16:case 17:case 18:case 20:case 27:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 46:return!0;default:return!1}},
restrictAlphaNumeric:function(a){return RA.Util.restrictAlphaNumericEx(a,null)},restrictAlphaNumericEx:function(){},createXmlDoc:function(a){var b;if(typeof DOMParser!="undefined")b=new DOMParser,b=b.parseFromString(a,"text/xml");else if(typeof ActiveXObject!="undefined")b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a);return b},createDomFromHtml:function(a){var b,a=RA.Util.createXmlDoc(a);b=function(a){var d,f,g;d=document.createElement(a.tagName);a=a.childNodes;f=a.length;for(g=
0;g<f;++g)d.appendChild(b(a[g]));return d};return b(a)},preventBubbling:function(a){dojo.stopEvent(a)},decodeHtml:function(a){return dojox.html.entities.decode(a)},encodeHtml:function(a){return dojox.html.entities.encode(a)},compareVersions:function(a,b){var c=-1;for(i=0;i<b.length;++i){if(a[i]<b[i]){c=-1;break}if(a[i]>b[i]){c=1;break}c=0}return c},createGuid:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){var b=Math.random()*16|0;return(a=="x"?b:b&3|8).toString(16)})},
dateDiff:function(a,b){return parseInt(Math.floor((b.getTime()-a.getTime())/864E5),10)}};RA.UI={setPosition:function(a,b,c){a.style.left=b+"px";a.style.top=c+"px"},getWindowWidth:function(){return window.innerWidth!=null?window.innerWidth:document.documentElement&&document.documentElement.clientWidth?document.documentElement.clientWidth:document.body!=null?document.body.clientWidth:null},getWindowHeight:function(){return window.innerHeight!=null?window.innerHeight:document.documentElement&&document.documentElement.clientHeight?
document.documentElement.clientHeight:document.body!=null?document.body.clientHeight:null},addSelectOption:function(a,b,c,d){var f=document.createElement("OPTION");f.value=b;f.innerHTML=c;if(d==b)f.selected="selected";a.appendChild(f)},clearSelect:function(a){for(var b=a.options.length;--b>=0;)a.remove(0)},populateSelect:function(a,b){for(var c=b.length,d,f=0;f<c;++f)d=document.createElement("OPTION"),d.innerHTML=b[f][0],d.value=b[f][1],a.appendChild(d);a.selectedIndex=0},enableCheckBox:function(a,
b){if(a!=null&&(a.disabled=!b,a.parentNode!=null))a.parentNode.disabled=a.disabled},toggleClass:function(a,b,c){(c?$RAAddClass:$RARemoveClass)(a,b)},toggleClassInterval:function(a,b,c,d,f){var g=!0,h=function(){f=0;$removeHandler(h);g&&$RARemoveClass(a,b)},k=function(){RA.UI.toggleClass(a,b,g);!g&&f!=null&&--f;g=!g;if(f==null||f>0)$taskManager.enqueue(k,g?d:c)};$addHandler(a,"click",h);$taskManager.enqueue(k)},clearChildNodes:function(a){for(a.innerHTML="";a.hasChildNodes();)a.removeChild(a.lastChild)}};
RA.UI.Capabilities={dragAndDrop:function(){var a=$RACreateElement("span");return"draggable"in a||"ondragstart"in a&&"ondrop"in a}};RA.UI.Popup={open:function(a,b){var c,d,f,g;RA.UI.Popup.dialog==null?(c=$RACreateElement("div"),c.className="RAPopupDialog Hidden",document.body.appendChild(c),RA.UI.Popup.dialog=c):c=RA.UI.Popup.dialog;c.innerHTML=b;$RARemoveClass(c,"Hidden");g=dijit.getViewport();d=dojo.position(c,!0);f=dojo.position(a,!0);x=f.x-d.w-g.l>g.l+g.w-f.x-f.w-d.w?f.x-d.w-5:f.x+f.w+5;y=f.y-
d.h-g.t>g.t+g.h-f.y-d.h?Math.max(f.y-d.h,0):f.y;$RASetPosition(c,x,y)},close:function(){$RAAddClass(RA.UI.Popup.dialog,"Hidden")},hover:function(a,b){typeof a=="string"&&(a=$RAGetElement(a));$addHandler(a,"mouseover",function(a){RA.UI.Popup.open(a.target,b)});$addHandler(a,"mouseout",function(a){RA.UI.Popup.close(a.target,b)})}};RA.UI.Popup.dialog=null;RA.Math={round:function(a,b){b=Math.pow(10,b);return a=Math.round(a*b)/b},between:function(a,b,c){return b<=a&&a<=c},collar:function(a,b,c){return Math.min(Math.max(a,
b),c)},convertDistance:function(a,b,c){switch(b){case RA.DistanceUnit.Foot:a/=3;case RA.DistanceUnit.Yard:a/=RA.Math.Constants.YardPerMile;case RA.DistanceUnit.Mile:a*=RA.Math.Constants.KmPerMile;case RA.DistanceUnit.Kilometer:a*=1E3}for(b=RA.DistanceUnit.Meter;b!=c;)switch(b){case RA.DistanceUnit.Meter:a/=1E3;b=RA.DistanceUnit.Kilometer;break;case RA.DistanceUnit.Kilometer:a/=RA.Math.Constants.KmPerMile;b=RA.DistanceUnit.Mile;break;case RA.DistanceUnit.Mile:a*=RA.Math.Constants.YardPerMile;b=RA.DistanceUnit.Yard;
break;case RA.DistanceUnit.Yard:a*=3;b=RA.DistanceUnit.Foot;break;default:b=c}return a},convertWeight:function(a,b,c){b==RA.WeightUnit.Pound&&c==RA.WeightUnit.Kilogram?a*=0.45359237:b==RA.WeightUnit.Kilogram&&c==RA.WeightUnit.Pound&&(a/=0.45359237);return a},cross:function(a,b){var c=[NaN,NaN,NaN];c[0]=a[1]*b[2]-a[2]*b[1];c[1]=a[2]*b[0]-a[0]*b[2];c[2]=a[0]*b[1]-a[1]*b[0];return c},dot:function(a,b){for(var c=0,d=a.length,f=0;f<d;++f)c+=a[f]*b[f];return c},getVectorLength:function(a){for(var b=0,c=
a.length,d=0;d<c;++d)b+=Math.pow(a[d],2);return Math.sqrt(b)},normalize:function(a){var b=RA.Math.getVectorLength(a),c=a.length;for(i=0;i<c;++i)a[i]/=b;return a},roundDecimal:function(a,b){b=Math.pow(10,b);return a=Math.round(a*b)/b},getFraction:function(a){a=a.toString().split(".");a.length==2?(a=parseFloat("."+a[1]),isNaN(a)&&(a=0)):a=0;return a},sumDecimal:function(a,b){var c=RA.Math.getFraction,d=c(a),c=c(b),f=Math.floor(a)+Math.floor(b),g=Math.max(d.toString().length-2,c.toString().length-2),
g=Math.pow(10,g);f+=(d*g+c*g)/g;return f},degToRad:function(a){return a*Math.PI/180},radToDeg:function(a){return a*180/Math.PI}};RA.Math.Constants={EarthRadius:6371,EarthRadiusM:6378137,KmPerMile:1.609344,YardPerMile:1760};clsObj={constructor:function(a,b){this.lat=a;this.lng=b},getDestinationPoint:function(a,b){b/=RA.Math.Constants.EarthRadius;var a=RA.Math.degToRad(a),c=RA.Math.degToRad(this.lat),d=RA.Math.degToRad(this.lng),f=Math.asin(Math.sin(c)*Math.cos(b)+Math.cos(c)*Math.sin(b)*Math.cos(a)),
c=d+Math.atan2(Math.sin(a)*Math.sin(b)*Math.cos(c),Math.cos(b)-Math.sin(c)*Math.sin(f)),c=(c+3*Math.PI)%(2*Math.PI)-Math.PI;return isNaN(f)||isNaN(c)?null:new RA.Math.LatLng(RA.Math.radToDeg(f),RA.Math.radToDeg(c))},getBearingTo:function(a){var b=RA.Math.degToRad(this.lat),c=RA.Math.degToRad(a.lat),d=RA.Math.degToRad(a.lng-this.lng),a=Math.sin(d)*Math.cos(c),b=Math.cos(b)*Math.sin(c)-Math.sin(b)*Math.cos(c)*Math.cos(d),b=Math.atan2(a,b);return(RA.Math.radToDeg(b)+360)%360},getDistanceQuick:function(a){var b=
RA.Math.Constants.EarthRadius,c=RA.Math.degToRad(this.lat),d=RA.Math.degToRad(this.lng),f=RA.Math.degToRad(a.lat),a=RA.Math.degToRad(a.lng)-d,c=Math.pow(Math.sin((f-c)/2),2)+Math.cos(c)*Math.cos(f)*Math.pow(Math.sin(a/2),2),c=2*Math.atan2(Math.sqrt(c),Math.sqrt(1-c));return b*c},getDistancePrecise:function(a){var b=1/298.257223563,c=RA.Math.degToRad(a.lng-this.lng),d=Math.atan((1-b)*Math.tan(RA.Math.degToRad(this.lat))),f=Math.atan((1-b)*Math.tan(RA.Math.degToRad(a.lat))),a=Math.sin(d),d=Math.cos(d),
g=Math.sin(f),h=Math.cos(f),k=c,l,m=100,n,o;do{o=Math.sin(k);var p=Math.cos(k),f=Math.sqrt(Math.pow(h*o,2)+Math.pow(d*g-a*h*p,2));if(f==0)return 0;var p=a*g+d*h*p,q=Math.atan2(f,p),s=d*h*o/f;n=1-s*s;o=p-2*a*g/n;isNaN(o)&&(o=0);var t=b/16*n*(4+b*(4-3*n));l=k;k=c+(1-t)*b*s*(q+t*f*(o+t*p*(2*o*o-1)))}while(Math.abs(k-l)>1.0E-12&&--m>0);if(m==0)return NaN;b=n*2.723316066819453E11/4.0408299984087055E13;c=b/1024*(256+b*(b*(74-47*b)-128));return 6356752.3142*(1+b/16384*(4096+b*(b*(320-175*b)-768)))*(q-c*
f*(o+c/4*(p*(-1+2*o*o)-c/6*o*(4*f*f-3)*(4*o*o-3))))},toCartesian:function(){var a=[NaN,NaN,NaN],b=RA.Math.Constants.EarthRadius,c=RA.Math.degToRad(this.lat+90),d=RA.Math.degToRad(this.lng);a[0]=b*Math.sin(c)*Math.cos(d);a[1]=b*Math.sin(c)*Math.sin(d);a[2]=b*Math.cos(c);return a},getIntersect:function(a,b){var c=this.toCartesian(),d=a.toCartesian(),f=b.toCartesian(),g=((f[0]-c[0])*(d[0]-c[0])+(f[1]-c[1])*(d[1]-c[1])+(f[2]-c[2])*(d[2]-c[2]))/(Math.pow(d[0]-c[0],2)+Math.pow(d[1]-c[1],2)+Math.pow(d[2]-
c[2],2));if(g<0||1<g)return null;for(var c=RA.Math.normalize(RA.Math.cross(c,d)),d=RA.Math.dot(f,c),h=c.length,g=0;g<h;++g)f[g]-=d*c[g];f=RA.Math.normalize(f);for(g=0;g<h;++g)f[g]*=RA.Math.Constants.EarthRadius;return RA.Math.LatLng.fromCartesian(f)}};dojo.declare("RA.Math.LatLng",null,clsObj);RA.Math.LatLng.fromCartesian=function(a){var b=Math.sqrt(Math.pow(a[0],2)+Math.pow(a[1],2)+Math.pow(a[2],2)),c=Math.atan2(a[1],a[0]),a=Math.acos(a[2]/b);return new RA.Math.LatLng(RA.Math.radToDeg(a)-90,RA.Math.radToDeg(c))};
clsObj={constructor:function(){this.m_vecTasks=[];this.m_timer=null},enqueue:function(a,b){b==null&&(b=50);for(var c={time:(new Date).getTime()+b,cb:a},d=this.m_vecTasks,f=d.length,g=0;g<f&&d[g].time<=c.time;)++g;d.insertAt(g,c);g==0&&this.stopTimer();return this.wait()?null:c},stopTimer:function(){if(this.m_timer!=null)clearTimeout(this.m_timer),this.m_timer=null},cancelTask:function(a){for(var b=this.m_vecTasks,c=b.length,d=0;d<c;++d)if(a==b[d]){d==0?(b.shift(),this.stopTimer(),b.length>0&&this.wait()):
b.removeAt(d);break}},wait:function(){if(this.m_timer!=null||this.m_vecTasks.length==0)return!0;var a=this.m_vecTasks[0],b=(new Date).getTime(),a=a.time-b;if(a<=0)return this.execute(),!0;var c=this;this.m_timer=setTimeout(function(){c.m_timer=null;c.execute()},a);return!1},execute:function(){var a=this.m_vecTasks.shift();a!=null&&a.cb();this.wait()}};dojo.declare("RA.TaskManager",null,clsObj);RA.Static={protocol:"http://"};RA.getDomainUrl=function(){var a,b;a=document.getElementsByTagName("script");
a=a[a.length-1].src;b=a.toLowerCase().indexOf(RA.Static.protocol);b==0?(a=a.substring(RA.Static.protocol.length),b=a.indexOf("/"),b>0&&(a=a.substring(0,b)),a=RA.Static.protocol+a):a="";return a};RA.redirect=function(a){window.location.href=a};RA.addHandler=function(a,b,c){var d=a._evts;if(d==null)d=a._evts={};d[b]==null&&(d[b]=[]);d[b].push({handler:dojo.connect(a,"on"+b,c),cb:c})};RA.removeHandler=function(a,b,c){var a=a._evts,d,f;if(a!=null&&a[b]!=null&&c!=null){f=a[b];d=f.length;c=c.toString().replace(" ",
"");for(a=0;a<d;++a)if(b=f[a].cb.toString().replace(" ",""),c.length==b.length&&c==b){dojo.disconnect(f[a].handler);f.removeAt(a);break}}};RA.clearHandlers=function(a){if(a._evts!=null){var b=a._evts,c,d,f,g;for(c in b){f=b[c];g=f.length;for(d=0;d<g;++d)dojo.disconnect(f[d].handler)}delete a._evts}};typeof $taskManager=="undefined"&&($taskManager=new RA.TaskManager);$isTextNode=RA.Util.isTextNode;$getFirstNode=RA.Util.getFirstNode;$getLastNode=RA.Util.getLastNode;$getPrevNode=RA.Util.getPrevNode;
$getNextNode=RA.Util.getNextNode;$addHandler=RA.addHandler;$removeHandler=RA.removeHandler;$clearHandlers=RA.clearHandlers;$RAGetElement=dojo.byId;$RACreateElement=function(a){return document.createElement(a)};$RASetPosition=RA.UI.setPosition;$RAAddClass=dojo.addClass;$RARemoveClass=dojo.removeClass;$RAToggleClass=RA.UI.toggleClass;RA.Urls={};RA.Urls.domainRoot=RA.getDomainUrl();RA.Urls.WsApi=RA.Urls.domainRoot+"/api/api.asmx/";RA.Urls.WsAjax=RA.Urls.domainRoot+"/WebServices/Ajax.asmx/";RA.Urls.WsGeocode=
RA.Urls.domainRoot+"/WebServices/Geocode.asmx/";RA.Urls.imageRoot=RA.Urls.domainRoot+"/images";RA.Urls.iconsRoot=RA.Urls.imageRoot+"/20";RA.Urls.gmapsRoot=RA.Urls.imageRoot+"/gmaps"}
if(!dojo._hasResource["RA.I18N"])dojo._hasResource["RA.I18N"]=!0,dojo.provide("RA.I18N"),RA.I18N={},RA.I18N.Calendar={dayAbbrev1:"S,M,T,W,T,F,S".split(","),dayAbbrev2:"Su,Mo,Tu,We,Th,Fr,Sa".split(","),dayAbbrev3:"Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(","),dayFull:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),monthAbbrev3:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),monthFull:"January,February,March,April,May,June,July,August,September,October,November,December".split(",")};
if(!dojo._hasResource["RA.Controls"])dojo._hasResource["RA.Controls"]=!0,dojo.provide("RA.Controls"),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,f){if(a==null)a=window.event;var g=b-c.value.length,d=document.getElementById(d);if(g<0)c.value=c.value.substr(0,b),g=0;d.innerHTML=f.replace("{0}",g);a!=null&&g===0&&!RA.Util.isControlKey(a.keyCode)&&dojo.stopEvent(a)}},
$RAInstantiate=RA.Controls.create,$RAGet=RA.Controls.get,$RADestroy=RA.Controls.destroy,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,f;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)});f=document.createElement("SPAN");f.innerHTML="&#9660;";d.appendChild(f);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,f,g,h,k,l=new Date;k=a.m_firstDayOfWeek;var m=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";f=document.createElement("DIV");d.appendChild(f);f.className="Prev";f.innerHTML="&laquo;";$addHandler(f,"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(f);f=document.createElement("DIV");d.appendChild(f);f.className="Prev";f.innerHTML="&lsaquo;";$addHandler(f,
"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(f);f=document.createElement("DIV");d.appendChild(f);f.className="Next";f.innerHTML="&raquo;";$addHandler(f,"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(f);f=document.createElement("DIV");d.appendChild(f);f.className="Next";f.innerHTML="&rsaquo;";$addHandler(f,"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(f);f=document.createElement("DIV");d.appendChild(f);f.className="Current";a.m_month=f;f=document.createElement("TABLE");c.appendChild(f);f.className="Calendar";d=document.createElement("TBODY");f.appendChild(d);$addHandler(f,"click",function(b){a.selectNow(b.target)});a.m_vecCtrls.push(f);f=document.createElement("TR");d.appendChild(f);for(h=0;h<7;++h,
k=++k%7)g=document.createElement("TH"),f.appendChild(g),g.appendChild(document.createTextNode(m[k]));for(h=0;h<6;++h){f=document.createElement("TR");d.appendChild(f);for(k=0;k<7;++k)g=document.createElement("TD"),f.appendChild(g),b.push(g)}div=document.createElement("div");div.className="Footer";div.innerHTML="Today: "+a.format(l);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,f=b.match(d.regexFlags),d=a.match(d.regexDate),g=-1,h=0,k=0,l=0,m=new Date,n=this.m_resources.monthAbbrev3,o;f[++g]!=void 0&&d[g]!=void 0;)switch(c=f[g],c){case "d":case "dd":l=parseInt(d[g],10);break;case "M":case "MM":k=parseInt(d[g],10);break;case "MMM":o=d[g].toLowerCase();for(c=0;c<n.length;++c)if(n[c].toLowerCase()==o){k=c+1;break}break;case "yy":h=parseInt(d[g],10);h+=Math.abs(h+1900-m.getFullYear())<Math.abs(h+2E3-m.getFullYear())?
1900:2E3;break;case "yyyy":h=parseInt(d[g],10)}return h>0&&k>0&&l>0?new Date(h,k-1,l):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,f=d.length;b=new Date;var g=b.getDate(),h=b.getMonth(),k=b.getFullYear(),l,m,n,o=a.getDate(),p=a.getMonth(),q=a.getFullYear();this.m_month.innerHTML=this.m_resources.monthFull[p]+", "+q;a=new Date(q+(p==11?1:0),(p+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<f;++b)c=d[b],l=a.getDate(),c.innerHTML=l,c.m_date=new Date(a.getFullYear(),a.getMonth(),a.getDate()),m=a.getMonth(),n=a.getFullYear(),c.className=l==g&&m==h&&n==k?"Today":l==o&&m==p&&n==q?"Now":m==p?"Current":n==q&&m<p||n<q?"Prev":"Next",a.setDate(l+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,f,g;c.copyConstructor(b);g=function(a){c.onKeyUp(a)};
for(f=0;f<c.m_vecTextBoxes.length;++f){d=$RAGet(c.m_vecTextBoxes[f]);if(d==null){d=$RAGetElement(c.m_vecTextBoxes[f]);if(d==null)continue;$addHandler(d,"keyup",g)}else d.addChangedHandler!=null&&d.addChangedHandler(g),$addHandler(d.getElement(),"keyup",g);c.m_vecTextBoxes[f]=d}for(f=0;f<c.m_vecButtons.length;++f)c.m_vecButtons[f]=$RAGetElement(c.m_vecButtons[f]);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,f=dojo.position(a.getElement()),g,h,k,l=a.m_vecResultHandlers;a.hideResults();d.style.top=f.h+f.y+"px";d.style.left=f.x+"px";d.style.position="absolute";f=function(b){for(c=b.target;c!=null&&c.resultNumber==null;)c=c.parentNode;
a.selectResult(c.resultNumber)};for(k=0;k<b.length;++k)c=document.createElement("div"),c.className="ResultPanel",c.resultNumber=k,l.push(dojo.connect(c,"onclick",f)),d.appendChild(c),b[k].address!=null&&b[k].address.Length>0&&(g=document.createElement("div"),h=document.createTextNode(result.Address),g.appendChild(h),c.appendChild(g)),g=document.createElement("div"),h="",h=b[k].country,b[k].state!=null&&b[k].state.length>0&&(h=b[k].state+", "+h),b[k].city!=null&&b[k].city.length>0&&(h=b[k].city+", "+
h),h=document.createTextNode(h),g.appendChild(h),c.appendChild(g),null!=b[k].zip&&b[k].zip.length>0&&(g=document.createElement("div"),h=document.createTextNode(b[k].zip),g.appendChild(h),c.appendChild(g));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,f;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(f=0;f<d;++f)b.addImage(c[f])}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 f=this;$RASetPosition(f.m_palette,a,b);f.m_preview.style.backgroundColor=c;f.m_palette.style.visibility="visible";f.m_cbSelect=d;f.m_bFirstClick=!0;document.m_fnOldOnClick=document.onclick;document.onclick=function(){f.m_bFirstClick?f.m_bFirstClick=!1:(f.onClose(),document.onclick=null,document.onclick=document.m_fnOldOnClick,document.m_fnOldOnClick=null)}},create:function(){var a=this,b,c,d,f,g,h,k,
l=0,m,n,o,p,q=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");f=document.createElement("tr");a.m_preview=document.createElement("td");a.m_preview.className="ColorPreview";a.m_preview.innerHTML="&nbsp;";f.appendChild(a.m_preview);g=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";g.align="right";g.appendChild(a.m_close);f.appendChild(g);d.appendChild(f);c.appendChild(d);h=document.createElement("table");k=document.createElement("tbody");h.setAttribute("cellPadding","0");h.setAttribute("cellSpacing","2");h.setAttribute("border","0");f=null;for(n=0;n<6;++n)for(o=0;o<6;++o)for(p=0;p<6;++p)l++%18===0&&(f!=null&&k.appendChild(f),f=document.createElement("tr")),
m=document.createElement("div"),m.className="ColorCell",$addHandler(m,"click",function(b){a.onSelect(b)}),$addHandler(m,"mouseover",function(b){a.onMouseOver(b)}),m.m_color="#"+q(51*n)+q(51*o)+q(51*p),m.style.backgroundColor=m.m_color,a.m_colors.push(m),g=document.createElement("td"),g.appendChild(m),f.appendChild(g);f!=null&&k.appendChild(f);h.appendChild(k);g=document.createElement("td");g.setAttribute("colSpan","2");g.appendChild(h);f=document.createElement("tr");f.appendChild(g);d.appendChild(f);
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,f,g,h,k=[],l=b.readOnly,m=function(a){c.onClick(a)},n=function(a){c.onMouseOver(a)},o=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(" "));g=parseInt(c.m_value.value,10);f=c.m_max;for(d=0;d<f;++d)h=document.createElement("a"),a.appendChild(h),
k.push(h),h.m_value=d+1,h.innerHTML="&nbsp;",l||($addHandler(h,"click",m),$addHandler(h,"mouseover",n),$addHandler(h,"mouseout",o));c.m_vecItems=k;c.setClass(g)},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,f=this.m_vecItems,g=f.length,h=this.m_emptyCssClass,k=this.m_filledCssClass;
for(b=0;b<g;++b)d=f[b],c=d.m_value,d.className=c<=a?k:h}},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"),f=this.m_vecCache[0];d.m_content=d.innerHTML=a.replace("<","&lt;");if(b!=null)d.m_val=b;f.ul.appendChild(d);d.style.display="none";f.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,f,g,h=b.length,k,l=this.m_vecCache,m;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");m=this.m_dictionary=new RA.Dictionary;for(k=0;k<h;++k){g=document.createElement("li");f=b[k];g.m_content=g.innerHTML=f.text.replace("<","&lt;");if(f.value!=null)g.m_val=f.value;d.appendChild(g);g.style.display="none";m.add(this.tokenize(f.text),g)}f={text:a,ul:d,partial:c,dictionary:m};l.push(f);l.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,f=c,g,h,k=0,l,m=this.m_dropdown;d<f;){g=parseInt((d+f)/2,10);h=b[g].text;l=a.substr(0,h.length);if(h==l){for(d=g;++g<c;)if(h=b[g].text,l=a.substr(0,h.length),h==l)d=g;else break;break}h<l?d=g+1:f=g}if(d<c)h=b[d].text,l=a.substr(0,h.length),h==l&&(k=d);this.m_activeList=k;this.m_select!=null&&m.removeChild(this.m_select);b.length==0?this.m_dictionary=this.m_select=null:(this.m_select=b[k].ul,
m.appendChild(this.m_select),this.m_dictionary=b[k].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,f,g,h=this.m_text,k,l=this.m_value;f=this.m_watermark;
a=a.trim().toLowerCase();if(a.length==0||f.toLowerCase()==a)h.value=f,l.value="",$RAAddClass(h,"Empty");else{f=this.tokenize(a);k=this.m_dictionary.lookup(f);f=null;g=k.length;for(d=0;d<g;++d)if(k[d].m_content.toLowerCase()==a){f=k[d];break}if(f!=null&&(d=f.m_content==null?f.innerHTML:f.m_content,d.toLowerCase()==a))h.value=d,a=f.m_val,l.value=a==null?"":a,$RARemoveClass(h,"Empty"),c=!0}b||this.clearFilter();return c},suggest:function(a){var b=this.getText().trim(),c,d,f,g,h,k;g=this.m_dictionary;
this.setDisplay(this.m_vecVisibleItems,"none");c=this.tokenize(b);f=c.length;if(f>0){this.loadCache(b);g=this.m_dictionary;if(g==null)return;h="\\b(";for(d=0;d<f;++d)d>0&&(h+="|"),h+=c[d];h+=")";c=g.lookup(c);f=c.length;if(f==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<f;++d)g=c[d],k=g.innerHTML,g.m_content=k,g.innerHTML=k.replace(RegExp(h,"ig"),"<b>$&</b>","ig"),
g.style.display="block";this.m_vecVisibleItems=c}g=this.m_vecCache[this.m_activeList];!a&&g.partial&&g.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,f;for(f=0;f<d;++f)c=a[f],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,f;d=b.tokenize(a);f=b.m_webservice.endpoint;f.charAt(f.length-1)!="/"&&(f+="/");f+=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(f,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,f,g,h=a.length;f=this.entries.length;this.entries.push(b);for(g=0;g<h;++g)text=a[g].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(f)},lookup:function(a){var b,
c=this.indexes,d=c.length,f,g=a.length,h,k=[],l,m,n,o,p=0;for(l=0;l<g;++l){f=a[l].toLowerCase();b=this.find(f,!0);if(b==-1)return[];o=f.length;for(m=h=b;--m>=0&&c[m].text.substr(0,o)==f;)h=m;for(m=b;++m<d&&c[m].text.substr(0,o)==f;)b=m;f={};for(m=h;m<=b;++m){h=c[m].indexes;o=h.length;for(n=0;n<o;++n)f[h[n]]=1}k.push(f)}a=k[0];o=k.length;if(o>1){for(m in a)++p;for(l=1;l<o&&p>0;++l)for(m in f=k[l],a)f[m]!==1&&(delete a[m],--p)}k=[];h=this.entries;for(m in a)k.push(h[m]);return k},find:function(a,b){for(var c=
this.indexes.length,d=0,f=c,g,h,k=this.indexes;d<f;)g=parseInt((d+f)/2,10),h=k[g].text,b&&(h=h.substr(0,a.length)),h<a?d=g+1:f=g;return d<c&&(h=k[d].text,b&&(h=h.substr(0,a.length)),h==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);
dojo._hasResource["RA.Controls.AdDetector"]||(dojo._hasResource["RA.Controls.AdDetector"]=!0,dojo.provide("RA.Controls.AdDetector"),clsObj={constructor:function(a,b){if(a.getElementsByTagName("iframe").length==0)a.innerHTML='<table class="AdBlock" style="height:{0}"><tr><td valign="middle"><a href="/options/subscription"><b>This window is sad because it cannot display its ad.</b><br/><br/>Please consider purchasing an <b>Ad Free Subscription</b> to support continuing development of RunningAHEAD.com</a></td></tr></table>'.replace("{0}",b.height!=
null&&b.height.length>0?b.height:"auto")+a.innerHTML;else{var c=a.className;c==null||c.length==0?c="NoPrint":c+=" NoPrint";a.className=c}},destroy:function(){}},dojo.declare("RA.Controls.AdDetector",RA.Controls.Control,clsObj));
if(!dojo._hasResource["RA.TrainingLog"])dojo._hasResource["RA.TrainingLog"]=!0,dojo.provide("RA.TrainingLog"),RA.TrainingLog={confirmDelete:"Are you sure you want to delete this entry?",changeGpsMapAccess:function(a,b,c){ctrlPrompt=$RAGetElement(c);ctrlPrompt!=null&&$RARemoveClass(ctrlPrompt,"Invisible");RA.Ajax.Ajax("ChangeGpsMapAccess",{callback:function(a){var b=$RAGetElement(a.prompt);setTimeout(function(){$RAAddClass(b,"Invisible")},1E3)},prompt:c},{strMapId:b,bPublic:a.checked})},deleteEvent:function(a,
b){confirm(RA.TrainingLog.confirmDelete)&&RA.Ajax.Ajax("DeleteEvent",{callback:RA.TrainingLog.onDeleteEntry,id:b,onError:RA.TrainingLog.onError,ctrl:a},{strEventID:b})},deleteWorkout:function(a,b){confirm(RA.TrainingLog.confirmDelete)&&RA.Ajax.Ajax("DeleteEvent",{callback:function(){history.go(-1)}},{strEventID:b})},deleteCourse:function(a,b){confirm(RA.TrainingLog.confirmDelete)&&RA.Ajax.Ajax("DeleteCourse",{callback:RA.TrainingLog.onDeleteEntry,id:b,onError:RA.TrainingLog.onError,ctrl:a},{strCourseID:b})},
deleteEquipment:function(a,b){confirm(RA.TrainingLog.confirmDelete)&&RA.Ajax.Ajax("DeleteEquipment",{callback:RA.TrainingLog.onDeleteEntry,id:b,onError:RA.TrainingLog.onError,ctrl:a},{strEquipmentID:b})},deleteReport:function(a,b){confirm(RA.TrainingLog.confirmDelete)&&RA.Ajax.Ajax("DeleteReport",{callback:RA.TrainingLog.onDeleteReport,ctrl:a},{strReportID:b})},deleteTrainingPlan:function(a,b){confirm(RA.TrainingLog.confirmDelete)&&RA.Ajax.Ajax("DeleteTrainingPlan",{callback:RA.TrainingLog.onDeleteTrainingPlan,
ctrl:a},{strPlanID:b})},onError:function(){return!0},onDeleteEntry:function(a,b){if(b.code==2001)window.location.href=window.location.pathname+"/"+a.id+"/assign";else{for(var c=a.ctrl.parentNode,d,f,g;c.tagName.toLowerCase()!="tr";)c=c.parentNode;d=c.className=="alt";f=c.parentNode;for(g=$getNextNode(c);g!=null;g=$getNextNode(g))g.className=d?"alt":"",d=!d;f.removeChild(c)}},onDeleteReport:function(a){a=a.ctrl.parentNode;a.parentNode.removeChild(a)},onDeleteTrainingPlan:function(a,b){if(b.code==0)for(var c=
a.ctrl;c!=null;)if(c.tagName=="LI"){c.parentNode.removeChild(c);break}else c=c.parentNode},onSelectGraphType:function(a,b){var c;for(c=$getNextNode(a.parentNode.firstChild);c!=null;c=$getNextNode(c))c.className="GraphType";a.className="GraphTypeSelected";a=$RAGetElement(g_idGraphType);if(a!=null)a.value=b},populateDdl:function(a,b){var c=b.length,d,f;for(f=0;f<c;++f)d=document.createElement("OPTION"),d.innerHTML=b[f][0],d.value=b[f][1],a.appendChild(d);a.selectedIndex=0}},clsObj={constructor:function(a,
b){this.m_ctrls=b.ctrls;this.m_strUrl=b.url;this.handlerHelper($addHandler)},destroy:function(){this.handlerHelper($clearHandlers)},handlerHelper:function(a){var b,c=this.m_ctrls.split("|"),d;for(d=0;d<c.length;++d)b=$RAGetElement(c[d]),b!=null&&a(b,"click",function(a){me.onClick(a)})},onClick:function(a){this.get_element().src=this.m_strUrl+"?"+a.target.getAttribute("value")}},dojo.declare("RA.TrainingLog.ImageSwapper",RA.Controls.Control,clsObj),clsObj={constructor:function(a,b){this.m_vecWorkoutIDs=
[];this.m_timer=this.m_divPopup=null;if(b.vecWorkoutIDs!=null&&b.vecWorkoutIDs.length>0)this.m_vecWorkoutIDs=b.vecWorkoutIDs.split(",");this.handlerHelper($addHandler)},destroy:function(){this.handlerHelper($clearHandlers)},handlerHelper:function(a){for(var b=this,c=b.m_vecWorkoutIDs,d=c.length,f=0;f<d;++f)a($RAGetElement(c[f]),"mouseover",function(a){b.showPopup(a)}),a($RAGetElement(c[f]),"mouseout",function(a){b.hidePopup(a)})},showPopup:function(a){var b=this,c;if(b.m_divPopup==null)c=document.createElement("div"),
c.className="CalendarItemInfo",document.body.appendChild(c),b.m_divPopup=c;a=a.target;if(a.tagName!="A"&&(a=a.parentNode,a.tagName!="A"))return;c=b.m_divPopup;$RARemoveClass(c,"Invisible");a.m_htmlCache!=null?(c.innerHTML=a.m_htmlCache,b.onDisplayDetails(a)):(c.m_target=a,c.innerHTML='<img src="/images/wait16trans.gif" />',a=dojo.position(a,!0),$RASetPosition(c,a.x+a.w,a.y),this.m_timer=setTimeout(function(){b.showPopupDelayed()},200))},showPopupDelayed:function(){var a=this,b=a.m_divPopup.m_target;
a.m_timer=null;RA.Ajax.Ajax("GetWorkoutDetailsHtml",{callback:function(b,d){a.onReceiveDetails(b,d.data)},onError:function(b){return a.onError(b)},target:b},{strWorkoutID:b.id})},hidePopup:function(){if(this.m_timer!=null)clearTimeout(this.m_timer),this.m_timer=null;this.m_divPopup!=null&&$RAAddClass(this.m_divPopup,"Invisible")},onReceiveDetails:function(a,b){this.m_divPopup.innerHTML=b;a.target.m_htmlCache=b;this.onDisplayDetails(a.target)},onDisplayDetails:function(a){var b=this.m_divPopup,c,d;
d=dijit.getViewport();c=dojo.position(b,!0);targetBounds=dojo.position(a,!0);a=targetBounds.x-c.w-d.l>d.l+d.w-targetBounds.x-targetBounds.w-c.w?targetBounds.x-c.w-5:targetBounds.x+targetBounds.w+5;c=targetBounds.y-c.h-d.t>d.t+d.h-targetBounds.y-c.h?Math.max(targetBounds.y-c.h,0):targetBounds.y;$RASetPosition(b,a,c)},onError:function(){return!1}},dojo.declare("RA.TrainingLog.CalendarCtrl",RA.Controls.Control,clsObj),clsObj={constructor:function(a,b){this.m_bLoadSummary=!0;this.m_params=b.params},destroy:function(){},
open:function(){var a=this,b,c;a.inherited("open",arguments);if(a.m_bLoadSummary)b={callback:function(b,c){a.onReceiveSummary(b,c.data)}},c={parameters:a.m_params},RA.Ajax.Ajax("SummarizeEvents",b,c),a.m_bLoadSummary=!1},onReceiveSummary:function(a,b){b.html!=null&&this.setContentHtml(b.html)}},dojo.declare("RA.TrainingLog.EventSummaryDlg",RA.Controls.DialogBox,clsObj),clsObj={constructor:function(a,b){this.m_ctrlAvailableColumns=$RAGetElement(b.availableColumns);this.m_ctrlSelectedColumns=$RAGetElement(b.selectedColumns);
this.m_ctrlInsert=$RAGetElement(b.insert);this.m_ctrlInsert.enabled=!0;this.m_ctrlRemove=$RAGetElement(b.remove);this.m_ctrlRemove.enabled=!0;this.m_ctrlMoveUp=$RAGetElement(b.moveUp);this.m_ctrlMoveUp.enabled=!0;this.m_ctrlMoveDown=$RAGetElement(b.moveDown);this.m_ctrlMoveDown.enabled=!0;this.m_ctrlColumnOrder=$RAGetElement(b.columnOrder);this.handlerHelper($addHandler)},destroy:function(){this.handlerHelper($clearHandlers)},handlerHelper:function(a){var b=this;a(b.m_ctrlInsert,"click",function(a){b.onInsert(a)});
a(b.m_ctrlRemove,"click",function(a){b.onRemove(a)});a(b.m_ctrlMoveUp,"click",function(a){b.onMoveUp(a)});a(b.m_ctrlMoveDown,"click",function(a){b.onMoveDown(a)});a(b.m_ctrlAvailableColumns,"click",function(a){b.onSelectAvail(a)});a(b.m_ctrlSelectedColumns,"click",function(a){b.onSelectSelected(a)})},onMoveUp:function(){var a=this.m_ctrlSelectedColumns.selectedIndex;a!==0&&this.reorder(a)},onMoveDown:function(){var a=this.m_ctrlSelectedColumns.selectedIndex+1;a!=this.m_ctrlSelectedColumns.options.length&&
this.reorder(a)},onInsert:function(){var a=this;a.move(a.m_ctrlAvailableColumns,a.m_ctrlSelectedColumns);if(!a.m_ctrlMoveUp.enabled)a.m_ctrlMoveUp.src="/images/up_17x17-blue.png",$addHandler(a.m_ctrlMoveUp,"click",function(){a.onMoveUp()}),a.m_ctrlMoveUp.enabled=!0;if(!a.m_ctrlMoveDown.enabled)a.m_ctrlMoveDown.src="/images/down_17x17-blue.png",$addHandler(a.m_ctrlMoveDown,"click",function(){a.onMoveDown()}),a.m_ctrlMoveDown.enabled=!0;if(a.m_ctrlInsert.enabled)a.m_ctrlInsert.src="/images/right_17x17-gray.png",
$clearHandlers(a.m_ctrlInsert),a.m_ctrlInsert.enabled=!1;if(!a.m_ctrlRemove.enabled)a.m_ctrlRemove.src="/images/left_17x17-blue.png",$addHandler(a.m_ctrlRemove,"click",function(){a.onRemove()}),a.m_ctrlRemove.enabled=!0},onRemove:function(){var a=this;a.move(a.m_ctrlSelectedColumns,a.m_ctrlAvailableColumns);if(a.m_ctrlMoveUp.enabled)a.m_ctrlMoveUp.src="/images/up_17x17-gray.png",$clearHandlers(a.m_ctrlMoveUp),a.m_ctrlMoveUp.enabled=!1;if(a.m_ctrlMoveDown.enabled)a.m_ctrlMoveDown.src="/images/down_17x17-gray.png",
$clearHandlers(a.m_ctrlMoveDown),a.m_ctrlMoveDown.enabled=!1;if(!a.m_ctrlInsert.enabled)a.m_ctrlInsert.src="/images/right_17x17-blue.png",$addHandler(a.m_ctrlInsert,"click",function(){a.onInsert()}),a.m_ctrlInsert.enabled=!0;if(a.m_ctrlRemove.enabled)a.m_ctrlRemove.src="/images/left_17x17-gray.png",$clearHandlers(a.m_ctrlRemove),a.m_ctrlRemove.enabled=!1},onSelectSelected:function(){var a=this;if(!a.m_ctrlMoveUp.enabled)a.m_ctrlMoveUp.src="/images/up_17x17-blue.png",$addHandler(a.m_ctrlMoveUp,"click",
function(){a.onMoveUp()}),a.m_ctrlMoveUp.enabled=!0;if(!a.m_ctrlMoveDown.enabled)a.m_ctrlMoveDown.src="/images/down_17x17-blue.png",$addHandler(a.m_ctrlMoveDown,"click",function(){a.onMoveDown()}),a.m_ctrlMoveDown.enabled=!0;if(!a.m_ctrlRemove.enabled)a.m_ctrlRemove.src="/images/left_17x17-blue.png",$addHandler(a.m_ctrlRemove,"click",function(){a.onRemove()}),a.m_ctrlRemove.enabled=!0},onSelectAvail:function(){var a=this;if(!a.m_ctrlInsert.enabled)a.m_ctrlInsert.src="/images/right_17x17-blue.png",
$addHandler(a.m_ctrlInsert,"click",function(){a.onInsert()}),a.m_ctrlInsert.enabled=!0},reorder:function(a){var b=this.m_ctrlSelectedColumns.options[a],c=this.m_ctrlSelectedColumns.options[a-1];this.m_ctrlSelectedColumns.remove(a);try{this.m_ctrlSelectedColumns.add(b,c)}catch(d){this.m_ctrlSelectedColumns.add(b,a-1)}this.storeData()},move:function(a,b){var c=a.options[a.selectedIndex];a.remove(a.selectedIndex);try{b.add(c,null)}catch(d){b.add(c)}b.selectedIndex=b.options.length-1;this.storeData()},
storeData:function(){for(var a="",b=0;b<this.m_ctrlSelectedColumns.options.length;++b)a.length>0&&(a+=","),a+=this.m_ctrlSelectedColumns.options[b].value;this.m_ctrlColumnOrder.value=a}},dojo.declare("RA.TrainingLog.ArrangeColumnsCtrl",RA.Controls.Control,clsObj),clsObj={constructor:function(a,b){this.copyConstructor(b);this.m_ctrlWorkouts=$RAGetElement(this.m_ctrlWorkouts);this.m_ctrlEquipments=$RAGetElement(this.m_ctrlEquipments);this.m_ctrlIntervalSets=$RAGetElement(this.m_ctrlIntervalSets);this.m_ctrlWait=
$RAGetElement(this.m_ctrlWait);this.m_ctrlDateRange=$RAGetElement(this.m_ctrlDateRange);this.handlerHelper($addHandler)},destroy:function(){this.handlerHelper($clearHandlers)},handlerHelper:function(a){var b=this;a(b.getElement(),"change",function(a){b.onSelectActivity(a)});a(b.m_ctrlDateRange,"change",function(a){b.onSelectDate(a)})},onSelectActivity:function(){var a=this,b,c;b=a.getElement();b=b.options[b.selectedIndex].value;b<0?($RAAddClass($RAGetElement(a.m_trWorkouts),"Hidden"),$RAAddClass($RAGetElement(a.m_trEquipments),
"Hidden"),$RAAddClass($RAGetElement(a.m_trIntervals),"Hidden")):($RARemoveClass(a.m_ctrlWait,"Invisible"),c={callback:function(b,c){a.updateActivity(b,c.data)}},RA.Ajax.Ajax("GetActivityData",c,{activity:b,createDummy:!0}))},updateActivity:function(a,b){var c,d,f,g;RA.UI.clearSelect(this.m_ctrlWorkouts);if(b.workoutTypes!=null&&b.workoutTypes.length>0){if(RA.UI.populateSelect(this.m_ctrlWorkouts,b.workoutTypes),$RARemoveClass($RAGetElement(this.m_trWorkouts),"Hidden"),navigator.appVersion.match(/MSIE 6/))this.m_ctrlWorkouts.style.width=
"100px",this.m_ctrlWorkouts.style.width=""}else $RAAddClass($RAGetElement(this.m_trWorkouts),"Hidden");RA.UI.clearSelect(this.m_ctrlEquipments);b.equipments!=null&&b.equipments.length>0?(RA.UI.populateSelect(this.m_ctrlEquipments,b.equipments),$RARemoveClass($RAGetElement(this.m_trEquipments),"Hidden")):$RAAddClass($RAGetElement(this.m_trEquipments),"Hidden");RA.UI.clearSelect(this.m_ctrlIntervalSets);if(b.intervalSets!=null&&b.intervalSets.length>0){g=[];d=b.intervalSets;f=d.length;for(c=0;c<f;++c)g.push([d[c].text,
d[c].value]);RA.UI.populateSelect(this.m_ctrlIntervalSets,g);$RARemoveClass($RAGetElement(this.m_trIntervals),"Hidden");if(navigator.appVersion.match(/MSIE 6/))this.m_ctrlIntervalSets.style.width="100px",this.m_ctrlIntervalSets.style.width=""}else $RAAddClass($RAGetElement(this.m_trIntervals),"Hidden");$RAAddClass(this.m_ctrlWait,"Invisible")},onSelectDate:function(){}},dojo.declare("RA.TrainingLog.SearchForm",RA.Controls.Control,clsObj),clsObj={constructor:function(a,b){this.copyConstructor(b);this.m_ctrlFile=
$RAGetElement(this.m_ctrlFile);this.m_ctrlInstruction=$RAGetElement(this.m_ctrlInstruction);this.m_ctrlUpload=$RAGetElement(this.m_ctrlUpload);this.m_ctrlInstruction2=$RAGetElement(this.m_ctrlInstruction2);this.m_ctrlFile2=$RAGetElement(this.m_ctrlFile2);this.m_ctrlFile2Container=$RAGetElement(this.m_ctrlFile2Container);this.handlerHelper($addHandler);this.onChangeSource()},destroy:function(){me.handlerHelper($clearHandlers)},handlerHelper:function(a){var b=this;a(b.getElement(),"change",function(a){b.onChangeSource(a)});
a(b.m_ctrlFile,"change",function(a){b.onChangeFile(a)});a(b.m_ctrlFile,"keyup",function(a){b.onChangeFile(a)});a(b.m_ctrlFile2,"change",function(a){b.onChangeFile(a)});a(b.m_ctrlFile2,"keyup",function(a){b.onChangeFile(a)});a(b.m_ctrlUpload,"click",function(a){b.onSubmit(a)})},onChangeSource:function(){var a;a=this.getElement().selectedIndex;this.m_vecInstructions[a]==null?this.m_ctrlInstruction.style.display="none":(this.m_ctrlInstruction.style.display="block",this.m_ctrlInstruction.innerHTML=this.m_vecInstructions[a]);
if(this.m_vecInstructions2[a]==null){if(this.m_ctrlInstruction2.style.display="none",this.m_ctrlFile2Container.style.display="none",this.m_ctrlFile2.value.length>0)$clearHandlers(this.m_ctrlFile2,"change",this.m_changeFileDelegate),$clearHandlers(this.m_ctrlFile2,"keyup",this.m_changeFileDelegate),a=document.createElement(this.m_ctrlFile2.tagName),a.type=this.m_ctrlFile2.type,a.id=this.m_ctrlFile2.id,this.m_ctrlFile2.id="",a.name=this.m_ctrlFile2.name,a.style.width=this.m_ctrlFile2.style.width,this.m_ctrlFile2.parentNode.appendChild(a),
this.m_ctrlFile2.parentNode.removeChild(this.m_ctrlFile2),this.m_ctrlFile2=a,$addHandler(this.m_ctrlFile2,"change",this.m_changeFileDelegate),$addHandler(this.m_ctrlFile2,"keyup",this.m_changeFileDelegate)}else this.m_ctrlInstruction2.innerHTML=this.m_vecInstructions2[a],this.m_ctrlInstruction2.style.display="",this.m_ctrlFile2Container.style.display="";this.onChangeFile()},onChangeFile:function(){var a=this.getElement().selectedIndex;this.m_ctrlUpload.disabled=this.m_ctrlFile.value.length==0||this.m_vecInstructions2[a]!=
null&&this.m_ctrlFile2.value.length==0},onSubmit:function(a){var b,c=!0,d;b=this.getElement().selectedIndex;if(this.m_vecExtensions[b]!=null&&(b="."+this.m_vecExtensions[b],d=this.m_ctrlFile.value.toLowerCase(),d.length<b.length||d.substr(d.length-b.length)!=b&&d.substr(d.length-4)!=".zip"))c=confirm(d+" has the wrong extension. Do you wish to continue?");c||dojo.stopEvent(a);return c}},dojo.declare("RA.TrainingLog.ImportFileCtrl",RA.Controls.Control,clsObj),clsObj={constructor:function(a,b){var c=
this;c.m_original=null;c.m_eventId=b.eventId;c.m_name=$RAGetElement(b.name);c.m_save=$RAGetElement(b.save);c.m_yes=null;c.m_no=null;$addHandler(c.m_save,"click",function(a){c.onSave(a)})},destroy:function(){$clearHandlers(this.m_save)},handlerHelper:function(a){var b=this;b.m_yes!=null&&a(b.m_yes,"click",function(){b.onSaveCourse()});b.m_no!=null&&a(b.m_no,"click",function(){b.close()})},open:function(){var a;if(this.m_original!=null)a=this.getElement(),a.removeChild(this.m_content),this.m_content=
this.m_original,a.appendChild(this.m_content),this.m_original=null;this.inherited(arguments)},onSave:function(){var a=this,b=a.m_name.value;!a.m_save.disabled&&!(b==null||b.length==0)&&RA.Ajax.Ajax("SaveRouteExecutor",{callback:function(b,d){a.onSaveResult(d)}},{name:b,mode:1,args:{eventId:a.m_eventId}})},onSaveResult:function(a){var b;if(a.code==0){if(this.close(),a.url!=null)window.location.href=a.url}else if(a.code==2002){if(this.m_original==null)this.m_original=this.m_content,b=this.getElement(),
b.removeChild(this.m_content),this.m_content=document.createElement("div"),this.m_content.className=this.m_original.className,b.appendChild(this.m_content);this.setContentHtml(a.data.html);this.handlerHelper($clearHandlers);this.m_yes=$RAGetElement(a.data.yesId);this.m_no=$RAGetElement(a.data.noId);this.handlerHelper($addHandler)}else this.close(),a.message!=null&&alert(a.message)},onSaveCourse:function(){var a=this,b=a.m_name.value;!a.m_save.disabled&&!(b==null||b.length==0)&&RA.Ajax.Ajax("SaveRouteExecutor",
{callback:function(b,d){a.onSaveCourseResult(d)}},{name:b,mode:2,args:{eventId:a.m_eventId}})},onSaveCourseResult:function(a){this.close();a.code!=0&&(a.message==null?alert("Unknown error"):alert(a.message))}},dojo.declare("RA.TrainingLog.SaveMapAsCourseDlg",RA.Controls.DialogBox,clsObj);
dojo._hasResource["dojox.charting.scaler.common"]||(dojo._hasResource["dojox.charting.scaler.common"]=!0,dojo.provide("dojox.charting.scaler.common"),function(){var a=function(a,c){return Math.abs(a-c)<=1.0E-6*(Math.abs(a)+Math.abs(c))};dojo.mixin(dojox.charting.scaler.common,{findString:function(a,c){for(var a=a.toLowerCase(),d=0;d<c.length;++d)if(a==c[d])return!0;return!1},getNumericLabel:function(b,c,d){var f="",f=dojo.number?(d.fixed?dojo.number.format(b,{places:c<0?-c:0}):dojo.number.format(b))||
"":d.fixed?b.toFixed(c<0?-c:0):b.toString();if(d.labelFunc&&(c=d.labelFunc(f,b,c)))return c;if(d.labels){for(var d=d.labels,c=0,g=d.length;c<g;){var h=Math.floor((c+g)/2);d[h].value<b?c=h+1:g=h}if(c<d.length&&a(d[c].value,b))return d[c].text;--c;if(c>=0&&c<d.length&&a(d[c].value,b))return d[c].text;c+=2;if(c<d.length&&a(d[c].value,b))return d[c].text}return f}})}());
dojo._hasResource["dojox.charting.scaler.linear"]||(dojo._hasResource["dojox.charting.scaler.linear"]=!0,dojo.provide("dojox.charting.scaler.linear"),function(){var a=dojox.charting.scaler,b=a.common,c=b.findString,d=b.getNumericLabel,f=function(b,d,f,l,m,n,o){f=dojo.delegate(f);if(!l){if(f.fixUpper=="major")f.fixUpper="minor";if(f.fixLower=="major")f.fixLower="minor"}if(!m){if(f.fixUpper=="minor")f.fixUpper="micro";if(f.fixLower=="minor")f.fixLower="micro"}if(!n){if(f.fixUpper=="micro")f.fixUpper=
"none";if(f.fixLower=="micro")f.fixLower="none"}var p=c(f.fixLower,["major"])?Math.floor(f.min/l)*l:c(f.fixLower,["minor"])?Math.floor(f.min/m)*m:c(f.fixLower,["micro"])?Math.floor(f.min/n)*n:f.min,q=c(f.fixUpper,["major"])?Math.ceil(f.max/l)*l:c(f.fixUpper,["minor"])?Math.ceil(f.max/m)*m:c(f.fixUpper,["micro"])?Math.ceil(f.max/n)*n:f.max;f.useMin&&(b=p);f.useMax&&(d=q);var s=!l||f.useMin&&c(f.fixLower,["major"])?b:Math.ceil(b/l)*l,t=!m||f.useMin&&c(f.fixLower,["major","minor"])?b:Math.ceil(b/m)*
m,r=!n||f.useMin&&c(f.fixLower,["major","minor","micro"])?b:Math.ceil(b/n)*n,u=!l?0:(f.useMax&&c(f.fixUpper,["major"])?Math.round((d-s)/l):Math.floor((d-s)/l))+1,z=!m?0:(f.useMax&&c(f.fixUpper,["major","minor"])?Math.round((d-t)/m):Math.floor((d-t)/m))+1,f=!n?0:(f.useMax&&c(f.fixUpper,["major","minor","micro"])?Math.round((d-r)/n):Math.floor((d-r)/n))+1,A=m?Math.round(l/m):0,v=n?Math.round(m/n):0,w=l?Math.floor(Math.log(l)/Math.LN10):0,C=m?Math.floor(Math.log(m)/Math.LN10):0,D=o/(d-b);isFinite(D)||
(D=1);return{bounds:{lower:p,upper:q,from:b,to:d,scale:D,span:o},major:{tick:l,start:s,count:u,prec:w},minor:{tick:m,start:t,count:z,prec:C},micro:{tick:n,start:r,count:f,prec:0},minorPerMajor:A,microPerMinor:v,scaler:a.linear}};dojo.mixin(dojox.charting.scaler.linear,{buildScaler:function(a,b,c,d){var m={fixUpper:"none",fixLower:"none",natural:!1};if(d){if("fixUpper"in d)m.fixUpper=String(d.fixUpper);if("fixLower"in d)m.fixLower=String(d.fixLower);if("natural"in d)m.natural=Boolean(d.natural)}if("min"in
d)a=d.min;if("max"in d)b=d.max;d.includeZero&&(a>0&&(a=0),b<0&&(b=0));m.min=a;m.useMin=!0;m.max=b;m.useMax=!0;if("from"in d)a=d.from,m.useMin=!1;if("to"in d)b=d.to,m.useMax=!1;if(b<=a)return f(a,b,m,0,0,0,c);var n=Math.floor(Math.log(b-a)/Math.LN10),n=d&&"majorTickStep"in d?d.majorTickStep:Math.pow(10,n),o=0,p=0,q;if(d&&"minorTickStep"in d)o=d.minorTickStep;else{do{o=n/10;if(!m.natural||o>0.9)if(q=f(a,b,m,n,o,0,c),q.bounds.scale*q.minor.tick>3)break;o=n/5;if(!m.natural||o>0.9)if(q=f(a,b,m,n,o,0,c),
q.bounds.scale*q.minor.tick>3)break;o=n/2;if(!m.natural||o>0.9)if(q=f(a,b,m,n,o,0,c),q.bounds.scale*q.minor.tick>3)break;return f(a,b,m,n,0,0,c)}while(0)}if(d&&"microTickStep"in d)p=d.microTickStep,q=f(a,b,m,n,o,p,c);else{do{p=o/10;if(!m.natural||p>0.9)if(q=f(a,b,m,n,o,p,c),q.bounds.scale*q.micro.tick>3)break;p=o/5;if(!m.natural||p>0.9)if(q=f(a,b,m,n,o,p,c),q.bounds.scale*q.micro.tick>3)break;p=o/2;if(!m.natural||p>0.9)if(q=f(a,b,m,n,o,p,c),q.bounds.scale*q.micro.tick>3)break;p=0}while(0)}return p?
q:f(a,b,m,n,o,0,c)},buildTicks:function(a,b){var c,f,m,n=a.major.start,o=a.minor.start,p=a.micro.start;if(b.microTicks&&a.micro.tick)c=a.micro.tick,f=p;else if(b.minorTicks&&a.minor.tick)c=a.minor.tick,f=o;else if(a.major.tick)c=a.major.tick,f=n;else return null;var q=1/a.bounds.scale;if(a.bounds.to<=a.bounds.from||isNaN(q)||!isFinite(q)||c<=0||isNaN(c)||!isFinite(c))return null;for(var s=[],t=[],r=[];f<=a.bounds.to+q;){if(Math.abs(n-f)<c/2){m={value:n};if(b.majorLabels)m.label=d(n,a.major.prec,b);
s.push(m);n+=a.major.tick;o+=a.minor.tick}else if(Math.abs(o-f)<c/2){if(b.minorTicks){m={value:o};if(b.minorLabels&&a.minMinorStep<=a.minor.tick*a.bounds.scale)m.label=d(o,a.minor.prec,b);t.push(m)}o+=a.minor.tick}else b.microTicks&&r.push({value:p});p+=a.micro.tick;f+=c}return{major:s,minor:t,micro:r}},getTransformerFromModel:function(a){var b=a.bounds.from,c=a.bounds.scale;return function(a){return(a-b)*c}},getTransformerFromPlot:function(a){var b=a.bounds.from,c=a.bounds.scale;return function(a){return a/
c+b}}})}());
if(!dojo._hasResource["dojox.gfx.matrix"])dojo._hasResource["dojox.gfx.matrix"]=!0,dojo.provide("dojox.gfx.matrix"),function(){var a=dojox.gfx.matrix,b={};a._degToRad=function(a){return b[a]||(b[a]=Math.PI*a/180)};a._radToDeg=function(a){return a/Math.PI*180};a.Matrix2D=function(b){if(b)if(typeof b=="number")this.xx=this.yy=b;else if(b instanceof Array){if(b.length>0){for(var d=a.normalize(b[0]),f=1;f<b.length;++f){var g=d,h=dojox.gfx.matrix.normalize(b[f]),d=new a.Matrix2D;d.xx=g.xx*h.xx+g.xy*h.yx;
d.xy=g.xx*h.xy+g.xy*h.yy;d.yx=g.yx*h.xx+g.yy*h.yx;d.yy=g.yx*h.xy+g.yy*h.yy;d.dx=g.xx*h.dx+g.xy*h.dy+g.dx;d.dy=g.yx*h.dx+g.yy*h.dy+g.dy}dojo.mixin(this,d)}}else dojo.mixin(this,b)};dojo.extend(a.Matrix2D,{xx:1,xy:0,yx:0,yy:1,dx:0,dy:0});dojo.mixin(a,{identity:new a.Matrix2D,flipX:new a.Matrix2D({xx:-1}),flipY:new a.Matrix2D({yy:-1}),flipXY:new a.Matrix2D({xx:-1,yy:-1}),translate:function(b,d){return arguments.length>1?new a.Matrix2D({dx:b,dy:d}):new a.Matrix2D({dx:b.x,dy:b.y})},scale:function(b,d){return arguments.length>
1?new a.Matrix2D({xx:b,yy:d}):typeof b=="number"?new a.Matrix2D({xx:b,yy:b}):new a.Matrix2D({xx:b.x,yy:b.y})},rotate:function(b){var d=Math.cos(b),b=Math.sin(b);return new a.Matrix2D({xx:d,xy:-b,yx:b,yy:d})},rotateg:function(b){return a.rotate(a._degToRad(b))},skewX:function(b){return new a.Matrix2D({xy:Math.tan(b)})},skewXg:function(b){return a.skewX(a._degToRad(b))},skewY:function(b){return new a.Matrix2D({yx:Math.tan(b)})},skewYg:function(b){return a.skewY(a._degToRad(b))},reflect:function(b,d){if(arguments.length==
1)d=b.y,b=b.x;var f=b*b,g=d*d,h=f+g,k=2*b*d/h;return new a.Matrix2D({xx:2*f/h-1,xy:k,yx:k,yy:2*g/h-1})},project:function(b,d){if(arguments.length==1)d=b.y,b=b.x;var f=b*b,g=d*d,h=f+g,k=b*d/h;return new a.Matrix2D({xx:f/h,xy:k,yx:k,yy:g/h})},normalize:function(b){return b instanceof a.Matrix2D?b:new a.Matrix2D(b)},clone:function(b){var d=new a.Matrix2D,f;for(f in b)typeof b[f]=="number"&&typeof d[f]=="number"&&d[f]!=b[f]&&(d[f]=b[f]);return d},invert:function(b){var b=a.normalize(b),d=b.xx*b.yy-b.xy*
b.yx;return b=new a.Matrix2D({xx:b.yy/d,xy:-b.xy/d,yx:-b.yx/d,yy:b.xx/d,dx:(b.xy*b.dy-b.yy*b.dx)/d,dy:(b.yx*b.dx-b.xx*b.dy)/d})},_multiplyPoint:function(a,b,f){return{x:a.xx*b+a.xy*f+a.dx,y:a.yx*b+a.yy*f+a.dy}},multiplyPoint:function(b,d,f){b=a.normalize(b);return typeof d=="number"&&typeof f=="number"?a._multiplyPoint(b,d,f):a._multiplyPoint(b,d.x,d.y)},multiply:function(b){for(var d=a.normalize(b),f=1;f<arguments.length;++f){var g=d,h=a.normalize(arguments[f]),d=new a.Matrix2D;d.xx=g.xx*h.xx+g.xy*
h.yx;d.xy=g.xx*h.xy+g.xy*h.yy;d.yx=g.yx*h.xx+g.yy*h.yx;d.yy=g.yx*h.xy+g.yy*h.yy;d.dx=g.xx*h.dx+g.xy*h.dy+g.dx;d.dy=g.yx*h.dx+g.yy*h.dy+g.dy}return d},_sandwich:function(b,d,f){return a.multiply(a.translate(d,f),b,a.translate(-d,-f))},scaleAt:function(b,d,f,g){switch(arguments.length){case 4:return a._sandwich(a.scale(b,d),f,g);case 3:return typeof f=="number"?a._sandwich(a.scale(b),d,f):a._sandwich(a.scale(b,d),f.x,f.y)}return a._sandwich(a.scale(b),d.x,d.y)},rotateAt:function(b,d,f){return arguments.length>
2?a._sandwich(a.rotate(b),d,f):a._sandwich(a.rotate(b),d.x,d.y)},rotategAt:function(b,d,f){return arguments.length>2?a._sandwich(a.rotateg(b),d,f):a._sandwich(a.rotateg(b),d.x,d.y)},skewXAt:function(b,d,f){return arguments.length>2?a._sandwich(a.skewX(b),d,f):a._sandwich(a.skewX(b),d.x,d.y)},skewXgAt:function(b,d,f){return arguments.length>2?a._sandwich(a.skewXg(b),d,f):a._sandwich(a.skewXg(b),d.x,d.y)},skewYAt:function(b,d,f){return arguments.length>2?a._sandwich(a.skewY(b),d,f):a._sandwich(a.skewY(b),
d.x,d.y)},skewYgAt:function(b,d,f){return arguments.length>2?a._sandwich(a.skewYg(b),d,f):a._sandwich(a.skewYg(b),d.x,d.y)}})}(),dojox.gfx.Matrix2D=dojox.gfx.matrix.Matrix2D;
dojo._hasResource["dojox.gfx._base"]||(dojo._hasResource["dojox.gfx._base"]=!0,dojo.provide("dojox.gfx._base"),function(){var a=dojox.gfx,b=a._base;a._hasClass=function(a,b){var c=a.getAttribute("className");return c&&(" "+c+" ").indexOf(" "+b+" ")>=0};a._addClass=function(a,b){var c=a.getAttribute("className")||"";if(!c||(" "+c+" ").indexOf(" "+b+" ")<0)a.setAttribute("className",c+(c?" ":"")+b)};a._removeClass=function(a,b){var c=a.getAttribute("className");c&&a.setAttribute("className",c.replace(RegExp("(^|\\s+)"+
b+"(\\s+|$)"),"$1$2"))};b._getFontMeasurements=function(){var a={"1em":0,"1ex":0,"100%":0,"12pt":0,"16px":0,"xx-small":0,"x-small":0,small:0,medium:0,large:0,"x-large":0,"xx-large":0};if(dojo.isIE)dojo.doc.documentElement.style.fontSize="100%";var b=dojo.create("div",{style:{position:"absolute",left:"0",top:"-100px",width:"30px",height:"1000em",borderWidth:"0",margin:"0",padding:"0",outline:"none",lineHeight:"1",overflow:"hidden"}},dojo.body()),c;for(c in a)b.style.fontSize=c,a[c]=Math.round(b.offsetHeight*
12/16)*16/12/1E3;dojo.body().removeChild(b);return a};var c=null;b._getCachedFontMeasurements=function(a){if(a||!c)c=b._getFontMeasurements();return c};var d=null,f={};b._getTextBox=function(a,b,c){var g,n,o=arguments.length;d||(d=dojo.create("div",{style:{position:"absolute",top:"-10000px",left:"0"}},dojo.body()));g=d;g.className="";n=g.style;n.borderWidth="0";n.margin="0";n.padding="0";n.outline="0";if(o>1&&b)for(var p in b)p in f||(n[p]=b[p]);if(o>2&&c)g.className=c;g.innerHTML=a;return g.getBoundingClientRect?
(g=g.getBoundingClientRect(),{l:g.left,t:g.top,w:g.width||g.right-g.left,h:g.height||g.bottom-g.top}):dojo.marginBox(g)};var g=0;b._getUniqueId=function(){var a;do a=dojo._scopeName+"Unique"+ ++g;while(dojo.byId(a));return a}}(),dojo.mixin(dojox.gfx,{defaultPath:{type:"path",path:""},defaultPolyline:{type:"polyline",points:[]},defaultRect:{type:"rect",x:0,y:0,width:100,height:100,r:0},defaultEllipse:{type:"ellipse",cx:0,cy:0,rx:200,ry:100},defaultCircle:{type:"circle",cx:0,cy:0,r:100},defaultLine:{type:"line",
x1:0,y1:0,x2:100,y2:100},defaultImage:{type:"image",x:0,y:0,width:0,height:0,src:""},defaultText:{type:"text",x:0,y:0,text:"",align:"start",decoration:"none",rotated:!1,kerning:!0},defaultTextPath:{type:"textpath",text:"",align:"start",decoration:"none",rotated:!1,kerning:!0},defaultStroke:{type:"stroke",color:"black",style:"solid",width:1,cap:"butt",join:4},defaultLinearGradient:{type:"linear",x1:0,y1:0,x2:100,y2:100,colors:[{offset:0,color:"black"},{offset:1,color:"white"}]},defaultRadialGradient:{type:"radial",
cx:0,cy:0,r:100,colors:[{offset:0,color:"black"},{offset:1,color:"white"}]},defaultPattern:{type:"pattern",x:0,y:0,width:0,height:0,src:""},defaultFont:{type:"font",style:"normal",variant:"normal",weight:"normal",size:"10pt",family:"serif"},getDefault:function(){var a={};return function(b){var c=a[b];if(c)return new c;c=a[b]=new Function;c.prototype=dojox.gfx["default"+b];return new c}}(),normalizeColor:function(a){return a instanceof dojo.Color?a:new dojo.Color(a)},normalizeParameters:function(a,
b){if(b){var c={},d;for(d in a)d in b&&!(d in c)&&(a[d]=b[d])}return a},makeParameters:function(a,b){if(!b)return dojo.delegate(a);var c={},d;for(d in a)d in c||(c[d]=dojo.clone(d in b?b[d]:a[d]));return c},formatNumber:function(a,b){var c=a.toString();if(c.indexOf("e")>=0)c=a.toFixed(4);else{var d=c.indexOf(".");d>=0&&c.length-d>5&&(c=a.toFixed(4))}return a<0?c:b?" "+c:c},makeFontString:function(a){return a.style+" "+a.variant+" "+a.weight+" "+a.size+" "+a.family},splitFontString:function(a){var b=
dojox.gfx.getDefault("Font"),a=a.split(/\s+/);if(!(a.length<5)){b.style=a[0];b.variant=a[1];b.weight=a[2];var c=a[3].indexOf("/");b.size=c<0?a[3]:a[3].substring(0,c);var d=4;c<0&&(a[4]=="/"?d=6:a[4].charAt(0)=="/"&&(d=5));if(d<a.length)b.family=a.slice(d).join(" ")}return b},cm_in_pt:72/2.54,mm_in_pt:7.2/2.54,px_in_pt:function(){return dojox.gfx._base._getCachedFontMeasurements()["12pt"]/12},pt2px:function(a){return a*dojox.gfx.px_in_pt()},px2pt:function(a){return a/dojox.gfx.px_in_pt()},normalizedLength:function(a){if(a.length==
0)return 0;if(a.length>2){var b=dojox.gfx.px_in_pt(),c=parseFloat(a);switch(a.slice(-2)){case "px":return c;case "pt":return c*b;case "in":return c*72*b;case "pc":return c*12*b;case "mm":return c*dojox.gfx.mm_in_pt*b;case "cm":return c*dojox.gfx.cm_in_pt*b}}return parseFloat(a)},pathVmlRegExp:/([A-Za-z]+)|(\d+(\.\d+)?)|(\.\d+)|(-\d+(\.\d+)?)|(-\.\d+)/g,pathSvgRegExp:/([A-Za-z])|(\d+(\.\d+)?)|(\.\d+)|(-\d+(\.\d+)?)|(-\.\d+)/g,equalSources:function(a,b){return a&&b&&a==b},switchTo:function(a){var b=
dojox.gfx[a];b&&dojo.forEach("Group,Rect,Ellipse,Circle,Line,Polyline,Image,Text,Path,TextPath,Surface,createSurface".split(","),function(a){dojox.gfx[a]=b[a]})}}));
dojo._hasResource["dojox.gfx"]||(dojo._hasResource["dojox.gfx"]=!0,dojo.provide("dojox.gfx"),dojo.loadInit(function(){for(var a=dojo.getObject("dojox.gfx",!0),b,c;!a.renderer;){if(dojo.config.forceGfxRenderer){dojox.gfx.renderer=dojo.config.forceGfxRenderer;break}for(var d=(typeof dojo.config.gfxRenderer=="string"?dojo.config.gfxRenderer:"svg,vml,canvas,silverlight").split(","),f=0;f<d.length;++f){switch(d[f]){case "svg":if("SVGAngle"in dojo.global)dojox.gfx.renderer="svg";break;case "vml":if(dojo.isIE)dojox.gfx.renderer=
"vml";break;case "silverlight":try{dojo.isIE?(b=new ActiveXObject("AgControl.AgControl"))&&b.IsVersionSupported("1.0")&&(c=!0):navigator.plugins["Silverlight Plug-In"]&&(c=!0)}catch(g){c=!1}finally{b=null}if(c)dojox.gfx.renderer="silverlight";break;case "canvas":if(dojo.global.CanvasRenderingContext2D)dojox.gfx.renderer="canvas"}if(a.renderer)break}break}dojo.config.isDebug&&console.log("gfx renderer = "+a.renderer);a[a.renderer]?a.switchTo(a.renderer):(a.loadAndSwitch=a.renderer,dojo.require("dojox.gfx."+
a.renderer))}));
dojo._hasResource["dojox.charting.axis2d.common"]||(dojo._hasResource["dojox.charting.axis2d.common"]=!0,dojo.provide("dojox.charting.axis2d.common"),function(){var a=dojox.gfx,b=function(a){a.marginLeft="0px";a.marginTop="0px";a.marginRight="0px";a.marginBottom="0px";a.paddingLeft="0px";a.paddingTop="0px";a.paddingRight="0px";a.paddingBottom="0px";a.borderLeftWidth="0px";a.borderTopWidth="0px";a.borderRightWidth="0px";a.borderBottomWidth="0px"};dojo.mixin(dojox.charting.axis2d.common,{createText:{gfx:function(a,
b,f,g,h,k,l,m){return b.createText({x:f,y:g,text:k,align:h}).setFont(l).setFill(m)},html:function(c,d,f,g,h,k,l,m,n){var d=dojo.doc.createElement("div"),o=d.style,p;b(o);o.font=l;d.innerHTML=String(k).replace(/\s/g,"&nbsp;");o.color=m;o.position="absolute";o.left="-10000px";dojo.body().appendChild(d);k=a.normalizedLength(a.splitFontString(l).size);if(!n)d.getBoundingClientRect?(p=d.getBoundingClientRect(),p=p.width||p.right-p.left):p=dojo.marginBox(d).w;dojo.body().removeChild(d);o.position="relative";
if(n)switch(o.width=n+"px",h){case "middle":o.textAlign="center";o.left=f-n/2+"px";break;case "end":o.textAlign="right";o.left=f-n+"px";break;default:o.left=f+"px",o.textAlign="left"}else switch(h){case "middle":o.left=Math.floor(f-p/2)+"px";break;case "end":o.left=Math.floor(f-p)+"px";break;default:o.left=Math.floor(f)+"px"}o.top=Math.floor(g-k)+"px";o.whiteSpace="nowrap";f=dojo.doc.createElement("div");g=f.style;b(g);g.width="0px";g.height="0px";f.appendChild(d);c.node.insertBefore(f,c.node.firstChild);
return f}}})}());
dojo._hasResource["dojox.charting.Element"]||(dojo._hasResource["dojox.charting.Element"]=!0,dojo.provide("dojox.charting.Element"),dojo.declare("dojox.charting.Element",null,{chart:null,group:null,htmlElements:null,dirty:!0,constructor:function(a){this.chart=a;this.group=null;this.htmlElements=[];this.dirty=!0;this.trailingSymbol="...";this._events=[]},createGroup:function(a){if(!a)a=this.chart.surface;if(!this.group)this.group=a.createGroup();return this},purgeGroup:function(){this.destroyHtmlElements();if(this.group)this.group.clear(),
this.group.removeShape(),this.group=null;this.dirty=!0;if(this._events.length)dojo.forEach(this._events,function(a){a.shape.disconnect(a.handle)}),this._events=[];return this},cleanGroup:function(a){this.destroyHtmlElements();if(!a)a=this.chart.surface;this.group?this.group.clear():this.group=a.createGroup();this.dirty=!0;return this},destroyHtmlElements:function(){if(this.htmlElements.length)dojo.forEach(this.htmlElements,dojo.destroy),this.htmlElements=[]},destroy:function(){this.purgeGroup()},
getTextWidth:function(a,b){return dojox.gfx._base._getTextBox(a,{font:b}).w||0},getTextWithLimitLength:function(a,b,c,d){if(!a||a.length<=0)return{text:"",truncated:d||!1};if(!c||c<=0)return{text:a,truncated:d||!1};var f=a.substring(0,1)+this.trailingSymbol,g=this.getTextWidth(f,b);if(c<=g)return{text:f,truncated:!0};if(this.getTextWidth(a,b)<=c)return{text:a,truncated:d||!1};else{d=0;for(f=a.length;d<f;){if(f-d<=2){for(;this.getTextWidth(a.substring(0,d)+this.trailingSymbol,b)>c;)d-=1;return{text:a.substring(0,
d)+this.trailingSymbol,truncated:!0}}g=d+Math.round((f-d)*0.618);this.getTextWidth(a.substring(0,g),b)<c?d=g:f=g}}},getTextWithLimitCharCount:function(a,b,c,d){return!a||a.length<=0?{text:"",truncated:d||!1}:!c||c<=0||a.length<=c?{text:a,truncated:d||!1}:{text:a.substring(0,c)+this.trailingSymbol,truncated:!0}},_plotFill:function(a,b,c){if(!a||!a.type||!a.space)return a;var d=a.space;switch(a.type){case "linear":if(d==="plot"||d==="shapeX"||d==="shapeY"){a=dojox.gfx.makeParameters(dojox.gfx.defaultLinearGradient,
a);a.space=d;if(d==="plot"||d==="shapeX"){var f=b.height-c.t-c.b;a.y1=c.t+f*a.y1/100;a.y2=c.t+f*a.y2/100}if(d==="plot"||d==="shapeY")f=b.width-c.l-c.r,a.x1=c.l+f*a.x1/100,a.x2=c.l+f*a.x2/100}break;case "radial":if(d==="plot")a=dojox.gfx.makeParameters(dojox.gfx.defaultRadialGradient,a),a.space=d,d=b.width-c.l-c.r,b=b.height-c.t-c.b,a.cx=c.l+d*a.cx/100,a.cy=c.t+b*a.cy/100,a.r=a.r*Math.sqrt(d*d+b*b)/200;break;case "pattern":if(d==="plot"||d==="shapeX"||d==="shapeY"){a=dojox.gfx.makeParameters(dojox.gfx.defaultPattern,
a);a.space=d;if(d==="plot"||d==="shapeX")f=b.height-c.t-c.b,a.y=c.t+f*a.y/100,a.height=f*a.height/100;if(d==="plot"||d==="shapeY")f=b.width-c.l-c.r,a.x=c.l+f*a.x/100,a.width=f*a.width/100}}return a},_shapeFill:function(a,b){if(!a||!a.space)return a;var c=a.space;switch(a.type){case "linear":if(c==="shape"||c==="shapeX"||c==="shapeY"){a=dojox.gfx.makeParameters(dojox.gfx.defaultLinearGradient,a);a.space=c;if(c==="shape"||c==="shapeX"){var d=b.width;a.x1=b.x+d*a.x1/100;a.x2=b.x+d*a.x2/100}if(c==="shape"||
c==="shapeY")d=b.height,a.y1=b.y+d*a.y1/100,a.y2=b.y+d*a.y2/100}break;case "radial":if(c==="shape")a=dojox.gfx.makeParameters(dojox.gfx.defaultRadialGradient,a),a.space=c,a.cx=b.x+b.width/2,a.cy=b.y+b.height/2,a.r=a.r*b.width/200;break;case "pattern":if(c==="shape"||c==="shapeX"||c==="shapeY"){a=dojox.gfx.makeParameters(dojox.gfx.defaultPattern,a);a.space=c;if(c==="shape"||c==="shapeX")d=b.width,a.x=b.x+d*a.x/100,a.width=d*a.width/100;if(c==="shape"||c==="shapeY")d=b.height,a.y=b.y+d*a.y/100,a.height=
d*a.height/100}}return a},_pseudoRadialFill:function(a,b,c,d,f){if(!a||a.type!=="radial"||a.space!=="shape")return a;var g=a.space,a=dojox.gfx.makeParameters(dojox.gfx.defaultRadialGradient,a);a.space=g;if(arguments.length<4)return a.cx=b.x,a.cy=b.y,a.r=a.r*c/100,a;g=arguments.length<5?d:(f+d)/2;return{type:"linear",x1:b.x,y1:b.y,x2:b.x+a.r*c*Math.cos(g)/100,y2:b.y+a.r*c*Math.sin(g)/100,colors:a.colors}}}));
dojo._hasResource["dojox.charting.axis2d.Base"]||(dojo._hasResource["dojox.charting.axis2d.Base"]=!0,dojo.provide("dojox.charting.axis2d.Base"),dojo.declare("dojox.charting.axis2d.Base",dojox.charting.Element,{constructor:function(a,b){this.vertical=b&&b.vertical},clear:function(){return this},initialized:function(){return!1},calculate:function(){return this},getScaler:function(){return null},getTicks:function(){return null},getOffsets:function(){return{l:0,r:0,t:0,b:0}},render:function(){this.dirty=
!1;return this}}));
dojo._hasResource["dojox.lang.functional.lambda"]||(dojo._hasResource["dojox.lang.functional.lambda"]=!0,dojo.provide("dojox.lang.functional.lambda"),function(){var a=dojox.lang.functional,b={},c="ab".split(/a*/).length>1?String.prototype.split:function(a){var b=this.split.call(this,a);(a=a.exec(this))&&a.index==0&&b.unshift("");return b},d=function(a){var b=[],d=c.call(a,/\s*->\s*/m);if(d.length>1)for(;d.length;)a=d.pop(),b=d.pop().split(/\s*,\s*|\s+/m),d.length&&d.push("(function("+b+"){return ("+
a+")})");else if(a.match(/\b_\b/))b=["_"];else{var d=a.match(/^\s*(?:[+*\/%&|\^\.=<>]|!=)/m),f=a.match(/[+\-*\/%&|\^\.=<>!]\s*$/m);if(d||f)d&&(b.push("$1"),a="$1"+a),f&&(b.push("$2"),a+="$2");else{var d=a.replace(/(?:\b[A-Z]|\.[a-zA-Z_$])[a-zA-Z_$\d]*|[a-zA-Z_$][a-zA-Z_$\d]*:|this|true|false|null|undefined|typeof|instanceof|in|delete|new|void|arguments|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|eval|isFinite|isNaN|parseFloat|parseInt|unescape|dojo|dijit|dojox|window|document|'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"/g,
"").match(/([a-z_$][a-z_$\d]*)/gi)||[],m={};dojo.forEach(d,function(a){a in m||(b.push(a),m[a]=1)})}}return{args:b,body:a}},f=function(b){return b.length?function(){var c=b.length-1,d=a.lambda(b[c]).apply(this,arguments);for(--c;c>=0;--c)d=a.lambda(b[c]).call(this,d);return d}:function(a){return a}};dojo.mixin(a,{rawLambda:function(a){return d(a)},buildLambda:function(a){a=d(a);return"function("+a.args.join(",")+"){return ("+a.body+");}"},lambda:function(a){if(typeof a=="function")return a;if(a instanceof
Array)return f(a);if(a in b)return b[a];a=d(a);return b[a]=new Function(a.args,"return ("+a.body+");")},clearLambdaCache:function(){b={}}})}());
dojo._hasResource["dojox.lang.functional.array"]||(dojo._hasResource["dojox.lang.functional.array"]=!0,dojo.provide("dojox.lang.functional.array"),function(){var a=dojo,b=dojox.lang.functional,c={};a.mixin(b,{filter:function(d,f,g){typeof d=="string"&&(d=d.split(""));var g=g||a.global,f=b.lambda(f),h=[],k,l,m;if(a.isArray(d))for(l=0,m=d.length;l<m;++l)k=d[l],f.call(g,k,l,d)&&h.push(k);else if(typeof d.hasNext=="function"&&typeof d.next=="function")for(l=0;d.hasNext();)k=d.next(),f.call(g,k,l++,d)&&
h.push(k);else for(l in d)l in c||(k=d[l],f.call(g,k,l,d)&&h.push(k));return h},forEach:function(d,f,g){typeof d=="string"&&(d=d.split(""));var g=g||a.global,f=b.lambda(f),h,k;if(a.isArray(d))for(h=0,k=d.length;h<k;f.call(g,d[h],h,d),++h);else if(typeof d.hasNext=="function"&&typeof d.next=="function")for(h=0;d.hasNext();f.call(g,d.next(),h++,d));else for(h in d)h in c||f.call(g,d[h],h,d);return g},map:function(d,f,g){typeof d=="string"&&(d=d.split(""));var g=g||a.global,f=b.lambda(f),h,k,l;if(a.isArray(d)){h=
Array(k=d.length);for(l=0;l<k;h[l]=f.call(g,d[l],l,d),++l);}else if(typeof d.hasNext=="function"&&typeof d.next=="function"){h=[];for(l=0;d.hasNext();h.push(f.call(g,d.next(),l++,d)));}else for(l in h=[],d)l in c||h.push(f.call(g,d[l],l,d));return h},every:function(d,f,g){typeof d=="string"&&(d=d.split(""));var g=g||a.global,f=b.lambda(f),h,k;if(a.isArray(d))for(h=0,k=d.length;h<k;++h){if(!f.call(g,d[h],h,d))return!1}else if(typeof d.hasNext=="function"&&typeof d.next=="function")for(h=0;d.hasNext();){if(!f.call(g,
d.next(),h++,d))return!1}else for(h in d)if(!(h in c)&&!f.call(g,d[h],h,d))return!1;return!0},some:function(d,f,g){typeof d=="string"&&(d=d.split(""));var g=g||a.global,f=b.lambda(f),h,k;if(a.isArray(d))for(h=0,k=d.length;h<k;++h){if(f.call(g,d[h],h,d))return!0}else if(typeof d.hasNext=="function"&&typeof d.next=="function")for(h=0;d.hasNext();){if(f.call(g,d.next(),h++,d))return!0}else for(h in d)if(!(h in c)&&f.call(g,d[h],h,d))return!0;return!1}})}());
dojo._hasResource["dojox.lang.functional.object"]||(dojo._hasResource["dojox.lang.functional.object"]=!0,dojo.provide("dojox.lang.functional.object"),function(){var a=dojo,b=dojox.lang.functional,c={};a.mixin(b,{keys:function(a){var b=[],g;for(g in a)g in c||b.push(g);return b},values:function(a){var b=[],g;for(g in a)g in c||b.push(a[g]);return b},filterIn:function(d,f,g){var g=g||a.global,f=b.lambda(f),h={},k,l;for(l in d)l in c||(k=d[l],f.call(g,k,l,d)&&(h[l]=k));return h},forIn:function(d,f,g){var g=
g||a.global,f=b.lambda(f),h;for(h in d)h in c||f.call(g,d[h],h,d);return g},mapIn:function(d,f,g){var g=g||a.global,f=b.lambda(f),h={},k;for(k in d)k in c||(h[k]=f.call(g,d[k],k,d));return h}})}());dojo._hasResource["dojox.lang.functional"]||(dojo._hasResource["dojox.lang.functional"]=!0,dojo.provide("dojox.lang.functional"));
dojo._hasResource["dojox.lang.utils"]||(dojo._hasResource["dojox.lang.utils"]=!0,dojo.provide("dojox.lang.utils"),function(){var a={},b=dojox.lang.utils,c=Object.prototype.toString,d=function(a){if(a)switch(c.call(a)){case "[object Array]":return a.slice(0);case "[object Object]":return dojo.delegate(a)}return a};dojo.mixin(b,{coerceType:function(a,b){switch(typeof a){case "number":return Number(eval("("+b+")"));case "string":return String(b);case "boolean":return Boolean(eval("("+b+")"))}return eval("("+
b+")")},updateWithObject:function(c,g,h){if(!g)return c;for(var k in c)if(k in g&&!(k in a)){var l=c[k];l&&typeof l=="object"?b.updateWithObject(l,g[k],h):c[k]=h?b.coerceType(l,g[k]):d(g[k])}return c},updateWithPattern:function(c,g,h,k){if(!g||!h)return c;for(var l in h)l in g&&!(l in a)&&(c[l]=k?b.coerceType(h[l],g[l]):d(g[l]));return c},merge:function(a,d){if(d){var h=c.call(a),k=c.call(d),l,m;switch(k){case "[object Array]":if(k==h){h=Array(Math.max(a.length,d.length));for(l=0,k=h.length;l<k;++l)h[l]=
b.merge(a[l],d[l]);return h}return d.slice(0);case "[object Object]":if(k==h&&a){h=dojo.delegate(a);for(l in d)l in a?(k=a[l],m=d[l],m!==k&&(h[l]=b.merge(k,m))):h[l]=dojo.clone(d[l]);return h}return dojo.clone(d)}}return d}})}());
dojo._hasResource["dojox.charting.axis2d.Invisible"]||(dojo._hasResource["dojox.charting.axis2d.Invisible"]=!0,dojo.provide("dojox.charting.axis2d.Invisible"),function(){var a=dojox.lang.functional,b=dojox.lang.utils,c=dojox.gfx,d=dojox.charting.scaler.linear;dojo.declare("dojox.charting.axis2d.Invisible",dojox.charting.axis2d.Base,{defaultParams:{vertical:!1,fixUpper:"none",fixLower:"none",natural:!1,leftBottom:!0,includeZero:!1,fixed:!0,majorLabels:!0,minorTicks:!0,minorLabels:!0,microTicks:!1,
rotation:0},optionalParams:{min:0,max:1,from:0,to:1,majorTickStep:4,minorTickStep:2,microTickStep:1,labels:[],labelFunc:null,maxLabelSize:0,maxLabelCharCount:0,trailingSymbol:null},constructor:function(a,c){this.opt=dojo.clone(this.defaultParams);b.updateWithObject(this.opt,c);b.updateWithPattern(this.opt,c,this.optionalParams)},dependOnData:function(){return!("min"in this.opt)||!("max"in this.opt)},clear:function(){delete this.scaler;delete this.ticks;this.dirty=!0;return this},initialized:function(){return"scaler"in
this&&!(this.dirty&&this.dependOnData())},setWindow:function(a,b){this.scale=a;this.offset=b;return this.clear()},getWindowScale:function(){return"scale"in this?this.scale:1},getWindowOffset:function(){return"offset"in this?this.offset:0},_groupLabelWidth:function(b,c,d){if(!b.length)return 0;dojo.isObject(b[0])&&(b=a.map(b,function(a){return a.text}));d&&(b=a.map(b,function(a){return dojo.trim(a).length==0?"":a.substring(0,d)+this.trailingSymbol},this));b=b.join("<br>");return dojox.gfx._base._getTextBox(b,
{font:c}).w||0},calculate:function(a,b,h,k){if(this.initialized())return this;var l=this.opt;this.labels="labels"in l?l.labels:k;this.scaler=d.buildScaler(a,b,h,l);k=this.scaler.bounds;if("scale"in this){l.from=k.lower+this.offset;l.to=(k.upper-k.lower)/this.scale+l.from;if(!isFinite(l.from)||isNaN(l.from)||!isFinite(l.to)||isNaN(l.to)||l.to-l.from>=k.upper-k.lower)delete l.from,delete l.to,delete this.scale,delete this.offset;else{if(l.from<k.lower)l.to+=k.lower-l.from,l.from=k.lower;else if(l.to>
k.upper)l.from+=k.upper-l.to,l.to=k.upper;this.offset=l.from-k.lower}this.scaler=d.buildScaler(a,b,h,l);k=this.scaler.bounds;this.scale==1&&this.offset==0&&(delete this.scale,delete this.offset)}var b=this.chart.theme.axis,m=0,a=l.rotation%360,n=l.font||b.majorTick&&b.majorTick.font||b.tick&&b.tick.font,b=n?c.normalizedLength(c.splitFontString(n).size):0,h=Math.abs(Math.cos(a*Math.PI/180)),o=Math.abs(Math.sin(a*Math.PI/180));a<0&&(a+=360);if(b){if(this.vertical?a!=0&&a!=180:a!=90&&a!=270){if(this.labels)m=
this._groupLabelWidth(this.labels,n,l.maxLabelCharCount);else{var p=Math.ceil(Math.log(Math.max(Math.abs(k.from),Math.abs(k.to)))/Math.LN10),m=[];(k.from<0||k.to<0)&&m.push("-");m.push(dojo.string.rep("9",p));k=Math.floor(Math.log(k.to-k.from)/Math.LN10);k>0&&(m.push("."),m.push(dojo.string.rep("9",k)));m=dojox.gfx._base._getTextBox(m.join(""),{font:n}).w}m=l.maxLabelSize?Math.min(l.maxLabelSize,m):m}else m=b;switch(a){case 0:case 90:case 180:case 270:break;default:k=Math.sqrt(m*m+b*b),m=Math.min(k,
this.vertical?b*h+m*o:m*h+b*o)}}this.scaler.minMinorStep=m+4;this.ticks=d.buildTicks(this.scaler,l);return this},getScaler:function(){return this.scaler},getTicks:function(){return this.ticks}})}());
if(!dojo._hasResource["dojo.colors"])dojo._hasResource["dojo.colors"]=!0,dojo.provide("dojo.colors"),dojo.getObject("colors",!0,dojo),function(){var a=function(a,b,f){f<0&&++f;f>1&&--f;var g=6*f;return g<1?a+(b-a)*g:2*f<1?b:3*f<2?a+(b-a)*(2/3-f)*6:a};dojo.colorFromRgb=function(b,d){var f=b.toLowerCase().match(/^(rgba?|hsla?)\(([\s\.\-,%0-9]+)\)/);if(f){var g=f[2].split(/\s*,\s*/),h=g.length,f=f[1];if(f=="rgb"&&h==3||f=="rgba"&&h==4){f=g[0];return f.charAt(f.length-1)=="%"?(f=dojo.map(g,function(a){return parseFloat(a)*
2.56}),h==4&&(f[3]=g[3]),dojo.colorFromArray(f,d)):dojo.colorFromArray(g,d)}if(f=="hsl"&&h==3||f=="hsla"&&h==4){var f=(parseFloat(g[0])%360+360)%360/360,k=parseFloat(g[1])/100,l=parseFloat(g[2])/100,k=l<=0.5?l*(k+1):l+k-l*k,l=2*l-k,f=[a(l,k,f+1/3)*256,a(l,k,f)*256,a(l,k,f-1/3)*256,1];h==4&&(f[3]=g[3]);return dojo.colorFromArray(f,d)}}return null};var b=function(a,b,f){a=Number(a);return isNaN(a)?f:a<b?b:a>f?f:a};dojo.Color.prototype.sanitize=function(){this.r=Math.round(b(this.r,0,255));this.g=Math.round(b(this.g,
0,255));this.b=Math.round(b(this.b,0,255));this.a=b(this.a,0,1);return this}}(),dojo.colors.makeGrey=function(a,b){return dojo.colorFromArray([a,a,a,b])},dojo.mixin(dojo.Color.named,{aliceblue:[240,248,255],antiquewhite:[250,235,215],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],blanchedalmond:[255,235,205],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],
cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,
206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,
240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,
0,255],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],oldlace:[253,245,230],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,
232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,
250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],thistle:[216,191,216],tomato:[255,99,71],transparent:[0,0,0,0],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],whitesmoke:[245,245,245],yellowgreen:[154,205,50]});
dojo._hasResource["dojox.charting.axis2d.Default"]||(dojo._hasResource["dojox.charting.axis2d.Default"]=!0,dojo.provide("dojox.charting.axis2d.Default"),function(){var a=dojox.charting,b=dojox.lang.utils,c=dojox.gfx,d=a.scaler.linear;dojo.declare("dojox.charting.axis2d.Default",dojox.charting.axis2d.Invisible,{defaultParams:{vertical:!1,fixUpper:"none",fixLower:"none",natural:!1,leftBottom:!0,includeZero:!1,fixed:!0,majorLabels:!0,minorTicks:!0,minorLabels:!0,microTicks:!1,rotation:0,htmlLabels:!0},
optionalParams:{min:0,max:1,from:0,to:1,majorTickStep:4,minorTickStep:2,microTickStep:1,labels:[],labelFunc:null,maxLabelSize:0,maxLabelCharCount:0,trailingSymbol:null,stroke:{},majorTick:{},minorTick:{},microTick:{},tick:{},font:"",fontColor:"",title:"",titleGap:0,titleFont:"",titleFontColor:"",titleOrientation:""},constructor:function(a,c){this.opt=dojo.clone(this.defaultParams);b.updateWithObject(this.opt,c);b.updateWithPattern(this.opt,c,this.optionalParams)},getOffsets:function(){var b=this.scaler,
d={l:0,r:0,t:0,b:0};if(!b)return d;var h=this.opt,k=0,l=a.scaler.common.getNumericLabel,m=b.major,b=b.minor,n=this.chart.theme.axis,o=h.font||n.majorTick&&n.majorTick.font||n.tick&&n.tick.font,p=h.titleFont||n.tick&&n.tick.titleFont,n=h.titleGap==0?0:h.titleGap||n.tick&&n.tick.titleGap||15,q=this.chart.theme.getTick("major",h),s=this.chart.theme.getTick("minor",h),t=o?c.normalizedLength(c.splitFontString(o).size):0,p=p?c.normalizedLength(c.splitFontString(p).size):0,r=h.rotation%360,u=h.leftBottom,
z=Math.abs(Math.cos(r*Math.PI/180)),A=Math.abs(Math.sin(r*Math.PI/180));this.trailingSymbol=h.trailingSymbol===void 0||h.trailingSymbol===null?this.trailingSymbol:h.trailingSymbol;r<0&&(r+=360);if(t){k=this.labels?this._groupLabelWidth(this.labels,o,h.maxLabelCharCount):this._groupLabelWidth([l(m.start,m.prec,h),l(m.start+m.count*m.tick,m.prec,h),l(b.start,b.prec,h),l(b.start+b.count*b.tick,b.prec,h)],o,h.maxLabelCharCount);k=h.maxLabelSize?Math.min(h.maxLabelSize,k):k;if(this.vertical)switch(l=u?
"l":"r",r){case 0:case 180:d[l]=k;d.t=d.b=t/2;break;case 90:case 270:d[l]=t;d.t=d.b=k/2;break;default:r<=45||180<r&&r<=225?(d[l]=t*A/2+k*z,d[u?"t":"b"]=t*z/2+k*A,d[u?"b":"t"]=t*z/2):r>315||180>r&&r>135?(d[l]=t*A/2+k*z,d[u?"b":"t"]=t*z/2+k*A,d[u?"t":"b"]=t*z/2):r<90||180<r&&r<270?(d[l]=t*A+k*z,d[u?"t":"b"]=t*z+k*A):(d[l]=t*A+k*z,d[u?"b":"t"]=t*z+k*A)}else switch(l=u?"b":"t",r){case 0:case 180:d[l]=t;d.l=d.r=k/2;break;case 90:case 270:d[l]=k;d.l=d.r=t/2;break;default:45<=r&&r<=90||225<=r&&r<=270?(d[l]=
t*A/2+k*z,d[u?"r":"l"]=t*z/2+k*A,d[u?"l":"r"]=t*z/2):90<=r&&r<=135||270<=r&&r<=315?(d[l]=t*A/2+k*z,d[u?"l":"r"]=t*z/2+k*A,d[u?"r":"l"]=t*z/2):r<45||180<r&&r<135?(d[l]=t*A+k*z,d[u?"r":"l"]=t*z+k*A):(d[l]=t*A+k*z,d[u?"l":"r"]=t*z+k*A)}d[l]+=4+Math.max(q.length,s.length)+(h.title?p+n:0)}if(k)this._cachedLabelWidth=k;return d},render:function(b,g){var h,k,l,m,n,o,p,q,s,t,r,u,z,A;if(!this.dirty)return this;var v=this.opt;s=this.chart.theme.axis;var w=v.leftBottom,C=v.rotation%360,D=0,B,E,G=v.font||s.majorTick&&
s.majorTick.font||s.tick&&s.tick.font,H=v.titleFont||s.tick&&s.tick.titleFont,N=v.fontColor||s.majorTick&&s.majorTick.fontColor||s.tick&&s.tick.fontColor||"black",P=v.titleFontColor||s.tick&&s.tick.titleFontColor||"black";n=v.titleGap==0?0:v.titleGap||s.tick&&s.tick.titleGap||15;var D=v.titleOrientation||s.tick&&s.tick.titleOrientation||"axis",L=this.chart.theme.getTick("major",v),O=this.chart.theme.getTick("minor",v),Q=this.chart.theme.getTick("micro",v);Math.max(L.length,O.length,Q.length);var X=
"stroke"in v?v.stroke:s.stroke,J=G?c.normalizedLength(c.splitFontString(G).size):0;o=Math.abs(Math.cos(C*Math.PI/180));B=Math.abs(Math.sin(C*Math.PI/180));var V=H?c.normalizedLength(c.splitFontString(H).size):0;C<0&&(C+=360);if(this.vertical){z=b.height-g.b;A=void 0;r=g.t;u=void 0;s=(b.height-g.b+g.t)/2;t=void 0;B=J*B+(this._cachedLabelWidth||0)*o+4+Math.max(L.length,O.length)+V+n;p=0;q=-1;h=0;k=0;n=1;o=0;l=4;m=0;switch(C){case 0:E="end";k=J*0.4;break;case 90:E="middle";h=-J;break;case 180:E="start";
k=-J*0.4;break;case 270:E="middle";break;default:C<45?(E="end",k=J*0.4):C<90?(E="end",k=J*0.4):C<135?E="start":C<225?(E="start",k=-J*0.4):C<270?(E="start",h=w?0:J*0.4):C<315?(E="end",h=w?0:J*0.4):(E="end",k=J*0.4)}if(w)A=u=g.l,D=D&&D=="away"?90:270,t=g.l-B+(D==270?V:0),n=-1,l=-l;else switch(A=u=b.width-g.r,D=D&&D=="axis"?90:270,t=b.width-g.r+B-(D==270?0:V),E){case "start":E="end";break;case "end":E="start";break;case "middle":h+=J}}else{A=g.l;z=void 0;u=b.width-g.r;r=void 0;t=(b.width-g.r+g.l)/2;
s=void 0;B=J*o+(this._cachedLabelWidth||0)*B+4+Math.max(L.length,O.length)+V+n;p=1;q=0;h=0;k=0;n=0;o=1;l=0;m=4;switch(C){case 0:E="middle";k=J;break;case 90:E="start";h=-J*0.4;break;case 180:E="middle";break;case 270:E="end";h=J*0.4;break;default:C<45?(E="start",k=w?J:0):C<135?(E="start",h=-J*0.4):C<180?(E="start",k=w?0:-J):C<225?(E="end",k=w?0:-J):C<315?(E="end",k=w?J*0.4:0):(E="end",k=w?J:0)}if(w)z=r=b.height-g.b,D=D&&D=="axis"?180:0,s=b.height-g.b+B-(D?V:0);else switch(z=r=g.t,D=D&&D=="away"?180:
0,s=g.t-B+(D?0:V),o=-1,m=-m,E){case "start":E="end";break;case "end":E="start";break;case "middle":k-=J}}this.cleanGroup();try{var F=this.group,K=this.scaler,T=this.ticks,R,U=d.getTransformerFromModel(this.scaler),M=!D&&!C&&this.opt.htmlLabels&&!dojo.isIE&&!dojo.isOpera?"html":"gfx",I=n*L.length,S=o*L.length;F.createLine({x1:A,y1:z,x2:u,y2:r}).setStroke(X);if(v.title){var W=a.axis2d.common.createText[M](this.chart,F,t,s,"middle",v.title,H,P);M=="html"?this.htmlElements.push(W):W.setTransform(c.matrix.rotategAt(D,
t,s))}dojo.forEach(T.major,function(b){var d=U(b.value),f=A+p*d,g=z+q*d;F.createLine({x1:f,y1:g,x2:f+I,y2:g+S}).setStroke(L);if(b.label){var o=v.maxLabelCharCount?this.getTextWithLimitCharCount(b.label,G,v.maxLabelCharCount):{text:b.label,truncated:!1},o=v.maxLabelSize?this.getTextWithLimitLength(o.text,G,v.maxLabelSize,o.truncated):o,d=a.axis2d.common.createText[M](this.chart,F,f+I+l+(C?0:h),g+S+m+(C?0:k),E,o.text,G,N);o.truncated&&this.labelTooltip(d,this.chart,b.label,o.text,G,M);M=="html"?this.htmlElements.push(d):
C&&d.setTransform([{dx:h,dy:k},c.matrix.rotategAt(C,f+I+l,g+S+m)])}},this);I=n*O.length;S=o*O.length;R=K.minMinorStep<=K.minor.tick*K.bounds.scale;dojo.forEach(T.minor,function(b){var d=U(b.value),f=A+p*d,g=z+q*d;F.createLine({x1:f,y1:g,x2:f+I,y2:g+S}).setStroke(O);if(R&&b.label){var o=v.maxLabelCharCount?this.getTextWithLimitCharCount(b.label,G,v.maxLabelCharCount):{text:b.label,truncated:!1},o=v.maxLabelSize?this.getTextWithLimitLength(o.text,G,v.maxLabelSize,o.truncated):o,d=a.axis2d.common.createText[M](this.chart,
F,f+I+l+(C?0:h),g+S+m+(C?0:k),E,o.text,G,N);o.truncated&&this.labelTooltip(d,this.chart,b.label,o.text,G,M);M=="html"?this.htmlElements.push(d):C&&d.setTransform([{dx:h,dy:k},c.matrix.rotategAt(C,f+I+l,g+S+m)])}},this);I=n*Q.length;S=o*Q.length;dojo.forEach(T.micro,function(a){var b=U(a.value),a=A+p*b,b=z+q*b;F.createLine({x1:a,y1:b,x2:a+I,y2:b+S}).setStroke(Q)},this)}catch(Y){}this.dirty=!1;return this},labelTooltip:function(a,b,d,k,l,m){if(dijit&&dijit.Tooltip){var n={type:"rect"},o=["above","below"],
k=dojox.gfx._base._getTextBox(k,{font:l}).w||0;fontHeight=l?c.normalizedLength(c.splitFontString(l).size):0;m=="html"?(dojo.mixin(n,dojo.coords(a.firstChild,!0)),n.width=Math.ceil(k),n.height=Math.ceil(fontHeight),this._events.push({shape:dojo,handle:dojo.connect(a.firstChild,"onmouseover",this,function(){dijit.showTooltip(d,n,o)})}),this._events.push({shape:dojo,handle:dojo.connect(a.firstChild,"onmouseout",this,function(){dijit.hideTooltip(n)})})):(l=a.getShape(),b=dojo.coords(b.node,!0),n=dojo.mixin(n,
{x:l.x-k/2,y:l.y}),n.x+=b.x,n.y+=b.y,n.x=Math.round(n.x),n.y=Math.round(n.y),n.width=Math.ceil(k),n.height=Math.ceil(fontHeight),this._events.push({shape:a,handle:a.connect("onmouseenter",this,function(){dijit.showTooltip(d,n,o)})}),this._events.push({shape:a,handle:a.connect("onmouseleave",this,function(){dijit.hideTooltip(n)})}))}}})}());
dojo._hasResource["dojox.charting.plot2d.common"]||(dojo._hasResource["dojox.charting.plot2d.common"]=!0,dojo.provide("dojox.charting.plot2d.common"),function(){var a=dojox.lang.functional,b=dojox.charting.plot2d.common;dojo.mixin(dojox.charting.plot2d.common,{makeStroke:function(a){if(!a)return a;if(typeof a=="string"||a instanceof dojo.Color)a={color:a};return dojox.gfx.makeParameters(dojox.gfx.defaultStroke,a)},augmentColor:function(a,b){var f=new dojo.Color(a),g=new dojo.Color(b);g.a=f.a;return g},
augmentStroke:function(a,d){var f=b.makeStroke(a);if(f)f.color=b.augmentColor(f.color,d);return f},augmentFill:function(a,d){new dojo.Color(d);return typeof a=="string"||a instanceof dojo.Color?b.augmentColor(a,d):a},defaultStats:{vmin:Number.POSITIVE_INFINITY,vmax:Number.NEGATIVE_INFINITY,hmin:Number.POSITIVE_INFINITY,hmax:Number.NEGATIVE_INFINITY},collectSimpleStats:function(a){for(var d=dojo.delegate(b.defaultStats),f=0;f<a.length;++f)for(var g=a[f],h=0;h<g.data.length;h++)if(g.data[h]!==null){if(typeof g.data[h]==
"number"){var h=d.vmin,k=d.vmax;(!("ymin"in g)||!("ymax"in g))&&dojo.forEach(g.data,function(a,b){if(a!==null){var c=b+1,f=a;isNaN(f)&&(f=0);d.hmin=Math.min(d.hmin,c);d.hmax=Math.max(d.hmax,c);d.vmin=Math.min(d.vmin,f);d.vmax=Math.max(d.vmax,f)}})}else{var l=d.hmin,m=d.hmax,h=d.vmin,k=d.vmax;(!("xmin"in g)||!("xmax"in g)||!("ymin"in g)||!("ymax"in g))&&dojo.forEach(g.data,function(a,b){if(a!==null){var c="x"in a?a.x:b+1,f=a.y;isNaN(c)&&(c=0);isNaN(f)&&(f=0);d.hmin=Math.min(d.hmin,c);d.hmax=Math.max(d.hmax,
c);d.vmin=Math.min(d.vmin,f);d.vmax=Math.max(d.vmax,f)}});if("xmin"in g)d.hmin=Math.min(l,g.xmin);if("xmax"in g)d.hmax=Math.max(m,g.xmax)}if("ymin"in g)d.vmin=Math.min(h,g.ymin);if("ymax"in g)d.vmax=Math.max(k,g.ymax);break}return d},calculateBarSize:function(a,b,f){f||(f=1);var g=b.gap,g=(a-2*g)/f;"minBarSize"in b&&(g=Math.max(g,b.minBarSize));"maxBarSize"in b&&(g=Math.min(g,b.maxBarSize));g=Math.max(g,1);return{size:g,gap:(a-g*f)/2}},collectStackedStats:function(c){var d=dojo.clone(b.defaultStats);
if(c.length){d.hmin=Math.min(d.hmin,1);d.hmax=a.foldl(c,"seed, run -> Math.max(seed, run.data.length)",d.hmax);for(var f=0;f<d.hmax;++f){var g=c[0].data[f],g=g&&(typeof g=="number"?g:g.y);isNaN(g)&&(g=0);d.vmin=Math.min(d.vmin,g);for(var h=1;h<c.length;++h){var k=c[h].data[f],k=k&&(typeof k=="number"?k:k.y);isNaN(k)&&(k=0);g+=k}d.vmax=Math.max(d.vmax,g)}}return d},curve:function(a,b){var f=a.slice(0);b=="x"&&(f[f.length]=f[0]);return dojo.map(f,function(a,c){if(c==0)return"M"+a.x+","+a.y;if(isNaN(b)){if(b==
"X"||b=="x"||b=="S"){var k,l=f[c-1],m=f[c],n,o,p,q=1/6;c==1?(k=b=="x"?f[f.length-2]:l,q=1/3):k=f[c-2];c==f.length-1?(n=b=="x"?f[1]:m,q=1/3):n=f[c+1];o=Math.sqrt((m.x-l.x)*(m.x-l.x)+(m.y-l.y)*(m.y-l.y));p=Math.sqrt((m.x-k.x)*(m.x-k.x)+(m.y-k.y)*(m.y-k.y));var s=Math.sqrt((n.x-l.x)*(n.x-l.x)+(n.y-l.y)*(n.y-l.y)),t=p*q;q*=s;t>o/2&&q>o/2?(t=o/2,q=o/2):t>o/2?(t=o/2,q=o/2*s/p):q>o/2&&(q=o/2,t=o/2*p/s);b=="S"&&(k==l&&(t=0),m==n&&(q=0));o=l.x+t*(m.x-k.x)/p;k=l.y+t*(m.y-k.y)/p;p=m.x-q*(n.x-l.x)/s;l=m.y-q*
(n.y-l.y)/s}}else return m=a.x-f[c-1].x,"C"+(a.x-(b-1)*(m/b))+","+f[c-1].y+" "+(a.x-m/b)+","+a.y+" "+a.x+","+a.y;return"C"+(o+","+k+" "+p+","+l+" "+m.x+","+m.y)}).join(" ")},getLabel:function(a,b,f){return dojo.number?(b?dojo.number.format(a,{places:f}):dojo.number.format(a))||"":b?a.toFixed(f):a.toString()}})}());
if(!dojo._hasResource["dojox.charting.scaler.primitive"])dojo._hasResource["dojox.charting.scaler.primitive"]=!0,dojo.provide("dojox.charting.scaler.primitive"),dojox.charting.scaler.primitive={buildScaler:function(a,b,c){a==b&&(a-=0.5,b+=0.5);return{bounds:{lower:a,upper:b,from:a,to:b,scale:c/(b-a),span:c},scaler:dojox.charting.scaler.primitive}},buildTicks:function(){return{major:[],minor:[],micro:[]}},getTransformerFromModel:function(a){var b=a.bounds.from,c=a.bounds.scale;return function(a){return(a-
b)*c}},getTransformerFromPlot:function(a){var b=a.bounds.from,c=a.bounds.scale;return function(a){return a/c+b}}};
dojo._hasResource["dojox.charting.plot2d._PlotEvents"]||(dojo._hasResource["dojox.charting.plot2d._PlotEvents"]=!0,dojo.provide("dojox.charting.plot2d._PlotEvents"),dojo.declare("dojox.charting.plot2d._PlotEvents",null,{constructor:function(){this._shapeEvents=[];this._eventSeries={}},destroy:function(){this.resetEvents();this.inherited(arguments)},plotEvent:function(){},raiseEvent:function(a){this.plotEvent(a);var b=dojo.delegate(a);b.originalEvent=a.type;b.originalPlot=a.plot;b.type="onindirect";
dojo.forEach(this.chart.stack,function(a){if(a!==this&&a.plotEvent)b.plot=a,a.plotEvent(b)},this)},connect:function(a,b){this.dirty=!0;return dojo.connect(this,"plotEvent",a,b)},events:function(){var a=this.plotEvent._listeners;if(!a||!a.length)return!1;for(var b in a)if(!(b in Array.prototype))return!0;return!1},resetEvents:function(){if(this._shapeEvents.length)dojo.forEach(this._shapeEvents,function(a){a.shape.disconnect(a.handle)}),this._shapeEvents=[];this.raiseEvent({type:"onplotreset",plot:this})},
_connectSingleEvent:function(a,b){this._shapeEvents.push({shape:a.eventMask,handle:a.eventMask.connect(b,this,function(c){a.type=b;a.event=c;this.raiseEvent(a);a.event=null})})},_connectEvents:function(a){if(a)a.chart=this.chart,a.plot=this,a.hAxis=this.hAxis||null,a.vAxis=this.vAxis||null,a.eventMask=a.eventMask||a.shape,this._connectSingleEvent(a,"onmouseover"),this._connectSingleEvent(a,"onmouseout"),this._connectSingleEvent(a,"onclick")},_reconnectEvents:function(a){(a=this._eventSeries[a])&&
dojo.forEach(a,this._connectEvents,this)},fireEvent:function(a,b,c,d){if((a=this._eventSeries[a])&&a.length&&c<a.length)c=a[c],c.type=b,c.event=d||null,this.raiseEvent(c),c.event=null}}));
dojo._hasResource["dojox.charting.plot2d.Base"]||(dojo._hasResource["dojox.charting.plot2d.Base"]=!0,dojo.provide("dojox.charting.plot2d.Base"),dojo.declare("dojox.charting.plot2d.Base",[dojox.charting.Element,dojox.charting.plot2d._PlotEvents],{constructor:function(){this.zoom=null;this.zoomQueue=[];this.lastWindow={vscale:1,hscale:1,xoffset:0,yoffset:0}},clear:function(){this.series=[];this._vAxis=this._hAxis=null;this.dirty=!0;return this},setAxis:function(a){a&&(this[a.vertical?"_vAxis":"_hAxis"]=
a);return this},addSeries:function(a){this.series.push(a);return this},getSeriesStats:function(){return dojox.charting.plot2d.common.collectSimpleStats(this.series)},calculateAxes:function(a){this.initializeScalers(a,this.getSeriesStats());return this},isDirty:function(){return this.dirty||this._hAxis&&this._hAxis.dirty||this._vAxis&&this._vAxis.dirty},isDataDirty:function(){return dojo.some(this.series,function(a){return a.dirty})},performZoom:function(a,b){var c=this._vAxis.scale||1,d=this._hAxis.scale||
1,f=a.height-b.b,g=this._hScaler.bounds,g=(g.from-g.lower)*g.scale,h=this._vScaler.bounds,h=(h.from-h.lower)*h.scale;rVScale=c/this.lastWindow.vscale;rHScale=d/this.lastWindow.hscale;rXOffset=(this.lastWindow.xoffset-g)/(this.lastWindow.hscale==1?d:this.lastWindow.hscale);rYOffset=(h-this.lastWindow.yoffset)/(this.lastWindow.vscale==1?c:this.lastWindow.vscale);shape=this.group;anim=dojox.gfx.fx.animateTransform(dojo.delegate({shape:shape,duration:1200,transform:[{name:"translate",start:[0,0],end:[b.l*
(1-rHScale),f*(1-rVScale)]},{name:"scale",start:[1,1],end:[rHScale,rVScale]},{name:"original"},{name:"translate",start:[0,0],end:[rXOffset,rYOffset]}]},this.zoom));dojo.mixin(this.lastWindow,{vscale:c,hscale:d,xoffset:g,yoffset:h});this.zoomQueue.push(anim);dojo.connect(anim,"onEnd",this,function(){this.zoom=null;this.zoomQueue.shift();this.zoomQueue.length>0&&this.zoomQueue[0].play()});this.zoomQueue.length==1&&this.zoomQueue[0].play();return this},render:function(){return this},getRequiredColors:function(){return this.series.length},
initializeScalers:function(a,b){this._hAxis?(this._hAxis.initialized()||this._hAxis.calculate(b.hmin,b.hmax,a.width),this._hScaler=this._hAxis.getScaler()):this._hScaler=dojox.charting.scaler.primitive.buildScaler(b.hmin,b.hmax,a.width);this._vAxis?(this._vAxis.initialized()||this._vAxis.calculate(b.vmin,b.vmax,a.height),this._vScaler=this._vAxis.getScaler()):this._vScaler=dojox.charting.scaler.primitive.buildScaler(b.vmin,b.vmax,a.height);return this}}));
dojo._hasResource["dojox.lang.functional.reversed"]||(dojo._hasResource["dojox.lang.functional.reversed"]=!0,dojo.provide("dojox.lang.functional.reversed"),function(){var a=dojo,b=dojox.lang.functional;a.mixin(b,{filterRev:function(c,d,f){typeof c=="string"&&(c=c.split(""));for(var f=f||a.global,d=b.lambda(d),g=[],h,k=c.length-1;k>=0;--k)h=c[k],d.call(f,h,k,c)&&g.push(h);return g},forEachRev:function(c,d,f){typeof c=="string"&&(c=c.split(""));for(var f=f||a.global,d=b.lambda(d),g=c.length-1;g>=0;d.call(f,
c[g],g,c),--g);},mapRev:function(c,d,f){typeof c=="string"&&(c=c.split(""));var f=f||a.global,d=b.lambda(d),g=c.length,h=Array(g);g-=1;for(var k=0;g>=0;h[k++]=d.call(f,c[g],g,c),--g);return h},everyRev:function(c,d,f){typeof c=="string"&&(c=c.split(""));for(var f=f||a.global,d=b.lambda(d),g=c.length-1;g>=0;--g)if(!d.call(f,c[g],g,c))return!1;return!0},someRev:function(c,d,f){typeof c=="string"&&(c=c.split(""));for(var f=f||a.global,d=b.lambda(d),g=c.length-1;g>=0;--g)if(d.call(f,c[g],g,c))return!0;
return!1}})}());
dojo._hasResource["dojox.gfx.fx"]||(dojo._hasResource["dojox.gfx.fx"]=!0,dojo.provide("dojox.gfx.fx"),function(){function a(a,b){this.start=a;this.end=b}function b(a,b,c){this.start=a;this.end=b;this.units=c}function c(a,b){this.start=a;this.end=b;this.temp=new dojo.Color}function d(a){this.values=a;this.length=a.length}function f(a,b){this.values=a;this.def=b?b:{}}function g(a,b){this.stack=a;this.original=b}function h(a,b,f,g){if(a.values)return new d(a.values);var h,k;k=a.start?l.normalizeColor(a.start):
h=b?f?b[f]:b:g;a.end?a=l.normalizeColor(a.end):(h||(h=b?f?b[f]:b:g),a=h);return new c(k,a)}var k=dojo,l=dojox.gfx,m=l.matrix;a.prototype.getValue=function(a){return(this.end-this.start)*a+this.start};b.prototype.getValue=function(a){return(this.end-this.start)*a+this.start+this.units};c.prototype.getValue=function(a){return k.blendColors(this.start,this.end,a,this.temp)};d.prototype.getValue=function(a){return this.values[Math.min(Math.floor(a*this.length),this.length-1)]};f.prototype.getValue=function(a){var b=
dojo.clone(this.def),c;for(c in this.values)b[c]=this.values[c].getValue(a);return b};g.prototype.getValue=function(a){var b=[];dojo.forEach(this.stack,function(c){if(c instanceof m.Matrix2D)b.push(c);else if(c.name=="original"&&this.original)b.push(this.original);else if(c.name in m){var d=m[c.name];if(typeof d!="function")b.push(d);else{var f=dojo.map(c.start,function(b,d){return(c.end[d]-b)*a+b}),d=d.apply(m,f);d instanceof m.Matrix2D&&b.push(d)}}},this);return b};var n=new k.Color(0,0,0,0);l.fx.animateStroke=
function(b){if(!b.easing)b.easing=k._defaultEasing;var c=new k.Animation(b),g=b.shape,l;k.connect(c,"beforeBegin",c,function(){l=g.getStroke();var c=b.color,k={},m;if(c)k.color=h(c,l,"color",n);if((c=b.style)&&c.values)k.style=new d(c.values);if(c=b.width){var p=c;p.values?m=new d(p.values):(c=p.start?p.start:m=l?l.width:1,p.end?m=p.end:typeof m!="number"&&(m=l?l.width:1),m=new a(c,m));k.width=m}if((c=b.cap)&&c.values)k.cap=new d(c.values);if(c=b.join)if(c.values)k.join=new d(c.values);else if(m=
c.start?c.start:l&&l.join||0,c=c.end?c.end:l&&l.join||0,typeof m=="number"&&typeof c=="number")k.join=new a(m,c);this.curve=new f(k,l)});k.connect(c,"onAnimate",g,"setStroke");return c};l.fx.animateFill=function(a){if(!a.easing)a.easing=k._defaultEasing;var b=new k.Animation(a),c=a.shape,d;k.connect(b,"beforeBegin",b,function(){d=c.getFill();var b=a.color;if(b)this.curve=h(b,d,"",n)});k.connect(b,"onAnimate",c,"setFill");return b};l.fx.animateFont=function(a){if(!a.easing)a.easing=k._defaultEasing;
var c=new k.Animation(a),g=a.shape,h;k.connect(c,"beforeBegin",c,function(){h=g.getFont();var c=a.style,k={},l,m;if(c&&c.values)k.style=new d(c.values);if((c=a.variant)&&c.values)k.variant=new d(c.values);if((c=a.weight)&&c.values)k.weight=new d(c.values);if((c=a.family)&&c.values)k.family=new d(c.values);if((c=a.size)&&c.units)l=parseFloat(c.start?c.start:g.font&&g.font.size||"0"),m=parseFloat(c.end?c.end:g.font&&g.font.size||"0"),k.size=new b(l,m,c.units);this.curve=new f(k,h)});k.connect(c,"onAnimate",
g,"setFont");return c};l.fx.animateTransform=function(a){if(!a.easing)a.easing=k._defaultEasing;var b=new k.Animation(a),c=a.shape,d;k.connect(b,"beforeBegin",b,function(){d=c.getTransform();this.curve=new g(a.transform,d)});k.connect(b,"onAnimate",c,"setTransform");return b}}());
dojo._hasResource["dojox.charting.plot2d.Default"]||(dojo._hasResource["dojox.charting.plot2d.Default"]=!0,dojo.provide("dojox.charting.plot2d.Default"),function(){var a=dojox.lang.functional,b=dojox.lang.utils,c=dojox.charting.plot2d.common,d=a.lambda("item.purgeGroup()");dojo.declare("dojox.charting.plot2d.Default",dojox.charting.plot2d.Base,{defaultParams:{hAxis:"x",vAxis:"y",lines:!0,areas:!1,markers:!1,tension:"",animate:!1},optionalParams:{stroke:{},outline:{},shadow:{},fill:{},font:"",fontColor:"",
markerStroke:{},markerOutline:{},markerShadow:{},markerFill:{},markerFont:"",markerFontColor:""},constructor:function(a,c){this.opt=dojo.clone(this.defaultParams);b.updateWithObject(this.opt,c);b.updateWithPattern(this.opt,c,this.optionalParams);this.series=[];this.hAxis=this.opt.hAxis;this.vAxis=this.opt.vAxis;this.animate=this.opt.animate},render:function(b,g){if(this.zoom&&!this.isDataDirty())return this.performZoom(b,g);this.resetEvents();if(this.dirty=this.isDirty()){dojo.forEach(this.series,
d);this._eventSeries={};this.cleanGroup();this.group.setTransform(null);var h=this.group;a.forEachRev(this.series,function(a){a.cleanGroup(h)})}for(var k=this.chart.theme,l,m,n=this.events(),o=this.series.length-1;o>=0;--o){var p=this.series[o];if(!this.dirty&&!p.dirty)k.skip(),this._reconnectEvents(p.name);else if(p.cleanGroup(),p.data.length){for(var q=k.next(this.opt.areas?"area":"line",[this.opt,p],!0),h=p.group,s=[],t=[],r=null,u,z=this._hScaler.scaler.getTransformerFromModel(this._hScaler),
A=this._vScaler.scaler.getTransformerFromModel(this._vScaler),v=this._eventSeries[p.name]=Array(p.data.length),w=0;w<p.data.length;w++)p.data[w]!=null?(r||(r=[],t.push(w),s.push(r)),r.push(p.data[w])):r=null;for(var C=0;C<s.length;C++){u=typeof s[C][0]=="number"?dojo.map(s[C],function(a,c){return{x:z(c+t[C]+1)+g.l,y:b.height-g.b-A(a)}},this):dojo.map(s[C],function(a){return{x:z(a.x)+g.l,y:b.height-g.b-A(a.y)}},this);r=this.opt.tension?c.curve(u,this.opt.tension):"";if(this.opt.areas&&u.length>1){var w=
q.series.fill,D=dojo.clone(u);this.opt.tension?p.dyn.fill=h.createPath(r+" "+("L"+D[D.length-1].x+","+(b.height-g.b)+" L"+D[0].x+","+(b.height-g.b)+" L"+D[0].x+","+D[0].y)).setFill(w).getFill():(D.push({x:u[u.length-1].x,y:b.height-g.b}),D.push({x:u[0].x,y:b.height-g.b}),D.push(u[0]),p.dyn.fill=h.createPolyline(D).setFill(w).getFill())}if(this.opt.lines||this.opt.markers)if(l=q.series.stroke,q.series.outline)m=p.dyn.outline=c.makeStroke(q.series.outline),m.width=2*m.width+l.width;if(this.opt.markers)p.dyn.marker=
q.symbol;var B=null,E=null,G=null;if(l&&q.series.shadow&&u.length>1){var H=q.series.shadow,w=dojo.map(u,function(a){return{x:a.x+H.dx,y:a.y+H.dy}});if(this.opt.lines)p.dyn.shadow=this.opt.tension?h.createPath(c.curve(w,this.opt.tension)).setStroke(H).getStroke():h.createPolyline(w).setStroke(H).getStroke();if(this.opt.markers&&q.marker.shadow)H=q.marker.shadow,G=dojo.map(w,function(a){return h.createPath("M"+a.x+" "+a.y+" "+q.symbol).setStroke(H).setFill(H.color)},this)}if(this.opt.lines&&u.length>
1){if(m)p.dyn.outline=this.opt.tension?h.createPath(r).setStroke(m).getStroke():h.createPolyline(u).setStroke(m).getStroke();p.dyn.stroke=this.opt.tension?h.createPath(r).setStroke(l).getStroke():h.createPolyline(u).setStroke(l).getStroke()}if(this.opt.markers){B=Array(u.length);E=Array(u.length);m=null;if(q.marker.outline)m=c.makeStroke(q.marker.outline),m.width=2*m.width+(q.marker.stroke?q.marker.stroke.width:0);dojo.forEach(u,function(a,b){var c="M"+a.x+" "+a.y+" "+q.symbol;m&&(E[b]=h.createPath(c).setStroke(m));
B[b]=h.createPath(c).setStroke(q.marker.stroke).setFill(q.marker.fill)},this);p.dyn.markerFill=q.marker.fill;p.dyn.markerStroke=q.marker.stroke;n?dojo.forEach(B,function(a,b){var c={element:"marker",index:b+t[C],run:p,shape:a,outline:E[b]||null,shadow:G&&G[b]||null,cx:u[b].x,cy:u[b].y};typeof s[C][0]=="number"?(c.x=b+t[C]+1,c.y=s[C][b]):(c.x=s[C][b].x,c.y=s[C][b].y);this._connectEvents(c);v[b+t[C]]=c},this):delete this._eventSeries[p.name]}}p.dirty=!1}else p.dirty=!1,k.skip()}this.animate&&dojox.gfx.fx.animateTransform(dojo.delegate({shape:this.group,
duration:1200,transform:[{name:"translate",start:[0,b.height-g.b],end:[0,0]},{name:"scale",start:[1,0],end:[1,1]},{name:"original"}]},this.animate)).play();this.dirty=!1;return this}})}());dojo._hasResource["dojox.charting.plot2d.Lines"]||(dojo._hasResource["dojox.charting.plot2d.Lines"]=!0,dojo.provide("dojox.charting.plot2d.Lines"),dojo.declare("dojox.charting.plot2d.Lines",dojox.charting.plot2d.Default,{constructor:function(){this.opt.lines=!0}}));
dojo._hasResource["dojox.charting.plot2d.Areas"]||(dojo._hasResource["dojox.charting.plot2d.Areas"]=!0,dojo.provide("dojox.charting.plot2d.Areas"),dojo.declare("dojox.charting.plot2d.Areas",dojox.charting.plot2d.Default,{constructor:function(){this.opt.lines=!0;this.opt.areas=!0}}));
dojo._hasResource["dojox.charting.plot2d.Markers"]||(dojo._hasResource["dojox.charting.plot2d.Markers"]=!0,dojo.provide("dojox.charting.plot2d.Markers"),dojo.declare("dojox.charting.plot2d.Markers",dojox.charting.plot2d.Default,{constructor:function(){this.opt.markers=!0}}));
dojo._hasResource["dojox.charting.plot2d.MarkersOnly"]||(dojo._hasResource["dojox.charting.plot2d.MarkersOnly"]=!0,dojo.provide("dojox.charting.plot2d.MarkersOnly"),dojo.declare("dojox.charting.plot2d.MarkersOnly",dojox.charting.plot2d.Default,{constructor:function(){this.opt.lines=!1;this.opt.markers=!0}}));
dojo._hasResource["dojox.gfx.gradutils"]||(dojo._hasResource["dojox.gfx.gradutils"]=!0,dojo.provide("dojox.gfx.gradutils"),function(){function a(a,c){if(a<=0)return c[0].color;var h=c.length;if(a>=1)return c[h-1].color;for(var k=0;k<h;++k){var l=c[k];if(l.offset>=a)return k?(h=c[k-1],b.blendColors(new d(h.color),new d(l.color),(a-h.offset)/(l.offset-h.offset))):l.color}return c[h-1].color}var b=dojo,c=dojox.gfx.matrix,d=b.Color;dojox.gfx.gradutils.getColor=function(b,g){var h;if(b){switch(b.type){case "linear":h=
Math.atan2(b.y2-b.y1,b.x2-b.x1);h=c.rotate(-h);var k=c.project(b.x2-b.x1,b.y2-b.y1),l=c.multiplyPoint(k,g),m=c.multiplyPoint(k,b.x1,b.y1),k=c.multiplyPoint(k,b.x2,b.y2),k=c.multiplyPoint(h,k.x-m.x,k.y-m.y).x;h=c.multiplyPoint(h,l.x-m.x,l.y-m.y).x/k;break;case "radial":h=g.x-b.cx,l=g.y-b.cy,h=Math.sqrt(h*h+l*l)/b.r}return a(h,b.colors)}return new d(b||[0,0,0,0])};dojox.gfx.gradutils.reverse=function(a){if(a)switch(a.type){case "linear":case "radial":if(a=dojo.delegate(a),a.colors){for(var b=a.colors,
c=b.length,d=0,l,m=a.colors=Array(b.length);d<c;++d)l=b[d],m[d]={offset:1-l.offset,color:l.color};m.sort(function(a,b){return a.offset-b.offset})}}return a}}());
dojo._hasResource["dojox.charting.plot2d.Scatter"]||(dojo._hasResource["dojox.charting.plot2d.Scatter"]=!0,dojo.provide("dojox.charting.plot2d.Scatter"),function(){var a=dojox.lang.functional,b=dojox.lang.utils,c=dojox.charting.plot2d.common,d=a.lambda("item.purgeGroup()");dojo.declare("dojox.charting.plot2d.Scatter",dojox.charting.plot2d.Base,{defaultParams:{hAxis:"x",vAxis:"y",shadows:null,animate:null},optionalParams:{markerStroke:{},markerOutline:{},markerShadow:{},markerFill:{},markerFont:"",
markerFontColor:""},constructor:function(a,c){this.opt=dojo.clone(this.defaultParams);b.updateWithObject(this.opt,c);b.updateWithPattern(this.opt,c,this.optionalParams);this.series=[];this.hAxis=this.opt.hAxis;this.vAxis=this.opt.vAxis;this.animate=this.opt.animate},render:function(b,g){if(this.zoom&&!this.isDataDirty())return this.performZoom(b,g);this.resetEvents();if(this.dirty=this.isDirty()){dojo.forEach(this.series,d);this._eventSeries={};this.cleanGroup();var h=this.group;a.forEachRev(this.series,
function(a){a.cleanGroup(h)})}for(var k=this.chart.theme,l=this.events(),m=this.series.length-1;m>=0;--m){var n=this.series[m];if(!this.dirty&&!n.dirty)k.skip(),this._reconnectEvents(n.name);else if(n.cleanGroup(),n.data.length){var o=k.next("marker",[this.opt,n]),h=n.group,p,q=this._hScaler.scaler.getTransformerFromModel(this._hScaler),s=this._vScaler.scaler.getTransformerFromModel(this._vScaler);p=typeof n.data[0]=="number"?dojo.map(n.data,function(a,c){return{x:q(c+1)+g.l,y:b.height-g.b-s(a)}},
this):dojo.map(n.data,function(a){return{x:q(a.x)+g.l,y:b.height-g.b-s(a.y)}},this);var t=Array(p.length),r=Array(p.length),u=Array(p.length);dojo.forEach(p,function(a,d){var l=typeof n.data[d]=="number"?k.post(o,"marker"):k.addMixin(o,"marker",n.data[d],!0),m="M"+a.x+" "+a.y+" "+l.symbol;l.marker.shadow&&(t[d]=h.createPath("M"+(a.x+l.marker.shadow.dx)+" "+(a.y+l.marker.shadow.dy)+" "+l.symbol).setStroke(l.marker.shadow).setFill(l.marker.shadow.color),this.animate&&this._animateScatter(t[d],b.height-
g.b));if(l.marker.outline){var p=c.makeStroke(l.marker.outline);p.width=2*p.width+l.marker.stroke.width;u[d]=h.createPath(m).setStroke(p);this.animate&&this._animateScatter(u[d],b.height-g.b)}p=c.makeStroke(l.marker.stroke);if((l=this._plotFill(l.marker.fill,b,g))&&(l.type==="linear"||l.type=="radial"))if(l=dojox.gfx.gradutils.getColor(l,{x:a.x,y:a.y}),p)p.color=l;r[d]=h.createPath(m).setStroke(p).setFill(l);this.animate&&this._animateScatter(r[d],b.height-g.b)},this);if(r.length)n.dyn.stroke=r[r.length-
1].getStroke(),n.dyn.fill=r[r.length-1].getFill();if(l){var z=Array(r.length);dojo.forEach(r,function(a,b){var c={element:"marker",index:b,run:n,shape:a,outline:u&&u[b]||null,shadow:t&&t[b]||null,cx:p[b].x,cy:p[b].y};typeof n.data[0]=="number"?(c.x=b+1,c.y=n.data[b]):(c.x=n.data[b].x,c.y=n.data[b].y);this._connectEvents(c);z[b]=c},this);this._eventSeries[n.name]=z}else delete this._eventSeries[n.name];n.dirty=!1}else n.dirty=!1,k.skip()}this.dirty=!1;return this},_animateScatter:function(a,b){dojox.gfx.fx.animateTransform(dojo.delegate({shape:a,
duration:1200,transform:[{name:"translate",start:[0,b],end:[0,0]},{name:"scale",start:[0,0],end:[1,1]},{name:"original"}]},this.animate)).play()}})}());
dojo._hasResource["dojox.lang.functional.sequence"]||(dojo._hasResource["dojox.lang.functional.sequence"]=!0,dojo.provide("dojox.lang.functional.sequence"),function(){var a=dojo,b=dojox.lang.functional;a.mixin(b,{repeat:function(c,d,f,g){var g=g||a.global,d=b.lambda(d),h=Array(c),k=1;for(h[0]=f;k<c;h[k]=f=d.call(g,f),++k);return h},until:function(c,d,f,g){for(var g=g||a.global,d=b.lambda(d),c=b.lambda(c),h=[];!c.call(g,f);h.push(f),f=d.call(g,f));return h}})}());
dojo._hasResource["dojox.charting.plot2d.Stacked"]||(dojo._hasResource["dojox.charting.plot2d.Stacked"]=!0,dojo.provide("dojox.charting.plot2d.Stacked"),function(){var a=dojox.lang.functional,b=dojox.charting.plot2d.common,c=a.lambda("item.purgeGroup()");dojo.declare("dojox.charting.plot2d.Stacked",dojox.charting.plot2d.Default,{getSeriesStats:function(){var a=b.collectStackedStats(this.series);this._maxRunLength=a.hmax;return a},render:function(d,f){if(this._maxRunLength<=0)return this;for(var g=
a.repeat(this._maxRunLength,"-> 0",0),h=0;h<this.series.length;++h)for(var k=this.series[h],l=0;l<k.data.length;++l){var m=k.data[l];m!==null&&(isNaN(m)&&(m=0),g[l]+=m)}if(this.zoom&&!this.isDataDirty())return this.performZoom(d,f);this.resetEvents();if(this.dirty=this.isDirty()){dojo.forEach(this.series,c);this._eventSeries={};this.cleanGroup();var n=this.group;a.forEachRev(this.series,function(a){a.cleanGroup(n)})}for(var o=this.chart.theme,p=this.events(),q=this._hScaler.scaler.getTransformerFromModel(this._hScaler),
s=this._vScaler.scaler.getTransformerFromModel(this._vScaler),h=this.series.length-1;h>=0;--h)if(k=this.series[h],!this.dirty&&!k.dirty)o.skip(),this._reconnectEvents(k.name);else{k.cleanGroup();var t=o.next(this.opt.areas?"area":"line",[this.opt,k],!0),n=k.group,r,u=dojo.map(g,function(a,b){return{x:q(b+1)+f.l,y:d.height-f.b-s(a)}},this),l=this.opt.tension?b.curve(u,this.opt.tension):"";if(this.opt.areas)m=dojo.clone(u),this.opt.tension?(m=b.curve(m,this.opt.tension),m+=" L"+u[u.length-1].x+","+
(d.height-f.b)+" L"+u[0].x+","+(d.height-f.b)+" L"+u[0].x+","+u[0].y,k.dyn.fill=n.createPath(m).setFill(t.series.fill).getFill()):(m.push({x:u[u.length-1].x,y:d.height-f.b}),m.push({x:u[0].x,y:d.height-f.b}),m.push(u[0]),k.dyn.fill=n.createPolyline(m).setFill(t.series.fill).getFill());if((this.opt.lines||this.opt.markers)&&t.series.outline)r=b.makeStroke(t.series.outline),r.width=2*r.width+t.series.stroke.width;if(this.opt.markers)k.dyn.marker=t.symbol;var z,A,v;if(t.series.shadow&&t.series.stroke){var w=
t.series.shadow,m=dojo.map(u,function(a){return{x:a.x+w.dx,y:a.y+w.dy}});if(this.opt.lines)k.dyn.shadow=this.opt.tension?n.createPath(b.curve(m,this.opt.tension)).setStroke(w).getStroke():n.createPolyline(m).setStroke(w).getStroke();if(this.opt.markers)w=t.marker.shadow,v=dojo.map(m,function(a){return n.createPath("M"+a.x+" "+a.y+" "+t.symbol).setStroke(w).setFill(w.color)},this)}if(this.opt.lines){if(r)k.dyn.outline=this.opt.tension?n.createPath(l).setStroke(r).getStroke():n.createPolyline(u).setStroke(r).getStroke();
k.dyn.stroke=this.opt.tension?n.createPath(l).setStroke(t.series.stroke).getStroke():n.createPolyline(u).setStroke(t.series.stroke).getStroke()}if(this.opt.markers){z=Array(u.length);A=Array(u.length);r=null;if(t.marker.outline)r=b.makeStroke(t.marker.outline),r.width=2*r.width+(t.marker.stroke?t.marker.stroke.width:0);dojo.forEach(u,function(a,b){var c="M"+a.x+" "+a.y+" "+t.symbol;r&&(A[b]=n.createPath(c).setStroke(r));z[b]=n.createPath(c).setStroke(t.marker.stroke).setFill(t.marker.fill)},this);
if(p){var C=Array(z.length);dojo.forEach(z,function(a,b){var c={element:"marker",index:b,run:k,shape:a,outline:A[b]||null,shadow:v&&v[b]||null,cx:u[b].x,cy:u[b].y,x:b+1,y:k.data[b]};this._connectEvents(c);C[b]=c},this);this._eventSeries[k.name]=C}else delete this._eventSeries[k.name]}k.dirty=!1;for(l=0;l<k.data.length;++l)m=k.data[l],m!==null&&(isNaN(m)&&(m=0),g[l]-=m)}this.dirty=!1;return this}})}());
dojo._hasResource["dojox.charting.plot2d.StackedLines"]||(dojo._hasResource["dojox.charting.plot2d.StackedLines"]=!0,dojo.provide("dojox.charting.plot2d.StackedLines"),dojo.declare("dojox.charting.plot2d.StackedLines",dojox.charting.plot2d.Stacked,{constructor:function(){this.opt.lines=!0}}));
dojo._hasResource["dojox.charting.plot2d.StackedAreas"]||(dojo._hasResource["dojox.charting.plot2d.StackedAreas"]=!0,dojo.provide("dojox.charting.plot2d.StackedAreas"),dojo.declare("dojox.charting.plot2d.StackedAreas",dojox.charting.plot2d.Stacked,{constructor:function(){this.opt.lines=!0;this.opt.areas=!0}}));
dojo._hasResource["dojox.charting.plot2d.Columns"]||(dojo._hasResource["dojox.charting.plot2d.Columns"]=!0,dojo.provide("dojox.charting.plot2d.Columns"),function(){var a=dojox.lang.functional,b=dojox.lang.utils,c=dojox.charting.plot2d.common,d=a.lambda("item.purgeGroup()");dojo.declare("dojox.charting.plot2d.Columns",dojox.charting.plot2d.Base,{defaultParams:{hAxis:"x",vAxis:"y",gap:0,animate:null},optionalParams:{minBarSize:1,maxBarSize:1,stroke:{},outline:{},shadow:{},fill:{},font:"",fontColor:""},
constructor:function(a,c){this.opt=dojo.clone(this.defaultParams);b.updateWithObject(this.opt,c);b.updateWithPattern(this.opt,c,this.optionalParams);this.series=[];this.hAxis=this.opt.hAxis;this.vAxis=this.opt.vAxis;this.animate=this.opt.animate},getSeriesStats:function(){var a=c.collectSimpleStats(this.series);a.hmin-=0.5;a.hmax+=0.5;return a},render:function(b,g){if(this.zoom&&!this.isDataDirty())return this.performZoom(b,g);this.resetEvents();if(this.dirty=this.isDirty()){dojo.forEach(this.series,
d);this._eventSeries={};this.cleanGroup();var h=this.group;a.forEachRev(this.series,function(a){a.cleanGroup(h)})}var k=this.chart.theme,l,m,n=this._hScaler.scaler.getTransformerFromModel(this._hScaler),o=this._vScaler.scaler.getTransformerFromModel(this._vScaler),p=Math.max(0,this._vScaler.bounds.lower),q=o(p),s=this.events();l=c.calculateBarSize(this._hScaler.bounds.scale,this.opt);m=l.gap;l=l.size;for(var t=this.series.length-1;t>=0;--t){var r=this.series[t];if(!this.dirty&&!r.dirty)k.skip(),this._reconnectEvents(r.name);
else{r.cleanGroup();for(var u=k.next("column",[this.opt,r]),h=r.group,z=Array(r.data.length),A=0;A<r.data.length;++A){var v=r.data[A];if(v!==null){var w=typeof v=="number"?v:v.y,C=o(w),D=Math.abs(C-q),v=typeof v!="number"?k.addMixin(u,"column",v,!0):k.post(u,"column");if(l>=1&&D>=1){var C={x:g.l+n(A+0.5)+m,y:b.height-g.b-(w>p?C:q),width:l,height:D},B=this._plotFill(v.series.fill,b,g),B=this._shapeFill(B,C),v=h.createRect(C).setFill(B).setStroke(v.series.stroke);r.dyn.fill=v.getFill();r.dyn.stroke=
v.getStroke();s&&(w={element:"column",index:A,run:r,shape:v,x:A+0.5,y:w},this._connectEvents(w),z[A]=w);this.animate&&this._animateColumn(v,b.height-g.b-q,D)}}}this._eventSeries[r.name]=z;r.dirty=!1}}this.dirty=!1;return this},_animateColumn:function(a,b,c){dojox.gfx.fx.animateTransform(dojo.delegate({shape:a,duration:1200,transform:[{name:"translate",start:[0,b-b/c],end:[0,0]},{name:"scale",start:[1,1/c],end:[1,1]},{name:"original"}]},this.animate)).play()}})}());
dojo._hasResource["dojox.charting.plot2d.StackedColumns"]||(dojo._hasResource["dojox.charting.plot2d.StackedColumns"]=!0,dojo.provide("dojox.charting.plot2d.StackedColumns"),function(){var a=dojox.lang.functional,b=dojox.charting.plot2d.common,c=a.lambda("item.purgeGroup()");dojo.declare("dojox.charting.plot2d.StackedColumns",dojox.charting.plot2d.Columns,{getSeriesStats:function(){var a=b.collectStackedStats(this.series);this._maxRunLength=a.hmax;a.hmin-=0.5;a.hmax+=0.5;return a},render:function(d,
f){if(this._maxRunLength<=0)return this;for(var g=a.repeat(this._maxRunLength,"-> 0",0),h=0;h<this.series.length;++h)for(var k=this.series[h],l=0;l<k.data.length;++l){var m=k.data[l];if(m!==null){var n=typeof m=="number"?m:m.y;isNaN(n)&&(n=0);g[l]+=n}}if(this.zoom&&!this.isDataDirty())return this.performZoom(d,f);this.resetEvents();if(this.dirty=this.isDirty()){dojo.forEach(this.series,c);this._eventSeries={};this.cleanGroup();var o=this.group;a.forEachRev(this.series,function(a){a.cleanGroup(o)})}var p=
this.chart.theme,q,s,t=this._hScaler.scaler.getTransformerFromModel(this._hScaler),r=this._vScaler.scaler.getTransformerFromModel(this._vScaler),u=this.events(),h=b.calculateBarSize(this._hScaler.bounds.scale,this.opt);q=h.gap;s=h.size;for(h=this.series.length-1;h>=0;--h)if(k=this.series[h],!this.dirty&&!k.dirty)p.skip(),this._reconnectEvents(k.name);else{k.cleanGroup();for(var z=p.next("column",[this.opt,k]),o=k.group,A=Array(g.length),l=0;l<g.length;++l)if(m=k.data[l],m!==null){var n=g[l],v=r(n),
m=typeof m!="number"?p.addMixin(z,"column",m,!0):p.post(z,"column");if(s>=1&&v>=1){var w={x:f.l+t(l+0.5)+q,y:d.height-f.b-r(n),width:s,height:v},C=this._plotFill(m.series.fill,d,f),C=this._shapeFill(C,w),m=o.createRect(w).setFill(C).setStroke(m.series.stroke);k.dyn.fill=m.getFill();k.dyn.stroke=m.getStroke();u&&(n={element:"column",index:l,run:k,shape:m,x:l+0.5,y:n},this._connectEvents(n),A[l]=n);this.animate&&this._animateColumn(m,d.height-f.b,v)}}this._eventSeries[k.name]=A;k.dirty=!1;for(l=0;l<
k.data.length;++l)m=k.data[l],m!==null&&(n=typeof m=="number"?m:m.y,isNaN(n)&&(n=0),g[l]-=n)}this.dirty=!1;return this}})}());
dojo._hasResource["dojox.charting.plot2d.ClusteredColumns"]||(dojo._hasResource["dojox.charting.plot2d.ClusteredColumns"]=!0,dojo.provide("dojox.charting.plot2d.ClusteredColumns"),function(){var a=dojox.lang.functional,b=dojox.charting.plot2d.common,c=a.lambda("item.purgeGroup()");dojo.declare("dojox.charting.plot2d.ClusteredColumns",dojox.charting.plot2d.Columns,{render:function(d,f){var F;if(this.zoom&&!this.isDataDirty())return this.performZoom(d,f);this.resetEvents();if(this.dirty=this.isDirty()){dojo.forEach(this.series,
c);this._eventSeries={};this.cleanGroup();var g=this.group;a.forEachRev(this.series,function(a){a.cleanGroup(g)})}var h=this.chart.theme,k,l,m,n=this._hScaler.scaler.getTransformerFromModel(this._hScaler),o=this._vScaler.scaler.getTransformerFromModel(this._vScaler),p=Math.max(0,this._vScaler.bounds.lower),q=o(p),s=this.events();k=b.calculateBarSize(this._hScaler.bounds.scale,this.opt,this.series.length);l=k.gap;F=m=k.size,k=F;for(var t=0;t<this.series.length;++t){var r=this.series[t],u=m*t;if(!this.dirty&&
!r.dirty)h.skip(),this._reconnectEvents(r.name);else{r.cleanGroup();for(var z=h.next("column",[this.opt,r]),g=r.group,A=Array(r.data.length),v=0;v<r.data.length;++v){var w=r.data[v];if(w!==null){var C=typeof w=="number"?w:w.y,D=o(C),B=Math.abs(D-q),w=typeof w!="number"?h.addMixin(z,"column",w,!0):h.post(z,"column");if(k>=1&&B>=1){var D={x:f.l+n(v+0.5)+l+u,y:d.height-f.b-(C>p?D:q),width:k,height:B},E=this._plotFill(w.series.fill,d,f),E=this._shapeFill(E,D),w=g.createRect(D).setFill(E).setStroke(w.series.stroke);
r.dyn.fill=w.getFill();r.dyn.stroke=w.getStroke();s&&(C={element:"column",index:v,run:r,shape:w,x:v+0.5,y:C},this._connectEvents(C),A[v]=C);this.animate&&this._animateColumn(w,d.height-f.b-q,B)}}}this._eventSeries[r.name]=A;r.dirty=!1}}this.dirty=!1;return this}})}());
dojo._hasResource["dojox.charting.plot2d.Bars"]||(dojo._hasResource["dojox.charting.plot2d.Bars"]=!0,dojo.provide("dojox.charting.plot2d.Bars"),function(){var a=dojox.lang.functional,b=dojox.lang.utils,c=dojox.charting.plot2d.common,d=a.lambda("item.purgeGroup()");dojo.declare("dojox.charting.plot2d.Bars",dojox.charting.plot2d.Base,{defaultParams:{hAxis:"x",vAxis:"y",gap:0,animate:null},optionalParams:{minBarSize:1,maxBarSize:1,stroke:{},outline:{},shadow:{},fill:{},font:"",fontColor:""},constructor:function(a,
c){this.opt=dojo.clone(this.defaultParams);b.updateWithObject(this.opt,c);b.updateWithPattern(this.opt,c,this.optionalParams);this.series=[];this.hAxis=this.opt.hAxis;this.vAxis=this.opt.vAxis;this.animate=this.opt.animate},getSeriesStats:function(){var a=c.collectSimpleStats(this.series),b;a.hmin-=0.5;a.hmax+=0.5;b=a.hmin;a.hmin=a.vmin;a.vmin=b;b=a.hmax;a.hmax=a.vmax;a.vmax=b;return a},render:function(b,g){if(this.zoom&&!this.isDataDirty())return this.performZoom(b,g);this.dirty=this.isDirty();this.resetEvents();
if(this.dirty){dojo.forEach(this.series,d);this._eventSeries={};this.cleanGroup();var h=this.group;a.forEachRev(this.series,function(a){a.cleanGroup(h)})}var k=this.chart.theme,l,m,n=this._hScaler.scaler.getTransformerFromModel(this._hScaler),o=this._vScaler.scaler.getTransformerFromModel(this._vScaler),p=Math.max(0,this._hScaler.bounds.lower),q=n(p),s=this.events();l=c.calculateBarSize(this._vScaler.bounds.scale,this.opt);m=l.gap;l=l.size;for(var t=this.series.length-1;t>=0;--t){var r=this.series[t];
if(!this.dirty&&!r.dirty)k.skip(),this._reconnectEvents(r.name);else{r.cleanGroup();for(var u=k.next("bar",[this.opt,r]),h=r.group,z=Array(r.data.length),A=0;A<r.data.length;++A){var v=r.data[A];if(v!==null){var w=typeof v=="number"?v:v.y,C=n(w),D=Math.abs(C-q),v=typeof v!="number"?k.addMixin(u,"bar",v,!0):k.post(u,"bar");if(D>=1&&l>=1){var C={x:g.l+(w<p?C:q),y:b.height-g.b-o(A+1.5)+m,width:D,height:l},B=this._plotFill(v.series.fill,b,g),B=this._shapeFill(B,C),v=h.createRect(C).setFill(B).setStroke(v.series.stroke);
r.dyn.fill=v.getFill();r.dyn.stroke=v.getStroke();s&&(w={element:"bar",index:A,run:r,shape:v,x:w,y:A+1.5},this._connectEvents(w),z[A]=w);this.animate&&this._animateBar(v,g.l+q,-D)}}}this._eventSeries[r.name]=z;r.dirty=!1}}this.dirty=!1;return this},_animateBar:function(a,b,c){dojox.gfx.fx.animateTransform(dojo.delegate({shape:a,duration:1200,transform:[{name:"translate",start:[b-b/c,0],end:[0,0]},{name:"scale",start:[1/c,1],end:[1,1]},{name:"original"}]},this.animate)).play()}})}());
dojo._hasResource["dojox.charting.plot2d.StackedBars"]||(dojo._hasResource["dojox.charting.plot2d.StackedBars"]=!0,dojo.provide("dojox.charting.plot2d.StackedBars"),function(){var a=dojox.lang.functional,b=dojox.charting.plot2d.common,c=a.lambda("item.purgeGroup()");dojo.declare("dojox.charting.plot2d.StackedBars",dojox.charting.plot2d.Bars,{getSeriesStats:function(){var a=b.collectStackedStats(this.series),c;this._maxRunLength=a.hmax;a.hmin-=0.5;a.hmax+=0.5;c=a.hmin;a.hmin=a.vmin;a.vmin=c;c=a.hmax;
a.hmax=a.vmax;a.vmax=c;return a},render:function(d,f){if(this._maxRunLength<=0)return this;for(var g=a.repeat(this._maxRunLength,"-> 0",0),h=0;h<this.series.length;++h)for(var k=this.series[h],l=0;l<k.data.length;++l){var m=k.data[l];if(m!==null){var n=typeof m=="number"?m:m.y;isNaN(n)&&(n=0);g[l]+=n}}if(this.zoom&&!this.isDataDirty())return this.performZoom(d,f);this.resetEvents();if(this.dirty=this.isDirty()){dojo.forEach(this.series,c);this._eventSeries={};this.cleanGroup();var o=this.group;a.forEachRev(this.series,
function(a){a.cleanGroup(o)})}var p=this.chart.theme,q,s,t=this._hScaler.scaler.getTransformerFromModel(this._hScaler),r=this._vScaler.scaler.getTransformerFromModel(this._vScaler),u=this.events(),h=b.calculateBarSize(this._vScaler.bounds.scale,this.opt);q=h.gap;s=h.size;for(h=this.series.length-1;h>=0;--h)if(k=this.series[h],!this.dirty&&!k.dirty)p.skip(),this._reconnectEvents(k.name);else{k.cleanGroup();for(var z=p.next("bar",[this.opt,k]),o=k.group,A=Array(g.length),l=0;l<g.length;++l)if(m=k.data[l],
m!==null){var n=g[l],v=t(n),m=typeof m!="number"?p.addMixin(z,"bar",m,!0):p.post(z,"bar");if(v>=1&&s>=1){var w={x:f.l,y:d.height-f.b-r(l+1.5)+q,width:v,height:s},C=this._plotFill(m.series.fill,d,f),C=this._shapeFill(C,w),m=o.createRect(w).setFill(C).setStroke(m.series.stroke);k.dyn.fill=m.getFill();k.dyn.stroke=m.getStroke();u&&(n={element:"bar",index:l,run:k,shape:m,x:n,y:l+1.5},this._connectEvents(n),A[l]=n);this.animate&&this._animateBar(m,f.l,-v)}}this._eventSeries[k.name]=A;k.dirty=!1;for(l=
0;l<k.data.length;++l)m=k.data[l],m!==null&&(n=typeof m=="number"?m:m.y,isNaN(n)&&(n=0),g[l]-=n)}this.dirty=!1;return this}})}());
dojo._hasResource["dojox.charting.plot2d.ClusteredBars"]||(dojo._hasResource["dojox.charting.plot2d.ClusteredBars"]=!0,dojo.provide("dojox.charting.plot2d.ClusteredBars"),function(){var a=dojox.lang.functional,b=dojox.charting.plot2d.common,c=a.lambda("item.purgeGroup()");dojo.declare("dojox.charting.plot2d.ClusteredBars",dojox.charting.plot2d.Bars,{render:function(d,f){var F;if(this.zoom&&!this.isDataDirty())return this.performZoom(d,f);this.resetEvents();if(this.dirty=this.isDirty()){dojo.forEach(this.series,
c);this._eventSeries={};this.cleanGroup();var g=this.group;a.forEachRev(this.series,function(a){a.cleanGroup(g)})}var h=this.chart.theme,k,l,m,n=this._hScaler.scaler.getTransformerFromModel(this._hScaler),o=this._vScaler.scaler.getTransformerFromModel(this._vScaler),p=Math.max(0,this._hScaler.bounds.lower),q=n(p),s=this.events();k=b.calculateBarSize(this._vScaler.bounds.scale,this.opt,this.series.length);l=k.gap;F=m=k.size,k=F;for(var t=this.series.length-1;t>=0;--t){var r=this.series[t],u=m*(this.series.length-
t-1);if(!this.dirty&&!r.dirty)h.skip(),this._reconnectEvents(r.name);else{r.cleanGroup();for(var z=h.next("bar",[this.opt,r]),g=r.group,A=Array(r.data.length),v=0;v<r.data.length;++v){var w=r.data[v];if(w!==null){var C=typeof w=="number"?w:w.y,D=n(C),B=D-q,E=Math.abs(B),w=typeof w!="number"?h.addMixin(z,"bar",w,!0):h.post(z,"bar");if(E>=1&&k>=1)D={x:f.l+(C<p?D:q),y:d.height-f.b-o(v+1.5)+l+u,width:E,height:k},E=this._plotFill(w.series.fill,d,f),E=this._shapeFill(E,D),w=g.createRect(D).setFill(E).setStroke(w.series.stroke),
r.dyn.fill=w.getFill(),r.dyn.stroke=w.getStroke(),s&&(C={element:"bar",index:v,run:r,shape:w,x:C,y:v+1.5},this._connectEvents(C),A[v]=C),this.animate&&this._animateBar(w,f.l+q,-B)}}this._eventSeries[r.name]=A;r.dirty=!1}}this.dirty=!1;return this}})}());
dojo._hasResource["dojox.charting.plot2d.Grid"]||(dojo._hasResource["dojox.charting.plot2d.Grid"]=!0,dojo.provide("dojox.charting.plot2d.Grid"),function(){var a=dojox.lang.utils,b=dojox.charting.plot2d.common;dojo.declare("dojox.charting.plot2d.Grid",dojox.charting.Element,{defaultParams:{hAxis:"x",vAxis:"y",hMajorLines:!0,hMinorLines:!1,vMajorLines:!0,vMinorLines:!1,hStripes:"none",vStripes:"none",animate:null},optionalParams:{},constructor:function(b,d){this.opt=dojo.clone(this.defaultParams);a.updateWithObject(this.opt,
d);this.hAxis=this.opt.hAxis;this.vAxis=this.opt.vAxis;this.dirty=!0;this.animate=this.opt.animate;this.zoom=null;this.zoomQueue=[];this.lastWindow={vscale:1,hscale:1,xoffset:0,yoffset:0}},clear:function(){this._vAxis=this._hAxis=null;this.dirty=!0;return this},setAxis:function(a){a&&(this[a.vertical?"_vAxis":"_hAxis"]=a);return this},addSeries:function(){return this},getSeriesStats:function(){return dojo.delegate(b.defaultStats)},initializeScalers:function(){return this},isDirty:function(){return this.dirty||
this._hAxis&&this._hAxis.dirty||this._vAxis&&this._vAxis.dirty},performZoom:function(a,b){var f=this._vAxis.scale||1,g=this._hAxis.scale||1,h=a.height-b.b,k=this._hAxis.getScaler().bounds,k=(k.from-k.lower)*k.scale,l=this._vAxis.getScaler().bounds,l=(l.from-l.lower)*l.scale;rVScale=f/this.lastWindow.vscale;rHScale=g/this.lastWindow.hscale;rXOffset=(this.lastWindow.xoffset-k)/(this.lastWindow.hscale==1?g:this.lastWindow.hscale);rYOffset=(l-this.lastWindow.yoffset)/(this.lastWindow.vscale==1?f:this.lastWindow.vscale);
shape=this.group;anim=dojox.gfx.fx.animateTransform(dojo.delegate({shape:shape,duration:1200,transform:[{name:"translate",start:[0,0],end:[b.l*(1-rHScale),h*(1-rVScale)]},{name:"scale",start:[1,1],end:[rHScale,rVScale]},{name:"original"},{name:"translate",start:[0,0],end:[rXOffset,rYOffset]}]},this.zoom));dojo.mixin(this.lastWindow,{vscale:f,hscale:g,xoffset:k,yoffset:l});this.zoomQueue.push(anim);dojo.connect(anim,"onEnd",this,function(){this.zoom=null;this.zoomQueue.shift();this.zoomQueue.length>
0&&this.zoomQueue[0].play()});this.zoomQueue.length==1&&this.zoomQueue[0].play();return this},getRequiredColors:function(){return 0},render:function(a,b){if(this.zoom)return this.performZoom(a,b);this.dirty=this.isDirty();if(!this.dirty)return this;this.cleanGroup();var f=this.group,g=this.chart.theme.axis;try{var h=this._vAxis.getScaler(),k=h.scaler.getTransformerFromModel(h),l=this._vAxis.getTicks();this.opt.hMinorLines&&dojo.forEach(l.minor,function(h){h=a.height-b.b-k(h.value);h=f.createLine({x1:b.l,
y1:h,x2:a.width-b.r,y2:h}).setStroke(g.minorTick);this.animate&&this._animateGrid(h,"h",b.l,b.r+b.l-a.width)},this);this.opt.hMajorLines&&dojo.forEach(l.major,function(h){h=a.height-b.b-k(h.value);h=f.createLine({x1:b.l,y1:h,x2:a.width-b.r,y2:h}).setStroke(g.majorTick);this.animate&&this._animateGrid(h,"h",b.l,b.r+b.l-a.width)},this)}catch(m){}try{var n=this._hAxis.getScaler(),o=n.scaler.getTransformerFromModel(n);(l=this._hAxis.getTicks())&&this.opt.vMinorLines&&dojo.forEach(l.minor,function(h){h=
b.l+o(h.value);h=f.createLine({x1:h,y1:b.t,x2:h,y2:a.height-b.b}).setStroke(g.minorTick);this.animate&&this._animateGrid(h,"v",a.height-b.b,a.height-b.b-b.t)},this);l&&this.opt.vMajorLines&&dojo.forEach(l.major,function(h){h=b.l+o(h.value);h=f.createLine({x1:h,y1:b.t,x2:h,y2:a.height-b.b}).setStroke(g.majorTick);this.animate&&this._animateGrid(h,"v",a.height-b.b,a.height-b.b-b.t)},this)}catch(p){}this.dirty=!1;return this},_animateGrid:function(a,b,f,g){dojox.gfx.fx.animateTransform(dojo.delegate({shape:a,
duration:1200,transform:[{name:"translate",start:b=="h"?[f,0]:[0,f],end:[0,0]},{name:"scale",start:b=="h"?[1/g,1]:[1,1/g],end:[1,1]},{name:"original"}]},this.animate)).play()}})}());
dojo._hasResource["dojox.charting.plot2d.Pie"]||(dojo._hasResource["dojox.charting.plot2d.Pie"]=!0,dojo.provide("dojox.charting.plot2d.Pie"),function(){var a=dojox.lang.functional,b=dojox.lang.utils,c=dojox.charting.plot2d.common,d=dojox.charting.axis2d.common,f=dojox.gfx,g=f.matrix;dojo.declare("dojox.charting.plot2d.Pie",[dojox.charting.Element,dojox.charting.plot2d._PlotEvents],{defaultParams:{labels:!0,ticks:!1,fixed:!0,precision:1,labelOffset:20,labelStyle:"default",htmlLabels:!0,radGrad:"native",
fanSize:5,startAngle:0},optionalParams:{radius:0,stroke:{},outline:{},shadow:{},fill:{},font:"",fontColor:"",labelWiring:{}},constructor:function(a,c){this.opt=dojo.clone(this.defaultParams);b.updateWithObject(this.opt,c);b.updateWithPattern(this.opt,c,this.optionalParams);this.run=null;this.dyn=[]},clear:function(){this.dirty=!0;this.dyn=[];this.run=null;return this},setAxis:function(){return this},addSeries:function(a){this.run=a;return this},getSeriesStats:function(){return dojo.delegate(c.defaultStats)},
initializeScalers:function(){return this},getRequiredColors:function(){return this.run?this.run.data.length:0},render:function(b,c){if(!this.dirty)return this;this.resetEvents();this.dirty=!1;this._eventSeries={};this.cleanGroup();var l=this.group,m=this.chart.theme;if(!this.run||!this.run.data.length)return this;var n=(b.width-c.l-c.r)/2,o=(b.height-c.t-c.b)/2,p=Math.min(n,o),q="font"in this.opt?this.opt.font:m.axis.font,s=q?f.normalizedLength(f.splitFontString(q).size):0,t=g._degToRad(this.opt.startAngle),
r=t,u,z,A,v,w=this.run.data,C=this.events();if(typeof w[0]=="number"){u=a.map(w,"x ? Math.max(x, 0) : 0");if(a.every(u,"<= 0"))return this;z=a.map(u,"/this",a.foldl(u,"+",0));this.opt.labels&&(A=dojo.map(z,function(a){return a>0?this._getLabel(a*100)+"%":""},this))}else{u=a.map(w,"x ? Math.max(x.y, 0) : 0");if(a.every(u,"<= 0"))return this;z=a.map(u,"/this",a.foldl(u,"+",0));this.opt.labels&&(A=dojo.map(z,function(a,b){if(a<=0)return"";var c=w[b];return"text"in c?c.text:this._getLabel(a*100)+"%"},
this))}var D=a.map(w,function(a){return a===null||typeof a=="number"?m.next("slice",[this.opt,this.run],!0):m.next("slice",[this.opt,this.run,a],!0)},this);this.opt.labels&&(u=a.foldl1(a.map(A,function(a,b){return dojox.gfx._base._getTextBox(a,{font:D[b].series.font}).w},this),"Math.max(a, b)")/2,this.opt.labelOffset<0&&(p=Math.min(n-2*u,o-s)+this.opt.labelOffset),v=p-this.opt.labelOffset);if("radius"in this.opt)p=this.opt.radius,v=p-this.opt.labelOffset;var B={cx:c.l+n,cy:c.t+o,r:p};this.dyn=[];
var E=Array(z.length);dojo.some(z,function(a,d){if(a<=0)return!1;var f=w[d],m=D[d],o;if(a>=1){o=this._plotFill(m.series.fill,b,c);o=this._shapeFill(o,{x:B.cx-B.r,y:B.cy-B.r,width:2*B.r,height:2*B.r});o=this._pseudoRadialFill(o,{x:B.cx,y:B.cy},B.r);var n=l.createCircle(B).setFill(o).setStroke(m.series.stroke);this.dyn.push({fill:o,stroke:m.series.stroke});C&&(f={element:"slice",index:d,run:this.run,shape:n,x:d,y:typeof f=="number"?f:f.y,cx:B.cx,cy:B.cy,cr:p},this._connectEvents(f),E[d]=f);return!0}var q=
r+a*2*Math.PI;d+1==z.length&&(q=t+2*Math.PI);var n=q-r,s=B.cx+p*Math.cos(r),v=B.cy+p*Math.sin(r),u=B.cx+p*Math.cos(q),A=B.cy+p*Math.sin(q);o=g._degToRad(this.opt.fanSize);if(m.series.fill&&m.series.fill.type==="radial"&&this.opt.radGrad==="fan"&&n>o){var G=l.createGroup(),H=Math.ceil(n/o),M=n/H;o=this._shapeFill(m.series.fill,{x:B.cx-B.r,y:B.cy-B.r,width:2*B.r,height:2*B.r});for(var I=0;I<H;++I){var S=I==0?s:B.cx+p*Math.cos(r+(I-0.2)*M),W=I==0?v:B.cy+p*Math.sin(r+(I-0.2)*M),Y=I==H-1?u:B.cx+p*Math.cos(r+
(I+1+0.2)*M),Z=I==H-1?A:B.cy+p*Math.sin(r+(I+1+0.2)*M);G.createPath({}).moveTo(B.cx,B.cy).lineTo(S,W).arcTo(p,p,0,M>Math.PI,!0,Y,Z).lineTo(B.cx,B.cy).closePath().setFill(this._pseudoRadialFill(o,{x:B.cx,y:B.cy},p,r+(I+0.5)*M,r+(I+0.5)*M))}G.createPath({}).moveTo(B.cx,B.cy).lineTo(s,v).arcTo(p,p,0,n>Math.PI,!0,u,A).lineTo(B.cx,B.cy).closePath().setStroke(m.series.stroke);n=G}else n=l.createPath({}).moveTo(B.cx,B.cy).lineTo(s,v).arcTo(p,p,0,n>Math.PI,!0,u,A).lineTo(B.cx,B.cy).closePath().setStroke(m.series.stroke),
(o=m.series.fill)&&o.type==="radial"?(o=this._shapeFill(o,{x:B.cx-B.r,y:B.cy-B.r,width:2*B.r,height:2*B.r}),this.opt.radGrad==="linear"&&(o=this._pseudoRadialFill(o,{x:B.cx,y:B.cy},p,r,q))):o&&o.type==="linear"&&(o=this._plotFill(o,b,c),o=this._shapeFill(o,n.getBoundingBox())),n.setFill(o);this.dyn.push({fill:o,stroke:m.series.stroke});C&&(f={element:"slice",index:d,run:this.run,shape:n,x:d,y:typeof f=="number"?f:f.y,cx:B.cx,cy:B.cy,cr:p},this._connectEvents(f),E[d]=f);r=q;return!1},this);if(this.opt.labels)if(this.opt.labelStyle==
"default")r=t,dojo.some(z,function(a,b){if(a<=0)return!1;var c=D[b];if(a>=1)return c=d.createText[this.opt.htmlLabels&&dojox.gfx.renderer!="vml"?"html":"gfx"](this.chart,l,B.cx,B.cy+s/2,"middle",A[b],c.series.font,c.series.fontColor),this.opt.htmlLabels&&this.htmlElements.push(c),!0;var f=r+a*2*Math.PI;b+1==z.length&&(f=t+2*Math.PI);var g=(r+f)/2,h=B.cx+v*Math.cos(g),g=B.cy+v*Math.sin(g)+s/2,c=d.createText[this.opt.htmlLabels&&dojox.gfx.renderer!="vml"?"html":"gfx"](this.chart,l,h,g,"middle",A[b],
c.series.font,c.series.fontColor);this.opt.htmlLabels&&this.htmlElements.push(c);r=f;return!1},this);else if(this.opt.labelStyle=="columns"){var r=t,G=[];dojo.forEach(z,function(a,b){var c=r+a*2*Math.PI;b+1==z.length&&(c=t+2*Math.PI);var d=(r+c)/2;G.push({angle:d,left:Math.cos(d)<0,theme:D[b],index:b,omit:c-r<0.0010});r=c});n=dojox.gfx._base._getTextBox("a",{font:q}).h;this._getProperLabelRadius(G,n,B.r*1.1);dojo.forEach(G,function(a,b){if(!a.omit){var c=B.cx-B.r*2,f=B.cx+B.r*2,g=dojox.gfx._base._getTextBox(A[b],
{font:q}).w,h=B.cx+a.labelR*Math.cos(a.angle),k=B.cy+a.labelR*Math.sin(a.angle),f=a.left?c+g:f-g,c=a.left?c:f,m=l.createPath().moveTo(B.cx+B.r*Math.cos(a.angle),B.cy+B.r*Math.sin(a.angle));Math.abs(a.labelR*Math.cos(a.angle))<B.r*2-g&&m.lineTo(h,k);m.lineTo(f,k).setStroke(a.theme.series.labelWiring);g=d.createText[this.opt.htmlLabels&&dojox.gfx.renderer!="vml"?"html":"gfx"](this.chart,l,c,k,"left",A[b],a.theme.series.font,a.theme.series.fontColor);this.opt.htmlLabels&&this.htmlElements.push(g)}},
this)}var H=0;this._eventSeries[this.run.name]=a.map(w,function(a){return a<=0?null:E[H++]});return this},_getProperLabelRadius:function(a,b,c){var d={},f={},g=1,p=1;if(a.length==1)a[0].labelR=c;else{for(var q=0;q<a.length;q++){var s=Math.abs(Math.sin(a[q].angle));a[q].left?g>s&&(g=s,d=a[q]):p>s&&(p=s,f=a[q])}d.labelR=f.labelR=c;this._caculateLabelR(d,a,b);this._caculateLabelR(f,a,b)}},_caculateLabelR:function(a,b,c){for(var d=a.index,f=b.length,g=a.labelR;!(b[d%f].left^b[(d+1)%f].left);){if(!b[(d+
1)%f].omit)g=(Math.sin(b[d%f].angle)*g+(b[d%f].left?-c:c))/Math.sin(b[(d+1)%f].angle),g=g<a.labelR?a.labelR:g,b[(d+1)%f].labelR=g;d++}for(d=a.index,j=d==0?f-1:d-1;!(b[d].left^b[j].left);){if(!b[j].omit)g=(Math.sin(b[d].angle)*g+(b[d].left?c:-c))/Math.sin(b[j].angle),g=g<a.labelR?a.labelR:g,b[j].labelR=g;d--;j--;d=d<0?d+b.length:d;j=j<0?j+b.length:j}},_getLabel:function(a){return c.getLabel(a,this.opt.fixed,this.opt.precision)}})}());
dojo._hasResource["dojox.charting.plot2d.Bubble"]||(dojo._hasResource["dojox.charting.plot2d.Bubble"]=!0,dojo.provide("dojox.charting.plot2d.Bubble"),function(){var a=dojox.lang.functional,b=dojox.lang.utils,c=dojox.charting.plot2d.common,d=a.lambda("item.purgeGroup()");dojo.declare("dojox.charting.plot2d.Bubble",dojox.charting.plot2d.Base,{defaultParams:{hAxis:"x",vAxis:"y",animate:null},optionalParams:{stroke:{},outline:{},shadow:{},fill:{},font:"",fontColor:""},constructor:function(a,c){this.opt=
dojo.clone(this.defaultParams);b.updateWithObject(this.opt,c);b.updateWithPattern(this.opt,c,this.optionalParams);this.series=[];this.hAxis=this.opt.hAxis;this.vAxis=this.opt.vAxis;this.animate=this.opt.animate},render:function(b,g){if(this.zoom&&!this.isDataDirty())return this.performZoom(b,g);this.resetEvents();if(this.dirty=this.isDirty()){dojo.forEach(this.series,d);this._eventSeries={};this.cleanGroup();var h=this.group;a.forEachRev(this.series,function(a){a.cleanGroup(h)})}for(var k=this.chart.theme,
l=this._hScaler.scaler.getTransformerFromModel(this._hScaler),m=this._vScaler.scaler.getTransformerFromModel(this._vScaler),n=this.events(),o=this.series.length-1;o>=0;--o){var p=this.series[o];if(!this.dirty&&!p.dirty)k.skip(),this._reconnectEvents(p.name);else if(p.cleanGroup(),p.data.length)if(typeof p.data[0]=="number")console.warn("dojox.charting.plot2d.Bubble: the data in the following series cannot be rendered as a bubble chart; ",p);else{var q=k.next("circle",[this.opt,p]),h=p.group,s=dojo.map(p.data,
function(a){return a?{x:l(a.x)+g.l,y:b.height-g.b-m(a.y),radius:this._vScaler.bounds.scale*(a.size/2)}:null},this),t=null,r=null,u=null;if(q.series.shadow&&(u=dojo.map(s,function(a){if(a!==null){var c=k.addMixin(q,"circle",a,!0).series.shadow,c=h.createCircle({cx:a.x+c.dx,cy:a.y+c.dy,r:a.radius}).setStroke(c).setFill(c.color);this.animate&&this._animateBubble(c,b.height-g.b,a.radius);return c}return null},this),u.length))p.dyn.shadow=u[u.length-1].getStroke();if(q.series.outline&&(r=dojo.map(s,function(a){if(a!==
null){var d=k.addMixin(q,"circle",a,!0),d=c.makeStroke(d.series.outline);d.width=2*d.width+q.series.stroke.width;d=h.createCircle({cx:a.x,cy:a.y,r:a.radius}).setStroke(d);this.animate&&this._animateBubble(d,b.height-g.b,a.radius);return d}return null},this),r.length))p.dyn.outline=r[r.length-1].getStroke();t=dojo.map(s,function(a){if(a!==null){var c=k.addMixin(q,"circle",a,!0),d={x:a.x-a.radius,y:a.y-a.radius,width:2*a.radius,height:2*a.radius},l=this._plotFill(c.series.fill,b,g),l=this._shapeFill(l,
d),c=h.createCircle({cx:a.x,cy:a.y,r:a.radius}).setFill(l).setStroke(c.series.stroke);this.animate&&this._animateBubble(c,b.height-g.b,a.radius);return c}return null},this);if(t.length)p.dyn.fill=t[t.length-1].getFill(),p.dyn.stroke=t[t.length-1].getStroke();if(n){var z=Array(t.length);dojo.forEach(t,function(a,b){if(a!==null){var c={element:"circle",index:b,run:p,shape:a,outline:r&&r[b]||null,shadow:u&&u[b]||null,x:p.data[b].x,y:p.data[b].y,r:p.data[b].size/2,cx:s[b].x,cy:s[b].y,cr:s[b].radius};
this._connectEvents(c);z[b]=c}},this);this._eventSeries[p.name]=z}else delete this._eventSeries[p.name];p.dirty=!1}else p.dirty=!1,k.skip()}this.dirty=!1;return this},_animateBubble:function(a,b,c){dojox.gfx.fx.animateTransform(dojo.delegate({shape:a,duration:1200,transform:[{name:"translate",start:[0,b],end:[0,0]},{name:"scale",start:[0,1/c],end:[1,1]},{name:"original"}]},this.animate)).play()}})}());
dojo._hasResource["dojox.charting.plot2d.Candlesticks"]||(dojo._hasResource["dojox.charting.plot2d.Candlesticks"]=!0,dojo.provide("dojox.charting.plot2d.Candlesticks"),function(){var a=dojox.lang.functional,b=dojox.lang.utils,c=dojox.charting.plot2d.common,d=a.lambda("item.purgeGroup()");dojo.declare("dojox.charting.plot2d.Candlesticks",dojox.charting.plot2d.Base,{defaultParams:{hAxis:"x",vAxis:"y",gap:2,animate:null},optionalParams:{minBarSize:1,maxBarSize:1,stroke:{},outline:{},shadow:{},fill:{},
font:"",fontColor:""},constructor:function(a,c){this.opt=dojo.clone(this.defaultParams);b.updateWithObject(this.opt,c);b.updateWithPattern(this.opt,c,this.optionalParams);this.series=[];this.hAxis=this.opt.hAxis;this.vAxis=this.opt.vAxis;this.animate=this.opt.animate},collectStats:function(a){for(var b=dojo.delegate(c.defaultStats),d=0;d<a.length;d++){var k=a[d];if(k.data.length){var l=b.vmin,m=b.vmax;(!("ymin"in k)||!("ymax"in k))&&dojo.forEach(k.data,function(a,c){if(a!==null){var d=a.x||c+1;b.hmin=
Math.min(b.hmin,d);b.hmax=Math.max(b.hmax,d);b.vmin=Math.min(b.vmin,a.open,a.close,a.high,a.low);b.vmax=Math.max(b.vmax,a.open,a.close,a.high,a.low)}});if("ymin"in k)b.vmin=Math.min(l,k.ymin);if("ymax"in k)b.vmax=Math.max(m,k.ymax)}}return b},getSeriesStats:function(){var a=this.collectStats(this.series);a.hmin-=0.5;a.hmax+=0.5;return a},render:function(b,g){if(this.zoom&&!this.isDataDirty())return this.performZoom(b,g);this.resetEvents();if(this.dirty=this.isDirty()){dojo.forEach(this.series,d);
this._eventSeries={};this.cleanGroup();var h=this.group;a.forEachRev(this.series,function(a){a.cleanGroup(h)})}var k=this.chart.theme,l,m,n=this._hScaler.scaler.getTransformerFromModel(this._hScaler),o=this._vScaler.scaler.getTransformerFromModel(this._vScaler);m=Math.max(0,this._vScaler.bounds.lower);o(m);var p=this.events();l=c.calculateBarSize(this._hScaler.bounds.scale,this.opt);m=l.gap;l=l.size;for(var q=this.series.length-1;q>=0;--q){var s=this.series[q];if(!this.dirty&&!s.dirty)k.skip(),this._reconnectEvents(s.name);
else{s.cleanGroup();for(var t=k.next("candlestick",[this.opt,s]),h=s.group,r=Array(s.data.length),u=0;u<s.data.length;++u){var z=s.data[u];if(z!==null){var A=k.addMixin(t,"candlestick",z,!0),v=n(z.x||u+0.5)+g.l+m,w=b.height-g.b,C=o(z.open),D=o(z.close),B=o(z.high),E=o(z.low);if("mid"in z)var G=o(z.mid);if(E>B)var H=B,B=E,E=H;if(l>=1){var H=C>D,N={x1:l/2,x2:l/2,y1:w-B,y2:w-E},P={x:0,y:w-Math.max(C,D),width:l,height:Math.max(H?C-D:D-C,1)};shape=h.createGroup();shape.setTransform({dx:v,dy:0});var L=
shape.createGroup();L.createLine(N).setStroke(A.series.stroke);L.createRect(P).setStroke(A.series.stroke).setFill(H?A.series.fill:"white");"mid"in z&&L.createLine({x1:A.series.stroke.width||1,x2:l-(A.series.stroke.width||1),y1:w-G,y2:w-G}).setStroke(H?"white":A.series.stroke);s.dyn.fill=A.series.fill;s.dyn.stroke=A.series.stroke;p&&(z={element:"candlestick",index:u,run:s,shape:L,x:v,y:w-Math.max(C,D),cx:l/2,cy:w-Math.max(C,D)+Math.max(H?C-D:D-C,1)/2,width:l,height:Math.max(H?C-D:D-C,1),data:z},this._connectEvents(z),
r[u]=z)}this.animate&&this._animateCandlesticks(shape,w-E,B-E)}}this._eventSeries[s.name]=r;s.dirty=!1}}this.dirty=!1;return this},_animateCandlesticks:function(a,b,c){dojox.gfx.fx.animateTransform(dojo.delegate({shape:a,duration:1200,transform:[{name:"translate",start:[0,b-b/c],end:[0,0]},{name:"scale",start:[1,1/c],end:[1,1]},{name:"original"}]},this.animate)).play()}})}());
dojo._hasResource["dojox.charting.plot2d.OHLC"]||(dojo._hasResource["dojox.charting.plot2d.OHLC"]=!0,dojo.provide("dojox.charting.plot2d.OHLC"),function(){var a=dojox.lang.functional,b=dojox.lang.utils,c=dojox.charting.plot2d.common,d=a.lambda("item.purgeGroup()");dojo.declare("dojox.charting.plot2d.OHLC",dojox.charting.plot2d.Base,{defaultParams:{hAxis:"x",vAxis:"y",gap:2,animate:null},optionalParams:{minBarSize:1,maxBarSize:1,stroke:{},outline:{},shadow:{},fill:{},font:"",fontColor:""},constructor:function(a,
c){this.opt=dojo.clone(this.defaultParams);b.updateWithObject(this.opt,c);b.updateWithPattern(this.opt,c,this.optionalParams);this.series=[];this.hAxis=this.opt.hAxis;this.vAxis=this.opt.vAxis;this.animate=this.opt.animate},collectStats:function(a){for(var b=dojo.delegate(c.defaultStats),d=0;d<a.length;d++){var k=a[d];if(k.data.length){var l=b.vmin,m=b.vmax;(!("ymin"in k)||!("ymax"in k))&&dojo.forEach(k.data,function(a,c){if(a!==null){var d=a.x||c+1;b.hmin=Math.min(b.hmin,d);b.hmax=Math.max(b.hmax,
d);b.vmin=Math.min(b.vmin,a.open,a.close,a.high,a.low);b.vmax=Math.max(b.vmax,a.open,a.close,a.high,a.low)}});if("ymin"in k)b.vmin=Math.min(l,k.ymin);if("ymax"in k)b.vmax=Math.max(m,k.ymax)}}return b},getSeriesStats:function(){var a=this.collectStats(this.series);a.hmin-=0.5;a.hmax+=0.5;return a},render:function(b,g){if(this.zoom&&!this.isDataDirty())return this.performZoom(b,g);this.resetEvents();if(this.dirty=this.isDirty()){dojo.forEach(this.series,d);this._eventSeries={};this.cleanGroup();var h=
this.group;a.forEachRev(this.series,function(a){a.cleanGroup(h)})}var k=this.chart.theme,l,m,n=this._hScaler.scaler.getTransformerFromModel(this._hScaler),o=this._vScaler.scaler.getTransformerFromModel(this._vScaler);m=Math.max(0,this._vScaler.bounds.lower);o(m);var p=this.events();l=c.calculateBarSize(this._hScaler.bounds.scale,this.opt);m=l.gap;l=l.size;for(var q=this.series.length-1;q>=0;--q){var s=this.series[q];if(!this.dirty&&!s.dirty)k.skip(),this._reconnectEvents(s.name);else{s.cleanGroup();
for(var t=k.next("candlestick",[this.opt,s]),h=s.group,r=Array(s.data.length),u=0;u<s.data.length;++u){var z=s.data[u];if(z!==null){var A=k.addMixin(t,"candlestick",z,!0),v=n(z.x||u+0.5)+g.l+m,w=b.height-g.b,C=o(z.open),D=o(z.close),B=o(z.high),E=o(z.low);if(E>B)var G=B,B=E,E=G;if(l>=1){var G={x1:l/2,x2:l/2,y1:w-B,y2:w-E},H={x1:0,x2:l/2+(A.series.stroke.width||1)/2,y1:w-C,y2:w-C},N={x1:l/2-(A.series.stroke.width||1)/2,x2:l,y1:w-D,y2:w-D};shape=h.createGroup();shape.setTransform({dx:v,dy:0});var P=
shape.createGroup();P.createLine(G).setStroke(A.series.stroke);P.createLine(H).setStroke(A.series.stroke);P.createLine(N).setStroke(A.series.stroke);s.dyn.stroke=A.series.stroke;p&&(z={element:"candlestick",index:u,run:s,shape:P,x:v,y:w-Math.max(C,D),cx:l/2,cy:w-Math.max(C,D)+Math.max(C>D?C-D:D-C,1)/2,width:l,height:Math.max(C>D?C-D:D-C,1),data:z},this._connectEvents(z),r[u]=z)}this.animate&&this._animateOHLC(shape,w-E,B-E)}}this._eventSeries[s.name]=r;s.dirty=!1}}this.dirty=!1;return this},_animateOHLC:function(a,
b,c){dojox.gfx.fx.animateTransform(dojo.delegate({shape:a,duration:1200,transform:[{name:"translate",start:[0,b-b/c],end:[0,0]},{name:"scale",start:[1,1/c],end:[1,1]},{name:"original"}]},this.animate)).play()}})}());
dojo._hasResource["dojo.fx.Toggler"]||(dojo._hasResource["dojo.fx.Toggler"]=!0,dojo.provide("dojo.fx.Toggler"),dojo.declare("dojo.fx.Toggler",null,{node:null,showFunc:dojo.fadeIn,hideFunc:dojo.fadeOut,showDuration:200,hideDuration:200,constructor:function(a){dojo.mixin(this,a);this.node=a.node;this._showArgs=dojo.mixin({},a);this._showArgs.node=this.node;this._showArgs.duration=this.showDuration;this.showAnim=this.showFunc(this._showArgs);this._hideArgs=dojo.mixin({},a);this._hideArgs.node=this.node;
this._hideArgs.duration=this.hideDuration;this.hideAnim=this.hideFunc(this._hideArgs);dojo.connect(this.showAnim,"beforeBegin",dojo.hitch(this.hideAnim,"stop",!0));dojo.connect(this.hideAnim,"beforeBegin",dojo.hitch(this.showAnim,"stop",!0))},show:function(a){return this.showAnim.play(a||0)},hide:function(a){return this.hideAnim.play(a||0)}}));
dojo._hasResource["dojo.fx"]||(dojo._hasResource["dojo.fx"]=!0,dojo.provide("dojo.fx"),function(){var a=dojo,b={_fire:function(a,b){this[a]&&this[a].apply(this,b||[]);return this}},c=function(b){this._index=-1;this._animations=b||[];this._current=this._onAnimateCtx=this._onEndCtx=null;this.duration=0;a.forEach(this._animations,function(a){this.duration+=a.duration;a.delay&&(this.duration+=a.delay)},this)};a.extend(c,{_onAnimate:function(){this._fire("onAnimate",arguments)},_onEnd:function(){a.disconnect(this._onAnimateCtx);
a.disconnect(this._onEndCtx);this._onAnimateCtx=this._onEndCtx=null;this._index+1==this._animations.length?this._fire("onEnd"):(this._current=this._animations[++this._index],this._onAnimateCtx=a.connect(this._current,"onAnimate",this,"_onAnimate"),this._onEndCtx=a.connect(this._current,"onEnd",this,"_onEnd"),this._current.play(0,!0))},play:function(b,c){if(!this._current)this._current=this._animations[this._index=0];if(!c&&this._current.status()=="playing")return this;var d=a.connect(this._current,
"beforeBegin",this,function(){this._fire("beforeBegin")}),k=a.connect(this._current,"onBegin",this,function(a){this._fire("onBegin",arguments)}),l=a.connect(this._current,"onPlay",this,function(b){this._fire("onPlay",arguments);a.disconnect(d);a.disconnect(k);a.disconnect(l)});this._onAnimateCtx&&a.disconnect(this._onAnimateCtx);this._onAnimateCtx=a.connect(this._current,"onAnimate",this,"_onAnimate");this._onEndCtx&&a.disconnect(this._onEndCtx);this._onEndCtx=a.connect(this._current,"onEnd",this,
"_onEnd");this._current.play.apply(this._current,arguments);return this},pause:function(){if(this._current){var b=a.connect(this._current,"onPause",this,function(c){this._fire("onPause",arguments);a.disconnect(b)});this._current.pause()}return this},gotoPercent:function(b,c){this.pause();var d=this.duration*b;this._current=null;a.some(this._animations,function(a){if(a.duration<=d)return this._current=a,!0;d-=a.duration;return!1});this._current&&this._current.gotoPercent(d/this._current.duration,c);
return this},stop:function(b){if(this._current){if(b){for(;this._index+1<this._animations.length;++this._index)this._animations[this._index].stop(!0);this._current=this._animations[this._index]}var c=a.connect(this._current,"onStop",this,function(b){this._fire("onStop",arguments);a.disconnect(c)});this._current.stop()}return this},status:function(){return this._current?this._current.status():"stopped"},destroy:function(){this._onAnimateCtx&&a.disconnect(this._onAnimateCtx);this._onEndCtx&&a.disconnect(this._onEndCtx)}});
a.extend(c,b);dojo.fx.chain=function(a){return new c(a)};var d=function(b){this._animations=b||[];this._connects=[];this.duration=this._finished=0;a.forEach(b,function(b){var c=b.duration;b.delay&&(c+=b.delay);if(this.duration<c)this.duration=c;this._connects.push(a.connect(b,"onEnd",this,"_onEnd"))},this);this._pseudoAnimation=new a.Animation({curve:[0,1],duration:this.duration});var c=this;a.forEach("beforeBegin,onBegin,onPlay,onAnimate,onPause,onStop,onEnd".split(","),function(b){c._connects.push(a.connect(c._pseudoAnimation,
b,function(){c._fire(b,arguments)}))})};a.extend(d,{_doAction:function(b,c){a.forEach(this._animations,function(a){a[b].apply(a,c)});return this},_onEnd:function(){++this._finished>this._animations.length&&this._fire("onEnd")},_call:function(a,b){var c=this._pseudoAnimation;c[a].apply(c,b)},play:function(a,b){this._finished=0;this._doAction("play",arguments);this._call("play",arguments);return this},pause:function(){this._doAction("pause",arguments);this._call("pause",arguments);return this},gotoPercent:function(b,
c){var d=this.duration*b;a.forEach(this._animations,function(a){a.gotoPercent(a.duration<d?1:d/a.duration,c)});this._call("gotoPercent",arguments);return this},stop:function(a){this._doAction("stop",arguments);this._call("stop",arguments);return this},status:function(){return this._pseudoAnimation.status()},destroy:function(){a.forEach(this._connects,dojo.disconnect)}});a.extend(d,b);dojo.fx.combine=function(a){return new d(a)};dojo.fx.wipeIn=function(b){var c=b.node=a.byId(b.node),d=c.style,k,b=
a.animateProperty(a.mixin({properties:{height:{start:function(){k=d.overflow;d.overflow="hidden";if(d.visibility=="hidden"||d.display=="none")return d.height="1px",d.display="",d.visibility="",1;else{var b=a.style(c,"height");return Math.max(b,1)}},end:function(){return c.scrollHeight}}}},b));a.connect(b,"onEnd",function(){d.height="auto";d.overflow=k});return b};dojo.fx.wipeOut=function(b){var c=(b.node=a.byId(b.node)).style,d,b=a.animateProperty(a.mixin({properties:{height:{end:1}}},b));a.connect(b,
"beforeBegin",function(){d=c.overflow;c.overflow="hidden";c.display=""});a.connect(b,"onEnd",function(){c.overflow=d;c.height="auto";c.display="none"});return b};dojo.fx.slideTo=function(b){var c=null,d=null,k=function(b){return function(){var f=a.getComputedStyle(b),k=f.position;c=k=="absolute"?b.offsetTop:parseInt(f.top)||0;d=k=="absolute"?b.offsetLeft:parseInt(f.left)||0;if(k!="absolute"&&k!="relative")f=a.position(b,!0),c=f.y,d=f.x,b.style.position="absolute",b.style.top=c+"px",b.style.left=d+
"px"}}(b.node=a.byId(b.node));k();b=a.animateProperty(a.mixin({properties:{top:b.top||0,left:b.left||0}},b));a.connect(b,"beforeBegin",b,k);return b}}());
if(!dojo._hasResource["dojo.fx.easing"])dojo._hasResource["dojo.fx.easing"]=!0,dojo.provide("dojo.fx.easing"),dojo.getObject("fx.easing",!0,dojo),dojo.fx.easing={linear:function(a){return a},quadIn:function(a){return Math.pow(a,2)},quadOut:function(a){return a*(a-2)*-1},quadInOut:function(a){a*=2;return a<1?Math.pow(a,2)/2:-1*(--a*(a-2)-1)/2},cubicIn:function(a){return Math.pow(a,3)},cubicOut:function(a){return Math.pow(a-1,3)+1},cubicInOut:function(a){a*=2;if(a<1)return Math.pow(a,3)/2;a-=2;return(Math.pow(a,
3)+2)/2},quartIn:function(a){return Math.pow(a,4)},quartOut:function(a){return-1*(Math.pow(a-1,4)-1)},quartInOut:function(a){a*=2;if(a<1)return Math.pow(a,4)/2;a-=2;return-0.5*(Math.pow(a,4)-2)},quintIn:function(a){return Math.pow(a,5)},quintOut:function(a){return Math.pow(a-1,5)+1},quintInOut:function(a){a*=2;if(a<1)return Math.pow(a,5)/2;a-=2;return(Math.pow(a,5)+2)/2},sineIn:function(a){return-1*Math.cos(a*(Math.PI/2))+1},sineOut:function(a){return Math.sin(a*(Math.PI/2))},sineInOut:function(a){return-1*
(Math.cos(Math.PI*a)-1)/2},expoIn:function(a){return a==0?0:Math.pow(2,10*(a-1))},expoOut:function(a){return a==1?1:-1*Math.pow(2,-10*a)+1},expoInOut:function(a){if(a==0)return 0;if(a==1)return 1;a*=2;if(a<1)return Math.pow(2,10*(a-1))/2;--a;return(-1*Math.pow(2,-10*a)+2)/2},circIn:function(a){return-1*(Math.sqrt(1-Math.pow(a,2))-1)},circOut:function(a){a-=1;return Math.sqrt(1-Math.pow(a,2))},circInOut:function(a){a*=2;if(a<1)return-0.5*(Math.sqrt(1-Math.pow(a,2))-1);a-=2;return 0.5*(Math.sqrt(1-
Math.pow(a,2))+1)},backIn:function(a){return Math.pow(a,2)*(2.70158*a-1.70158)},backOut:function(a){a-=1;return Math.pow(a,2)*(2.70158*a+1.70158)+1},backInOut:function(a){a*=2;if(a<1)return Math.pow(a,2)*(3.5949095*a-2.5949095)/2;a-=2;return(Math.pow(a,2)*(3.5949095*a+2.5949095)+2)/2},elasticIn:function(a){if(a==0||a==1)return a;a-=1;return-1*Math.pow(2,10*a)*Math.sin((a-0.075)*2*Math.PI/0.3)},elasticOut:function(a){return a==0||a==1?a:Math.pow(2,-10*a)*Math.sin((a-0.075)*2*Math.PI/0.3)+1},elasticInOut:function(a){if(a==
0)return 0;a*=2;if(a==2)return 1;var b=0.3*1.5,c=b/4;if(a<1)return a-=1,-0.5*Math.pow(2,10*a)*Math.sin((a-c)*2*Math.PI/b);a-=1;return 0.5*Math.pow(2,-10*a)*Math.sin((a-c)*2*Math.PI/b)+1},bounceIn:function(a){return 1-dojo.fx.easing.bounceOut(1-a)},bounceOut:function(a){a<1/2.75?a=7.5625*Math.pow(a,2):a<2/2.75?(a-=1.5/2.75,a=7.5625*Math.pow(a,2)+0.75):a<2.5/2.75?(a-=2.25/2.75,a=7.5625*Math.pow(a,2)+0.9375):(a-=2.625/2.75,a=7.5625*Math.pow(a,2)+0.984375);return a},bounceInOut:function(a){return a<0.5?
dojo.fx.easing.bounceIn(a*2)/2:dojo.fx.easing.bounceOut(a*2-1)/2+0.5}};
dojo._hasResource["dojox.charting.plot2d.Spider"]||(dojo._hasResource["dojox.charting.plot2d.Spider"]=!0,dojo.provide("dojox.charting.plot2d.Spider"),dojo.experimental("dojox.charting.plot2d.Spider"),function(){var a=dojox.lang.functional,b=dojox.lang.utils,c=dojox.charting.plot2d.common,d=dojox.charting.axis2d.common,f=dojox.gfx,g=f.matrix;dojo.declare("dojox.charting.plot2d.Spider",[dojox.charting.Element,dojox.charting.plot2d._PlotEvents],{defaultParams:{labels:!0,ticks:!1,fixed:!0,precision:1,
labelOffset:-10,labelStyle:"default",htmlLabels:!0,startAngle:-90,divisions:3,axisColor:"",axisWidth:0,spiderColor:"",spiderWidth:0,seriesWidth:0,seriesFillAlpha:0.2,spiderOrigin:0.16,markerSize:3,spiderType:"polygon",animationType:dojo.fx.easing.backOut,axisTickFont:"",axisTickFontColor:"",axisFont:"",axisFontColor:""},optionalParams:{radius:0,font:"",fontColor:""},constructor:function(a,c){this.opt=dojo.clone(this.defaultParams);b.updateWithObject(this.opt,c);b.updateWithPattern(this.opt,c,this.optionalParams);
this.series=[];this.dyn=[];this.datas={};this.labelKey=[];this.oldSeriePoints={};this.animations={}},clear:function(){this.dirty=!0;this.dyn=[];this.series=[];this.datas={};this.labelKey=[];this.oldSeriePoints={};this.animations={};return this},setAxis:function(){return this},addSeries:function(a){this.series.push(a);for(var b in a.data){var c=a.data[b],d=this.datas[b];d?(d.vlist.push(c),d.min=Math.min(d.min,c),d.max=Math.max(d.max,c)):this.datas[b]={min:c,max:c,vlist:[c]}}if(this.labelKey.length<=
0)for(b in a.data)this.labelKey.push(b);return this},getSeriesStats:function(){return dojox.charting.plot2d.common.collectSimpleStats(this.series)},calculateAxes:function(a){this.initializeScalers(a,this.getSeriesStats());return this},getRequiredColors:function(){return this.series.length},initializeScalers:function(a,b){this._hAxis?(this._hAxis.initialized()||this._hAxis.calculate(b.hmin,b.hmax,a.width),this._hScaler=this._hAxis.getScaler()):this._hScaler=dojox.charting.scaler.primitive.buildScaler(b.hmin,
b.hmax,a.width);this._vAxis?(this._vAxis.initialized()||this._vAxis.calculate(b.vmin,b.vmax,a.height),this._vScaler=this._vAxis.getScaler()):this._vScaler=dojox.charting.scaler.primitive.buildScaler(b.vmin,b.vmax,a.height);return this},render:function(b,c){if(!this.dirty)return this;this.dirty=!1;this.cleanGroup();var l=this.group,m=this.chart.theme;this.resetEvents();if(!this.series||!this.series.length)return this;var n=this.opt,o=m.axis,p=(b.width-c.l-c.r)/2,q=(b.height-c.t-c.b)/2,s=Math.min(p,
q),t=n.font||o.majorTick&&o.majorTick.font||o.tick&&o.tick.font||"normal normal normal 7pt Tahoma",r=n.axisFont||o.tick&&o.tick.titleFont||"normal normal normal 11pt Tahoma",u=n.axisTickFontColor||o.majorTick&&o.majorTick.fontColor||o.tick&&o.tick.fontColor||"silver",z=n.axisFontColor||o.tick&&o.tick.titleFontColor||"black",A=n.axisColor||o.tick&&o.tick.axisColor||"silver",v=n.spiderColor||o.tick&&o.tick.spiderColor||"silver",w=n.axisWidth||o.stroke&&o.stroke.width||2,C=n.spiderWidth||o.stroke&&o.stroke.width||
2,o=n.seriesWidth||o.stroke&&o.stroke.width||2,D=f.normalizedLength(f.splitFontString(r).size),B=g._degToRad(n.startAngle),E,G,H,N,P,L,O=n.spiderOrigin,Q=n.divisions>=3?n.divisions:3,X=n.markerSize,J=n.spiderType,V=n.animationType,F=n.labelOffset<-10?n.labelOffset:-10;n.labels&&(s=dojo.map(this.series,function(a){return a.name},this),s=a.foldl1(a.map(s,function(a){return dojox.gfx._base._getTextBox(a,{font:m.series.font}).w},this),"Math.max(a, b)")/2,s=Math.min(p-2*s,q-D)+F,E=s-F);if("radius"in n)s=
n.radius,E=s-F;s/=1.2;p={cx:c.l+p,cy:c.t+q,r:s};for(q=this.series.length-1;q>=0;q--){var K=this.series[q];if(!this.dirty&&!K.dirty)m.skip();else if(K.cleanGroup(),F=K.data,F!==null&&(D=this._getObjectLength(F),!G||G.length<=0))if(G=[],H=[],L=[],this._buildPoints(G,D,p,s,B,!0),this._buildPoints(H,D,p,s*O,B,!0),this._buildPoints(L,D,p,E,B),Q>2){N=[];P=[];for(F=0;F<Q-2;F++)N[F]=[],this._buildPoints(N[F],D,p,s*(O+(1-O)*(F+1)/(Q-1)),B,!0),P[F]=s*(O+(1-O)*(F+1)/(Q-1))}}q=l.createGroup();A={color:A,width:w};
D={color:v,width:C};for(F=G.length-1;F>=0;--F)v=G[F],C={x:v.x+(v.x-p.cx)*0.2,y:v.y+(v.y-p.cy)*0.2},v={x:v.x+(v.x-p.cx)*0.2/2,y:v.y+(v.y-p.cy)*0.2/2},q.createLine({x1:p.cx,y1:p.cy,x2:C.x,y2:C.y}).setStroke(A),this._drawArrow(q,C,v,A);q=l.createGroup();for(F=L.length-1;F>=0;--F)v=L[F],C=dojox.gfx._base._getTextBox(this.labelKey[F],{font:r}).w||0,A=this.opt.htmlLabels&&dojox.gfx.renderer!="vml"?"html":"gfx",elem=d.createText[A](this.chart,q,!dojo._isBodyLtr()&&A=="html"?v.x+C-b.width:v.x,v.y,"middle",
this.labelKey[F],r,z),this.opt.htmlLabels&&this.htmlElements.push(elem);r=l.createGroup();if(J=="polygon"){if(r.createPolyline(G).setStroke(D),r.createPolyline(H).setStroke(D),N.length>0)for(F=N.length-1;F>=0;--F)r.createPolyline(N[F]).setStroke(D)}else if(this._getObjectLength(this.datas),r.createCircle({cx:p.cx,cy:p.cy,r:s}).setStroke(D),r.createCircle({cx:p.cx,cy:p.cy,r:s*O}).setStroke(D),P.length>0)for(F=P.length-1;F>=0;--F)r.createCircle({cx:p.cx,cy:p.cy,r:P[F]}).setStroke(D);P=l.createGroup();
D=this._getObjectLength(this.datas);G=0;for(var T in this.datas){r=this.datas[T];N=r.min;r=r.max;r-=N;z=B+2*Math.PI*G/D;for(q=0;q<Q;q++)L=N+r*q/(Q-1),v=this._getCoordinate(p,s*(O+(1-O)*q/(Q-1)),z),L=this._getLabel(L),C=dojox.gfx._base._getTextBox(L,{font:t}).w||0,A=this.opt.htmlLabels&&dojox.gfx.renderer!="vml"?"html":"gfx",this.opt.htmlLabels&&this.htmlElements.push(d.createText[A](this.chart,P,!dojo._isBodyLtr()&&A=="html"?v.x+C-b.width:v.x,v.y,"start",L,t,u));G++}this.chart.seriesShapes={};for(q=
this.series.length-1;q>=0;q--)if(K=this.series[q],F=K.data,F!==null){var R=[];G=0;var U=[];for(T in F)r=this.datas[T],N=r.min,r=r.max,r-=N,t=F[T],z=B+2*Math.PI*G/D,v=this._getCoordinate(p,s*(O+(1-O)*(t-N)/r),z),R.push(v),U.push({sname:K.name,key:T,data:t}),G++;R[R.length]=R[0];U[U.length]=U[0];var t=this._getBoundary(R),u=m.next("spider",[n,K]),M=K.group,I=f.normalizeColor(u.series.fill),u={color:u.series.fill,width:o};I.a=n.seriesFillAlpha;K.dyn={fill:I,stroke:u};u=this._createSeriesEntry(M,this.oldSeriePoints[K.name]||
H,R,I,u,s,O,X,V);this.chart.seriesShapes[K.name]=u;this.oldSeriePoints[K.name]=R;this._connectEvents({element:"spider_poly",index:q,id:"spider_poly_"+K.name,run:K,plot:this,shape:u.poly,parent:M,brect:t,cx:p.cx,cy:p.cy,cr:s,f:I,s:l});this._connectEvents({element:"spider_plot",index:q,id:"spider_plot_"+K.name,run:K,plot:this,shape:K.group});dojo.forEach(u.circles,function(a,b){a.getShape();this._connectEvents({element:"spider_circle",index:b,id:"spider_circle_"+K.name+b,run:K,plot:this,shape:a,parent:M,
tdata:U[b],cx:R[b].x,cy:R[b].y,f:I,s:l})},this)}return this},_createSeriesEntry:function(a,b,c,d,f,g,p,q,s){for(var t=a.createPolyline(b).setFill(d).setStroke(f),r=[],g=0;g<b.length;g++)p=b[g],p=a.createCircle({cx:p.x,cy:p.y,r:q}).setFill(d).setStroke(f),r.push(p);d=dojo.map(c,function(a,c){var d=new dojo._Animation({duration:1E3,easing:s,curve:[b[c].y,a.y]}),f=r[c];dojo.connect(d,"onAnimate",function(a){var b=t.getShape();b.points[c].y=a;t.setShape(b);b=f.getShape();b.cy=a;f.setShape(b)});return d});
c=dojo.map(c,function(a,c){var d=new dojo._Animation({duration:1E3,easing:s,curve:[b[c].x,a.x]}),f=r[c];dojo.connect(d,"onAnimate",function(a){var b=t.getShape();b.points[c].x=a;t.setShape(b);b=f.getShape();b.cx=a;f.setShape(b)});return d});dojo.fx.combine(d.concat(c)).play();return{group:a,poly:t,circles:r}},plotEvent:function(a){var b=a.id?a.id:"default";b in this.animations?(b=this.animations[b],b.anim&&b.anim.stop(!0)):b=this.animations[b]={};if(a.element=="spider_poly"){if(!b.color){var c=a.shape.getFill();
if(!c||!(c instanceof dojo.Color))return;var d=b,f;f=(new dojox.color.Color(c)).toHsl();f.s==0?f.l=f.l<50?100:0:(f.s=100,f.l=f.l<50?75:f.l>75?50:f.l-50>75-f.l?50:75);f=dojox.color.fromHsl(f);f.a=0.7;d.color={start:c,end:f}}c=b.color.start;d=b.color.end;a.type=="onmouseout"&&(f=c,c=d,d=f);b.anim=dojox.gfx.fx.animateFill({shape:a.shape,duration:800,easing:dojo.fx.easing.backOut,color:{start:c,end:d}});b.anim.play()}else a.element=="spider_circle"?(a.type=="onmouseover"?(c=1.5,d={type:"rect"},d.x=a.cx,
d.y=a.cy,d.width=d.height=1,f=dojo.coords(this.chart.node,!0),d.x+=f.x,d.y+=f.y,d.x=Math.round(d.x),d.y=Math.round(d.y),d.width=Math.ceil(d.width),d.height=Math.ceil(d.height),this.aroundRect=d,d=["after","before"],dijit&&dijit.Tooltip&&dijit.showTooltip(a.tdata.sname+"<br/>"+a.tdata.key+"<br/>"+a.tdata.data,this.aroundRect,d)):(dojox.gfx.matrix.scaleAt(1.5,a.cx,a.cy),c=1/1.5,dijit&&dijit.Tooltip&&this.aroundRect&&dijit.hideTooltip(this.aroundRect)),f=a.shape.getShape(),d=g.scaleAt(1.5,f.cx,f.cy),
b.anim=dojox.gfx.fx.animateTransform({shape:a.shape,duration:200,easing:dojo.fx.easing.backOut,transform:[{name:"scaleAt",start:[1,f.cx,f.cy],end:[c,f.cx,f.cy]},d]}),b.anim.play()):a.element=="spider_plot"&&a.type=="onmouseover"&&!dojo.isIE&&a.shape.moveToFront()},_getBoundary:function(a){for(var b=a[0].x,c=a[0].x,d=a[0].y,f=a[0].y,g=0;g<a.length;g++)var p=a[g],b=Math.max(p.x,b),d=Math.max(p.y,d),c=Math.min(p.x,c),f=Math.min(p.y,f);return{x:c,y:f,width:b-c,height:d-f}},_drawArrow:function(a,b,c,d){var f=
Math.sqrt(Math.pow(c.x-b.x,2)+Math.pow(c.y-b.y,2)),g=(c.y-b.y)/f,p=(c.x-b.x)/f;a.createPolyline([b,{x:c.x+f/3*-g,y:c.y+f/3*p},{x:c.x+f/3*g,y:c.y+f/3*-p}]).setFill(d.color).setStroke(d)},_buildPoints:function(a,b,c,d,f,g){for(var p=0;p<b;p++)a.push(this._getCoordinate(c,d,f+2*Math.PI*p/b));g&&a.push(this._getCoordinate(c,d,f+2*Math.PI))},_getCoordinate:function(a,b,c){return{x:a.cx+b*Math.cos(c),y:a.cy+b*Math.sin(c)}},_getObjectLength:function(a){var b=0;if(dojo.isObject(a))for(var c in a)b++;return b},
_getLabel:function(a){return c.getLabel(a,this.opt.fixed,this.opt.precision)}})}());
dojo._hasResource["dojox.lang.functional.fold"]||(dojo._hasResource["dojox.lang.functional.fold"]=!0,dojo.provide("dojox.lang.functional.fold"),function(){var a=dojo,b=dojox.lang.functional,c={};a.mixin(b,{foldl:function(d,f,g,h){typeof d=="string"&&(d=d.split(""));var h=h||a.global,f=b.lambda(f),k,l;if(a.isArray(d))for(k=0,l=d.length;k<l;g=f.call(h,g,d[k],k,d),++k);else if(typeof d.hasNext=="function"&&typeof d.next=="function")for(k=0;d.hasNext();g=f.call(h,g,d.next(),k++,d));else for(k in d)k in
c||(g=f.call(h,g,d[k],k,d));return g},foldl1:function(d,f,g){typeof d=="string"&&(d=d.split(""));var g=g||a.global,f=b.lambda(f),h,k,l;if(a.isArray(d)){h=d[0];for(k=1,l=d.length;k<l;h=f.call(g,h,d[k],k,d),++k);}else if(typeof d.hasNext=="function"&&typeof d.next=="function"){if(d.hasNext()){h=d.next();for(k=1;d.hasNext();h=f.call(g,h,d.next(),k++,d));}}else for(k in l=!0,d)k in c||(l?(h=d[k],l=!1):h=f.call(g,h,d[k],k,d));return h},foldr:function(c,f,g,h){typeof c=="string"&&(c=c.split(""));for(var h=
h||a.global,f=b.lambda(f),k=c.length;k>0;--k,g=f.call(h,g,c[k],k,c));return g},foldr1:function(c,f,g){typeof c=="string"&&(c=c.split(""));var g=g||a.global,f=b.lambda(f),h=c.length,k=c[h-1];for(h-=1;h>0;--h,k=f.call(g,k,c[h],h,c));return k},reduce:function(a,c,g){return arguments.length<3?b.foldl1(a,c):b.foldl(a,c,g)},reduceRight:function(a,c,g){return arguments.length<3?b.foldr1(a,c):b.foldr(a,c,g)},unfold:function(c,f,g,h,k){for(var k=k||a.global,f=b.lambda(f),g=b.lambda(g),c=b.lambda(c),l=[];!c.call(k,
h);l.push(f.call(k,h)),h=g.call(k,h));return l}})}());
if(!dojo._hasResource["dojox.color._base"])dojo._hasResource["dojox.color._base"]=!0,dojo.provide("dojox.color._base"),dojox.color.Color=dojo.Color,dojox.color.blend=dojo.blendColors,dojox.color.fromRgb=dojo.colorFromRgb,dojox.color.fromHex=dojo.colorFromHex,dojox.color.fromArray=dojo.colorFromArray,dojox.color.fromString=dojo.colorFromString,dojox.color.greyscale=dojo.colors.makeGrey,dojo.mixin(dojox.color,{fromCmy:function(a,b,c){if(dojo.isArray(a))b=a[1],c=a[2],a=a[0];else if(dojo.isObject(a))b=
a.m,c=a.y,a=a.c;a/=100;b/=100;c/=100;b=1-b;c=1-c;return new dojox.color.Color({r:Math.round((1-a)*255),g:Math.round(b*255),b:Math.round(c*255)})},fromCmyk:function(a,b,c,d){if(dojo.isArray(a))b=a[1],c=a[2],d=a[3],a=a[0];else if(dojo.isObject(a))b=a.m,c=a.y,d=a.b,a=a.c;a/=100;b/=100;c/=100;d/=100;a=1-Math.min(1,a*(1-d)+d);b=1-Math.min(1,b*(1-d)+d);c=1-Math.min(1,c*(1-d)+d);return new dojox.color.Color({r:Math.round(a*255),g:Math.round(b*255),b:Math.round(c*255)})},fromHsl:function(a,b,c){if(dojo.isArray(a))b=
a[1],c=a[2],a=a[0];else if(dojo.isObject(a))b=a.s,c=a.l,a=a.h;b/=100;for(c/=100;a<0;)a+=360;for(;a>=360;)a-=360;var d,f,g;a<120?(d=(120-a)/60,f=a/60,g=0):a<240?(d=0,f=(240-a)/60,g=(a-120)/60):(d=(a-240)/60,f=0,g=(360-a)/60);d=2*b*Math.min(d,1)+(1-b);f=2*b*Math.min(f,1)+(1-b);g=2*b*Math.min(g,1)+(1-b);c<0.5?(d*=c,f*=c,g*=c):(d=(1-c)*d+2*c-1,f=(1-c)*f+2*c-1,g=(1-c)*g+2*c-1);return new dojox.color.Color({r:Math.round(d*255),g:Math.round(f*255),b:Math.round(g*255)})},fromHsv:function(a,b,c){if(dojo.isArray(a))b=
a[1],c=a[2],a=a[0];else if(dojo.isObject(a))b=a.s,c=a.v,a=a.h;a==360&&(a=0);b/=100;c/=100;var d,f,g;if(b==0)d=c,g=c,f=c;else{var h=a/60,a=Math.floor(h),k=h-a,h=c*(1-b),l=c*(1-b*k),b=c*(1-b*(1-k));switch(a){case 0:d=c;f=b;g=h;break;case 1:d=l;f=c;g=h;break;case 2:d=h;f=c;g=b;break;case 3:d=h;f=l;g=c;break;case 4:d=b;f=h;g=c;break;case 5:d=c,f=h,g=l}}return new dojox.color.Color({r:Math.round(d*255),g:Math.round(f*255),b:Math.round(g*255)})}}),dojo.extend(dojox.color.Color,{toCmy:function(){var a=1-
this.g/255,b=1-this.b/255;return{c:Math.round((1-this.r/255)*100),m:Math.round(a*100),y:Math.round(b*100)}},toCmyk:function(){var a,b,c,d=this.r/255;b=this.g/255;c=this.b/255;a=Math.min(1-d,1-b,1-c);b=(1-b-a)/(1-a);c=(1-c-a)/(1-a);return{c:Math.round((1-d-a)/(1-a)*100),m:Math.round(b*100),y:Math.round(c*100),b:Math.round(a*100)}},toHsl:function(){var a=this.r/255,b=this.g/255,c=this.b/255,d=Math.min(a,c,b),f=Math.max(a,b,c),g=f-d,h=0,k=0,d=(d+f)/2;d>0&&d<1&&(k=g/(d<0.5?2*d:2-2*d));g>0&&(f==a&&f!=
b&&(h+=(b-c)/g),f==b&&f!=c&&(h+=2+(c-a)/g),f==c&&f!=a&&(h+=4+(a-b)/g),h*=60);return{h:h,s:Math.round(k*100),l:Math.round(d*100)}},toHsv:function(){var a=this.r/255,b=this.g/255,c=this.b/255,d=Math.min(a,c,b),f=Math.max(a,b,c),d=f-d,g=null,h=f==0?0:d/f;h==0?g=0:(g=a==f?60*(b-c)/d:b==f?120+60*(c-a)/d:240+60*(a-b)/d,g<0&&(g+=360));return{h:g,s:Math.round(h*100),v:Math.round(f*100)}}});dojo._hasResource["dojox.color"]||(dojo._hasResource["dojox.color"]=!0,dojo.provide("dojox.color"));
dojo._hasResource["dojox.color.Palette"]||(dojo._hasResource["dojox.color.Palette"]=!0,dojo.provide("dojox.color.Palette"),function(){function a(a,b,c){var d=new dojox.color.Palette;d.colors=[];dojo.forEach(a.colors,function(a){var f=b=="dg"?a.g+c:a.g,g=b=="db"?a.b+c:a.b,h=b=="da"?a.a+c:a.a;d.colors.push(new dojox.color.Color({r:Math.min(255,Math.max(0,b=="dr"?a.r+c:a.r)),g:Math.min(255,Math.max(0,f)),b:Math.min(255,Math.max(0,g)),a:Math.min(1,Math.max(0,h))}))});return d}function b(a,b,c){var d=
new dojox.color.Palette;d.colors=[];dojo.forEach(a.colors,function(a){var a=a.toCmy(),f=b=="dm"?a.m+c:a.m,g=b=="dy"?a.y+c:a.y;d.colors.push(dojox.color.fromCmy(Math.min(100,Math.max(0,b=="dc"?a.c+c:a.c)),Math.min(100,Math.max(0,f)),Math.min(100,Math.max(0,g))))});return d}function c(a,b,c){var d=new dojox.color.Palette;d.colors=[];dojo.forEach(a.colors,function(a){var a=a.toCmyk(),f=b=="dm"?a.m+c:a.m,g=b=="dy"?a.y+c:a.y,h=b=="dk"?a.b+c:a.b;d.colors.push(dojox.color.fromCmyk(Math.min(100,Math.max(0,
b=="dc"?a.c+c:a.c)),Math.min(100,Math.max(0,f)),Math.min(100,Math.max(0,g)),Math.min(100,Math.max(0,h))))});return d}function d(a,b,c){var d=new dojox.color.Palette;d.colors=[];dojo.forEach(a.colors,function(a){var a=a.toHsl(),f=b=="dl"?a.l+c:a.l;d.colors.push(dojox.color.fromHsl((b=="dh"?a.h+c:a.h)%360,Math.min(100,Math.max(0,b=="ds"?a.s+c:a.s)),Math.min(100,Math.max(0,f))))});return d}function f(a,b,c){var d=new dojox.color.Palette;d.colors=[];dojo.forEach(a.colors,function(a){var a=a.toHsv(),f=
b=="dv"?a.v+c:a.v;d.colors.push(dojox.color.fromHsv((b=="dh"?a.h+c:a.h)%360,Math.min(100,Math.max(0,b=="ds"?a.s+c:a.s)),Math.min(100,Math.max(0,f))))});return d}var g=dojox.color;g.Palette=function(a){this.colors=[];if(a instanceof dojox.color.Palette)this.colors=a.colors.slice(0);else if(a instanceof dojox.color.Color)this.colors=[null,null,a,null,null];else if(dojo.isArray(a))this.colors=dojo.map(a.slice(0),function(a){return dojo.isString(a)?new dojox.color.Color(a):a});else if(dojo.isString(a))this.colors=
[null,null,new dojox.color.Color(a),null,null]};dojo.extend(g.Palette,{transform:function(g){var k=a;if(g.use){var l=g.use.toLowerCase();l.indexOf("hs")==0?k=l.charAt(2)=="l"?d:f:l.indexOf("cmy")==0&&(k=l.charAt(3)=="k"?c:b)}else if("dc"in g||"dm"in g||"dy"in g)k="dk"in g?c:b;else if("dh"in g||"ds"in g)k="dv"in g?f:d;var l=this,m;for(m in g)m!="use"&&(l=k(l,m,g[m]));return l},clone:function(){return new g.Palette(this)}});dojo.mixin(g.Palette,{generators:{analogous:function(a){var b=a.high||60,c=
a.low||18,a=(dojo.isString(a.base)?new dojox.color.Color(a.base):a.base).toHsv(),b=[(a.h+c+360)%360,(a.h+Math.round(c/2)+360)%360,a.h,(a.h-Math.round(b/2)+360)%360,(a.h-b+360)%360],c=Math.max(10,a.s<=95?a.s+5:100-(a.s-95)),d=a.s>1?a.s-1:21-a.s,f=a.v>=92?a.v-9:Math.max(a.v+9,20),o=a.v<=90?Math.max(a.v+5,20):95+Math.ceil((a.v-90)/2),p=[c,d,a.s,c,c],q=[f,o,a.v,f,o];return new g.Palette(dojo.map(b,function(a,b){return dojox.color.fromHsv(a,p[b],q[b])}))},monochromatic:function(a){var a=dojo.isString(a.base)?
new dojox.color.Color(a.base):a.base,b=a.toHsv(),c=b.s-30>9?b.s-30:b.s+30,d=b.s,f=b.v-20>20?b.v-20:b.v+60,o=b.v-50>20?b.v-50:b.v+30;return new g.Palette([dojox.color.fromHsv(b.h,c,100-(100-b.v)*0.8),dojox.color.fromHsv(b.h,d,o),a,dojox.color.fromHsv(b.h,c,o),dojox.color.fromHsv(b.h,d,f)])},triadic:function(a){var a=dojo.isString(a.base)?new dojox.color.Color(a.base):a.base,b=a.toHsv(),c=(b.h-157+360)%360,d=b.s>90?b.s-10:b.s+10,f=b.s>95?b.s-5:b.s+5,o=b.v-20>20?b.v-20:b.v+20,p=b.v-30>20?b.v-30:b.v+
30,q=b.v-30>70?b.v-30:b.v+30;return new g.Palette([dojox.color.fromHsv((b.h+57+360)%360,b.s>20?b.s-10:b.s+10,b.v),dojox.color.fromHsv(b.h,d,p),a,dojox.color.fromHsv(c,d,o),dojox.color.fromHsv(c,f,q)])},complementary:function(a){var a=dojo.isString(a.base)?new dojox.color.Color(a.base):a.base,b=a.toHsv(),c=b.h*2+137<360?b.h*2+137:Math.floor(b.h/2)-137,d=Math.max(b.s-10,0),f=100-(100-b.s)*0.9,o=Math.min(100,b.s+20),p=Math.min(100,b.v+30),q=b.v>20?b.v-30:b.v+30;return new g.Palette([dojox.color.fromHsv(b.h,
d,p),dojox.color.fromHsv(b.h,f,q),a,dojox.color.fromHsv(c,o,q),dojox.color.fromHsv(c,b.s,b.v)])},splitComplementary:function(a){var b=dojo.isString(a.base)?new dojox.color.Color(a.base):a.base,c=a.da||30,a=b.toHsv(),d=a.h*2+137<360?a.h*2+137:Math.floor(a.h/2)-137,f=(d-c+360)%360,c=(d+c)%360,d=Math.max(a.s-10,0),o=100-(100-a.s)*0.9,p=Math.min(100,a.s+20),q=Math.min(100,a.v+30),s=a.v>20?a.v-30:a.v+30;return new g.Palette([dojox.color.fromHsv(f,d,q),dojox.color.fromHsv(f,o,s),b,dojox.color.fromHsv(c,
p,s),dojox.color.fromHsv(c,a.s,a.v)])},compound:function(a){var a=dojo.isString(a.base)?new dojox.color.Color(a.base):a.base,b=a.toHsv(),c=b.h*2+18<360?b.h*2+18:Math.floor(b.h/2)-18,d=b.h*2+120<360?b.h*2+120:Math.floor(b.h/2)-120,f=b.h*2+99<360?b.h*2+99:Math.floor(b.h/2)-99,o=b.s-40>10?b.s-40:b.s+40,p=b.s-10>80?b.s-10:b.s+10,q=b.s-25>10?b.s-25:b.s+25,s=b.v-40>10?b.v-40:b.v+40,t=b.v-20>80?b.v-20:b.v+20,b=Math.max(b.v,20);return new g.Palette([dojox.color.fromHsv(c,o,s),dojox.color.fromHsv(c,p,t),a,
dojox.color.fromHsv(d,q,b),dojox.color.fromHsv(f,p,t)])},shades:function(a){var a=dojo.isString(a.base)?new dojox.color.Color(a.base):a.base,b=a.toHsv(),c=b.s==100&&b.v==0?0:b.s,d=b.v-50>20?b.v-50:b.v+30,f=b.v-25>=20?b.v-25:b.v+55,o=b.v-75>=20?b.v-75:b.v+5,p=Math.max(b.v-10,20);return new g.Palette([new dojox.color.fromHsv(b.h,c,d),new dojox.color.fromHsv(b.h,c,f),a,new dojox.color.fromHsv(b.h,c,o),new dojox.color.fromHsv(b.h,c,p)])}},generate:function(a,b){if(dojo.isFunction(b))return b({base:a});
else if(g.Palette.generators[b])return g.Palette.generators[b]({base:a});throw Error("dojox.color.Palette.generate: the specified generator ('"+b+"') does not exist.");}})}());
dojo._hasResource["dojox.charting.Theme"]||(dojo._hasResource["dojox.charting.Theme"]=!0,dojo.provide("dojox.charting.Theme"),dojo.declare("dojox.charting.Theme",null,{shapeSpaces:{shape:1,shapeX:1,shapeY:1},constructor:function(a){var a=a||{},b=dojox.charting.Theme.defaultTheme;dojo.forEach(["chart","plotarea","axis","series","marker"],function(c){this[c]=dojo.delegate(b[c],a[c])},this);a.seriesThemes&&a.seriesThemes.length?(this.colors=null,this.seriesThemes=a.seriesThemes.slice(0)):(this.seriesThemes=
null,this.colors=(a.colors||dojox.charting.Theme.defaultColors).slice(0));this.markerThemes=null;if(a.markerThemes&&a.markerThemes.length)this.markerThemes=a.markerThemes.slice(0);this.markers=a.markers?dojo.clone(a.markers):dojo.delegate(dojox.charting.Theme.defaultMarkers);this.noGradConv=a.noGradConv;this.noRadialConv=a.noRadialConv;a.reverseFills&&this.reverseFills();this._current=0;this._buildMarkerArray()},clone:function(){var a=new dojox.charting.Theme({chart:this.chart,plotarea:this.plotarea,
axis:this.axis,series:this.series,marker:this.marker,colors:this.colors,markers:this.markers,seriesThemes:this.seriesThemes,markerThemes:this.markerThemes,noGradConv:this.noGradConv,noRadialConv:this.noRadialConv});dojo.forEach("clone,clear,next,skip,addMixin,post,getTick".split(","),function(b){this.hasOwnProperty(b)&&(a[b]=this[b])},this);return a},clear:function(){this._current=0},next:function(a,b,c){var d=dojox.lang.utils.merge,f;if(this.colors){f=dojo.delegate(this.series);var d=dojo.delegate(this.marker),
g=new dojo.Color(this.colors[this._current%this.colors.length]),h;f.stroke&&f.stroke.color?(f.stroke=dojo.delegate(f.stroke),h=new dojo.Color(f.stroke.color),f.stroke.color=new dojo.Color(g),f.stroke.color.a=h.a):f.stroke={color:g};d.stroke&&d.stroke.color?(d.stroke=dojo.delegate(d.stroke),h=new dojo.Color(d.stroke.color),d.stroke.color=new dojo.Color(g),d.stroke.color.a=h.a):d.stroke={color:g};!f.fill||f.fill.type?f.fill=g:(h=new dojo.Color(f.fill),f.fill=new dojo.Color(g),f.fill.a=h.a);!d.fill||
d.fill.type?d.fill=g:(h=new dojo.Color(d.fill),d.fill=new dojo.Color(g),d.fill.a=h.a)}else f=this.seriesThemes?d(this.series,this.seriesThemes[this._current%this.seriesThemes.length]):this.series,d=this.markerThemes?d(this.marker,this.markerThemes[this._current%this.markerThemes.length]):f;f={series:f,marker:d,symbol:d&&d.symbol||this._markers[this._current%this._markers.length]};++this._current;b&&(f=this.addMixin(f,a,b));c&&(f=this.post(f,a));return f},skip:function(){++this._current},addMixin:function(a,
b,c,d){if(dojo.isArray(c))dojo.forEach(c,function(c){a=this.addMixin(a,b,c)},this);else{var f={};"color"in c&&(b=="line"||b=="area"?(dojo.setObject("series.stroke.color",c.color,f),dojo.setObject("marker.stroke.color",c.color,f)):dojo.setObject("series.fill",c.color,f));dojo.forEach("stroke,outline,shadow,fill,font,fontColor,labelWiring".split(","),function(a){var b="marker"+a.charAt(0).toUpperCase()+a.substr(1),d=b in c;a in c&&(dojo.setObject("series."+a,c[a],f),d||dojo.setObject("marker."+a,c[a],
f));d&&dojo.setObject("marker."+a,c[b],f)});if("marker"in c)f.symbol=c.marker;a=dojox.lang.utils.merge(a,f)}d&&(a=this.post(a,b));return a},post:function(a,b){var c=a.series.fill,d;if(!this.noGradConv&&this.shapeSpaces[c.space]&&c.type=="linear"){if(b=="bar")d={x1:c.y1,y1:c.x1,x2:c.y2,y2:c.x2};else if(!this.noRadialConv&&c.space=="shape"&&(b=="slice"||b=="circle"))d={type:"radial",cx:0,cy:0,r:100};if(d)return dojox.lang.utils.merge(a,{series:{fill:d}})}return a},getTick:function(a,b){var c=this.axis.tick,
d=a+"Tick";merge=dojox.lang.utils.merge;c?this.axis[d]&&(c=merge(c,this.axis[d])):c=this.axis[d];b&&(c?b[d]&&(c=merge(c,b[d])):c=b[d]);return c},inspectObjects:function(a){dojo.forEach(["chart","plotarea","axis","series","marker"],function(b){a(this[b])},this);this.seriesThemes&&dojo.forEach(this.seriesThemes,a);this.markerThemes&&dojo.forEach(this.markerThemes,a)},reverseFills:function(){this.inspectObjects(function(a){if(a&&a.fill)a.fill=dojox.gfx.gradutils.reverse(a.fill)})},addMarker:function(a,
b){this.markers[a]=b;this._buildMarkerArray()},setMarkers:function(a){this.markers=a;this._buildMarkerArray()},_buildMarkerArray:function(){this._markers=[];for(var a in this.markers)this._markers.push(this.markers[a])}}),dojo.mixin(dojox.charting.Theme,{defaultMarkers:{CIRCLE:"m-3,0 c0,-4 6,-4 6,0 m-6,0 c0,4 6,4 6,0",SQUARE:"m-3,-3 l0,6 6,0 0,-6 z",DIAMOND:"m0,-3 l3,3 -3,3 -3,-3 z",CROSS:"m0,-3 l0,6 m-3,-3 l6,0",X:"m-3,-3 l6,6 m0,-6 l-6,6",TRIANGLE:"m-3,3 l3,-6 3,6 z",TRIANGLE_INVERTED:"m-3,-3 l3,6 3,-6 z"},
defaultColors:["#54544c","#858e94","#6e767a","#948585","#474747"],defaultTheme:{chart:{stroke:null,fill:"white",pageStyle:null,titleGap:20,titlePos:"top",titleFont:"normal normal bold 14pt Tahoma",titleFontColor:"#333"},plotarea:{stroke:null,fill:"white"},axis:{stroke:{color:"#333",width:1},tick:{color:"#666",position:"center",font:"normal normal normal 7pt Tahoma",fontColor:"#333",titleGap:15,titleFont:"normal normal normal 11pt Tahoma",titleFontColor:"#333",titleOrientation:"axis"},majorTick:{width:1,
length:6},minorTick:{width:0.8,length:3},microTick:{width:0.5,length:1}},series:{stroke:{width:1.5,color:"#333"},outline:{width:0.1,color:"#ccc"},shadow:null,fill:"#ccc",font:"normal normal normal 8pt Tahoma",fontColor:"#000",labelWiring:{width:1,color:"#ccc"}},marker:{stroke:{width:1.5,color:"#333"},outline:{width:0.1,color:"#ccc"},shadow:null,fill:"#ccc",font:"normal normal normal 8pt Tahoma",fontColor:"#000"}},defineColors:function(a){var a=a||{},b=[],c=a.num||5;if(a.colors){for(var d=a.colors.length,
f=0;f<c;f++)b.push(a.colors[f%d]);return b}return a.hue?(b=a.saturation||100,d=((a.high||90)+(a.low||30))/2,dojox.color.Palette.generate(dojox.color.fromHsv(a.hue,b,d),"monochromatic").colors):a.generator?dojox.color.Palette.generate(a.base,a.generator).colors:b},generateGradient:function(a,b,c){a=dojo.delegate(a);a.colors=[{offset:0,color:b},{offset:1,color:c}];return a},generateHslColor:function(a,b){var a=new dojox.color.Color(a),c=a.toHsl(),c=dojox.color.fromHsl(c.h,c.s,b);c.a=a.a;return c},generateHslGradient:function(a,
b,c,d){var a=new dojox.color.Color(a),f=a.toHsl(),c=dojox.color.fromHsl(f.h,f.s,c),d=dojox.color.fromHsl(f.h,f.s,d);c.a=d.a=a.a;return dojox.charting.Theme.generateGradient(b,c,d)}}));
dojo._hasResource["dojox.charting.Series"]||(dojo._hasResource["dojox.charting.Series"]=!0,dojo.provide("dojox.charting.Series"),dojo.declare("dojox.charting.Series",dojox.charting.Element,{constructor:function(a,b,c){dojo.mixin(this,c);if(typeof this.plot!="string")this.plot="default";this.update(b)},clear:function(){this.dyn={}},update:function(a){dojo.isArray(a)?this.data=a:(this.source=a,this.data=this.source.data,this.source.setSeriesObject&&this.source.setSeriesObject(this));this.dirty=!0;this.clear()}}));
dojo._hasResource["dojox.charting.Chart"]||(dojo._hasResource["dojox.charting.Chart"]=!0,dojo.provide("dojox.charting.Chart"),function(){function a(a,b){if(a&&b)a.min=Math.min(a.min,b.min),a.max=Math.max(a.max,b.max);return a||b}function b(b,c){var d={},f={};dojo.forEach(b,function(b){var c=d[b.name]=b.getSeriesStats();b.hAxis&&(f[b.hAxis]=a(f[b.hAxis],{min:c.hmin,max:c.hmax}));b.vAxis&&(f[b.vAxis]=a(f[b.vAxis],{min:c.vmin,max:c.vmax}))});dojo.forEach(b,function(a){var b=d[a.name];if(a.hAxis){var g=
f[a.hAxis];b.hmin=g.min;b.hmax=g.max}if(a.vAxis)g=f[a.vAxis],b.vmin=g.min,b.vmax=g.max;a.initializeScalers(c,b)})}var c=dojox.lang.functional,d=dojox.charting,f=dojox.gfx,g=c.lambda("item.clear()"),h=c.lambda("item.purgeGroup()"),k=c.lambda("item.destroy()"),l=c.lambda("item.dirty = false"),m=c.lambda("item.dirty = true"),n=c.lambda("item.name");dojo.declare("dojox.charting.Chart",null,{constructor:function(a,b){b||(b={});this.margins=b.margins?b.margins:{l:10,t:10,r:10,b:10};this.stroke=b.stroke;
this.fill=b.fill;this.delayInMs=b.delayInMs||200;this.title=b.title;this.titleGap=b.titleGap;this.titlePos=b.titlePos;this.titleFont=b.titleFont;this.titleFontColor=b.titleFontColor;this.theme=this.chartTitle=null;this.axes={};this.stack=[];this.plots={};this.series=[];this.runs={};this.dirty=!0;this.coords=null;this.node=dojo.byId(a);var c=dojo.marginBox(a);this.surface=f.createSurface(this.node,c.w||400,c.h||300)},destroy:function(){dojo.forEach(this.series,k);dojo.forEach(this.stack,k);c.forIn(this.axes,
k);this.chartTitle&&this.chartTitle.tagName&&dojo.destroy(this.chartTitle);this.surface.destroy()},getCoords:function(){if(!this.coords)this.coords=dojo.coords(this.node,!0);return this.coords},setTheme:function(a){this.theme=a.clone();this.dirty=!0;return this},addAxis:function(a,b){var c;c=b&&b.type||"Default";if(typeof c=="string"){if(!d.axis2d||!d.axis2d[c])throw Error("Can't find axis: "+c+" - didn't you forget to dojo.require() it?");c=new d.axis2d[c](this,b)}else c=new c(this,b);c.name=a;c.dirty=
!0;a in this.axes&&this.axes[a].destroy();this.axes[a]=c;this.dirty=!0;return this},getAxis:function(a){return this.axes[a]},removeAxis:function(a){if(a in this.axes)this.axes[a].destroy(),delete this.axes[a],this.dirty=!0;return this},addPlot:function(a,b){var c;c=b&&b.type||"Default";if(typeof c=="string"){if(!d.plot2d||!d.plot2d[c])throw Error("Can't find plot: "+c+" - didn't you forget to dojo.require() it?");c=new d.plot2d[c](this,b)}else c=new c(this,b);c.name=a;c.dirty=!0;a in this.plots?(this.stack[this.plots[a]].destroy(),
this.stack[this.plots[a]]=c):(this.plots[a]=this.stack.length,this.stack.push(c));this.dirty=!0;return this},removePlot:function(a){if(a in this.plots){var b=this.plots[a];delete this.plots[a];this.stack[b].destroy();this.stack.splice(b,1);c.forIn(this.plots,function(a,c,d){a>b&&(d[c]=a-1)});var d=dojo.filter(this.series,function(b){return b.plot!=a});if(d.length<this.series.length)dojo.forEach(this.series,function(b){b.plot==a&&b.destroy()}),this.runs={},dojo.forEach(d,function(a,b){this.runs[a.plot]=
b},this),this.series=d;this.dirty=!0}return this},getPlotOrder:function(){return c.map(this.stack,n)},setPlotOrder:function(a){var b={},d=c.filter(a,function(a){if(!(a in this.plots)||a in b)return!1;b[a]=1;return!0},this);d.length<this.stack.length&&c.forEach(this.stack,function(a){a=a.name;a in b||d.push(a)});a=c.map(d,function(a){return this.stack[this.plots[a]]},this);c.forEach(a,function(a,b){this.plots[a.name]=b},this);this.stack=a;this.dirty=!0;return this},movePlotToFront:function(a){if(a in
this.plots){var b=this.plots[a];if(b){var c=this.getPlotOrder();c.splice(b,1);c.unshift(a);return this.setPlotOrder(c)}}return this},movePlotToBack:function(a){if(a in this.plots){var b=this.plots[a];if(b<this.stack.length-1){var c=this.getPlotOrder();c.splice(b,1);c.push(a);return this.setPlotOrder(c)}}return this},addSeries:function(a,b,c){b=new d.Series(this,b,c);b.name=a;a in this.runs?(this.series[this.runs[a]].destroy(),this.series[this.runs[a]]=b):(this.runs[a]=this.series.length,this.series.push(b));
this.dirty=!0;if(!("ymin"in b)&&"min"in b)b.ymin=b.min;if(!("ymax"in b)&&"max"in b)b.ymax=b.max;return this},removeSeries:function(a){if(a in this.runs){var b=this.runs[a];delete this.runs[a];this.series[b].destroy();this.series.splice(b,1);c.forIn(this.runs,function(a,c,d){a>b&&(d[c]=a-1)});this.dirty=!0}return this},updateSeries:function(a,b){if(a in this.runs){var c=this.series[this.runs[a]];c.update(b);this._invalidateDependentPlots(c.plot,!1);this._invalidateDependentPlots(c.plot,!0)}return this},
getSeriesOrder:function(a){return c.map(c.filter(this.series,function(b){return b.plot==a}),n)},setSeriesOrder:function(a){var b,d={},f=c.filter(a,function(a){if(!(a in this.runs)||a in d)return!1;var c=this.series[this.runs[a]];if(b){if(c.plot!=b)return!1}else b=c.plot;d[a]=1;return!0},this);c.forEach(this.series,function(a){var c=a.name;!(c in d)&&a.plot==b&&f.push(c)});this.series=c.map(f,function(a){return this.series[this.runs[a]]},this).concat(c.filter(this.series,function(a){return a.plot!=
b}));c.forEach(this.series,function(a,b){this.runs[a.name]=b},this);this.dirty=!0;return this},moveSeriesToFront:function(a){if(a in this.runs){var b=this.runs[a],c=this.getSeriesOrder(this.series[b].plot);if(a!=c[0])return c.splice(b,1),c.unshift(a),this.setSeriesOrder(c)}return this},moveSeriesToBack:function(a){if(a in this.runs){var b=this.runs[a],c=this.getSeriesOrder(this.series[b].plot);if(a!=c[c.length-1])return c.splice(b,1),c.push(a),this.setSeriesOrder(c)}return this},resize:function(a,
b){var c;switch(arguments.length){case 1:c=dojo.mixin({},a);dojo.marginBox(this.node,c);break;case 2:c={w:a,h:b},dojo.marginBox(this.node,c)}c=dojo.marginBox(this.node);this.surface.setDimensions(c.w,c.h);this.dirty=!0;this.coords=null;return this.render()},getGeometry:function(){var a={};c.forIn(this.axes,function(b){b.initialized()&&(a[b.name]={name:b.name,vertical:b.vertical,scaler:b.scaler,ticks:b.ticks})});return a},setAxisWindow:function(a,b,c,d){var f=this.axes[a];f&&(f.setWindow(b,c),dojo.forEach(this.stack,
function(b){if(b.hAxis==a||b.vAxis==a)b.zoom=d}));return this},setWindow:function(a,b,d,f,g){"plotArea"in this||this.calculateGeometry();c.forIn(this.axes,function(c){var g,h;g=c.getScaler().bounds;h=g.span/(g.upper-g.lower);c.vertical?(g=b,h=f/h/g):(g=a,h=d/h/g);c.setWindow(g,h)});dojo.forEach(this.stack,function(a){a.zoom=g});return this},zoomIn:function(a,b){var c=this.axes[a];if(c){var c=c.getScaler().bounds,d=Math.min(b[0],b[1]),f=Math.max(b[0],b[1]),d=b[0]<c.lower?c.lower:d,f=b[1]>c.upper?c.upper:
f;this.setAxisWindow(a,(c.upper-c.lower)/(f-d),d-c.lower);this.render()}},calculateGeometry:function(){if(this.dirty)return this.fullGeometry();var a=dojo.filter(this.stack,function(a){return a.dirty||a.hAxis&&this.axes[a.hAxis].dirty||a.vAxis&&this.axes[a.vAxis].dirty},this);b(a,this.plotArea);return this},fullGeometry:function(){this._makeDirty();dojo.forEach(this.stack,g);this.theme||this.setTheme(new dojox.charting.Theme(dojox.charting._def));dojo.forEach(this.series,function(a){if(!(a.plot in
this.plots)){if(!d.plot2d||!d.plot2d.Default)throw Error("Can't find plot: Default - didn't you forget to dojo.require() it?");var b=new d.plot2d.Default(this,{});b.name=a.plot;this.plots[a.plot]=this.stack.length;this.stack.push(b)}this.stack[this.plots[a.plot]].addSeries(a)},this);dojo.forEach(this.stack,function(a){a.hAxis&&a.setAxis(this.axes[a.hAxis]);a.vAxis&&a.setAxis(this.axes[a.vAxis])},this);var a=this.dim=this.surface.getDimensions();a.width=f.normalizedLength(a.width);a.height=f.normalizedLength(a.height);
c.forIn(this.axes,g);b(this.stack,a);var h=this.offsets={l:0,r:0,t:0,b:0};c.forIn(this.axes,function(a){c.forIn(a.getOffsets(),function(a,b){h[b]+=a})});if(this.title){this.titleGap=this.titleGap==0?0:this.titleGap||this.theme.chart.titleGap||20;this.titlePos=this.titlePos||this.theme.chart.titlePos||"top";this.titleFont=this.titleFont||this.theme.chart.titleFont;this.titleFontColor=this.titleFontColor||this.theme.chart.titleFontColor||"black";var k=f.normalizedLength(f.splitFontString(this.titleFont).size);
h[this.titlePos=="top"?"t":"b"]+=k+this.titleGap}c.forIn(this.margins,function(a,b){h[b]+=a});this.plotArea={width:a.width-h.l-h.r,height:a.height-h.t-h.b};c.forIn(this.axes,g);b(this.stack,this.plotArea);return this},render:function(){this.theme&&this.theme.clear();if(this.dirty)return this.fullRender();this.calculateGeometry();c.forEachRev(this.stack,function(a){a.render(this.dim,this.offsets)},this);c.forIn(this.axes,function(a){a.render(this.dim,this.offsets)},this);this._makeClean();this.surface.render&&
this.surface.render();return this},fullRender:function(){this.fullGeometry();var a=this.offsets,b=this.dim,g;dojo.forEach(this.series,h);c.forIn(this.axes,h);dojo.forEach(this.stack,h);this.chartTitle&&this.chartTitle.tagName&&dojo.destroy(this.chartTitle);this.surface.clear();this.chartTitle=null;var k=this.theme,l=k.plotarea&&k.plotarea.fill,m=k.plotarea&&k.plotarea.stroke;g={x:a.l-1,y:a.t-1,width:b.width-a.l-a.r+2,height:b.height-a.t-a.b+2};l&&(l=d.Element.prototype._shapeFill(d.Element.prototype._plotFill(l,
b,a),g),this.surface.createRect(g).setFill(l));m&&this.surface.createRect({x:a.l,y:a.t,width:b.width-a.l-a.r+1,height:b.height-a.t-a.b+1}).setStroke(m);c.foldr(this.stack,function(c,d){return d.render(b,a),0},0);l=this.fill!==void 0?this.fill:k.chart&&k.chart.fill;m=this.stroke!==void 0?this.stroke:k.chart&&k.chart.stroke;if(l=="inherit"){g=this.node;for(l=new dojo.Color(dojo.style(g,"backgroundColor"));l.a==0&&g!=document.documentElement;)l=new dojo.Color(dojo.style(g,"backgroundColor")),g=g.parentNode}l&&
(l=d.Element.prototype._plotFill(l,b,a),a.l&&(g={width:a.l,height:b.height+1},this.surface.createRect(g).setFill(d.Element.prototype._shapeFill(l,g))),a.r&&(g={x:b.width-a.r,width:a.r+1,height:b.height+2},this.surface.createRect(g).setFill(d.Element.prototype._shapeFill(l,g))),a.t&&(g={width:b.width+1,height:a.t},this.surface.createRect(g).setFill(d.Element.prototype._shapeFill(l,g))),a.b&&(g={y:b.height-a.b,width:b.width+1,height:a.b+2},this.surface.createRect(g).setFill(d.Element.prototype._shapeFill(l,
g))));m&&this.surface.createRect({width:b.width-1,height:b.height-1}).setStroke(m);if(this.title)l=f.renderer=="canvas"||!dojo.isIE&&!dojo.isOpera?"html":"gfx",m=f.normalizedLength(f.splitFontString(this.titleFont).size),this.chartTitle=d.axis2d.common.createText[l](this,this.surface,b.width/2,this.titlePos=="top"?m+this.margins.t:b.height-this.margins.b,"middle",this.title,this.titleFont,this.titleFontColor);c.forIn(this.axes,function(c){c.render(b,a)});this._makeClean();this.surface.render&&this.surface.render();
return this},delayedRender:function(){if(!this._delayedRenderHandle)this._delayedRenderHandle=setTimeout(dojo.hitch(this,function(){clearTimeout(this._delayedRenderHandle);this._delayedRenderHandle=null;this.render()}),this.delayInMs);return this},connectToPlot:function(a,b,c){return a in this.plots?this.stack[this.plots[a]].connect(b,c):null},fireEvent:function(a,b,c){if(a in this.runs){var d=this.series[this.runs[a]].plot;d in this.plots&&(d=this.stack[this.plots[d]])&&d.fireEvent(a,b,c)}return this},
_makeClean:function(){dojo.forEach(this.axes,l);dojo.forEach(this.stack,l);dojo.forEach(this.series,l);this.dirty=!1},_makeDirty:function(){dojo.forEach(this.axes,m);dojo.forEach(this.stack,m);dojo.forEach(this.series,m);this.dirty=!0},_invalidateDependentPlots:function(a,b){if(a in this.plots){var c=this.stack[this.plots[a]],d,f=b?"vAxis":"hAxis";if(c[f]){if((d=this.axes[c[f]])&&d.dependOnData())d.dirty=!0,dojo.forEach(this.stack,function(a){if(a[f]&&a[f]==c[f])a.dirty=!0})}else c.dirty=!0}}})}());
if(!dojo._hasResource["dojox.charting.Chart2D"])dojo._hasResource["dojox.charting.Chart2D"]=!0,dojo.provide("dojox.charting.Chart2D"),dojo.deprecated("dojox.charting.Chart2D","Use dojo.charting.Chart instead and require all other components explicitly","2.0"),dojox.charting.Chart2D=dojox.charting.Chart;
if(!dojo._hasResource["RA.MapViewer"]&&(dojo._hasResource["RA.MapViewer"]=!0,dojo.provide("RA.MapViewer"),typeof google!="undefined"&&google!=null&&google.maps!=null))clsObj={"-chains-":{destroy:"before"},constructor:function(a,b){var c=this,d;c.m_container=null;c.m_divToolbar=null;c.m_divMap=null;c.m_divElevation=null;c.m_divStatus=null;c.m_spanElevationStats=null;c.m_ctrlDistance=null;c.m_divWait=null;c.m_imgResize=null;c.m_map=null;c.m_vecRouteSegs=[];c.m_distanceMarkers=[];c.m_activeNoteMarker=
null;c.m_vecNoteMarkers=[];c.m_vecExternalMarkers=[];c.m_vecElevations=[];c.m_infoWindow=null;c.m_toolTip=null;c.m_chartData={};c.m_bRequestingElevations=!1;c.m_distance=0;c.m_distanceUnit=b.distanceUnit==null?RA.DistanceUnit.Mile:b.distanceUnit;c.m_bEnqueuedElevationQuery=!1;c.m_renderElevationTask=null;c.m_elevationRequestId=0;c.m_elevationCounter=0;c.m_taskManager=new RA.TaskManager;c.m_mode=RA.MapViewer.ModeEnum.Foot;c.m_attribs={disableElevation:!1};c.m_noteType=RA.MapViewer.NoteTypeEnum.Note;
c.m_activeButton=null;c.m_btnPrivateMap=null;c.m_btnRace=null;c.m_vecUndos=[];c.m_vecHandlers=[];c.m_bWritable=b.bWritable===!0;c.m_ctrlData=null;c.m_printUrl=null;c.initialize(a,b);if(b.data!=null)c.m_ctrlData=dojo.byId(b.data),c.m_ctrlData!=null&&(c.m_ctrlData.value.length>0&&c.loadMap(RA.Json.deserialize(c.m_ctrlData.value)),c.m_bWritable&&c.m_vecHandlers.push(dojo.connect(c.m_ctrlData.form,"onsubmit",function(){c.saveMap()})));d=b.localeData;c.getNumRouteNodes()==0&&c.m_vecNoteMarkers.length==
0&&d!=null&&d.scale!=0&&google.maps.event.addListenerOnce(c.m_map,"bounds_changed",function(){c.onMapBoundsChanged(d)});b.maximize&&this.maximize()},destroy:function(){var a,b,c;a=google.maps.event.clearInstanceListeners;this.clearImp();b=this.m_vecExternalMarkers;c=b.length;for(i=0;i<c;++i)clearHandlers(b[i]),b[i].setMap(null);this.vecExternalMarkers=[];this.m_toolTip!=null&&(a(this.m_toolTip),this.m_toolTip.setMap(null),delete this.m_toolTip);if(this.m_infoWindow!=null)this.m_infoWindow.close(),
a(this.m_infoWindow),this.m_infoWindow=null;this.m_chartData.marker!=null&&(this.m_chartData.marker.setMap(null),delete this.m_chartData.marker);this.m_map!=null&&(a(this.m_map),delete this.m_map);this.m_chartData.chart.destroy();for(a=this.m_vecHandlers;a.length>0;)dojo.disconnect(a.shift())},clear:function(a){if(a===!0||confirm(RA.MapViewer.Strings.txtEraseConfirmation)){this.clearImp();this.createRouteSegment(null);this.m_distance=0;this.m_activeNoteMarker=null;this.m_attribs.disableElevation===
!0&&this.showElevation(!0);a=this.m_chartData.chart;a.updateSeries("Elevation",[]);a.render();if(this.m_spanElevationStats!=null)this.m_spanElevationStats.innerHTML="";this.onDistanceChanged()}},loadMap:function(a){var b,c,d,f,g;if(a.route!=null){g=this.m_attribs.disableElevation;this.m_attribs.disableElevation=!0;b=a.route;c=b.length;for(d=0;d<c;++d)f=new google.maps.LatLng(b[d][0],b[d][1]),this.appendRouteNode(f,!0);this.m_attribs.disableElevation=g}if(a.notes!=null){b=a.notes;c=b.length;for(d=
0;d<c;++d)if(f=new google.maps.LatLng(b[d][1],b[d][2]),f=this.addNote(f,b[d][0]),b[d].length==4)f.m_note=b[d][3]}if(a.elevation!=null&&a.elevation.length>0){b=a.elevation;c=b.length;g=[];var h=0,k=RA.MapViewer.ElevationPoint,l=RA.MapViewer.kMaxNumNodes;g.offset=0;this.m_vecElevations.push(g);for(d=0;d<c;++d)if(f=new k(b[d][0]-h,b[d][1]),g.push(f),g.length==l&&d<c-1)g=[],h=b[d+1][0],g.offset=h,this.m_vecElevations.push(g);this.renderElevation(!0)}a.attribs!=null&&this.m_bWritable&&(a.attribs.bPrivate===
!0&&(this.setAttrib("privateMap",!0),dojo.addClass(this.m_btnPrivateMap,"ToggledButton")),a.attribs.race===!0&&(this.setAttrib("race",!0),dojo.addClass(this.m_btnRace,"ToggledButton")));this.queryElevation(!0);this.fitMap()},saveMap:function(){if(this.m_ctrlData!=null)this.m_ctrlData.value=this.serialize()},setMode:function(a){this.m_mode=a},setAttrib:function(a,b){this.m_attribs[a]=b;switch(a){case "distanceMarkers":this.showDistanceMarkers(b)}},setNoteIcon:function(a){this.m_noteType=a},getDistance:function(a,
b){if(b){var c=this.getNumRouteNodes();this.m_distance=c==0?0:this.getRouteNode(c-1).distance}if(a==null)a=this.m_distanceUnit;else if(a==RA.DistanceUnit.Meter)return this.m_distance;return RA.Math.convertDistance(this.m_distance,RA.DistanceUnit.Meter,a)},getDistanceUnit:function(){return this.m_distanceUnit},showDistanceMarkers:function(a){var b=this.m_distanceMarkers,c=b.length,d,f=RA.MapViewer.isDistanceMarkerVisible,g,h;if(this.m_map!=null){h=this.m_map.getZoom();for(d=0;d<c;++d)g=b[d],a&&f(g.distance,
h)?g.show():g.hide()}},returnToStart:function(a){var b;b=this.getNumRouteNodes();!(b<2)&&!this.isAtStart()&&(this.returnToStartFromPointIndex(b-2),a!=!0&&(a={map:this,first:b,last:this.getNumRouteNodes()-1},a=new RA.MapViewer.UndoAppendRouteNodes(a),this.m_vecUndos.push(a)))},returnToStartFromPoint:function(a){var b=this.getNumRouteNodes(),c,d,f=null,g,h=4294967295,k=null,l=-1;if(!(b<3)&&!this.isAtStart()){c=this.getRouteNode(b-1);this.forEachRouteNode(function(a,b){if(f==null||b==c)return f=b,!0;
g=f.getIntersect(b,c);g==null?(g=f,a-=2):--a;d=g.distanceFrom(c);if(k==null||d<h)h=d,k=g,l=a;f=b;return!0});if(k==null)l=this.getNumRouteNodes()-1;else if(30<h){alert("The last point needs to be on the route");return}else this.appendRouteNode(k,!0);this.returnToStartFromPointIndex(l);a!=!0&&(a={map:this,first:b,last:this.getNumRouteNodes()-1},a=new RA.MapViewer.UndoAppendRouteNodes(a),this.m_vecUndos.push(a))}},reverse:function(a){var b,c,d=0,f,g,h=0,k,l,m,n,o;if(this.getNumRouteNodes()!=0){this.m_vecRouteSegs.reverse();
l=this.m_vecRouteSegs;m=l.length;for(b=0;b<m;++b){k=l[b];g=k.length-1;n=Math.floor(g/2);for(c=0;c<=n;++c)f=k.getAt(c),k.setAt(c,k.getAt(g-c)),k.setAt(g-c,f);f=k.getAt(0);for(c=0;c<=g;++c)c<g?(o=k.getAt(c+1),h=f.distance-o.distance):h=0,f.distance=d,d+=h,f=o}g=this.getNumRouteNodes();g>1&&this.swapNodeMarkers(this.getRouteNode(0),this.getRouteNode(g-1));this.recreateDistanceMarkers(0);l=this.m_vecElevations;m=l.length;d=this.m_distance;l.reverse();for(b=0;b<m;++b){k=l[b];g=k.length;k.offset=d-k.offset-
k[g-1].offset;k.reverse();if(k.id!=null)k.id=-1;for(c=0;c<g;++c){if(c==0)h=k[c].offset;k[c].offset=h-k[c].offset}}a!=!0&&this.m_vecUndos.push(new RA.MapViewer.UndoReverse({map:this}));this.renderElevation()}},maximize:function(){var a;a=this.m_container.style;a.width="100%";a.height="100%";a.position="absolute";a.left="0px";a.top="0px";a.borderWidth="0px";a=dojo.position(this.m_container);this.resizeContainer(a.w,a.h);if(this.m_imgResize!=null)this.m_imgResize.src=RA.Urls.iconsRoot+"/restore.png",
this.m_imgResize.parentNode.title=RA.MapViewer.Strings.tipRestore;this.m_map!=null&&this.m_map.setOptions({scrollwheel:!0})},isMaximized:function(){return this.m_container.style.width=="100%"&&this.m_container.style.position=="absolute"},restore:function(){var a=this.m_container.style,b,c;b=this.m_attribs.containerSize.w;c=this.m_attribs.containerSize.h;a.position="";a.width=b+"px";a.height=c+"px";a.left="";a.top="";a.borderWidth="";this.resizeContainer(b,c);if(this.m_imgResize)this.m_imgResize.src=
RA.Urls.iconsRoot+"/maximize.png";this.m_map!=null&&this.m_map.setOptions({scrollwheel:!1})},toggleMapSize:function(){this.isMaximized()?this.restore():this.maximize()},setLocale:function(a){this.m_map.setCenter(new google.maps.LatLng(a.lat,a.lng))},setPrintUrl:function(a){this.m_printUrl=a},fitRoute:function(){var a=-360,b=360,c=-360,d=360,f,g,h,k,l;l=google.maps.LatLng;this.m_vecRouteSegs[0].length>0&&(this.forEachRouteNode(function(k,l){f=l;g=f.lat();h=f.lng();a=Math.max(a,g);b=Math.min(b,g);c=
Math.max(c,h);d=Math.min(d,h)}),k=new l(a,c),l=new l(b,d),k=new google.maps.LatLngBounds(l,k),this.m_map.fitBounds(k))},fitMap:function(){if(!(this.m_vecRouteSegs[0].length==0&&this.m_vecNoteMarkers.length==0&&this.m_vecExternalMarkers.length==0)){var a=-360,b=360,c=-360,d=360,f,g,h,k,l,m;this.forEachRouteNode(function(k,l){f=l;g=f.lat();h=f.lng();a=Math.max(a,g);b=Math.min(b,g);c=Math.max(c,h);d=Math.min(d,h)});k=this.m_vecNoteMarkers;l=k.length;for(m=0;m<l;++m)f=k[m].getPosition(),g=f.lat(),h=f.lng(),
a=Math.max(a,g),b=Math.min(b,g),c=Math.max(c,h),d=Math.min(d,h);k=this.m_vecExternalMarkers;l=k.length;for(m=0;m<l;++m)f=k[m].getPosition(),g=f.lat(),h=f.lng(),a=Math.max(a,g),b=Math.min(b,g),c=Math.max(c,h),d=Math.min(d,h);k=new google.maps.LatLng(a,c);l=new google.maps.LatLng(b,d);this.m_map.fitBounds(new google.maps.LatLngBounds(l,k))}},undo:function(){this.m_vecUndos.length>0&&this.m_vecUndos.pop().execute()},addExternalMarker:function(a){a.setMap(this.m_map);this.m_vecExternalMarkers.push(a)},
initialize:function(a,b){var c=this,d,f=c.m_bWritable,g=c.m_chartData,h,k,l;l=42.358543396;h=-71.0595703125;var m;k=a.id;c.m_container=a;d=dojo.position(a,!1);if(d.w<100)a.style.width="800px";if(d.h<300)a.style.height="800px";c.m_attribs.containerSize=dojo.position(a,!1);c.m_divToolbar=document.createElement("DIV");d=c.m_divToolbar;a.appendChild(d);d.className="ToolBar";c.populateToolbar(b);c.m_divMap=document.createElement("div");d=c.m_divMap;d.id=k+"_map";d.className="Map";a.appendChild(d);c.m_divElevation=
document.createElement("div");d=c.m_divElevation;d.id=k+"_elevation";d.className="Elevation";a.appendChild(d);c.m_divStatus=document.createElement("div");d=c.m_divStatus;d.id=k+"_status";d.className="Status";d.innerHTML="&nbsp;";a.appendChild(d);if(b.bRemoteSite)d=document.createElement("a"),c.m_divStatus.appendChild(d),d.className="Credit",d.href="http://www.runningahead.com",d.innerHTML="Powered by RunningAHEAD.com",d.target="_blank";c.restore();c.m_vecHandlers.push(dojo.connect(window,"onresize",
function(){if(c.isMaximized())c.m_hResize!=null&&($taskManager.cancelTask(c.m_hResize),delete c.m_hResize),c.m_hResize=$taskManager.enqueue(function(){c.maximize()},500)}));c.m_vecHandlers.push(dojo.connect(window,"onscroll",c,c.onScroll));if(b.localeData!=null&&(d=b.localeData,d.lat!=null&&d.lng!=null))l=d.lat,h=d.lng;h=new google.maps.LatLng(l,h);l=google.maps.MapTypeId;d={center:h,draggableCursor:f?"crosshair":"default",mapTypeId:l.ROADMAP,scrollwheel:!1,scaleControl:!0,zoom:15};d.mapTypeControlOptions=
{mapTypeIds:[l.ROADMAP,l.TERRAIN,l.SATELLITE,l.HYBRID],style:google.maps.MapTypeControlStyle.DROPDOWN_MENU};m=RA.MapViewer.customMaps;l=d.mapTypeControlOptions.mapTypeIds;for(h=0;h<m.length;++h)l.push(m[h].id);l=new google.maps.Map(c.m_divMap,d);c.m_attribs.currentZoom=l.getZoom();c.m_attribs.mapToScreen=new RA.MapViewer.MapToScreen(l);c.m_attribs.visibleNodes=[];f&&(google.maps.event.addListener(l,"click",function(a){c.onMapClick(a.latLng)}),google.maps.event.addListener(l,"mousemove",function(a){c.onMouseMove(a.latLng)}));
google.maps.event.addListener(l,"zoom_changed",function(){c.onMapZoom()});c.m_map=l;c.createRouteSegment(null);f=new dojox.charting.Chart2D(c.m_divElevation.id);f.addPlot("default",{type:"Areas"});f.addAxis("x",{fixLower:"minor",fixUpper:"minor",natural:!0});f.addAxis("y",{vertical:!0,fixLower:"major",fixUpper:"major",includeZero:!1});f.addSeries("Elevation",[],{stroke:{color:"#0000FF",width:2},fill:"#6699CC"});f.render();c.m_vecHandlers.push(dojo.connect(f.node,"onmousemove",function(a){c.onCursorOnElevation(a)}));
g.chart=f;g.xLabel=document.createElement("div");d=g.xLabel;d.className="XLabel";c.m_divElevation.appendChild(d);g.yLabel=document.createElement("div");d=g.yLabel;d.className="YLabel";c.m_divElevation.appendChild(d);g.title=document.createElement("div");d=g.title;d.className="Title";c.m_divElevation.appendChild(d);d.innerHTML=RA.MapViewer.Strings.lblElevationProfile;c.setChartLabels();c.positionChartLabels();d=dojo.create("DIV",{id:k+"_caret",style:{display:"none",borderLeft:"1px solid #00CC66",position:"absolute",
height:"200px",zIndex:1E4}},c.m_divElevation);g.caret=d;k=dojo.create("DIV",{id:k+"_popup","class":"Info"},c.m_divElevation);g.popup=k;h=new google.maps.LatLng(0,0);k=new google.maps.Marker({map:c.m_map,icon:RA.MapIcons.NodeHere,position:h,visible:!1});g.marker=k;m=RA.MapViewer.customMaps;for(h=0;h<m.length;++h)c.createMapLayers(m[h])},createMapLayers:function(a){var b;switch(a.layers){case "BING":case "BING_AERIAL":b=new RA.MapViewer.BingMapLayer(a);break;case "OSM":b=new RA.MapViewer.OpenStreetMapLayer(a);
break;default:b=new RA.MapViewer.WmsMapLayer(a)}b=new google.maps.ImageMapType(b.createOptions());this.m_map.mapTypes.set(a.id,b)},populateToolbar:function(a){var b=this,c,d=b.m_bWritable,f,g,h,k=RA.MapViewer.Strings,l=function(a,c){f=!dojo.hasClass(a,"ToggledButton");b.setAttrib(c,f);dojo.toggleClass(a,"ToggledButton")};if(a.resizable!==!1)c=this.createToolbarItem("resize"),c.style.cssFloat=c.style.styleFloat="right",g=this.addToolbarButton(c,"maximize",k.tipMaximize,function(){b.toggleMapSize()}),
this.m_imgResize=g.getElementsByTagName("img")[0];c=this.createToolbarItem("distance");c.className="DistanceItem";g=dojo.create("input",{type:"input","class":"DistanceValue"},c);b.m_vecHandlers.push(dojo.connect(g,"onfocus",function(){this.blur()}));b.m_vecHandlers.push(dojo.connect(g,"onselect",function(){this.blur()}));g.value=0;this.m_ctrlDistance=g;c=dojo.create("SELECT",{id:this.m_container.id+"_distance","class":"DistanceUnit"},c);this.m_vecHandlers.push(dojo.connect(c,"onchange",function(){b.m_distanceUnit=
parseInt(this.options[this.selectedIndex].value,10);b.onDistanceChanged();b.recreateDistanceMarkers(0);b.setChartLabels();b.renderElevation(!0)}));g=dojo.create("OPTION",{value:RA.DistanceUnit.Kilometer},c);if(this.m_distanceUnit==RA.DistanceUnit.Kilometer)g.selected="selected";g.innerHTML=RA.DistanceUnit.toAbbrevString(RA.DistanceUnit.Kilometer);g=dojo.create("OPTION",{value:RA.DistanceUnit.Mile},c);if(this.m_distanceUnit==RA.DistanceUnit.Mile)g.selected="selected";g.innerHTML=RA.DistanceUnit.toAbbrevString(RA.DistanceUnit.Mile);
if(d)c=this.createToolbarItem("undo"),this.addToolbarButton(c,"undo",k.tipUndo,function(){b.undo()}),this.addToolbarButton(c,"erase",k.tipErase,function(){b.clear()}),c=RA.MapViewer.createRouteImage,h=[{img:c("foot",k.tipRouteFoot),value:RA.MapViewer.ModeEnum.Foot},{img:c("bike",k.tipRouteBike),value:RA.MapViewer.ModeEnum.Bike},{img:c("car",k.tipRouteCar),value:RA.MapViewer.ModeEnum.Car}],c=this.createToolbarItem("route"),g=dojo.create("DIV",{className:"ComboButton",id:c.id+"_button"},c),g=new RA.Controls.ComboButton(g,
{menuStyles:{whiteSpace:"nowrap"},onClick:function(a,c){b.setMode(c);b.setActiveButton(a.getDomNode())}}),g.populateMenu(h),this.setActiveButton(g.getDomNode()),g=this.addToolbarButton(c,"edit_path",k.tipRouteManual,function(a){b.setMode(RA.MapViewer.ModeEnum.Route);b.setActiveButton(a)}),g.style.cssFloat=g.style.styleFloat="left",g=dojo.create("DIV",{className:"ComboButton"},c),c={map:this,menuStyles:{whiteSpace:"nowrap"},onClick:function(a,c){b.setMode(RA.MapViewer.ModeEnum.Note);b.setNoteIcon(c);
b.setActiveButton(a.getDomNode())}},g=new RA.MapViewer.NoteIconsButton(g,c),c=RA.MapViewer.NoteTypeEnum,c=[{value:c.Note,title:RA.MapViewer.Strings.tipNoteMarker},{value:c.Water,title:RA.MapViewer.Strings.tipNoteWaterMarker},{value:c.FirstAid,title:RA.MapViewer.Strings.tipNoteFirstAidMarker}],g.populateMenu(c);c=this.createToolbarItem("modifiers");g=this.addToolbarButton(c,"distance_marker",k.tipToggleDistanceMarkers,function(a){l(a,"distanceMarkers")});l(g,"distanceMarkers");dojo.addClass(g,"ToggledButton");
d&&(g=this.addToolbarButton(c,"auto_center",k.tipToggleAutoCenter,function(a){l(a,"autoCenter")}),l(g,"autoCenter"));g=this.addToolbarButton(c,"resize",k.tipFitMap,function(){b.fitMap()});c=this.createToolbarItem("elevation");g=this.addToolbarButton(c,"elevation",k.tipReloadElevation,function(a){dojo.toggleClass(a,"ToggledButton");b.toggleElevation()});dojo.addClass(g,"ToggledButton");if(d)c=this.createToolbarItem("modifiers"),this.addToolbarButton(c,"out_and_back",k.tipRouteOutAndBack,function(){b.returnToStart()}),
this.addToolbarButton(c,"back_to_start",k.tipRouteBackToStart,function(){b.returnToStartFromPoint()}),this.addToolbarButton(c,"reverse",k.tipRouteReverse,function(){b.reverse()}),c=this.createToolbarItem("attribs"),this.m_btnPrivateMap=this.addToolbarButton(c,"lock",k.tipPrivateMap,function(a){l(a,"privateMap")}),this.m_btnRace=this.addToolbarButton(c,"finish_flag",k.tipRace,function(a){l(a,"race")}),c=this.createToolbarItem("geolocate"),c.className="AddressItem",d=document.createElement("INPUT"),
d.setAttribute("type","input"),d.id=b.m_container.id+"_address",d.className="Address",c.appendChild(d),d=$RAInstantiate(d.id,RA.Controls.TextField,{watermark:"Address, city, state"}),$addHandler(d.getElement(),"keydown",function(a){b.onGeocode(a)});if(a.printUrl!=null&&a.printUrl.length>0)c=this.createToolbarItem("print"),b.m_printUrl=a.printUrl,this.addToolbarButton(c,"print",k.tipPrintMap,function(){RA.redirect(b.m_printUrl)})},createToolbarItem:function(a){return dojo.create("DIV",{className:"ToolBarItem",
id:this.m_container.id+"_toolbar_"+a},this.m_divToolbar)},addToolbarButton:function(a,b,c,d){a=dojo.create("BUTTON",{tabIndex:"-1",title:c},a);dojo.create("IMG",{src:RA.Urls.iconsRoot+"/"+b+".png"},a);this.m_vecHandlers.push(dojo.connect(a,"onclick",function(a){var b=a.target;for(b.blur();b.tagName!="BUTTON";)b=b.parentNode;d(b);dojo.stopEvent(a)}));return a},setActiveButton:function(a){this.m_activeButton!=null&&dojo.removeClass(this.m_activeButton,"ToggledButton");dojo.addClass(a,"ToggledButton");
this.m_activeButton=a},clearImp:function(){var a,b,c,d,f,g,h;c=this.m_vecRouteSegs.length;f=google.maps.event.clearInstanceListeners;for(a=0;a<c;++a){g=this.m_vecRouteSegs[a];h=g.getLength();for(b=0;b<h;++b)if(d=g.getAt(b),d.marker!=null)f(d.marker),d.marker.segment=null,d.marker.setMap(null),delete d.marker;f(this.m_vecRouteSegs[a].polyline);this.m_vecRouteSegs[a].polyline.setMap(null);delete this.m_vecRouteSegs[a].polyline;delete this.m_vecRouteSegs[a]}this.m_vecRouteSegs=[];this.m_attribs.visibleNodes=
[];b=this.m_distanceMarkers;c=b.length;for(a=0;a<c;++a)b[a].setMap(null),delete b[a];this.m_distanceMarkers=[];b=this.m_vecNoteMarkers;c=b.length;for(a=0;a<c;++a)f(b[a]),b[a].setMap(null);this.vecNoteMarkers=[];for(this.m_vecElevations=[];this.m_vecUndos.length>0;)this.m_vecUndos.shift().destroy()},resizeContainer:function(a,b){var c,d;d=this.m_divElevation;var f=b;this.isMaximized()||(f-=2);c=dojo.position(this.m_divToolbar);f-=c.h;if(this.m_attribs.disableElevation!==!0)d.style.height="200px",d.style.width=
a+"px",c=this.m_chartData.chart,c!=null&&(c.resize(a,200),this.cacheElevationData(),this.positionChartLabels()),c=dojo.position(d),f-=c.h;c=dojo.position(this.m_divStatus);f-=c.h;this.m_divMap.style.height=f+"px";this.m_divMap.style.width=a+"px";this.m_map!=null&&google.maps.event.trigger(this.m_map,"resize");if(this.m_divWait!=null)d=this.m_divWait,c=this.m_chartData.chart.getCoords(),divBounds=dojo.position(d),d.style.left=c.x+parseInt((c.w-divBounds.w)/2,10)+"px",d.style.top=c.y+parseInt((c.h-
divBounds.h)/2,10)+"px";this.positionContainer()},setChartLabels:function(){var a=this.m_chartData,b=RA.DistanceUnit;a.xLabel.innerHTML=RA.DistanceUnit.toString(this.m_distanceUnit);switch(this.m_distanceUnit){case b.Kilometer:case b.Meter:b=b.Meter;break;default:b=b.Foot}a.yLabel.innerHTML=RA.DistanceUnit.toAbbrevString(b)},positionChartLabels:function(){var a;a=this.m_chartData.chart;var b=this.m_chartData,c=dojo.position(this.m_divElevation,!1),d,f=a.offsets;d=b.xLabel;a=dojo.position(d);RA.UI.setPosition(d,
(c.w-f.l-f.r-a.w)/2+f.l,c.h-a.h-3);d=b.yLabel;a=dojo.position(d);RA.UI.setPosition(d,3,(c.h-f.t-f.b-a.h)/2+f.t);d=b.title;a=dojo.position(d);RA.UI.setPosition(d,(c.w-a.w)/2,0)},positionContainer:function(){var a=dijit.getViewport();this.m_container.style.left=a.l+"px";this.m_container.style.top=a.t+"px"},onScroll:function(a){if(this.isMaximized())if(a===!0)this.m_scrollTask=null,this.positionContainer();else{this.m_scrollTask!=null&&this.m_taskManager.cancelTask(this.m_scrollTask);var b=this;this.m_scrollTask=
this.m_taskManager.enqueue(function(){b.onScroll(!0)},50)}},onMouseMove:function(a,b){var c=this,d,f,g,h,k,l=4294967295,m;d=this.getNumRouteNodes();if(!(d<3||this.m_map.getZoom()<14))if(b){this.m_attribs.showNodeTask=null;for(f=this.m_attribs.visibleNodes;f.length>0;)f.shift().marker.setIcon(RA.MapIcons.NodeClear);this.forEachRouteNode(function(b,c){g=c.distanceFrom(a);g<l&&(l=g,m=b)});h=null;k=this.getRouteNode(m);h=null;m==d-1?(h=this.getRouteNode(m-1),h=k.getIntersect(h,a)):(h=this.getRouteNode(m+
1),h=k.getIntersect(h,a),h==null&&m>0&&(h=this.getRouteNode(m-1),h=k.getIntersect(h,a)));if(h!=null&&(k=this.m_attribs.mapToScreen.mapToScreen(h),a=this.m_attribs.mapToScreen.mapToScreen(a),Math.sqrt(Math.pow(k.x-a.x,2)+Math.pow(k.y-a.y,2))<20)){k=Math.max(1,m-1);d=Math.min(d-2,m+1);for(h=k;h<=d;++h)k=this.getRouteNode(h),k.marker.setIcon(RA.MapIcons.Node),f.push(k)}}else this.m_attribs.showNodeTask!=null&&this.m_taskManager.cancelTask(this.m_attribs.showNodeTask),this.m_attribs.showNodeTask=this.m_taskManager.enqueue(function(){c.onMouseMove(a,
!0)},50)},onMapClick:function(a){switch(this.m_mode){case RA.MapViewer.ModeEnum.Foot:this.navigateRoute(a,google.maps.DirectionsTravelMode.WALKING);break;case RA.MapViewer.ModeEnum.Bike:this.navigateRoute(a,google.maps.DirectionsTravelMode.BICYCLING);break;case RA.MapViewer.ModeEnum.Car:this.navigateRoute(a,google.maps.DirectionsTravelMode.DRIVING);break;case RA.MapViewer.ModeEnum.Route:this.appendRouteNode(a);break;case RA.MapViewer.ModeEnum.InsertRouteNode:this.insertPoint(a);break;case RA.MapViewer.ModeEnum.Note:this.m_activeNoteMarker==
null?this.addNote(a,this.m_noteType):this.m_infoWindow!=null&&(this.closeNote(),this.m_infoWindow.close())}this.m_mode!=RA.MapViewer.ModeEnum.InsertRouteNode&&this.m_mode!=RA.MapViewer.ModeEnum.Note&&(bounds=this.m_map.getBounds(),ne=bounds.getNorthEast(),sw=bounds.getSouthWest(),width=(ne.lng()-sw.lng())/5,height=(ne.lat()-sw.lat())/5,ne=new google.maps.LatLng(ne.lat()-height,ne.lng()-width),sw=new google.maps.LatLng(sw.lat()+height,sw.lng()+width),bounds=new google.maps.LatLngBounds(sw,ne),!bounds.contains(a)&&
this.m_attribs.autoCenter===!0&&this.m_map.setCenter(a))},onMapZoom:function(){var a,b,c,d,f,g=this.m_distanceMarkers;if(this.m_attribs.distanceMarkers===!0){a=this.m_map.getZoom();b=g.length;c=RA.MapViewer.isDistanceMarkerVisible;for(d=0;d<b;++d)f=g[d],c(f.distance,a)?f.show():f.hide()}},onMapBoundsChanged:function(a){var b,c;b=this.m_map.getBounds();c=b.getNorthEast();b=b.getSouthWest();pxNe=this.m_attribs.mapToScreen.mapToScreen(c);pxSw=this.m_attribs.mapToScreen.mapToScreen(b);c=(pxNe.x-pxSw.x)*
a.scale/2;b=new google.maps.LatLng(a.lat-1.0E-7,a.lng-c);c=new google.maps.LatLng(a.lat+1.0E-7,a.lng+c);b=new google.maps.LatLngBounds(b,c);this.m_map.fitBounds(b)},onDistanceChanged:function(){this.m_ctrlDistance.value=RA.Math.round(this.getDistance(),2)},onGeocode:function(a){if(a.keyCode==dojo.keys.ENTER&&a.target.value.length>0){var b=this;(new google.maps.Geocoder).geocode({address:a.target.value},function(a,d){d!=google.maps.GeocoderStatus.OK||a==null||a.length==0||a[0].geometry==null||a[0].geometry.location==
null||(b.m_map.setCenter(a[0].geometry.location),a[0].geometry.viewport!=null&&b.m_map.fitBounds(a[0].geometry.viewport))});dojo.stopEvent(a)}},appendRouteNode:function(a,b){var c,d,f,g;c=this.m_vecRouteSegs[this.m_vecRouteSegs.length-1];c.getLength()>=RA.MapViewer.kMaxNumNodes&&(c=this.createRouteSegment(c));c.push(a);f=this.getNumRouteNodes();f==1?a.distance=0:(d=this.getRouteNode(f-2),g=d.distanceFrom(a),this.m_distance+=g,a.distance=this.m_distance);g=null;if(f==1)g=RA.MapIcons.NodeStart;else if(f==
2)g=RA.MapIcons.NodeFinish;else if(this.m_bWritable)g=RA.MapIcons.NodeClear;g!=null&&this.attachRouteNodeMarker(a,c,g);f>2&&this.swapNodeMarkers(d,a);this.createDistanceMarkers(f-1);this.queryElevation();b!=!0&&(c={map:this,first:f-1,last:f-1},this.m_vecUndos.push(new RA.MapViewer.UndoAppendRouteNodes(c)));this.onDistanceChanged()},navigateRoute:function(a,b){var c=this,d,f=this.getNumRouteNodes();f==0?this.appendRouteNode(a):(d=this.m_distanceUnit==RA.DistanceUnit.Mile?google.maps.DirectionsUnitSystem.IMPERIAL:
google.maps.DirectionsUnitSystem.METRIC,d={destination:a,origin:this.getRouteNode(f-1),travelMode:b,unitSystem:d},(new google.maps.DirectionsService).route(d,function(a,b){c.onReceiveDirections(a,b)}))},onReceiveDirections:function(a,b){if(!(b!=google.maps.DirectionsStatus.OK||a.routes==null||a.routes.length==0||a.routes[0].legs==null)){var c,d,f,g,h,k,l,m,n,o,p,q,s,t;d=this.getNumRouteNodes();g=a.routes[0].legs;h=g.length;p=RA.Math.round;q=google.maps.LatLng;for(c=0;c<h;++c){f=g[c];f=f.steps;k=f.length;
for(s=0;s<k&&f[s].path!=null;++s){n=f[s].path;o=n.length;for(t=1;t<o;++t)l=n[t].lat(),m=n[t].lng(),this.appendRouteNode(new q(p(l,10),p(m,10)),!0)}}c=this.getNumRouteNodes()-1;d<=c&&(d={map:this,first:d,last:c},d=new RA.MapViewer.UndoAppendRouteNodes(d),this.m_vecUndos.push(d))}},attachRouteNodeMarker:function(a,b,c){var d=this,c=new google.maps.Marker({map:this.m_map,draggable:this.m_bWritable,icon:c,position:a});c.segment=b;a.marker=c;this.m_bWritable&&(google.maps.event.addListener(c,"dragend",
function(){d.movePoint(this)}),google.maps.event.addListener(c,"rightclick",function(){d.removePoint(this)}))},addNote:function(a,b){var c=this,d,f;d=RA.MapViewer.NoteIconsButton.getIcon(b);d=new google.maps.MarkerImage(RA.Urls.gmapsRoot+"/"+d+".png",new google.maps.Size(32,37),new google.maps.Point(0,0),new google.maps.Point(15,36));f=new google.maps.Marker({clickable:!0,cursor:"pointer",draggable:!0,icon:d,map:this.m_map,position:a});f.m_type=b;google.maps.event.addListener(f,"click",function(){c.viewNote(f)});
this.m_bWritable&&(google.maps.event.addListener(f,"rightclick",function(){c.deleteNote(f)}),google.maps.event.addListener(f,"drag",function(){c.hideToolTip()}),google.maps.event.addListener(f,"mouseover",function(){c.showToolTip(f,RA.MapViewer.Strings.tipNotePrompt)}),google.maps.event.addListener(f,"mouseout",function(){c.hideToolTip()}));this.m_vecNoteMarkers.push(f);return f},deleteNote:function(a){var b,c,d;google.maps.event.clearInstanceListeners(a);a.setMap(null);b=this.m_vecNoteMarkers;c=
b.length;for(d=0;d<c;++d)if(b[d]==a){this.m_toolTip!=null&&this.m_toolTip.hide();if(this.m_infoWindow!=null&&a==this.m_activeNoteMarker)this.m_activeNoteMarker=null,this.m_infoWindow.close();b.removeAt(d);break}},insertPoint:function(a,b){var c=null,d,f,g=4294967295,h=null,k=-1;this.getNumRouteNodes()<2||(this.forEachRouteNode(function(b,m){if(c!=null&&(d=c.getIntersect(m,a),d!=null&&(f=d.distanceFrom(a),h==null||f<g)))g=f,h=d,k=b-1;c=m;return!0}),h!=null&&(d=this.m_attribs.mapToScreen.mapToScreen(h),
a=this.m_attribs.mapToScreen.mapToScreen(a),Math.sqrt(Math.pow(d.x-a.x,2)+Math.pow(d.y-a.y,2))<6&&this.insertPointImp(k,h,b)))},insertPointImp:function(a,b,c){var d,f,g;d=this.getRouteSegmentIndex(a);f=d.idxSegment;g=this.getRouteNode(a);b.distance=g.distanceFrom(b)+g.distance;f=this.m_vecRouteSegs[f];a+=1;f.insertAt(d.idxNode+1,b);this.attachRouteNodeMarker(b,f,RA.MapIcons.NodeClear);d=this.m_distanceMarkers;f=d.length;for(g=0;g<f;++g)a<=d[g].idxNode&&++d[g].idxNode;c!=!0&&(b={map:this,pt:b,idxPt:a},
b=new RA.MapViewer.UndoInsert(b),this.m_vecUndos.push(b));this.onDistanceChanged()},movePoint:function(a,b){var c,d,f=0,g,h,k,l;c=this.getRouteNodeIndex(a);g=c==0?0:this.getRouteNode(c-1).distance;h=this.getNumRouteNodes();c==h-1?d=4294967295:(d=this.getRouteNode(c+1).distance,f=d-g);k=a.getPosition();l=new google.maps.LatLng(k.lat(),k.lng());l.distance=this.getRouteNode(c).distance;l.marker=a;b!=!0&&(k=this.getRouteNode(c),k={map:this,idx:c,latlng:new google.maps.LatLng(k.lat(),k.lng())},this.m_vecUndos.push(new RA.MapViewer.UndoMove(k)));
this.setRouteNode(c,l);this.recreateDistanceMarkers(c);c==0?h>1&&(f=this.getRouteNode(1).distance-f):c<h-1&&(f=this.getRouteNode(c+1).distance-this.getRouteNode(c-1).distance-f);this.updateElevation(g,d,f);this.onDistanceChanged()},removePoint:function(a){var b,c,a=this.getRouteNodeIndex(a);b=this.getRouteNode(a);c=new google.maps.LatLng(b.lat(),b.lng());this.removePointImp(a,b,!0);this.m_vecUndos.push(new RA.MapViewer.UndoRemove({map:this,latlng:c,idxPt:a}))},removePointImp:function(a,b,c){var d=
this,f,g,h=0,k=null,l,m,n;f=google.maps.event.clearInstanceListeners;l=this.getNumRouteNodes();m=a==0?null:this.getRouteNode(a-1);n=a==0?0:m.distance;a==l-1?(g=4294967295,l>2&&this.swapNodeMarkers(m,b)):(k=this.getRouteNode(a+1),g=k.distance,h=g-n,h=m!=null&&k!=null?m.distanceFrom(k)-h:-h,a==0&&l>1&&this.swapNodeMarkers(b,k));this.seekRouteNode(a,function(a,b){d.m_vecRouteSegs[a].removeAt(b);a>0&&d.m_vecRouteSegs[a].length==1&&(f(d.m_vecRouteSegs[a].polyline),d.m_vecRouteSegs[a].removeAt(0),d.m_vecRouteSegs.pop())});
b=b.marker;f(b);b.segment=null;b.setMap(null);--l;for(k=a;k<l;++k)b=this.getRouteNode(k),b.distance+=h;this.m_distance=this.getDistance(RA.DistanceUnit.Meter,!0);c===!0&&(l==0?this.renderElevation():(this.recreateDistanceMarkers(a==0?0:a-1),this.updateElevation(n,g,h)));this.onDistanceChanged()},viewNote:function(a){var b=this,c,d;this.m_activeNoteMarker!=null&&this.closeNote();this.m_activeNoteMarker=a;if(this.m_infoWindow==null)c=this.m_divMap.id.replace("_map","_info"),d={content:'<textarea id="'+
c+'" style="width:18em;height:5em;font-family:Arial,Verdana,Helvetica,Sans-Serif;font-size:12px"></textarea>'},this.m_infoWindow=new google.maps.InfoWindow(d),this.m_infoWindow.m_id=c,google.maps.event.addListener(this.m_infoWindow,"closeclick",function(){b.closeNote()}),google.maps.event.addListener(this.m_infoWindow,"domready",function(){b.populateNote()});this.m_infoWindow.open(this.m_map,a)},populateNote:function(){var a,b;a=dojo.byId(this.m_infoWindow.m_id);b=this.m_activeNoteMarker;a.value=
b.m_note==null?"":b.m_note},closeNote:function(){if(this.m_bWritable)this.m_activeNoteMarker.m_note=dojo.byId(this.m_infoWindow.m_id).value;this.m_activeNoteMarker=null},onCursorOnElevation:function(a){var b=this,c,d,f,g,h,k,l,m,n;b.m_hHideCaret!=null&&($taskManager.cancelTask(b.m_hHideCaret),delete b.m_hHideCaret);c=!1;d=b.m_chartData.popup;f=b.m_chartData.caret;if(!(b.m_distance<=0||b.m_chartData.screenToDataX==null))if(g=b.m_chartData.chart,h=RA.Util.getMousePos(a),a=dojo.position(b.m_divElevation),
k=dijit.getViewport(),l=g.offsets,m=h.x-k.l-a.x-l.l,h=h.y-k.t-a.y-l.t,!(m<0||g.plotArea.width<m||h<0||g.plotArea.height<h))if(g=b.m_chartData.screenToDataX(m),h=RA.Math.convertDistance(g,b.m_distanceUnit,RA.DistanceUnit.Meter),!(b.m_distance<h)&&(k=b.distanceToLatLng(h),n=b.m_chartData.marker,n.setVisible(!0),n.setPosition(k),h=b.getElevationAtDistance(h),!isNaN(h)))k=b.m_distanceUnit==RA.DistanceUnit.Kilometer?RA.DistanceUnit.Meter:RA.DistanceUnit.Foot,h=RA.Math.convertDistance(h,RA.DistanceUnit.Meter,
k),c=d.style,c.display="block",d.innerHTML="Distance: "+RA.Math.round(g,2)+" "+RA.DistanceUnit.toAbbrevString(b.m_distanceUnit)+"<br/>Elevation: "+RA.Math.round(h,1)+" "+RA.DistanceUnit.toAbbrevString(k),d=dojo.position(d,!1),m+=l.l,g=m-d.w/2,g+d.w>a.w&&(g=a.w-d.w),c.left=g+"px",c.top=l.t-d.h+"px",c.zIndex="10000",c=f.style,c.display="block",c.left=m+"px",c.top=l.t+"px",c.height=a.h-l.t-l.b+"px",c=!0;b.showElevationCaret(c);if(c)b.m_hHideCaret=$taskManager.enqueue(function(){delete b.m_hHideCaret;
b.showElevationCaret(!1)},5E3)},showElevationCaret:function(a){var b=this.m_chartData,c=a?"block":"none";b.caret.style.display=c;b.popup.style.display=c;this.m_chartData.marker.setVisible(a)},returnToStartFromPointIndex:function(a){for(var b;a>=0;)b=this.getRouteNode(a),b=new google.maps.LatLng(b.lat(),b.lng()),this.appendRouteNode(b,!0),--a},createDistanceMarkers:function(a){var b,c,d,f,g,h,k,l,m;b=this.getDistance();c=this.m_distanceMarkers;d=c.length==0?1:c[c.length-1].distance+1;g=this.m_attribs.distanceMarkers!=
null&&!this.m_attribs.distanceMarkers;h=this.m_map.getZoom();for(k=RA.MapViewer.isDistanceMarkerVisible;d<b;)f=this.getRouteNode(a),l=this.getRouteNode(a-1),m=RA.Math.convertDistance(d,this.m_distanceUnit,RA.DistanceUnit.Meter),m=(m-l.distance)/1E3,f=l.getDestinationPoint(f,m),f={map:this.m_map,distance:d,position:f,hide:g||!k(d,h)},f=new RA.MapViewer.DistanceMarker(f),c.push(f),f.distance=d,f.idxNode=a,++d},recreateDistanceMarkers:function(a){var b,c,d,f;if(this.getNumRouteNodes()!=0){b=this.getRouteNode(a);
c=RA.Math.convertDistance(b.distance,RA.DistanceUnit.Meter,this.m_distanceUnit);c=parseInt(Math.floor(c),10);b=this.m_distanceMarkers;if(c==0)a=1,d=0;else if(b[c-1].idxNode==a){for(d=c-1;d>0&&b[d-1].idxNode==a;)--d;--a}else d=c;f=b.length;for(c=d;c<f;++c)b[c].setMap(null),delete b[c];b.splice(d,f-d);f=this.getNumRouteNodes();for(c=a==0?1:a;c<f;++c)a=this.getRouteNode(c-1),b=this.getRouteNode(c),b.distance=a.distance+a.distanceFrom(b),this.m_distance=b.distance,this.createDistanceMarkers(c)}},getNumRouteNodes:function(){var a,
b,c,d;a=0;b=this.m_vecRouteSegs;c=b.length;for(d=0;d<c;++d)a+=b[d].getLength();return a-c+1},seekRouteNode:function(a,b){var c=0,d,f,g=0;d=this.m_vecRouteSegs;for(f=d.length;c<f;){if(a+g<d[c].getLength())return b(c,a+g);a-=d[c].getLength()-g;++c;g=1}return null},getRouteNode:function(a){var b=this;return this.seekRouteNode(a,function(a,d){return b.m_vecRouteSegs[a].getAt(d)})},forEachRouteNode:function(a,b){var c=0,d=0,f,g,h,k,l,m;b>0?(this.seekRouteNode(b,function(a,b){c=a;d=b}),f=d):f=c==0?0:1;
g=!0;h=this.m_vecRouteSegs;for(k=h.length;g&&c<k;){l=h[c];for(m=l.length;g&&f<m;++f,++d)g=a(d,l.getAt(f)),g==null&&(g=!0);f=1;++c}},setRouteNode:function(a,b){var c=0,d,f,g=0;d=this.m_vecRouteSegs;for(f=d.length;c<f;)a+g<d[c].getLength()&&d[c].setAt(a+g,b),a-=d[c].getLength()-g,++c,g=1},getRouteSegmentIndex:function(a){return this.seekRouteNode(a,function(a,c){return{idxSegment:a,idxNode:c}})},getRouteNodeIndex:function(a){var b,c,d,f=0,g;b=this.m_vecRouteSegs;c=a.segment;for(d=0;b[d]!=c;)f+=b[d].getLength(),
d>0&&--f,++d;g=d==0?0:1;b=b[d].getLength();for(d=g;d<b;++d)if(c.getAt(d).marker==a){f+=d-g;break}return f},createRouteSegment:function(a){var b=this,c,d;c=new google.maps.MVCArray;this.m_vecRouteSegs.push(c);if(a!=null)d=a.getLength(),a=a.getAt(d-1),d=new google.maps.LatLng(a.lat(),a.lng()),d.distance=a.distance,c.push(d);a=new google.maps.Polyline({strokeColor:"#0000FF",strokeOpacity:0.5,strokeWeight:5});a.setMap(this.m_map);a.setPath(new google.maps.MVCArray([c]));c.polyline=a;this.m_bWritable&&
google.maps.event.addListener(a,"rightclick",function(a){b.insertPoint(a.latLng)});return c},distanceToLatLng:function(a){var b,c,d,f;c=this.m_vecRouteSegs.length;for(b=0;b<c;++b)if(d=this.m_vecRouteSegs[b],d.getAt(0).distance<=a&&a<d.getAt(d.length-1).distance){c=d.length-1;for(f=0;f<c;++f)if(b=d.getAt(f).distance,b<=a&&a<d.getAt(f+1).distance){if(b==a)return d.getAt(f);b=(a-b)/1E3;a=d.getAt(f+1);return d.getAt(f).getDestinationPoint(a,b)}break}},swapNodeMarkers:function(a,b){a.marker.setPosition(b);
b.marker!=null&&b.marker.setPosition(a);var c=a.marker;a.marker=b.marker;b.marker=c;if(a.marker!=null)c=a.marker.segment,a.marker.segment=b.marker.segment,b.marker.segment=c},isAtStart:function(){var a,b;a=this.getRouteNode(0);b=this.getRouteNode(this.getNumRouteNodes()-1);return a.lat()==b.lat()&&a.lng()==b.lng()},showToolTip:function(a,b){if(this.m_toolTip==null){var c={position:a.getPosition(),map:this.m_map};this.m_toolTip=new RA.MapViewer.ToolTip(c)}this.m_toolTip.setPosition(a.getPosition());
this.m_toolTip.set("text",b);this.m_toolTip.show()},hideToolTip:function(){this.m_toolTip!=null&&this.m_toolTip.hide()},serialize:function(){var a="",b,c,d,f,g,h,k;d=this.getNumRouteNodes();if(d>0){b="";for(c=0;c<d;++c)g=this.getRouteNode(c),c>0&&(b+=","),b+="["+g.lat()+","+g.lng()+"]";a+="route:["+b+"]"}f=this.m_vecNoteMarkers;d=f.length;if(d>0){b="";for(c=0;c<d;++c)g=f[c],c>0&&(b+=","),h=g.getPosition(),b+="["+g.m_type+","+h.lat()+","+h.lng(),g.m_note!=null&&g.m_note.length>0&&(b+=',"'+g.m_note.replace(/\"/g,
'\\"')+'"'),b+="]";a.length>0&&(a+=",");a+="notes:["+b+"]"}f=this.m_vecElevations;d=f.length;if(d>0){b="";for(c=0;c<d;++c)if(g=f[c],g.id==null){h=g.length;offset=g.offset;for(k=0;k<h;++k)g[k].elevation!=null&&(b.length>0&&(b+=","),b+="["+(offset+g[k].offset).toString()+","+g[k].elevation+"]")}a.length>0&&(a+=",");a+="elevation:["+b+"]"}b=this.m_attribs;b="race:"+(b.race===!0?"true":"false")+",privateMap:"+(b.privateMap===!0?"true":"false");a.length>0&&(a+=",");a+="attribs:{"+b+"}";return"{"+a+"}"},
queryElevation:function(a){if(a){if(this.m_vecElevations.length==0)this.queryElevationSegment(0,this.m_distance);else{var b=0,b=null,c=this.m_vecElevations.length,d;for(d=0;d<c;++d)a=this.m_vecElevations[d],a.id==null&&(b=d==0?0:b.offset+b[b.length-1].offset+RA.MapViewer.kElevationSamplingDistance,a.offset-b>0&&this.queryElevationSegment(b,a.offset),d==this.m_vecElevations.length-1&&RA.MapViewer.kElevationSamplingDistance<this.m_distance-a.offset-a[a.length-1].offset&&(b=a.offset+a[a.length-1].offset+
RA.MapViewer.kElevationSamplingDistance,this.queryElevationSegment(b,this.m_distance))),b=a;this.m_vecElevations.sort(function(a,b){return a.offset<b.offset?-1:a.offset==b.offset?0:1})}this.requestElevations();this.hideElevationWait()}else if(!(this.m_attribs.disableElevation===!0||this.m_distance==0)&&!this.m_bEnqueuedElevationQuery){this.showElevationWait();this.m_bEnqueuedElevationQuery=!0;var f=this;this.m_taskManager.enqueue(function(){f.m_bEnqueuedElevationQuery=!1;f.queryElevation(!0)},1E3)}},
queryElevationSegment:function(a,b){for(var c,d,f=[],g=a,h=[];a<b;)c=this.distanceToLatLng(a),d=new RA.MapViewer.ElevationPoint(a-g,null),f.push(d),h.push({lat:c.lat(),lng:c.lng()}),a+=RA.MapViewer.kElevationSamplingDistance,h.length==RA.MapViewer.kMaxNumNodes&&(this.enqueueElevations(f,h,g),h=[],f=[],g=a);h.length>0&&this.enqueueElevations(f,h,g)},enqueueElevations:function(a,b,c){a.id=-1;a.offset=c;a.vecLatLngs=b;this.m_vecElevations.push(a)},requestElevations:function(){if(!this.m_bRequestingElevations){var a=
this,b,c,d,f;b={callback:function(b,c){a.onReceiveElevations(b,c)}};c=this.m_vecElevations;d=c.length;for(f=0;f<d;++f)if(c[f].id!=null&&c[f].id==-1){c=c[f];c.id=++this.m_elevationRequestId;this.showElevationWait();this.m_bRequestingElevations=!0;RA.Ajax.Ajax("GetElevationPoints",b,{latlngs:c.vecLatLngs,serial:c.id});break}}},onReceiveElevations:function(a,b){var c,d,f,g,h,k;d=this.m_vecElevations.length;var l=b.data;if(b.code==1000001)alert(RA.MapViewer.Strings.msgInvalidElevation),this.showElevation(!1);
else{for(g=0;g<d;++g)if(c=this.m_vecElevations[g],c.id==l.id){f=l.vecElevations;k=f.length;for(h=0;h<k;++h)f[h]<=-9999?(c.removeAt(h),f.removeAt(h),--k,--h):c[h].elevation=f[h];c.id=null;delete c.vecLatLngs}for(g=1;g<this.m_vecElevations.length;)if(c=this.m_vecElevations[g],f=this.m_vecElevations[g-1],c.id==null&&f.id==null&&f.length<RA.MapViewer.kMaxNumNodes&&c.length<RA.MapViewer.kMaxNumNodes){k=c.offset-f.offset;d=c.length;for(h=0;h<d;++h)c[h].offset=k+c[h].offset;c=f.concat(c);c.offset=f.offset;
this.m_vecElevations[g-1]=c;this.m_vecElevations.removeAt(g)}else++g;this.m_bRequestingElevations=!1;this.requestElevations();this.renderElevation()}this.hideElevationWait()},renderElevation:function(a){var b=this,c=b.m_spanElevationStats;if(a!=!0){if(!b.m_bRequestingElevations)b.m_renderElevationTask==null?b.showElevationWait():(b.m_taskManager.cancelTask(b.m_renderElevationTask),b.m_renderElevationTask=null,bShowWait=!1),b.m_renderElevationTask=b.m_taskManager.enqueue(function(){b.renderElevation(!0)},
1500)}else{b.m_renderElevationTask=null;var a=[],d,f,g,h,k,l=b.m_vecElevations,m=l.length,n=RA.DistanceUnit.Meter,o=b.m_distanceUnit,p=o==RA.DistanceUnit.Kilometer?RA.DistanceUnit.Meter:RA.DistanceUnit.Foot,q=4294967295,s=-268435455,t,r,u=null,z=0,A=0,v=RA.Math.round;for(t=0;t<m;++t)if(d=l[t],d.id==null){f=d.length;g=d.offset;for(r=0;r<f;++r)h=RA.Math.convertDistance(g+d[r].offset,n,o),k=RA.Math.convertDistance(d[r].elevation,n,p),a.push({x:h,y:k}),q=Math.min(q,k),s=Math.max(s,k),u==null?u=k:(h=k-
u,u=k,h>0?z+=h:A-=h)}d=b.m_chartData.chart;d.updateSeries("Elevation",a);d.render();b.cacheElevationData();b.hideElevationWait();if(c==null)c=document.createElement("span"),c.className="ElevationStats",b.m_spanElevationStats=c,b.m_divStatus.appendChild(c);c.innerHTML=RA.MapViewer.Strings.lblElevationStats.replace("{0}",v(z,1)).replace("{1}",v(A,1)).replace("{2}",v(z-A,1)).replace(/\{3\}/g,RA.DistanceUnit.toAbbrevString(p))}},cacheElevationData:function(){var a,b;a=this.m_chartData.chart;b=a.getAxis("x").getScaler();
a=a.getAxis("y").getScaler();this.m_chartData.screenToDataX=dojox.charting.scaler.linear.getTransformerFromPlot(b);this.m_chartData.dataToScreenY=dojox.charting.scaler.linear.getTransformerFromModel(a)},updateElevation:function(a,b,c){for(var d=this.m_vecElevations,f,g,h,k=0,l;k<d.length;){f=d[k];h=f.offset+f[f.length-1].offset;if(f.offset<=b&&a<=h){if(a<=f.offset&&h<=b){d.removeAt(k);continue}if(f.offset<a&&a<=h){g=f.length;for(l=0;l<g;++l)if(a<=f.offset+f[l].offset){g=f.slice(l);g.offset=f.offset+
g[0].offset;this.adjustElevationOffset(g);d.insertAt(k+1,g);f.splice(l,f.length-l);h=f.offset+f[f.length-1].offset;break}}if(f.offset<=b&&b<=h){g=f.length;for(l=0;l<g;++l)if(b<=f.offset+f[l].offset){g=f.offset+f[l].offset+c;d[k]=f.slice(l);f=d[k];f.offset=g;break}this.adjustElevationOffset(f)}}else a<f.offset&&(f.offset+=c);++k}this.queryElevation();this.renderElevation(!0)},adjustElevationOffset:function(a){var b,c,d;b=a[0].offset;c=a.length;for(d=0;d<c;++d)a[d].offset-=b},onElevationEvent:function(a){alert(a.type)},
toggleElevation:function(){this.showElevation(this.m_divElevation.style.display=="none")},showElevation:function(a){a?(delete this.m_attribs.disableElevation,this.m_vecElevations=[],this.queryElevation()):this.m_attribs.disableElevation=!0;this.m_bRequestingElevations=!1;this.m_divElevation.style.display=a?"":"none";a=dojo.position(this.m_container,!1);this.resizeContainer(a.w,a.h)},showElevationWait:function(){var a,b,c,d,f;if(++this.m_elevationCounter==1){a=this.m_container.id+"_wait";if(this.m_divWait==
null)b={zIndex:1E5,position:"absolute",backgroundColor:"white",padding:"5px 20px",border:"2px solid #8DB2E3",opacity:0},this.m_divWait=dojo.create("DIV",{id:a,style:b},this.m_divElevation),dojo.create("IMG",{src:RA.Urls.imageRoot+"/wait_48.gif",style:"vertical-align: middle"},this.m_divWait),this.m_divWait.style.border="2px solid #9BB7E0";b=this.m_divWait;c=dojo.position(this.m_divElevation);d=dojo.position(b);f=this.m_chartData.chart.offsets;b.style.left=f.l+(c.w-f.l-f.r-d.w)/2+"px";b.style.top=
f.t+(c.h-f.t-f.b-d.h)/2+"px";a={node:a,duration:1E3};dojo.style(a.node,"opacity","0");dojo.fadeIn(a).play()}},hideElevationWait:function(){if(!(this.m_elevationCounter==0||--this.m_elevationCounter>0)){var a={node:this.m_container.id+"_wait",duration:2E3};dojo.style(a.node,"opacity","1");dojo.fadeOut(a).play()}},getElevationAtDistance:function(a){var b,c,d,f,g,h,k;b=this.m_vecElevations;c=b.length;for(d=0;d<c;++d){d==0?(f=0,h=b[0],g=h.length>0?h[0].elevation:0):(h=b[d-1],f=h.offset+h[h.length-1].offset,
g=h[h.length-1].elevation);h=b[d];if(f<=a&&a<=h.offset+h[h.length-1].offset)break;h=null}if(h==null)return NaN;c=h.length;b=f;k=h.offset;for(d=0;d<c;++d){f=k+h[d].offset;if(b<=a&&a<=f){if(b==a)return g;if(a==f)return h[d].elevation;d=(h[d].elevation-g)/(f-b);g-=d*b;return d*a+g}b=f;g=h[d].elevation}}},dojo.declare("RA.MapViewer",null,clsObj),RA.MapViewer.distanceMarkerDensity=[2500,1E3,500,250,200,100,50,25,20,10,5,2],RA.MapViewer.kMaxNumNodes=50,RA.MapViewer.kElevationSamplingDistance=50,RA.MapViewer.customMaps=
[{id:"topo",baseUrl:"http://www.terraserver-usa.com/ogcmap6.ashx?",name:"Topo Map",alt:"Topographic map",layers:"DRG"},{id:"usgs",baseUrl:"http://www.terraserver-usa.com/ogcmap6.ashx?",name:"USGS Sat",alt:"USGS Satellite",layers:"DOQ"},{id:"bing",name:"Bing",alt:"Bing Map",layers:"BING"},{id:"bing_aerial",name:"Bing Aerial",alt:"Bing Aerial Map",layers:"BING_AERIAL"},{id:"osm",name:"OSM",alt:"Open Street Map",layers:"OSM"}],RA.MapViewer.isDistanceMarkerVisible=function(a,b){var c;c=RA.MapViewer.distanceMarkerDensity;
return a%(b<c.length?c[b]:1)==0},RA.MapViewer.createRouteImage=function(a,b){var c=document.createElement("IMG");c.src=RA.Urls.iconsRoot+"/"+a+".png";if(b!=null)c.title=b;return c},RA.MapViewer.ElevationPoint=function(a,b){this.offset=a;this.elevation=b},RA.MapViewer.ModeEnum={Route:10,InsertRouteNode:11,Foot:12,Bike:13,Car:14,Note:20},RA.MapViewer.NoteTypeEnum={Water:2,FirstAid:3,Note:4},google.maps.LatLng.prototype.toLatLng=function(){return new RA.Math.LatLng(this.lat(),this.lng())},google.maps.LatLng.prototype.distanceFrom=
function(a){return this.toLatLng().getDistancePrecise(a.toLatLng())},google.maps.LatLng.prototype.getDestinationPoint=function(a,b){var c=this.toLatLng();brng=c.getBearingTo(a.toLatLng());a=c.getDestinationPoint(brng,b);return new google.maps.LatLng(a.lat,a.lng)},google.maps.LatLng.prototype.getIntersect=function(a,b){var c=this.toLatLng().getIntersect(a.toLatLng(),b.toLatLng());return c==null?null:new google.maps.LatLng(c.lat,c.lng)},RA.MapViewer.ToolTip=function(a){this.m_latlng=a.position;this.setMap(a.map);
this.m_div=null},RA.MapViewer.ToolTip.prototype=new google.maps.OverlayView,RA.MapViewer.ToolTip.prototype.onAdd=function(){var a=this,b;b=document.createElement("DIV");b.style.border="1px solid blue";b.style.backgroundColor="white";b.style.color="#444";b.style.fontFamily="Arial,Verdana,Helvetica,Sans-Serif";b.style.fontSize="10px";b.style.padding="0.1em 0.3em 0.1em 0.3em";b.style.position="absolute";b.style.whiteSpace="nowrap";this.getPanes().floatPane.appendChild(b);this.m_div=b;this.m_listeners=
[google.maps.event.addListener(this,"text_changed",function(){a.draw()})]},RA.MapViewer.ToolTip.prototype.onRemove=function(){for(;this.m_listeners.length>0;)google.maps.event.removeListener(this.m_listeners.shift());this.m_div.parentNode.removeChild(this.m_div);this.m_div=null},RA.MapViewer.ToolTip.prototype.draw=function(){var a,b;a=this.getProjection().fromLatLngToDivPixel(this.m_latlng);b=this.m_div;b.style.left=a.x+"px";b.style.top=a.y+"px";b.innerHTML=this.get("text")},RA.MapViewer.ToolTip.prototype.setPosition=
function(a){this.m_latlng=a},RA.MapViewer.ToolTip.prototype.hide=function(){if(this.m_div!=null)this.m_div.style.visibility="hidden"},RA.MapViewer.ToolTip.prototype.show=function(){if(this.m_div!=null)this.m_div.style.visibility="visible"},RA.MapViewer.ToolTip.prototype.toggle=function(){if(this.m_div!=null)this.m_div.style.visibility=this.m_div.style.visibility=="hidden"?"visible":"hidden"},RA.MapViewer.ToolTip.prototype.toggleDOM=function(){this.setMap(this.getMap()!=null?null:this.m_map)},RA.MapViewer.DistanceMarker=
function(a){this.m_distance=a.distance;this.m_latlng=a.position;this.setMap(a.map);this.m_div=null;if(a.hide)this.m_bHide=!0},RA.MapViewer.DistanceMarker.prototype=new google.maps.OverlayView,RA.MapViewer.DistanceMarker.prototype.onAdd=function(){var a;a=document.createElement("DIV");a.style.border="none";a.style.backgroundColor="blue";a.style.color="white";a.style.fontWeight="bold";a.style.fontFamily="Arial,Helvetica,Sans-Serif";a.style.fontSize="10px";a.style.padding="0.1em 0.3em 0.1em 0.3em";a.style.position=
"absolute";a.innerHTML=this.m_distance;this.getPanes().overlayImage.appendChild(a);this.m_div=a;this.m_bHide!=null&&(this.m_bHide&&this.hide(),delete this.m_bHide)},RA.MapViewer.DistanceMarker.prototype.onRemove=function(){this.m_div.parentNode.removeChild(this.m_div);this.m_div=null},RA.MapViewer.DistanceMarker.prototype.draw=function(){var a,b,c;a=this.getProjection().fromLatLngToDivPixel(this.m_latlng);b=this.m_div;c=dojo.position(b,!1);b.style.left=a.x-c.w/2+"px";b.style.top=a.y-c.h/2+"px"},RA.MapViewer.DistanceMarker.prototype.isVisible=
function(){return this.m_div!=null&&(this.m_div.style.visibility==""||this.m_div.style.visibility=="visible")},RA.MapViewer.DistanceMarker.prototype.hide=function(){this.m_div==null?this.m_bHide=!0:this.m_div.style.visibility="hidden"},RA.MapViewer.DistanceMarker.prototype.show=function(){this.m_div==null?this.m_bHide=!1:this.m_div.style.visibility="visible"},RA.MapViewer.DistanceMarker.prototype.toggle=function(){if(this.m_div!=null)this.m_div.style.visibility=this.m_div.style.visibility=="hidden"?
"visible":"hidden"},RA.MapViewer.DistanceMarker.prototype.toggleDOM=function(){this.setMap(this.getMap()!=null?null:this.m_map)},RA.MapViewer.MapToScreen=function(a){this.m_map=a;this.setMap(a)},RA.MapViewer.MapToScreen.prototype=new google.maps.OverlayView,RA.MapViewer.MapToScreen.prototype.draw=function(){},RA.MapViewer.MapToScreen.prototype.mapToScreen=function(a){return this.getProjection().fromLatLngToContainerPixel(a)},RA.MapViewer.MapToScreen.prototype.screenToMap=function(a,b){this.getProjection();
var c=new google.maps.Point(a,b);return fromContainerPixelToLatLng(c)},clsObj={constructor:function(a){this.m_opts=a},fromDivPixelToLatLng:function(a,b){var c,d,f,g;c=RA.MapViewer.WmsMapLayer;d=c.origin;f=Math.pow(2,b);g=(a.x/f-d.x)/c.pixelsPerLonDegree;c=RA.Math.radToDeg(2*Math.atan(Math.exp((a.y/f-d.y)/-c.pixelsPerLonRadian))-Math.PI/2);return new google.maps.LatLng(c,g)},createOptions:function(){throw"need to implement createOptions";}},dojo.declare("RA.MapViewer.CustomMapLayer",[],clsObj),RA.MapViewer.CustomMapLayer.tileSize=
256,clsObj={constructor:function(a){var b=RA.MapViewer.CustomMapLayer;this.m_wmsParams=["REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1","LAYERS="+a.layers,"FORMAT=image/jpeg&STYLES=&BGCOLOR=0xFFFFFF&TRANSPARENT=FALSE&SRS=EPSG:4326","WIDTH="+b.tileSize,"HEIGHT="+b.tileSize,"reaspect=false"].join("&")},createOptions:function(){var a=this,b=RA.MapViewer.CustomMapLayer.tileSize;return{getTileUrl:function(c,d){var f,g,h;f=new google.maps.Point(c.x*b,(c.y+1)*b);g=new google.maps.Point((c.x+1)*b,c.y*b);h=a.fromDivPixelToLatLng;
f=h(f,d);g=h(g,d);return a.m_opts.baseUrl+a.m_wmsParams+"&BBOX="+f.lng()+","+f.lat()+","+g.lng()+","+g.lat()},tileSize:new google.maps.Size(b,b),isPng:!1,maxZoom:17,minZoom:1,name:a.m_opts.name,alt:a.m_opts.alt}}},dojo.declare("RA.MapViewer.WmsMapLayer",[RA.MapViewer.CustomMapLayer],clsObj),RA.MapViewer.WmsMapLayer.mercatorRange=256,RA.MapViewer.WmsMapLayer.pixelsPerLonDegree=RA.MapViewer.WmsMapLayer.mercatorRange/360,RA.MapViewer.WmsMapLayer.pixelsPerLonRadian=RA.MapViewer.WmsMapLayer.mercatorRange/
2/Math.PI,RA.MapViewer.WmsMapLayer.origin=new google.maps.Point(RA.MapViewer.WmsMapLayer.mercatorRange/2,RA.MapViewer.WmsMapLayer.mercatorRange/2),clsObj={constructor:function(a){this.m_opts=a},createOptions:function(){return{getTileUrl:function(a,b){return"http://tile.openstreetmap.org/"+b+"/"+a.x+"/"+a.y+".png"},tileSize:new google.maps.Size(256,256),isPng:!0,maxZoom:18,minZoom:1,alt:this.m_opts.alt,name:this.m_opts.name}}},dojo.declare("RA.MapViewer.OpenStreetMapLayer",[RA.MapViewer.CustomMapLayer],
clsObj),clsObj={constructor:function(){},createOptions:function(){var a=this,b=RA.MapViewer.CustomMapLayer.tileSize;return{getTileUrl:function(c,d){var f,g,h,k,l,m;f=new google.maps.Point(c.x*b,(c.y+1)*b);g=new google.maps.Point((c.x+1)*b,c.y*b);h=a.fromDivPixelToLatLng;f=h(f,d);g=h(g,d);k=RA.Math.Constants.EarthRadiusM;l=k*2*Math.PI;h=l/2;m=l/((1<<d)*256);g=Math.sin(g.lat()*Math.PI/180);g=k/2*Math.log((1+g)/(1-g));m=Math.round((h-g)/m);l/=(1<<d)*256;f=k*(f.lng()*Math.PI/180);f=Math.round((h+f)/l)/
256;k=m/256;h="";for(l=d;l>0;--l)m=1<<l-1,g=0,(f&m)!==0&&++g,(k&m)!==0&&(g+=2),h+=g;f=null;switch(a.m_opts.layers){case "BING":f="http://r"+h.charAt(h.length-1)+".ortho.tiles.virtualearth.net/tiles/r"+h+".png?g=1";break;case "BING_AERIAL":f="http://ecn.t"+h.charAt(h.length-1)+".tiles.virtualearth.net/tiles/h"+h+".jpeg?g=441"}return f},tileSize:new google.maps.Size(b,b),isPng:a.m_opts.layers=="BING",maxZoom:21,minZoom:1,name:a.m_opts.name,alt:a.m_opts.alt}}},dojo.declare("RA.MapViewer.BingMapLayer",
[RA.MapViewer.CustomMapLayer],clsObj),RA.MapIcons={Node:new google.maps.MarkerImage(RA.Urls.imageRoot+"/map_node.png",new google.maps.Size(9,9),new google.maps.Point(0,0),new google.maps.Point(4,4)),NodeClear:new google.maps.MarkerImage(RA.Urls.imageRoot+"/map_node_clear.gif",new google.maps.Size(9,9),new google.maps.Point(0,0),new google.maps.Point(4,4)),NodeStart:new google.maps.MarkerImage("http://chart.apis.google.com/chart?cht=mm&chs=24x24&chco=ffffff,00FF00,000000&chf=a,s,ffffffff&ext=.png",
new google.maps.Size(24,24),new google.maps.Point(0,0),new google.maps.Point(12,23)),NodeFinish:new google.maps.MarkerImage("http://chart.apis.google.com/chart?cht=mm&chs=24x24&chco=ffffff,FF0000,000000&chf=a,s,ffffffff&ext=.png",new google.maps.Size(24,24),new google.maps.Point(0,0),new google.maps.Point(12,23)),NodeHere:new google.maps.MarkerImage("http://chart.apis.google.com/chart?cht=mm&chs=24x24&chco=ffffff,7F7FFF,000000&chf=a,s,ffffffaf&ext=.png",new google.maps.Size(24,24),new google.maps.Point(0,
0),new google.maps.Point(12,23))},clsObj={constructor:function(a,b){this.m_map=b.map;this.m_handlers=[]},destroy:function(){this.m_map=null;for(var a=this.m_handlers;a.length>0;)dojo.disconnect(a.shift())},populateMenu:function(a){var b,c,d=this.m_menu,f,g=a.length,h;for(h=0;h<g;++h)if(b=document.createElement("IMG"),c=RA.MapViewer.NoteIconsButton.getIcon(a[h].value),f=a[h].title,b.src=RA.Urls.iconsRoot+"/"+c+".png",b.width=20,b.height=20,b.title=f,b.m_idx=this.m_vecItems.length,c={img:b,value:a[h].value,
title:f},this.m_vecItems.push(c),d.appendChild(b),this.m_handlers.push(dojo.connect(b,"onclick",this,this.onSelectItem)),this.m_vecItems.length===1)this.setButtonContent(this.createButtonImage(b),f),this.m_activeItem=this.m_vecItems[0]},createButtonImage:function(a){var b=this.inherited(arguments);b.width=20;b.height=20;return b}},dojo.declare("RA.MapViewer.NoteIconsButton",[RA.Controls.ComboButton],clsObj),RA.MapViewer.NoteIconsButton.getIcon=function(a){var b=RA.MapViewer.NoteTypeEnum;switch(a){case b.Water:return"drinkingfountain";
case b.FirstAid:return"firstaid";case b.Note:return"text"}throw"unknown note icon";},clsObj={"-chains-":{destroy:"before",execute:"before"},constructor:function(a){if(a.map==null)throw"map cannot be null";this.m_map=a.map},destroy:function(){this.m_map=null},execute:function(){}},dojo.declare("RA.MapViewer.UndoBase",[],clsObj),clsObj={constructor:function(a){this.m_idxFirst=a.first;this.m_idxLast=a.last},execute:function(){var a=this.m_map,b=this.m_idxFirst,c;for(c=this.m_idxLast;c>=b;--c)a.removePointImp(c,
a.getRouteNode(c),c==b)}},dojo.declare("RA.MapViewer.UndoAppendRouteNodes",[RA.MapViewer.UndoBase],clsObj),clsObj={constructor:function(){},execute:function(){this.m_map.reverse(!0)}},dojo.declare("RA.MapViewer.UndoReverse",[RA.MapViewer.UndoBase],clsObj),clsObj={constructor:function(a){this.m_idx=a.idx;this.m_latlng=a.latlng},execute:function(){var a=this.m_map.getRouteNode(this.m_idx);a.marker.setPosition(this.m_latlng);this.m_map.movePoint(a.marker,!0)}},dojo.declare("RA.MapViewer.UndoMove",[RA.MapViewer.UndoBase],
clsObj),clsObj={constructor:function(a){this.m_latlng=a.latlng;this.m_idxPt=a.idxPt-1},execute:function(){var a=this.m_idxPt,b,c,d=0,f=this.m_map,g=null;a<0?(a=0,b=this.m_map.m_vecRouteSegs[0],c=this.m_latlng,c.distance=0,b.insertAt(0,c),this.m_map.attachRouteNodeMarker(c,b,RA.MapIcons.NodeClear),this.m_map.forEachRouteNode(function(a,b){if(a==0)return g=b,!0;b.distance=b.distanceFrom(g);if(a==1)f.swapNodeMarkers(g,b),d=b.distance}),this.m_map.recreateDistanceMarkers(0),this.m_map.updateElevation(0,
d,d)):this.m_map.insertPointImp(a,this.m_latlng,!0);this.m_map.recreateDistanceMarkers(a)}},dojo.declare("RA.MapViewer.UndoRemove",[RA.MapViewer.UndoBase],clsObj),clsObj={constructor:function(a){this.m_pt=a.pt;this.m_idxPt=a.idxPt},destroy:function(){this.m_marker=null},execute:function(){var a=this.m_idxPt,b,c,d;this.m_map.removePointImp(a,this.m_pt,!1);b=this.m_map.m_distanceMarkers;c=b.length;for(d=0;d<c;++d)a<=b[d].idxNode&&--b[d].idxNode}},dojo.declare("RA.MapViewer.UndoInsert",[RA.MapViewer.UndoBase],
clsObj),RA.MapViewer.Strings={lblElevationProfile:"Elevation Profile",lblElevationStats:"Elevation: +{0} {3} / -{1} {3} / net: {2} {3}",msgInvalidElevation:"There is no elevation data for this region.  Elevation profile will be disabled for this map.",tipErase:"Erase route and all note markers",tipFitMap:"View entire route",tipGeoLocate:"Specify address",tipMaximize:"Maximize",tipNoteFirstAidMarker:"Create first aid marker",tipNoteMarker:"Create note marker",tipNoteWaterMarker:"Create water marker",
tipNotePrompt:"<b>Left click:</b> edit<br/><b>Right click:</b> delete",tipPrivateMap:"Mark route as private",tipPrintMap:"Display printer friendly version of map",tipRace:"Mark as race course",tipReloadElevation:"Toggle/resample elevation",tipRestore:"Restore",tipRouteBackToStart:"Follow route back to start (lollipop route)",tipRouteBike:"Follow road on bike, observe all traffic rules, avoid highways",tipRouteCar:"Follow road in car, observe all traffic rules",tipRouteFoot:"Follow road on foot, avoid highways",
tipRouteManual:"Create route manually",tipRouteOutAndBack:"Create out and back route",tipRouteReverse:"Reverse route",tipToggleAutoCenter:"Toggle auto center map",tipToggleDistanceMarkers:"Toggle distance markers",tipUndo:"Undo",txtDistance:"Distance",txtEraseConfirmation:"Erasing the map cannot be undone.  Are you sure?",txtLocation:"Location"};
dojo._hasResource["RA.Controls.MapUrlViewer"]||(dojo._hasResource["RA.Controls.MapUrlViewer"]=!0,dojo.provide("RA.Controls.MapUrlViewer"),clsObj={constructor:function(a,b){this.copyConstructor(b);this.handlerHelper($addHandler)},destructor:function(){this.handlerHelper($clearHandlers)},handlerHelper:function(a){var b=this;a(b.getElement(),"click",function(){b.onClick()})},onClick:function(){var a;a=$RAGet(this.m_map);var b;b=RA.DistanceUnit.toAbbrevString(a.getDistanceUnit());a=$RAGetElement(this.m_url);
a.value=this.m_urlFormat.replace("{0}",b);a=$RAGetElement(this.m_html);a.value=this.m_htmlFormat.replace("{0}",b);$RAGet(this.m_dlg).open()}},dojo.declare("RA.Controls.MapUrlViewer",RA.Controls.Control,clsObj));
if(!dojo._hasResource["RA.GarminCtrl"])dojo._hasResource["RA.GarminCtrl"]=!0,dojo.provide("RA.GarminCtrl"),clsObj={constructor:function(a,b){var c=this,d,f,g,h;c.copyConstructor(b);c.m_plugin=null;c.m_state=0;c.m_count=0;c.m_idxDevice=-1;c.m_vecDevices=[];c.m_vecWorkoutIds=[];c.m_vecWorkouts=[];c.m_idxWorkout=0;c.m_pluginVersion=[];c.m_vecAttribCtrls=[];c.m_ctrlAction=$RAGetElement(c.m_ctrlAction);$addHandler(c.m_ctrlAction,"click",function(a){c.OnClick(a)});c.m_displayTracer=$RAGetElement(c.m_displayTracer);
$addHandler(c.m_displayTracer,"click",function(a){c.onClickTracer(a)});c.m_tracer=$RAGetElement(c.m_tracer);c.m_traceData=$RAGetElement(c.m_traceData);c.m_traceData.value="";c.m_tracePanel=$RAGetElement(c.m_tracePanel);g=c.m_vecAttribCtrls;g.push(c.m_ctrlPublicRoute);g.push(c.m_ctrlCopyWorkout);g.push(c.m_ctrlReplaceElevation);h=function(a){c.OnMapAttribs(a)};f=g.length;for(d=0;d<f;++d)g[d]=$RAGetElement(g[d]),$addHandler(g[d],"click",h);c.m_state==RA.GarminCtrl.DeviceState.DisallowImport?(c.SetAltContent(c.kMsgQueuedData),
c.Trace("Processing data...",!0)):c.DetectPlugin()&&c.DetectDevice()},destroy:function(){var a,b=this.m_vecAttribCtrls,c=b.length,d=$clearHandlers;for(a=0;a<c;++a)d(b[a]);this.m_vecDevices.length>1&&d(this.m_ctrlName)},DetectPlugin:function(){var a,b=!1,c,d=RA.GarminCtrl.ExcludedVersions,f,g=RA.GarminCtrl.MaxVersion,h=RA.GarminCtrl.MinVersion,k,l,m;do if(typeof Garmin.DevicePlugin=="undefined")this.Trace("Garmin.DevicePlugin not loaded",!0);else if(PluginDetect.detectGarminCommunicatorPlugin())if(window.ActiveXObject==
null?(this.Trace("Seaching for GarminNetscapePlugin"),c=document.getElementById("GarminNetscapePlugin")):(this.Trace("Searching for GarminActiveXControl"),c=document.getElementById("GarminActiveXControl")),c==null)this.Trace("Cannot find Garmin Communicator plugin",!0);else if(this.Trace("found "+c.id),this.m_plugin=k=new Garmin.DevicePlugin(c),k.getVersionXml()==void 0)this.Trace("Unable to communicate with plugin",!0);else{try{if(k.isPluginOutOfDate()){this.Trace("Your Garmin plugin is out of date. Please install the latest version.",
!0);break}}catch(n){n.description!=null?this.Trace(n.description):n.message!=null?this.Trace(n.message):this.Trace("plugin.isPluginOutOfDate() failed");this.Trace("Unable to determine plugin compatibility",!0);break}this.m_pluginVersion=l=k.getPluginVersion();this.Trace("Plugin version: "+l[0]+"."+l[1]+"."+l[2]+"."+l[3]);m=RA.Util.compareVersions(l,h);m>=0&&(m=RA.Util.compareVersions(l,g),m=Math.max(0,m));for(c=0;c<d.length&&!a;++c){a=!0;for(f=0;f<d[c].length;++f)if(l.length>f&&d[c][f]!=l[f]){a=!1;
break}}if(m!=0){f="";for(c=h.length-1;c>=0;--c)f.length==0&&h[c]==0||(f=h[c].toString()+f,c>0&&(f="."+f));c="Your current Garmin plugin version is "+k.getPluginVersionString()+". ";c+=a?"This version has known bugs and cannot be used":"You need to install the latest version.";this.Trace(c,!0)}else k.unlock([this.m_strHost,this.m_strKey])?(this.Trace("Unlocked plugin"),this.ChangeState(RA.GarminCtrl.DeviceState.Disconnected),b=!0):this.Trace("Unable to unlock Garmin Communicator Plugin",!0)}else this.Trace("Garmin Communicator not installed",
!0),this.m_ctrlAction.parentNode.style.display="none";while(0);if(!b)this.SetAltContent(this.kMsgMissingPlugin),this.m_ctrlAction.disabled=!0;return b},EnableControlsPanel:function(a){var b=$RAGetElement(this.m_ctrlAltContent);b.style.display=a?"none":"block";b=$RAGetElement(this.m_ctrlContent);b.style.display=a?"block":"none"},SetAltContent:function(a){var b=$RAGetElement(this.m_ctrlAltContent);if(b!=null&&a!=null&&a.length>0)b.innerHTML=a,this.EnableControlsPanel(!1)},Trace:function(a,b){var c=
this.m_traceData,d=this.m_tracePanel;b&&(this.SetStatus(a),a="Status: "+a);c.value.length>0&&(c.value+="\n");c.value+=a;d.innerHTML+="<p>"+RA.Util.encodeHtml(a)+"</p>"},SetStatus:function(a){var b=this.getElement();b.textContent==null?b.innerText=a:b.textContent=a},DetectDevice:function(){var a=this,b=RA.GarminCtrl.DeviceState,c=a.m_plugin,d=!1,f,g=!1,h=Garmin.DeviceControl.FILE_TYPES,k,l,m,n,o;do if(a.m_state==b.Disconnected)try{a.Trace("Detecting GPS...",!0),c.startFindDevices(),a.ChangeState(b.Connecting),
setTimeout(function(){a.DetectDevice()},RA.GarminCtrl.PollingFrequency)}catch(p){p.description!=null?a.Trace(p.description):p.message!=null?a.Trace(p.message):a.Trace("startFindDevices() failed",!0)}else if(a.m_state!=b.Connecting)a.Trace("Unexpected device state: "+a.m_state);else if(c.finishFindDevices()){a.Trace("plugin.finishFindDevices() completed");a.ChangeState(b.Disconnected);k=Garmin.PluginUtils.parseDeviceXml(a.m_plugin,!0);a.m_vecDevices=k;o=0;l=k.length;m=a.m_vecDevicePreferences;for(l=
m.length;o<k.length;){n=k[o];f="device "+o+" ("+n.displayName+'): firmware="'+n.getSoftwareVersion()+'", data type="';if(n.supportDeviceDataTypeRead(h.fit))RA.Util.compareVersions(a.m_pluginVersion,RA.GarminCtrl.FR110MinVersion)<0&&(d=!0),f+="fit",n=new RA.GarminFitDevice(c,n);else if(n.supportDeviceDataTypeRead(h.tcx))f+="tcx",n=new RA.GarminTcxDevice(c,n);else{a.Trace('Ignored non-GPS device "'+n.displayName+'"');k.removeAt(o);continue}f+='"';a.Trace(f);k[o]=n;n.m_attribs=-1;for(f=0;f<l;++f)if(n.id==
m[f].id){a.loadGpsData(o,m[f]);break}++o}if(d)a.SetAltContent(a.kMsgOutdatedFR110Plugin),a.ChangeState(b.Disconnected),a.Trace("Outdated Garmin Communicator plugin",!0);else if(l=k.length,l==0)a.Trace("No connected GPS device.",!0),f=a.kMsgNoDevice,RA.Util.compareVersions(a.m_pluginVersion,RA.GarminCtrl.FR110MinVersion)<0&&(f+=a.kMsgOutdatedPlugin),a.SetAltContent(f);else{a.m_idxDevice=0;g=$RAGetElement(a.m_ctrlName);if(l==1)a.Trace("found device: "+k[0].displayName),g.innerHTML=k[0].displayName;
else{l=document.createElement("select");for(o=0;o<k.length;++o)RA.UI.addSelectOption(l,o,k[o].displayName,0);o=g.parentNode;o.removeChild(g);o.appendChild(l);$addHandler(l,"change",function(b){a.onSelectGps(b)});a.m_ctrlName=l}k[0].m_attribs==-1?a.loadDevicePreferences(k[0]):(a.SetDevicePrefs(k[0]),a.ChangeState(b.Connected));a.EnableControlsPanel(!0);g=!0}}else setTimeout(function(){a.DetectDevice()},RA.GarminCtrl.PollingFrequency);while(0);return g},loadDevicePreferences:function(a){var b=this,
c=a.id;b.Trace("Requesting device ("+c+") preferences");RA.Ajax.Ajax("GetGpsImportPreference",{callback:function(a,c){b.onReceiveGpsImportPreference(c.data)}},{gpsId:c});b.Trace("Loading preferences for "+a.displayName,!0)},onReceiveGpsImportPreference:function(a){this.Trace("Received device data");this.loadGpsData(this.m_idxDevice,a);this.EnableDevicePrefs(!0);this.ChangeState(RA.GarminCtrl.DeviceState.Connected)},EnableDevicePrefs:function(a){var b,c=this.m_vecAttribCtrls,d=c.length,f=RA.UI.enableCheckBox;
this.m_ctrlName.disabled=!a;f($RAGetElement(this.m_ctrlNewWorkouts),a);for(b=0;b<d;++b)f(c[b],a)},UploadWorkouts:function(){var a=!1;this.m_idxDevice<0?this.Trace("Unknown device id"):(a=this.m_vecDevices[this.m_idxDevice],a.startReadDir!=null?this.readDirectory():(this.ChangeState(RA.GarminCtrl.DeviceState.Connected),this.Trace("Don't know this device's capabilities.",!0)),a=!0);return a},readEntries:function(a){var b=this,c=RA.GarminCtrl.GarminCompletionState,d=b.m_vecDevices[b.m_idxDevice],f=RA.GarminCtrl.DeviceState,
g=b.m_plugin;if(a!==!0)b.Trace("device.startReadEntry()"),d.startReadEntry(b.m_vecWorkoutIds[b.m_idxWorkout]),setTimeout(function(){b.readEntries(!0)},RA.GarminCtrl.PollingFrequency);else if(b.m_state==f.CancelAction)b.Trace("user canceled startReadEntry()"),d.cancelReadEntry(),b.ChangeState(f.Connected);else if(a=d.finishReadEntry(),a==c.waiting&&b.Trace(g.getMessageBoxXml(),!0),a!=c.finished)setTimeout(function(){b.readEntries(!0)},RA.GarminCtrl.PollingFrequency);else{b.Trace("finishReadEntry() completed");
b.m_vecWorkouts.push(d.getEntry());if(d.lastUploadTime<b.m_vecWorkoutIds[b.m_idxWorkout])d.lastUploadTime=b.m_vecWorkoutIds[b.m_idxWorkout];++b.m_idxWorkout<b.m_vecWorkoutIds.length?(b.Trace("Downloading workouts from GPS ("+(b.m_idxWorkout+1).toString()+"/"+b.m_vecWorkoutIds.length.toString()+")",!0),b.readEntries()):(b.Trace("Uploading workouts...",!0),b.m_idxWorkout=0,b.m_vecWorkoutIds=[],b.SendFitnessData())}},readDirectory:function(a){var b=this,c;c=RA.GarminCtrl.GarminCompletionState;var d=
b.m_vecDevices[b.m_idxDevice],f=RA.GarminCtrl.DeviceState,g;g=b.m_plugin;if(a!==!0)b.Trace("device.startReadDir()"),d.startReadDir(),setTimeout(function(){b.readDirectory(!0)},RA.GarminCtrl.PollingFrequency);else if(b.m_state==f.CancelAction)b.Trace("user canceled startReadDir()"),d.cancelReadDir(),b.ChangeState(f.Connected);else{a=d.finishReadDir();if(a==c.waiting&&(g=g.getMessageBoxXml(),b.Trace(g),!b.ProcessGpsMessage(g))){b.Trace("Internal GPS device error",1);b.ChangeState(f.Connected);return}a!=
c.finished?(b.DisplayGpsOpStatus(),setTimeout(function(){b.readDirectory(!0)},RA.GarminCtrl.PollingFrequency)):(b.Trace("finishReadDir() completed"),bResult=!1,d.transferSucceeded()?(c=$RAGetElement(b.m_ctrlNewWorkouts),c=c!=null&&!c.checked,b.m_vecWorkoutIds=d.getEntryIds(c),bResult=!0):b.Trace("Failed to download GPS data",!0),bResult?(c=b.m_vecWorkoutIds,d=c.length,d==0?(b.ChangeState(f.Connected),b.Trace("There is no new data",!0)):(c.reverse(),b.m_idxWorkout=0,b.readEntries())):(b.SetAltContent(b.kMsgQueuedData),
b.ChangeState(RA.GarminCtrl.DeviceState.Connected)))}},ProcessGpsMessage:function(a){var b=!0,c,d=RA.GarminCtrl.GetTextContent,a=RA.Util.createXmlDoc(a);c=a.getElementsByTagName("Icon");if(c.length==1&&d(c[0])=="Exclamation"&&(c=a.getElementsByTagName("Text"),c.length==1)){a=d(c[0]);if(a.length==0)a=this.kMsgUnknownDeviceError;this.SetAltContent("<p>"+a+"</p>"+this.kMsgResetGarmin);b=!1}return b},DisplayGpsOpStatus:function(){var a,b;b=RA.Util.createXmlDoc(this.m_plugin.getProgressXml());b=b.getElementsByTagName("ProgressWidget");
b.length!=0&&(b=b[0],a=b.getElementsByTagName("Text"),b=b.getElementsByTagName("ProgressBar"),a.length<3||b.length==0||(a=RA.GarminCtrl.GetTextContent(a[0]),a=a.replace("...",""),b[0].getAttribute("Value")!=null&&(a+=" ("+b[0].getAttribute("Value")+"%)"),this.Trace("Scanning workouts: "+a,!0)))},SendFitnessData:function(){var a=this,b=[],c=a.m_vecDevices[a.m_idxDevice],d,f=0,g,h=a.m_vecWorkouts;a.Trace(h.length+" workouts to upload");g=h.length;for(d=0;d<g;++d){if(d>0&&h[d].length+f>=RA.GarminCtrl.MaxBytes){a.Trace("Batch sending "+
d+" workouts");break}b.push(h[d]);f+=h[d].length;a.m_idxWorkout=d+1}RA.Ajax.Ajax("UploadGpsWorkoutData",{callback:function(b,c){a.onDataUploadCompleted(b,c.data)}},{gpsID:c.id,attribs:a.GetAttributes(),strType:c.dataType,vecData:b});a.ChangeState(RA.GarminCtrl.DeviceState.Sending)},onDataUploadCompleted:function(a,b){for(this.Trace("onDataUploadCompleted()");this.m_idxWorkout>0;)this.m_vecWorkouts.shift(),--this.m_idxWorkout;if(this.m_vecWorkouts.length>0)this.SendFitnessData();else if(b!=null&&b.redirect)window.location.href=
window.location.href;this.Trace("Uploaded data",!0);this.SetAltContent(this.kMsgQueuedData);this.ChangeState(RA.GarminCtrl.DeviceState.Connected)},GetAttributes:function(){var a=0,b,c=this.m_vecAttribCtrls,d=c.length;for(b=0;b<d;++b)c[b].checked&&(a|=1<<b);return this.m_vecDevices[this.m_idxDevice].m_attribs=a},ChangeState:function(a){var b;this.m_state=a;b=this.m_ctrlAction;switch(a){case RA.GarminCtrl.DeviceState.Uninitialized:$RAAddClass(b,"Hidden");break;case RA.GarminCtrl.DeviceState.Disconnected:b.innerHTML=
"Connect";break;case RA.GarminCtrl.DeviceState.Connecting:b.innerHTML="Wait...";break;case RA.GarminCtrl.DeviceState.Connected:b.innerHTML="Upload";this.Trace("Ready",!0);break;case RA.GarminCtrl.DeviceState.Reading:b.innerHTML="Cancel";break;case RA.GarminCtrl.DeviceState.Sending:b.innerHTML="Cancel";this.Trace("Uploading data to server...",!0);break;case RA.GarminCtrl.DeviceState.Sent:b.innerHTML="Wait...",this.Trace("Server is processing data",!0)}this.EnableDevicePrefs(a==RA.GarminCtrl.DeviceState.Connected)},
OnClick:function(a){switch(this.m_state){case RA.GarminCtrl.DeviceState.Disconnected:this.DetectDevice();break;case RA.GarminCtrl.DeviceState.Connected:this.ChangeState(RA.GarminCtrl.DeviceState.Reading);this.EnableControlsPanel(!0);this.UploadWorkouts();break;case RA.GarminCtrl.DeviceState.Reading:case RA.GarminCtrl.DeviceState.Sending:this.ChangeState(RA.GarminCtrl.DeviceState.CancelAction)}RA.Util.preventBubbling(a);return!1},OnMapAttribs:function(){RA.Ajax.Ajax("SetGpsImportPreference",{},{gpsID:this.m_vecDevices[this.m_idxDevice].id,
attribs:this.GetAttributes()})},loadGpsData:function(a,b){var c=this.m_vecDevices[a];if(b.last_import_time!==null)c.lastUploadTime=b.last_import_time,this.Trace("last upload time: "+b.last_import_time);c.m_attribs=b.attribs==null?0:b.attribs;this.SetDevicePrefs(c)},onClickTracer:function(){tracerStyles=this.m_tracer.style;tracerStyles.display=tracerStyles.display=="none"?"":"none"},SetDevicePrefs:function(a){var b=$RAGetElement(this.m_ctrlNewWorkouts),c=this.m_vecAttribCtrls,d=c.length,f=RA.UI.enableCheckBox;
b!=null&&f(b,!0);a=a.m_attribs;for(b=0;b<d;++b)c[b].checked=(a&1<<b)!=0,f(c[b],!0)},onSelectGps:function(){var b;var a;if(!(this.m_ctrlName.selectedIndex<0))a=this.m_ctrlName,b=this.m_idxDevice=parseInt(a.options[a.selectedIndex].value,10),a=b,a=this.m_vecDevices[a],this.Trace("switched to "+a.displayName),a.m_attribs==-1?(this.ChangeState(RA.GarminCtrl.DeviceState.Connecting),this.EnableDevicePrefs(!1),this.loadDevicePreferences(a)):(this.Trace("loading cached preference data"),this.SetDevicePrefs(a),
this.ChangeState(RA.GarminCtrl.DeviceState.Connected))}},dojo.declare("RA.GarminCtrl",RA.Controls.Control,clsObj),RA.GarminCtrl.SanitizeBase64=function(a){var b,c,a=a.substr(a.indexOf("\n",0)+1),a=a.replace(RegExp("\\n","g"),"");for(b=a.length;b>0&&a.charAt(b-1)==0;)--b;for(;b>4;)if(c=a.substr(b-4,4),c=="====")b-=4;else break;b<a.length&&(a=a.substring(0,b));return a},RA.GarminCtrl.GetTextContent=function(a){return typeof a.textContent=="undefined"?a.text:a.textContent},RA.GarminCtrl.DeviceState=
{DisallowImport:-1,Uninitialized:0,Disconnected:10,Connecting:11,Connected:20,Reading:30,Sending:40,Sent:41,CancelAction:50},RA.GarminCtrl.MaxBytes=1E6,RA.GarminCtrl.PollingFrequency=1E3,RA.GarminCtrl.MinVersion=[2,6,1,0],RA.GarminCtrl.MaxVersion=[999,0,0,0],RA.GarminCtrl.ExcludedVersions=[[2,7,1,0]],RA.GarminCtrl.FR110MinVersion=[2,9,2,0],RA.GarminCtrl.ImportAttributeEnum={PublicMap:1,CopyWorkout:2,ReplaceElevation:4,Reserved3:8},RA.GarminCtrl.GarminCompletionState={idle:0,working:1,waiting:2,finished:3},
clsObj={constructor:function(a,b){dojo.mixin(this,b);this.plugin=a},startReadDir:function(){},finishReadDir:function(){},cancelReadDir:function(){},startReadEntry:function(){},finishReadEntry:function(){},cancelReadEntry:function(){},transferSucceeded:function(){},getEntryIds:function(){},getEntry:function(){}},dojo.declare("RA.GarminDevice",null,clsObj),clsObj={constructor:function(){this.dataType=Garmin.DeviceControl.FILE_TYPES.tcx},startReadDir:function(){this.plugin.startReadFitnessDirectory(this.number,
Garmin.DeviceControl.FILE_TYPES.tcx)},finishReadDir:function(){return this.plugin.finishReadFitnessDirectory()},cancelReadDir:function(){this.plugin.cancelReadFitnessDirectory()},startReadEntry:function(a){this.plugin.startReadFitnessDetail(this.number,"FitnessHistory",a)},finishReadEntry:function(){return this.plugin.finishReadFitnessDetail()},cancelReadEntry:function(){this.plugin.cancelReadFitnessDetail()},getEntry:function(){var a=this.plugin.getTcdXmlz();return RA.GarminCtrl.SanitizeBase64(a)},
transferSucceeded:function(){return this.plugin.fitnessTransferSucceeded()},getEntryIds:function(a){var b,c,d,f,g,h=[];c=RA.Util.createXmlDoc(this.plugin.getTcdXml());c=c.getElementsByTagName("TrainingCenterDatabase");c=c[0];f=c.getElementsByTagName("Activity");c=f.length;d=this.lastUploadTime;for(i=0;i<c;++i)g=f[i].getElementsByTagName("Id"),b=g.length,b>0&&(b=RA.GarminCtrl.GetTextContent(g[0]),(d<b||a)&&h.push(b));return h}},dojo.declare("RA.GarminTcxDevice",RA.GarminDevice,clsObj),clsObj={constructor:function(){this.dataType=
Garmin.DeviceControl.FILE_TYPES.fit;this.idEntry=null},startReadDir:function(){this.plugin.startReadFitDirectory(this.number)},finishReadDir:function(){return this.plugin.finishReadFitDirectory()},cancelReadDir:function(){this.plugin.cancelReadFitDirectory()},startReadEntry:function(a){this.idEntry=a},finishReadEntry:function(){return RA.GarminCtrl.GarminCompletionState.finished},cancelReadEntry:function(){this.idEntry=null},getEntry:function(){var a;a=this.plugin.getBinaryFile(this.number,this.idEntry,
!0);return RA.GarminCtrl.SanitizeBase64(a)},transferSucceeded:function(){var a=this.plugin;return a.fitTransferSucceeded==null||a.fitTransferSucceeded()},getEntryIds:function(a){var b,c,d,f,g,h,k,l=[];b=RA.Util.createXmlDoc(this.plugin.getDirectoryXml());b=b.getElementsByTagName("DirectoryListing");if(b.length!=0){b=b[0];k=b.getElementsByTagName("File");g=k.length;h=this.lastUploadTime;for(f=0;f<g;++f)c=k[f],b=c.getElementsByTagName("CreationTime"),d=c.getElementsByTagName("FileType"),d.length==1&&
RA.GarminCtrl.GetTextContent(d[0])==4&&b.length==1&&(h<RA.GarminCtrl.GetTextContent(b[0])||a)&&l.push(c.getAttribute("Path"))}return l}},dojo.declare("RA.GarminFitDevice",RA.GarminDevice,clsObj);
if(!dojo._hasResource["RA.IntervalSet"])dojo._hasResource["RA.IntervalSet"]=!0,dojo.provide("RA.IntervalSet"),clsObj={constructor:function(a,b){var c=this;c.m_cbSumIntervals=dojo.byId(b.cbSumIntervals);c.m_cbSumRecoveries=dojo.byId(b.cbSumRecoveries);c.m_cbSumRests=dojo.byId(b.cbSumRests);c.m_trHeader=dojo.byId(b.trHeader);c.m_txtIntervalsData=dojo.byId(b.txtIntervalsData);c.m_ctrlPaceCalc=$RAGet(b.ctrlPaceCalc);c.m_selType=dojo.byId("IntType");c.m_txtDistance=$RAGet(b.intDistance);c.m_txtDuration=
$RAGet(b.intDuration);c.m_txtAvgHr=$RAGet(b.intAvgHr);c.m_txtMaxHr=$RAGet(b.intMaxHr);c.m_txtNotes=$RAGet(b.intNotes);c.m_btSaveInterval=dojo.byId("SaveInterval");c.m_btCancelEdit=dojo.byId("CancelEdit");c.m_trEditor=dojo.byId(b.trEditor);c.m_txtEventDistance=b.txtEventDistance;c.m_txtEventDuration=b.txtEventDuration;c.m_txtEventAvgHr=b.txtEventAvgHr;c.m_txtEventMaxHr=b.txtEventMaxHr;c.m_vecData=[];c.m_defaultDistanceUnit=b.defaultDistanceUnit;c.m_decimalSeparator=".";$addHandler(c.m_cbSumIntervals,
"click",function(){c.onSum()});$addHandler(c.m_cbSumRecoveries,"click",function(){c.onSum()});$addHandler(c.m_cbSumRests,"click",function(){c.onSum()});c.m_txtDistance.addKeyUpHandler(function(a){c.onModify(a)});c.m_txtDuration.addKeyUpHandler(function(a){c.onModify(a)});c.m_txtAvgHr.addKeyUpHandler(function(a){c.onModify(a)});c.m_txtMaxHr.addKeyUpHandler(function(a){c.onModify(a)});c.m_txtNotes.addKeyUpHandler(function(a){c.onModify(a)});$addHandler(c.m_btCancelEdit,"click",function(a){c.onSave(a)});
$addHandler(c.m_selType,"change",function(a){c.onChangeType(a)});if(c.m_txtIntervalsData.value.length>0){c.m_vecData=eval(c.m_txtIntervalsData.value);for(var d=0;d<c.m_vecData.length;++d){var f=document.createElement("tr");c.m_trEditor.parentNode.insertBefore(f,c.m_trEditor);c.populateTextRow(f,c.m_vecData[d],d===0)}}c.onModify()},destroy:function(){$removeHandler(me.m_cbSumIntervals,"click");$removeHandler(me.m_cbSumRecoveries,"click");$removeHandler(me.m_cbSumRests,"click");$removeHandler(me.m_btCancelEdit,
"click");$removeHandler(me.m_selType,"change");this.m_btSaveInterval.m_handler!=null&&dojo.disconnect(this.m_btSaveInterval)},onSum:function(){this.autoSum()},onSave:function(a){var b=a.target,c=b.parentNode.parentNode,d=c.rowIndex-this.m_trHeader.rowIndex-1,f=d==this.m_vecData.length,b=b.id=="CancelEdit";if(!b||d<this.m_vecData.length){var g=document.createElement("tr");c.parentNode.insertBefore(g,c);var h=b?this.m_vecData[d]:this.CollectIntervalData();this.populateTextRow(g,h,d===0);this.m_vecData[d]=
h;c.parentNode.removeChild(c);g.parentNode.appendChild(c);this.autoSum();this.m_trEditor.className="IntervalsForm NewEntry"}if(!b)if(f)this.onChangeType(a);else this.m_txtDistance.setValue("",this.m_txtDistance.getUnit());this.m_txtDistance.setValue("",this.m_txtDistance.getUnit(),!0);this.m_txtDuration.setValue("",!0);this.m_txtAvgHr.setValue("",!0);this.m_txtMaxHr.setValue("",!0);this.m_txtNotes.setValue("",!0);this.onModify();a="document.getElementById('"+this.m_txtDistance.getElement().id+"').focus()";
setTimeout(a,1);this.serializeData()},onEdit:function(a){this.removeHandlers(a.target.parentNode);var a=a.target.parentNode.parentNode,b=a.rowIndex-this.m_trHeader.rowIndex-1,c=this.m_trEditor.rowIndex-this.m_trHeader.rowIndex-1;if(c<this.m_vecData.length){var d=document.createElement("tr");a.parentNode.insertBefore(d,this.m_trEditor);this.populateTextRow(d,this.m_vecData[c],c===0)}this.m_trEditor.className=b<this.m_vecData.length?"IntervalsForm ExistingEntry":"IntervalsForm NewEntry";a.parentNode.removeChild(this.m_trEditor);
a.parentNode.insertBefore(this.m_trEditor,a);a.parentNode.removeChild(a);a=this.m_vecData[b];this.m_selType.selectedIndex=a[RA.IntervalSet.DataType];this.m_txtDistance.setValue(a[RA.IntervalSet.DataDistance],a[RA.IntervalSet.DataDistanceUnit],!0);this.m_txtDuration.setValue(RA.Util.secondsToTimeString(a[RA.IntervalSet.DataDuration]),!0);this.m_txtAvgHr.setValue(a[RA.IntervalSet.DataAvgHr],!0);this.m_txtMaxHr.setValue(a[RA.IntervalSet.DataMaxHr],!0);this.m_txtNotes.setValue(a[RA.IntervalSet.DataNotes],
!0);this.onModify();this.m_btSaveInterval.parentNode.className="Action"},onDelete:function(a){var b=a.target.parentNode.parentNode,c=b.rowIndex-this.m_trHeader.rowIndex-1;if(c===0&&this.m_vecData.length>1){a=a.target.parentNode;b.removeChild(a);var d=$getNextNode(b),f=$getLastNode(d.firstChild);this.removeHandlers(f);d.removeChild(f);d.appendChild(a)}else this.removeHandlers(a.target.parentNode);this.m_vecData.splice(c,1);b.parentNode.removeChild(b);this.autoSum();this.serializeData()},onModify:function(a){var b=
!1,c;if(this.m_txtDistance.isValid()||this.m_txtDuration.isValid()){c=this.m_txtDistance.getValue();var d=RA.Util.timeStringToSeconds(this.m_txtDuration.getValue());if(!(this.m_txtDuration.getText().length>0&&d<0)&&!(c===0&&d===0)&&(c=this.m_txtAvgHr.getValue(),!isNaN(c)||!this.m_txtAvgHr.getText()))if(c=this.m_txtMaxHr.getValue(),!isNaN(c)||!this.m_txtMaxHr.getText())b=!0}if(b&&this.m_btSaveInterval.src!="/images/save_14x14.png"){if(this.m_btSaveInterval.m_handler!=null)dojo.disconnect(this.m_btSaveInterval.m_handler),
this.m_btSaveInterval.m_handler=null;this.m_btSaveInterval.m_handler=dojo.connect(this.m_btSaveInterval,"onclick",this,this.onSave);this.m_btSaveInterval.src="/images/save_14x14.png";this.m_btSaveInterval.style.cursor="pointer"}else if(!b&&this.m_btSaveInterval.src!="/images/save_gray_14x14.png"){this.m_btSaveInterval.src="/images/save_gray_14x14.png";if(this.m_btSaveInterval.m_handler!=null)dojo.disconnect(this.m_btSaveInterval.m_handler),this.m_btSaveInterval.m_handler=null;this.m_btSaveInterval.style.cursor=
"default"}if(b&&a!=null&&a.keyCode==dojo.keys.ENTER)this.onSave(a);return b},onMoveUp:function(a){var b=a.target.parentNode.parentNode,c=$getPrevNode(b),d=c.rowIndex-this.m_trHeader.rowIndex-1,f=d===0;c!=null&&(b.parentNode.removeChild(b),c.parentNode.insertBefore(b,c),f&&(a.target.parentNode.removeChild(a.target),$getLastNode(c.firstChild).appendChild(a.target)),a=this.m_vecData[d],this.m_vecData[d]=this.m_vecData[d+1],this.m_vecData[d+1]=a,this.serializeData())},onChangeType:function(){if(!(this.m_trEditor.rowIndex-
this.m_trHeader.rowIndex-1<this.m_vecData.length)){for(var a,b=this.m_selType.selectedIndex,c=0,d=-1,f=0,g=-1,h=!1,k=this.m_vecData.length-1;k>=0;--k)if(a=this.m_vecData[k],b==a[RA.IntervalSet.DataType])if(h){f=a[RA.IntervalSet.DataDistance];g=a[RA.IntervalSet.DataDistanceUnit];break}else c=a[RA.IntervalSet.DataDistance],d=a[RA.IntervalSet.DataDistanceUnit],h=!0;c>0?d==g&&c*2-f>0&&(c+=c-f):(c="",d=this.m_txtDistance.getUnit());c-Math.floor(c)>0&&(c=RA.Math.roundDecimal(c,2));this.m_txtDistance.setValue(c,
d)}},CollectIntervalData:function(){var a=[];a.push(this.m_selType.selectedIndex);a.push(this.m_txtDistance.isValid()?this.m_txtDistance.getValue():0);a.push(this.m_txtDistance.getUnit());var b=RA.Util.timeStringToSeconds(this.m_txtDuration.getValue());a.push(b>0?b:0);b=this.m_txtAvgHr.getValue();a.push(isNaN(b)?0:b);b=this.m_txtMaxHr.getValue();a.push(isNaN(b)?0:b);a.push(this.m_txtNotes.getValue());return a},populateTextRow:function(a,b,c){var d=a.insertCell(a.cells.length);d.style.borderLeft="1px solid #CCCCCC";
var f=document.createTextNode(this.m_selType.options[b[RA.IntervalSet.DataType]].text);d.appendChild(f);d=a.insertCell(a.cells.length);if(b[RA.IntervalSet.DataDistance]>0){var f=b[RA.IntervalSet.DataDistance],f=f.toString().replace(".",this.m_txtDistance.getDecimalSeparator()),g=RA.DistanceUnit.toAbbrevString(b[RA.IntervalSet.DataDistanceUnit]),f=document.createTextNode(f+" "+g);d.appendChild(f)}else d.innerHTML="&nbsp;";d=a.insertCell(a.cells.length);b[RA.IntervalSet.DataDuration]>0?(f=document.createTextNode(RA.Util.secondsToTimeString(b[RA.IntervalSet.DataDuration])),
d.appendChild(f)):d.innerHTML="&nbsp;";d=a.insertCell(a.cells.length);b[RA.IntervalSet.DataAvgHr]>0?(f=document.createTextNode(b[RA.IntervalSet.DataAvgHr]),d.appendChild(f)):d.innerHTML="&nbsp;";d=a.insertCell(a.cells.length);b[RA.IntervalSet.DataMaxHr]>0?(f=document.createTextNode(b[RA.IntervalSet.DataMaxHr]),d.appendChild(f)):d.innerHTML="&nbsp;";d=a.insertCell(a.cells.length);b[RA.IntervalSet.DataNotes].length>0?(f=document.createTextNode(b[RA.IntervalSet.DataNotes]),d.appendChild(f)):d.innerHTML=
"&nbsp;";d=a.insertCell(a.cells.length);d.className="Action";a=document.createElement("img");a.src="/images/edit.gif";a.alt="Edit";a.className="Button";a.m_handler=dojo.connect(a,"onclick",this,this.onEdit);d.appendChild(a);a=document.createElement("img");a.src="/images/delete_14x14.png";a.alt="Delete";a.className="Button";a.m_handler=dojo.connect(a,"onclick",this,this.onDelete);d.appendChild(a);if(!c)a=document.createElement("img"),a.src="/images/up_14x14.png",a.alt="Move up",a.className="Button",
a.m_handler=dojo.connect(a,"onclick",this,this.onMoveUp),d.appendChild(a);return b},autoSum:function(){var a=[],b=0,c=-1,d=0,f=0,g=0,h=!0,k=0,l=0,m,n,o,p=RA.Math.sumDecimal,q=RA.Math.convertDistance;a[0]=this.m_cbSumIntervals.checked;a[1]=this.m_cbSumRecoveries.checked;a[2]=this.m_cbSumRests.checked;if(a[0]||a[1]||a[2]){n=!0;for(o=0;o<this.m_vecData.length;++o)if(m=this.m_vecData[o],a[m[RA.IntervalSet.DataType]]){if(c==-1||c==m[RA.IntervalSet.DataDistanceUnit])b+=m[RA.IntervalSet.DataDistance],c=
m[RA.IntervalSet.DataDistanceUnit];else{if(n)n=!1,b=q(b,c,this.m_defaultDistanceUnit),c=this.m_defaultDistanceUnit;b+=q(m[RA.IntervalSet.DataDistance],m[RA.IntervalSet.DataDistanceUnit],this.m_defaultDistanceUnit)}d=p(m[RA.IntervalSet.DataDuration],d);m[RA.IntervalSet.DataAvgHr]>0&&(h&=m[RA.IntervalSet.DataDuration]>0,k+=m[RA.IntervalSet.DataDuration]*m[RA.IntervalSet.DataAvgHr],l=p(m[RA.IntervalSet.DataDuration],l));g=Math.max(g,m[RA.IntervalSet.DataMaxHr])}b-Math.floor(b)>0&&(b=RA.Math.roundDecimal(b,
2));h&&l>0&&(f=Math.round(k/l));a=$RAGet(this.m_txtEventDistance);a.setValue(b===0?"":b,c,!0);a=$RAGet(this.m_txtEventDuration);a.setValue(d===0?"":RA.Util.secondsToTimeString(d),!0);a=$RAGet(this.m_txtEventAvgHr);a.setValue(f,!0);a=$RAGet(this.m_txtEventMaxHr);a.setValue(g,!0)}this.m_ctrlPaceCalc.onCalculate()},serializeData:function(){for(var a="",b,c=0;c<this.m_vecData.length;++c){b=this.m_vecData[c];for(var d="",f=0;f<b.length;++f)d.length>0&&(d+=","),d+=typeof b[f]=="string"?'"'+b[f].replace(/\"/g,
'\\"')+'"':b[f];a.length>0&&(a+=",");a+="["+d+"]"}this.m_txtIntervalsData.value=a.length>0?"["+a+"]":""},removeHandlers:function(a){for(a=$getFirstNode(a.firstChild);a!=null;a=$getNextNode(a))if(a.m_handler!=null)dojo.disconnect(a.m_handler),a.m_handler=null}},dojo.declare("RA.IntervalSet",[RA.Controls.Control],clsObj),RA.IntervalSet.IntervalTypes=["Interval","Recovery","Rest"],RA.IntervalSet.DataType=0,RA.IntervalSet.DataDistance=1,RA.IntervalSet.DataDistanceUnit=2,RA.IntervalSet.DataDuration=3,
RA.IntervalSet.DataAvgHr=4,RA.IntervalSet.DataMaxHr=5,RA.IntervalSet.DataNotes=6;
if(!dojo._hasResource["RA.StrengthTraining"])dojo._hasResource["RA.StrengthTraining"]=!0,dojo.provide("RA.StrengthTraining"),clsObj={constructor:function(a,b){var c=this;c.m_trHeader=dojo.byId(b.m_trHeader);c.m_txtExerciseData=dojo.byId(b.m_txtExerciseData);c.m_defaultWeightUnit=RA.WeightUnit.Pound;c.m_selExercise=$RAGet(b.m_selExercise);c.m_selExercise.addChangedHandler(function(){c.OnModify()});c.m_selExercise.addKeyUpHandler(function(){c.OnModify()});c.m_txtSets=$RAGet(b.m_ctrlSets);c.m_txtReps=
$RAGet(b.m_ctrlReps);c.m_ctrlWeight=$RAGet(b.m_ctrlWeight);c.m_txtNotes=$RAGet(b.m_ctrlNotes);c.m_btSaveExercise=dojo.byId("SaveExercise");c.m_btCancelEdit=dojo.byId("CancelEdit");c.m_trEditor=dojo.byId(b.m_trEditor);c.m_vecData=[];c.m_txtSets.addKeyUpHandler(function(a){c.OnModify(a)});c.m_txtReps.addKeyUpHandler(function(a){c.OnModify(a)});c.m_ctrlWeight.addKeyUpHandler(function(a){c.OnModify(a)});c.m_txtNotes.addKeyUpHandler(function(a){c.OnModify(a)});$addHandler(c.m_btCancelEdit,"onclick",c.OnSave);
if(c.m_txtExerciseData.value.length>0){c.m_vecData=RA.Json.deserialize(c.m_txtExerciseData.value);for(var d=0;d<c.m_vecData.length;++d){var f=document.createElement("tr");c.m_trEditor.parentNode.insertBefore(f,c.m_trEditor);c.PopulateTextRow(f,c.m_vecData[d],d===0)}}c.OnModify()},destroy:function(){$removeHandler(me.m_btCancelEdit,"onclick",me.OnSave);this.m_btSaveExercise.m_handler!=null&&dojo.disconnect(this.m_btSaveExercise)},OnSave:function(a){var b=a.srcElement==null?a.target:a.srcElement,a=
null;if(b.tagName.toLowerCase()!="img"){for(var c=b.id==this.m_selExercise.getElement().id?3:2,d=0,f=b.parentNode;f!=null;){if(f.tagName.toLowerCase()=="tr"&&++d==c)break;f=f.parentNode}f!=null&&(a=f)}else a=b.parentNode.parentNode;c=a.rowIndex-this.m_trHeader.rowIndex-1;d=b.id=="CancelEdit";if(!d||c<this.m_vecData.length)b=document.createElement("tr"),a.parentNode.insertBefore(b,a),d=d?this.m_vecData[c]:this.CollectIntervalData(),this.PopulateTextRow(b,d,c===0),this.m_vecData[c]=d,a.parentNode.removeChild(a),
b.parentNode.appendChild(a),this.m_trEditor.className="IntervalsForm NewEntry";this.m_txtSets.setValue("");this.m_txtReps.setValue("");this.m_ctrlWeight.setValue(0,this.m_ctrlWeight.getUnit());this.m_txtNotes.setValue("");this.m_selExercise.getValue()==""&&(this.m_selExercise.addValue(this.m_selExercise.getText(),this.m_selExercise.getText()),this.m_selExercise.clearFilter());this.OnModify();this.SerializeData();this.m_selExercise.setText("")},OnEdit:function(a){this.RemoveHandlers(a.target.parentNode);
var a=a.target.parentNode.parentNode,b=a.rowIndex-this.m_trHeader.rowIndex-1,c=this.m_trEditor.rowIndex-this.m_trHeader.rowIndex-1;if(c<this.m_vecData.length){var d=document.createElement("tr");a.parentNode.insertBefore(d,this.m_trEditor);this.PopulateTextRow(d,this.m_vecData[c],c===0)}this.m_trEditor.className=b<this.m_vecData.length?"IntervalsForm ExistingEntry":"IntervalsForm NewEntry";a.parentNode.removeChild(this.m_trEditor);a.parentNode.insertBefore(this.m_trEditor,a);a.parentNode.removeChild(a);
a=this.m_vecData[b];this.m_selExercise.setText(a[RA.StrengthTraining.DataExercise]);this.m_txtSets.setValue(a[RA.StrengthTraining.DataSets]);this.m_txtReps.setValue(a[RA.StrengthTraining.DataReps]);this.m_ctrlWeight.setValue(a[RA.StrengthTraining.DataWeight],a[RA.StrengthTraining.DataWeightUnit]);this.m_txtNotes.setValue(a[RA.StrengthTraining.DataNotes]);this.OnModify();this.m_btSaveExercise.parentNode.className="Action"},OnDelete:function(a){var b=a.target.parentNode.parentNode,c=b.rowIndex-this.m_trHeader.rowIndex-
1;if(c===0&&this.m_vecData.length>1){a=a.target.parentNode;b.removeChild(a);var d=$getNextNode(b),f=$getLastNode(d.firstChild);this.RemoveHandlers(f);d.removeChild(f);d.appendChild(a)}else this.RemoveHandlers(a.target.parentNode);this.m_vecData.splice(c,1);b.parentNode.removeChild(b);this.SerializeData()},OnModify:function(a){var b=!1,c,d=this.m_btSaveExercise,f=d.src;c=this.m_selExercise.getText();c.length==0||c.trim().length==0||this.m_txtSets.getText().length>0&&isNaN(this.m_txtSets.getValue())||
this.m_txtReps.getText().length>0&&isNaN(this.m_txtReps.getValue())||this.m_ctrlWeight.getText().length>0&&isNaN(this.m_ctrlWeight.getValue())||(b=!0);if(b&&f.indexOf("/images/save_14x14.png")==-1){if(d.m_handler!=null)dojo.disconnect(d.m_handler),d.m_handler=null;d.m_handler=dojo.connect(d,"onclick",this,this.OnSave);d.src="/images/save_14x14.png";d.style.cursor="pointer"}else if(!b&&f.indexOf("/images/save_gray_14x14.png")==-1){d.src="/images/save_gray_14x14.png";if(d.m_handler!=null)dojo.disconnect(d.m_handler),
d.m_handler=null;d.style.cursor="default"}b&&a!=null&&a.keyCode==dojo.keys.ENTER&&this.OnSave(a);return b},OnMoveUp:function(a){var b=a.target.parentNode.parentNode,c=$getPrevNode(b),d=c.rowIndex-this.m_trHeader.rowIndex-1,f=d===0;c!=null&&(b.parentNode.removeChild(b),c.parentNode.insertBefore(b,c),f&&(a.target.parentNode.removeChild(a.target),$getLastNode(c.firstChild).appendChild(a.target)),a=this.m_vecData[d],this.m_vecData[d]=this.m_vecData[d+1],this.m_vecData[d+1]=a,this.SerializeData())},CollectIntervalData:function(){var a=
[];a.push(this.m_selExercise.getText());var b=this.m_txtSets.getValue();a.push(isNaN(b)?0:b);b=this.m_txtReps.getValue();a.push(isNaN(b)?0:b);b=parseFloat(this.m_ctrlWeight.getValue());a.push(isNaN(b)?0:b);a.push(this.m_ctrlWeight.getUnit());a.push(this.m_txtNotes.getValue());return a},PopulateTextRow:function(a,b,c){var d=a.insertCell(a.cells.length);d.style.borderLeft="1px solid #CCCCCC";d.style.width="10em";var f=b[RA.StrengthTraining.DataExercise],f=document.createTextNode(f);d.appendChild(f);
d=a.insertCell(a.cells.length);b[RA.StrengthTraining.DataSets]>0?(f=b[RA.StrengthTraining.DataSets],f=document.createTextNode(f),d.appendChild(f)):d.innerHTML="&nbsp;";d=a.insertCell(a.cells.length);b[RA.StrengthTraining.DataReps]>0?(f=b[RA.StrengthTraining.DataReps],f=document.createTextNode(f),d.appendChild(f)):d.innerHTML="&nbsp;";d=a.insertCell(a.cells.length);if(b[RA.StrengthTraining.DataWeight]>0){var g=b[RA.StrengthTraining.DataWeightUnit],f=b[RA.StrengthTraining.DataWeight].toString(),f=f.replace(".",
this.m_ctrlWeight.getDecimalSeparator())+" "+this.m_ctrlWeight.getUnitText(g),f=document.createTextNode(f);d.appendChild(f)}else d.innerHTML="&nbsp;";d=a.insertCell(a.cells.length);d.style.width="30em";b[RA.StrengthTraining.DataNotes].length>0?(f=RA.StrengthTraining.DataNotes,f=document.createTextNode(b[f]),d.appendChild(f)):d.innerHTML="&nbsp;";d=a.insertCell(a.cells.length);d.className="Action";a=document.createElement("img");a.src="/images/edit.gif";a.alt="Edit";a.className="Button";a.m_handler=
dojo.connect(a,"onclick",this,this.OnEdit);d.appendChild(a);a=document.createElement("img");a.src="/images/delete_14x14.png";a.alt="Delete";a.className="Button";a.m_handler=dojo.connect(a,"onclick",this,this.OnDelete);d.appendChild(a);if(!c)a=document.createElement("img"),a.src="/images/up_14x14.png",a.alt="Move up",a.className="Button",a.m_handler=dojo.connect(a,"onclick",this,this.OnMoveUp),d.appendChild(a);return b},SerializeData:function(){for(var a="",b,c=0;c<this.m_vecData.length;++c){b=this.m_vecData[c];
for(var d="",f=0;f<b.length;++f)d.length>0&&(d+=","),d+=typeof b[f]=="string"?'"'+b[f].replace(/\"/g,'\\"')+'"':b[f];a.length>0&&(a+=",");a+="["+d+"]"}this.m_txtExerciseData.value=a.length>0?"["+a+"]":""},RemoveHandlers:function(a){for(a=$getFirstNode(a.firstChild);a!=null;a=$getNextNode(a))if(a.m_handler!=null)dojo.disconnect(a.m_handler),a.m_handler=null}},dojo.declare("RA.StrengthTraining",[RA.Controls.Control],clsObj),RA.StrengthTraining.DataExercise=0,RA.StrengthTraining.DataSets=1,RA.StrengthTraining.DataReps=
2,RA.StrengthTraining.DataWeight=3,RA.StrengthTraining.DataWeightUnit=4,RA.StrengthTraining.DataNotes=5;
dojo._hasResource["RA.WorkoutEditor"]||(dojo._hasResource["RA.WorkoutEditor"]=!0,dojo.provide("RA.WorkoutEditor"),clsObj={"-chains-":{destroy:"before"},constructor:function(a,b){var c=this;c.m_ctrlWorkouts=dojo.byId(b.ctrlWorkouts);c.m_eventData=b.eventData;c.m_ctrlSubtypeData=$RAGetElement(b.ctrlSubtypeData);c.m_ctrlExcludeRace=b.ctrlExcludeRace;c.m_ctrlEquipments=dojo.byId(b.ctrlEquipments);c.m_ctrlIntervalSets=$RAGet(b.ctrlIntervalSets);c.m_ctrlWait=dojo.byId(b.ctrlWait);c.m_ctrlDistance=$RAGet(b.ctrlDistance);
c.m_ctrlDuration=null;c.m_ctrlPaceCalc=$RAGet(b.ctrlPaceCalc);c.m_ctrlRoute=$RAGet(b.ctrlRoute);c.m_ctrlRoute!=null&&c.m_ctrlRoute.addChangedHandler(function(a){var b=null,g=c.m_ctrlDistance,a=a.getValue(),b=typeof a=="undefined"||a==null||a.length==0?[0,g.getUnit()]:RA.Json.deserialize(a);g.setValue(b[0]==0?"0.0":b[0],b[1]);c.m_ctrlPaceCalc.onCalculate()});$addHandler(a,"change",function(){c.onSelectActivity()});$addHandler(c.m_ctrlWorkouts,"change",function(){c.onSelectWorkoutType()});c.m_ctrlPaceCalc.setSwimMode(a.options[a.selectedIndex].value==
12)},destroy:function(){$removeHandler(this.getElement(),"change");$removeHandler(this.m_ctrlWorkouts,"change")},onSelectActivity:function(){var a=this,b,c=a.m_ctrlWorkouts;$RARemoveClass(a.m_ctrlWait,"Invisible");b=a.getElement();b=b.options[b.selectedIndex].value;RA.Ajax.Ajax("GetActivityData",{callback:function(b,c){a.updateActivity(c.data)}},{activity:b,createDummy:!1});a.m_ctrlPaceCalc.setSwimMode(b==12);b=a.m_eventData[b];b!=null&&(a.m_ctrlDistance.setUnit(b.unit),a.m_ctrlPaceCalc.setUnit(b.unit),
a.m_ctrlPaceCalc.onCalculate());RA.UI.clearSelect(c);b.subtypes.length>0?RA.UI.populateSelect(c,b.subtypes):RA.UI.addSelectOption(c,"Default",-1,"");c.selectedIndex=0},onSelectWorkoutType:function(){var a=this.m_ctrlWorkouts;this.m_ctrlSubtypeData.value=a.options[a.selectedIndex].innerHTML;this.m_ctrlExcludeRace!=null&&this.excludeRace()},excludeRace:function(){dojo.byId(this.m_ctrlExcludeRace).style.display=this.m_ctrlWorkouts.options[this.m_ctrlWorkouts.selectedIndex].value=="6"?"block":"none"},
updateActivity:function(a){RA.UI.clearSelect(this.m_ctrlEquipments);a.equipments!=null&&RA.UI.populateSelect(this.m_ctrlEquipments,a.equipments);this.m_ctrlIntervalSets!=null&&(this.m_ctrlIntervalSets.clear(),a.intervalSets==null?this.m_ctrlIntervalSets.cache("",[],!1):(this.m_ctrlIntervalSets.cache("",a.intervalSets,!1),this.m_ctrlIntervalSets.clearFilter()));$RAAddClass(this.m_ctrlWait,"Invisible")}},dojo.declare("RA.WorkoutEditor",[RA.Controls.Control],clsObj));
if(!dojo._hasResource["RA.EquipmentEditor"])dojo._hasResource["RA.EquipmentEditor"]=!0,dojo.provide("RA.EquipmentEditor"),RA.SportType={Run:10,Bike:11,Swim:12},RA.ShoeSizeSystem={US:0,UK:1,EU:2,AU:3,JP:4},clsObj={constructor:function(a,b){var c=this;c.m_ctrlMake=$RAGetElement(b.make);c.m_ctrlModel=$RAGet(b.model);c.m_modelBatchSize=50;c.m_ctrlEquipment=$RAGetElement(b.equipment);c.m_strDisplayedModel=b.m_strDisplayedModel;c.m_ctrlModelWait=$RAGetElement(b.modelWait);c.m_ctrlReview=$RAGetElement(b.review);
c.m_ctrlRating=$RAGet(b.rating);c.m_ctrlGender=$RAGetElement(b.gender);c.m_trGender=b.trGender;c.m_trSize=b.trSize;var d=function(){c.getEquipmentInfo()};c.m_ctrlModel.addChangedHandler(d);c.m_ctrlModel.addBlurHandler(d);c.m_ctrlModel.addRequestItemHandler(function(a,b,d){a=c.getElement();d.eventType=parseInt(a.options[a.selectedIndex].value,10);a=c.m_ctrlMake;d.makeId=a.options[a.selectedIndex].value});c.handlerHelper($addHandler)},handlerHelper:function(a){var b=this;a(b.getElement(),"change",function(a){b.onSelectActivity(a)});
a(b.m_ctrlMake,"change",function(a){b.onSelectMake(a)})},onSelectActivity:function(){var a=this,b,c;b=a.getElement();c={callback:function(b,c){var g=b.ctrl;RA.UI.clearSelect(b.ctrl);RA.TrainingLog.populateDdl(g,c.data);a.onSelectMake()},ctrl:a.m_ctrlMake};b=b.options[b.selectedIndex].value;RA.Ajax.Ajax("GetEquipmentMakes",c,{activity:b});$RAToggleClass($RAGetElement(a.m_trGender),"Hidden",b!=RA.SportType.Run);$RAToggleClass($RAGetElement(a.m_trSize),"Hidden",b!=RA.SportType.Run)},onSelectMake:function(){this.m_ctrlModel.clear();
this.m_ctrlModel.requestItems("")},getEquipmentInfo:function(){var a=this,b,c,d,f,g;strModel=a.m_ctrlModel.getText();if(a.m_ctrlEquipment!=null)if(strModel.length===0)a.m_ctrlEquipment.innerHTML=RA.EquipmentEditor.Strings.MsgNoPicture;else if(a.m_strDisplayedModel!=strModel)$RARemoveClass(a.m_ctrlModelWait,"Invisible"),b={ctrl:this,callback:function(b,c){a.displayInfo(b,c.data)}},ddl=a.m_ctrlGender,c=ddl.options[ddl.selectedIndex].value,ddl=a.getElement(),d=ddl.options[ddl.selectedIndex].value,ddl=
a.m_ctrlMake,f=ddl.options[ddl.selectedIndex].value,g=a.m_ctrlModel.getValue(),RA.Ajax.Ajax("GetEquipmentModelInfo",b,{activity:d,gender:c,make:f,model:strModel,modelId:g});a.m_strDisplayedModel=strModel},displayInfo:function(a,b){var c,d;$RAAddClass(this.m_ctrlModelWait,"Invisible");this.m_ctrlEquipment.innerHTML="";if(b.imageUrl!=null)c=document.createElement("img"),c.src=b.imageUrl,b.productUrl!=null?this.m_ctrlEquipment.appendChild(c):(c.style.border="0px",d=document.createElement("a"),d.href=
'javascript:PopupWindow("'+b.productUrl+'");',d.appendChild(c),this.m_ctrlEquipment.appendChild(d));this.m_ctrlReview.innerHTML=b.review!=null?b.review:"";this.m_ctrlReview.onkeyup();this.m_ctrlRating.set_Rating(b.userRating!=null&&b.userRating>0?b.userRating:0);if(this.m_ctrlEquipment.innerHTML==null||this.m_ctrlEquipment.innerHTML.length===0)this.m_ctrlEquipment.innerHTML=RA.EquipmentEditor.Strings.MsgNoPicture}},dojo.declare("RA.EquipmentEditor",RA.Controls.Control,clsObj),RA.EquipmentEditor.LoadShoeSizes=
function(a,b){var c=document.getElementById(b),d;if(!(c==null||a==null)){switch(a.selectedIndex){case RA.ShoeSizeSystem.UK:nStart=2.5;nStop=14;nStep=0.5;break;case RA.ShoeSizeSystem.EU:nStart=35;nStop=49;nStep=0.5;break;case RA.ShoeSizeSystem.AU:nStart=3;nStop=14;nStep=0.5;break;case RA.ShoeSizeSystem.JP:nStart=21.5;nStop=32;nStep=0.5;break;default:nStart=3.5,nStop=16,nStep=0.5}c.innerHTML="";RA.UI.addSelectOption(c,"","--");for(var f=nStart;f<=nStop;f+=nStep)d=f-parseInt(f,10)===0.5?f.toString():
parseInt(f,10).toString(),RA.UI.addSelectOption(c,d,d)}},RA.EquipmentEditor.Strings={MsgNoPicture:"No picture"};
dojo._hasResource["RA.Controls.DragAndDrop"]||(dojo._hasResource["RA.Controls.DragAndDrop"]=!0,dojo.provide("RA.Controls.DragAndDrop"),clsObj={constructor:function(a){var b=$RACreateElement("a");a.appendChild(b);$RAAddClass(b,"RAPlanDraggable");b.setAttribute("draggable",!0);b.href="#";this.m_dragRegion=b;this._handlerHelper($addHandler)},destroy:function(){this._handlerHelper($removeHandler)},_handlerHelper:function(a){var b=this,c=b.m_dragRegion;a(c,"dragstart",function(a){b.onDragStart(a)});a(c,
"drag",function(a){b.onDrag(a)});a(c,"dragend",function(a){b.onDragEnd(a)})},onDragged:function(){}},dojo.declare("RA.Controls.Draggable",RA.Controls.Control,clsObj),clsObj={constructor:function(){this._handlerHelper($addHandler)},destroy:function(){this._handlerHelper($removeHandler)},_handlerHelper:function(a){var b=this,c=b.getElement();a(c,"drop",function(a){b.onDrop(a)});a(c,"dragover",function(a){b.onDragOver(a)});a(c,"dragenter",function(a){b.onDragEnter(a)});a(c,"dragleave",function(a){b.onDragLeave(a)})}},
dojo.declare("RA.Controls.Droppable",RA.Controls.Control,clsObj));
dojo._hasResource["RA.Controls.TrainingPlanEditor"]||(dojo._hasResource["RA.Controls.TrainingPlanEditor"]=!0,dojo.provide("RA.Controls.TrainingPlanEditor"),clsObj={constructor:function(a,b){var c=this,d=b.activities,f=b.firstDayOfWeek,g=[];c.m_beginDate=$RAGet(b.beginDate);c.m_endDate=$RAGet(b.endDate);c.m_numWeeks=$RAGet(b.numWeeks);c.m_maxNumWeeks=b.maxNumWeeks;c.m_shift=$RAGetElement(b.shift);c.m_aerobicDlg=$RAGet(b.aerobicDlg);c.m_aerobicSave=$RAGetElement(b.aerobicSave);c.m_aerobicActivityTypes=
$RAGet(b.aerobicActivityTypes);c.m_aerobicWorkoutTypes=$RAGet(b.aerobicWorkoutTypes);c.m_aerobicDistance=$RAGet(b.aerobicDistance);c.m_aerobicDuration=$RAGet(b.aerobicDuration);c.m_aerobicNotes=$RAGetElement(b.aerobicNotes);c.m_weightsDlg=$RAGet(b.weightsDlg);c.m_weightsNotes=$RAGetElement(b.weightsNotes);c.m_weightsSave=$RAGetElement(b.weightsSave);c.m_planData=$RAGetElement(b.planData);c.m_vecSaveButtons=[];c.m_vecSaveButtons.push($RAGetElement(b.saveButton));c.m_validator=$RAGet(b.validator);c.m_defaultUnit=
b.defaultUnit;f=b.firstDayOfWeek;c.m_firstDayOfWeek=f;c.m_data={beginDate:c.m_beginDate.getDate(),endDate:c.m_endDate.getDate()};if(RA.UI.Capabilities.dragAndDrop()){c.m_mapActivities=d;b.activities!=null&&a.appendChild(c.createActivities());c.m_vecWeeks=[];c.m_planData.value.length>0&&(g=RA.Json.deserialize(c.m_planData.value),f==1&&g.length>0&&g[0].day>0&&(c.m_data.beginDate.setDate(c.m_data.beginDate.getDate()+1),c.m_beginDate.setDate(c.m_data.beginDate)));c.m_editor=c.createEditor();a.appendChild(c.m_editor);
if(g.length>0){var h,k,l,m,n,o=c.m_vecWeeks;n=g.length;if(n>0&&g[0].day==0&&f!=0)c.m_data.beginDate=c.getFirstDateOfWeek(c.m_data.beginDate),c.m_beginDate.setDate(c.m_data.beginDate),c.labelDays(c.m_editor,c.m_data.beginDate),f-=7;for(l=0;l<n;++l){m=g[l];h=m.day-f;k=o[Math.floor(h/7)].days[h%7];h=d[m.typeId];if(h!=null){if(h.color!=null)m.color=h.color;if(m.typeName==null)m.typeName=h.name;if(m.subtypeName==null&&m.subtypeId>0)m.subtypeName=h.workoutTypes[m.subtypeId]}k.addItem(m)}for(l=0;l<o.length;++l)c.summarizeWeek(o[l])}c.m_numWeeks.setValue(c.getNumWeeks(c.m_data.beginDate,
c.m_data.endDate));c.handlerHelper($addHandler);c.m_aerobicActivityTypes.addBlurHandler(function(){c.onPopulateWorkoutTypes()});c.m_beginDate.addDateChangedHandler(function(){c.onBeginDateChanged()});c.m_endDate.addDateChangedHandler(function(){c.onEndDateChanged()});c.m_numWeeks.addBlurHandler(function(){c.onNumWeeksChanged()});c.m_numWeeks.addKeyPressHandler(function(a){a.keyCode==13&&(RA.Util.preventBubbling(a),c.onNumWeeksChanged())});c.m_aerobicDistance.addKeyPressHandler(function(a){c.onKeyPress(a)});
c.m_aerobicDuration.addKeyPressHandler(function(a){c.onKeyPress(a)});if(window.onbeforeunload==null)window.onbeforeunload=function(){if(c.m_bDirty)return"Training plan has been modified"}}else d=$RACreateElement("div"),d.className="ErrorPanel",d.style.width="40em",d.style.margin="0px auto",d.innerHTML="<p>Your browser does not support drag and drop.  It is needed by the training plan editor.</p><p>The training plan editor is supported by the following browsers:</p><ul><li>Chrome</li><li>Firefox 3.6 and up</li><li>Internet Explorer 7 and up</li><li>Safari 4 and up</li></ul>",
a.appendChild(d)},destroy:function(){var a,b,c=this.m_vecWeeks;this.handlerHelper($removeHandler);b=c.length;for(a=0;a<b;++a)this.destroyWeek(c[a])},handlerHelper:function(a){var b=this,c;a(b.m_aerobicSave,"click",function(a){b.onSaveAerobic(a)});a(b.m_weightsSave,"click",function(a){b.onSaveWeights(a)});for(c=0;c<b.m_vecSaveButtons.length;++c)a(b.m_vecSaveButtons[c],"click",function(){b.serialize();b.m_bDirty=!1});a(b.m_shift,"click",function(){b.m_numWeeks.enable(!b.m_shift.checked)});a(window,
"resize",function(){if(b.getElement().style.width=="100%")b.onResize()});a(window,"scroll",function(){b.onScroll()});a(b.m_resize,"click",function(){var a;a=b.getElement().style;if(bMaximize=a.width!="100%")b.maximize(),b.positionContainer();else{var c=b.m_calendar,g=c.parentNode.style,c=c.style,h=b.m_calendarHeader.style,k=b.m_editor.style;a.cssFloat=a.styleFloat="";a.width="";a.height="";a.position="";a.left="";a.top="";k.width="";k.borderLeft="";k.borderRight="";k.borderBottom="";h.width="";c.width=
"";g.width="";g.maxHeight="";g.height="";b.m_resize.src="/images/20/maximize.png";b.m_resize.title="Maximize"}})},destroyWeek:function(a){var b,c=a.days,d=a.dayHeaders;for(b=0;b<7;++b)$RADestroy(c[b]),$RADestroy(d[b]);$RADestroy(a.header)},createActivities:function(){var a,b=this.m_aerobicActivityTypes,c,d=this.m_mapActivities,f;f=$RACreateElement("ul");f.className="RAPlanActivities";c=$RACreateElement("li");c.className="RAPlanEditorSize";f.appendChild(c);a=$RACreateElement("img");a.src="/images/20/maximize.png";
a.title="Maximize";c.appendChild(a);this.m_resize=a;for(id in d)a=d[id],a.id!=20&&b.addValue(a.name,a.id),RA.Math.between(a.id,10,49)&&(c=$RACreateElement("li"),f.appendChild(c),a={typeId:a.id,typeName:a.name,color:a.color,unit:a.unit},$RAInstantiate(c,RA.Controls.PlanActivity,{activity:a}));c=$RACreateElement("li");f.appendChild(c);a={typeId:-1,typeName:"Other",color:"#444"};$RAInstantiate(c,RA.Controls.PlanActivity,{activity:a});return f},createEditor:function(){var a,b;b=this.m_firstDayOfWeek;
var c,d,f,g=RA.I18N.Calendar.dayFull;a=$RACreateElement("div");a.className="RAPlanEditor";d=$RACreateElement("table");a.appendChild(d);this.m_calendarHeader=d;d.className="RAPlanCalendarHeader";d.setAttribute("cellpadding",0);d.setAttribute("cellspacing",0);c=$RACreateElement("tbody");d.appendChild(c);d=$RACreateElement("tr");c.appendChild(d);for(c=0;c<7;++c)f=$RACreateElement("td"),d.appendChild(f),f.innerHTML=g[(c+b)%7];f=$RACreateElement("td");d.appendChild(f);f.className="Summary";f.innerHTML=
"Summary";b=$RACreateElement("div");a.appendChild(b);b.className="RAPlanCalendar";this.m_calendar=this.createCalendar(this.m_beginDate.getDate(),this.m_endDate.getDate());b.appendChild(this.m_calendar);return a},createCalendar:function(a,b){var c,d,f,g;f=$RACreateElement("table");f.setAttribute("cellpadding",0);f.setAttribute("cellspacing",0);g=$RACreateElement("tbody");f.appendChild(g);a=this.getFirstDateOfWeek(a);b=this.getFirstDateOfWeek(b);b.setDate(b.getDate()+6);d=Math.ceil(RA.Util.dateDiff(a,
b)/7);for(c=0;c<d;++c)this.createWeek(g);this.labelDays(f,a);return f},labelDays:function(a,b){var c,d,f,g=this.m_endDate.getDate().getTime(),h,k=RA.I18N.Calendar.monthAbbrev3,l,m;l=this.m_vecWeeks;f=l.length;b=new Date(b.getFullYear(),b.getMonth(),b.getDate());for(c=0;c<f;++c){m=l[c];h=m.dayHeaders;for(d=0;d<7;++d)$RAToggleClass(h[d].getElement(),"Target",b.getTime()==g),h[d].setText(k[b.getMonth()]+" "+b.getDate()),b.setDate(b.getDate()+1);m.header.setText("Week "+(c+1))}},createWeek:function(a,
b){var c,d,f,g,h,k,l=[],m=[],n=this.m_vecWeeks,o={id:RA.Util.createGuid()};k=$RACreateElement("tr");h=$RACreateElement("tr");b?(a.insertBefore(h,a.firstChild),a.insertBefore(k,a.firstChild)):(a.appendChild(k),a.appendChild(h));f=n.length;for(d=0;d<7;++d)g=$RACreateElement("th"),k.appendChild(g),c=$RAInstantiate(g,RA.Controls.PlanDayHeader,null),m.push(c),g=$RACreateElement("td"),h.appendChild(g),day=$RAInstantiate(g,RA.Controls.PlanDay,{editor:this,week:o}),c.setDay(day),l.push(day);g=$RACreateElement("th");
k.appendChild(g);o.header=$RAInstantiate(g,RA.Controls.PlanWeekHeader,{weekNum:f+1,idWeek:o.id});g=$RACreateElement("td");h.appendChild(g);$RAInstantiate(g,RA.Controls.PlanDay,{editor:this,week:o,bSummary:!0});g.className="Summary";o.days=l;o.dayHeaders=m;o.summary=g;b?n.insertAt(0,o):n.push(o)},copyWeek:function(a,b){var c,d,f=this.m_vecWeeks.length,g=null,h,k=null;d=this.m_vecWeeks;for(c=0;c<f;++c)if(a==d[c].id)k=d[c].days;else if(b==d[c].id)dstWeek=d[c],g=dstWeek.days;if(!(g==null||k==null)){for(c=
0;c<7;++c)if(g[c].getItems().length>0){if(!confirm("Replace existing entries in the week?"))return;break}for(c=0;c<7;++c){g[c].clear();h=k[c].getItems();f=h.length;for(d=0;d<f;++d)item=g[c].addItem(h[d].m_data,!0)}this.summarizeWeek(dstWeek)}},getFirstDateOfWeek:function(a){var b=this.m_firstDayOfWeek,a=new Date(a.getFullYear(),a.getMonth(),a.getDate());a.setDate(a.getDate()-(a.getDay()-b+7)%7);return a},onResize:function(){var a=this;a.m_hResize!=null&&($taskManager.cancelTask(a.m_hResize),delete a.m_hResize);
a.m_hResize=$taskManager.enqueue(function(){a.maximize();a.positionContainer()},500)},onScroll:function(a){var b=this;if(b.getElement().style.width=="100%")a===!0?(b.m_scrollTask=null,b.positionContainer()):(b.m_scrollTask!=null&&$taskManager.cancelTask(b.m_scrollTask),b.m_scrollTask=$taskManager.enqueue(function(){b.onScroll(!0)},50))},positionContainer:function(){var a=this.getElement(),b=dijit.getViewport();a.style.left=b.l+"px";a.style.top=b.t+"px"},maximize:function(){var a,b=this.getElement().style;
a=this.m_calendar;var c=a.parentNode.style,d=a.style,f=this.m_calendarHeader.style,g=this.m_editor,h=dojo.position(g),k=g.style,l=h.w-dojo.position(a).w;a=dojo.position(this.m_resize.parentNode).h+6;b.cssFloat=b.styleFloat="none";b.width="100%";b.height="auto";b.position="absolute";b.left="0px";b.top="0px";k.width="100%";k.borderLeft="none";k.borderRight="none";k.borderBottom="none";h=dojo.position(g);f.width=h.w-l+"px";d.width="100%";c.width="100%";c.maxHeight="none";c.height=RA.UI.getWindowHeight()-
a-l-4+"px";this.m_resize.src="/images/20/restore.png";this.m_resize.title="Restore"},onKeyPress:function(a){a.keyCode==13&&(this.onSaveAerobic(),RA.Util.preventBubbling(a));this.inherited(arguments)},onEditItem:function(a,b){var c=this,d=c.m_aerobicActivityTypes,f=a.m_data,g,h=c.m_mapActivities,k,l;if(f.typeId==20)c.m_weightsNotes.value=f.notes==null?"":f.notes.replace(/\\n/g,"\n"),g=c.m_weightsDlg,g.m_item=a,g.open(),c.summarizeWeek(a.getWeek());else{d.selectItemByString(f.typeName)||d.setText(f.typeName);
c.m_aerobicDistance.setValue(f.distance>0?f.distance:"",f.unit,!0);c.m_aerobicDuration.setValue(f.duration==null?"":RA.Util.secondsToTimeString(f.duration),!0);c.m_aerobicNotes.value=f.notes==null?"":f.notes.replace(/\\n/g,"\n");l=c.m_aerobicWorkoutTypes;l.clear();if(h[f.typeId]!=null&&(k=h[f.typeId].workoutTypes)!=null){for(g in k)l.addValue(k[g],g);f.subtypeName==null?l.clearFilter():l.selectItemByString(f.subtypeName)||l.setText(f.subtypeName)}else l.setText(f.subtypeName);g=c.m_aerobicDlg;g.m_item=
a;g.open(function(){if(b&&c.m_aerobicActivityTypes.getText().length==0)a.onDelete();else c.summarizeWeek(a.getWeek())});f.typeName==null||f.typeName.length==0?d.setFocus():c.m_aerobicDistance.setFocus()}},onPopulateWorkoutTypes:function(){var a=this.m_aerobicActivityTypes.getValue(),b=this.m_mapActivities,c=this.m_aerobicWorkoutTypes;if(b[a]!=null&&(workoutTypes=b[a].workoutTypes)!=null){c.clear();for(i in workoutTypes)c.addValue(workoutTypes[i]);c.clearFilter()}},onSaveAerobic:function(){var a=this.m_aerobicActivityTypes,
b={},c=this.m_aerobicDlg,d,f=c.m_item,g=this.m_aerobicWorkoutTypes;d=parseInt(a.getValue(),10);if(d>0&&this.m_mapActivities[d]!=null&&(b.typeId=d,this.m_mapActivities[d].color!=null))b.color=this.m_mapActivities[d].color;if(b.color==null)b.color="#444";b.typeName=a.getText();if(b.typeName.length==0)alert("Please specify an activity");else{b.subtypeName=g.getText();b.subtypeId=g.getValue();b.subtypeName.length==0?(delete b.subtypeName,delete b.subtypeId):b.subtypeId.length>0?b.subtypeId=parseInt(b.subtypeId,
10):delete b.subtypeId;b.distance=this.m_aerobicDistance.getValue();b.unit=this.m_aerobicDistance.getUnit();if(isNaN(b.distance))b.distance=0;a=this.m_aerobicDuration.getValue();if(a.length>0)a=RA.Util.timeStringToSeconds(a),a>=0?b.duration=a:delete b.duration;b.notes=this.m_aerobicNotes.value.replace(/\r/g,"").replace(/\n/g,"\\n");c.close();f.update(b);this.summarizeWeek(f.getWeek());this.serialize()}},onSaveWeights:function(){var a=this.m_weightsDlg,b=a.m_item;b.m_data.notes=this.m_weightsNotes.value.replace(/\r/g,
"").replace(/\n/g,"\\n");a.close();b.update(b.m_data);this.summarizeWeek(b.getWeek());this.serialize()},onBeginDateChanged:function(){var a=this.m_beginDate.getDate(),b=this.m_endDate.getDate();this.m_shift.checked&&a!=null?(a=this.getNumWeeks(this.m_data.beginDate,a),b.setDate(b.getDate()+(a-1)*7),this.m_endDate.setDate(b)):this.changeDateRange(a,b,!0)},onEndDateChanged:function(){var a,b=this.m_endDate.getDate();this.m_shift.checked&&b!=null&&!this.m_changeDate?(a=this.m_endDate.getDate(),a.setDate(a.getDate()-
(this.m_numWeeks.getValue()-1)*7),this.m_changeDate=!0,this.m_data.beginDate=a,this.m_beginDate.setDate(a),delete this.m_changeDate):(a=this.m_beginDate.getDate(),this.changeDateRange(a,b,!1))},onNumWeeksChanged:function(){var a,b=this.m_numWeeks.getValue();b>0?(a=this.m_data,b-=this.getNumWeeks(a.beginDate,a.endDate),a=this.m_endDate.getDate(),a.setDate(a.getDate()+b*7),this.m_endDate.setDate(a)):b<0&&(alert("You have entered an invalid number"),this.m_numWeeks.setValue(b),this.m_numWeeks.setFocus())},
changeDateRange:function(a,b,c){var d;a==null||b==null||!this.m_shift.checked&&b.getTime()<a.getTime()?(this.m_beginDate.setDate(this.m_data.beginDate),this.m_endDate.setDate(this.m_data.endDate),alert("You entered an invalid date")):(a=this.getFirstDateOfWeek(a),d=this.getFirstDateOfWeek(b),d.setDate(d.getDate()+6),d=Math.ceil(RA.Util.dateDiff(a,d)/7),d=parseInt(d,10),this.changeNumWeeks(d,c)?(this.m_numWeeks.setValue(d),this.m_data.beginDate=a,this.m_data.endDate=b,this.labelDays(this.m_editor,
a),this.serialize()):(this.m_beginDate.setDate(this.m_data.beginDate),this.m_endDate.setDate(this.m_data.endDate)))},getNumWeeks:function(a,b){var c,a=this.getFirstDateOfWeek(a),b=this.getFirstDateOfWeek(b);b.setDate(b.getDate()+6);c=Math.ceil(RA.Util.dateDiff(a,b)/7);return c=parseInt(c,10)},changeNumWeeks:function(a,b){var c=!1,d,f,g,h,k=this.m_vecWeeks;if(a>this.m_maxNumWeeks)return alert("The training plan cannot have more than "+this.m_maxNumWeeks+" weeks"),!1;g=k.length;if(a<g){var l;b?(d=0,
l=g-a):d=g;for(;d<l&&!c;){h=k[d].days;for(f=0;f<7;++f)if(h[f].getItems().length>0){c=!0;break}++d}if(c&&!confirm("Reducing the training period will result in data loss from the first "+(g-a)+" week(s)"))return!1;c=this.m_editor.getElementsByTagName("tbody")[1];if(b)for(d=a;d<g;++d)c.removeChild($getFirstNode(c.firstChild)),c.removeChild($getFirstNode(c.firstChild)),this.destroyWeek(k[0]),k.removeAt(0);else for(d=a;d<g;++d)c.removeChild($getLastNode(c.lastChild)),c.removeChild($getLastNode(c.lastChild)),
this.destroyWeek(k[k.length-1]),k.removeAt(k.length-1)}else if(g<a){c=this.m_editor.getElementsByTagName("tbody")[1];for(d=g;d<a;++d)this.createWeek(c,b)}g!=a&&this.serialize();return!0},summarizeWeek:function(a){var b=RA.Math.convertDistance,c=this.m_defaultUnit,d,f,g,h,k=this.m_mapActivities,l={},m,n,o;n=a.days;for(f=0;f<7;++f){o=n[f].getItems();h=o.length;for(g=0;g<h;++g)d=o[g].getData(),l[d.typeName]==null?(m={count:0,distance:0,duration:0,unit:k[d.typeId]!=null?k[d.typeId].unit:c},l[d.typeName]=
m):m=l[d.typeName],++m.count,d.distance>0&&m.distance!=null?m.distance+=b(d.distance,d.unit,m.unit):delete m.distance,d.duration>0&&m.duration!=null?m.duration+=d.duration:delete m.duration}b=a.summary;for(b.innerHTML="";b.hasChildNodes();)b.removeChild(b.lastChild);for(f in l)a=$RACreateElement("p"),b.appendChild(a),c=f+": ",m=l[f],c+=m.distance>0?RA.Math.roundDecimal(m.distance,1)+" "+RA.DistanceUnit.toAbbrevString(m.unit):m.duration>0?RA.Util.secondsToTimeString(m.duration):m.count+" times",a.innerHTML=
c},deletePlanItem:function(a){var b,c,d=a.getDay().getItems();c=d.length;for(b=0;b<c;++b)if(d[b]==a){d.removeAt(b);this.summarizeWeek(a.getWeek());break}this.serialize()},serialize:function(){var a=this.m_firstDayOfWeek,b,c,d,f,g,h,k,l=[],m,n,o;o=this.m_vecWeeks;h=o.length;for(b=0;b<h;++b){m=o[b].days;for(d=0;d<7;++d)if(n=m[d].getItems(),g=n.length,g>0)for(f=0;f<g;++f){c=n[f].getData();k={day:b*7+d+a};if(c.realized)k.realized=1;if(c.typeId!=null&&c.typeId>0)k.typeId=c.typeId;else if(c.typeName!=null)k.typeName=
c.typeName;if(c.subtypeName!=null&&c.subtypeName.length>0&&(k.subtypeName=c.subtypeName,c.subtypeId>0))k.subtypeId=c.subtypeId;if(c.distance>0)k.distance=c.distance,k.unit=c.unit;if(c.duration>0)k.duration=c.duration;if(c.notes!=null&&c.notes.length>0)k.notes=c.notes;l.push(k)}}this.m_planData.value=l.length>0?RA.Json.serialize(l):"";this.m_validator.validate();this.m_bDirty=!0}},dojo.declare("RA.Controls.TrainingPlanEditor",RA.Controls.Control,clsObj),clsObj={constructor:function(a,b){var c=b.activity,
d=this.m_dragRegion,f;d.style.borderColor=c.color;d.style.backgroundColor=c.color;f=$RACreateElement("span");d.appendChild(f);f.innerHTML=c.typeName;this.m_data=c;c.bNew=!0},destroy:function(){},onDragStart:function(a){a.dataTransfer.setData("text",RA.Json.serialize({type:"entry",data:this.m_data}));a.dataTransfer.effectAllowed="copy"},onDrag:function(){},onDragEnd:function(){}},dojo.declare("RA.Controls.PlanActivity",RA.Controls.Draggable,clsObj),clsObj={constructor:function(){},destroy:function(){},
setDay:function(a){this.m_day=a},setText:function(a){this.m_dragRegion.innerHTML=a},onDragStart:function(a){var b,c,d=[];vecItems=this.m_day.getItems();c=vecItems.length;for(b=0;b<c;++b)d.push(vecItems[b].m_data);a.dataTransfer.setData("text",RA.Json.serialize({type:"day",data:d}));a.dataTransfer.effectAllowed=a.ctrlKey||a.shiftKey?"copy":"move"},onDrag:function(){},onDragEnd:function(){}},dojo.declare("RA.Controls.PlanDayHeader",RA.Controls.Draggable,clsObj),clsObj={constructor:function(a,b){this.m_week=
b.week;this.m_editor=b.editor;this.m_header=b.header;this.m_vecItems=[];this.m_bSummary=b.bSummary==!0},destroy:function(){this.deleteItems()},deleteItems:function(){var a,b,c=this.m_vecItems;b=c.length;for(a=0;a<b;++a)$RADestroy(c[a])},clear:function(){this.deleteItems();this.m_vecItems=[];RA.UI.clearChildNodes(this.getElement())},getWeek:function(){return this.m_week},getItems:function(){return this.m_vecItems},addItem:function(a,b){var c=$RACreateElement("div"),d;d=$RAInstantiate(c,RA.Controls.PlanItem,
{activity:a,editor:this.m_editor,day:this,bIgnoreRealized:b});this.getElement().appendChild(c);this.m_vecItems.push(d);return d},onDrop:function(a){var b,c;try{b=RA.Json.deserialize(a.dataTransfer.getData("text"))}catch(d){}if(b!=null&&(c=b.type,b=b.data,!(c!="week"&&this.m_bSummary))){if(c=="entry"){if(c=b.bNew)if(delete b.bNew,b.typeId==-1)b.typeName="";b=this.addItem(b);if(c)this.m_editor.onEditItem(b,c);else this.m_editor.summarizeWeek(this.getWeek())}else if(c=="day"){if(this.m_vecItems.length>
0&&!confirm("Replace existing entries on this day?"))return;this.clear();for(c=0;c<b.length;++c)this.addItem(b[c],!0)}else if(c=="week")b!=this.m_week.id&&this.m_editor.copyWeek(b,this.m_week.id);else return;RA.Util.preventBubbling(a);$RARemoveClass(this.getElement(),"RAPlanDragOver");this.m_editor.serialize()}},onDragOver:function(a){if(this.m_bNoDrop!=!0)a.dataTransfer.effectAllowed="copyMove",RA.Util.preventBubbling(a)},onDragEnter:function(a){this.handleDragEvent(a,!0)},onDragLeave:function(a){this.handleDragEvent(a,
!1)},handleDragEvent:function(a,b){var c;try{c=RA.Json.deserialize(a.dataTransfer.getData("text"))}catch(d){}if(c==null)a.dataTransfer.effectAllowed="none",RA.Util.preventBubbling(a);else if(c=c.type,c!="week"&&this.m_bSummary)a.dataTransfer.effectAllowed="none",RA.Util.preventBubbling(a),this.m_bNoDrop=!0;else if(c=="entry"||c=="day"||c=="week")a.dataTransfer.effectAllowed="copyMove",c=="week"?$RAToggleClass(this.getElement(),"RAPlanDragOverSummary",b):$RAToggleClass(this.getElement(),"RAPlanDragOver",
b),RA.Util.preventBubbling(a),delete this.m_bNoDrop}},dojo.declare("RA.Controls.PlanDay",RA.Controls.Droppable,clsObj),clsObj={constructor:function(a,b){var c=this.m_dragRegion;a.className="Summary";c.innerHTML="Week "+b.weekNum;this.m_idWeek=b.idWeek},destroy:function(){},setText:function(a){this.m_dragRegion.innerHTML=a},onDragStart:function(a){a.dataTransfer.setData("text",RA.Json.serialize({type:"week",data:this.m_idWeek}));a.dataTransfer.effectAllowed=a.shiftKey||a.ctrlKey?"copy":"move"},onDrag:function(){},
onDragEnd:function(){}},dojo.declare("RA.Controls.PlanWeekHeader",RA.Controls.Draggable,clsObj),clsObj={constructor:function(a,b){var c=b.activity,d=this.m_dragRegion,f=$RACreateElement("img");this.m_day=b.day;this.m_editor=b.editor;a.className="RAPlanItem";a.style.borderColor=c.color;c.realized==1&&!b.bIgnoreRealized?($RAAddClass(a,"RAPlanEntryRealized"),this.m_bRealized=!0):(f.className="RAPlanItemDelete",f.src="/images/12/x_blue.png",a.insertBefore(f,d),this.m_imgDelete=f,c.realized==1&&b.bIgnoreRealized&&
delete c.realized);f=$RACreateElement("span");f.className="Content";d.appendChild(f);this.m_content=f;this.update(c);this.handlerHelper($addHandler)},destroy:function(){this.handlerHelper($removeHandler)},handlerHelper:function(a){var b=this;b.m_bRealized||(a(b.m_imgDelete,"click",function(){b.onDelete()}),a(b.m_dragRegion,"click",function(a){b.onClick(a)}))},getDay:function(){return this.m_day},getWeek:function(){return this.m_day.getWeek()},onDragStart:function(a){var b;this.m_bRealized?(a.dataTransfer.effectAllowed=
"none",a.dataTransfer.setData("text","{}")):(b={type:"entry",data:this.m_data},a.dataTransfer.setData("text",RA.Json.serialize(b)),a.dataTransfer.effectAllowed=a.shiftKey||a.ctrlKey?"copy":"move")},onDrag:function(){},onDragEnd:function(a){a=a.dataTransfer;if(a.dropEffect=="move"||a.effectAllowed=="move")this.onDelete()},onDelete:function(){var a=this.getElement();a.parentNode.removeChild(a);this.m_editor.deletePlanItem(this);$RADestroy(this)},onClick:function(a){this.m_editor.onEditItem(this);RA.Util.preventBubbling(a)},
isAerobic:function(){return RA.Math.between(this.m_data.typeId,10,12)},getData:function(){return this.m_data},update:function(a){var b=this.m_content,c;this.m_data=a;this.getElement().style.borderColor=a.color;this.m_dragRegion.style.backgroundColor=a.color;c="";a.distance>0&&(c+=a.distance+" "+RA.DistanceUnit.toAbbrevString(a.unit));a.duration!=null&&a.duration>0&&(c.length>0&&(c+=" / "),c+=RA.Util.secondsToTimeString(a.duration));b.innerHTML=a.typeName.length==0?"New entry":a.typeName;a.subtypeName!=
null&&(b.innerHTML+=" - "+a.subtypeName);c.length>0&&(b.innerHTML+="<br/>"+c);$clearHandlers(b);a.notes!=null&&a.notes.length>0&&RA.UI.Popup.hover(b,a.notes.replace(/</g,"&lt;").replace(/\\n/g,"<br/>"))}},dojo.declare("RA.Controls.PlanItem",RA.Controls.Draggable,clsObj));

