(function() { 
var GLOBAL_parseInt=parseInt,GLOBAL_String=String,GLOBAL_NaN=NaN,GLOBAL_Function=Function,GLOBAL_Object=Object,GLOBAL_document=document,GLOBAL_isNaN=isNaN,GLOBAL_Math=Math;function SETPROP_toString(a,b){return a.toString=b}function SETPROP_position(a,b){return a.position=b}function SETPROP_prototype(a,b){return a.prototype=b}function SETPROP_selectedIndex(a,b){return a.selectedIndex=b}function SETPROP_className(a,b){return a.className=b}function SETPROP_width(a,b){return a.width=b}
function SETPROP_date(a,b){return a.date=b}function SETPROP_innerHTML(a,b){return a.innerHTML=b}function SETPROP_constructor(a,b){return a.constructor=b}function SETPROP_month(a,b){return a.month=b}function SETPROP_left(a,b){return a.left=b}function SETPROP_year(a,b){return a.year=b}function SETPROP_type(a,b){return a.type=b}function SETPROP_zIndex(a,b){return a.zIndex=b}function SETPROP_display(a,b){return a.display=b}function SETPROP_height(a,b){return a.height=b}
var $$PROP_appendChild="appendChild",$$PROP_scrollTop="scrollTop",$$PROP_push="push",$$PROP_toString="toString",$$PROP_length="length",$$PROP_prototype="prototype",$$PROP_className="className",$$PROP_setTimeout="setTimeout",$$PROP_replace="replace",$$PROP_document="document",$$PROP_date="date",$$PROP_ceil="ceil",$$PROP_split="split",$$PROP_floor="floor",$$PROP_getElementById="getElementById",$$PROP_offsetWidth="offsetWidth",$$PROP_offsetParent="offsetParent",$$PROP_srcElement="srcElement",$$PROP_constructor=
"constructor",$$PROP_charAt="charAt",$$PROP_getDate="getDate",$$PROP_month="month",$$PROP_indexOf="indexOf",$$PROP_offsetLeft="offsetLeft",$$PROP_style="style",$$PROP_body="body",$$PROP_ownerDocument="ownerDocument",$$PROP_target="target",$$PROP_call="call",$$PROP_match="match",$$PROP_remove="remove",$$PROP_start="start",$$PROP_createElement="createElement",$$PROP_scrollLeft="scrollLeft",$$PROP_currentStyle="currentStyle",$$PROP_year="year",$$PROP_substring="substring",$$PROP_contains="contains",
$$PROP_apply="apply",$$PROP_parentWindow="parentWindow",$$PROP_name="name",$$PROP_parentNode="parentNode",$$PROP_zIndex="zIndex",$$PROP_nextSibling="nextSibling",$$PROP_offsetTop="offsetTop",$$PROP_splice="splice",$$PROP_offsetHeight="offsetHeight",$$PROP_toLowerCase="toLowerCase",$$PROP_substr="substr",$$PROP_event="event",JSCompiler_extractPrototype,goog=goog||{},goog$global=this,goog$exportPath_=function(a,b,c){var d=a[$$PROP_split]("."),e=c||goog$global,f;!(d[0]in e)&&e.execScript&&e.execScript("var "+
d[0]);for(;d[$$PROP_length]&&(f=d.shift());)if(!d[$$PROP_length]&&typeof b!="undefined")e[f]=b;else if(e[f])e=e[f];else{e[f]={};e=e[f]}},goog$typeOf=function(a){var b=typeof a;if(b=="object")if(a){if(a instanceof Array||!(a instanceof GLOBAL_Object)&&GLOBAL_Object[$$PROP_prototype][$$PROP_toString][$$PROP_call](a)=="[object Array]")return"array";if(typeof a[$$PROP_call]!="undefined")return"function"}else return"null";else if(b=="function"&&typeof a[$$PROP_call]=="undefined")return"object";return b},
goog$propertyIsEnumerableCustom_=function(a,b){if(b in a)for(var c in a)if(c==b&&GLOBAL_Object[$$PROP_prototype].hasOwnProperty[$$PROP_call](a,b))return true;return false};if(GLOBAL_Object[$$PROP_prototype].propertyIsEnumerable)var goog$propertyIsEnumerable_=function(a,b){return a instanceof GLOBAL_Object?GLOBAL_Object[$$PROP_prototype].propertyIsEnumerable[$$PROP_call](a,b):goog$propertyIsEnumerableCustom_(a,b)};else goog$propertyIsEnumerable_=goog$propertyIsEnumerableCustom_;
var goog$cloneObject=function(a){var b=goog$typeOf(a);if(b=="object"||b=="array"){if(a.clone)return a.clone[$$PROP_call](a);var c=b=="array"?[]:{};for(var d in a)c[d]=goog$cloneObject(a[d]);return c}return a},goog$bind=function(a,b){var c=a.boundArgs_;if(arguments[$$PROP_length]>2){var d=Array[$$PROP_prototype].slice[$$PROP_call](arguments,2);c&&d.unshift[$$PROP_apply](d,c);c=d}b=a.boundSelf_||b;a=a.boundFn_||a;var e,f=b||goog$global;e=c?function(){var g=Array[$$PROP_prototype].slice[$$PROP_call](arguments);
g.unshift[$$PROP_apply](g,c);return a[$$PROP_apply](f,g)}:function(){return a[$$PROP_apply](f,arguments)};e.boundArgs_=c;e.boundSelf_=b;e.boundFn_=a;return e},goog$exportSymbol=function(a,b,c){goog$exportPath_(a,b,c)},goog$exportProperty=function(a,b,c){a[b]=c};GLOBAL_Function[$$PROP_prototype].bind=function(a){if(arguments[$$PROP_length]>1){var b=Array[$$PROP_prototype].slice[$$PROP_call](arguments,1);b.unshift(this,a);return goog$bind[$$PROP_apply](null,b)}else return goog$bind(this,a)};var DB_mode=false;function DumpError(a){try{throw a;}catch(b){DumpException(b)}}function DumpException(a,b){var c="Javascript exception: "+(b?b:"")+" "+a;if(BR_IsIE())c+=" "+a[$$PROP_name]+": "+a.message+" ("+a.number+")";var d="";if(typeof a=="string")d=a+"\n";else for(var e in a)try{d+=e+": "+a[e]+"\n"}catch(f){}d+=DB_GetStackTrace(DumpException$caller);DB_WriteDebugMsg(c+"\n"+d,1)}var DumpException$caller,function_name_re_=/function (\w+)/;
function DB_GetFunctionName(a){var b=function_name_re_.exec(GLOBAL_String(a));if(b)return b[1];return""}function DB_GetStackTrace(a){try{if(BR_IsNav())return Error().stack;if(!a)return"";var b="- "+DB_GetFunctionName(a)+"(",c=0;for(;c<a.arguments[$$PROP_length];c++){if(c>0)b+=", ";var d=GLOBAL_String(a.arguments[c]);if(d[$$PROP_length]>40)d=d[$$PROP_substr](0,40)+"...";b+=d}b+=")\n";b+=DB_GetStackTrace(a.caller);return b}catch(e){return"[Cannot get stack trace]: "+e+"\n"}}
var DB_starttime,DB_win=null,DB_winopening=false;
function DB_OpenDebugWindow(){if((DB_win==null||DB_win.closed)&&!DB_winopening)try{DB_winopening=true;DB_win=window.open("","debug","width=700,height=500,toolbar=no,resizable=yes,scrollbars=yes,left=16,top=16,screenx=16,screeny=16");DB_win.blur();DB_win[$$PROP_document].open();DB_winopening=false;var a="<font color=#ff0000><b>To turn off this debugging window,hit 'D' inside the main caribou window, then close this window.</b></font><br>";DB_WriteDebugHtml(a)}catch(b){}}
function DB_WriteDebugMsg(a,b){if(DB_mode){try{var c=(new Date).getTime()-DB_starttime,d="["+c+"] "+HtmlEscape(a)[$$PROP_replace](/\n/g,"<br>")+"<br>";if(b==1){d="<font color=#ff0000><b>Error: "+d+"</b></font>";DB_win.focus()}}catch(e){}DB_WriteDebugHtml(d)}else typeof log!="undefined"&&log(HtmlEscape(a))}function DB_WriteDebugHtml(a){if(!!DB_mode)try{DB_OpenDebugWindow();DB_win[$$PROP_document].write(a);DB_win.scrollTo(0,1000000)}catch(b){}};function BR_AgentContains_(a){if(a in BR_AgentContains_cache_)return BR_AgentContains_cache_[a];return BR_AgentContains_cache_[a]=navigator.userAgent[$$PROP_toLowerCase]()[$$PROP_indexOf](a)!=-1}var BR_AgentContains_cache_={};function BR_IsIE(){return BR_AgentContains_("msie")&&!window.opera}function BR_IsSafari(){return BR_AgentContains_("safari")||BR_AgentContains_("konqueror")}function BR_IsNav(){return!BR_IsIE()&&!BR_IsSafari()&&BR_AgentContains_("mozilla")}
function raise(a){if(typeof Error!="undefined")throw new Error(a||"Assertion Failed");else throw a;}function Fail(a){a=a||"Assertion failed";typeof DumpError!="undefined"&&DumpError(a+"\n");raise(a)}function AssertTrue(a,b){if(!a){b=b||"Assertion failed";Fail(b)}}function AssertEquals(a,b,c){if(a!=b){c=c||"AssertEquals failed: <"+a+"> != <"+b+">";Fail(c)}}
function AssertType(a,b,c){if(!(typeof a==b)){if(a||a=="")try{if(b==AssertTypeMap[typeof a]||a instanceof b)return}catch(d){}var e=c===undefined;if(e){if(typeof b=="function"){var f=b[$$PROP_toString]()[$$PROP_match](/^\s*function\s+([^\s\{]+)/);if(f)b=f[1]}c="AssertType failed: <"+a+"> not typeof "+b}Fail(c)}}var AssertTypeMap={string:GLOBAL_String,number:Number,"boolean":Boolean};
function GetElement(a,b){var c=a[$$PROP_document][$$PROP_getElementById](b);c||DumpError("Element "+b+" not found.");return c}function GetParentNode(a){try{return a[$$PROP_parentNode]}catch(b){return a}}function IsDescendant(a,b){do{if(a===b)return true;b=GetParentNode(b)}while(b&&b!==GLOBAL_document[$$PROP_body]);return false}function AppendNewElement(a,b,c){var d=a[$$PROP_document][$$PROP_createElement](c);b[$$PROP_appendChild](d);return d}
function CreateDIV(a,b){var c=a[$$PROP_document][$$PROP_getElementById](b);if(!c){c=AppendNewElement(a,a[$$PROP_document][$$PROP_body],"div");c.id=b}return c}function CreateIFRAME(a,b,c){var d=a[$$PROP_document][$$PROP_getElementById](b);if(!d){var e=AppendNewElement(a,a[$$PROP_document][$$PROP_body],"div");SETPROP_innerHTML(e,"<iframe id="+b+" name="+b+" src="+c+"></iframe>");d=GetElement(a,b)}return d}
function HasClass(a,b){if(a==null||a[$$PROP_className]==null)return false;if(a[$$PROP_className]==b)return true;var c=a[$$PROP_className][$$PROP_split](" "),d=0;for(;d<c[$$PROP_length];d++)if(c[d]==b)return true;return false}function AddClass(a,b){HasClass(a,b)||(a.className+=" "+b)}
function RemoveClass(a,b){if(!(a[$$PROP_className]==null))if(a[$$PROP_className]==b)SETPROP_className(a,"");else{var c=a[$$PROP_className][$$PROP_split](" "),d=[],e=false,f=0;for(;f<c[$$PROP_length];f++)if(c[f]!=b)c[f]&&d[$$PROP_push](c[f]);else e=true;if(e)SETPROP_className(a,d.join(" "))}}var getScrollTopGetters_={ieQuirks_:function(a){return a[$$PROP_document][$$PROP_body][$$PROP_scrollTop]},ieStandards_:function(a){return a[$$PROP_document].documentElement[$$PROP_scrollTop]},dom_:function(a){return a.pageYOffset}};
var getScrollLeftGetters_={ieQuirks_:function(a){return a[$$PROP_document][$$PROP_body][$$PROP_scrollLeft]},ieStandards_:function(a){return a[$$PROP_document].documentElement[$$PROP_scrollLeft]},dom_:function(a){return a.pageXOffset}};function GetWindowPropertyByBrowser_(a,b){try{if(!window.opera&&"compatMode"in a[$$PROP_document]&&a[$$PROP_document].compatMode=="CSS1Compat")return b.ieStandards_(a);else if(BR_IsIE())return b.ieQuirks_(a)}catch(c){}return b.dom_(a)}
var amp_re_=/&/g,lt_re_=/</g,gt_re_=/>/g;function HtmlEscape(a){if(!a)return"";return a[$$PROP_replace](amp_re_,"&amp;")[$$PROP_replace](lt_re_,"&lt;")[$$PROP_replace](gt_re_,"&gt;")[$$PROP_replace](quote_re_,"&quot;")}
function HtmlUnescape(a){if(!a)return"";return a[$$PROP_replace](/&#(\d+);/g,function(b,c){return GLOBAL_String.fromCharCode(GLOBAL_parseInt(c,10))})[$$PROP_replace](/&#x([a-f0-9]+);/gi,function(b,c){return GLOBAL_String.fromCharCode(GLOBAL_parseInt(c,16))})[$$PROP_replace](/&(\w+);/g,function(b,c){c=c[$$PROP_toLowerCase]();return c in HtmlUnescape_unesc_?HtmlUnescape_unesc_[c]:"?"})}var HtmlUnescape_unesc_={lt:"<",gt:">",quot:'"',nbsp:" ",amp:"&",apos:"'"},quote_re_=/\"/g,JS_SPECIAL_RE_=/[\'\\\r\n\b\"<>&\u0085\u2028\u2029]/g;
function JSEscOne_(a){return JSEscOne_$js_escs_[a]}var JSEscOne_$js_escs_;function ToJSString(a){if(!JSEscOne_$js_escs_){var b={};b["\\"]="\\\\";b["'"]="\\047";b["\u0008"]="\\b";b['"']="\\042";b["<"]="\\074";b[">"]="\\076";b["&"]="\\046";b["\n"]="\\n";b["\r"]="\\r";b["\u0085"]="\\205";b["\u2028"]="\\u2028";b["\u2029"]="\\u2029";JSEscOne_$js_escs_=b}return"'"+a[$$PROP_toString]()[$$PROP_replace](JS_SPECIAL_RE_,JSEscOne_)+"'"}
function CloneEvent(a){var b={};b.clientX=a.clientX;b.clientY=a.clientY;b.pageX=a.pageX;b.pageY=a.pageY;SETPROP_type(b,a.type);b.srcElement=a[$$PROP_srcElement];b.target=a[$$PROP_target];b.cancelBubble=a.cancelBubble;b.explicitOriginalTarget=a.explicitOriginalTarget;b.button=a.button;b.shiftKey=a.shiftKey;b.ctrlKey=a.ctrlKey;return b}function GetKeyCode(a){var b;if(a.keyCode)b=a.keyCode;else if(a.which)b=a.which;return b}function forid_1(a){return GLOBAL_document[$$PROP_getElementById](a)}
function forid_2(a){return GLOBAL_document.all[a]}var forid=GLOBAL_document[$$PROP_getElementById]?forid_1:forid_2;function GetFnName(a){AssertTrue(a,"func passed to GetFnName() is undefined");var b;if("name"in a)b=a[$$PROP_name];else{var c=/\W*function\s+([\w\$]+)\(/.exec(a);if(!c)throw new Error("Cannot extract name from function: "+a);b=c[1];a.name=b}if(!b||b=="anonymous")throw new Error("Anonymous function has no name: "+a);return a[$$PROP_name]}
function log(a){try{if(window.parent!=window&&window.parent.log){window.parent.log(window[$$PROP_name]+"::"+a);return}}catch(b){}var c=forid("log");if(c){var d="<p class=logentry><span class=logdate>"+new Date+"</span><span class=logmsg>"+a+"</span></p>";SETPROP_innerHTML(c,d+c.innerHTML)}else window.status=a};function ICAL_exception(a){DumpError(a);throw a;}function ICAL_fmtInt(a,b){var c=a[$$PROP_toString]();for(;c[$$PROP_length]<b;)c="0"+c;return c}var ICAL_daysInMonthCache_=[undefined,31,undefined,31,30,31,30,31,31,30,31,30,31];function ICAL_daysInMonth(a,b){if(2!==b)return ICAL_daysInMonthCache_[b];var c=a<<4,d=ICAL_daysInMonthCache_[c];if(!d){d=GLOBAL_Math.round((Date.UTC(a,2,1)-Date.UTC(a,1,1))/86400000);ICAL_daysInMonthCache_[c]=d}return d}var ICAL_firstDayOfWeekInMonthCache_={};
function ICAL_firstDayOfWeekInMonth(a,b){var c=a<<4|b,d=ICAL_firstDayOfWeekInMonthCache_[c];if(!d){d=(new Date(a,b-1,1,0,0,0,0)).getDay();ICAL_firstDayOfWeekInMonthCache_[c]=d}return d}function ICAL_getDayOfWeek(a){return(a[$$PROP_date]-1+ICAL_firstDayOfWeekInMonth(a[$$PROP_year],a[$$PROP_month]))%7}
function ICAL_daysBetween(a,b,c,d,e,f){var g;if(a===d)if((g=b-e)===0)return c-f;else if(g<0){g=c-f;do g-=ICAL_daysInMonth(a,b++);while(b<e);return g}else{g=c-f;do g+=ICAL_daysInMonth(d,e++);while(e<b);return g}else return GLOBAL_Math.round((Date.UTC(a,b-1,c)-Date.UTC(d,e-1,f))/86400000)}function ICAL_daysBetweenDates(a,b){return ICAL_daysBetween(a[$$PROP_year],a[$$PROP_month],a[$$PROP_date],b[$$PROP_year],b[$$PROP_month],b[$$PROP_date])}
function ICAL_Temporal(a,b,c,d,e,f){if(!GLOBAL_isNaN(a))SETPROP_year(this,a);if(!GLOBAL_isNaN(b))SETPROP_month(this,b);if(!GLOBAL_isNaN(c))SETPROP_date(this,c);if(!GLOBAL_isNaN(d))this.hour=d;if(!GLOBAL_isNaN(e))this.minute=e;if(!GLOBAL_isNaN(f))this.second=f}JSCompiler_extractPrototype=ICAL_Temporal[$$PROP_prototype];SETPROP_year(JSCompiler_extractPrototype,GLOBAL_NaN);SETPROP_month(JSCompiler_extractPrototype,GLOBAL_NaN);SETPROP_date(JSCompiler_extractPrototype,GLOBAL_NaN);
JSCompiler_extractPrototype.hour=GLOBAL_NaN;JSCompiler_extractPrototype.minute=GLOBAL_NaN;JSCompiler_extractPrototype.second=GLOBAL_NaN;JSCompiler_extractPrototype.getDayOfWeek=function(){return ICAL_getDayOfWeek(this)};SETPROP_toString(JSCompiler_extractPrototype,function(){if(this.str_!==undefined)return this.str_;return this.str_=this.toStringRepresentation_()});function ICAL_DateValue(){}SETPROP_prototype(ICAL_DateValue,new ICAL_Temporal);SETPROP_constructor(ICAL_DateValue[$$PROP_prototype],ICAL_DateValue);
function ICAL_Date(a,b,c){AssertTrue(b&&c,"invalid date params: "+b+" "+c);ICAL_Temporal[$$PROP_call](this,a,b,c,GLOBAL_NaN,GLOBAL_NaN,GLOBAL_NaN)}SETPROP_prototype(ICAL_Date,new ICAL_DateValue);SETPROP_constructor(ICAL_Date[$$PROP_prototype],ICAL_Date);var ICAL_Date$now=function(){var a=new Date;return ICAL_Date$create(a.getFullYear(),a.getMonth()+1,a[$$PROP_getDate]())};SETPROP_type(ICAL_Date[$$PROP_prototype],"Date");ICAL_Date[$$PROP_prototype].toDate=function(){return this};
ICAL_Date[$$PROP_prototype].toDateTime=function(){return new ICAL_DateTime(this[$$PROP_year],this[$$PROP_month],this[$$PROP_date],0,0,0)};ICAL_Date[$$PROP_prototype].getComparable=function(){if(undefined===this.cmp_)this.cmp_=(((this[$$PROP_year]-1970)*12+this[$$PROP_month]<<5)+this[$$PROP_date])*86400;return this.cmp_};ICAL_Date[$$PROP_prototype].toStringRepresentation_=function(){return ICAL_fmtInt(this[$$PROP_year],4)+ICAL_fmtInt(this[$$PROP_month],2)+ICAL_fmtInt(this[$$PROP_date],2)};
ICAL_Date[$$PROP_prototype].equals=function(a){return this[$$PROP_constructor]===a[$$PROP_constructor]&&this[$$PROP_date]===a[$$PROP_date]&&this[$$PROP_month]===a[$$PROP_month]&&this[$$PROP_year]===a[$$PROP_year]};var ICAL_Date$cache_={},ICAL_Date$cacheSize_=0,ICAL_Date$create=function(a,b,c){var d=(((a-1970)*12+b<<5)+c)*86400;if(d in ICAL_Date$cache_)return ICAL_Date$cache_[d];else{var e=new ICAL_Date(a,b,c);e.cmp_=d;if(ICAL_Date$cacheSize_<200)ICAL_Date$cache_[d]=e;return e}};
function ICAL_DateTime(a,b,c,d,e,f){ICAL_Temporal[$$PROP_call](this,a,b,c,d,e,f)}SETPROP_prototype(ICAL_DateTime,new ICAL_DateValue);JSCompiler_extractPrototype=ICAL_DateTime[$$PROP_prototype];SETPROP_constructor(JSCompiler_extractPrototype,ICAL_DateTime);SETPROP_type(JSCompiler_extractPrototype,"DateTime");JSCompiler_extractPrototype.toDate=function(){return ICAL_Date$create(this[$$PROP_year],this[$$PROP_month],this[$$PROP_date])};JSCompiler_extractPrototype.toDateTime=function(){return this};
JSCompiler_extractPrototype.getComparable=function(){if(undefined===this.cmp_)this.cmp_=(((((this[$$PROP_year]-1970)*12+this[$$PROP_month]<<5)+this[$$PROP_date])*24+this.hour)*60+this.minute)*60+this.second;return this.cmp_};JSCompiler_extractPrototype.toStringRepresentation_=function(){return ICAL_fmtInt(this[$$PROP_year],4)+ICAL_fmtInt(this[$$PROP_month],2)+ICAL_fmtInt(this[$$PROP_date],2)+"T"+ICAL_fmtInt(this.hour,2)+ICAL_fmtInt(this.minute,2)+ICAL_fmtInt(this.second,2)};
JSCompiler_extractPrototype.equals=function(a){return this[$$PROP_constructor]===a[$$PROP_constructor]&&this[$$PROP_date]===a[$$PROP_date]&&this[$$PROP_month]===a[$$PROP_month]&&this[$$PROP_year]===a[$$PROP_year]&&this.hour===a.hour&&this.minute===a.minute&&this.second===a.second};JSCompiler_extractPrototype.clone=function(){var a=new ICAL_DateTime(this[$$PROP_year],this[$$PROP_month],this[$$PROP_date],this.hour,this.minute,this.second);if(this.str_!==undefined)a.str_=this.str_;return a};
function ICAL_Time(a,b,c){ICAL_Temporal[$$PROP_call](this,GLOBAL_NaN,GLOBAL_NaN,GLOBAL_NaN,a,b,c)}SETPROP_prototype(ICAL_Time,new ICAL_Temporal);JSCompiler_extractPrototype=ICAL_Time[$$PROP_prototype];SETPROP_constructor(JSCompiler_extractPrototype,ICAL_Time);SETPROP_type(JSCompiler_extractPrototype,"Time");JSCompiler_extractPrototype.toStringRepresentation_=function(){return"T"+ICAL_fmtInt(this.hour,2)+ICAL_fmtInt(this.minute,2)+ICAL_fmtInt(this.second,2)};
JSCompiler_extractPrototype.equals=function(a){return this[$$PROP_constructor]===a[$$PROP_constructor]&&this.hour===a.hour&&this.minute===a.minute&&this.second===a.second};JSCompiler_extractPrototype.getComparable=function(){return(this.hour*60+this.minute)*60+this.second};function ICAL_Duration(a,b,c,d){var e=d+60*(c+60*(b+24*a)),f=e/86400|0;e-=f*86400;var g=e/3600|0;e-=g*3600;var h=e/60|0;e-=h*60;var j=e|0;ICAL_Temporal[$$PROP_call](this,GLOBAL_NaN,GLOBAL_NaN,f,g,h,j)}
SETPROP_prototype(ICAL_Duration,new ICAL_Temporal);JSCompiler_extractPrototype=ICAL_Duration[$$PROP_prototype];SETPROP_constructor(JSCompiler_extractPrototype,ICAL_Duration);SETPROP_type(JSCompiler_extractPrototype,"Duration");JSCompiler_extractPrototype.getComparable=function(){if(undefined===this.cmp_)this.cmp_=((this[$$PROP_date]*24+this.hour)*60+this.minute)*60+this.second;return this.cmp_};
JSCompiler_extractPrototype.toStringRepresentation_=function(){var a=this[$$PROP_year]?this[$$PROP_year]<0?-1:1:this[$$PROP_month]?this[$$PROP_month]<0?-1:1:this[$$PROP_date]?this[$$PROP_date]<0?-1:1:this.hour?this.hour<0?-1:1:this.minute?this.minute<0?-1:1:this.second?this.second<0?-1:1:0,b=a<0?"-P":"P";if(this[$$PROP_year])b+=a*this[$$PROP_year]+"Y";if(this[$$PROP_month])b+=a*this[$$PROP_month]+"N";if(this[$$PROP_date])b+=this[$$PROP_date]%7?a*this[$$PROP_date]+"D":a*this[$$PROP_date]/7+"W";if(this.hour||
this.minute||this.second)b+="T";if(this.hour)b+=a*this.hour+"H";if(this.minute)b+=a*this.minute+"M";if(this.second)b+=a*this.second+"S";a||(b+="0D");return b};JSCompiler_extractPrototype.equals=function(a){return this[$$PROP_constructor]===a[$$PROP_constructor]&&this[$$PROP_date]===a[$$PROP_date]&&this.hour===a.hour&&this.minute===a.minute&&this.second===a.second};
function ical_builderCopy(a){AssertType(a,ICAL_Temporal);var b=new ICAL_DTBuilder;SETPROP_year(b,a[$$PROP_year]||0);SETPROP_month(b,a[$$PROP_month]||0);SETPROP_date(b,a[$$PROP_date]||0);b.hour=a.hour||0;b.minute=a.minute||0;b.second=a.second||0;return b}function ical_dateBuilder(a,b,c){AssertTrue(!(GLOBAL_isNaN(a)|GLOBAL_isNaN(b)|GLOBAL_isNaN(c)));var d=new ICAL_DTBuilder;SETPROP_year(d,a||0);SETPROP_month(d,b||0);SETPROP_date(d,c||0);return d}function ICAL_DTBuilder(){}
SETPROP_prototype(ICAL_DTBuilder,new ICAL_Temporal);JSCompiler_extractPrototype=ICAL_DTBuilder[$$PROP_prototype];SETPROP_constructor(JSCompiler_extractPrototype,ICAL_DTBuilder);SETPROP_type(JSCompiler_extractPrototype,"DTBuilder");JSCompiler_extractPrototype.second=0;JSCompiler_extractPrototype.minute=ICAL_DTBuilder[$$PROP_prototype].second;JSCompiler_extractPrototype.hour=ICAL_DTBuilder[$$PROP_prototype].minute;SETPROP_date(JSCompiler_extractPrototype,ICAL_DTBuilder[$$PROP_prototype].hour);
SETPROP_month(JSCompiler_extractPrototype,ICAL_DTBuilder[$$PROP_prototype][$$PROP_date]);SETPROP_year(JSCompiler_extractPrototype,ICAL_DTBuilder[$$PROP_prototype][$$PROP_month]);JSCompiler_extractPrototype.getComparable=function(){this.normalize();var a;return a=GLOBAL_isNaN(this.hour)?(((this[$$PROP_year]-1970)*12+this[$$PROP_month]<<5)+this[$$PROP_date])*86400:(((((this[$$PROP_year]-1970)*12+this[$$PROP_month]<<5)+this[$$PROP_date])*24+this.hour)*60+this.minute)*60+this.second};
JSCompiler_extractPrototype.advance=function(a){if(a[$$PROP_date])this.date+=a[$$PROP_date];if(a.hour)this.hour+=a.hour;if(a.minute)this.minute+=a.minute;if(a.second)this.second+=a.second};
JSCompiler_extractPrototype.normalize=function(){this.normalizeHMS_();this.normalizeMonth_();var a=ICAL_daysInMonth(this[$$PROP_year],this[$$PROP_month]);for(;this[$$PROP_date]<1;){this.month-=1;this.normalizeMonth_();a=ICAL_daysInMonth(this[$$PROP_year],this[$$PROP_month]);this.date+=a}for(;this[$$PROP_date]>a;){this.date-=a;this.month+=1;this.normalizeMonth_();a=ICAL_daysInMonth(this[$$PROP_year],this[$$PROP_month])}};
JSCompiler_extractPrototype.normalizeHMS_=function(){var a;if(this.second<0){a=GLOBAL_Math[$$PROP_ceil](this.second/-60);this.second+=60*a;this.minute-=a}else if(this.second>=60){a=GLOBAL_Math[$$PROP_floor](this.second/60);this.second-=60*a;this.minute+=a}if(this.minute<0){a=GLOBAL_Math[$$PROP_ceil](this.minute/-60);this.minute+=60*a;this.hour-=a}else if(this.minute>=60){a=GLOBAL_Math[$$PROP_floor](this.minute/60);this.minute-=60*a;this.hour+=a}if(this.hour<0){a=GLOBAL_Math[$$PROP_ceil](this.hour/
-24);this.hour+=24*a;this.date-=a}else if(this.hour>=24){a=GLOBAL_Math[$$PROP_floor](this.hour/24);this.hour-=24*a;this.date+=a}};JSCompiler_extractPrototype.normalizeMonth_=function(){var a;if(this[$$PROP_month]<1){a=GLOBAL_Math[$$PROP_ceil]((this[$$PROP_month]-1)/-12);this.month+=12*a;this.year-=a}else if(this[$$PROP_month]>12){a=GLOBAL_Math[$$PROP_floor]((this[$$PROP_month]-1)/12);this.month-=12*a;this.year+=a}};
JSCompiler_extractPrototype.toDate=function(){this.normalize();return ICAL_Date$create(this[$$PROP_year],this[$$PROP_month],this[$$PROP_date])};JSCompiler_extractPrototype.toDateTime=function(){this.normalize();return new ICAL_DateTime(this[$$PROP_year],this[$$PROP_month],this[$$PROP_date],this.hour,this.minute,this.second)};
JSCompiler_extractPrototype.toDuration=function(){if(this[$$PROP_year]||this[$$PROP_month]){ICAL_exception("Can't convert months or years to ICAL_Duration");return undefined}else return new ICAL_Duration(this[$$PROP_date],this.hour,this.minute,this.second)};
SETPROP_toString(JSCompiler_extractPrototype,function(){return"["+(GLOBAL_NaN!==this[$$PROP_year]?ICAL_fmtInt(this[$$PROP_year],4):"????")+"/"+(GLOBAL_NaN!==this[$$PROP_month]?ICAL_fmtInt(this[$$PROP_month],2):"??")+"/"+(GLOBAL_NaN!==this[$$PROP_date]?ICAL_fmtInt(this[$$PROP_date],2):"??")+" "+(GLOBAL_NaN!==this.hour?ICAL_fmtInt(this.hour,2):"??")+" "+(GLOBAL_NaN!==this.minute?ICAL_fmtInt(this.minute,2):"??")+" "+(GLOBAL_NaN!==this.second?ICAL_fmtInt(this.second,2):"??")+"]"});
JSCompiler_extractPrototype.equals=function(a){return this[$$PROP_constructor]===a[$$PROP_constructor]&&this[$$PROP_date]===a[$$PROP_date]&&this[$$PROP_month]===a[$$PROP_month]&&this[$$PROP_year]===a[$$PROP_year]&&this.hour===a.hour&&this.minute===a.minute&&this.second===a.second};
function ICAL_PeriodOfTime(a,b){AssertTrue(a instanceof ICAL_DateTime||a instanceof ICAL_Date);this.start=a;if(b[$$PROP_constructor]==ICAL_Duration){var c=ical_builderCopy(a);c.advance(b);this.end=this[$$PROP_start]instanceof ICAL_DateTime?c.toDateTime():c.toDate()}else{AssertEquals(b[$$PROP_constructor],a[$$PROP_constructor]);this.end=b}this.duration=ICAL_DurationBetween(this.end,this[$$PROP_start])}SETPROP_type(ICAL_PeriodOfTime[$$PROP_prototype],"PeriodOfTime");
SETPROP_toString(ICAL_PeriodOfTime[$$PROP_prototype],function(){if(this.str_!==undefined)return this.str_;return this.str_=this[$$PROP_start]+"/"+this.end});ICAL_PeriodOfTime[$$PROP_prototype].equals=function(a){return this[$$PROP_constructor]===a[$$PROP_constructor]&&this[$$PROP_start].equals(a[$$PROP_start])&&this.end.equals(a.end)};ICAL_PeriodOfTime[$$PROP_prototype].contains=function(a){return this[$$PROP_start].getComparable()<=a[$$PROP_start].getComparable()&&this.end.getComparable()>=a.end.getComparable()};
function ICAL_PartialPeriodOfTime(a,b){AssertTrue(a instanceof ICAL_PartialDateTime||a instanceof ICAL_PartialDate);this.start=a;AssertEquals(b[$$PROP_constructor],a[$$PROP_constructor]);this.end=b;try{this.duration=ICAL_DurationBetween(this.end,this[$$PROP_start])}catch(c){this.duration=null}}SETPROP_type(ICAL_PartialPeriodOfTime[$$PROP_prototype],"PartialPeriodOfTime");ICAL_PartialPeriodOfTime[$$PROP_prototype].toStringRepresentation_=function(){return this[$$PROP_start]+"/"+this.end};
ICAL_PartialPeriodOfTime[$$PROP_prototype].equals=function(a){return this[$$PROP_constructor]===a[$$PROP_constructor]&&this[$$PROP_start].equals(a[$$PROP_start])&&this.end.equals(a.end)};
function ICAL_DurationBetween(a,b){if(GLOBAL_isNaN(a[$$PROP_year])!=GLOBAL_isNaN(b[$$PROP_year])||GLOBAL_isNaN(a.hour)!=GLOBAL_isNaN(b.hour)){ICAL_exception("diff("+a+", "+b+")");return undefined}var c=ical_builderCopy(a);if(GLOBAL_isNaN(a[$$PROP_year])){c.hour-=b.hour;c.minute-=b.minute;c.second-=b.second}else{SETPROP_year(c,GLOBAL_NaN);SETPROP_month(c,GLOBAL_NaN);SETPROP_date(c,ICAL_daysBetween(a[$$PROP_year],a[$$PROP_month],a[$$PROP_date],b[$$PROP_year],b[$$PROP_month],b[$$PROP_date]));if(!GLOBAL_isNaN(a.hour)){c.hour-=
b.hour;c.minute-=b.minute;c.second-=b.second}}return c.toDuration()}function ICAL_PartialDate(a,b,c){SETPROP_year(this,a);SETPROP_month(this,b);SETPROP_date(this,c)}SETPROP_prototype(ICAL_PartialDate,new ICAL_DateValue);JSCompiler_extractPrototype=ICAL_PartialDate[$$PROP_prototype];SETPROP_constructor(JSCompiler_extractPrototype,ICAL_PartialDate);SETPROP_type(JSCompiler_extractPrototype,"PartialDate");
JSCompiler_extractPrototype.toDate=function(){return ICAL_Date$create(this[$$PROP_year]||0,this[$$PROP_month]||1,this[$$PROP_date]||1)};JSCompiler_extractPrototype.toDateTime=function(){return new ICAL_DateTime(this[$$PROP_year]||0,this[$$PROP_month]||1,this[$$PROP_date]||1,0,0,0)};JSCompiler_extractPrototype.getComparable=function(){if(undefined===this.cmp_)this.cmp_=(((this[$$PROP_year]-1970)*12+this[$$PROP_month]<<5)+this[$$PROP_date])*86400;return this.cmp_};
JSCompiler_extractPrototype.equals=function(a){return this[$$PROP_constructor]===a[$$PROP_constructor]&&(this[$$PROP_date]===a[$$PROP_date]||GLOBAL_isNaN(this[$$PROP_date])&&GLOBAL_isNaN(a[$$PROP_date]))&&(this[$$PROP_month]===a[$$PROP_month]||GLOBAL_isNaN(this[$$PROP_month])&&GLOBAL_isNaN(a[$$PROP_month]))&&(this[$$PROP_year]===a[$$PROP_year]||GLOBAL_isNaN(this[$$PROP_year])&&GLOBAL_isNaN(a[$$PROP_year]))};
JSCompiler_extractPrototype.toStringRepresentation_=function(){return(undefined!==this[$$PROP_year]?ICAL_fmtInt(this[$$PROP_year],4):"????")+(undefined!==this[$$PROP_month]?ICAL_fmtInt(this[$$PROP_month],2):"??")+(undefined!==this[$$PROP_date]?ICAL_fmtInt(this[$$PROP_date],2):"??")};function ICAL_PartialDateTime(a,b,c,d,e,f){SETPROP_year(this,a);SETPROP_month(this,b);SETPROP_date(this,c);this.hour=d;this.minute=e;this.second=f}SETPROP_prototype(ICAL_PartialDateTime,new ICAL_DateValue);
JSCompiler_extractPrototype=ICAL_PartialDateTime[$$PROP_prototype];SETPROP_constructor(JSCompiler_extractPrototype,ICAL_PartialDateTime);SETPROP_type(JSCompiler_extractPrototype,"PartialDateTime");JSCompiler_extractPrototype.toDate=function(){return ICAL_Date$create(this[$$PROP_year]||0,this[$$PROP_month]||1,this[$$PROP_date]||1)};
JSCompiler_extractPrototype.toDateTime=function(){return new ICAL_DateTime(this[$$PROP_year]||0,this[$$PROP_month]||1,this[$$PROP_date]||1,this.hour||0,this.minute||0,this.second||0)};JSCompiler_extractPrototype.getComparable=function(){if(undefined===this.cmp_)this.cmp_=(((((this[$$PROP_year]-1970)*12+this[$$PROP_month]<<5)+this[$$PROP_date])*24+this.hour)*60+this.minute)*60+this.second;return this.cmp_};
JSCompiler_extractPrototype.equals=function(a){return this[$$PROP_constructor]===a[$$PROP_constructor]&&(this[$$PROP_date]===a[$$PROP_date]||GLOBAL_isNaN(this[$$PROP_date])&&GLOBAL_isNaN(a[$$PROP_date]))&&(this[$$PROP_month]===a[$$PROP_month]||GLOBAL_isNaN(this[$$PROP_month])&&GLOBAL_isNaN(a[$$PROP_month]))&&(this[$$PROP_year]===a[$$PROP_year]||GLOBAL_isNaN(this[$$PROP_year])&&GLOBAL_isNaN(a[$$PROP_year]))&&(this.hour===a.hour||GLOBAL_isNaN(this.hour)&&GLOBAL_isNaN(a.hour))&&(this.minute===a.minute||
GLOBAL_isNaN(this.minute)&&GLOBAL_isNaN(a.minute))&&(this.second===a.second||GLOBAL_isNaN(this.second)&&GLOBAL_isNaN(a.second))};
JSCompiler_extractPrototype.toStringRepresentation_=function(){return(undefined!==this[$$PROP_year]?ICAL_fmtInt(this[$$PROP_year],4):"????")+(undefined!==this[$$PROP_month]?ICAL_fmtInt(this[$$PROP_month],2):"??")+(undefined!==this[$$PROP_date]?ICAL_fmtInt(this[$$PROP_date],2):"??")+"T"+(undefined!==this.hour?ICAL_fmtInt(this.hour,2):"??")+(undefined!==this.minute?ICAL_fmtInt(this.minute,2):"??")+(undefined!==this.second?ICAL_fmtInt(this.second,2):"??")};
var ICAL_todaysDate=undefined,ICAL_todayUpdateListeners=[];
function updateTodaysDate_(){var a=new Date,b=ICAL_todaysDate;ICAL_todaysDate=ICAL_Date$create(a.getFullYear(),a.getMonth()+1,a[$$PROP_getDate]());if(b&&!b.equals(ICAL_todaysDate)){var c=0;for(;c<ICAL_todayUpdateListeners[$$PROP_length];++c){var d=ICAL_todayUpdateListeners[c];try{d(ICAL_todaysDate)}catch(e){}}}var f=new Date(a.getFullYear(),a.getMonth(),a[$$PROP_getDate](),0,0,0,0);f.setDate(f[$$PROP_getDate]()+1);var g=f.getTime()-a.getTime();if(g<0||g>=1800000)g=1800000;window[$$PROP_setTimeout](updateTodaysDate_,
g)}updateTodaysDate_();function LDP_ParseInputDate(a){a=a[$$PROP_replace](/^\s+/,"")[$$PROP_replace](/\s+$/,"")[$$PROP_replace](/([0-9]+)([a-zA-Z]+)/g,"$1 $2")[$$PROP_replace](/([a-zA-Z])([0-9])/g,"$1 $2");var b=a[$$PROP_split](/\b|_/),c=[],d=[],e=0;for(;e<b[$$PROP_length];++e){b[e]=b[e][$$PROP_replace](/^\s+|\s+$/,"");c[e]=b[e][$$PROP_length];d[e]=0;if(b[e][$$PROP_match](/^[0-9]+/)){var f=GLOBAL_parseInt(b[e],10);b[e]=f;if(0===f){if(c[e]==2)d[e]|=1}else if(f>12&&f<=31)d[e]|=4;else if(f<=12)d[e]|=6;else if(f<100||f>=1900)d[e]|=
1}else{var f=LDP_ParseMonth_(b[e]);if(f){b[e]=f[0];d[e]|=10}}}var g=0,h=0,j=0,i=0,l=0,e=0;for(;e<d[$$PROP_length];++e){!d[e]&&/\w/.test(b[e])&&++l;if(6===(d[e]&6))++j;else{d[e]&4&&++g;d[e]&2&&++h}d[e]&1&&++i}if(j){var r=false,n=false;if(!g||!h)if(g)r=true;else if(h)n=true;else if(1===j)r=true;else{var e=0;for(;e<d[$$PROP_length];++e){var o=false;if(d[0]===1&&b[1]&&/^\s*-\s*$/.test(b[1])&&d[2]===6&&b[3]&&/^\s*-\s*$/.test(b[3]))o=true;if(6==(d[e]&6)){if(o||!LDP_PrefersMonthBeforeDate||checkCharOrder(defaultDateFormat,
"M","d")){d[e]&=-5;++h;--j;n=true}else{d[e]&=-3;++g;--j;r=true}break}}}if(r){var e=0;for(;e<d[$$PROP_length];++e)if(6==(d[e]&6)){d[e]&=-5;++h;--j}}else if(n){var e=0;for(;e<d[$$PROP_length];++e)if(6==(d[e]&6)){d[e]&=-3;++g;--j}}}var k,m,q,p=0,x=7;if(g){var e=0;for(;e<d[$$PROP_length];++e)if(d[e]&4){k=b[e];d[e]=0;--g;break}AssertTrue(k)}else{k=null;x&=-5}if(h){var A=false,e;e=0;for(;e<d[$$PROP_length];++e)if(d[e]&2){m=b[e];d[e]&=-3;--h;A=0!==(d[e]&8);break}if(A){var s=c[e],u=e+1;for(;u<d[$$PROP_length];++u)if(d[u]&
8)if(c[u]>s){d[e]|=2;d[u]&=-3;m=b[u];s=c[u];e=u}}}else{m=null;x&=-3}var t=!!i;if(t){var e=0;for(;e<d[$$PROP_length];++e)if(d[e]&1){q=b[e];d[e]=0;--i;break}}else{q=null;if(g|h|j){var y=-1,w=0,e=0;for(;e<d[$$PROP_length];++e)if(d[e]&&!(d[e]&8))if(b[e]>w){y=e;w=b[e]}if(y>=0){q=w;switch(d[y]){case 4:--g;break;case 2:--h;break;case 6:--j;break}d[y]=0}}if(null==q){p-=1;q=ICAL_todaysDate[$$PROP_year]+(m&&m<ICAL_todaysDate[$$PROP_month]?1:0);x&=-2}}if(null==k){k=1;p-=0.5}if(null==m)if(t)m=1;else return null;
if(q<100)q+=q<50?2000:1900;p-=g+h+i+j+(l>>2);return new LDP_ParsedDate(ICAL_Date$create(q,m,k),p,x)}function LDP_ParsedDate(a,b,c){SETPROP_date(this,a);this.confidence=b;this.specified=c}SETPROP_toString(LDP_ParsedDate[$$PROP_prototype],function(){return this[$$PROP_date][$$PROP_toString]()});
function LDP_ParseMonth_(a){var b=-1,c=-1,d=0;for(;d<FULL_MONTHS[$$PROP_length];++d){var e=FULL_MONTHS[d];if(!!e){var f=MONTHS[d],g=GLOBAL_Math.max(LDP_CommonPrefixLength_(e,a),LDP_CommonPrefixLength_(f,a));if(g&&g>c){b=d;c=g}}}return c>=a[$$PROP_length]+1>>1?[b,c]:null}function LDP_CommonPrefixLength_(a,b){a=a[$$PROP_toLowerCase]();b=b[$$PROP_toLowerCase]();var c=GLOBAL_Math.min(a[$$PROP_length],b[$$PROP_length]),d;d=0;for(;d<c;++d)if(a[$$PROP_charAt](d)!=b[$$PROP_charAt](d))break;return d};var CG_DAYS_OF_THE_WEEK=[MSG_SU,MSG_M,MSG_TU,MSG_W,MSG_TH,MSG_F,MSG_SA],MONTHS=[,MSG_JAN,MSG_FEB,MSG_MAR,MSG_APR,MSG_MAY,MSG_JUN,MSG_JUL,MSG_AUG,MSG_SEP,MSG_OCT,MSG_NOV,MSG_DEC],FULL_MONTHS=[,MSG_JANUARY,MSG_FEBRUARY,MSG_MARCH,MSG_APRIL,MSG_MAY_LONG,MSG_JUNE,MSG_JULY,MSG_AUGUST,MSG_SEPTEMBER,MSG_OCTOBER,MSG_NOVEMBER,MSG_DECEMBER];GLOBAL_Function[$$PROP_prototype].bind=function(a){if(typeof this!="function")throw new Error("Bind must be called as a method of a function object.");var b=this,c=Array[$$PROP_prototype][$$PROP_splice][$$PROP_call](arguments,1,arguments[$$PROP_length]);return function(){var d=c.concat(),e=0;for(;e<arguments[$$PROP_length];e++)d[$$PROP_push](arguments[e]);return b[$$PROP_apply](a,d)}};var listen,unlisten,unlistenByKey;
(function(){var a={},b=0;function c(f){if(f.listen_hc_==null)f.listen_hc_=++b;return f.listen_hc_}function d(f,g,h,j){var i=c(f),l=c(h);j=!!j;var r=i+"_"+g+"_"+l+"_"+j;return r}listen=function(f,g,h,j){var i=d(f,g,h,j);if(i in a)return i;var l=e.bind(null,i);a[i]={listener:h,proxy:l,event:g,node:f,useCapture:j};if(f.addEventListener)f.addEventListener(g,l,j);else if(f.attachEvent)f.attachEvent("on"+g,l);else throw new Error("Node {"+f+"} does not support event listeners.");return i};unlisten=function(f,
g,h,j){var i=d(f,g,h,j);return unlistenByKey(i)};unlistenByKey=function(f){if(!(f in a))return false;var g=a[f],h=g.proxy,j=g[$$PROP_event],i=g.node,l=g.useCapture;if(i.removeEventListener)i.removeEventListener(j,h,l);else i.detachEvent&&i.detachEvent("on"+j,h);delete a[f];return true};function e(f){var g=Array[$$PROP_prototype][$$PROP_splice][$$PROP_call](arguments,1,arguments[$$PROP_length]);return a[f].listener[$$PROP_apply](null,g)}})();function Point(a,b,c){this.x=a;this.y=b;this.coordinateFrame=c||null}SETPROP_toString(Point[$$PROP_prototype],function(){return"[P "+this.x+","+this.y+"]"});Point[$$PROP_prototype].clone=function(){return new Point(this.x,this.y,this.coordinateFrame)};function Delta(a,b){this.dx=a;this.dy=b}SETPROP_toString(Delta[$$PROP_prototype],function(){return"[D "+this.dx+","+this.dy+"]"});function Rect(a,b,c,d,e){this.x=a;this.y=b;this.w=c;this.h=d;this.coordinateFrame=e||null}
Rect[$$PROP_prototype].contains=function(a){return this.x<=a.x&&a.x<this.x+this.w&&this.y<=a.y&&a.y<this.y+this.h};SETPROP_toString(Rect[$$PROP_prototype],function(){return"[R "+this.w+"x"+this.h+"+"+this.x+"+"+this.y+"]"});Rect[$$PROP_prototype].clone=function(){return new Rect(this.x,this.y,this.w,this.h,this.coordinateFrame)};function nodeBounds(a){if(!a)return null;function b(i){var l=a[$$PROP_offsetParent];for(;l&&l[$$PROP_offsetParent];l=l[$$PROP_offsetParent]){if(l[$$PROP_scrollLeft])i.x-=l[$$PROP_scrollLeft];if(l[$$PROP_scrollTop])i.y-=l[$$PROP_scrollTop]}}var c;c=a[$$PROP_ownerDocument]&&a[$$PROP_ownerDocument][$$PROP_parentWindow]?a[$$PROP_ownerDocument][$$PROP_parentWindow]:window;if(a[$$PROP_ownerDocument]&&a[$$PROP_ownerDocument].getBoxObjectFor){var d=a[$$PROP_ownerDocument].getBoxObjectFor(a),e=new Rect(d.x,
d.y,d.width,d.height,c);b(e);return e}if(a.getBoundingClientRect){var f=a.getBoundingClientRect();return new Rect(f.left+GetWindowPropertyByBrowser_(c,getScrollLeftGetters_),f.top+GetWindowPropertyByBrowser_(c,getScrollTopGetters_),f.right-f.left,f.bottom-f.top,c)}var g=0,h=0,j=a;for(;j[$$PROP_offsetParent];j=j[$$PROP_offsetParent]){g+=j[$$PROP_offsetLeft];h+=j[$$PROP_offsetTop]}var e=new Rect(g,h,a[$$PROP_offsetWidth],a[$$PROP_offsetHeight],c);b(e);return e}
function nodeLoc(a){if(!a)return null;var b=nodeBounds(a);return new Point(b.x,b.y,b.coordinateFrame)}function Distance(a,b){AssertTrue(a,"p1 passed to Distance is undefined");AssertTrue(b,"p2 passed to Distance is undefined");AssertTrue(a.coordinateFrame==b.coordinateFrame);var c=a.x-b.x,d=a.y-b.y;return GLOBAL_Math.sqrt(c*c+d*d)}
function GetMousePosition(a){var b=0,c=0;if(a.pageX||a.pageY){b=a.pageX;c=a.pageY}else if(a.clientX||a.clientY){var d=a[$$PROP_target]?a[$$PROP_target]:a[$$PROP_srcElement],e;e=d[$$PROP_ownerDocument]&&d[$$PROP_ownerDocument][$$PROP_parentWindow]?d[$$PROP_ownerDocument][$$PROP_parentWindow]:window;b=a.clientX+GetWindowPropertyByBrowser_(e,getScrollLeftGetters_);c=a.clientY+GetWindowPropertyByBrowser_(e,getScrollTopGetters_)}return new Point(b,c,window)};function DD_CreateSnapToGridConstraint(a){return function(b,c,d,e){var f=nodeBounds(c),g=nodeLoc(c[$$PROP_offsetParent]),h;switch(d){case 1:if(undefined!==e){if(dd_axisMask&1)f.x+=e.dx;if(dd_axisMask&2)f.y+=e.dy}h=a(f);if(!h)return false;if(dd_axisMask&1)if(undefined!==e)e.dx+=h.x-f.x+g.x;else SETPROP_left(c[$$PROP_style],h.x+"px");if(dd_axisMask&2)if(undefined!==e)e.dy+=h.y-f.y+g.y;else c[$$PROP_style].top=h.y+"px";break;case 2:if(undefined!==e){if(dd_axisMask&1)f.w+=e.dx;if(dd_axisMask&2)f.h+=e.dy}if(undefined===
e){var j=new Point(f.x+f.w,f.y+f.h,window);h=a(j);if(!h)return false;if(dd_axisMask&1){var i=h.x-c[$$PROP_offsetLeft];if(i<=0)return false;SETPROP_width(c[$$PROP_style],i+"px")}if(dd_axisMask&2){var l=h.y-c[$$PROP_offsetTop];if(l<=0)return false;SETPROP_height(c[$$PROP_style],l+"px")}}break;case 5:if(e){var h=a(dd_mousePos);if(!h)return false;if(dd_axisMask&1)e.dx-=dd_mousePos.x-h.x<h.w/2?h.x-dd_mousePos.x:h.x+h.w-dd_mousePos.x;if(dd_axisMask&2)e.dy-=dd_mousePos.y-h.y<h.h/2?h.y-dd_mousePos.y:h.y+
h.h-dd_mousePos.y}break}return true}}var DD_GESTURE_THRESHOLD_RADIANS=2*GLOBAL_Math.PI/16,dd_dragElement=null,dd_dragType=0,dd_handler=undefined,dd_mousePos=undefined,dd_origMousePos=undefined,dd_startRect=undefined,dd_gesture=undefined,dd_axisMask=undefined,dd_accumulatedDelta=undefined,dd_dragDistance=undefined,dd_wasDragged=false,dd_originalZIndex=undefined,dd_document=undefined;function _DD_Install(a){a||(a=GLOBAL_document);dd_document=a;listen(dd_document[$$PROP_body],"mousedown",DD_Omd)}
var dd_handlers=[];function DD_RegisterHandler(a){dd_handlers[$$PROP_push](a)}function DD_GetHandler(a,b){var c=dd_handlers[$$PROP_length]-1;for(;c>=0;--c){var d=dd_handlers[c](a,b);if(d)return d}return undefined}var dd_mouseDownEvent;function DD_Omd(a){dd_mouseDownEvent=CloneEvent(a||window[$$PROP_event]);listen(dd_document[$$PROP_body],"mousemove",DD_Omm);listen(dd_document[$$PROP_body],"mouseup",DD_Omu);return false}
function DD_OmdAndDrag(a){var b=undefined,c=a[$$PROP_srcElement]||a[$$PROP_target];for(;c;c=c[$$PROP_parentNode]){b=DD_GetHandler(c,a);if(!!b){dd_mousePos=GetMousePosition(a);if(b.startDrag(a,c)){if(!(dd_dragElement&&dd_dragType>=0&&dd_dragType<6&&1===1+dd_dragType%1&&dd_axisMask&&0===(dd_axisMask&-4))){var d="Bogus drag: el="+dd_dragElement+", type="+dd_dragType+", axis mask="+dd_axisMask;DD_EndDrag();raise(d)}a.cancelBubble=true;dd_handler=b;dd_origMousePos=dd_mousePos;dd_startRect={x:dd_dragElement[$$PROP_offsetLeft],
y:dd_dragElement[$$PROP_offsetTop],w:dd_dragElement[$$PROP_offsetWidth],h:dd_dragElement[$$PROP_offsetHeight]};if(dd_dragType===4)dd_gesture=[dd_mousePos];dd_accumulatedDelta=new Delta(0,0);dd_dragDistance=new Delta(0,0);if(dd_dragType===1||dd_dragType===2||dd_dragType===5){dd_dragType!==2&&dd_handler.useUserDefinedAlpha&&!dd_handler.useUserDefinedAlpha()&&DD_Alpha(dd_dragElement,true);dd_originalZIndex=dd_dragElement[$$PROP_style][$$PROP_zIndex];SETPROP_zIndex(dd_dragElement[$$PROP_style],2000)}BR_IsIE()?
listen(dd_document[$$PROP_body],"mouseleave",DD_Omo):listen(dd_document[$$PROP_body],"mouseout",DD_Omo)}else DD_EndDrag();return false}}return true}
function DD_Omu(a){if(dd_mouseDownEvent){dd_mouseDownEvent=null;unlisten(dd_document[$$PROP_body],"mousemove",DD_Omm);unlisten(dd_document[$$PROP_body],"mouseup",DD_Omu);var b=undefined,c=a[$$PROP_srcElement]||a[$$PROP_target];for(;c;c=c[$$PROP_parentNode])if((b=DD_GetHandler(c,a))&&b.handleClick){b.handleClick(c,a);return false}}else{var d=a||dd_document[$$PROP_parentWindow][$$PROP_event];dd_handler.finishDrag(d,dd_dragElement,dd_dragType)?DD_EndDrag():DD_CancelDrag()}}
function DD_Omm(a){if(dd_mouseDownEvent){var b=DD_OmdAndDrag(dd_mouseDownEvent);dd_mouseDownEvent=null;if(b){DD_CancelDrag();return true}}if(!dd_dragElement)return true;if(!dd_handler)return true;var c=a||dd_document[$$PROP_parentWindow][$$PROP_event];c.cancelBubble=true;var d=GetMousePosition(c),e=new Delta(d.x-dd_mousePos.x+dd_accumulatedDelta.dx,d.y-dd_mousePos.y+dd_accumulatedDelta.dy);if(!(e.dx|e.dy))return false;var f=new Delta(e.dx,e.dy);dd_mousePos=d;dd_wasDragged=true;var g=nodeLoc(dd_dragElement);
if(dd_axisMask&1)dd_dragDistance.dx+=f.dx;if(dd_axisMask&2)dd_dragDistance.dy+=f.dy;if(dd_handler.handleDragSegment(c,dd_dragElement,dd_dragType,f,dd_dragDistance)){var h=nodeLoc(dd_dragElement);dd_dragDistance.dx-=h.x-g.x;dd_dragDistance.dy-=h.y-g.y;switch(dd_dragType){case 1:case 2:case 5:dd_accumulatedDelta.dx=e.dx-f.dx;dd_accumulatedDelta.dy=e.dy-f.dy;break}switch(dd_dragType){case 1:if(!(dd_axisMask&1))f.dx=0;if(!(dd_axisMask&2))f.dy=0;var j=dd_dragElement[$$PROP_currentStyle]?dd_dragElement[$$PROP_currentStyle]:
dd_dragElement[$$PROP_ownerDocument].defaultView.getComputedStyle(dd_dragElement,"");if(j&&j.position=="relative"){SETPROP_left(dd_dragElement[$$PROP_style],dd_dragDistance.dx+"px");dd_dragElement[$$PROP_style].top=dd_dragDistance.dy+"px"}else{var i=dd_dragElement[$$PROP_offsetLeft]+f.dx,l=dd_dragElement[$$PROP_offsetTop]+f.dy;if(f.dx)SETPROP_left(dd_dragElement[$$PROP_style],i+"px");if(f.dy)dd_dragElement[$$PROP_style].top=l+"px";if(f.dx&&i!==dd_dragElement[$$PROP_offsetLeft])SETPROP_left(dd_dragElement[$$PROP_style],
i+i-dd_dragElement[$$PROP_offsetLeft]+"px");if(f.dy&&l!==dd_dragElement[$$PROP_offsetTop])dd_dragElement[$$PROP_style].top=l+l-dd_dragElement[$$PROP_offsetTop]+"px"}break;case 5:var r=nodeBounds(dd_dragElement);if(dd_axisMask&1){var n=dd_mousePos.x+dd_accumulatedDelta.dx,o=GLOBAL_Math.min(n,dd_origMousePos.x),k=GLOBAL_Math.abs(n-dd_origMousePos.x);if(o!==r.x){var i=o;SETPROP_left(dd_dragElement[$$PROP_style],i+"px");if(i!==dd_dragElement[$$PROP_offsetLeft])SETPROP_left(dd_dragElement[$$PROP_style],
i+i-dd_dragElement[$$PROP_offsetLeft]+"px")}if(k!==r.w){SETPROP_width(dd_dragElement[$$PROP_style],k+"px");if(k!=dd_dragElement[$$PROP_offsetWidth]){k=GLOBAL_Math.max(0,k+k-dd_dragElement[$$PROP_offsetWidth]);SETPROP_width(dd_dragElement[$$PROP_style],k+"px")}}}if(dd_axisMask&2){var m=dd_mousePos.y+dd_accumulatedDelta.dy,q=GLOBAL_Math.min(m,dd_origMousePos.y),p=GLOBAL_Math.abs(m-dd_origMousePos.y);if(q!==r.y){var l=q;dd_dragElement[$$PROP_style].top=l+"px";if(l!==dd_dragElement[$$PROP_offsetTop])dd_dragElement[$$PROP_style].top=
l+l-dd_dragElement[$$PROP_offsetTop]+"px"}if(p!==r.h){SETPROP_height(dd_dragElement[$$PROP_style],p+"px");if(p!=dd_dragElement[$$PROP_offsetHeight]){p=GLOBAL_Math.max(0,p+p-dd_dragElement[$$PROP_offsetHeight]);SETPROP_height(dd_dragElement[$$PROP_style],p+"px")}}}break;case 2:if(f.dx&&dd_axisMask&1){var x=dd_dragElement[$$PROP_offsetWidth],k=x+f.dx;if(k<0){dd_accumulatedDelta.dx+=k;k=0}if(k<1){dd_accumulatedDelta.dx+=k-1;k=1}SETPROP_width(dd_dragElement[$$PROP_style],k+"px");if(k!=dd_dragElement[$$PROP_offsetWidth]){k+=
k-dd_dragElement[$$PROP_offsetWidth];if(k<1)k=1;SETPROP_width(dd_dragElement[$$PROP_style],k+"px")}}if(f.dy&&dd_axisMask&2){var A=dd_dragElement[$$PROP_offsetHeight],p=A+f.dy;if(p<0){dd_accumulatedDelta.dy+=p;p=0}if(p<1){dd_accumulatedDelta.dy+=p-1;p=1}SETPROP_height(dd_dragElement[$$PROP_style],p+"px");if(p!=dd_dragElement[$$PROP_offsetHeight]){p+=p-dd_dragElement[$$PROP_offsetHeight];if(p<1)p=1;SETPROP_height(dd_dragElement[$$PROP_style],p+"px")}}break;case 3:if(!(dd_axisMask&1))f.dx=0;if(!(dd_axisMask&
2))f.dy=0;if(dd_dragElement.scrollBy)dd_dragElement.scrollBy(f.dx,f.dy);else{f.dx*=-1;f.dy*=-1;var s=dd_dragElement[$$PROP_scrollLeft],u=dd_dragElement[$$PROP_scrollLeft]+dd_dragElement.scrollWidth-dd_dragElement[$$PROP_offsetWidth],t=dd_dragElement[$$PROP_scrollTop],y=dd_dragElement[$$PROP_scrollTop]+dd_dragElement.scrollHeight-dd_dragElement[$$PROP_offsetHeight];f.dx=GLOBAL_Math.max(GLOBAL_Math.min(f.dx,u),-s);f.dy=GLOBAL_Math.max(GLOBAL_Math.min(f.dy,y),-t);if(f.dx)dd_dragElement.scrollLeft=dd_dragElement[$$PROP_scrollLeft]+
f.dx;if(f.dy)dd_dragElement.scrollTop=dd_dragElement[$$PROP_scrollTop]+f.dy}break;case 4:if(f.dx|f.dy){if(dd_gesture[$$PROP_length]>=1){var w=f,z=dd_gesture[dd_gesture[$$PROP_length]-1],v=new Delta(w.dx+z.dx,w.dy+z.dy),B=false;if(v.dx*v.dx+v.dy*v.dy<=25)B=true;else{var D=GLOBAL_Math.atan2(w.dx,w.dy),C=GLOBAL_Math.atan2(z.dx,z.dy),E=GLOBAL_Math.abs((D-C+2*GLOBAL_Math.PI)%(2*GLOBAL_Math.PI));B=E<DD_GESTURE_THRESHOLD_RADIANS}if(B){z.dx=v.dx;z.dy=v.dy}else dd_gesture[$$PROP_push](f)}else dd_gesture[$$PROP_push](f);
DD_RenderGesture(dd_gesture)}break}}else DD_CancelDrag();return false}function DD_Omo(a){a=a||window[$$PROP_event];var b=a.relatedTarget||a.toElement;b||DD_CancelDrag()}
function DD_EndDrag(){if(dd_dragType!==0){if(dd_dragElement){dd_dragType===4&&DD_RenderGesture([]);dd_handler.dragDone(dd_dragElement,dd_dragType)}if(dd_dragType===1||dd_dragType===2||dd_dragType===5){dd_dragType!==2&&dd_handler.useUserDefinedAlpha&&!dd_handler.useUserDefinedAlpha()&&DD_Alpha(dd_dragElement,false);if(undefined!==dd_originalZIndex){SETPROP_zIndex(dd_dragElement[$$PROP_style],dd_originalZIndex);dd_originalZIndex=undefined}else delete dd_dragElement[$$PROP_style][$$PROP_zIndex]}}dd_dragElement=
null;dd_dragType=0;dd_startRect=dd_mousePos=undefined;dd_axisMask=0;dd_accumulatedDelta=undefined;dd_wasDragged=false;if(dd_handler)BR_IsIE()?unlisten(dd_document[$$PROP_body],"mouseleave",DD_Omo):unlisten(dd_document[$$PROP_body],"mouseout",DD_Omo);dd_handler=undefined;unlisten(dd_document[$$PROP_body],"mousemove",DD_Omm);unlisten(dd_document[$$PROP_body],"mouseup",DD_Omu)}
function DD_CancelDrag(){switch(dd_dragType){case 1:var a=dd_dragElement[$$PROP_currentStyle]?dd_dragElement[$$PROP_currentStyle]:window.getComputedStyle(dd_dragElement,"");if(a&&a.position=="relative"){SETPROP_left(dd_dragElement[$$PROP_style],"0px");dd_dragElement[$$PROP_style].top="0px"}else{SETPROP_left(dd_dragElement[$$PROP_style],dd_startRect.x+"px");dd_dragElement[$$PROP_style].top=dd_startRect.y+"px"}break;case 2:SETPROP_width(dd_dragElement[$$PROP_style],dd_startRect.w+"px");SETPROP_height(dd_dragElement[$$PROP_style],
dd_startRect.h+"px");break;case 3:break;case 4:dd_gesture=[];break;case 0:break;case 5:break;default:raise("failed to cancel drag with dd_dragType="+dd_dragType)}DD_EndDrag()}function DD_Alpha(a,b){if(BR_IsIE())a[$$PROP_style].filter=b?"alpha(opacity=50)":"alpha(opacity=100)";else a[$$PROP_style].MozOpacity=b?0.5:1}var dd_redrawScheduled=false,dd_toDraw=undefined;function DD_RenderGesture(a){dd_toDraw=a;if(!dd_redrawScheduled){dd_redrawScheduled=true;window[$$PROP_setTimeout](DD_DoRender,100)}}
function DD_DoRender(){var a=dd_toDraw;dd_toDraw=undefined;dd_redrawScheduled=false;if(!!a){var b="";if(a[$$PROP_length]){var c=a[0].x,d=a[0].y,e=0,f=0,g=1;for(;g<a[$$PROP_length];g++){var h=a[g];if(!!(h.dx|h.dy)){if(g!=0)b+="<img class=gestimg src=images/joiner.png width=5 height=5 style=left:"+(c-2)+"px;top:"+(d-2)+"px>";var j=GLOBAL_Math.atan2(h.dx,h.dy),i,l=GLOBAL_Math[$$PROP_floor](j/(GLOBAL_Math.PI/6));switch(l){case 0:case 6:case -6:i="vert.png";break;case 1:case -4:i="negslope.png";break;
case 2:case -2:case 3:case -3:i="horz.png";break;case 4:case -1:i="posslope.png";break;case 5:case -5:i="vert.png";break}var r=GLOBAL_Math.max(1,GLOBAL_Math.abs(h.dx)),n=GLOBAL_Math.max(1,GLOBAL_Math.abs(h.dy));b+="<img class=gestimg src=images/"+i+" width="+r+" height="+n+" style=left:"+(c+GLOBAL_Math.min(h.dx,0))+"px;top:"+(d+GLOBAL_Math.min(h.dy,0))+"px>";c+=h.dx;d+=h.dy;e=GLOBAL_Math.max(c,e);f=GLOBAL_Math.max(d,f)}}}var o=forid("gesture");SETPROP_display(o[$$PROP_style],"none");SETPROP_innerHTML(o,
b);SETPROP_display(o[$$PROP_style],"inline")}}function StubDragHandler_(){}StubDragHandler_[$$PROP_prototype].handleDragSegment=function(){throw new Error("Unimplemented");};function DD_BaseSelectionHandler(a){this.selection_=(this.selectionContainer_=a)?DD_BaseSelectionHandler$getSelection(a):undefined;this.finished_=false;this.lasso_=null;this.axisMask_=3}var DD_BaseSelectionHandler$getSelection=function(a,b){b=b||[];if(a[$$PROP_className]&&a[$$PROP_className][$$PROP_match](/\bddSelected\b/))b[$$PROP_push](a);else{var c=a.firstChild;for(;c;c=c[$$PROP_nextSibling])DD_BaseSelectionHandler$getSelection(c,b)}return b};JSCompiler_extractPrototype=DD_BaseSelectionHandler[$$PROP_prototype];
JSCompiler_extractPrototype.initLassoPosition=function(a,b){SETPROP_left(a[$$PROP_style],b.x+"px");a[$$PROP_style].top=b.y+"px";if(this.axisMask_&1)SETPROP_width(a[$$PROP_style],"0px");if(this.axisMask_&2)SETPROP_height(a[$$PROP_style],"0px")};JSCompiler_extractPrototype.initLassoStyle=function(a){SETPROP_display(a[$$PROP_style],"block")};
JSCompiler_extractPrototype.startDrag=function(a){var b=forid("ddLasso");if(!b){b=GLOBAL_document[$$PROP_createElement]("div");b.id="ddLasso";SETPROP_position(b[$$PROP_style],"absolute");SETPROP_display(b[$$PROP_style],"none");GLOBAL_document[$$PROP_body][$$PROP_appendChild](b)}var c=GetMousePosition(a);this.initLassoPosition(b,c);this.initLassoStyle(b);dd_dragType=5;dd_axisMask=this.axisMask_;this.lasso_=dd_dragElement=b;var d=this;window[$$PROP_setTimeout](function(){d.finished||d.computeSelection(b)},
200);return true};JSCompiler_extractPrototype.finishDrag=function(){return true};JSCompiler_extractPrototype.isSelectable=function(a){return a[$$PROP_className]&&a[$$PROP_className][$$PROP_match](/\bddSelectable\b/)};JSCompiler_extractPrototype.computeSelectionHelper=function(a,b,c){if(this.isSelectable(a)){var d=nodeBounds(a);b.x+b.w<d.x||d.x+d.w<b.x||b.y+b.h<d.y||d.y+d.h<b.y||c[$$PROP_push](a)}else{var e=a.firstChild;for(;e;e=e[$$PROP_nextSibling])this.computeSelectionHelper(e,b,c)}};
JSCompiler_extractPrototype.computeSelection=function(a){if(!!this.selectionContainer_){var b=[];this.computeSelectionHelper(this.selectionContainer_,nodeBounds(a),b);this.setSelection(b);if(!this.finished_){var c=this;window[$$PROP_setTimeout](function(){c.finished||c.computeSelection(a)},200)}}};
JSCompiler_extractPrototype.setSelection=function(a){var b=this.selection_,c=a[$$PROP_length];for(;--c>=0;)a[c].dd_newSelection=true;var c=b[$$PROP_length];for(;--c>=0;){var d=b[c];d.dd_oldSelection=true;if(!d.dd_newSelection)SETPROP_className(d,d[$$PROP_className][$$PROP_replace](/\s*\bddSelected\b/g,""))}var c=a[$$PROP_length];for(;--c>=0;){var d=a[c];if(!d.dd_oldSelection)SETPROP_className(d,(d[$$PROP_className]||" ")+" ddSelected");d.dd_newSelection=false}var c=b[$$PROP_length];for(;--c>=0;)b[c].dd_oldSelection=
false;this.selection_=a};JSCompiler_extractPrototype.handleDragSegment=function(){return true};JSCompiler_extractPrototype.dragDone=function(a){this.finished_=true;this.computeSelection(a);SETPROP_display(a[$$PROP_style],"none")};function DD_SnapSelectionHandler(a,b){DD_BaseSelectionHandler[$$PROP_call](this,a);this.snapConstraints_=DD_CreateSnapToGridConstraint(b);this.gridFn=b}SETPROP_prototype(DD_SnapSelectionHandler,new DD_BaseSelectionHandler(undefined));
SETPROP_constructor(DD_SnapSelectionHandler[$$PROP_prototype],DD_SnapSelectionHandler);DD_SnapSelectionHandler[$$PROP_prototype].handleDragSegment=function(a,b,c,d){return DD_BaseSelectionHandler[$$PROP_prototype].handleDragSegment(a,b,c,d)&&this.snapConstraints_(a,b,c,d)};
DD_SnapSelectionHandler[$$PROP_prototype].startDrag=function(a,b){if(DD_BaseSelectionHandler[$$PROP_prototype].startDrag[$$PROP_call](this,a,b)){var c=this.gridFn(dd_mousePos,true);if(dd_axisMask&1)dd_mousePos.x=dd_mousePos.x-c.x<c.w>>1?c.x:c.x+c.w;if(dd_axisMask&2)dd_mousePos.y=dd_mousePos.y-c.y<c.h>>1?c.y:c.y+c.h;return true}else return false};function PopupController(){this.activePopups_=[]}function _PC_Install(a){if(gPopupControllerInstalled)return false;gPopupControllerInstalled=true;var b=a?a:GLOBAL_document;listen(b[$$PROP_body],"mousedown",PC_notifyPopups);return true}
function PC_notifyPopups(a){if(gPopupController.activePopups_[$$PROP_length]==0)return false;a=a||window[$$PROP_event];var b=gPopupController.activePopups_[$$PROP_length]-1;for(;b>=0;--b){var c=gPopupController.activePopups_[b];PC_assertIsPopup(c);c.deactivate(a)&&gPopupController.activePopups_[$$PROP_splice](b,1)}return true}
function PC_addPopup(a){PC_assertIsPopup(a);var b=0;for(;b<gPopupController.activePopups_[$$PROP_length];++b)if(a===gPopupController.activePopups_[b])return false;gPopupController.activePopups_[$$PROP_push](a);return true}function PC_assertIsPopup(a){AssertType(a.deactivate,GLOBAL_Function,"popup missing deactivate function")}var gPopupController=new PopupController,gPopupControllerInstalled=false;function DP_DatePicker(a,b,c,d,e){AssertTrue(a,"element passed to DP_DatePicker constructor is null");this.div_=a;this.id_=c?c:this.div_.id+"_";this.class_=d?d:"DP_";DP_DatePicker$dp_cache_[this.id_]=this;if(e){AssertType(e,ICAL_Date,"opt_today is not an ICAL_Date");this.today_=e}else this.today_=ICAL_Date$now();this.dispDate_=ICAL_Date$create(this.today_[$$PROP_year],this.today_[$$PROP_month],1);this.firstDay_=0;this.evenMonthHeading_=!!b;this.useDayHeaders_=false;this.nextMonth_=this.prevMonth_=
null;this.dateToCellMap_={};this.id2NextMap_={};this.id2PrevMap_={};this.id2DateMap_={};this.lastCell_=this.firstCell_=null;this.selectionListeners_=new ListenerList(this);this.monthChangeListeners_=new ListenerList(this);this.isVisible_=this.showSelection_=false;this.selectedDates_=new DateSet;this.numWeeks_=0;this.decorator_=null;this.allowMonthChange_=this.showFullWeeks_=true;this.populateHtml();this.snapToWeek_=false;this.setSelectionMode(0);this.setClickMode(0);this.setWeekdayString(CG_DAYS_OF_THE_WEEK);
this.setFullMonths(FULL_MONTHS);this.setMonths(MONTHS);this.ignoringDrags_=false;this.lastDragEvent_=this.rangeEndDate_=this.rangeStartDate_=this.dragEndCell_=this.dragStartCell_=this.fudgeFactor_=null;this.inDrag_=false;this.viewableEndDate_=this.viewableStartDate_=null;var f=this,g=function(h){var j=h.startDate,i=h.endDate,l;l=j?!i||j.equals(i)?"Selected: "+f.formatDate(j,true):"Selected: "+f.formatDate(j)+" - "+f.formatDate(i):DP_DatePicker$DATE_SELECTION[this.selectionMode_];f.printStatus(l)};
this.showSelection_&&this.addSelectionListener(g);this.loggers_=new ListenerList(this)}var DP_DatePicker$DATE_SELECTION={};DP_DatePicker$DATE_SELECTION[0]="Select a date";DP_DatePicker$DATE_SELECTION[1]="Select a range of dates";DP_DatePicker$DATE_SELECTION[2]="Select dates";DP_DatePicker$DATE_SELECTION[3]="&nbsp;";JSCompiler_extractPrototype=DP_DatePicker[$$PROP_prototype];
JSCompiler_extractPrototype.setClickMode=function(a,b){if(a!=0&&a!=1&&a!=7&&a!=30&&a!=-1&&!(b instanceof GLOBAL_Function))throw new Error("Invalid click mode: "+a);this.clickMode_=a;this.clickFunc_=b};JSCompiler_extractPrototype.setUseDayHeaders=function(a){if(a!=this.useDayHeaders_){this.useDayHeaders_=a;this.populateHtml()}};JSCompiler_extractPrototype.setWeekdayString=function(a){this.weekdayString_=a;this.populateHtml()};JSCompiler_extractPrototype.getClickMode=function(){return this.clickMode_};
JSCompiler_extractPrototype.setSelectionMode=function(a){0<=a&&a<=3||Fail("Invalid selection mode: "+a);if(!(this.selectionMode_==a)){this.selectionMode_=a;this.clearSelections()}};JSCompiler_extractPrototype.getSelectionMode=function(){return this.selectionMode_};JSCompiler_extractPrototype.show=function(){this.isVisible_=true;this.populateHtml()};JSCompiler_extractPrototype.hide=function(){SETPROP_innerHTML(this.div_,"");this.isVisible_=false};JSCompiler_extractPrototype.isVisible=function(){return this.isVisible_};
JSCompiler_extractPrototype.getTableNode=function(){return forid(this.id_+"tbl")};JSCompiler_extractPrototype.setFirstDayOfWeek=function(a){AssertTrue(0<=a&&a<=6,a+" not a valid first day of week");this.firstDay_=a;this.populateHtml()};JSCompiler_extractPrototype.getFirstDayOfWeek=function(){return this.firstDay_};JSCompiler_extractPrototype.setDecoratorInline=function(a){a&&AssertType(a,GLOBAL_Function);this.decoratorInline_=a};JSCompiler_extractPrototype.getAllowMonthChange=function(){return this.allowMonthChange_};
JSCompiler_extractPrototype.setPrevMonthHtmlFn=function(a){AssertType(a,GLOBAL_Function);this.prevMonthHtmlFn_=a};JSCompiler_extractPrototype.setCurMonthHtmlFn=function(a){AssertType(a,GLOBAL_Function);this.curMonthHtmlFn_=a};JSCompiler_extractPrototype.setNextMonthHtmlFn=function(a){AssertType(a,GLOBAL_Function);this.nextMonthHtmlFn_=a};JSCompiler_extractPrototype.setMonths=function(a){this.months_=a;this.populateHtml()};JSCompiler_extractPrototype.getMonths=function(){return this.months_};
JSCompiler_extractPrototype.setFullMonths=function(a){this.fullMonths_=a;this.populateHtml()};
JSCompiler_extractPrototype.populateHtml=function(){if(!!this.isVisible_){var a=this.id_,b,c=this.dispDate_[$$PROP_month],d=this.dispDate_[$$PROP_year],e=[c==1?12:c-1,c,c==12?1:c+1],f=ICAL_Date$create(this.today_[$$PROP_year],this.today_[$$PROP_month],1),g=ical_dateBuilder(d,c-1,1).toDate(),h=ical_dateBuilder(d,c+1,1).toDate();if(this.prevMonthHtmlFn_)e[0]=this.prevMonthHtmlFn_(g);else{var j=g.getComparable()>=f.getComparable()?"&laquo;":"&lsaquo;&nbsp;";e[0]=j+this.months_[e[0]]}e[1]=this.curMonthHtmlFn_?
this.curMonthHtmlFn_(this.dispDate_):this.fullMonths_[e[1]]+" "+d;if(this.nextMonthHtmlFn_)e[2]=this.nextMonthHtmlFn_(h);else{var i=h.getComparable()-f.getComparable()<=0?"&raquo;":"&nbsp;&rsaquo;";e[2]=this.months_[e[2]]+i}var l=ICAL_daysInMonth(d,c),r=ICAL_daysInMonth(g[$$PROP_year],g[$$PROP_month]),n=new Array(49),o=this.dispDate_.getDayOfWeek()-this.firstDay_;if(o<0)o+=7;if(l<30||o<5)o+=7;var k=0;for(;k<o;++k)n[k]=ICAL_Date$create(g[$$PROP_year],g[$$PROP_month],r-o+k+1);var k=o,m=0;for(;m<l;++k)n[k]=
ICAL_Date$create(d,c,++m);var k=o+l,m=0;for(;k<n[$$PROP_length];++k)n[k]=ICAL_Date$create(h[$$PROP_year],h[$$PROP_month],++m);this.viewableStartDate_=n[0];this.viewableEndDate_=n[n[$$PROP_length]-1];var q=[],p=this.evenMonthHeading_?[2,3,2]:[1,5,1];q[$$PROP_push]('<table cols=7 cellspacing="0" cellpadding="3" id="',a,'tbl"',' class="',this.class_,'monthtable" ',' style="-moz-user-select:none; cursor:pointer;">','<tr class="',this.class_,'heading" id="',a,'header">',"<td colspan=",p[0]," unselectable=on",
' onmousedown="'+GetFnName(_DP_staticPrevMonth)+"(",ToJSString(this.id_),')"',' id="',a,'mhl" class="',this.class_,'prev">',e[0],"</td>","<td colspan=",p[1],' unselectable="on"',' id="',a,'mhc" class="',this.class_,'cur">',e[1],"</td>","<td colspan=",p[2],' unselectable="on"',' onmousedown="'+GetFnName(_DP_staticNextMonth)+"(",ToJSString(this.id_),')"',' id="',a,'mhr" class="',this.class_,'next">',e[2],"</td>","</tr>");if(this.useDayHeaders_){q[$$PROP_push]('<tr class="',this.class_,'days" id="',
a,'dow">');var k=0;for(;k<this.weekdayString_[$$PROP_length];++k)q[$$PROP_push]('<td unselectable="on"',' class="',this.class_,'dayh" id="',a,"day_",k,'">',this.weekdayString_[(k+this.firstDay_)%7],"</td>");q[$$PROP_push]("</tr>")}var x=(7-this.firstDay_)%7,A=(x+6)%7;this.dateToCellMap_={};var b=null,s=null,u=GetFnName(_DP_staticCellClicked),k=0,m=-1;for(;k<7;++k){q[$$PROP_push]('<tr id="',a,"week_",k,'">');var t=0;for(;t<this.weekdayString_[$$PROP_length];++t){++m;var y=this.selectedDates_[$$PROP_contains](n[m]);
s=[];k==0&&s[$$PROP_push](this.class_+"day_top");if(t==0)s[$$PROP_push](this.class_+"day_left");else t==6&&s[$$PROP_push](this.class_+"day_right");s[$$PROP_push](this.class_+"week"+(t==x||t==A?"end":"day")+(y?"_selected":""));if(m<o||m>=o+l){s[$$PROP_push](this.class_+"offmonth");if(n[m][$$PROP_date]<=7){s[$$PROP_push](this.class_+"month_top");n[m][$$PROP_date]==1&&t!=0&&s[$$PROP_push](this.class_+"month_left")}}else{s[$$PROP_push](this.class_+"onmonth");if(n[m][$$PROP_date]<=7){s[$$PROP_push](this.class_+
"month_top");n[m][$$PROP_date]==1&&t!=0&&s[$$PROP_push](this.class_+"month_left")}if(n[m][$$PROP_date]==this.today_[$$PROP_date]&&c==this.today_[$$PROP_month]&&d==this.today_[$$PROP_year])s[$$PROP_push](this.class_+"today"+(y?"_selected":""))}var w="";if(this.decoratorInline_){var z=this.decoratorInline_(n[m]);if(z)w=' style="'+z+'"'}q[$$PROP_push]('<td id="',a,"day_",k,"_",t,'"',' class="',s.join(" "),'"',w,' onclick="',u,'(this)"',' unselectable="on">',n[m][$$PROP_date],"</td>")}q[$$PROP_push]("</tr>")}this.showSelection_&&
q[$$PROP_push]('<tr class="',this.class_,'months">','<td colspan="7" id="',a,'sel"></td></tr>');q[$$PROP_push]("</table>");SETPROP_innerHTML(this.div_,q.join(""));this.firstCell_=forid(a+"day_0_0");this.lastCell_=forid(a+"day_6_6");var b=this.firstCell_,v=b[$$PROP_parentNode],B=null,D=null,m=-1,C=-1;for(;v!=null;){++C;if(C==7)break;var E=-1;for(;b!=null;){++m;++E;var F=a+"day_"+C+"_"+E;this.id2DateMap_[F]=n[m];this.dateToCellMap_[n[m][$$PROP_toString]()]=b;if(this.id2PrevMap_[F]=B)this.id2NextMap_[D]=
b;B=b;D=F;b=b[$$PROP_nextSibling]}v=v[$$PROP_nextSibling];if(v!=null)b=v.firstChild}this.numWeeks_=7;if(!this.showFullWeeks_){var I=forid(a+"week_4"),H=forid(a+"week_5"),G=forid(a+"week_6");if(this.id2DateMap_[a+"day_4_0"][$$PROP_month]!=c){SETPROP_display(I[$$PROP_style],"none");SETPROP_display(H[$$PROP_style],"none");SETPROP_display(G[$$PROP_style],"none");this.numWeeks_=4}else if(this.id2DateMap_[a+"day_5_0"][$$PROP_month]!=c){SETPROP_display(H[$$PROP_style],"none");SETPROP_display(G[$$PROP_style],
"none");this.numWeeks_=5}else if(this.id2DateMap_[a+"day_6_0"][$$PROP_month]!=c){SETPROP_display(G[$$PROP_style],"none");this.numWeeks_=6}}this.prevMonth_=g;this.nextMonth_=h;this.decorator_&&this.decorator_[$$PROP_call](null,this);this.addListeners_()}};JSCompiler_extractPrototype.refresh=function(){this.decorator_&&this.decorator_[$$PROP_call](null,this)};JSCompiler_extractPrototype.addSelectionListener=function(a){return this.selectionListeners_.add(a)};
JSCompiler_extractPrototype.clearSelections=function(a){a=arguments[$$PROP_length]===0||a;var b=this.selectedDates_.asArray(),c=0;for(;c<b[$$PROP_length];++c){var d=this.dateToCellMap_[b[c][$$PROP_toString]()];this.setDotSelection_(d,false)}this.selectedDates_.clear();if(!this.inDrag_){this.setDragStartCell(null);this.setDragEndCell(null)}a&&this.fireSelectionEvent()};
JSCompiler_extractPrototype.cellClicked_=function(a){if(this.clickFunc_)this.clickFunc_[$$PROP_call](null,a);else{var b=forid(a),c=this.selectedDates_;switch(this.selectionMode_){case 1:var d=this.getClickMode();if(d==0)break;if(d!=1&&(d!=-1||!c[$$PROP_contains](this.id2DateMap_[a]))){var e=this.id2DateMap_[b.id],f=GLOBAL_NaN;switch(d){case -1:if(c.getSize()>7&&this.isSnapToWeek()){var g=b.id[$$PROP_substr](b.id[$$PROP_length]-3,1);e=this.id2DateMap_[this.id_+"day_"+g+"_0"]}f=c.getSize()-1;break;
case 7:var g=b.id[$$PROP_substr](b.id[$$PROP_length]-3,1);e=this.id2DateMap_[this.id_+"day_"+g+"_0"];f=6;break;case 30:e=this.id2DateMap_[b.id];e=ICAL_Date$create(e[$$PROP_year],e[$$PROP_month],1);var h=ical_builderCopy(e);f=ICAL_daysInMonth(e[$$PROP_year],e[$$PROP_month])-1;break;default:Fail("Invalid click mode: "+d)}AssertTrue(f!==GLOBAL_NaN,"duration should have been defined");var h=ical_builderCopy(e);h.date+=f;var j=h.toDate();this.setSelection(e,j);return}AssertTrue(d==1||d==-1&&c[$$PROP_contains](this.id2DateMap_[a]),
"not a case for single date selection");this.clearSelections(false);case 0:if(c.getSize()>0){var i=c.asArray()[0];c[$$PROP_remove](i);var l=this.dateToCellMap_[i[$$PROP_toString]()];l&&this.setDotSelection_(l,false)}c.add(this.id2DateMap_[b.id]);this.setDotSelection_(b);this.fireSelectionEvent(this.id2DateMap_[b.id]);break;case 2:break;case 3:default:break}}};JSCompiler_extractPrototype.setDragStartCell=function(a){this.rangeStartDate_=(this.dragStartCell_=a)?this.id2DateMap_[a.id]:null};
JSCompiler_extractPrototype.setDragEndCell=function(a){this.rangeEndDate_=(this.dragEndCell_=a)?this.id2DateMap_[a.id]:null};JSCompiler_extractPrototype.inDrag=function(){return this.inDrag_};JSCompiler_extractPrototype.startDrag=function(a){this.clearSelections(false);this.inDrag_=true;this.setDragStartCell(this.eventToCell(a));var b=this.id2DateMap_[this.dragStartCell_.id];this.selectedDates_.add(b);this.setDotSelection_(this.dragStartCell_);this.setSelection(b);this.setDragEndCell(this.dragStartCell_)};
JSCompiler_extractPrototype.finishDrag=function(a){this.inDrag_=false;this.dragEndCell_=this.eventToCell(a);if(this.isSnapToWeek())this.fireSelectionEvent(this.rangeStartDate_,this.rangeEndDate_,false);else{var b,c;if(this.id2DateMap_[this.dragEndCell_.id].getComparable()<this.id2DateMap_[this.dragStartCell_.id].getComparable()){b=this.id2DateMap_[this.dragEndCell_.id];c=this.id2DateMap_[this.dragStartCell_.id]}else{b=this.id2DateMap_[this.dragStartCell_.id];c=this.id2DateMap_[this.dragEndCell_.id]}this.fireSelectionEvent(b,
c,false)}};JSCompiler_extractPrototype.handleDragSegment=function(a,b,c,d){this.lastDragEvent_=CloneEvent(a);if(!(this.selectionMode_!=1||this.ignoringDrags_)){this.ignoringDrags_=true;var e=this;window[$$PROP_setTimeout](function(){try{e.inDrag_&&e.finishDragAnonymous[$$PROP_call](e,b,c,d)}finally{e.ignoringDrags_=false}},50)}};JSCompiler_extractPrototype.isSnapToWeek=function(){return this.snapToWeek_};
JSCompiler_extractPrototype.finishDragAnonymous=function(){var a=this.lastDragEvent_,b=this.eventToCell(a);if(!(b===this.dragEndCell_)){var c=this.dragEndCell_;this.setDragEndCell(b);AssertTrue(c!=b);var d=this.id2DateMap_,e=d[c.id].getComparable()<d[b.id].getComparable(),f=d[c.id].getComparable()<d[this.dragStartCell_.id].getComparable(),g=d[b.id].getComparable()<d[this.dragStartCell_.id].getComparable(),h=d[this.dragStartCell_.id].getComparable()<d[b.id].getComparable(),j=d[this.dragStartCell_.id].getComparable()<
d[c.id].getComparable(),i,l,r,n,o=g?this.dragEndCell_:this.dragStartCell_,k=g?this.dragStartCell_:this.dragEndCell_;if(this.isSnapToWeek()){var m=ICAL_daysBetweenDates(d[k.id],d[o.id]);if(m>=7){var q,p;q=GLOBAL_parseInt(o.id[$$PROP_charAt](o.id[$$PROP_length]-3),10);p=GLOBAL_parseInt(k.id[$$PROP_charAt](k.id[$$PROP_length]-3),10);o=forid(this.id_+"day_"+q+"_0");k=forid(this.id_+"day_"+p+"_6")}this.setDotRange(this.firstCell_,o,false);this.setDotRange(k,this.lastCell_,false);this.setDotRange(o,k,true);
this.rangeStartDate_=d[o.id];this.rangeEndDate_=d[k.id]}else if(e){if(f){l=g?this.id2PrevMap_[b.id]:this.id2PrevMap_[this.dragStartCell_.id];this.setDotRange(c,l,false)}if(h){i=j?this.id2NextMap_[c.id]:this.id2NextMap_[this.dragStartCell_.id];this.setDotRange(i,b,true)}}else{if(j){i=h?this.id2NextMap_[b.id]:this.id2NextMap_[this.dragStartCell_.id];this.setDotRange(i,c,false)}if(g){l=g?this.id2PrevMap_[this.dragStartCell_.id]:this.id2PrevMap_[c.id];this.setDotRange(b,l,true)}}r=d[o.id];n=d[k.id];this.fireSelectionEvent(r,
n,true)}};JSCompiler_extractPrototype.setDotRange=function(a,b,c){AssertTrue(a);AssertTrue(b);AssertType(c,Boolean);var d=false;for(;a;){(d=c?this.selectedDates_.add(this.id2DateMap_[a.id]):this.selectedDates_[$$PROP_remove](this.id2DateMap_[a.id]))&&this.setDotSelection_(a,c);if(a.id===b.id)break;a=this.id2NextMap_[a.id];AssertTrue(a,"did not find endCell: "+b.id)}};var DP_DatePicker$LAST_DAY_OF_WEEK={4:"day_3_6",5:"day_4_6",6:"day_5_6",7:"day_6_6"};JSCompiler_extractPrototype=DP_DatePicker[$$PROP_prototype];
JSCompiler_extractPrototype.applyFudgeFactor_=function(a,b){if(!!this.fudgeFactor_)if(b){a.x-=this.fudgeFactor_.x;a.y-=this.fudgeFactor_.y}else{a.x+=this.fudgeFactor_.x;a.y+=this.fudgeFactor_.y}};JSCompiler_extractPrototype.eventToCell=function(a){var b=nodeBounds(this.firstCell_),c=this.getTableRect_(),d=GetMousePosition(a);this.applyFudgeFactor_(d);var e=7,f=this.findBin(c.x,b.w,e,d.x),g=this.findBin(c.y,b.h,this.numWeeks_,d.y);return forid(this.id_+"day_"+g+"_"+f)};
JSCompiler_extractPrototype.findBin=function(a,b,c,d){if(d<a)return 0;var e=GLOBAL_Math[$$PROP_floor]((d-a)/b);return e>=c?c-1:e};JSCompiler_extractPrototype.getTableRect_=function(){var a=this.id_,b=this.numWeeks_,c=nodeBounds(this.firstCell_),d=nodeBounds(forid(a+DP_DatePicker$LAST_DAY_OF_WEEK[b]));return new Rect(c.x,c.y,d.x+d.w-c.x,d.y+d.h-c.y,c.coordinateFrame)};JSCompiler_extractPrototype.formatDate=function(a,b){var c=b?this.fullMonths_:this.months_;return c[a[$$PROP_month]]+" "+a[$$PROP_date]};
JSCompiler_extractPrototype.fireSelectionEvent=function(a,b,c){var d={};d.startDate=a;d.endDate=b||a;d.inDrag=!!c;d.mode=this.getSelectionMode();this.selectionListeners_.fireEvent(d)};JSCompiler_extractPrototype.asICAL_Date=function(a){if(a instanceof ICAL_Date)return a;if(a instanceof ICAL_DateTime)return ICAL_Date$create(a[$$PROP_year],a[$$PROP_month],a[$$PROP_date]);else AssertTrue(false,"Invalid arg: "+a)};
JSCompiler_extractPrototype.setSelection=function(a,b,c){var d=this.getSelectionMode();c=c!==false;if(a)a=this.asICAL_Date(a);if(b)b=this.asICAL_Date(b);a&&this.showDate(a);if(!a||d==3)this.clearSelections(c);else if(d==0){this.clearSelections(false);var e=this.dateToCellMap_[a[$$PROP_toString]()];this.selectedDates_.add(a);this.setDotSelection_(e);c&&this.fireSelectionEvent(a)}else if(d==1){b||(b=a);var f=ICAL_daysBetweenDates(b,a),g=false;if(this.isSnapToWeek()&&f>=7){var h=ICAL_getDayOfWeek(a)+
7,j=ICAL_getDayOfWeek(b)+7;h=(h-this.getFirstDayOfWeek())%7;j=(j-this.getFirstDayOfWeek())%7;var i;i=ical_dateBuilder(a[$$PROP_year],a[$$PROP_month],a[$$PROP_date]-h);a=i.toDate();i=ical_dateBuilder(b[$$PROP_year],b[$$PROP_month],b[$$PROP_date]+(6-j));b=i.toDate();g=this.showDate(a)}g&&this.clearSelections(false);var e=this.firstCell_;this.rangeStartDate_=a;this.rangeEndDate_=b;var l=this.lastCell_,r=a.getComparable(),n=b.getComparable();for(;e;e=this.id2NextMap_[e.id]){var o=this.id2DateMap_[e.id],
k=this.selectedDates_[$$PROP_contains](o),m=o.getComparable()>=r&&o.getComparable()<=n;if(k!=m)if(m){this.selectedDates_.add(o);this.setDotSelection_(e)}else{this.selectedDates_[$$PROP_remove](o);this.setDotSelection_(e,false)}if(e===l)break}if(!e){var i=ical_builderCopy(this.id2DateMap_[this.lastCell_.id]),q=null;do{i.date+=1;q=i.toDate();this.selectedDates_.add(q)}while(!q.equals(b))}c&&this.fireSelectionEvent(a,b)}};
JSCompiler_extractPrototype.showMonth=function(a,b){if(this.dispDate_[$$PROP_month]==a[$$PROP_month]&&this.dispDate_[$$PROP_year]==a[$$PROP_year])return false;b=arguments[$$PROP_length]==1||b;this.dispDate_=ICAL_Date$create(a[$$PROP_year],a[$$PROP_month],1);this.populateHtml();b&&this.monthChangeListeners_.fireEvent();return true};
JSCompiler_extractPrototype.showDate=function(a,b){if(a.getComparable()>=this.viewableStartDate_.getComparable()&&a.getComparable()<=this.viewableEndDate_.getComparable())return false;return this.showMonth(a,b)};
JSCompiler_extractPrototype.getSelection=function(){switch(this.getSelectionMode()){case 0:return this.selectedDates_.getSize()?this.selectedDates_.asArray()[0]:null;case 1:var a=this.rangeStartDate_?this.rangeStartDate_:null,b=this.rangeEndDate_?this.rangeEndDate_:null;if(!a||!b)return null;return[a,b];case 2:return null;case 3:default:return null}};JSCompiler_extractPrototype.printStatus=function(a){if(this.showSelection_)SETPROP_innerHTML(forid(this.id_+"sel"),a)};
JSCompiler_extractPrototype.setDotSelection_=function(a,b){if(!!a){typeof b!="undefined"||(b=true);var c=[],d=[],e=" "+a[$$PROP_className]+" ",f=" "+this.class_;if(b){if(-1!=e[$$PROP_indexOf](f+"today ")){c[$$PROP_push](f+"today ");d[$$PROP_push](f+"today_selected ")}if(-1!=e[$$PROP_indexOf](f+"weekday ")){c[$$PROP_push](f+"weekday ");d[$$PROP_push](f+"weekday_selected ")}else if(-1!=e[$$PROP_indexOf](f+"weekend ")){c[$$PROP_push](f+"weekend ");d[$$PROP_push](f+"weekend_selected ")}}else{if(-1!=e[$$PROP_indexOf](f+
"today_selected ")){d[$$PROP_push](f+"today ");c[$$PROP_push](f+"today_selected ")}if(-1!=e[$$PROP_indexOf](f+"weekday_selected ")){d[$$PROP_push](f+"weekday ");c[$$PROP_push](f+"weekday_selected ")}else if(-1!=e[$$PROP_indexOf](f+"weekend_selected ")){d[$$PROP_push](f+"weekend ");c[$$PROP_push](f+"weekend_selected ")}}var g=0;for(;g<c[$$PROP_length];++g)e=e[$$PROP_replace](c[g],d[g]);if(c[$$PROP_length]!=0)SETPROP_className(a,e)}};var DP_DatePicker$dp_cache_={};
function _DP_staticPrevMonth(a){var b=DP_DatePicker$dp_cache_[a];return b.getAllowMonthChange()&&b.showMonth(b.prevMonth_)}function _DP_staticNextMonth(a){var b=DP_DatePicker$dp_cache_[a];return b.getAllowMonthChange()&&b.showMonth(b.nextMonth_)}function _DP_staticCellClicked(a){var b=a.id,c=b[$$PROP_match](/(.*)day_\d+_\d+/),d=DP_DatePicker$dp_cache_[c[1]];return d.cellClicked_(b)}
DP_DatePicker[$$PROP_prototype].addListeners_=function(){if(!(this.listenerAdded_===true)){this.listenerAdded_=true;var a=this.id_,b=this,c=this.div_;DD_RegisterHandler(function(d){if(b.selectionMode_==1&&d===c){var e=new DD_BaseSelectionHandler(d);e.escapedStartPoint=false;e.startDrag=function(f){var g=GetMousePosition(f),h=nodeBounds(b.firstCell_),j=nodeBounds(forid(a+DP_DatePicker$LAST_DAY_OF_WEEK[b.numWeeks_]));if(g.x<h.x||g.x>=j.x+j.w||g.y<h.y||g.y>=j.y+j.h)return false;this.startPoint=g.clone();
this.startEvent=f;var i=forid(a+"lasso");if(!i){i=GLOBAL_document[$$PROP_createElement]("div");i.id=a+"lasso";SETPROP_position(i[$$PROP_style],"absolute");SETPROP_display(i[$$PROP_style],"none");GLOBAL_document[$$PROP_body][$$PROP_appendChild](i)}dd_dragType=5;dd_axisMask=3;dd_dragElement=i;return true};e.handleDragSegment=function(f,g){if(!this.escapedStartPoint){var h=Distance(this.startPoint,GetMousePosition(f));if(h>5){this.escapedStartPoint=true;b.startDrag[$$PROP_call](b,this.startEvent,g)}else return true}b.handleDragSegment[$$PROP_apply](b,
arguments);return true};e.finishDrag=function(){if(this.escapedStartPoint)b.finishDrag[$$PROP_apply](b,arguments);else if(this.startPoint){var f=b.eventToCell(this.startEvent).id;b.cellClicked_[$$PROP_call](b,f)}return true};return e}else return undefined})}};DP_DatePicker[$$PROP_prototype].log=function(){this.loggers_.fireEvent(arguments)};DP_DatePicker[$$PROP_prototype].getDiv=function(){return this.div_};function DateSet(){this.dates_={};this.size_=0}JSCompiler_extractPrototype=DateSet[$$PROP_prototype];
JSCompiler_extractPrototype.getSize=function(){return this.size_};JSCompiler_extractPrototype.add=function(a){var b=this.validateInput_(a);if(b in this.dates_)return false;this.dates_[b]=a.toDate();++this.size_;return true};JSCompiler_extractPrototype.remove=function(a){var b=this.validateInput_(a);if(!(b in this.dates_))return false;delete this.dates_[b];--this.size_;return true};JSCompiler_extractPrototype.clear=function(){this.dates_={};this.size_=0};
JSCompiler_extractPrototype.contains=function(a){var b=this.validateInput_(a);return b in this.dates_};JSCompiler_extractPrototype.asArray=function(){var a=new Array(this.getSize()),b=-1;for(var c in this.dates_)a[++b]=this.dates_[c];return a};JSCompiler_extractPrototype.validateInput_=function(a){AssertTrue(a instanceof ICAL_Date||a instanceof ICAL_DateTime,"expected a date or datetime: "+a);return a[$$PROP_toString]()[$$PROP_substr](0,9)};
function ListenerList(a){this.receiver_=a;this.listeners_=[]}ListenerList[$$PROP_prototype].add=function(a){AssertType(a,GLOBAL_Function);if(!a)return false;var b=0;for(;b<this.listeners_[$$PROP_length];++b)if(a===this.listeners_[b])return false;this.listeners_[$$PROP_push](a);return true};ListenerList[$$PROP_prototype].remove=function(a){if(!a)return false;var b=0;for(;b<this.listeners_[$$PROP_length];++b)if(a===this.listeners_[b]){this.listeners_[$$PROP_splice](b,1);return true}return false};
ListenerList[$$PROP_prototype].fireEvent=function(){var a=0;for(;a<this.listeners_[$$PROP_length];++a)this.listeners_[a][$$PROP_apply](this.receiver_,arguments)};ListenerList[$$PROP_prototype].getSize=function(){return this.listeners_[$$PROP_length]};function ListenerList_Iterator(a){this.list_=a;this.index_=0;this.current_=null}
ListenerList_Iterator[$$PROP_prototype].remove=function(){if(!this.current_)throw new Error("no current element!");this.list_[$$PROP_remove](this.current_);this.current_=null;--this.index_};var comboBoxIframe=null;
function CB_ComboBox(a,b){AssertType(a,GLOBAL_String);AssertType(b,GLOBAL_Function);if(BR_IsIE()&&comboBoxIframe==null){comboBoxIframe=CreateIFRAME(window,"CB_Iframe","javascript:false");SETPROP_position(comboBoxIframe[$$PROP_style],"absolute");SETPROP_display(comboBoxIframe[$$PROP_parentNode][$$PROP_style],"none")}this.inputId_=a;var c=this.getInput();listen(c,"keydown",CB_ComboBox_createKeyDownListener_(this));this.setGenOptionsFn(b);this.presentValueFn_=null;this.divId_=this.inputId_+"_combobox";
CreateDIV(window,this.inputId_+"_combobox");var d=this.getDropDown();SETPROP_className(d,"CB_menu");this.maxRows_=6;this.rowHeight_=this.values_=this.width_=null;this.selectedIndex_=-1;this.isVisible_=false;listen(d,"mousemove",CB_ComboBox_createDropDownMouseMoveHandler_(this));listen(d,"click",CB_ComboBox_createDropDownClickHandler_(this));listen(c,"focus",CB_ComboBox_createInputFocusHandler_(this));listen(c,"blur",CB_ComboBox_createInputBlurHandler_(this));SETPROP_display(d[$$PROP_style],"none");
SETPROP_position(d[$$PROP_style],"absolute");d[$$PROP_style].overflow="auto"}CB_ComboBox[$$PROP_prototype].isVisible=function(){return this.isVisible_};function CB_ComboBox_createKeyDownListener_(a){return function(b){if(!!a.isVisible()){b=b||window[$$PROP_event];var c=GetKeyCode(b);if(c==38||c==40){var d=a.selectedIndex_;d+=c==38?-1:1;d<0||d>=a.values_[$$PROP_length]||a.select(d,true)}else if(c==13){CB_ComboBox_staticUpdateInputValue(a);var e=a.getInput();e.onchange(e);a.hide()}}}}
CB_ComboBox[$$PROP_prototype].getInput=function(){return forid(this.inputId_)};CB_ComboBox[$$PROP_prototype].getDropDown=function(){return forid(this.divId_)};CB_ComboBox[$$PROP_prototype].setGenOptionsFn=function(a){this.genOptionsFn_=a};function CB_ComboBox_createInputFocusHandler_(a){return function(){a.show()}}
function CB_ComboBox_createInputBlurHandler_(a){return function(b){b=b||window[$$PROP_event];var c=false;if(BR_IsIE()){var d=nodeBounds(a.getDropDown());c=d[$$PROP_contains](GetMousePosition(b))}else{var e=b.explicitOriginalTarget;c=IsDescendant(a.getDropDown(),e)}c||a.hide()}}function CB_ComboBox_createDropDownMouseMoveHandler_(a){return function(b){var c=a.getCellAtEvent(b);c?a.select(a.extractIndex(c)):a.deselect_(a.selectedIndex_)}}
function InvokeHandler(a,b){AssertTrue(a);AssertType(b,GLOBAL_String);var c=a[b];if(c)if(typeof c=="string")eval(c);else typeof c=="function"&&c()}function CB_ComboBox_staticUpdateInputValue(a){if(!(a.selectedIndex_<0)){var b=a.getCellId_(a.selectedIndex_),c=forid(b).innerHTML;c=HtmlUnescape(c);var d=a.getPresentValueFn();if(d)c=d[$$PROP_call](null,c,a.selectedIndex_);a.getInput().value=c}}
function CB_ComboBox_createDropDownClickHandler_(a){return function(){CB_ComboBox_staticUpdateInputValue(a);InvokeHandler(a.getInput(),"onchange");a.hide()}}JSCompiler_extractPrototype=CB_ComboBox[$$PROP_prototype];JSCompiler_extractPrototype.getPresentValueFn=function(){return this.presentValueFn_};JSCompiler_extractPrototype.getCellId_=function(a){return this.divId_+"_"+a};JSCompiler_extractPrototype.extractIndex=function(a){return GLOBAL_parseInt(a.id[$$PROP_match](/_(\d+)$/)[1],10)};
JSCompiler_extractPrototype.getCellAtEvent=function(a){a=a||window[$$PROP_event];var b=GetMousePosition(a),c=this.getDropDown();if(!nodeBounds(c)[$$PROP_contains](b))return null;b.y+=c[$$PROP_scrollTop];var d=0;for(;d<this.values_[$$PROP_length];++d){var e=forid(this.getCellId_(d));if(nodeBounds(e)[$$PROP_contains](b))return e}return null};
JSCompiler_extractPrototype.setValues_=function(a){this.deselect_(this.selectedIndex_);this.values_=new Array(a[$$PROP_length]);var b="<div>",c=0;for(;c<this.values_[$$PROP_length];++c){b+='<div id="'+this.getCellId_(c)+'" class="CB_option">'+HtmlEscape(a[c])+"</div>";this.values_[c]=a[c][$$PROP_toString]()}b+="</div>";SETPROP_innerHTML(this.getDropDown(),b)};
JSCompiler_extractPrototype.show=function(){if(!this.isVisible_){var a=this.genOptionsFn_[$$PROP_call](null,this);AssertType(a,Array);AssertEquals(2,a[$$PROP_length]);var b=a[0],c=a[1];this.setValues_(b);var d=forid(this.inputId_),e=nodeBounds(d),f=this.getDropDown(),g=e.y+e.h;f[$$PROP_style].top=g+"px";if(this.width_){SETPROP_left(f[$$PROP_style],e.x+"px");SETPROP_width(f[$$PROP_style],this.width_+"px")}else{SETPROP_left(f[$$PROP_style],e.x+"px");SETPROP_width(f[$$PROP_style],e.w+"px")}SETPROP_display(f[$$PROP_style],
"block");var h=this.getCellId_(0);this.rowHeight_=h?nodeBounds(forid(h)).h:0;var j=GLOBAL_Math.min(this.values_[$$PROP_length],this.maxRows_);SETPROP_height(f[$$PROP_style],j*this.rowHeight_+"px");SETPROP_zIndex(f[$$PROP_style],d[$$PROP_style][$$PROP_zIndex]+2);this.isVisible_=true;if(BR_IsNav()){this.offsets_=new Array(this.values_[$$PROP_length]);this.offsets_[0]=0;var i=forid(this.getCellId_(0)),l=1;for(;l<this.offsets_[$$PROP_length];++l){i=i[$$PROP_nextSibling];var r=nodeLoc(i);this.offsets_[l]=
r.y-g}}if(comboBoxIframe){var n=nodeBounds(f);SETPROP_display(comboBoxIframe[$$PROP_parentNode][$$PROP_style],"");SETPROP_left(comboBoxIframe[$$PROP_style],n.x+"px");comboBoxIframe[$$PROP_style].top=n.y+"px";SETPROP_width(comboBoxIframe[$$PROP_style],n.w+"px");SETPROP_height(comboBoxIframe[$$PROP_style],n.h+"px");SETPROP_zIndex(comboBoxIframe[$$PROP_style],d[$$PROP_style][$$PROP_zIndex]+1);SETPROP_display(comboBoxIframe[$$PROP_style],"block")}this.select(c,true);PC_addPopup(this)}};
JSCompiler_extractPrototype.hide=function(){SETPROP_display(this.getDropDown()[$$PROP_style],"none");this.isVisible_=false;if(comboBoxIframe)SETPROP_display(comboBoxIframe[$$PROP_parentNode][$$PROP_style],"none")};
JSCompiler_extractPrototype.select=function(a,b){if(!(a==this.selectedIndex_)){if(b){var c;c=BR_IsNav()?this.offsets_[a]:this.rowHeight_*a;var d=this.getDropDown();if(d[$$PROP_scrollTop]!=c)d.scrollTop=c}this.selectedIndex_>=0&&this.deselect_(this.selectedIndex_);this.selectedIndex_=a;var e=forid(this.getCellId_(a));AddClass(e,"CB_selected")}};JSCompiler_extractPrototype.deselect_=function(a){if(!(a<0)){this.selectedIndex_=-1;var b=forid(this.getCellId_(a));RemoveClass(b,"CB_selected")}};
JSCompiler_extractPrototype.deactivate=function(a){if(this.isVisible_){var b=GetMousePosition(a);if(nodeBounds(this.getDropDown())[$$PROP_contains](b)||nodeBounds(forid(this.inputId_))[$$PROP_contains](b))return false;else{this.hide();return true}}else return true};var defaultDateFormat="MMM dd, yyyy",zIndexForDropdowns=1;function setDefaultDateFormat(a){defaultDateFormat=a}function setZIndexForDropdowns(a){zIndexForDropdowns=a}function LDP_PrefersMonthBeforeDate(){return checkCharOrder(defaultDateFormat,"M","d")}function checkCharOrder(a,b,c){var d=0;for(;d<a[$$PROP_length];){if(a[$$PROP_charAt](d)==b)return true;else if(a[$$PROP_charAt](d)==c)return false;d++}return true}
function formatDate(a,b){b=b+"";var c="",d=0,e="",f="",g=a[$$PROP_year]+"",h=a[$$PROP_month],j=a[$$PROP_date],i={};if(g[$$PROP_length]<4)g=""+(g-0+1900);i.y=""+g;i.yyyy=g;i.yy=g[$$PROP_substring](2,4);i.M=h;i.MM=(h<0||h>9?"":"0")+h;i.MMM=MONTHS[h];i.d=j;i.dd=(j<0||j>9?"":"0")+j;for(;d<b[$$PROP_length];){e=b[$$PROP_charAt](d);f="";for(;b[$$PROP_charAt](d)==e&&d<b[$$PROP_length];)f+=b[$$PROP_charAt](d++);c=i[f]!=null?c+i[f]:c+f}return c}
function googleDateToString(a){var b=defaultDateFormat,c=formatDate(a,b);return c}
function parseInputDate(a){var b=defaultDateFormat[$$PROP_toLowerCase]();if(b[$$PROP_indexOf]("yyyy")<0){var c;c=a[$$PROP_replace](/^\s+/,"")[$$PROP_replace](/\s+$/,"")[$$PROP_replace](/([0-9]+)([a-zA-Z]+)/g,"$1 $2")[$$PROP_replace](/([a-zA-Z])([0-9])/g,"$1 $2");var d=c[$$PROP_split](/\b|_/),e=1;if(b[$$PROP_substring](0,1)=="y")e=0;else if(b[$$PROP_substring](b[$$PROP_length]-1)=="y")e=d[$$PROP_length]-1;else{var f=1,g=d[$$PROP_length]-1;for(;f<g;f++)if(d[f][$$PROP_match](/^[0-9]{1,2}$/)){e=f;break}}if(e<
d[$$PROP_length]&&d[e][$$PROP_match](/^[0-9]{1,2}$/)){var h=GLOBAL_parseInt(d[e],10);d[e]=(h<50?"20":"19")+d[e];a="";var f=0,g=d[$$PROP_length];for(;f<g;f++)a+=d[f]+" "}}var j=LDP_ParseInputDate(a);if(j)j=j.confidence>-2?j[$$PROP_date]:null;return j}
function syncDateFields(a){var b=parseInputDate(a.value);if(b){var c=a.form,d=c.elements,e=a[$$PROP_name];e=e[$$PROP_substring](0,e[$$PROP_indexOf]("dateField"));var f;if(f=d[e+"day"])SETPROP_selectedIndex(f,b[$$PROP_date]-1);if(f=d[e+"month"])SETPROP_selectedIndex(f,b[$$PROP_month]-1);if(f=d[e+"quarter"])SETPROP_selectedIndex(f,(b[$$PROP_month]-1)/3);if(f=d[e+"year"])if(f.options){var g=f.options,h=0,j=g[$$PROP_length];for(;h<j;h++)if(g[h].value==b[$$PROP_year]){SETPROP_selectedIndex(f,h);break}}else f.value=
b[$$PROP_year]}}var datepickerIframe=null;function DP_prevMonthHtmlFn(){return function(){return"&laquo;"}}function DP_curMonthNarrowHtmlFn(a){return function(b){return DP_formatMonthYearString(a.getMonths()[b[$$PROP_month]],b[$$PROP_year])}}function DP_formatMonthYearString(a,b){return checkCharOrder(defaultDateFormat,"M","y")?a+" "+b:b+" "+a}function DP_nextMonthHtmlFn(){return function(){return"&raquo;"}}var input2DatePickerMap={},datePickerRegistrations={};
function registerDatePickerInput(a){datePickerRegistrations[a]=1}function addDatePickersToInputs(){for(var a in datePickerRegistrations)addDatePickerToInput(a)}
function addDatePickerToInput(a){if(BR_IsIE()&&datepickerIframe==null){datepickerIframe=CreateIFRAME(window,"DP_Iframe","javascript:false");SETPROP_display(datepickerIframe[$$PROP_parentNode][$$PROP_style],"none");SETPROP_position(datepickerIframe[$$PROP_style],"absolute")}var b,c;if(input2DatePickerMap[a]){b=input2DatePickerMap[a];c=b.getDiv()}else{c=GLOBAL_document[$$PROP_createElement]("div");c.id=a+"dp_div";SETPROP_position(c[$$PROP_style],"absolute");SETPROP_display(c[$$PROP_style],"none");SETPROP_width(c[$$PROP_style],
"10em");GLOBAL_document[$$PROP_body][$$PROP_appendChild](c);b=new DP_DatePicker(c,false,undefined,"DP_popup_");b.setSelectionMode(0);b.setPrevMonthHtmlFn(DP_prevMonthHtmlFn(b));b.setCurMonthHtmlFn(DP_curMonthNarrowHtmlFn(b));b.setNextMonthHtmlFn(DP_nextMonthHtmlFn(b));b.setUseDayHeaders(true);b.setFirstDayOfWeek(tu_getPreferredStartDayOfWeek());input2DatePickerMap[a]=b;b.addSelectionListener(fillInputWithPickerSelection(b,a));b.deactivate=function(f){if(!b.isVisible())return true;var g=nodeBounds(b.getTableNode()),
h=GetMousePosition(f);if(!g[$$PROP_contains](h)){b.hide();if(datepickerIframe)SETPROP_display(datepickerIframe[$$PROP_parentNode][$$PROP_style],"none");return true}return false}}var d=inputFocusListener(c.id,a,b),e=forid(a);listen(e,"focus",d,false);listen(e,"click",d,false);listen(e,"blur",inputBlurListener(b),false);listen(e,"keydown",inputKeyListener(b,a),false);if(BR_IsSafari()){listen(e,"keyup",inputKeyListener(b,a),false);listen(c,"mousedown",divMouseDownListener(b),false);listen(c,"mouseup",
divMouseUpListener(b),false);b.keydown_=0;b.isDownInDiv=false}return b}function divMouseDownListener(a){return function(){a.isDownInDiv=true}}function divMouseUpListener(a){return function(){a.isDownInDiv=false}}
function inputFocusListener(a,b,c){return function(){var d=forid(b),e=nodeBounds(d),f=forid(a),g=10,h=5;SETPROP_left(f[$$PROP_style],e.x-g+"px");f[$$PROP_style].top=e.y+e.h-h+"px";SETPROP_className(f,"DP_popup_div");SETPROP_display(f[$$PROP_style],"");var j=d[$$PROP_currentStyle]?d[$$PROP_currentStyle]:d[$$PROP_ownerDocument].defaultView.getComputedStyle(d,"");SETPROP_zIndex(f[$$PROP_style],typeof j[$$PROP_zIndex]=="number"?j[$$PROP_zIndex]+zIndexForDropdowns:GLOBAL_isNaN(j[$$PROP_zIndex])?zIndexForDropdowns:
GLOBAL_parseInt(j[$$PROP_zIndex],10)+zIndexForDropdowns);c.show();if(datepickerIframe){var i=nodeBounds(c.getTableNode());SETPROP_display(datepickerIframe[$$PROP_parentNode][$$PROP_style],"");SETPROP_left(datepickerIframe[$$PROP_style],i.x+"px");datepickerIframe[$$PROP_style].top=i.y+"px";SETPROP_width(datepickerIframe[$$PROP_style],i.w+"px");SETPROP_height(datepickerIframe[$$PROP_style],i.h+"px");SETPROP_zIndex(datepickerIframe[$$PROP_style],f[$$PROP_style][$$PROP_zIndex]-1);SETPROP_display(datepickerIframe[$$PROP_style],
"")}var l=parseInputDate(d.value);l&&c.setSelection(l,l,false);PC_addPopup(c);return true}}
function inputBlurListener(a){return function(b){if(!a.isVisible())return true;var b=b||window[$$PROP_event],c;if(BR_IsIE()){var d=nodeBounds(a.getTableNode());c=d[$$PROP_contains](GetMousePosition(b))}else if(BR_IsSafari())c=a.isDownInDiv;else{var e=b.explicitOriginalTarget;c=IsDescendant(a.getTableNode(),e)}if(!c){a.hide();if(datepickerIframe)SETPROP_display(datepickerIframe[$$PROP_parentNode][$$PROP_style],"none")}return true}}
function fillInputWithPickerSelection(a,b){return function(){var c=a.getSelection();if(!!c){var d=forid(b);d.value=googleDateToString(c);a.hide();if(datepickerIframe)SETPROP_display(datepickerIframe[$$PROP_parentNode][$$PROP_style],"none");d.onchange&&d.onchange()}}}
function inputKeyListener(a,b){return function(c){if(!!a.isVisible()){c=c||window[$$PROP_event];var d=GetKeyCode(c);if(d==38||d==40){var e=a.getSelection();if(!!e){var f=d==38?-1:1,g=ical_builderCopy(e);g.date+=f;a.setSelection(g.toDate(),undefined,false)}}else d==13&&window[$$PROP_setTimeout](fillInputWithPickerSelection(a,b),0)}}}goog$exportSymbol(GetFnName(_DP_staticNextMonth),_DP_staticNextMonth);goog$exportSymbol(GetFnName(_DP_staticPrevMonth),_DP_staticPrevMonth);
goog$exportSymbol(GetFnName(_DP_staticCellClicked),_DP_staticCellClicked);goog$exportSymbol("addDatePickerToInput",addDatePickerToInput);goog$exportSymbol("addDatePickersToInputs",addDatePickersToInputs);goog$exportSymbol("input2DatePickerMap",input2DatePickerMap);goog$exportSymbol("parseInputDate",parseInputDate);goog$exportSymbol("registerDatePickerInput",registerDatePickerInput);goog$exportSymbol("setDefaultDateFormat",setDefaultDateFormat);goog$exportSymbol("setZIndexForDropdowns",setZIndexForDropdowns);
goog$exportSymbol("syncDateFields",syncDateFields);goog$exportSymbol("_DD_Install",_DD_Install);goog$exportSymbol("_PC_Install",_PC_Install);goog$exportSymbol("DP_DatePicker",DP_DatePicker);goog$exportProperty(DP_DatePicker[$$PROP_prototype],"setDecoratorInline",DP_DatePicker[$$PROP_prototype].setDecoratorInline);goog$exportProperty(DP_DatePicker[$$PROP_prototype],"showMonth",DP_DatePicker[$$PROP_prototype].showMonth);goog$exportSymbol("ICAL_Duration",ICAL_Duration);
goog$exportProperty(ICAL_Duration[$$PROP_prototype],"getComparable",ICAL_Duration[$$PROP_prototype].getComparable);goog$exportSymbol("ICAL_DurationBetween",ICAL_DurationBetween);goog$exportSymbol("ICAL_getDayOfWeek",ICAL_getDayOfWeek);
 })()
