function jsRequire(r){}if(!window.console||!console.firebug){var names=["log","debug","info","warn","error","assert","dir","dirxml","group","groupEnd","time","timeEnd","count","trace","profile","profileEnd"];if(!window.console)window.console={};for(var i=0;i<names.length;++i)if(!window.console[names[i]])window.console[names[i]]=function(){}}
(function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h=
h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;k<J.length;k++){h=J[k];h.origType.replace(X,"")===a.type?f.push(h.selector):J.splice(k--,1)}f=c(a.target).closest(f,a.currentTarget);o=0;for(x=f.length;o<x;o++){r=f[o];for(k=0;k<J.length;k++){h=J[k];if(r.selector===h.selector&&(!A||A.test(h.namespace))){l=r.elem;e=null;if(h.preType==="mouseenter"||
h.preType==="mouseleave"){a.type=h.preType;e=c(a.relatedTarget).closest(h.selector)[0]}if(!e||e!==l)C.push({elem:l,handleObj:h,level:r.level})}}}o=0;for(x=C.length;o<x;o++){f=C[o];if(d&&f.level>d)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La,
"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this,
e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a,
"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+
a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,
C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j,
s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this,
j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length},
toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j===
-1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false;
if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K<Q;K++)if((j=arguments[K])!=null)for(s in j){v=G[s];z=j[s];if(G!==z)if(ga&&z&&(b.isPlainObject(z)||(H=b.isArray(z)))){if(H){H=false;v=v&&b.isArray(v)?v:[]}else v=v&&b.isPlainObject(v)?v:{};G[s]=b.extend(ga,v,z)}else if(z!==B)G[s]=z}return G};b.extend({noConflict:function(j){E.$=e;if(j)E.jQuery=d;return b},isReady:false,readyWait:1,ready:function(j){j===true&&b.readyWait--;
if(!b.readyWait||j!==true&&!b.isReady){if(!t.body)return setTimeout(b.ready,1);b.isReady=true;if(!(j!==true&&--b.readyWait>0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload",
b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&&
!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&&
l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H<G;){if(s.apply(j[H++],v)===false)break}else if(K)for(z in j){if(s.call(j[z],
z,j[z])===false)break}else for(v=j[0];H<G&&s.call(v,H,v)!==false;v=j[++H]);return j},trim:O?function(j){return j==null?"":O.call(j)}:function(j){return j==null?"":j.toString().replace(k,"").replace(o,"")},makeArray:function(j,s){var v=s||[];if(j!=null){var z=b.type(j);j.length==null||z==="string"||z==="function"||z==="regexp"||b.isWindow(j)?M.call(v,j):b.merge(v,j)}return v},inArray:function(j,s){if(s.indexOf)return s.indexOf(j);for(var v=0,z=s.length;v<z;v++)if(s[v]===j)return v;return-1},merge:function(j,
s){var v=j.length,z=0;if(typeof s.length==="number")for(var H=s.length;z<H;z++)j[v++]=s[z];else for(;s[z]!==B;)j[v++]=s[z++];j.length=v;return j},grep:function(j,s,v){var z=[],H;v=!!v;for(var G=0,K=j.length;G<K;G++){H=!!s(j[G],G);v!==H&&z.push(j[G])}return z},map:function(j,s,v){for(var z=[],H,G=0,K=j.length;G<K;G++){H=s(j[G],G,v);if(H!=null)z[z.length]=H}return z.concat.apply([],z)},guid:1,proxy:function(j,s,v){if(arguments.length===2)if(typeof s==="string"){v=j;j=v[s];s=B}else if(s&&!b.isFunction(s)){v=
s;s=B}if(!s&&j)s=function(){return j.apply(v||this,arguments)};if(j)s.guid=j.guid=j.guid||s.guid||b.guid++;return s},access:function(j,s,v,z,H,G){var K=j.length;if(typeof s==="object"){for(var Q in s)b.access(j,Q,s[Q],z,H,v);return j}if(v!==B){z=!G&&z&&b.isFunction(v);for(Q=0;Q<K;Q++)H(j[Q],s,z?v.call(j[Q],Q,H(j[Q],s)):v,G);return j}return K?H(j[0],s):B},now:function(){return(new Date).getTime()},uaMatch:function(j){j=j.toLowerCase();j=L.exec(j)||g.exec(j)||i.exec(j)||j.indexOf("compatible")<0&&n.exec(j)||
[];return{browser:j[1]||"",version:j[2]||"0"}},browser:{}});b.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(j,s){R["[object "+s+"]"]=s.toLowerCase()});m=b.uaMatch(m);if(m.browser){b.browser[m.browser]=true;b.browser.version=m.version}if(b.browser.webkit)b.browser.safari=true;if(D)b.inArray=function(j,s){return D.call(s,j)};if(!/\s/.test("\u00a0")){k=/^[\s\xA0]+/;o=/[\s\xA0]+$/}f=b(t);if(t.addEventListener)u=function(){t.removeEventListener("DOMContentLoaded",u,
false);b.ready()};else if(t.attachEvent)u=function(){if(t.readyState==="complete"){t.detachEvent("onreadystatechange",u);b.ready()}};return E.jQuery=E.$=b}();(function(){c.support={};var a=t.documentElement,b=t.createElement("script"),d=t.createElement("div"),e="script"+c.now();d.style.display="none";d.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"),
k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false,
scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent=
false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom=
1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="<div style='width:4px;'></div>";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display=
"none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h=
c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando);
else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h<l;h++){f=e[h].name;if(f.indexOf("data-")===0){f=f.substr(5);ka(this[0],f,d[f])}}}return d}else if(typeof a==="object")return this.each(function(){c.data(this,
a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(b===B){d=this.triggerHandler("getData"+k[1]+"!",[k[0]]);if(d===B&&this.length){d=c.data(this[0],a);d=ka(this[0],a,d)}return d===B&&k[1]?this.data(k[0]):d}else return this.each(function(){var o=c(this),x=[k[0],b];o.triggerHandler("setData"+k[1]+"!",x);c.data(this,a,b);o.triggerHandler("changeData"+k[1]+"!",x)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var e=
c.data(a,b);if(!d)return e||[];if(!e||c.isArray(d))e=c.data(a,b,c.makeArray(d));else e.push(d);return e}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),e=d.shift();if(e==="inprogress")e=d.shift();if(e){b==="fx"&&d.unshift("inprogress");e.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===B)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,
a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var sa=/[\n\t]/g,ha=/\s+/,Sa=/\r/g,Ta=/^(?:href|src|style)$/,Ua=/^(?:button|input)$/i,Va=/^(?:button|input|object|select|textarea)$/i,Wa=/^a(?:rea)?$/i,ta=/^(?:radio|checkbox)$/i;c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",
colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};c.fn.extend({attr:function(a,b){return c.access(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(x){var r=c(this);r.addClass(a.call(this,x,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===
1)if(f.className){for(var h=" "+f.className+" ",l=f.className,k=0,o=b.length;k<o;k++)if(h.indexOf(" "+b[k]+" ")<0)l+=" "+b[k];f.className=c.trim(l)}else f.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var x=c(this);x.removeClass(a.call(this,o,x.attr("class")))});if(a&&typeof a==="string"||a===B)for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===1&&f.className)if(a){for(var h=(" "+f.className+" ").replace(sa," "),
l=0,k=b.length;l<k;l++)h=h.replace(" "+b[l]+" "," ");f.className=c.trim(h)}else f.className=""}return this},toggleClass:function(a,b){var d=typeof a,e=typeof b==="boolean";if(c.isFunction(a))return this.each(function(f){var h=c(this);h.toggleClass(a.call(this,f,h.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var f,h=0,l=c(this),k=b,o=a.split(ha);f=o[h++];){k=e?k:!l.hasClass(f);l[k?"addClass":"removeClass"](f)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,
"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(sa," ").indexOf(a)>-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one";
if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h<e;h++){var l=f[h];if(l.selected&&(c.support.optDisabled?!l.disabled:l.getAttribute("disabled")===null)&&(!l.parentNode.disabled||!c.nodeName(l.parentNode,"optgroup"))){a=c(l).val();if(b)return a;d.push(a)}}return d}if(ta.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Sa,"")}return B}var k=c.isFunction(a);return this.each(function(o){var x=c(this),r=a;if(this.nodeType===1){if(k)r=
a.call(this,o,x.val());if(r==null)r="";else if(typeof r==="number")r+="";else if(c.isArray(r))r=c.map(r,function(C){return C==null?"":C+""});if(c.isArray(r)&&ta.test(this.type))this.checked=c.inArray(x.val(),r)>=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},
attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&
b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0};
c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,
arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid=
d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+
c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h<A.length;h++){C=A[h];if(d.guid===C.guid){if(k||x.test(C.namespace)){e==null&&A.splice(h--,1);r.remove&&r.remove.call(a,C)}if(e!=null)break}}if(A.length===0||e!=null&&A.length===1){if(!r.teardown||r.teardown.call(a,o)===false)c.removeEvent(a,f,w.handle);delete I[f]}}else for(h=0;h<A.length;h++){C=A[h];if(k||x.test(C.namespace)){c.event.remove(a,r,C.handler,h);A.splice(h--,1)}}}if(c.isEmptyObject(I)){if(b=
w.handle)b.elem=null;delete w.events;delete w.handle;if(typeof w==="function")c.removeData(a,J);else c.isEmptyObject(w)&&c.removeData(a)}}}}},trigger:function(a,b,d,e){var f=a.type||a;if(!e){a=typeof a==="object"?a[c.expando]?a:c.extend(c.Event(f),a):c.Event(f);if(f.indexOf("!")>=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===
8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k===
"click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+
d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f<l;f++){var k=d[f];if(b||e.test(k.namespace)){a.handler=k.handler;a.data=k.data;a.handleObj=k;k=k.handler.apply(this,h);if(k!==B){a.result=k;if(k===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
fix:function(a){if(a[c.expando])return a;var b=a;a=c.Event(b);for(var d=this.props.length,e;d;){e=this.props[--d];a[e]=b[e]}if(!a.target)a.target=a.srcElement||t;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=t.documentElement;d=t.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(a.which==null&&(a.charCode!=null||a.keyCode!=null))a.which=a.charCode!=null?a.charCode:a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==B)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,Y(a.origType,a.selector),c.extend({},a,{handler:Ka,guid:a.handler.guid}))},remove:function(a){c.event.remove(this,
Y(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,d){if(c.isWindow(this))this.onbeforeunload=d},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.removeEvent=t.removeEventListener?function(a,b,d){a.removeEventListener&&a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent&&a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=
c.now();this[c.expando]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=ca;var a=this.originalEvent;if(a)if(a.preventDefault)a.preventDefault();else a.returnValue=false},stopPropagation:function(){this.isPropagationStopped=ca;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ca;this.stopPropagation()},isDefaultPrevented:U,isPropagationStopped:U,isImmediatePropagationStopped:U};
var va=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},wa=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?wa:va,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?wa:va)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(){if(this.nodeName.toLowerCase()!==
"form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length){a.liveFired=B;return la("submit",this,arguments)}});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13){a.liveFired=B;return la("submit",this,arguments)}})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};if(!c.support.changeBubbles){var V,
xa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired=
B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type===
"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]===
0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h<k;h++)c.event.add(this[h],d,l,e)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&!a.preventDefault)for(var d in a)this.unbind(d,
a[d]);else{d=0;for(var e=this.length;d<e;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,e){return this.live(b,d,e,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var d=c.Event(a);d.preventDefault();d.stopPropagation();c.event.trigger(d,b,this[0]);return d.result}},toggle:function(a){for(var b=arguments,d=
1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(e){var f=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,f+1);e.preventDefault();return b[f].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var ya={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,e,f,h){var l,k=0,o,x,r=h||this.selector;h=h?this:c(this.context);if(typeof d===
"object"&&!d.preventDefault){for(l in d)h[b](l,e,d[l],r);return this}if(c.isFunction(e)){f=e;e=B}for(d=(d||"").split(" ");(l=d[k++])!=null;){o=X.exec(l);x="";if(o){x=o[0];l=l.replace(X,"")}if(l==="hover")d.push("mouseenter"+x,"mouseleave"+x);else{o=l;if(l==="focus"||l==="blur"){d.push(ya[l]+x);l+=x}else l=(ya[l]||l)+x;if(b==="live"){x=0;for(var A=h.length;x<A;x++)c.event.add(h[x],"live."+Y(l,r),{data:e,selector:r,handler:f,origType:l,origHandler:f,preType:o})}else h.unbind("live."+Y(l,r),f)}}return this}});
c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d,e){if(e==null){e=d;d=null}return arguments.length>0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});
(function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1&&!q){y.sizcache=n;y.sizset=p}if(y.nodeName.toLowerCase()===i){F=y;break}y=y[g]}m[p]=F}}}function b(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1){if(!q){y.sizcache=n;y.sizset=p}if(typeof i!=="string"){if(y===i){F=true;break}}else if(k.filter(i,
[y]).length>0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3];
break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr,
q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h=
l;g.sort(w);if(h)for(var i=1;i<g.length;i++)g[i]===g[i-1]&&g.splice(i--,1)}return g};k.matches=function(g,i){return k(g,null,null,i)};k.matchesSelector=function(g,i){return k(i,null,null,[g]).length>0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p<q;p++){var u,y=o.order[p];if(u=o.leftMatch[y].exec(g)){var F=u[1];u.splice(1,1);if(F.substr(F.length-1)!=="\\"){u[1]=(u[1]||"").replace(/\\/g,"");m=o.find[y](u,i,n);if(m!=null){g=g.replace(o.match[y],"");break}}}}m||(m=i.getElementsByTagName("*"));
return{set:m,expr:g}};k.filter=function(g,i,n,m){for(var p,q,u=g,y=[],F=i,M=i&&i[0]&&k.isXML(i[0]);g&&i.length;){for(var N in o.filter)if((p=o.leftMatch[N].exec(g))!=null&&p[2]){var O,D,R=o.filter[N];D=p[1];q=false;p.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(F===y)y=[];if(o.preFilter[N])if(p=o.preFilter[N](p,F,n,y,m,M)){if(p===true)continue}else q=O=true;if(p)for(var j=0;(D=F[j])!=null;j++)if(D){O=R(D,p,j,F);var s=m^!!O;if(n&&O!=null)if(s)q=true;else F[j]=false;else if(s){y.push(D);q=true}}if(O!==
B){n||(F=y);g=g.replace(o.match[N],"");if(!q)return[];break}}}if(g===u)if(q==null)k.error(g);else break;u=g}return F};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var o=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,
POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,i){var n=typeof i==="string",m=n&&!/\W/.test(i);n=n&&!m;if(m)i=i.toLowerCase();m=0;for(var p=g.length,q;m<p;m++)if(q=g[m]){for(;(q=q.previousSibling)&&q.nodeType!==1;);g[m]=n||q&&q.nodeName.toLowerCase()===
i?q||false:q===i}n&&k.filter(i,g,true)},">":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p<q;p++){if(n=g[p]){n=n.parentNode;g[p]=n.nodeName.toLowerCase()===i?n:false}}else{for(;p<q;p++)if(n=g[p])g[p]=m?n.parentNode:n.parentNode===i;m&&k.filter(i,g,true)}},"":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=i=i.toLowerCase();q=a}q("parentNode",i,p,g,m,n)},"~":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=
i=i.toLowerCase();q=a}q("previousSibling",i,p,g,m,n)}},find:{ID:function(g,i,n){if(typeof i.getElementById!=="undefined"&&!n)return(g=i.getElementById(g[1]))&&g.parentNode?[g]:[]},NAME:function(g,i){if(typeof i.getElementsByName!=="undefined"){for(var n=[],m=i.getElementsByName(g[1]),p=0,q=m.length;p<q;p++)m[p].getAttribute("name")===g[1]&&n.push(m[p]);return n.length===0?null:n}},TAG:function(g,i){return i.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,i,n,m,p,q){g=" "+g[1].replace(/\\/g,
"")+" ";if(q)return g;q=0;for(var u;(u=i[q])!=null;q++)if(u)if(p^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n,
m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===
true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===
g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return i<n[3]-0},gt:function(g,i,n){return i>n[3]-0},nth:function(g,i,n){return n[3]-
0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n<m;n++)if(i[n]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+p)},CHILD:function(g,i){var n=i[1],m=g;switch(n){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(n===
"first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":n=i[2];var p=i[3];if(n===1&&p===0)return true;var q=i[0],u=g.parentNode;if(u&&(u.sizcache!==q||!g.nodeIndex)){var y=0;for(m=u.firstChild;m;m=m.nextSibling)if(m.nodeType===1)m.nodeIndex=++y;u.sizcache=q}m=g.nodeIndex-p;return n===0?m===0:m%n===0&&m/n>=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===
i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]];
if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m,
g);else if(typeof g.length==="number")for(var p=g.length;n<p;n++)m.push(g[n]);else for(;g[n];n++)m.push(g[n]);return m}}var w,I;if(t.documentElement.compareDocumentPosition)w=function(g,i){if(g===i){h=true;return 0}if(!g.compareDocumentPosition||!i.compareDocumentPosition)return g.compareDocumentPosition?-1:1;return g.compareDocumentPosition(i)&4?-1:1};else{w=function(g,i){var n,m,p=[],q=[];n=g.parentNode;m=i.parentNode;var u=n;if(g===i){h=true;return 0}else if(n===m)return I(g,i);else if(n){if(!m)return 1}else return-1;
for(;u;){p.unshift(u);u=u.parentNode}for(u=m;u;){q.unshift(u);u=u.parentNode}n=p.length;m=q.length;for(u=0;u<n&&u<m;u++)if(p[u]!==q[u])return I(p[u],q[u]);return u===n?I(g,q[u],-1):I(p[u],i,1)};I=function(g,i,n){if(g===i)return n;for(g=g.nextSibling;g;){if(g===i)return-1;g=g.nextSibling}return 1}}k.getText=function(g){for(var i="",n,m=0;g[m];m++){n=g[m];if(n.nodeType===3||n.nodeType===4)i+=n.nodeValue;else if(n.nodeType!==8)i+=k.getText(n.childNodes)}return i};(function(){var g=t.createElement("div"),
i="script"+(new Date).getTime(),n=t.documentElement;g.innerHTML="<a name='"+i+"'/>";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g);
n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&&
function(){var g=k,i=t.createElement("div");i.innerHTML="<p class='TEST'></p>";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F||
p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g=
t.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition?
function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n<u;n++)k(g,q[n],m);return k.filter(p,m)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=k.getText;c.isXMLDoc=k.isXML;
c.contains=k.contains})();var Za=/Until$/,$a=/^(?:parents|prevUntil|prevAll)/,ab=/,/,Na=/^.[^:#\[\.,]*$/,bb=Array.prototype.slice,cb=c.expr.match.POS;c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,e=0,f=this.length;e<f;e++){d=b.length;c.find(a,this[e],b);if(e>0)for(var h=d;h<b.length;h++)for(var l=0;l<d;l++)if(b[l]===b[h]){b.splice(h--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,e=b.length;d<e;d++)if(c.contains(this,b[d]))return true})},
not:function(a){return this.pushStack(ma(this,a,false),"not",a)},filter:function(a){return this.pushStack(ma(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e<f;e++){l=a[e];k[l]||(k[l]=c.expr.match.POS.test(l)?c(l,b||this.context):l)}for(;h&&h.ownerDocument&&h!==b;){for(l in k){e=k[l];if(e.jquery?e.index(h)>-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h=
h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e<f;e++)for(h=this[e];h;)if(l?l.index(h)>-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context):
c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,
2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,
b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&
e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/<tbody/i,eb=/<|&#?\w+;/,Ca=/<(?:script|object|embed|option|style)/i,Da=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/\=([^="'>\s]+\/)>/g,P={option:[1,
"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null;
else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1></$2>");try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(e){this.empty().append(a)}}else c.isFunction(a)?this.each(function(f){var h=c(this);h.html(a.call(this,f,h.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=
c(this),e=d.html();d.replaceWith(a.call(this,b,e))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){var e,f,h,l=a[0],k=[];if(!c.support.checkClone&&arguments.length===3&&typeof l==="string"&&Da.test(l))return this.each(function(){c(this).domManip(a,
b,d,true)});if(c.isFunction(l))return this.each(function(x){var r=c(this);a[0]=l.call(this,x,b?r.html():B);r.domManip(a,b,d)});if(this[0]){e=l&&l.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:c.buildFragment(a,this,k);h=e.fragment;if(f=h.childNodes.length===1?(h=h.firstChild):h.firstChild){b=b&&c.nodeName(f,"tr");f=0;for(var o=this.length;f<o;f++)d.call(b?c.nodeName(this[f],"table")?this[f].getElementsByTagName("tbody")[0]||this[f].appendChild(this[f].ownerDocument.createElement("tbody")):
this[f]:this[f],f>0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append",
prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f<h;f++){var l=(f>0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument||
b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1></$2>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]==="<table>"&&!x?r.childNodes:[];for(o=k.length-
1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script"))));
d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i,
jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true,
zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b),
h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b);
if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f=
d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left;
e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b===
"object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("<div>").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&
!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})},
getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html",
script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data||
!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache=
false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset;
A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type",
b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&&
c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d||
c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]=
encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess",
[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),
e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}});
if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show",
3),a,b,d);else{d=0;for(var e=this.length;d<e;d++){a=this[d];b=a.style.display;if(!c.data(a,"olddisplay")&&b==="none")b=a.style.display="";b===""&&c.css(a,"display")==="none"&&c.data(a,"olddisplay",qa(a.nodeName))}for(d=0;d<e;d++){a=this[d];b=a.style.display;if(b===""||b==="none")a.style.display=c.data(a,"olddisplay")||""}return this}},hide:function(a,b,d){if(a||a===0)return this.animate(S("hide",3),a,b,d);else{a=0;for(b=this.length;a<b;a++){d=c.css(this[a],"display");d!=="none"&&c.data(this[a],"olddisplay",
d)}for(a=0;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b,d){var e=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||e?this.each(function(){var f=e?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(S("toggle",3),a,b,d);return this},fadeTo:function(a,b,d,e){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d,e)},animate:function(a,b,d,e){var f=c.speed(b,
d,e);if(c.isEmptyObject(a))return this.each(f.complete);return this[f.queue===false?"each":"queue"](function(){var h=c.extend({},f),l,k=this.nodeType===1,o=k&&c(this).is(":hidden"),x=this;for(l in a){var r=c.camelCase(l);if(l!==r){a[r]=a[l];delete a[l];l=r}if(a[l]==="hide"&&o||a[l]==="show"&&!o)return h.complete.call(this);if(k&&(l==="height"||l==="width")){h.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(c.css(this,"display")==="inline"&&c.css(this,"float")==="none")if(c.support.inlineBlockNeedsLayout)if(qa(this.nodeName)===
"inline")this.style.display="inline-block";else{this.style.display="inline";this.style.zoom=1}else this.style.display="inline-block"}if(c.isArray(a[l])){(h.specialEasing=h.specialEasing||{})[l]=a[l][1];a[l]=a[l][0]}}if(h.overflow!=null)this.style.overflow="hidden";h.curAnim=c.extend({},a);c.each(a,function(A,C){var J=new c.fx(x,h,A);if(vb.test(C))J[C==="toggle"?o?"show":"hide":C](a);else{var w=wb.exec(C),I=J.cur()||0;if(w){var L=parseFloat(w[2]),g=w[3]||"px";if(g!=="px"){c.style(x,A,(L||1)+g);I=(L||
1)/J.cur()*I;c.style(x,A,I+g)}if(w[1])L=(w[1]==="-="?-1:1)*L+I;J.custom(I,L,g)}else J.custom(I,C,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var e=d.length-1;e>=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b,
d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a*
Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)}
var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;
this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide||
this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=
c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},interval:13,stop:function(){clearInterval(ba);ba=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===
b.elem}).length};var xb=/^t(?:able|d|h)$/i,Ia=/^(?:body|html)$/i;c.fn.offset="getBoundingClientRect"in t.documentElement?function(a){var b=this[0],d;if(a)return this.each(function(l){c.offset.setOffset(this,a,l)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);try{d=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,h=f.documentElement;if(!d||!c.contains(h,b))return d||{top:0,left:0};b=f.body;f=fa(f);return{top:d.top+(f.pageYOffset||c.support.boxModel&&
h.scrollTop||b.scrollTop)-(h.clientTop||b.clientTop||0),left:d.left+(f.pageXOffset||c.support.boxModel&&h.scrollLeft||b.scrollLeft)-(h.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(x){c.offset.setOffset(this,a,x)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d,e=b.offsetParent,f=b.ownerDocument,h=f.documentElement,l=f.body;d=(f=f.defaultView)?f.getComputedStyle(b,null):b.currentStyle;
for(var k=b.offsetTop,o=b.offsetLeft;(b=b.parentNode)&&b!==l&&b!==h;){if(c.offset.supportsFixedPosition&&d.position==="fixed")break;d=f?f.getComputedStyle(b,null):b.currentStyle;k-=b.scrollTop;o-=b.scrollLeft;if(b===e){k+=b.offsetTop;o+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&xb.test(b.nodeName))){k+=parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}e=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"){k+=
parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}d=d}if(d.position==="relative"||d.position==="static"){k+=l.offsetTop;o+=l.offsetLeft}if(c.offset.supportsFixedPosition&&d.position==="fixed"){k+=Math.max(h.scrollTop,l.scrollTop);o+=Math.max(h.scrollLeft,l.scrollLeft)}return{top:k,left:o}};c.offset={initialize:function(){var a=t.body,b=t.createElement("div"),d,e,f,h=parseFloat(c.css(a,"marginTop"))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",
height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);d=b.firstChild;e=d.firstChild;f=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=e.offsetTop!==5;this.doesAddBorderForTableAndCells=
f.offsetTop===5;e.style.position="fixed";e.style.top="20px";this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15;e.style.position=e.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==h;a.removeChild(b);c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.css(a,
"marginTop"))||0;d+=parseFloat(c.css(a,"marginLeft"))||0}return{top:b,left:d}},setOffset:function(a,b,d){var e=c.css(a,"position");if(e==="static")a.style.position="relative";var f=c(a),h=f.offset(),l=c.css(a,"top"),k=c.css(a,"left"),o=e==="absolute"&&c.inArray("auto",[l,k])>-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a,
e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d={top:this.offset().top,left:this.offset().left},e=Ia.test(b[0].nodeName)?{top:0,left:0}:{top:b.offset().top,left:b.offset().left};d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=
this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height",
"Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+
b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window);if(!this.JSON)this.JSON={};
(function(){function f(n){return n<10?"0"+n:n}if(typeof Date.prototype.toJSON!=="function"){Date.prototype.toJSON=function(key){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf()}}var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\u0008":"\\b","\t":"\\t","\n":"\\n","\u000c":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==="string"?c:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+string+'"'}function str(key,holder){var i,
k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==="object"&&typeof value.toJSON==="function")value=value.toJSON(key);if(typeof rep==="function")value=rep.call(holder,key,value);switch(typeof value){case "string":return quote(value);case "number":return isFinite(value)?String(value):"null";case "boolean":case "null":return String(value);case "object":if(!value)return"null";gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==="[object Array]"){length=value.length;
for(i=0;i<length;i+=1)partial[i]=str(i,value)||"null";v=partial.length===0?"[]":gap?"[\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"]":"["+partial.join(",")+"]";gap=mind;return v}if(rep&&typeof rep==="object"){length=rep.length;for(i=0;i<length;i+=1){k=rep[i];if(typeof k==="string"){v=str(k,value);if(v)partial.push(quote(k)+(gap?": ":":")+v)}}}else for(k in value)if(Object.hasOwnProperty.call(value,k)){v=str(k,value);if(v)partial.push(quote(k)+(gap?": ":":")+v)}v=partial.length===0?"{}":gap?"{\n"+gap+
partial.join(",\n"+gap)+"\n"+mind+"}":"{"+partial.join(",")+"}";gap=mind;return v}}if(typeof JSON.stringify!=="function")JSON.stringify=function(value,replacer,space){var i;gap="";indent="";if(typeof space==="number")for(i=0;i<space;i+=1)indent+=" ";else if(typeof space==="string")indent=space;rep=replacer;if(replacer&&typeof replacer!=="function"&&(typeof replacer!=="object"||typeof replacer.length!=="number"))throw new Error("JSON.stringify");return str("",{"":value})};if(typeof JSON.parse!=="function")JSON.parse=
function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==="object")for(k in value)if(Object.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined)value[k]=v;else delete value[k]}return reviver.call(holder,key,value)}cx.lastIndex=0;if(cx.test(text))text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)});if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){j=eval("("+text+")");return typeof reviver==="function"?walk({"":j},""):j}throw new SyntaxError("JSON.parse");}})();jsRequire("scripts/third-party/json2.js");
(function(){var m={"\u0008":"\\b","\t":"\\t","\n":"\\n","\u000c":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},s={array:function(x){var a=["["],b,f,i,l=x.length,v;for(i=0;i<l;i+=1){v=x[i];f=s[typeof v];if(f){v=f(v);if(typeof v=="string"){if(b)a[a.length]=",";a[a.length]=v;b=true}}}a[a.length]="]";return a.join("")},"boolean":function(x){return String(x)},"null":function(x){return"null"},number:function(x){return isFinite(x)?String(x):"null"},object:function(x){if(x){if(x instanceof Array)return s.array(x);
if(x instanceof Date)return'"'+x.dateFormat("Y-m-d H:i:s o")+'"';var a=["{"],b,f,i,v;for(i in x){v=x[i];f=s[typeof v];if(f){v=f(v);if(typeof v=="string"){if(b)a[a.length]=",";a.push(s.string(i),":",v);b=true}}}a[a.length]="}";return a.join("")}return"null"},string:function(x){if(/["\\\x00-\x1f]/.test(x))x=x.replace(/([\x00-\x1f\\"])/g,function(a,b){var c=m[b];if(c)return c;c=b.charCodeAt();return"\\u00"+Math.floor(c/16).toString(16)+(c%16).toString(16)});return'"'+x+'"'}};Object.toJSON=function(obj){return s.object(obj)}})();
String.prototype.parseJSON=function(){try{var json=this.toString();var data=JSON.parse(json);return data}catch(e){}return undefined};Date.parseFunctions={count:0};Date.parseRegexes=[];Date.formatFunctions={count:0};Date.prototype.dateFormat=function(format){if(Date.formatFunctions[format]==null)Date.createNewFormat(format);var func=Date.formatFunctions[format];return this[func]()};
Date.createNewFormat=function(format){var funcName="format"+Date.formatFunctions.count++;Date.formatFunctions[format]=funcName;var code="Date.prototype."+funcName+" = function(){return ";var special=false;var ch="";for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\")special=true;else if(special){special=false;code+="'"+escapeStr(ch)+"' + "}else code+=Date.getFormatCode(ch)}eval(code.substring(0,code.length-3)+";}")};
Date.getFormatCode=function(character){switch(character){case "a":return"(this.getHours() < 12 ? 'am' : 'pm') + ";case "A":return"(this.getHours() < 12 ? 'AM' : 'PM') + ";case "b":return"(this.getHours() < 12 ? 'a' : 'p') + ";case "d":return"leftPadStr(this.getDate(), 2, '0') + ";case "D":return"Date.dayNames[this.getDay()].substring(0, 3) + ";case "F":return"Date.monthNames[this.getMonth()] + ";case "g":return"((this.getHours() %12) ? this.getHours() % 12 : 12) + ";case "G":return"this.getHours() + ";
case "h":return"leftPadStr((this.getHours() %12) ? this.getHours() % 12 : 12, 2, '0') + ";case "H":return"leftPadStr(this.getHours(), 2, '0') + ";case "i":return"leftPadStr(this.getMinutes(), 2, '0') + ";case "j":return"this.getDate() + ";case "l":return"Date.dayNames[this.getDay()] + ";case "L":return"(this.isLeapYear() ? 1 : 0) + ";case "m":return"leftPadStr(this.getMonth() + 1, 2, '0') + ";case "M":return"Date.monthNames[this.getMonth()].substring(0, 3) + ";case "n":return"(this.getMonth() + 1) + ";
case "o":return"this.getGMTOffsetWithMinutes() + ";case "O":return"this.getGMTOffset() + ";case "s":return"leftPadStr(this.getSeconds(), 2, '0') + ";case "S":return"this.getSuffix() + ";case "t":return"this.getDaysInMonth() + ";case "T":return"this.getTimezone() + ";case "w":return"this.getDay() + ";case "W":return"this.getWeekOfYear() + ";case "y":return"('' + this.getFullYear()).substring(2, 4) + ";case "Y":return"this.getFullYear() + ";case "z":return"this.getDayOfYear() + ";case "Z":return"(this.getTimezoneOffset() * -60) + ";
default:return"'"+escapeStr(character)+"' + "}};Date.parseDate=function(input,format){if(Date.parseFunctions[format]==null)Date.createParser(format);var func=Date.parseFunctions[format];return Date[func](input)};
Date.createParser=function(format){var funcName="parse"+Date.parseFunctions.count++;var regexNum=Date.parseRegexes.length;var currentGroup=1;Date.parseFunctions[format]=funcName;var code="Date."+funcName+" = function(input){\n"+"var y = -1, m = -1, d = -1, h = -1, i = -1, s = -1;\n"+"var d = new Date();\n"+"y = d.getFullYear();\n"+"m = d.getMonth();\n"+"d = d.getDate();\n"+"var results = input.match(Date.parseRegexes["+regexNum+"]);\n"+"if (results && results.length > 0) {";var regex="";var special=
false;var ch="";for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\")special=true;else if(special){special=false;regex+=escapeStr(ch)}else{obj=Date.formatCodeToRegex(ch,currentGroup);currentGroup+=obj.g;regex+=obj.s;if(obj.g&&obj.c)code+=obj.c}}code+="if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0)\n"+"{return new Date(y, m, d, h, i, s);}\n"+"else if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0)\n"+"{return new Date(y, m, d, h, i);}\n"+"else if (y > 0 && m >= 0 && d > 0 && h >= 0)\n"+
"{return new Date(y, m, d, h);}\n"+"else if (y > 0 && m >= 0 && d > 0)\n"+"{return new Date(y, m, d);}\n"+"else if (y > 0 && m >= 0)\n"+"{return new Date(y, m);}\n"+"else if (y > 0)\n"+"{return new Date(y);}\n"+"}return null;}";Date.parseRegexes[regexNum]=new RegExp("^"+regex+"$");eval(code)};
Date.formatCodeToRegex=function(character,currentGroup){switch(character){case "D":return{g:0,c:null,s:"(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)"};case "j":case "d":return{g:1,c:"d = parseInt(results["+currentGroup+"], 10);\n",s:"(\\d{1,2})"};case "l":return{g:0,c:null,s:"(?:"+Date.dayNames.join("|")+")"};case "S":return{g:0,c:null,s:"(?:st|nd|rd|th)"};case "w":return{g:0,c:null,s:"\\d"};case "z":return{g:0,c:null,s:"(?:\\d{1,3})"};case "W":return{g:0,c:null,s:"(?:\\d{2})"};case "F":return{g:1,c:"m = parseInt(Date.monthNumbers[results["+
currentGroup+"].substring(0, 3)], 10);\n",s:"("+Date.monthNames.join("|")+")"};case "M":return{g:1,c:"m = parseInt(Date.monthNumbers[results["+currentGroup+"]], 10);\n",s:"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)"};case "n":case "m":return{g:1,c:"m = parseInt(results["+currentGroup+"], 10) - 1;\n",s:"(\\d{1,2})"};case "t":return{g:0,c:null,s:"\\d{1,2}"};case "L":return{g:0,c:null,s:"(?:1|0)"};case "Y":return{g:1,c:"y = parseInt(results["+currentGroup+"], 10);\n",s:"(\\d{3,4})"};case "y":return{g:1,
c:"var ty = parseInt(results["+currentGroup+"], 10);\n"+"y = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"};case "a":return{g:1,c:"if (results["+currentGroup+"] == 'am') {\n"+"if (h == 12) { h = 0; }\n"+"} else { if (h < 12) { h += 12; }}",s:"(am|pm)"};case "A":return{g:1,c:"if (results["+currentGroup+"] == 'AM') {\n"+"if (h == 12) { h = 0; }\n"+"} else { if (h < 12) { h += 12; }}",s:"(AM|PM)"};case "b":return{g:1,c:"if (results["+currentGroup+"] == 'a' || results["+currentGroup+"] == 'am') {\n"+
"if (h == 12) { h = 0; }\n"+"} else { if (h < 12) { h += 12; }}",s:"(a|p)m?"};case "B":return{g:1,c:"if (results["+currentGroup+"] == 'A' || results["+currentGroup+"] == 'AM') {\n"+"if (h == 12) { h = 0; }\n"+"} else { if (h < 12) { h += 12; }}",s:"(A|P)M?"};case "g":case "G":case "h":case "H":return{g:1,c:"h = parseInt(results["+currentGroup+"], 10);\n",s:"(\\d{1,2})"};case "i":return{g:1,c:"i = parseInt(results["+currentGroup+"], 10);\n",s:"(\\d{2})"};case "s":return{g:1,c:"s = parseInt(results["+
currentGroup+"], 10);\n",s:"(\\d{2})"};case "O":return{g:0,c:null,s:"[+-]\\d{4}"};case "o":return{g:0,c:null,s:"[+-]\\d{2}\\:\\d{2}"};case "T":return{g:0,c:null,s:"[A-Z]{3}"};case "Z":return{g:0,c:null,s:"[+-]\\d{1,5}"};default:return{g:0,c:null,s:escapeStr(character)}}};Date.prototype.getTimezone=function(){return this.toString().replace(/^.*? ([A-Z]{3}) [0-9]{4}.*$/,"$1").replace(/^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/,"$1$2$3")};
Date.prototype.getGMTOffset=function(){return(this.getTimezoneOffset()>0?"-":"+")+leftPadStr(Math.floor(Math.abs(this.getTimezoneOffset())/60),2,"0")+leftPadStr(Math.abs(this.getTimezoneOffset())%60,2,"0")};Date.prototype.getGMTOffsetWithMinutes=function(){return(this.getTimezoneOffset()>0?"-":"+")+leftPadStr(Math.floor(Math.abs(this.getTimezoneOffset())/60),2,"0")+":"+leftPadStr(Math.abs(this.getTimezoneOffset())%60,2,"0")};
Date.prototype.getDayOfYear=function(){var num=0;Date.daysInMonth[1]=this.isLeapYear()?29:28;for(var i=0;i<this.getMonth();++i)num+=Date.daysInMonth[i];return num+this.getDate()-1};Date.prototype.getWeekOfYear=function(){var now=this.getDayOfYear()+(4-this.getDay());var jan1=new Date(this.getFullYear(),0,1);var then=7-jan1.getDay()+4;return leftPadStr((now-then)/7+1,2,"0")};Date.prototype.isLeapYear=function(){var year=this.getFullYear();return(year&3)==0&&(year%100||year%400==0&&year)};
Date.prototype.getFirstDayOfMonth=function(){var day=(this.getDay()-(this.getDate()-1))%7;return day<0?day+7:day};Date.prototype.getLastDayOfMonth=function(){var day=(this.getDay()+(Date.daysInMonth[this.getMonth()]-this.getDate()))%7;return day<0?day+7:day};Date.prototype.getDaysInMonth=function(){Date.daysInMonth[1]=this.isLeapYear()?29:28;return Date.daysInMonth[this.getMonth()]};
Date.prototype.getSuffix=function(){switch(this.getDate()){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th"}};function escapeStr(string){return string.replace(/('|\\)/g,"\\$1")}function leftPadStr(val,size,ch){var result=""+val;if(ch==null)ch=" ";while(result.length<size)result=ch+result;return result}function rightPadStr(val,size,ch){var result=""+val;if(ch==null)ch=" ";while(result.length<size)result=result+ch;return result}
Date.daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31];Date.monthNames=["January","February","March","April","May","June","July","August","September","October","November","December"];Date.dayNames=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];Date.y2kYear=50;Date.monthNumbers={Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11};
Date.patterns={ISO8601LongPattern:"Y-m-d H:i:s",ISO8601ShortPattern:"Y-m-d",ShortDatePattern:"n/j/Y",LongDatePattern:"l, F d, Y",FullDateTimePattern:"l, F d, Y g:i:s A",MonthDayPattern:"F d",ShortTimePattern:"g:i b",LongTimePattern:"g:i:s A",SortableDateTimePattern:"Y-m-d\\TH:i:s",UniversalSortableDateTimePattern:"Y-m-d H:i:sO",YearMonthPattern:"F, Y"};jsRequire("scripts/third-party/firebugx.js");jsRequire("scripts/third-party/packed/jquery.js");jsRequire("scripts/third-party/jquery.json.js");jsRequire("scripts/third-party/json2.js");
jsRequire("scripts/third-party/date-functions.js");function CoziClass(){}CoziClass.prototype.construct=function(){};
CoziClass.extend=function(newProperties){var newClassDef=function(){if(arguments[0]!==CoziClass){if(this._mixins)for(var mixinName in this._mixins)this._mixins[mixinName].setup.call(this,mixinName);this.construct.apply(this,arguments)}};var proto=newProperties.prototypeObject||new this(CoziClass);var superClass=this.prototype;for(var prop in newProperties){var item=newProperties[prop];if(item instanceof Function)item._superClass=superClass;proto[prop]=item}newClassDef.prototype=proto;newClassDef.extend=
this.extend;newClassDef.mixin=this.mixin;return newClassDef};
CoziClass.mixin=function(mixins){if(!mixins)return;if(!mixins.length)mixins=[mixins];for(var i=0;i<mixins.length;i++){for(var methodName in mixins[i].prototype){if(!mixins[i].prototype[methodName]||methodName.indexOf("__")===0)continue;mixins[i].prototype[methodName]._mixinId=mixins[i].getMixinName();if(methodName=="setup")continue;if(!this.prototype[methodName])this.prototype[methodName]=mixins[i].prototype[methodName]}if(!this.prototype._mixins)this.prototype._mixins={};this.prototype._mixins[mixins[i].getMixinName()]=
new mixins[i]}for(var methodName in CoziMixable)this.prototype[methodName]=CoziMixable[methodName]};var CoziMixable={mixinProp:function(fn,propertyName,value){if(arguments.length==3)this[fn._mixinId+"$"+propertyName]=value;return this[fn._mixinId+"$"+propertyName]}};jsRequire("scripts/cozi/core/CoziClass.js");if(!window.console&&window.loadFirebugConsole)window.loadFirebugConsole();
CoziObserverSubject=CoziClass.extend({construct:function(){this._listeners={};this._guid=0;return this},publish:function(messageName){var args=[];for(var i=1;i<arguments.length;i++)args.push(arguments[i]);if(!this._listeners[messageName])return;for(var guid in this._listeners[messageName])if(this._listeners[messageName][guid])this._listeners[messageName][guid].apply(this._listeners[messageName][guid],args)},subscribe:function(messageName,listener,listenerName){if(!this._listeners[messageName])this._listeners[messageName]=
{};var id=listenerName?listenerName:this._guid++;if(!listenerName)listener._listener_guid=id;this._listeners[messageName][id]=listener},unsubscribe:function(messageName,listener,listenerName){if(!this._listeners[messageName])return;if(!listener&&!listenerName){delete this._listeners[messageName];return}var id=listenerName?listenerName:typeof listener._listener_guid!="undefined"?listener._listener_guid:null;if(id!=null&&this._listeners[messageName][id])delete this._listeners[messageName][id];else return}});
CoziMixin=CoziObserverSubject.extend({setup:function(mixinName){}});CoziMixin.extend=function(mixinName,newProperties){var newClassDef=function(){};var proto=new this;proto.construct=null;for(var prop in newProperties){var item=newProperties[prop];proto[prop]=item}newClassDef.prototype=proto;newClassDef.extend=this.extend;newClassDef.getMixinName=function(){return mixinName};return newClassDef};
CalendarColors={0:"#ed6526",1:"rgb( 48, 165, 186 )",2:"rgb( 153, 80, 178 )",3:"rgb( 250, 199, 81 )",4:"rgb( 170, 215, 98 )",5:"rgb( 60, 113, 225 )",6:"rgb( 4, 56, 106 )",7:"rgb( 255, 150, 59 )",8:"rgb( 138, 7, 83 )",9:"rgb( 3, 124, 188 )",10:"rgb( 219, 57, 104 )",11:"rgb( 193, 214, 207 )",12:"rgb( 51, 134, 2 )",13:"rgb( 129, 119, 179 )",14:"rgb( 193, 4, 53 )",15:"rgb( 125, 212, 193 )",16:"#FFFFFF"};CalendarColors.getNumColorsInPalette=function(){return 17};
CalendarColors.setPrimaryColor=function(primaryColor){CalendarColors[0]=primaryColor};jsRequire("scripts/cozi/core/CoziClass.js");jsRequire("scripts/cozi/data/CalendarColors.js");
CoBrand=CoziClass.extend({construct:function(json){this._name=json.name;this._comScoreId=json.comScoreId||0;this._visualTreatment=json.visualTreatment||"COZI";this._hasCobrandNav=json.hasCobrandNav||false;this._hasTemplateGlow=json.hasTemplateGlow;this._primaryColor=json.primaryColor||null;this._secondaryColor=json.secondaryColor||null;this._tertiaryColor=json.tertiaryColor||null;this._bodyBackgroundColor=json.bodyBackgroundColor||null;this._oldRightPaneColor=json.oldRightPaneColor||null;this._navOverflowMenuColor=
json.navOverflowMenuColor||null;this._cobrandNavBackgroundColor=json.cobrandNavBackgroundColor||null;this._bodyBackgroundImagePath=json.bodyBackgroundImagePath||null;this._bodyBackgroundImageRepeat=json.bodyBackgroundImageRepeat||null;this._cobrandNavBackgroundImagePath=json.cobrandNavBackgroundImagePath||null;this._toDoListSpritePath=json.toDoListSpritePath||null;this._toDoListHeaderImagePath=json.toDoListHeaderImagePath||null;this._logoSpriteImagePath=json.logoSpritePath||null;this._attendeeColorSpritePath=
json.attendeeColorSpritePath||null;this._primaryLogoMeta=json.logoSprite&&json.logoSprite.primaryLogoDims?json.logoSprite.primaryLogoDims:null;this._secondaryLogoMeta=json.logoSprite&&json.logoSprite.secondaryLogoDims?json.logoSprite.secondaryLogoDims:null;this._coziLogoMeta=json.logoSprite&&json.logoSprite.coziLogoDims?json.logoSprite.coziLogoDims:null;this._coziPremiumLogoMeta=json.logoSprite&&json.logoSprite.coziPremiumLogoDims?json.logoSprite.coziPremiumLogoDims:null;this._cobrandNavArrowMeta=
json.logoSprite&&json.logoSprite.cobrandNavArrowDims?json.logoSprite.cobrandNavArrowDims:null;this._cobrandNavArrowHoverMeta=json.logoSprite&&json.logoSprite.cobrandNavArrowHoverDims?json.logoSprite.cobrandNavArrowHoverDims:null;this._cobrandNavArrowActiveMeta=json.logoSprite&&json.logoSprite.cobrandNavArrowActiveDims?json.logoSprite.cobrandNavArrowActiveDims:null;this._partnerUrl=json.partnerUrl||null;this._signUpUrl=json.signUpUrl||null;this._leftNavLinkUrl=json.leftNavLinkUrl||null;this._partnerName=
json.partnerName||null;this._primaryLogoTitle=json.primaryLogoTitle||null;this._shoppingFeaturedFeedTitle=json.shoppingFeaturedFeedTitle||null;this._defaultCouponSource=json.defaultCouponSource||null;this._leftNavLinkLabel=json.leftNavLinkLabel||null;this._expressWelcomeTitle1=json.expressWelcomeTitle1||null;this._expressWelcomeTitle2=json.expressWelcomeTitle2||null;this._iCalFeeds=json.iCalFeeds&&json.iCalFeeds.length?json.iCalFeeds:null;this._cobrandNavItems=json.cobrandNav&&json.cobrandNav.items?
json.cobrandNav.items:[];this._cobrandNavItemsBaseline=json.cobrandNav?json.cobrandNav.itemsBaseline:0;this._cobrandNavFontFamily=json.cobrandNav&&json.cobrandNav["fontFamily"]?json.cobrandNav["fontFamily"]:null;this._cobrandNavFontSize=json.cobrandNav&&json.cobrandNav["fontSize"]?json.cobrandNav["fontSize"]:null;this._cobrandNavFontWeight=json.cobrandNav&&json.cobrandNav["fontWeight"]?json.cobrandNav["fontWeight"]:null;this._cobrandNavColor=json.cobrandNav&&json.cobrandNav["color"]?json.cobrandNav["color"]:
null;this._cobrandNavHoverColor=json.cobrandNav&&json.cobrandNav["hoverColor"]?json.cobrandNav["hoverColor"]:null;this._cobrandNavHoverWeight=json.cobrandNav&&json.cobrandNav["hoverWeight"]?json.cobrandNav["hoverWeight"]:null;this._cobrandNavActiveColor=json.cobrandNav&&json.cobrandNav["activeColor"]?json.cobrandNav["activeColor"]:null;this._cobrandNavActiveWeight=json.cobrandNav&&json.cobrandNav["activeWeight"]?json.cobrandNav["activeWeight"]:null;this._pages=json.pages||{};CalendarColors.setPrimaryColor(this._primaryColor)},
getName:function(){return this._name},getComScoreId:function(){return this._comScoreId},getVisualTreatment:function(){return this._visualTreatment},hasCoziVisualTreatment:function(){return this._visualTreatment=="COZI"?true:false},hasCobrandNav:function(){return this._hasCobrandNav},hasTemplateGlow:function(){return this._hasTemplateGlow},getPrimaryColor:function(){return this._primaryColor},getSecondaryColor:function(){return this._secondaryColor},getTertiaryColor:function(){return this._tertiaryColor},
getBodyBackgroundColor:function(){return this._bodyBackgroundColor},getOldRightPaneColor:function(){return this._oldRightPaneColor},getNavOverflowMenuColor:function(){return this._navOverflowMenuColor},getCobrandNavBackgroundColor:function(){return this._cobrandNavBackgroundColor},getBodyBackgroundImagePath:function(){return this._bodyBackgroundImagePath},getBodyBackgroundImageRepeat:function(){return this._bodyBackgroundImageRepeat},getCobrandNavBackgroundImagePath:function(){return this._cobrandNavBackgroundImagePath},
getToDoListSpritePath:function(){return this._toDoListSpritePath},getToDoListHeaderImagePath:function(){return this._toDoListHeaderImagePath},getAttendeeColorSpritePath:function(){return this._attendeeColorSpritePath},getLogoSpriteImagePath:function(){return this._logoSpriteImagePath},getPrimaryLogoMeta:function(){return this._primaryLogoMeta},getSecondaryLogoMeta:function(){return this._secondaryLogoMeta},getCoziLogoMeta:function(){return this._coziLogoMeta},getCoziPremiumLogoMeta:function(){return this._coziPremiumLogoMeta},
getCobrandNavArrowMeta:function(){return this._cobrandNavArrowMeta},getCobrandNavArrowHoverMeta:function(){return this._cobrandNavArrowHoverMeta},getCobrandNavArrowActiveMeta:function(){return this._cobrandNavArrowActiveMeta},getPartnerUrl:function(){return this._partnerUrl},getSignUpUrl:function(){return this._signUpUrl},getLeftNavLinkUrl:function(){return this._leftNavLinkUrl},getPartnerName:function(){return this._partnerName},getPrimaryLogoTitle:function(){return this._primaryLogoTitle},getShoppingFeaturedFeedTitle:function(){return this._shoppingFeaturedFeedTitle},
getDefaultCouponSource:function(){return this._defaultCouponSource},getLeftNavLinkLabel:function(){return this._leftNavLinkLabel},getExpressWelcomeTitle1:function(){return this._expressWelcomeTitle1},getExpressWelcomeTitle2:function(){return this._expressWelcomeTitle2},getICalFeeds:function(){return this._iCalFeeds},getCobrandNavItems:function(){return this._cobrandNavItems},getCobrandNavItemsBaseline:function(){return this._cobrandNavItemsBaseline},getCobrandNavFontFamily:function(){return this._cobrandNavFontFamily},
getCobrandNavFontSize:function(){return this._cobrandNavFontSize},getCobrandNavFontWeight:function(){return this._cobrandNavFontWeight},getCobrandNavColor:function(){return this._cobrandNavColor},getCobrandNavHoverColor:function(){return this._cobrandNavHoverColor},getCobrandNavHoverWeight:function(){return this._cobrandNavHoverWeight},getCobrandNavActiveColor:function(){return this._cobrandNavActiveColor},getCobrandNavActiveWeight:function(){return this._cobrandNavActiveWeight},getCobrandPageData:function(pageName){return this._pages[pageName]},
getImagePath:function(imageName){return"../Images/CoBranding/"+this._name+"/"+imageName}});jsRequire("scripts/cozi/core/CoziClass.js");var prototypeObj=new Error;prototypeObj.toString=function(){return this.message};
CoziException=CoziClass.extend({prototypeObject:prototypeObj,construct:function(callerName,errorMessage){this._callerName=callerName?callerName:"";this._errorMessage=errorMessage?errorMessage:"";this.name="CoziException";this.message=this._buildMessage()},callerName:function(){return this._callerName},errorMessage:function(){return this._errorMessage},exceptionType:function(){return this.name},_buildMessage:function(){var outStr=[this.name,this._errorMessage].join(": ");if(this._callerName)outStr=
[outStr,this._callerName].join(" at ");return outStr}});
ArgumentInvalidException=CoziException.extend({construct:function(callerName,argName,errorMessage){arguments.callee._superClass.construct.call(this,callerName,this.errorMessage(argName,errorMessage));this.name="ArgumentInvalidException";this.message=this._buildMessage()},errorMessage:function(argName,origErrorMessage){var tokens=new Array;if(argName)tokens.push(["Invalid argument: ",argName].join(""));if(origErrorMessage)tokens.push(origErrorMessage);return tokens.join("; ")}});
ArgumentNullException=CoziException.extend({construct:function(callerName,argName,errorMessage){arguments.callee._superClass.construct.call(this,callerName,this.errorMessage(argName,errorMessage));this.name="ArgumentNullException";this.message=this._buildMessage()},errorMessage:function(argName,origErrorMessage){var tokens=new Array;if(argName)tokens.push(["Null argument: ",argName].join(""));if(origErrorMessage)tokens.push(origErrorMessage);return tokens.join("; ")}});
InvalidOperationException=CoziException.extend({construct:function(callerName,message){arguments.callee._superClass.construct.call(this,callerName,message);this.name="InvalidOperationException";this.message=this._buildMessage()}});
NotImplementedException=CoziException.extend({construct:function(callerName,message){arguments.callee._superClass.construct.call(this,callerName,this.errorMessage(callerName,message));this.name="NotImplementedException";this.message=this._buildMessage()},errorMessage:function(methodName,origErrorMessage){var tokens=new Array;if(methodName)tokens.push(["Method name: ",methodName].join(""));if(origErrorMessage)tokens.push(origErrorMessage);return tokens.join("; ")}});jsRequire("scripts/cozi/core/CoziException.js");
StringUtil={};StringUtil.trim=function(str){if(str==null)return null;return str.replace(/^\s\s*/,"").replace(/\s\s*$/,"")};StringUtil.isNullOrEmpty=function(str){return!str||StringUtil.trim(str).length===0};StringUtil.isNotEmpty=function(str){return!StringUtil.isNullOrEmpty(str)};StringUtil.compare=function(a,b){return a.localeCompare(b)};
StringUtil.concatWordList=function(words,conjunction){var n=words.length;conjunction=" "+(StringUtil.trim(conjunction)||"and")+" ";conjunction=n<=1?"":n==2?conjunction:","+conjunction;return words.slice(0,-1).join(", ")+conjunction+words.slice(-1)};StringUtil.toHex=function(x,digits){return("0000000"+x.toString(16).toUpperCase()).slice(-digits)};
StringUtil.hexDump=function(s,charsPerLine){function hex4(x){return StringUtil.toHex(x,4)}charsPerLine=charsPerLine||16;var r=[],n=s.length;for(var o=0;o<n;o+=charsPerLine){var h=[],c=[];var u=Math.min(o+charsPerLine,n);for(var i=o;i<u;i++){var code=s.charCodeAt(i);h.push(hex4(code));c.push(String.fromCharCode(code>=32?code:46))}for(var i=u;i<o+charsPerLine;i++){h.push("    ");c.push(" ")}var line=hex4(o)+": "+h.join(" ")+"  "+c.join("");r.push(line)}return r.join("\n")};
StringUtil.pluralize=function(s,n){return typeof n==="undefined"||n>1?s+"s":s};String.prototype.trim=function(){return StringUtil.trim(this)};String.prototype.startsWith=function(testStr){if(!testStr)throw new ArgumentInvalidException("String.startsWith: testStr");return this.indexOf(testStr)===0};String.prototype.endsWith=function(testStr){if(!testStr)throw new ArgumentInvalidException("String.startsWith: testStr");var length=testStr.length;return this.lastIndexOf(testStr)===this.length-testStr.length};
String.prototype.capitalize=function(){return this.replace(/^(\w)/,function(wholeMatch,m1){return m1.toUpperCase()})};
String.prototype.format=function(keyOrTokens,value,_hasNode){if(_hasNode&&String.prototype.format.caller&&String.prototype.format.caller.methodName!="formatToNode")throw new ArgumentInvalidException("String.format","Please use String.formatToNode to do node replacement: "+this);var tokens=keyOrTokens;if(value!==undefined){tokens={};tokens[keyOrTokens]=value}var formattedStr=this.toString();for(var token in tokens){if(!String._formatTokenREs[token])String._formatTokenREs[token]={capturing:new RegExp("(</?)"+
token+"(>)","g"),inline:new RegExp("<"+token+"/>","g")};var replacementValue=tokens[token];if(_hasNode&&(replacementValue instanceof jQuery||replacementValue.tagName)){hasNodes=true;replacementValue='<span class="DomReplace" name="'+token+'"></span>'}formattedStr=formattedStr.replace(String._formatTokenREs[token].capturing,"$1"+replacementValue+"$2").replace(String._formatTokenREs[token].inline,replacementValue)}if(_hasNode){if($.browser.msie)formattedStr=formattedStr.replace(/\/span>\s+/gi,"/span>&nbsp;");
var wrapper=$("<span/>").append(formattedStr);var nodesToReplace=$("span.DomReplace",wrapper);for(var i=0;i<nodesToReplace.length;i++){var node=$(nodesToReplace[i]);node.after(tokens[node.attr("name")]).remove()}formattedStr=wrapper.contents()}return formattedStr};String.prototype.formatToNode=function(keyOrTokens,value){var formattedNode=this.format(keyOrTokens,value,true);if(formattedNode instanceof String)formattedNode=$("<span/>").append(formattedNode).contents();return formattedNode};
String.prototype.formatToNode.methodName="formatToNode";
String.prototype.formatConditional=function(keyOrTokens,value){var tokens=keyOrTokens;if(value!==undefined){tokens={};tokens[keyOrTokens]=value}var formattedStr=this.toString().replace(/[?]/gi,"&QUOT;");for(var token in tokens){var chosenConditional=tokens[token];if(!String._conditionalTokenREs[token])String._conditionalTokenREs[token]={};if(!String._conditionalTokenREs[token][chosenConditional])String._conditionalTokenREs[token][chosenConditional]=new RegExp("<"+token+"(.*?{"+chosenConditional+":([^}]*)}.*?)/>",
"g");if(!formattedStr.match(String._conditionalTokenREs[token][chosenConditional]))continue;var replacementToken=token+RegExp.$1;var replacementText=RegExp.$2;formattedStr=formattedStr.format(replacementToken,replacementText)}return formattedStr.replace(/&QUOT;/gi,"?")};String._formatTokenREs={};String._conditionalTokenREs={};
Logger={LEVELS:{NONE:100,INFO:0,WARNING:1,ERROR:2},_level:0,_log:function(msg){if(window.console)console.log(msg);else{if(!$("#logDiv",$(document.body)).length)$(document.body).append($("<div/>").attr("id","logDiv").css({position:"absolute",top:250,height:"250px",width:"300px",overflow:"scroll"}));$("#logDiv",$(document.body)).get(0).innerHTML+=msg.replace(/</g,"&lt;").replace(/>/g,"&gt;")+"<br/><br/>"}},error:function(msg){if(Logger._level>Logger.LEVELS.ERROR)return;this._log("ERROR: "+msg)},info:function(msg){if(Logger._level>
Logger.LEVELS.INFO)return;this._log("INFO: "+msg)},warning:function(msg){if(Logger._level>Logger.LEVELS.WARNING)return;this._log("WARNING: "+msg)},getLevel:function(){return Logger._level},setLevel:function(level){Logger._level=level}};
COZI_WIDGET_CONSTANTS={API_KEY:"extwebwid",APP_VERSION:"0.0.0.0",ATTENDEE_COLORS:["#ED6526","#30A5BA","#9950B2","#FAC751","#AAD762","#3C71E1","#04386A","#FF963B","#8A0753","#037CBC","#DB3968","#C1D6CF","#338602","#8177B3","#C10435","#7DD4C1","#FFFFFF"],COMSCORE_C1:"7",COMSCORE_C2:"7578718",DEFAULT_NUM_IMGS:3,EMPTY_GUID:"00000000-0000-0000-0000-000000000000",en_US:{ADD_AN_APPOINTMENT:"Add an appointment",ADD_AN_APPT:"Add an appt",ALL_DAY:"&mdash; All Day &mdash;",CALENDAR:"Calendar",COZI_FAMILY_CALENDAR:"My Family Calendar",
COZI_PASSWORD:"Cozi password:",COZI_SETTINGS:"Settings",FAMILY_JOURNAL:"Family Journal",FORGOT_PASSWORD:"Forgot password?",GO_TO:"Go to",ITS_FREE:"It's free.",MY_FAMILY_CALENDAR:"My Family Calendar",REMEMBER_ME:"Remember me",SHOPPING_LIST:"Shopping Lists",SEE_MORE_APPOINTMENTS:"See more appointments",SIGN_IN:"Sign in",SIGN_IN_DIALOG_MSG:"Sign in securely to your Cozi account.",SIGN_OUT:"Sign out",SIGN_UP:"Sign up",TODO_LIST:"To Do Lists",YOUR_EMAIL_ADDRESS:"Your email address:"},ERROR_MESSAGES:{APPT_FAILURE_0:"There is a problem displaying your appointments in the Cozi Widget. You can either:",
APPT_FAILURE_1:"Refresh the page",APPT_FAILURE_2:"Sign in directly to Cozi",LOGIN_FAILURE:"There was a problem signing in. Double-check your email address and password and try again."},GOOGLE_USER_VAR:"<COBRAND/>_<COBRAND/>WEBWIDGET",MARKETING_IMAGE_PATHS:{DEV:"http://prod-cms-101.sea1.cozi.com/images/external",BETA:"http://beta.cozi.com/images/external",LIVE:"http://www.cozi.com/images/external"},MARKETING_ROTATION_MIN:2,NUM_MARKETING_IMAGES:3,SERVER_ERROR_CODES:{BAD_CRED:"BadUsernamePassword",NO_CRED:"NoCredentials"},
URL_APPOINTMENT:"http://<WEBCLIENT_DOMAIN/>/calendar/?d=<DAY_PARAM/>&appt=<ID_PARAM/>",URL_AUTH:"https://<WEBCLIENT_DOMAIN/>/logon/autologon.aspx?action=login&userName=<USER_NAME/>&password=<PASSWORD/>&isRemember=<IS_REMEMBER/>",URL_CALENDAR:"http://<WEBCLIENT_DOMAIN/>/calendar/<HAS_TARGET_DAY {true:?d=<DAY_PARAM/>} {false:}/>",URL_COMSCORE:"http://b.scorecardresearch.com/beacon.js",URL_COZI_SETTINGS:"http://<WEBCLIENT_DOMAIN/>/settings/",URL_DEAUTH:"https://<WEBCLIENT_DOMAIN/>/logon/autologon.aspx?action=logout",
URL_FAMILY_JOURNAL:"http://<WEBCLIENT_DOMAIN/>/journal/",URL_FORGOT_PASSWORD:"http://www.cozi.com/Help-Password-Reset.htm",URL_SERVICE_APPOINTMENTS:"../../rest/p.ashx/api/calendar/interval/default.ashx?&startDate=<START_DATE/>&endDate=<END_DATE/>&tzOffset=<TZ_OFFSET/>&account=<ACCOUNT_ID/>&auth=<AUTH/>&apiKey=<API_KEY/>&version=<VERSION/>",URL_SHOPPING_LIST:"http://<WEBCLIENT_DOMAIN/>/shopping/",URL_SIGN_UP:"http://www.cozi.com/go/?a=campaign&b=<COBRAND/>&c=<CAMPAIGN/>WebWidget",URL_TODO_LIST:"http://<WEBCLIENT_DOMAIN/>/todo/",
URL_TRACKING:"/rest/track/external/extwebwid/<VERSION/>/<PAGE_TOKEN/>"};function TreeNode(){this._nodeName=null;this._nodeType=null;this._attributes={};this._children={};this._siblings=[];this._textValue=null;return this}TreeNode.TEXT_NODE=document.TEXT_NODE||3;TreeNode.PROCESSING_INSTRUCTION_NODE=document.PROCESSING_INSTRUCTION_NODE||7;TreeNode.DOCUMENT_NODE=document.DOCUMENT_NODE||9;TreeNode.prototype.deserialize=function(jsonNode){throw new Error("TreeNode.deserialize not implemented");};
TreeNode.prototype.get=function(name){if(typeof this._children[name]=="undefined"||!this._children[name].length)return null;var returnNode=this._children[name][0];return returnNode.getNodeType()==TreeNode.TEXT_NODE||returnNode.isEmpty()?returnNode._textValue:returnNode};TreeNode.prototype.getList=function(name){if(typeof this._children[name]=="undefined"||!this._children[name].length)return[];return this._children[name]};
TreeNode.prototype.getAttribute=function(name){return this._attributes[name]?this._attributes[name]:null};TreeNode.prototype.getNodeName=function(){return this._nodeName};TreeNode.prototype.getNodeType=function(){return this._nodeType};TreeNode.prototype.getSize=function(){var num=0;for(var key in this._children)if(this._children[key])num+=this._children[key].length;return num};TreeNode.prototype.getValue=function(){return this._textValue};
TreeNode.prototype.isEmpty=function(){if(this._nodeType==TreeNode.TEXT_NODE&&this._textValue)return false;for(var key in this._children)if(this._children[key])return false;for(var key in this._attributes)return false;return true};TreeNode.prototype.keySet=function(){var keys=[];for(var key in this._children)if(typeof this._children[key]!="undefined")keys.push(key);return keys};function JSONTreeNode(){return this.superClass.call(this)}JSONTreeNode.prototype=new TreeNode;
JSONTreeNode.prototype.superClass=TreeNode;JSONTreeNode.prototype.deserialize=function(jsonNode){if(!(jsonNode instanceof Object)){this._nodeType=TreeNode.TEXT_NODE;this._textValue=jsonNode}else for(var key in jsonNode){var node=new JSONTreeNode;node.deserialize(jsonNode[key]);node._nodeName=key;if(!this._children[key])this._children[key]=[];this._children[key].push(node)}return this};function XMLTreeNode(){return this.superClass.call(this)}XMLTreeNode.prototype=new TreeNode;
XMLTreeNode.prototype.superClass=TreeNode;
XMLTreeNode.prototype.deserialize=function(xmlNode){if(xmlNode.nodeType==TreeNode.DOCUMENT_NODE)return this.deserialize(xmlNode.childNodes[xmlNode.childNodes.length-1]);if(xmlNode.nodeType==TreeNode.PROCESSING_INSTRUCTION_NODE)return this.deserialize(xmlNode.childNodes[1]);if(xmlNode.nodeType==TreeNode.TEXT_NODE)return null;this._nodeName=xmlNode.nodeName;this._nodeType=xmlNode.childNodes.length==1&&xmlNode.childNodes[0].nodeType==TreeNode.TEXT_NODE&&!/^\s*$/.test(xmlNode.childNodes[0].nodeValue)?TreeNode.TEXT_NODE:
xmlNode.nodeType;for(var i=0;i<xmlNode.attributes.length;i++)this._attributes[xmlNode.attributes[i]]=xmlNode.getAttribute(xmlNode.attributes[i]);if(this._nodeType==TreeNode.TEXT_NODE)this._textValue=xmlNode.childNodes[0].nodeValue;else for(var j=0;j<xmlNode.childNodes.length;j++){var node=new XMLTreeNode;var deserializedData=node.deserialize(xmlNode.childNodes[j]);if(!deserializedData)continue;if(!this._children[node.getNodeName()])this._children[node.getNodeName()]=[];this._children[node.getNodeName()].push(node)}return this};
jsRequire("scripts/widgets/calendar/controls/CoziObserverSubject.js");jsRequire("scripts/cozi/util/StringUtil.js");jsRequire("scripts/widgets/util/TreeNode.js");jsRequire("IFrame/scripts/util/config.js");
WidgetDataSource=CoziObserverSubject.extend({construct:function(isBrowserSecurityDisabled){arguments.callee._superClass.construct.apply(this,arguments);this._isBrowserSecurityDisabled=isBrowserSecurityDisabled||false;return this},getAppointmentData:function(parameters,successListener,failureListener){var startTimeLocal=parameters.START_DATE.midnight();var endTimeLocal=new Date(startTimeLocal.getFullYear(),startTimeLocal.getMonth(),startTimeLocal.getDate()+parameters.DURATION-1,0,0,0);Logger.info("WidgetDataSource.getAppointmentData: start="+
startTimeLocal+";end="+endTimeLocal+";accountId="+parameters.ACCOUNT_ID+";version="+parameters.VERSION);parameters.TZ_OFFSET=parameters.START_DATE.getTimezoneOffset();parameters.START_DATE=encodeURIComponent(startTimeLocal.getISO8601(true));parameters.END_DATE=encodeURIComponent(endTimeLocal.getISO8601(true));parameters.API_KEY=COZI_WIDGET_CONSTANTS.API_KEY;parameters.WEBCLIENT_DOMAIN=Config.getWebClientDomain();var url=this._formatUrl(COZI_WIDGET_CONSTANTS.URL_SERVICE_APPOINTMENTS,parameters);Logger.info("WidgetDataSource.getAppointmentData: url = "+
url);$.ajax(this._getAjaxOptions(url,successListener,failureListener,"xml"))},signIn:function(parameters,successListener,failureListener){parameters.WEBCLIENT_DOMAIN=Config.getWebClientSecureDomain();var url=this._formatUrl(COZI_WIDGET_CONSTANTS.URL_AUTH,parameters);Logger.info("Widget.Data.signIn: url: "+url);$.ajax(this._getAjaxOptions(url,successListener,failureListener,this._getAuthDataType()))},signOut:function(successListener,failureListener){var parameters={WEBCLIENT_DOMAIN:Config.getWebClientSecureDomain()};
var url=this._formatUrl(COZI_WIDGET_CONSTANTS.URL_DEAUTH,parameters);Logger.info("Widget.Data.signOut: url: "+url);if(url)$.ajax(this._getAjaxOptions(url,successListener,failureListener,this._getAuthDataType()));else successListener(null)},track:function(key,cobrand,parentPage){},_formatUrl:function(url,parameters){url=url.format(parameters);return url.replace(/([^?&=]+=<[^&]+>&?)/g,"").replace(/&$/,"")},_getAjaxOptions:function(url,successFn,failureFn,dataType){var options={cache:false,dataType:dataType,
error:failureFn||function(){},success:successFn||function(){},type:"GET",url:url};if(!this._isBrowserSecurityDisabled&&url.indexOf(location.protocol+"//"+location.hostname+":"+location.port)!=0&&url.indexOf("http")==0){options.success=function(data,type){var parsedData=null;try{parsedData=(new JSONTreeNode).deserialize(data)}catch(err){parsedData=(new JSONTreeNode).deserialize({success:false,errorMessage:"Unable to parse JSON data: "+err.message,data:data})}finally{if(successFn)successFn(parsedData,
type)}};options.error=function(data,type){var parsedData=null;try{parsedData=(new JSONTreeNode).deserialize(data)}catch(err){parsedData=(new JSONTreeNode).deserialize({success:false,errorMessage:"Unable to parse JSON data: "+err.message,data:data})}finally{failureFn(parsedData,type)}}}else if(options.dataType=="xml")options.dataFilter=function(data,type){var parsedData=null;try{parsedData=(new XMLTreeNode).deserialize(data)}catch(err){parsedData={success:false,errorMessage:"Unable to parse XML data: "+
err.message,data:data}}return parsedData};else if(options.dataType=="json"||options.dataType=="jsonp")options.dataFilter=function(data,type){var parsedData=null;try{var json;eval("json = "+data);parsedData=(new JSONTreeNode).deserialize(json)}catch(err){parsedData={success:false,errorMessage:"Unable to parse JSON data: "+err.message,data:data}}return parsedData};return options},_getAuthDataType:function(){return""}});
CoziConstants={EmptyGuid:"00000000-0000-0000-0000-000000000000",KeyCodes:{Return:13,Enter:13,Tab:9,Escape:27,DownArrow:40,UpArrow:38,LeftArrow:37,RightArrow:39,Space:32,Home:36,End:35,Shift:16,Control:17,Alt:18,Delete:46,Comma:188,Semicolon:59,PageUp:33,PageDown:34,BackSpace:8,Backspace:8},EncodedChars:{Dot:"&#9679;",Bullet:"&bull;",RightPointingPointer:"&#x25BA;",NDash:"&ndash;",Ellipsis:"&hellip;",Apostrophe:"&rsquo;",QuestionMark:"&#63;",Registered:"&reg;"},ErrorCodes:{DuplicateEmailFound:320154},
RegularExpressions:{Url:/\b(((ftp|http|https):\/\/)|(www\.|ftp\.))[^\s<>]+\.[^\s<>]+[^\s\.\?!<,:;\(\)\[\]{}]/g,Bold:/(^|\s|>)\*([^*<>\s][^*<>\n\r]*[^*<>\s])\*/g,Email:/([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})/g},ImageUrls:{DefaultHomepageFamilyPhoto:"http://s3.amazonaws.com/165Q0BHNDARKNECSWR82-images/T_a594642f83c048f2b46a6d9711ce2472.jpg",TransparentPixel:"../Images/trans_filler.gif",ProgressIndicator:"../Images/flowerAnimation.gif",PrintTipBg:"../Images/Calendar/print_bg.png",CoziButton:"../Images/buttons/button_allstates.png",
WizardButton:"../Images/buttons/button_wizard.png",addToShoppingList:"../Images/lists/addtolist.png"},Pages:{HomePage:"HomePage",AppointmentPage:"AppointmentPage",JournalPage:"JournalPage",SettingsPage:"SettingsPage"},PageUrls:{AgendaEmailNotifications:"../calendar/reminders.aspx",AppointmentPage:"../calendar/AppointmentPage.aspx",Calendar:"../calendar/",CalendarItemList:"../calendar/listview.aspx",CalendarSendToPhone:"../calendar/send-to-phone.aspx",CalendarSettings:"../calendar/schedule.aspx",CalendarSharing:"../calendar/sharing.aspx",
ColorSettings:"../calendar/colors.aspx",Content:"../content/",DefaultCalSettingsPage:"../calendar/colors.aspx",Downloads:"../downloads/",DownloadCollage:"../downloads/?target=collage",EmailNotifications:"../settings/emailnotifications.aspx",Friends:"../friends/",Home:"../homepage/",HomeFullyQualified:"http://cozicentral.cozi.com",HouseholdSettings:"../settings/household.aspx",InternetCalendars:"../calendar/subscriptions.aspx?mode=publicCal",Journal:"../journal/",JournalEdit:"../journal/?mode=add",
JournalInvite:"../journal/sharingwizard.aspx#Invite",JournalSharing:"../journal/sharingwizard.aspx",MessageBoard:"../messages/",Mobile:"../mobile/default.aspx",Outlook:"../outlook/default.aspx",PhoneSettings:"../settings/phone.aspx",PhotoUpload:"../settings/familyphoto.aspx",Logon:"../logon/logon.aspx",Logout:"../logon/logout.aspx",Newsletter:"../journal/newsletter.aspx",OrganizeLists:"../settings/lists.aspx",PaidSubscription:"../settings/subscription.aspx",ScheduleSettings:"../calendar/schedule.aspx",
SchoolCalendars:"../calendar/subscriptions.aspx?mode=searchExt",SendAgenda:"../calendar/sendagenda.aspx",SendSharedCalendarUrl:"../calendar/sendsharedurl.aspx",SendStory:"../journal/SendStory.aspx",Settings:"../settings/",Shopping:"../shopping/",ShoppingSendToPhone:"../shopping/send-to-phone.aspx",SocialSettings:"../settings/social.aspx",SubscriptionSettings:"../calendar/subscriptions.aspx",SweepstakesWinner:"/sweepstakes/am-i-a-winner.aspx",TimeZoneSettings:"../calendar/timeZoneSettings.aspx",ToDo:"../todo/",
TurnOnFacebook:"../content/default.aspx?url=Turn-On-Facebook.htm&page=Share%20on%20Facebook&header=Share%20your%20journal%20with%20friends%20on%20Facebook",WeeklyRoutine:"../calendar/routine.aspx",WizardStart:"../journal/sharingWizard.aspx#Start",WizardUpdates:"../journal/sharingWizard.aspx#Updates"},ExternalData:{FacebookAppId:"35894066839",FacebookAppPermissions:{perms:"publish_stream,offline_access"},GACodeAuthed:"UA-902398-1",GACodeUnauthed:"UA-902398-11"},ExternalUrls:{AmazonAppStoreCoziApp:"http://amzn.com/B004RC00QG",
AndroidMarketCoziApp:"http://market.android.com/details?id=com.cozi.androidfree",AndroidMarketCoziAppUSCELLULAR:"https://market.android.com/details?id=com.cozi.androiduscellular&feature",AndroidMarketCoziPointer:"http://www.cozi.com/androidapp.htm",AppointmentRemindersHelp:"http://www.cozi.com/Help-Appointment-Reminders.htm",BlackberryAppWorldCoziApp:"http://appworld.blackberry.com/webstore/content/49211?lang=en",BlackberryAppWorldCoziAppUSCELLULAR:"http://appworld.blackberry.com/webstore/content/58535?lang=en",
CalendarHelp:"http://www.cozi.com/Help-Family-Calendar.htm",CalendarSharingHelp:"http://www.cozi.com/Help-Shared-Internet-Calendar.htm",CalendarTour:"http://www.cozi.com/products/swfPlayerShell_420.swf",CheckMobileVersionHelp:"http://www.cozi.com/Help-Troubleshooting-Check-Current-Version.htm",Contact:"http://www.cozi.com/support",CorpBlog:"http://blogs.cozi.com/",CorpHome:"http://www.cozi.com/",CoziMobileHelp:"http://www.cozi.com/Help-Cozi-Mobile.htm",DinnerPlan:"http://dinner.cozi.com/",DownloadCollage:"http://www.cozi.com/Download-Photo-Screensaver.htm",
DownloadCookbook:"http://www.cozi.com/documents/Cozi_eCookbook.pdf",DownloadGadgetWindows:"http://www.cozi.com/Download-Calendar-Gadget-Windows-Vista-Sidebar.htm",DownloadToolbar:"http://www.cozi.com/Download-Outlook-Toolbar-Beta2-Overview.htm",EmailAddressHelp:"http://www.cozi.com/Help-Email-Addresses.htm",Facebook:"http://www.facebook.com/CoziFamily",Feedback:"http://www.surveymonkey.com/s/ZH8MKTF",ForgotPasswordHelp:"http://www.cozi.com/Help-Password-Reset.htm",GeneralHelp:"http://www.cozi.com/help",
GoogleMapQuery:"http://maps.google.com/?q=",Intand:"http://www.intand.com/",IntandSearchFrame:"http://www.intand.com/cozi.htm",InternetCalConnect:"http://www.cozi.com/Help-Connect-Online-Calendars.htm",InternetCalHelp:"http://www.cozi.com/Help-Internet-Calendars.htm",InternetCalTips:"http://www.cozi.com/Help-Finding-Internet-Calendars.htm",IPhoneAppStore:"http://itunes.apple.com/us/app/cozi-family-organizer/id407108860?mt=8",IPhoneAppPointer:"http://www.cozi.com/iphoneapp.htm",ListLibrary:"http://www.cozi.com/List-Library.htm",
LiveSimply:"http://www.cozi.com/live-simply",MessagesReminders:"http://www.cozi.com/Messages-and-Reminders.htm",MobileActivationHelp:"http://www.cozi.com/Help-Mobile-Access-Overview.htm#mobile-activation",MobilePhoneHelp:"http://www.cozi.com/Help-Send-to-Phone.htm",MobileSite:"http://m.cozi.com",OutlookHelp:"http://www.cozi.com/Help-Outlook-Toolbar.htm",OutlookSync:"http://www.cozi.com/Outlook-Toolbar.htm",PrivacyPolicy:"http://www.cozi.com/Privacy-Policy.htm",Punchbowl:"http://cozi.punchbowl.com",
SamplesAndSavings:"http://www.cozi.com/live-simply/samples-and-savings",SchoolCalHelp:"http://www.cozi.com/Help-School-Calendars.htm",SchoolCalendarsNow:"http://schoolcal.cozi.com/",SupportedMobileCarriersHelp:"http://www.cozi.com/Help-Mobile-Access-Overview.htm#Mobile-Coverage",TermsOfUse:"http://www.cozi.com/Terms-of-Use.htm",ToDoHelp:"http://www.cozi.com/Help-To-Do-List.htm",TollFreePhoneHelp:"http://www.cozi.com/Help-Toll-Free-Phone-Access.htm",UpgradeIE:"http://windows.microsoft.com/en-US/internet-explorer/downloads/ie"},
Classes:{Clock:"Clock",ClockHours:"ClockHours",ClockMinutes:"ClockMinutes",ClockSeconds:"ClockSeconds",Border:"border",Frame:"frame",Cell:"cell",FrameBorder:"frameborder",CellBorder:"cellborder",ButtonBorder:"buttonborder",WhitePanel:"whitepanel",WhitePanelFrame:"whitepanelframe",WhitePanelCell:"whitepanelcell",StoryPanel:"storypanel",StoryBorder:"storyborder",StoryPanelInner:"storypanelinner",Button:"cozibutton",ButtonContainer:"buttoncontainer",CommandButton:"commandbutton",LinkButton:"linkbutton",
MenuButton:"menubutton",BorderedButton:"cozibuttonbordered",BareButton:"cozibuttonbare",InactiveButton:"inactivebutton",HoverButton:"hoverbutton",PressedButton:"downbutton",ButtonIcon:"buttonicon",ButtonText:"buttontext",HoverButtonGradient:"buttonhovergradient",PressedButtonGradient:"buttonhovergradient",HintControl:"CoziHint",StoryTextEditor:"storytexteditor",AttendeeTab:"AttendeeTab",AttendeeDot:"AttendeeDot",AllAttendeeDot:"AllAttendeeDot",PreviousWeekScroll:"PreviousWeekScroll",NextWeekScroll:"NextWeekScroll",
AttendeeCalendar:"AttendeeCalendar",AttendeeCalendarContainer:"AttendeeCalendarContainer",AppointmentsHeader:"AppointmentsHeader",AppointmentsFooter:"AppointmentsFooter",AgendaView:"AgendaView",MonthView:"MonthView",DayView:"DayView",CalendarDay:"CalendarDay",CalendarDayLabel:"DayLabel",SelectedDay:"SelectedDay",MonthLabel:"MonthLabel",DayOfMonthLabel:"DayOfMonthLabel",DayOfWeekLabel:"DayOfWeekLabel",AppointmentWrapper:"AppointmentWrapper",Appointment:"Appointment",LeftVerticalStripe:"LeftVerticalStripe",
ButtonPane:"ButtonContainerWrapper",NavigationLink:"NavLink",HoverNavigationLink:"NavLinkHover",Feed:"feed",Story:"story",StoryPhoto:"storyphoto",StoryGradient:"storygradient",HoverStory:"storyhover",SelectedTab:"ui-tabs-selected"},USStates:["AL","AK","AZ","AR","CA","CO","CT","DE","FL","GA","HI","ID","IL","IN","IA","KS","KY","LA","ME","MD","MA","MI","MN","MS","MO","MT","NE","NV","NH","NJ","NM","NY","NC","ND","OH","OK","OR","PA","RI","SC","SD","TN","TX","UT","VT","VA","WA","WV","WI","WY"].sort(),FlashFontTextColor:"#737165",
FlashFontSrc:"../fonts/angelina_40.swf",SessionKeys:{HistoryKey:"HISTORYKEY"},StopWords:{en_US:{a:true,all:true,and:true,appointment:true,at:true,be:true,buy:true,by:true,call:true,day:true,daily:true,each:true,every:true,"for":true,from:true,get:true,he:true,her:true,him:true,i:true,"in":true,is:true,it:true,me:true,month:true,monthly:true,now:true,on:true,or:true,other:true,our:true,pick:true,"return":true,she:true,take:true,the:true,their:true,them:true,"this":true,to:true,us:true,week:true,weekly:true,
weekday:true,when:true,"while":true,who:true,"with":true,year:true,january:true,february:true,march:true,april:true,may:true,june:true,july:true,august:true,september:true,october:true,november:true,december:true,monday:true,tuesday:true,wednesday:true,thursday:true,friday:true,saturday:true,sunday:true}},Tags:{Welcome:{FAMILY:"welcome.family",GETCOZIONYOURPHONE:"welcome.getcozionyourphone",CALENDAR_COLORS:"welcome.calendarcolors",CALENDAR_SHARING:"welcome.calendarsharing",SCHEDULES:"welcome.schedules",
WEEKLY_ROUTINE:"welcome.weeklyroutine",APPOINTMENT_REMINDERS:"welcome.appointmentreminders",WELCOME_CALENDAR:"welcome.calendar",WELCOME_MOBILE:"welcome.mobile"}},HiddenFeatures:{DINNERPLAN:"dinner_plan",MESSAGEBOARD:"family_message_board"}};jsRequire("scripts/widgets/calendar/ajax/WidgetDataSource.js");jsRequire("scripts/cozi/core/CoziConstants.js");jsRequire("scripts/cozi/util/StringUtil.js");
LocalWidgetDataSource=WidgetDataSource.extend({construct:function(){arguments.callee._superClass.construct.apply(this,[false])},getCoBrandData:function(coBrandName,successFn,failureFn){var url="../../scripts/cobrand/"+coBrandName+"/cobrand.js";var options=$.extend(this._getAjaxOptions(url,successFn,failureFn,"script"),{type:"GET"});$.ajax(options)},track:function(key,cobrand,parentPage){if(key=="authed"){var url=COZI_WIDGET_CONSTANTS.URL_TRACKING.format("PAGE_TOKEN","calendar").format("VERSION",parentPage?
parentPage:"").replace(/\/\//,"/");var options=$.extend(this._getAjaxOptions(url),{type:"POST"});$.ajax(options);this._trackGoogle(CoziConstants.ExternalData.GACodeAuthed,COZI_WIDGET_CONSTANTS.GOOGLE_USER_VAR.format("COBRAND",cobrand))}else if(key=="unAuthed")this._trackGoogle(CoziConstants.ExternalData.GACodeUnauthed,COZI_WIDGET_CONSTANTS.GOOGLE_USER_VAR.format("COBRAND",cobrand))},trackComScore:function(comScoreId){window._comscore=[{c1:COZI_WIDGET_CONSTANTS.COMSCORE_C1,c2:COZI_WIDGET_CONSTANTS.COMSCORE_C2,
c3:comScoreId}];var options=$.extend(this._getAjaxOptions(COZI_WIDGET_CONSTANTS.URL_COMSCORE),{type:"GET",error:function(){},dataType:"script"});$.ajax(options)},_getAjaxOptions:function(url,successFn,failureFn,dataType){if(!dataType)var dataType="json";return arguments.callee._superClass._getAjaxOptions.call(this,url,successFn,failureFn,dataType)},_getAuthDataType:function(){return"jsonp"},_trackGoogle:function(code,userVar){var pageTracker=_gat._getTracker(code);if(userVar)pageTracker._setVar(userVar);
pageTracker._trackPageview()}});jsRequire("scripts/cozi/core/CoziException.js");HtmlUtil={};HtmlUtil._htmlEncode=function(str){if(!str)return"";return $(document.createElement("span")).text(str.trim()).html()};HtmlUtil._htmlEncode_no_quot_apos=function(str){return HtmlUtil._htmlEncode(str).replace(/&quot;/g,'"').replace(/&apos;/g,"'")};HtmlUtil.htmlEncode=window.__innerHTML_does_quot_apos?HtmlUtil._htmlEncode_no_quot_apos:HtmlUtil._htmlEncode;
HtmlUtil.htmlDecode=function(str){if(!str)return"";if(!HtmlUtil.isHtmlEncoded(str))return str;str=str.replace(/\&lt;script.*?\&lt;\/script\&gt;/g,"");return $(document.createElement("span")).html(str.trim()).text()};HtmlUtil.htmlEntityRE=new RegExp("&(#x[a-f\\d]+|[a-z\\d]+|#\\d+);","i");HtmlUtil.isHtmlEncoded=function(str){return HtmlUtil.htmlEntityRE.test(str)};HtmlUtil.htmlEncodeIfNeeded=function(str){return HtmlUtil.isHtmlEncoded(str)?str:HtmlUtil.htmlEncode(str)};
HtmlUtil.htmlEncodeLineBreaks=function(str){return str.replace(/\n/g,"<br/>")};HtmlUtil.stripHtmlTags=function(str){if(!str)return"";return str.replace(/(<\/?[^>]*>)/g,"")};HtmlUtil.uriDecodeQueryString=function(str){if(!str)return"";return decodeURIComponent(str).replace(/\+/g," ")};HtmlUtil.normalizeUrl=function(str){if(!str)return"";if(str.indexOf(":")<0)str="http://"+str;str=str.replace(/:\/\/+/,"://");return str.replace(/([^:])\/+/g,"$1/")};
HtmlUtil.htmlDecodeStrings=function(data){if(typeof data==="object"||typeof data==="array"){for(var d in data)data[d]=HtmlUtil.htmlDecodeStrings(data[d]);return data}if(typeof data==="string")return HtmlUtil.htmlDecode(data);return data};jsRequire("IFrame/scripts/util/constants.js");
function Attendee(data){this._name=data.name||null;this._colorIndex=data.colorIndex||0;this._color=null;this._attendeeId=data.id||null;this._email=data.email||null;this._phone=data.phone||null;this._carrier=data.carrier||null}Attendee.getAttendeeFromJSON=function(json){return new Attendee({id:json.id,name:decodeURIComponent(json.name),colorIndex:json.colorIndex,email:decodeURIComponent(json.email),phone:json.email,carrier:json.carrier})};Attendee.prototype.getEncodedName=function(){return this._name};
Attendee.prototype.getColorIndex=function(){return this._colorIndex};Attendee.prototype.getColor=function(){return COZI_WIDGET_CONSTANTS.ATTENDEE_COLORS[this._colorIndex]};Attendee.prototype.getAttendeeId=function(){return this._attendeeId};Attendee.prototype.getEmail=function(){return this._email};Attendee.prototype.getPhone=function(){return this._phone};Attendee.prototype.getCarrier=function(){return this._carrier};
Attendee.prototype.toJSONString=function(){var buffer=[];buffer.push('{"id":"');buffer.push(this._attendeeId);buffer.push('", "name":"');buffer.push(encodeURIComponent(this._name||""));buffer.push('", "colorIndex":');buffer.push(this._colorIndex);buffer.push(', "email":"');buffer.push(encodeURIComponent(this._email||""));buffer.push('", "phone":"');buffer.push(this._phone);buffer.push('", "carrier":"');buffer.push(encodeURIComponent(this._carrier||""));buffer.push('"}');return buffer.join("")};
Attendee.prototype.toString=function(){return this._name};Attendee._allColorIndex=0;Attendee._allAttendee=new Attendee({name:"All",id:COZI_WIDGET_CONSTANTS.EMPTY_GUID,colorIndex:Attendee._allColorIndex});Attendee.setAllColorIndex=function(newIdx){Attendee._allColorIndex=newIdx;Attendee._allAttendee._colorIndex=newIdx};Attendee.getAllAttendee=function(){return Attendee._allAttendee};
Attendee.getAttendeeFromTreeNode=function(node){return new Attendee({name:node.get("name"),colorIndex:node.get("color"),id:node.get("id"),email:node.get("email"),phone:node.get("phone"),carrier:node.get("carrier")})};jsRequire("scripts/third-party/date-functions.js");jsRequire("scripts/cozi/core/CoziException.js");DateUtil=new Object;DateUtil.minDate=new Date("1 Jan 1970 00:00:00");DateUtil.msInMinute=60*1E3;DateUtil.msInHour=60*60*1E3;DateUtil.msInDay=24*60*60*1E3;DateUtil.SundayDayNumber=0;
DateUtil.MondayDayNumber=1;DateUtil.ZeroTime="00:00:00";DateUtil.is24Hr=null;DateUtil.isSystemTime24Hour_orig=function(){if(DateUtil.is24Hr===null){var base=new Date;var justBeforeMidnight=new Date(base.getFullYear(),base.getMonth(),base.getDate(),0,0,-1);DateUtil.is24Hr=/:?23:?/.test(justBeforeMidnight.toLocaleTimeString())?true:false}return DateUtil.is24Hr};DateUtil.isSystemTime24Hour=function(){return!!DateUtil.is24Hr};
DateUtil.Formats={SimpleDate:"Ymd",SimpleDateTime:"Ymd\\THis",JSONDate:"Y-m-d",JSONTime:"H:i:s",LongDateTimeOffset:"Y-m-d H:i:s o",LongDateTime:"Y-m-d H:i:s",ShortDate:"n/j/Y",ShortDateShortYear:"n/j/y",ShortDateNoYear:"n/j",ShortTime:DateUtil.isSystemTime24Hour()?"G:i":"g:i b",ShortTimeNoMinutes:DateUtil.isSystemTime24Hour()?"G":"g b"};DateUtil.today=function(){return DateUtil.midnightOnDate(new Date)};
DateUtil.utcNow=function(){var localNow=new Date;return new Date(localNow.valueOf()+localNow.getTimezoneOffset()*6E4)};DateUtil.getClockHours=function(dateObj){return(dateObj.getHours()-1)%12+1};DateUtil.getUTCClockHours=function(dateObj){return(dateObj.getUTCHours()-1)%12+1};
DateUtil.DateCompare=function(date1,date2,tolerance){if(!(date1 instanceof Date)||!(date2 instanceof Date))return 1;var myTolerance=tolerance?tolerance:1E3;var lowerBound=date1.valueOf()-myTolerance;var upperBound=date1.valueOf()+myTolerance;var date2Value=date2.valueOf();var result=0;if(date2Value<lowerBound)result=1;if(date2Value>upperBound)result=-1;return result};DateUtil.DateEqual=function(date1,date2,tolerance){return!DateUtil.DateCompare(date1,date2,tolerance)};
DateUtil.DateToString=function(date,format){var myFormat=format?format:DateUtil.Formats.LongDateTimeOffset;return date.dateFormat(myFormat)};DateUtil.StringToDate=function(dateStr,format){var myFormat=format?format:DateUtil.Formats.LongDateTimeOffset;return Date.parseDate(dateStr,myFormat)};DateUtil.DayFromDate=function(date){var day=new Date(date);day.setHours(0);day.setMinutes(0);day.setSeconds(0);day.setMilliseconds(0);return day};
DateUtil.TimeFromDate=function(date){var ms=Date.UTC(1970,0,1,date.getHours(),date.getMinutes(),date.getSeconds(),date.getMilliseconds());var day=new Date(ms);return day};DateUtil.DayCompare=function(date1,date2){var day1=DateUtil.DayFromDate(date1);var day2=DateUtil.DayFromDate(date2);var diff=day2.valueOf()-day1.valueOf();return diff<0?-1:diff>0?+1:0};
DateUtil.TimeCompare=function(date1,date2){var d1=new Date(date1.getTime());var d2=new Date(date2.getTime());d1.setFullYear(2001,1,1);d2.setFullYear(2001,1,1);var diff=d2.valueOf()-d1.valueOf();return diff<0?-1:diff>0?+1:0};DateUtil.DayEqual=function(date1,date2){return!DateUtil.DayCompare(date1,date2)};
DateUtil.AddDays=function(initDate,numDays){var ms=initDate.getMilliseconds();var sec=initDate.getSeconds();var min=initDate.getMinutes();var hour=initDate.getHours();var msToAdd=numDays*DateUtil.msInDay;var newDate=new Date(initDate.midnight().valueOf()+msToAdd);if(newDate.getHours()==23)newDate=newDate.AddHours(1);else if(newDate.getHours()==1)newDate=newDate.midnight();newDate.setMilliseconds(ms);newDate.setSeconds(sec);newDate.setMinutes(min);newDate.setHours(hour);return newDate};
DateUtil.AddHours=function(initDate,numHours){var initValue=initDate.valueOf();var offsetValue=numHours*DateUtil.msInHour;return new Date(initValue+offsetValue)};DateUtil.midnightOnDate=function(date){if(!date)throw new ArgumentNullException("DateUtil.midnightOnDate","date");if(date.getHours()===0&&date.getMinutes()===0&&date.getSeconds()===0)return date;return new Date(date.getFullYear(),date.getMonth(),date.getDate())};
DateUtil.getNextDay=function(date){if(!date)throw new ArgumentNullException("DateUtil.getNextDay","date");return this.AddDays(this.midnightOnDate(date),1)};DateUtil.getPreviousDay=function(date){if(!date)throw new ArgumentNullException("DateUtil.getPreviousDay","date");return this.AddDays(this.midnightOnDate(date),-1)};
DateUtil.addMonths=function(date,months){if(months<0)throw new ArgumentInvalidException("DateUtil.addMonths","months");var newDate=new Date(date);newDate.setMonth(newDate.getMonth()+months);if(newDate.getDate()<date.getDate())newDate.setDate(0);return new Date(newDate)};DateUtil.startOfMonth=function(d){var date=new Date(d);return(new Date(date.setDate(1))).midnight()};DateUtil.endOfMonth=function(d){var date=typeof d==="undefined"?new Date:new Date(d);var newDate=new Date(date.setDate(32));return(new Date(newDate.setDate(0))).midnight()};
DateUtil.firstOfNextMonth=function(d){var date=typeof d==="undefined"?new Date:new Date(d);var newDate=new Date(date.setDate(32));return(new Date(newDate.setDate(1))).midnight()};DateUtil.getDateTimeFromICal=function(dateString){var date=Date.parseDate(dateString,DateUtil.Formats.SimpleDateTime);if(date)return{hasTimeComponent:true,date:date};date=Date.parseDate(dateString,DateUtil.Formats.SimpleDate);if(date)return{hasTimeComponent:false,date:date};return null};
DateUtil.getDiffInDays=function(date1,date2){return Math.round((date1.midnight().valueOf()-date2.midnight().valueOf())/DateUtil.msInDay)};DateUtil.getDiffInHours=function(date1,date2){return Math.round((date1.valueOf()-date2.valueOf())/DateUtil.msInHour)};DateUtil.getDiffInMinutes=function(date1,date2){return Math.round((date1.valueOf()-date2.valueOf())/DateUtil.msInMinute)};
DateUtil.getFriendlyDateString=function(date,isHeader){if(!date)throw new ArgumentNullException("DateUtil.getFriendlyDateString","date");var dateStr;var midnight=this.midnightOnDate(date);var today=this.midnightOnDate(new Date);if(this.DayCompare(midnight,today)===0&&!isHeader)dateStr="Today";else if(this.DayCompare(midnight,this.getPreviousDay(today))===0&&!isHeader)dateStr="Yesterday";else{if(isHeader)dateStr="<strong>"+DateUtil.DayNames[DateUtil.DaysOfWeekKeys[date.getDay()]]+"</strong> "+date.dateFormat("F j");
else dateStr=date.dateFormat("l, F j");if(today.getFullYear()!=date.getFullYear())dateStr+=", "+date.getFullYear()}return dateStr};DateUtil.getFriendlyDateTimeString=function(date){if(date==null)return"";var a=[DateUtil.getFriendlyDateString(date),date.dateFormat(DateUtil.isSystemTime24Hour()?"G:i":"g:ia")];return a.join(", ")};DateUtil.getFriendlyTimeString=function(date){if(date==null)return"";return date.dateFormat(DateUtil.Formats.ShortTime)};
DateUtil.getTimeStr=function(hour,mins,includeMins,includeMeridiem,is24Hr){var meridiem="";var sep=":";if(!is24Hr){if(includeMeridiem)meridiem=hour>11?"p":"a";hour=hour%12;hour=hour===0?12:hour}if(includeMins){if(mins<10)mins="0"+mins}else{mins="";sep=""}return[hour,sep,mins,meridiem].join("")};
DateUtil.getDateIfValid=function(inData){if(inData==null)return null;if(inData instanceof Date)return inData;if(typeof inData==="string"){var parsedVal=Date.parseDate(inData,DateUtil.Formats.LongDateTimeOffset);if(parsedVal&&parsedVal instanceof Date)return parsedVal;parsedVal=Date.parseDate(inData,DateUtil.Formats.LongDateTime);if(parsedVal&&parsedVal instanceof Date)return parsedVal;parsedVal=Date.parseDate(inData,DateUtil.Formats.JSONDate);if(parsedVal&&parsedVal instanceof Date)return parsedVal;
parsedVal=Date.parseDate(inData,DateUtil.Formats.ShortDateShortYear);if(parsedVal&&parsedVal instanceof Date)return parsedVal;parsedVal=Date.parseDate(inData,DateUtil.Formats.ShortDate);if(parsedVal&&parsedVal instanceof Date)return parsedVal;parsedVal=Date.parseDate(inData,DateUtil.Formats.ShortDateNoYear);if(parsedVal&&parsedVal instanceof Date)return parsedVal;parsedVal=DateUtil.parseISO8601(inData);if(parsedVal&&parsedVal instanceof Date)return parsedVal;parsedVal=Date.parse(inData);if(!isNaN(parsedVal))return new Date(parsedVal)}var newDate=
new Date(inData);if(newDate&&!isNaN(newDate)&&newDate!="Invalid Date")return newDate;var intMs=parseInt(inData,10);if(!isNaN(intMs)&&inData==intMs)return new Date(intMs);return null};
DateUtil.getTimeIfValid=function(inData){if(inData==null)return null;if(inData instanceof Date)return inData;if(typeof inData==="string"){inData=inData.trim();var parsedVal=Date.parseDate(inData,DateUtil.Formats.JSONTime);if(parsedVal&&parsedVal instanceof Date)return parsedVal;var timePieces=/^(\d{1,2})(:)?(\d{1,2})?\s*([ap])?m?$/.exec(inData);if(timePieces){timePieces.shift();if(typeof timePieces[1]=="undefined")timePieces[1]=":";if(typeof timePieces[2]=="undefined")timePieces[2]="00";if(typeof timePieces[3]==
"undefined")timePieces[3]=parseInt(inData,10)>=12?" p":" a";inData=timePieces.join("");parsedVal=Date.parseDate(inData,DateUtil.Formats.ShortTime);if(parsedVal&&parsedVal instanceof Date)return parsedVal;parsedVal=Date.parseDate(inData,DateUtil.Formats.ShortTime.replace(/\s/,""));if(parsedVal&&parsedVal instanceof Date)return parsedVal}parsedVal=DateUtil.parseISO8601(inData);if(parsedVal&&parsedVal instanceof Date)return parsedVal;parsedVal=Date.parse(inData);if(!isNaN(parsedVal))return new Date(parsedVal)}var newDate=
new Date(inData);if(newDate&&!isNaN(newDate)&&newDate!="Invalid Date")return newDate;var intMs=parseInt(inData,10);if(!isNaN(intMs)&&inData==intMs)return new Date(intMs);return null};DateUtil.reformatDateString=function(dateString,format){var date=DateUtil.getDateIfValid(dateString);if(date)return DateUtil.DateToString(date,format);else return null};
DateUtil.getWeekIndex=function(date,firstDayNum){return DateUtil.getDiffInDays(DateUtil.getWeekStart(date,firstDayNum),DateUtil.getEpochWeekStart(firstDayNum))/7};DateUtil.getWeekStartForIndex=function(index,firstDayNum){return DateUtil.getEpochWeekStart(firstDayNum).AddDays(index*7)};DateUtil.getWeekStart=function(date,firstDayNum){firstDayNum=firstDayNum||0;return date.midnight().AddDays(firstDayNum-date.getDay())};
DateUtil.getEpochWeekStart=function(firstDayNum){if(firstDayNum===1)return new Date(1970,0,5);return new Date(1970,0,4)};
DateUtil.getDayLabel=function(labelDate,passedToday){var today=passedToday?passedToday:(new Date).midnight();var tomorrow=today.AddDays(1);var isCurrentYear=today.getFullYear()===labelDate.getFullYear();var isCurrentMonth=isCurrentYear&&today.getMonth()===labelDate.getMonth();var label="";if(labelDate.valueOf()===today.valueOf())label="today";else if(labelDate.valueOf()===tomorrow.valueOf()&&tomorrow.getDate()!=1)label="tomorrow";else if(!isCurrentMonth){label=Date.monthNames[labelDate.getMonth()];
if(!isCurrentYear)label=[label,labelDate.getFullYear()].join(" ")}return label};DateUtil.getNthWeekOfMonthNumber=function(date){var dayNumber=date.getDate();var daysInMonth=Date.daysInMonth[date.getMonth];var weekNumber=1+Math.floor((dayNumber-1)/7);var weeksInMonth=1+Math.floor((daysInMonth-1)/7);switch(weekNumber){case 1:case 2:case 3:return weekNumber;case 4:if(weeksInMonth<5)return-1;else return 4;default:return-1}};
DateUtil.getNthWeekOfMonth=function(date){var dayNumber=date.getDate();var daysInMonth=Date.daysInMonth[date.getMonth];var weekNumber=1+Math.floor((dayNumber-1)/7);var weeksInMonth=1+Math.floor((daysInMonth-1)/7);switch(weekNumber){case 1:return"1st";case 2:return"2nd";case 3:return"3rd";case 4:if(weeksInMonth<5)return"last";else return"4th";default:return"last"}};
DateUtil.spansMidnightToMidnight=function(firstDateTime,secondDateTime){var correctedFirstMs=firstDateTime.getTime()-firstDateTime.getTimezoneOffset()*DateUtil.msInMinute;var correctedSecondMs=secondDateTime.getTime()-secondDateTime.getTimezoneOffset()*DateUtil.msInMinute;if(correctedFirstMs%DateUtil.msInDay||correctedSecondMs%DateUtil.msInDay)return false;if(correctedSecondMs-correctedFirstMs===0)return false;return true};
DateUtil.isWeekDay=function(date){var dayOfWeek=date.getDay();if(0===dayOfWeek||6===dayOfWeek)return false;return true};DateUtil.parseDaysHoursMinutes=function(milliseconds){var mins=Math.floor(milliseconds/6E4);var days=Math.floor(mins/1440);mins-=days*1440;var hours=Math.floor(mins/60);mins-=hours*60;return{minutes:mins,hours:hours,days:days}};
DateUtil.createDurationText=function(milliseconds){if(milliseconds<60*1E3)return"";var portions=DateUtil.parseDaysHoursMinutes(milliseconds);var textBuilder=new Array;if(portions.days>0){textBuilder.push(portions.days.toString());textBuilder.push(1==portions.days?"day":"days")}if(portions.hours>0){textBuilder.push(portions.hours.toString());textBuilder.push(1==portions.hours?"hour":"hours")}if(portions.minutes>0||0===textBuilder.length){textBuilder.push(portions.minutes.toString());textBuilder.push(1==
portions.minutes?"minute":"minutes")}return textBuilder.join(" ")};DateUtil.getUtcDate=function(date){return new Date(Date.UTC(date.getFullYear(),date.getMonth(),date.getDate(),date.getHours(),date.getMinutes(),date.getSeconds()))};DateUtil.getLocalDate=function(date){var tmpDate=new Date(date.valueOf());tmpDate.setMinutes(tmpDate.getMinutes()-date.getTimezoneOffset());return tmpDate};
DateUtil.yearIsReasonable=function(date){return date&&date instanceof Date&&date.getFullYear()>1901&&date.getFullYear()<9999};
DateUtil.combineDateAndTime=function(date,time,addMeridiem){if(date&&!(date instanceof Date))try{date=dateFromText(date)}catch(err){}if(time&&!(time instanceof Date))try{time=timeFromText(time,addMeridiem)}catch(err){}var error=false;var errorMsg="";if(!date||!(date instanceof Date)){error=true;errorMsg="date"}if(!time||!(time instanceof Date))if(error)errorMsg="date and time";else{error=true;errorMsg="time"}if(error)throw new EvalError(errorMsg);return new Date(date.getFullYear(),date.getMonth(),
date.getDate(),time.getHours(),time.getMinutes(),time.getSeconds(),time.getMilliseconds())};
DateUtil.parseISO8601=function(dateStr){var regexp=/(\d\d\d\d)(-)?(\d\d)(-)?(\d\d)(T)?(\d\d)(:)?(\d\d)(:)?(\d\d)(\.\d+)?(Z|([+-])(\d\d)(:)?(\d\d))?/;var match=dateStr.match(new RegExp(regexp));if(match){var date=new Date;var offset=0;if(match[13]){date.setUTCDate(1);date.setUTCFullYear(parseInt(match[1],10));date.setUTCMonth(parseInt(match[3],10)-1);date.setUTCDate(parseInt(match[5],10));date.setUTCHours(parseInt(match[7],10));date.setUTCMinutes(parseInt(match[9],10));date.setUTCSeconds(parseInt(match[11],
10));if(match[12])date.setUTCMilliseconds(parseFloat(match[12])*1E3);else date.setUTCMilliseconds(0);if(match[13]!="Z"){offset=match[15]*60+parseInt(match[17],10);offset*=match[14]=="-"?-1:1;date.setTime(date.getTime()-offset*60*1E3)}}else{date.setDate(1);date.setFullYear(parseInt(match[1],10));date.setMonth(parseInt(match[3],10)-1);date.setDate(parseInt(match[5],10));date.setHours(parseInt(match[7],10));date.setMinutes(parseInt(match[9],10));date.setSeconds(parseInt(match[11],10));if(match[12])date.setMilliseconds(parseFloat(match[12])*
1E3);else date.setMilliseconds(0)}return date}else return null};DateUtil.DaysOfWeekKeys=["SU","MO","TU","WE","TH","FR","SA"];DateUtil.getDayOfWeekIndex=function(dayOfWeekKey){for(var i=0;i<DateUtil.DaysOfWeekKeys.length;i++)if(dayOfWeekKey==DateUtil.DaysOfWeekKeys[i])return i;return-1};DateUtil.sortDaysOfWeek=function(daysOfWeek){return daysOfWeek.sort(function(a,b){return DateUtil.getDayOfWeekIndex(a)-DateUtil.getDayOfWeekIndex(b)})};
DateUtil.DayNames={SU:"Sunday",MO:"Monday",TU:"Tuesday",WE:"Wednesday",TH:"Thursday",FR:"Friday",SA:"Saturday"};DateUtil.DayNamesAbbr={SU:"Sun",MO:"Mon",TU:"Tue",WE:"Wed",TH:"Thu",FR:"Fri",SA:"Sat"};DateUtil.getOrderedDayNames=function(dayKeys,abbr){return $.map(DateUtil.sortDaysOfWeek(dayKeys),function(dayKey){return abbr?DateUtil.DayNamesAbbr[dayKey]:DateUtil.DayNames[dayKey]})};
DateUtil.getTomorrowTimeOfDay=function(timeObj){var absoluteTime=DateUtil.TimeFromDate(timeObj);var hour=absoluteTime.getUTCHours();if(hour<12)return"Morning";if(hour<18)return"Afternoon";if(hour<22)return"Evening";return"night"};
DateUtil.getClosestDayOfWeek=function(dayOfWeekKey,date,noOffset){var today=date?date.midnight():DateUtil.today();var dowToday=today.getDay();var dowRequested=DateUtil.getDayOfWeekIndex(dayOfWeekKey);var offset=dowRequested-dowToday;if(!noOffset)offset=offset<0?offset+7:offset;return DateUtil.AddDays(today,offset)};
DateUtil.getDefaultStartTime=function(day){var startTime=day.midnight();if(DateUtil.DateEqual(startTime,DateUtil.today())){var now=new Date;var hours=now.getHours();var minutes=now.getMinutes();if(minutes<30)startTime.setMinutes(30);else hours++;startTime.setHours(hours)}else startTime.setHours(10);return startTime};DateUtil.isTimeStringValid=function(timeStr,addMeridiem){var isValid=false;try{isValid=timeFromText(timeStr,addMeridiem)?true:false}catch(ex){isValid=false}return isValid};
DateUtil.getEndDateTimeOffset=function(startTime,endTime,dateSpan,newStartTime){var startTimeValue=DateUtil.TimeFromDate(startTime).getTime();var newStartTimeValue=DateUtil.TimeFromDate(newStartTime).getTime();var endTimeValue=DateUtil.TimeFromDate(endTime).getTime()+DateUtil.msInDay*dateSpan;var timeDiff=newStartTimeValue-startTimeValue;var newEndDateTimeValue=endTimeValue+timeDiff;var newEndTimeValue=Math.abs(newEndDateTimeValue%DateUtil.msInDay);var newDateSpan=(newEndDateTimeValue-newEndTimeValue)/
DateUtil.msInDay;newDateSpan=Math.abs(newDateSpan);newDateSpan=Math.floor(newDateSpan);var newEndTimeUTC=new Date(newEndTimeValue);var newEndTimeLocal=new Date;newEndTimeLocal.setHours(newEndTimeUTC.getUTCHours());newEndTimeLocal.setMinutes(newEndTimeUTC.getUTCMinutes());newEndTimeLocal.setSeconds(newEndTimeUTC.getUTCSeconds());newEndTimeLocal.setMilliseconds(newEndTimeUTC.getUTCMilliseconds());var result={endTime:newEndTimeLocal,dateSpan:newDateSpan};return result};
function _isLeapYear(year){return year%4===0&&year%100!==0||year%400===0}function _isDayValid(day,month,year){var maxDay=31;if(1==month){var isLeap=_isLeapYear(year);maxDay=isLeap?29:28}else{var thirtyDays=[8,3,5,10];for(var i=0;i<thirtyDays.length;++i)if(thirtyDays[i]==month){maxDay=30;break}}return day<=maxDay}
function dateFromText(text){var pattern=/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/;var match=text.match(pattern);if(null===match||4!=match.length)throw EvalError("invalid date format: "+text);var month=match[1]-1,date=match[2],year=match[3];if(month>11||month<0)throw EvalError("invalid month: "+text);if(!_isDayValid(date,month,year))throw EvalError("invalid day: "+text);return new Date(year,month,date)}
function timeFromText(text,addMeridiem){text=text.toLowerCase();var pattern=/^(\d{1,2})(?::(\d{2}))?\s?([ap]m?)?$/;var match=text.match(pattern);if(null===match)throw EvalError("invalid time format: "+text);var min=Number(match[2]||"0");var hour=Number(match[1]);if(!(match[3]||addMeridiem))throw EvalError("meridiem invalid");var meridiem=match[3];if(!meridiem&&!DateUtil.isSystemTime24Hour())meridiem=hour>7?"a":"p";else if(!meridiem)meridiem=hour<12?"a":"p";var isAm=meridiem.indexOf("a")===0?true:
false;if(12==hour&&isAm)hour=0;else if(hour<12&&!isAm)hour+=12;if(hour>23)throw EvalError("invalid hours: "+text);if(min>59)throw EvalError("invalid minutes: "+text);return new Date(1970,0,1,hour,min)}Date.prototype.getClockHours=function(){return DateUtil.getClockHours(this)};Date.prototype.getUTCClockHours=function(){return DateUtil.getUTCClockHours(this)};Date.prototype.Compare=function(otherDate){return DateUtil.DateCompare(this,otherDate)};
Date.prototype.Equal=function(otherDate){return DateUtil.DateEqual(this,otherDate)};Date.prototype.AddHours=function(hourCount){return DateUtil.AddHours(this,hourCount)};Date.prototype.AddDays=function(dayCount){return DateUtil.AddDays(this,dayCount)};Date.prototype.midnight=function(){return DateUtil.midnightOnDate(this)};Date.prototype.getNextDay=function(){return DateUtil.getNextDay(this)};Date.prototype.getPreviousDay=function(){return DateUtil.getPreviousDay(this)};
Date.prototype.toFriendlyDateString=function(){return DateUtil.getFriendlyDateString(this)};Date.prototype.toFriendlyDateTimeString=function(){return DateUtil.getFriendlyDateTimeString(this)};Date.prototype.toFriendlyTimeString=function(){return DateUtil.getFriendlyTimeString(this)};Date.prototype.toFloatingString=function(key){function f(n){return n<10?"0"+n:n}return this.getFullYear()+"-"+f(this.getMonth()+1)+"-"+f(this.getDate())+"T"+f(this.getHours())+":"+f(this.getMinutes())+":"+f(this.getSeconds())};
jsRequire("scripts/cozi/core/CoziConstants.js");jsRequire("scripts/cozi/core/CoziClass.js");jsRequire("scripts/cozi/util/DateUtil.js");
Photo=CoziClass.extend({construct:function(data){this._url="";this._width=0;this._height=0;this._size=0;this._thumbUrl="";this._thumbWidth=0;this._thumbHeight=0;this._thumbSize=0;this._exifDateTimeOriginal=null;this._id=CoziConstants.EmptyGuid;if(data){this._url=data.url;this._width=parseInt(data.width,10);this._height=parseInt(data.height,10);this._id=data.id;if(data.size)this._size=data.size;if(data.exifDateTimeOriginal)this._exifDateTimeOriginal=DateUtil.getDateIfValid(data.exifDateTimeOriginal);
if(data.thumbUrl){this._thumbUrl=data.thumbUrl;this._thumbHeight=data.thumbHeight;this._thumbWidth=data.thumbWidth;this._thumbSize=data.thumbSize}}},getUrl:function(){return this._url},getWidth:function(){return this._width},getHeight:function(){return this._height},getId:function(){return this._id},isEmpty:function(){return!this._url},isLandscape:function(){return this._width>this._height},isPortrait:function(){return this._height>this._width},isSquare:function(){return this._height==this._width},
resize:function(maxDims){if(this._height===0||this._width===0)return this;var wScaleFactor=maxDims.maxWidth?maxDims.maxWidth/this._width:1;var hScaleFactor=maxDims.maxHeight?maxDims.maxHeight/this._height:1;if(wScaleFactor>=1&&hScaleFactor>=1)return this;var scaleFactor=wScaleFactor<=hScaleFactor?wScaleFactor:hScaleFactor;this._width*=scaleFactor;this._height*=scaleFactor;return this},toDto:function(){var dto={url:this._url,width:this._width,height:this._height,id:this._id};if(this._size)dto.size=
this._size;if(this._exifDateTimeOriginal)dto.exifDateTimeOriginal=this._exifDateTimeOriginal?this._exifDateTimeOriginal.toFloatingString():null;if(this._thumbUrl){dto.thumbUrl=this._thumbUrl;dto.thumbHeight=this._thumbHeight;dto.thumbWidth=this._thumbWidth;dto.thumbSize=this._thumbSize}dto.md5="remove1";dto.md5hash="remove2";return dto}});
FamilyPhoto=Photo.extend({construct:function(data){arguments.callee._superClass.construct.call(this,data);this._isDefault=data?data.isDefault:true},getHomePageUrl:function(){if(this._isDefault)return CoziConstants.ImageUrls.DefaultHomepageFamilyPhoto;return arguments.callee._superClass.getUrl.call(this)},isDefault:function(){return this._isDefault},toDto:function(){var result=arguments.callee._superClass.toDto.call(this);result.isDefault=this._isDefault;return result}});jsRequire("scripts/cozi/core/CoziException.js");
jsRequire("scripts/cozi/util/HtmlUtil.js");jsRequire("scripts/cozi/util/StringUtil.js");jsRequire("scripts/widgets/data/AttendeeLight.js");jsRequire("scripts/cozi/data/CalendarColors.js");jsRequire("scripts/cozi/shared/data/Photo.js");
Household=CoziClass.extend({construct:function(data){this._householdName=data.name||null;this._householdColorIndex=data.householdColorIndex||0,this._prettyName=data.prettyName||null;this._cobrand=data.cobrand||"COZI";this._journalName=data.journalName||null;this._timeZone=data.timeZone||null;this._accountId=data.accountId||null;this._familyPhoto=data.familyPhoto||null;this._postalCode=data.postalCode||null;this._region=data.region||null;this._householdMembers=[];if(data.householdMembers)for(var i=
0;i<data.householdMembers.length;i++)this._householdMembers.push(data.householdMembers[i]);this._membersById={};for(var i=0;i<this._householdMembers.length;i++)this._membersById[this._householdMembers[i].getAttendeeId()]=this._householdMembers[i]},getEncodedHouseholdName:function(){return this._householdName},getJournalName:function(){return this._journalName},getSortedHouseholdMembers:function(){return this._householdMembers},getHouseholdColorIndex:function(){return this._householdColorIndex},getTimeZone:function(){return this._timeZone},
getAccountId:function(){return this._accountId},getFamilyPhoto:function(){return this._familyPhoto},getPostalCode:function(){return this._postalCode},getRegion:function(){return this._region},getMemberById:function(id){return this._membersById[id]||null},toJSONString:function(){var buffer=["{"];buffer.push('"name":"');buffer.push(encodeURIComponent(this._householdName));buffer.push('", ');buffer.push('"allColor":');buffer.push(this._householdColorIndex);buffer.push(",");buffer.push('"prettyName":"');
buffer.push(encodeURIComponent(this._prettyName));buffer.push('", ');buffer.push('"cobrand":"');buffer.push(encodeURIComponent(this._cobrand));buffer.push('", ');buffer.push('"journalName":"');buffer.push(encodeURIComponent(this._journalName));buffer.push('", ');buffer.push('"timeZone":"');buffer.push(encodeURIComponent(this._timeZone));buffer.push('", ');buffer.push('"accountId":"');buffer.push(encodeURIComponent(this._accountId));buffer.push('", ');buffer.push('"postalCode":"');buffer.push(encodeURIComponent(this._postalCode));
buffer.push('", ');buffer.push('"region":"');buffer.push(encodeURIComponent(this._region));buffer.push('", ');buffer.push('"householdMembers":[');for(var i=0;i<this._householdMembers.length;i++){buffer.push(this._householdMembers[i].toJSONString());buffer.push(", ")}buffer.pop();buffer.push("]}");return buffer.join("")}});
Household.getHouseholdFromJSON=function(data){var householdMembers=[];for(var i=0;i<data.householdMembers.length;i++)householdMembers.push(Attendee.getAttendeeFromJSON(data.householdMembers[i]));return new Household({name:decodeURIComponent(data.name),householdColorIndex:data.allColor,prettyName:decodeURIComponent(data.prettyName),cobrand:decodeURIComponent(data.cobrand),journalName:decodeURIComponent(data.journalName),timeZone:decodeURIComponent(data.timeZone),accountId:decodeURIComponent(data.accountId),
postalCode:decodeURIComponent(data.postalCode),region:decodeURIComponent(data.region),householdMembers:householdMembers})};
Household.getHouseholdFromTreeNode=function(node){var householdMembers=[];var nodeAttendees=node.get("people").getList("person");if(nodeAttendees)for(var i=0;i<nodeAttendees.length;i++)householdMembers.push(Attendee.getAttendeeFromTreeNode(nodeAttendees[i]));return new Household({name:node.get("name"),prettyName:node.get("prettyName"),cobrand:node.get("cobrand"),householdColorIndex:node.get("allColor")?parseInt(node.get("allColor"),10):0,journalName:node.get("journalName"),timeZone:node.get("homeTimeZone"),
accountId:node.get("accountId"),familyPhoto:node.get("familyPhoto"),postalCode:node.get("postalCode"),region:node.get("region"),householdMembers:householdMembers})};jsRequire("scripts/widgets/data/AttendeeLight.js");jsRequire("scripts/cozi/util/HtmlUtil.js");
function Appointment(apptData){this._abbreviatedSubject1=HtmlUtil.htmlEncode(apptData.abbreviatedSubject1)||"";this._abbreviatedSubject2=HtmlUtil.htmlEncode(apptData.abbreviatedSubject2)||"";this._attendees=apptData.attendees;this._end=new Date;this._end.setISO8601(apptData.end);this._id=apptData.id||Math.ceil(Math.random()*1E6);this._isAllDay=apptData.isAllDay=="true"||apptData.isAllDay==true?true:false;this._isReadOnly=apptData.isReadOnly=="true"||apptData.isReadOnly==true?true:false;this._isRoutine=
apptData.isRoutine=="true"||apptData.isRoutine==true?true:false;this._location=HtmlUtil.htmlEncode(apptData.location)||"";this._notes=HtmlUtil.htmlEncode(apptData.notes)||"";this._recurrenceText="";this._source="";this._start=new Date;this._start.setISO8601(apptData.start);this._subject=HtmlUtil.htmlEncode(apptData.subject)||"";this._parseTimeSettings();return this}
Appointment.getAppointmentFromJSON=function(jsonData){var attendees=[];var jsonAttendees=jsonData.attendees;for(var i=0;i<jsonAttendees.length;i++)attendees.push(Attendee.getAttendeeFromJSON(jsonAttendees[i]));return new Appointment({id:jsonData.id,start:jsonData.start,end:jsonData.end,subject:Appointment._decode(jsonData.subject),abbreviatedSubject1:Appointment._decode(jsonData.abbreviatedSubject1),abbreviatedSubject2:Appointment._decode(jsonData.abbreviatedSubject2),location:Appointment._decode(jsonData.location),
notes:Appointment._decode(jsonData.notes),attendees:attendees,isAllDay:jsonData.isAllDay,isRoutine:jsonData.isRoutine,isReadOnly:jsonData.isReadOnly})};
Appointment.getAppointmentFromTreeNode=function(node,household){var attendees=[];var nodeAttendees=node.get("attendees").getList("attendee");for(var i=0;i<nodeAttendees.length;i++){var member=household.getMemberById(nodeAttendees[i].get("id"));var attendee=member?member:Attendee.getAllAttendee();attendees.push(attendee)}return new Appointment({id:node.get("id"),start:node.get("startTime"),end:node.get("endTime"),subject:HtmlUtil.htmlDecode(Appointment._decode(node.get("subject"))),abbreviatedSubject1:node.get("subjectAbbrev1")?
HtmlUtil.htmlDecode(Appointment._decode(node.get("subjectAbbrev1"))):null,abbreviatedSubject2:node.get("subjectAbbrev2")?HtmlUtil.htmlDecode(Appointment._decode(node.get("subjectAbbrev2"))):null,location:node.get("location")?HtmlUtil.htmlDecode(Appointment._decode(node.get("location"))):"",notes:node.get("notes")?HtmlUtil.htmlDecode(Appointment._decode(node.get("notes"))):null,attendees:attendees,isAllDay:node.get("isAllDayEvent")?node.get("isAllDayEvent"):false,isRoutine:node.get("isRoutine")?node.get("isRoutine"):
false,isReadOnly:node.get("isReadOnly")?node.get("isReadOnly"):false})};Appointment._decode=function(str){if(!str)return str;try{return decodeURIComponent(str)}catch(err){return decodeURIComponent(str.replace(/%(?![0-7][0-9A-F])/gi,"%25"))}};
Appointment.prototype.clone=function(){return new Appointment({id:this._id,subject:HtmlUtil.htmlDecode(this._subject),abbreviatedSubject1:HtmlUtil.htmlDecode(this._abbreviatedSubject1),abbreviatedSubject2:HtmlUtil.htmlDecode(this._abbreviatedSubject2),notes:HtmlUtil.htmlDecode(this._notes),location:HtmlUtil.htmlDecode(this._location),start:this._start.getISO8601(true),end:this._end.getISO8601(true),isAllDay:this._isAllDay,isRoutine:this._isRoutine,isReadOnly:this._isReadOnly,attendees:[].concat(this._attendees)})};
Appointment.prototype.endsAtMidnight=function(){return this._endsAtMidnight};Appointment.prototype.getAbbreviatedSubject1=function(){return this._abbreviatedSubject1};Appointment.prototype.getAbbreviatedSubject2=function(){return this._abbreviatedSubject2};Appointment.prototype.getAttendees=function(){return this._attendees};Appointment.prototype.getEndTime=function(){return this._end};Appointment.prototype.getId=function(){return this._id};Appointment.prototype.getLocation=function(){return this._location};
Appointment.prototype.getStartTime=function(){return this._start};Appointment.prototype.getSubject=function(){return this._subject};Appointment.prototype.getNotes=function(){return this._notes};Appointment.prototype.getRecurrenceText=function(){return this._recurrenceText};Appointment.prototype.getSource=function(){return this._source};Appointment.prototype.isAllDayEvent=function(){return this._isAllDay};Appointment.prototype.isPartialEnd=function(){return this._isPartialEnd};
Appointment.prototype.isPartialStart=function(){return this._isPartialStart};Appointment.prototype.isReadOnly=function(){return this._isReadOnly};Appointment.prototype.isRoutineEvent=function(){return this._isRoutine};Appointment.prototype.isZeroTime=function(){return this._isZeroTime};Appointment.prototype.setIsAllDayEvent=function(isAllDay){this._isAllDay=isAllDay};Appointment.prototype.setIsPartialEnd=function(isPartialEnd){this._isPartialEnd=isPartialEnd};
Appointment.prototype.setIsPartialStart=function(isPartialStart){this._isPartialStart=isPartialStart};Appointment.prototype.setEndTime=function(endTime){this._end=endTime;this._parseTimeSettings()};Appointment.prototype.setStartTime=function(startTime){this._start=startTime;this._parseTimeSettings()};Appointment.prototype.startsAtMidnight=function(){return this._startsAtMidnight};
Appointment.prototype.toJSONString=function(){var buffer=[];buffer.push("{");buffer.push('"id": "');buffer.push(this._id);buffer.push('", "start": "');buffer.push(this._start.getISO8601(true));buffer.push('", "end": "');buffer.push(this._end.getISO8601(true));buffer.push('", "subject": "');buffer.push(encodeURIComponent(HtmlUtil.htmlDecode(this._subject)));buffer.push('", "abbreviatedSubject1": "');buffer.push(encodeURIComponent(HtmlUtil.htmlDecode(this._abbreviatedSubject1)));buffer.push('", "abbreviatedSubject2": "');
buffer.push(encodeURIComponent(HtmlUtil.htmlDecode(this._abbreviatedSubject2)));buffer.push('", "location": "');buffer.push(encodeURIComponent(HtmlUtil.htmlDecode(this._location)));buffer.push('", "notes": "');buffer.push(encodeURIComponent(HtmlUtil.htmlDecode(this._notes)));buffer.push('", "isAllDay":');buffer.push(this._isAllDay);buffer.push(', "isRoutine":');buffer.push(this._isRoutine);buffer.push(', "isReadOnly":');buffer.push(this._isReadOnly);buffer.push(', "attendees":[');for(var i=0;i<this._attendees.length;i++){buffer.push(this._attendees[i].toJSONString());
if(i!=this._attendees.length-1)buffer.push(",")}buffer.push("]}");return buffer.join("")};
Appointment.prototype._parseTimeSettings=function(){this._isZeroTime=this._start.valueOf()==this._end.valueOf()?true:false;this._endsAtMidnight=!this._isZeroTime&&this._end==this._end.midnight()?true:false;this._startsAtMidnight=!this._isZeroTime&&this._start==this._start.midnight()?true:false;this._isPartialEnd=false;this._isPartialStart=false;this._isAllDay=this._endsAtMidnight&&this._startsAtMidnight&&DateUtil.getDiffInDays(this._start,this._end)==-1};
AppointmentParser={parse:function(appointments){var apptsById={};for(var key in appointments)for(var i=0;i<appointments[key].length;i++){var appt=appointments[key][i];if(!apptsById[appt.getId()])apptsById[appt.getId()]=[];apptsById[appt.getId()].push(appt)}for(id in apptsById){var fragments=apptsById[id];if(fragments[0].isZeroTime())continue;for(var i=0;i<fragments.length;i++){var fragment=fragments[i];if(!fragment.endsAtMidnight()&&fragment.getStartTime().getDate()!=fragment.getEndTime().getDate())this._expandMultidayFrag(appointments,
fragments,i);if(i<fragments.length-1)if(this._condenseSingledayFrag(appointments,fragments,i))i--}if(fragments.length)this._parseMultidayAppts(fragments)}},_condenseSingledayFrag:function(appointments,fragments,i){if(!fragments[i].endsAtMidnight()&&fragments[i].getEndTime().toString()==fragments[i+1].getStartTime().toString()){fragments[i+1].setStartTime(new Date(fragments[i].getStartTime().toString()));var deletedFrag=fragments.splice(i,1)[0];var originalEntryKey=deletedFrag.getStartTime().midnight().toString();
for(var j=0;j<appointments[originalEntryKey].length;j++)if(appointments[originalEntryKey][j].getId()==deletedFrag.getId()){appointments[originalEntryKey].splice(j,1);break}return true}return false},_expandMultidayFrag:function(appointments,fragments,i){var fragment=fragments[i];var extraFragment=fragment.clone();extraFragment.setStartTime(fragment.getEndTime().midnight());fragment.setEndTime(fragment.getEndTime().midnight());fragments.splice(i+1,0,extraFragment);var originalEntryKey=extraFragment.getStartTime().midnight().toString();
if(!appointments[originalEntryKey])appointments[originalEntryKey]=[];appointments[originalEntryKey].unshift(extraFragment)},_getNextNonConsecutiveFragmentIndex:function(fragments,startFromIndex){for(var i=startFromIndex;i<fragments.length;i++){if(i==fragments.length-1)return fragments.length;if(fragments[i].getEndTime().toString()!=fragments[i+1].getStartTime().toString())return i+1}return fragments.length},_parseMultidayAppts:function(fragments){var startIndex=0;var nextNonConsecutiveIndex=this._getNextNonConsecutiveFragmentIndex(fragments,
startIndex);while((nextNonConsecutiveIndex=this._getNextNonConsecutiveFragmentIndex(fragments,startIndex))<=fragments.length&&nextNonConsecutiveIndex>startIndex+1){fragments[startIndex++].setIsPartialStart(true);fragments[nextNonConsecutiveIndex-1].setIsPartialEnd(true);for(startIndex;startIndex<nextNonConsecutiveIndex-1;startIndex++)fragments[startIndex].setIsAllDayEvent(true)}}};jsRequire("scripts/widgets/data/HouseholdLight.js");jsRequire("scripts/widgets/data/AppointmentLight.js");jsRequire("scripts/widgets/util/AppointmentParser.js");
jsRequire("scripts/widgets/calendar/controls/CoziObserverSubject.js");jsRequire("IFrame/scripts/util/constants.js");
WidgetModel=CoziObserverSubject.extend({construct:function(startDate){arguments.callee._superClass.construct.apply(this,arguments);this._accountId=null;this._appointments=null;this._authToken=null;this._cachedAppointments=null;this._cachedHousehold=null;this._calendarVersion=0;this._cobrand=null;this._defaultAllColor=COZI_WIDGET_CONSTANTS.ATTENDEE_COLORS[0];this._duration=7;this._household=null;this._startDate=startDate},ageOffAppointments:function(){this.publish("Widget.Model.onAgeOffAppointments",
this._weedOutOldAppts())},getAccountId:function(){return this._accountId},getAppointments:function(){return this._appointments},getAuthToken:function(){return this._authToken},getCachedAppointments:function(){if(!this._cachedAppointments)this._cachedAppointments={};return this._cachedAppointments},getCachedHousehold:function(){if(!this._cachedHousehold)this._cachedHousehold={};return this._cachedHousehold},getCalendarVersion:function(){return this._calendarVersion},getDuration:function(){return this._duration},
getCobrand:function(){return this._cobrand},getHousehold:function(){return this._household},getReAuthParams:function(){return{}},getStartDate:function(){return this._startDate},isAuthFresh:function(){return false},isReAuthPossible:function(){return false},refreshSettings:function(){},setAccountId:function(accountId){this._accountId=accountId},setAppointments:function(appointmentTreeNodes,suppressPublish){this._appointments=null;if(appointmentTreeNodes){Logger.info("Widget.Model.setAppointments: found "+
appointmentTreeNodes.length+" appts");this._appointments={};for(var i=0;i<appointmentTreeNodes.length;i++){var appt=Appointment.getAppointmentFromTreeNode(appointmentTreeNodes[i],this._household);var key=(new Date(appt.getStartTime())).midnight().toString();if(!this._appointments[key])this._appointments[key]=new Array;this._appointments[key].push(appt)}AppointmentParser.parse(this._appointments);this._weedOutOldAppts()}if(!suppressPublish)this.publish("Widget.Model.onSetAppointments")},setAuthParams:function(authData){if(authData){var cobrand;
if(authData.get("cobrand")){this._cobrand=authData.get("cobrand");COZI_WIDGET_CONSTANTS.ATTENDEE_COLORS[0]=this._cobrand.get("AllUserColor").replace(/^#[0-9a-f]{2}([0-9a-f]{6})/i,"#$1")}this.setAccountId(authData);this.setAuthToken(authData)}else{this.setAccountId(null);this.setAuthToken(null);this.setAppointments(null,true);this._calendarVersion=0;this._cobrand=null;this.setHouseholdData(null);COZI_WIDGET_CONSTANTS.ATTENDEE_COLORS[0]=this._defaultAllColor}},setAuthStatus:function(params){Logger.info("Widget.Model.setAuthStatus: isLogin: "+
params.isLogin);var authData=params.data;var errorCode=null;if(!params.isSuccess)errorCode=authData?authData.get("errorCode"):COZI_WIDGET_CONSTANTS.SERVER_ERROR_CODES.BAD_CRED;if(params.isLogin){if(params.isSuccess)this.setAuthParams(authData);this.publish("Widget.Model.onAuthenticationComplete",{errorCode:errorCode,cobrand:this._cobrand?this._cobrand.get("CoBrand"):null})}else{if(params.isSuccess)this.setAuthParams(null);if(window.HeartbeatHandler){HeartbeatHandler.stopHeartbeat(HeartbeatHandler.IDS.AGE_OFF_APPTS);
HeartbeatHandler.stopHeartbeat(HeartbeatHandler.IDS.LOAD_APPOINTMENTS)}this.publish("Widget.Model.onDeAuthenticationComplete",{errorCode:errorCode,cobrand:null})}},setAuthToken:function(authToken){this._authToken=authToken},setCalendarVersion:function(version){this._calendarVersion=version},setDuration:function(duration){this._duration=duration},setHouseholdData:function(householdTreeNode){this._household=null;if(householdTreeNode){this._household=Household.getHouseholdFromTreeNode(householdTreeNode);
Attendee.setAllColorIndex(this._household.getHouseholdColorIndex())}},setStartDate:function(startDate){this._startDate=startDate;this.publish("Widget.Model.onChangeStartDate")},_weedOutOldAppts:function(){var today=(new Date).midnight();today.setSeconds(0);today.setMilliseconds(0);var agedOffApptIds=[];var eligibleAppointments=this._appointments?this._appointments[today.toString()]:null;if(eligibleAppointments&&eligibleAppointments.length){var rightNow=new Date;rightNow.setMilliseconds(0);rightNow.setSeconds(59);
for(var i=0;i<eligibleAppointments.length;i++){if(DateUtil.DateCompare(eligibleAppointments[i].getEndTime(),rightNow)==1)continue;Logger.info("WidgetModel.ageOffAppointments: aging off "+eligibleAppointments[i].getSubject());agedOffApptIds.push(eligibleAppointments[i].getId());eligibleAppointments.splice(i,1);i--}}if(window.HeartbeatHandler&&(!eligibleAppointments||!eligibleAppointments.length))HeartbeatHandler.stopHeartbeat(HeartbeatHandler.IDS.AGE_OFF_APPTS);return agedOffApptIds}});jsRequire("scripts/widgets/calendar/controls/WidgetModel.js");
LocalWidgetModel=WidgetModel.extend({construct:function(){arguments.callee._superClass.construct.apply(this,arguments);this._authCookieRE=/\bcozi_auth=([^;]+)\b/},isAuthFresh:function(){return false},isReAuthPossible:function(){if(this._authCookieRE.test(document.cookie))return true;return false},setAccountId:function(authData){arguments.callee._superClass.setAccountId.call(this,authData?authData.get("accountId"):null)},setAuthToken:function(authData){var authToken=document.cookie&&this._authCookieRE.test(document.cookie)?
RegExp.$1:null;arguments.callee._superClass.setAuthToken.call(this,authToken)}});jsRequire("scripts/widgets/calendar/controls/CoziObserverSubject.js");
WidgetPresenter=CoziObserverSubject.extend({construct:function(view,model,dataSource){arguments.callee._superClass.construct.apply(this,arguments);this._view=view;this._model=model;this._dataSource=dataSource;var me=this;this._model.subscribe("Widget.Model.onAuthenticationComplete",function(){me.modelOnAuthenticationComplete.apply(me,arguments)});this._model.subscribe("Widget.Model.onChangeStartDate",function(){me.modelOnChangeStartDate.apply(me,arguments)});this._model.subscribe("Widget.Model.onDeAuthenticationComplete",
function(){me.modelOnDeAuthenticationComplete.apply(me)});this._model.subscribe("Widget.Model.onSetAppointments",function(){me.modelOnSetAppointments.apply(me,arguments)});this._view.subscribe("Widget.View.onPageLoad",function(){me.viewOnPageLoad.apply(me,arguments)});this._view.subscribe("Widget.View.onRenderAuthedData",function(){me.viewOnRenderAuthedData.apply(me,arguments)});this._view.subscribe("Widget.View.onRefresh",function(){me.viewOnRefresh.apply(me,arguments)});this._view.subscribe("Widget.View.onSettingsCancel",
function(){me.viewOnSettingsCancel.apply(me,arguments)});this._view.subscribe("Widget.View.onSettingsSubmit",function(){me.viewOnSettingsSubmit.apply(me,arguments)});this._view.subscribe("Widget.View.onSignIn",function(){me.viewOnSignIn.apply(me,arguments)});this._view.subscribe("Widget.View.onSignOut",function(){me.viewOnSignOut.apply(me,arguments)});this._view.subscribe("Widget.Track.Authed",function(){me.viewOnTrackAuthed.apply(me,arguments)});this._view.subscribe("Widget.Track.UnAuthed",function(){me.viewOnTrackUnAuthed.apply(me,
arguments)});return this},modelOnAuthenticationComplete:function(msgArgs){var errorCode=msgArgs.errorCode;if(errorCode==null)this._view.renderAuthedWidget();else this._view.renderError(errorCode)},modelOnChangeStartDate:function(){this._view.refresh(this._model.getStartDate())},modelOnDeAuthenticationComplete:function(errorCode){if(errorCode==null)this._view.renderUnAuthedWidget();else this._view.renderError(errorCode)},modelOnSetAppointments:function(){if(this._model.getAppointments())this._view.drawAppointmentData(this._model.getAppointments());
else this._view.appointmentFailure()},viewOnPageLoad:function(){if(this._model.isAuthFresh()){Logger.info("Widget.Presenter.viewOnPageLoad: auth is still fresh");this.modelOnAuthenticationComplete({errorCode:null})}else if(this._model.isReAuthPossible()){Logger.warning("Widget.Presenter.viewOnPageLoad: auth is stale, trying reauth");var me=this;var reAuthParams=this._model.getReAuthParams();this._dataSource.signIn(reAuthParams,function(authData){Logger.info("Widget.Presenter.signIn.success");me._model.setAuthStatus({isLogin:true,
data:authData,isSuccess:authData.get("success")})},function(){Logger.info("Widget.Presenter.signIn.failure");me._model.setAuthStatus({isLogin:true,isSuccess:false})})}else{Logger.warning("Widget.Presenter.viewOnPageLoad: no credentials found, can't log in");this._model.setAuthStatus({isLogin:false,isSuccess:true})}},viewOnRefresh:function(calendarVersion){if(arguments.length==0)calendarVersion=0;this._getAppointments(this._model.getStartDate(),this._model.getDuration(),calendarVersion)},viewOnRenderAuthedData:function(startTimeLocal){this._getAppointments(startTimeLocal,
this._model.getDuration(),0);if(window.HeartbeatHandler){HeartbeatHandler.startHeartbeat(HeartbeatHandler.IDS.LOAD_APPOINTMENTS);HeartbeatHandler.startHeartbeat(HeartbeatHandler.IDS.AGE_OFF_APPTS)}},viewOnSettingsCancel:function(){this._model.refreshSettings(false)},viewOnSettingsSubmit:function(){this._model.refreshSettings(true)},viewOnSignIn:function(userName,password,isRememberMe){var me=this;this._dataSource.signIn({USER_NAME:encodeURIComponent(userName),PASSWORD:encodeURIComponent(password),
IS_REMEMBER:isRememberMe},function(authData){Logger.info("Widget.Presenter.signIn.success");var successNode=authData.get("success");var isSuccess=typeof successNode=="string"?successNode=="true"?true:false:successNode;me._model.setAuthStatus({isLogin:true,data:authData,isSuccess:isSuccess})},function(){Logger.info("Widget.Presenter.signIn.failure");me._model.setAuthStatus({isLogin:true,isSuccess:false})})},viewOnSignOut:function(){var me=this;this._dataSource.signOut(function(authData){var isSuccess=
false;if(!authData)isSuccess=true;else{var successNode=authData.get("success");isSuccess=typeof successNode=="string"?successNode=="true"?true:false:successNode}Logger.info("Widget.Presenter.signOut.success");me._model.setAuthStatus({isLogin:false,data:authData,isSuccess:isSuccess})},function(){Logger.info("Widget.Presenter.signOut.failure");me._model.setAuthStatus({isLogin:false,isSuccess:false})})},viewOnTrackAuthed:function(cobrand,parentPage){this._dataSource.track("authed",cobrand,parentPage)},
viewOnTrackUnAuthed:function(cobrand,parentPage){this._dataSource.track("unAuthed",cobrand,parentPage)},widgetOnCheckAgeOffAppointments:function(){this._model.ageOffAppointments()},widgetOnCheckDateHeartbeat:function(){var testDate=(new Date).midnight();if(testDate.toString()!=this._model.getStartDate().toString()){Logger.warning("heartbeat: checkTodaysDate: date has changed");this._model.setStartDate(testDate)}},widgetOnCheckVersionHeartbeat:function(){this.viewOnRefresh(this._model.getCalendarVersion())},
_getAppointments:function(startTime,duration,calendarVersion){var me=this;var successListener=function(calendarTreeNode){if(calendarTreeNode.get("success")=="true"){me._model.setHouseholdData(calendarTreeNode.get("household"));me._model.setCalendarVersion(calendarTreeNode.get("version"));me._model.setAppointments(calendarTreeNode.get("appointments").getList("appointment"))}else{me._view.appointmentFailure(me._model.getCachedAppointments());var household=me._model.getCachedHousehold()}};var failureListener=
function(request,textStatus,errorThrown){if(request.status!=304){var household=me._model.getCachedHousehold();me._view.appointmentFailure(me._model.getCachedAppointments())}else{Logger.info("Data has not changed");me._view.drawAppointmentData(me._model.getAppointments())}};this._dataSource.getAppointmentData({START_DATE:startTime,DURATION:duration,ACCOUNT_ID:this._model.getAccountId(),AUTH:this._model.getAuthToken(),VERSION:calendarVersion},successListener,failureListener)}});
jQuery.fn.attendeeDot=function(options){var settings={color:"#000000",document:document,name:null,addFade:false};if(options)$.extend(settings,options);var outerDiv=$(this).addClass("AttendeeDotWrapper");var dot=$.make("span",null,settings.document).addClass("AttendeeDot").css("background-color",settings.color).appendTo(outerDiv);if(settings.name!==null){$.make("span",null,settings.document).addClass("AttendeeName").html(settings.name).appendTo(outerDiv);if(settings.addFade)outerDiv.append($.make("div",
null,settings.document).addClass("OverflowMaskRight"))}return this};
jQuery.fn.widgetViewDateLabel=function(date){var dateLabelDiv=$(document.createElement("div")).addClass("DayLabel");var relativeLabel=DateUtil.getDayLabel(date);if(relativeLabel!="today"&&relativeLabel!="tomorrow")relativeLabel="";var dayLabel=relativeLabel?relativeLabel.replace(/^\w/,function(m0){return m0.toUpperCase()}):Date.dayNames[date.getDay()];var dayLabelElem=$(document.createElement("span")).addClass("DayOfWeekLabel").html(dayLabel);var monthElem=$(document.createElement("span")).addClass("MonthYearLabel").html(Date.monthNames[date.getMonth()]);
var thisYear=(new Date).getFullYear();var dateStr=date.getFullYear()!=thisYear?date.getDate()+", "+date.getFullYear():date.getDate();var dayDateElem=$(document.createElement("span")).addClass("DayOfMonthNumber").html(dateStr);dateLabelDiv.append(dayLabelElem).append(monthElem).append(dayDateElem);this.append(dateLabelDiv);return this};jsRequire("IFrame/scripts/jquery/jquery.widgetViewDateLabel.js");
jQuery.fn.calendarDay=function(day,today,viewName,isStatic){var daysSinceToday=DateUtil.getDiffInDays(day,today);var dayElem=this.addClass("CalendarDay").attr("id","day_"+day.midnight().valueOf());if(daysSinceToday===0)dayElem.addClass("IsToday");if(daysSinceToday<0)dayElem.addClass("PastDay");if(daysSinceToday===1)dayElem.addClass("IsTomorrow");if(viewName==="month"){var apptWrapper=$.make("div").addClass("AppointmentWrapper");dayElem.addClass(day.getMonth()%2==today.getMonth()%2?"OddMonth":"EvenMonth").monthViewDayNumber(day);
$.make("div").addClass("HeightWrap").monthViewDateLabel(day).append(apptWrapper).appendTo(dayElem);if(day.getDate()==1)apptWrapper.addClass("FirstOfMonth");if($(".OtherYear",dayElem).length>0)dayElem.addClass("OtherYear");dayElem.append($.makeClearingDiv())}else if(viewName==="agenda"||viewName==="widget"){if(viewName==="agenda")dayElem.agendaViewDateLabel(day,isStatic);else dayElem.widgetViewDateLabel(day);dayElem.addClass(daysSinceToday%2===0?"EvenDay":"OddDay").append($.make("div").addClass("AppointmentWrapper")).append($.makeClearingDiv())}else if(viewName===
"day"){dayElem.dayViewDateHeader(day,today);dayElem.dayViewRowLayout(day,daysSinceToday)}return dayElem};$.fn.log=function(msg){console.log("%s: %o",msg,this);return this};$.fn.customFadeIn=function(speed,callback){$(this).fadeIn(speed,function(){if($.browser.msie)$(this).get(0).style.removeAttribute("filter");if(callback!==undefined)callback()})};
$.fn.customFadeOut=function(speed,callback){$(this).fadeOut(speed,function(){if($.browser.msie)$(this).get(0).style.removeAttribute("filter");if(callback!==undefined)callback()})};
$.fn.pulsate=function(numberOfTimes,fadeSpeed,speed,callback){if(!numberOfTimes||numberOfTimes<1)return;if(!fadeSpeed)fadeSpeed=200;if(!speed)speed=fadeSpeed;else if(fadeSpeed>speed)fadeSpeed=speed;var $this=$(this).fadeOut(fadeSpeed);if(numberOfTimes-- >0)setTimeout(function(){$this.fadeIn(fadeSpeed);setTimeout(function(){$this.pulsate(numberOfTimes,speed,callback)},speed)},speed);else setTimeout(function(){$this.fadeIn(fadeSpeed)},speed);if(numberOfTimes===0&&$.isFunction(callback))callback()};
$.fn.opacityFadeIn=function(speed,callback,useQueue){var element=$(this).css("opacity",0).removeClass("Hidden NoDisplay");element.animate({opacity:1},{duration:speed,complete:function(){if($.browser.msie)element.get(0).style.removeAttribute("filter");if(callback!==undefined)callback.apply(element,arguments)},queue:useQueue})};
$.fn.opacityFadeOut=function(speed,callback,useQueue){var element=$(this);element.animate({opacity:0},{duration:speed,complete:function(){element.addClass("NoDisplay");if($.browser.msie)element.get(0).style.removeAttribute("filter");if(callback!==undefined)callback.apply(element,arguments)},queue:useQueue})};
$.fn.slideLeftAndHide=function(speed,callback,useQueue){var element=$(this);element.animate({width:0,opacity:0},{duration:speed,easing:"easeInOutCubic",complete:function(){element.addClass("NoDisplay");if($.browser.msie)element.get(0).style.removeAttribute("filter");if($.isFunction(callback))element.hide(0,callback);else element.hide()}})};
$.fn.slideRightAndShow=function(toWidth,speed,callback,useQueue){var element=$(this);element.css("opacity",0).css("display","block").removeClass("Hidden NoDisplay");element.animate({width:toWidth,opacity:1},{duration:speed,easing:"easeInOutCubic",complete:function(){if($.browser.msie)element.get(0).style.removeAttribute("filter");if($.isFunction(callback))callback.apply(this,arguments)}})};$.fn.appendTo=function(parent){$(parent).append(this);return this};
$.fn.prependTo=function(parent){$(parent).prepend(this);return this};$.fn.insertBefore=function(parent){$(parent).before(this);return this};$.fn.insertAfter=function(parent){$(parent).after(this);return this};function _addAttributes(element,attributes){if(element&&attributes)$.each(attributes,function(attr,value){element.attr(attr,value)});return element}
$.extend($,{make:function(type,attributes,doc){if(!doc)var doc=document;return _addAttributes($(doc.createElement(type)),attributes)},makeClearingDiv:function(doc){return $.make("div",null,doc).addClass("ClearingDiv").css({clear:"both","float":"none"})},makeRadioButton:function(group,value,isChecked){var checkedAttribute=isChecked?'checked="checked"':"";return $('<input type="radio" name="<NAME/>" value="<VALUE/>" <CHECKED/>/>'.format({CHECKED:checkedAttribute,NAME:group,VALUE:value}))},all:function(collection,
testFn){for(var i=0;i<collection.length;i++)if(!testFn(collection[i],i))return false;return true},firstOrDefault:function(object,testFn,defaultValue){var foundObject=defaultValue;$.each(object,function(idx,item){var result=testFn.call(item,idx,item);if(result){foundObject=item;return false}else return true});return foundObject}});
$.extend($.expr[":"],{reallyVisible:function(a){return!($(a).is(":hidden")||$(a).parents(":hidden").length)},withDataValue:function(elem,i,match){var key=match[3];return $(elem).data(key)!=null}});jsRequire("scripts/cozi/shared/jquery/jquery.utils.js");
$.fn.imageCorners=function(options){var settings={dir_name:null,fourPanel:true,sideDivWidth:18,topDivHeight:18,bottomDivHeight:18,topHeight:18,sideWidth:18,bottomHeight:18,className:""};if(options)$.extend(settings,options);var $box=$(this);var dir_name=settings.dir_name;var topDivHeight=settings.topDivHeight;var sideDivWidth=settings.sideDivWidth;var bottomDivHeight=settings.bottomDivHeight;var zeroPxStr="0px";var topHeightStr=settings.topHeight+"px";var topPosStr="-"+topHeightStr;var sideWidthStr=
settings.sideWidth+"px";var sidePosStr="-"+sideWidthStr;var bottomHeightStr=settings.bottomHeight+"px";var bottomPosStr="-"+bottomHeightStr;var imageUrl="";if(dir_name)imageUrl=settings.fourPanel?'url("'+dir_name+'_4Panel.png")':'url("'+dir_name+'_Full.png")';var $imageBox=$.make("div").addClass("ImageCorners").prependTo($box).css({position:"absolute",top:topPosStr,bottom:bottomPosStr,left:sidePosStr,right:sidePosStr});if(settings.className)$imageBox.addClass(settings.className);var topLeft=$.make("div",
{"class":"topLeft"}).css({background:"top left no-repeat","background-image":imageUrl,position:"absolute",height:topDivHeight,width:sideDivWidth,top:zeroPxStr,left:zeroPxStr}).appendTo($imageBox);var topRight=$.make("div",{"class":"topRight"}).css({background:"top right no-repeat","background-image":imageUrl,position:"absolute",height:topDivHeight,width:sideDivWidth,top:zeroPxStr,right:zeroPxStr}).appendTo($imageBox);var bottomLeft=$.make("div").css({background:"bottom left no-repeat","background-image":imageUrl,
position:"absolute",height:bottomDivHeight,width:sideDivWidth,bottom:zeroPxStr,left:zeroPxStr}).appendTo($imageBox);var bottomRight=$.make("div").css({background:"bottom right no-repeat","background-image":imageUrl,position:"absolute",height:bottomDivHeight,width:sideDivWidth,bottom:zeroPxStr,right:zeroPxStr}).appendTo($imageBox);if(settings.fourPanel){topLeft.css({right:sideDivWidth,bottom:bottomDivHeight,width:"auto",height:"auto"});topRight.css({bottom:bottomDivHeight,height:"auto"});bottomLeft.css({right:sideDivWidth,
width:"auto"})}else{var horizontalUrl='url("'+dir_name+'_Horizontal.png")';var verticalUrl='url("'+dir_name+'_Vertical.png")';$.make("div").css({background:"top left repeat-x","background-image":verticalUrl,position:"absolute",height:topHeightStr,top:zeroPxStr,left:sideDivWidth,right:sideDivWidth}).appendTo($imageBox);$.make("div").css({background:"bottom left repeat-x","background-image":verticalUrl,position:"absolute",height:bottomHeightStr,bottom:zeroPxStr,left:sideDivWidth,right:sideDivWidth}).appendTo($imageBox);
$.make("div").css({background:"top left repeat-y","background-image":horizontalUrl,position:"absolute",width:sideWidthStr,top:topDivHeight,bottom:bottomDivHeight,left:zeroPxStr}).appendTo($imageBox);$.make("div").css({background:"top right repeat-y","background-image":horizontalUrl,position:"absolute",width:sideWidthStr,top:topDivHeight,bottom:bottomDivHeight,right:zeroPxStr}).appendTo($imageBox)}return this};
$.extend($,{logonPanel:function(){return $.make("div").imageCorners({sideDivWidth:40,bottomDivHeight:40}).addClass("LogonPanel")},coziFrame:function(){return $.make("div").imageCorners({dir_name:"../Images/borders/CoziFrame",sideDivWidth:40,bottomDivHeight:40}).addClass("CoziFrame")},taskFrame:function(){return $.make("div").imageCorners({dir_name:"../Images/borders/CoziFrame",sideWidth:9,topHeight:9,bottomHeight:9,sideDivWidth:40,bottomDivHeight:40}).addClass("CoziFrame")},calendarFrame:function(){return $.make("div").imageCorners({dir_name:"../Images/borders/SquareFrame",
sideWidth:18,topHeight:28,bottomHeight:28,sideDivWidth:40}).addClass("CoziFrame")},photoFrame:function(element,path){if(typeof element==="undefined")element=$.make("div");if(!path)path="../";return element.imageCorners({dir_name:path+"Images/borders/Photo",sideDivWidth:15,bottomDivHeight:20,topHeight:3,sideWidth:6,bottomHeight:13}).addClass("PhotoFrame")},modalFrame:function(){return $.make("div").imageCorners({dir_name:"../Images/Calendar/Edit/Edit",sideDivWidth:40,bottomDivHeight:40,topHeight:15,
sideWidth:15,bottomHeight:22}).addClass("ModalFrame")},squareFrame:function(){return $.make("div").imageCorners({dir_name:"../Images/borders/MoreContainer",topHeight:7,sideWidth:10,bottomHeight:13}).addClass("SquareFrame")},bubbleFrame:function(options){var settings=$.extend({dir_name:"../Images/borders/Bubble",topHeight:1,sideWidth:4,bottomHeight:16,bottomDivHeight:68,sideDivWidth:200},options);return $.make("div").imageCorners(settings).addClass("BubbleFrame")}});
var popupListFn={renderList:function(listContainer,listWrap,settings){listWrap.empty();var headers=settings.header;var lists=settings.menuItems;if(headers&&headers.constructor==Array)for(var i=0;i<lists.length||i<headers.length;i++)this.renderSection(listContainer,listWrap,lists[i],headers[i],true);else this.renderSection(listContainer,listWrap,lists,headers,false);if(settings.footer)listWrap.append($(settings.footer).addClass("ListFooter"));if(settings.menuId)listWrap.attr("id",settings.menuId);
return this},renderSection:function(listContainer,listWrap,list,header,multSections){function clickItem(evt){this.trigger("mouseleave");listContainer.removePopupList()}if(header)listWrap.append($(header).addClass("ListHeader"));if(list&&list.length>0){var applyDivider=false;var dividerRE=/^-+$/;var itemList=$.make("ul").appendTo(listWrap);var itemIndex=0;for(var i=0;i<list.length;i++){if(dividerRE.test(list[i].html)){applyDivider=true;continue}if(applyDivider){applyDivider=false;itemList=$.make("ul").addClass("Divider").appendTo(listWrap)}var $li_i=
$.make("li").append(list[i].html).appendTo(itemList);if(!multSections)$li_i.attr("id","li_"+itemIndex++);var className="";if(list[i].cssClass)className+=" "+list[i].cssClass;if(list[i].hover)$li_i.hover(popupListFn.getClosure($li_i,[list[i].hover.mouseoverFun]),popupListFn.getClosure($li_i,[list[i].hover.mouseoutFun]));if(list[i].clickFun||this._isLink($li_i)){className+=" Click";if(list[i].clickFun)$li_i.bind("click.li",popupListFn.getClosure($li_i,[list[i].clickFun,clickItem]))}if(list[i].disabled)className+=
" Disabled";$li_i.addClass(className)}}},getClosure:function(contextObj,listeners){if(!listeners||!listeners.length)return null;return function(evt){if(!contextObj.hasClass("Disabled"))for(var i=0;i<listeners.length;i++)listeners[i].call(contextObj,evt)}},position:function(listContainer,settings){var $parent=$(settings.button||settings.parentSelector);if($parent){var leftPos=$parent.offset().left+settings.offsetLeft;var topPos=$parent.offset().top+$parent.outerHeight()+settings.offsetBelow;var rightPos=
leftPos+listContainer.outerWidth();var bottomPos=topPos+listContainer.outerHeight()+settings.topHeight;var rightOverFlow=$(window).width()-rightPos;if(rightOverFlow<0)leftPos+=rightOverFlow;var bottomOverFlow=$(window).height()-bottomPos;if(bottomOverFlow<0){var newTopPos=$parent.offset().top-listContainer.outerHeight()+settings.offsetAbove;if(newTopPos>=0)topPos=newTopPos}listContainer.css({top:topPos,left:leftPos})}},_isLink:function(item){var contents=item.contents();return contents&&contents.length==
1&&contents.is("a")}};
$.extend($,{popupList:function(options){var settings={header:null,footer:null,menuItems:[],menuId:null,parentSelector:"",button:null,offsetLeft:2,offsetAbove:-8,offsetBelow:1,onClose:function(){},modal:false,imageCornerDir:"../Images/borders/PopupList/PopupList",topHeight:5,bottomHeight:10,sideWidth:5};if(options)$.extend(settings,options);var listContainer=$.make("div").addClass("ListContainer").addClass("PopupList").imageCorners({fourPanel:false,dir_name:settings.imageCornerDir,sideDivWidth:settings.sideWidth,
topDivHeight:settings.topHeight,bottomDivHeight:settings.bottomHeight,sideWidth:settings.sideWidth,topHeight:settings.topHeight,bottomHeight:settings.bottomHeight}).appendTo(document.body);var listWrap=$.make("div").appendTo(listContainer);if($.isFunction(settings.onOpen))settings.onOpen();if(settings.modal)$.make("div").addClass("PopupBlanket").appendTo(document.body).css("opacity","0.01");if(settings.button&&$.isFunction(settings.button.press))settings.button.press(true);else if(settings.button)settings.button.coziMenuButton("press",
true);function checkClickOut(e){var parents=$(e.target).parents("div.ListContainer");if(parents.length===0)listContainer.removePopupList()}function handleKeyDown(e){if(e.keyCode==CoziConstants.KeyCodes.Escape)listContainer.removePopupList()}$(document).bind("mousedown.pl",checkClickOut).bind("keydown.pl",handleKeyDown);$.extend(listContainer,{removePopupList:function(){$(document).unbind(".pl");listContainer.remove();$("div.PopupBlanket").remove();if(settings.button&&typeof settings.button.press===
"function")settings.button.press(false);if($.isFunction(settings.onClose))settings.onClose.apply(this)}});popupListFn.renderList(listContainer,listWrap,settings);popupListFn.position(listContainer,settings);return listContainer}});jsRequire("scripts/cozi/util/HtmlUtil.js");
var UiUtil={_zIndexedElementStack:{},getCursorPosition:function($field){var field=$field.get(0);if(typeof field.selectionStart!="undefined")return field.selectionStart;if(field.createTextRange){field.focus();var selectedRange=document.selection.createRange();var parentHTML=selectedRange.parentElement().outerHTML;var parentTagName=selectedRange.parentElement().tagName;selectedRange.moveStart("character",-field.value.length);var parentStartTag=parentHTML.substring(0,parentHTML.indexOf(">")+1);if(selectedRange.htmlText.indexOf(parentStartTag)==
-1)return selectedRange.text.length;var valueStartsAt=selectedRange.htmlText.indexOf(parentStartTag)+parentStartTag.length;return HtmlUtil.htmlDecode(selectedRange.htmlText.substring(valueStartsAt,selectedRange.htmlText.lastIndexOf("</"+parentTagName+">"))).length}},isAdBlocked:function(){return typeof AdUtil==="undefined"||typeof AdRotator==="undefined"},stackDialog:function(dialog,modalScreen){var maxExistingZIndex=UiUtil.getAdZIndex();for(var id in UiUtil._zIndexedElementStack){if(!UiUtil._zIndexedElementStack[id])continue;
var element=UiUtil._zIndexedElementStack[id].element;if(!element||!element.parent().length||element.css("display")=="none"||element.css("visibility")=="hidden")delete UiUtil._zIndexedElementStack[id];else maxExistingZIndex=Math.max(maxExistingZIndex,UiUtil._zIndexedElementStack[id].zIndex)}if(modalScreen){maxExistingZIndex=Math.max(maxExistingZIndex,parseInt(modalScreen.css("zIndex"),10));var screenId=modalScreen.attr("zIndexId")?modalScreen.attr("zIndexId"):Math.ceil(Math.random()*1E8);modalScreen.attr("zIndexId",
screenId);UiUtil._zIndexedElementStack[screenId]={element:modalScreen,zIndex:++maxExistingZIndex};UiUtil.setAdSafeZIndex(modalScreen,UiUtil._zIndexedElementStack[screenId].zIndex)}var dialogId=dialog.attr("zIndexId")?dialog.attr("zIndexId"):Math.ceil(Math.random()*1E8);dialog.attr("zIndexId",dialogId);maxExistingZIndex=Math.max(maxExistingZIndex,parseInt(dialog.css("zIndex"),10));UiUtil._zIndexedElementStack[dialogId]={element:dialog,zIndex:++maxExistingZIndex};UiUtil.setAdSafeZIndex(dialog,UiUtil._zIndexedElementStack[dialogId].zIndex)},
getAdZIndex:function(){var adZIndex=2E3;var visibleAd=$("div.AdDiv:visible");if(visibleAd&&visibleAd.length){adZIndex=parseInt(visibleAd.css("z-index"),10);if(isNaN(adZIndex))adZIndex=0}return adZIndex},setAdSafeZIndex:function(element,zIndexModifier){var adZIndex=UiUtil.getAdZIndex();var elementZIndex=parseInt(element.css("z-index"),10);if(isNaN(elementZIndex))elementZIndex=0;if(arguments.length>1&&!isNaN(zIndexModifier))zIndexModifier=/^[+-]/.test(zIndexModifier)?eval("adZIndex + 1"+zIndexModifier):
parseInt(zIndexModifier,10);else zIndexModifier=0;var newZIndex=Math.max(zIndexModifier,Math.max(elementZIndex,++adZIndex));element.css({zIndex:newZIndex});return element},setCursorPosition:function($field,position){var start=position;var end=position;var field=$field.get(0);if(field.createTextRange)end=0;return UiUtil.setSelectedPortion($field,start,end)},setSelectedPortion:function($field,start,end){var field=$field.get(0);if(field.createTextRange){var selRange=field.createTextRange();selRange.collapse(true);
selRange.moveStart("character",start);selRange.moveEnd("character",end);selRange.select()}else if(field.setSelectionRange)field.setSelectionRange(start,end);else if(typeof field.selectionStart!="undefined"){field.selectionStart=start;field.selectionEnd=end}field.focus()}};DateUtil={};DateUtil.minDate=new Date("1 Jan 1970 00:00:00");DateUtil.msInMinute=60*1E3;DateUtil.msInHour=60*60*1E3;DateUtil.msInDay=24*60*60*1E3;DateUtil.SundayDayNumber=0;DateUtil.MondayDayNumber=1;
DateUtil.AddDays=function(initDate,numDays){var ms=initDate.getMilliseconds();var sec=initDate.getSeconds();var min=initDate.getMinutes();var hour=initDate.getHours();var msToAdd=numDays*DateUtil.msInDay;var newDate=new Date(initDate.midnight().valueOf()+msToAdd);if(newDate.getHours()==23)newDate=newDate.AddHours(1);else if(newDate.getHours()==1)newDate=newDate.midnight();newDate.setMilliseconds(ms);newDate.setSeconds(sec);newDate.setMinutes(min);newDate.setHours(hour);return newDate};
DateUtil.AddHours=function(initDate,numHours){var initValue=initDate.valueOf();var offsetValue=numHours*DateUtil.msInHour;return new Date(initValue+offsetValue)};
DateUtil.DateCompare=function(date1,date2,tolerance){if(!(date1 instanceof Date)||!(date2 instanceof Date))return 1;var myTolerance=tolerance?tolerance:1E3;var lowerBound=date1.valueOf()-myTolerance;var upperBound=date1.valueOf()+myTolerance;var date2Value=date2.valueOf();var result=0;if(date2Value<lowerBound)result=1;if(date2Value>upperBound)result=-1;return result};DateUtil.DateEqual=function(date1,date2,tolerance){return!DateUtil.DateCompare(date1,date2,tolerance)};
Date.prototype.AddHours=function(hourCount){return DateUtil.AddHours(this,hourCount)};Date.prototype.dateFormat=function(format){if(Date.formatFunctions[format]==null)Date.createNewFormat(format);var func=Date.formatFunctions[format];return this[func]()};
DateUtil.getDayLabel=function(labelDate,passedToday){var today=passedToday?passedToday:(new Date).midnight();var tomorrow=today.AddDays(1);var isCurrentYear=today.getFullYear()==labelDate.getFullYear();var isCurrentMonth=isCurrentYear&&today.getMonth()==labelDate.getMonth();var label="";if(labelDate.valueOf()==today.valueOf())label="today";else if(labelDate.valueOf()==tomorrow.valueOf()&&tomorrow.getDate()!=1)label="tomorrow";else if(!isCurrentMonth){label=Date.monthNames[labelDate.getMonth()];if(!isCurrentYear)label=
[label,labelDate.getFullYear()].join(" ")}return label};DateUtil.getDiffInDays=function(date1,date2){return Math.round((date1.midnight().valueOf()-date2.midnight().valueOf())/DateUtil.msInDay)};DateUtil.midnightOnDate=function(date){if(!date)throw new ArgumentNullException("DateUtil.midnightOnDate","date");if(date.getHours()==0&&date.getMinutes()==0&&date.getSeconds()==0)return date;return new Date(date.getFullYear(),date.getMonth(),date.getDate())};DateUtil.isSystemTime24Hour=function(){return false};
DateUtil.Formats={LongDateTime:"Y-m-d H:i:s o",ShortDate:"n/j/Y",ShortTime:DateUtil.isSystemTime24Hour()?"G:i":"g:i b"};Date.parseFunctions={count:0};Date.parseRegexes=[];Date.formatFunctions={count:0};Date.monthNames=["January","February","March","April","May","June","July","August","September","October","November","December"];Date.dayNames=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];Date.prototype.AddDays=function(dayCount){return DateUtil.AddDays(this,dayCount)};
Date.prototype.midnight=function(){return DateUtil.midnightOnDate(this)};
Date.prototype.getISO8601=function(utc){var year,month,day,hour,minutes,seconds;if(utc){year=this.getUTCFullYear();month=this.getUTCMonth();day=this.getUTCDate();hour=this.getUTCHours();minutes=this.getUTCMinutes();seconds=this.getUTCSeconds()}else{year=this.getFullYear();month=this.getMonth();day=this.getDate();hour=this.getHours();minutes=this.getMinutes();seconds=this.getSeconds()}var date=year+"-"+leftPadStr(month+1,2,0)+"-"+leftPadStr(day,2,0)+"T"+leftPadStr(hour,2,0)+":"+leftPadStr(minutes,
2,0)+":"+leftPadStr(seconds,2,0);if(utc)date=date+"Z";return date};
Date.prototype.setISO8601=function(isoDate){var d=isoDate.match(Date._RE_ISO8601);var offset=0;var date=new Date(d[1],0,1,0,0,0);if(d[2])date.setMonth(d[2]-1);if(d[3])date.setDate(d[3]);var dateOffset=date.getTimezoneOffset();if(d[4])date.setHours(d[4]);if(d[5])date.setMinutes(d[5]);if(d[6])date.setSeconds(d[6]);if(d[7])date.setMilliseconds(Number("0."+d[7])*1E3);if(d[8]){offset=Number(d[10])*60+Number(d[11]);offset*=d[9]=="-"?1:-1}else{var realHours=parseInt(d[4],10);if(dateOffset==date.getTimezoneOffset()&&
realHours!=date.getHours())offset+=(realHours-date.getHours())*60}offset-=date.getTimezoneOffset();time=Number(date)+offset*60*1E3;this.setTime(Number(time))};Date._RE_ISO8601=/([0-9]{4})(?:-([0-9]{2})(?:-([0-9]{2})(?:T([0-9]{2}):([0-9]{2})(?::([0-9]{2})(?:\.([0-9]+))?)?(?:Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?/;
Date.createNewFormat=function(format){var funcName="format"+Date.formatFunctions.count++;Date.formatFunctions[format]=funcName;var code="Date.prototype."+funcName+" = function(){return ";var special=false;var ch="";for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\")special=true;else if(special){special=false;code+="'"+escapeStr(ch)+"' + "}else code+=Date.getFormatCode(ch)}eval(code.substring(0,code.length-3)+";}")};
Date.getFormatCode=function(character){switch(character){case "d":return"leftPadStr(this.getDate(), 2, '0') + ";case "D":return"Date.dayNames[this.getDay()].substring(0, 3) + ";case "j":return"this.getDate() + ";case "l":return"Date.dayNames[this.getDay()] + ";case "S":return"this.getSuffix() + ";case "w":return"this.getDay() + ";case "z":return"this.getDayOfYear() + ";case "W":return"this.getWeekOfYear() + ";case "F":return"Date.monthNames[this.getMonth()] + ";case "m":return"leftPadStr(this.getMonth() + 1, 2, '0') + ";
case "M":return"Date.monthNames[this.getMonth()].substring(0, 3) + ";case "n":return"(this.getMonth() + 1) + ";case "t":return"this.getDaysInMonth() + ";case "L":return"(this.isLeapYear() ? 1 : 0) + ";case "Y":return"this.getFullYear() + ";case "y":return"('' + this.getFullYear()).substring(2, 4) + ";case "a":return"(this.getHours() < 12 ? 'am' : 'pm') + ";case "b":return"(this.getHours() < 12 ? 'a' : 'p') + ";case "A":return"(this.getHours() < 12 ? 'AM' : 'PM') + ";case "g":return"((this.getHours() %12) ? this.getHours() % 12 : 12) + ";
case "G":return"this.getHours() + ";case "h":return"leftPadStr((this.getHours() %12) ? this.getHours() % 12 : 12, 2, '0') + ";case "H":return"leftPadStr(this.getHours(), 2, '0') + ";case "i":return"leftPadStr(this.getMinutes(), 2, '0') + ";case "I":return"((leftPadStr(this.getMinutes(), 2, '0') == '00') ? '' : ':' + leftPadStr(this.getMinutes(), 2, '0') ) + ";case "s":return"leftPadStr(this.getSeconds(), 2, '0') + ";case "O":return"this.getGMTOffset() + ";case "o":return"this.getGMTOffsetWithMinutes() + ";
case "T":return"this.getTimezone() + ";case "Z":return"(this.getTimezoneOffset() * -60) + ";default:return"'"+escapeStr(character)+"' + "}};function escapeStr(string){return string.replace(/('|\\)/g,"\\$1")}function leftPadStr(val,size,ch){var result=new String(val);if(ch==null)ch=" ";while(result.length<size)result=ch+result;return result}
Config={getWebClientDomain:function(){var fullDomain=location.hostname.split(".");var port="";if(location.port)port=":"+location.port;else if(fullDomain[0].indexOf("daily")!=-1)port=":3080";else if(fullDomain[0].indexOf("qa")!=-1)port=":2080";else if(fullDomain[0].indexOf("stable")!=-1)port=":1080";return Config._getWebClientHostName()+port},getWebClientSecureDomain:function(){var fullDomain=location.hostname.split(".");var port=":443";port="";if(location.port)port=":"+(parseInt(location.port)+363);
else if(fullDomain[0].indexOf("daily")!=-1)port=":3443";else if(fullDomain[0].indexOf("qa")!=-1)port=":2443";else if(fullDomain[0].indexOf("stable")!=-1)port=":1443";return Config._getWebClientHostName()+port},_getWebClientHostName:function(){var hostNameSpecifiers=location.hostname.split(".");if(hostNameSpecifiers.length<2||hostNameSpecifiers[1]=="corp")return location.hostname;return hostNameSpecifiers.slice(-3).join(".")}};
jQuery.ui||function($){var _remove=$.fn.remove,isFF2=$.browser.mozilla&&parseFloat($.browser.version)<1.9;$.ui={version:"1.7.1",plugin:{add:function(module,option,set){var proto=$.ui[module].prototype;for(var i in set){proto.plugins[i]=proto.plugins[i]||[];proto.plugins[i].push([option,set[i]])}},call:function(instance,name,args){var set=instance.plugins[name];if(!set||!instance.element[0].parentNode)return;for(var i=0;i<set.length;i++)if(instance.options[set[i][0]])set[i][1].apply(instance.element,
args)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(el,a){if($(el).css("overflow")=="hidden")return false;var scroll=a&&a=="left"?"scrollLeft":"scrollTop",has=false;if(el[scroll]>0)return true;el[scroll]=1;has=el[scroll]>0;el[scroll]=0;return has},isOverAxis:function(x,reference,size){return x>reference&&x<reference+size},isOver:function(y,x,top,left,height,width){return $.ui.isOverAxis(y,top,height)&&$.ui.isOverAxis(x,
left,width)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(isFF2){var attr=$.attr,removeAttr=$.fn.removeAttr,ariaNS="http://www.w3.org/2005/07/aaa",ariaState=/^aria-/,ariaRole=/^wairole:/;$.attr=function(elem,name,value){var set=value!==
undefined;return name=="role"?set?attr.call(this,elem,name,"wairole:"+value):(attr.apply(this,arguments)||"").replace(ariaRole,""):ariaState.test(name)?set?elem.setAttributeNS(ariaNS,name.replace(ariaState,"aaa:"),value):attr.call(this,elem,name.replace(ariaState,"aaa:")):attr.apply(this,arguments)};$.fn.removeAttr=function(name){return ariaState.test(name)?this.each(function(){this.removeAttributeNS(ariaNS,name.replace(ariaState,""))}):removeAttr.call(this,name)}}$.fn.extend({remove:function(){$("*",
this).add(this).each(function(){$(this).triggerHandler("remove")});return _remove.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var scrollParent;if($.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position")))scrollParent=
this.parents().filter(function(){return/(relative|absolute|fixed)/.test($.curCSS(this,"position",1))&&/(auto|scroll)/.test($.curCSS(this,"overflow",1)+$.curCSS(this,"overflow-y",1)+$.curCSS(this,"overflow-x",1))}).eq(0);else scrollParent=this.parents().filter(function(){return/(auto|scroll)/.test($.curCSS(this,"overflow",1)+$.curCSS(this,"overflow-y",1)+$.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!scrollParent.length?$(document):scrollParent}});$.extend($.expr[":"],
{data:function(elem,i,match){return!!$.data(elem,match[3])},focusable:function(element){var nodeName=element.nodeName.toLowerCase(),tabIndex=$.attr(element,"tabindex");return(/input|select|textarea|button|object/.test(nodeName)?!element.disabled:"a"==nodeName||"area"==nodeName?element.href||!isNaN(tabIndex):!isNaN(tabIndex))&&!$(element)["area"==nodeName?"parents":"closest"](":hidden").length},tabbable:function(element){var tabIndex=$.attr(element,"tabindex");return(isNaN(tabIndex)||tabIndex>=0)&&
$(element).is(":focusable")}});function getter(namespace,plugin,method,args){function getMethods(type){var methods=$[namespace][plugin][type]||[];return typeof methods=="string"?methods.split(/,?\s+/):methods}var methods=getMethods("getter");if(args.length==1&&typeof args[0]=="string")methods=methods.concat(getMethods("getterSetter"));return $.inArray(method,methods)!=-1}$.widget=function(name,prototype){var namespace=name.split(".")[0];name=name.split(".")[1];$.fn[name]=function(options){var isMethodCall=
typeof options=="string",args=Array.prototype.slice.call(arguments,1);if(isMethodCall&&options.substring(0,1)=="_")return this;if(isMethodCall&&getter(namespace,name,options,args)){var instance=$.data(this[0],name);return instance?instance[options].apply(instance,args):undefined}return this.each(function(){var instance=$.data(this,name);!instance&&!isMethodCall&&$.data(this,name,new $[namespace][name](this,options))._init();instance&&isMethodCall&&$.isFunction(instance[options])&&instance[options].apply(instance,
args)})};$[namespace]=$[namespace]||{};$[namespace][name]=function(element,options){var self=this;this.namespace=namespace;this.widgetName=name;this.widgetEventPrefix=$[namespace][name].eventPrefix||name;this.widgetBaseClass=namespace+"-"+name;this.options=$.extend({},$.widget.defaults,$[namespace][name].defaults,$.metadata&&$.metadata.get(element)[name],options);this.element=$(element).bind("setData."+name,function(event,key,value){if(event.target==element)return self._setData(key,value)}).bind("getData."+
name,function(event,key){if(event.target==element)return self._getData(key)}).bind("remove",function(){return self.destroy()})};$[namespace][name].prototype=$.extend({},$.widget.prototype,prototype);$[namespace][name].getterSetter="option"};$.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled"+" "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(key,value){var options=key,self=this;
if(typeof key=="string"){if(value===undefined)return this._getData(key);options={};options[key]=value}$.each(options,function(key,value){self._setData(key,value)})},_getData:function(key){return this.options[key]},_setData:function(key,value){this.options[key]=value;if(key=="disabled")this.element[value?"addClass":"removeClass"](this.widgetBaseClass+"-disabled"+" "+this.namespace+"-state-disabled").attr("aria-disabled",value)},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",
true)},_trigger:function(type,event,data){var callback=this.options[type],eventName=type==this.widgetEventPrefix?type:this.widgetEventPrefix+type;event=$.Event(event);event.type=eventName;if(event.originalEvent)for(var i=$.event.props.length,prop;i;){prop=$.event.props[--i];event[prop]=event.originalEvent[prop]}this.element.trigger(event,data);return!($.isFunction(callback)&&callback.call(this.element[0],event,data)===false||event.isDefaultPrevented())}};$.widget.defaults={disabled:false};$.ui.mouse=
{_mouseInit:function(){var self=this;this.element.bind("mousedown."+this.widgetName,function(event){return self._mouseDown(event)}).bind("click."+this.widgetName,function(event){if(self._preventClickEvent){self._preventClickEvent=false;event.stopImmediatePropagation();return false}});if($.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);$.browser.msie&&
this.element.attr("unselectable",this._mouseUnselectable)},_mouseDown:function(event){event.originalEvent=event.originalEvent||{};if(event.originalEvent.mouseHandled)return;this._mouseStarted&&this._mouseUp(event);this._mouseDownEvent=event;var self=this,btnIsLeft=event.which==1,elIsCancel=typeof this.options.cancel=="string"?$(event.target).parents().add(event.target).filter(this.options.cancel).length:false;if(!btnIsLeft||elIsCancel||!this._mouseCapture(event))return true;this.mouseDelayMet=!this.options.delay;
if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){self.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(event)&&this._mouseDelayMet(event)){this._mouseStarted=this._mouseStart(event)!==false;if(!this._mouseStarted){event.preventDefault();return true}}this._mouseMoveDelegate=function(event){return self._mouseMove(event)};this._mouseUpDelegate=function(event){return self._mouseUp(event)};$(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+
this.widgetName,this._mouseUpDelegate);$.browser.safari||event.preventDefault();event.originalEvent.mouseHandled=true;return true},_mouseMove:function(event){if($.browser.msie&&!event.button)return this._mouseUp(event);if(this._mouseStarted){this._mouseDrag(event);return event.preventDefault()}if(this._mouseDistanceMet(event)&&this._mouseDelayMet(event)){this._mouseStarted=this._mouseStart(this._mouseDownEvent,event)!==false;this._mouseStarted?this._mouseDrag(event):this._mouseUp(event)}return!this._mouseStarted},
_mouseUp:function(event){$(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=event.target==this._mouseDownEvent.target;this._mouseStop(event)}return false},_mouseDistanceMet:function(event){return Math.max(Math.abs(this._mouseDownEvent.pageX-event.pageX),Math.abs(this._mouseDownEvent.pageY-event.pageY))>=this.options.distance},_mouseDelayMet:function(event){return this.mouseDelayMet},
_mouseStart:function(event){},_mouseDrag:function(event){},_mouseStop:function(event){},_mouseCapture:function(event){return true}};$.ui.mouse.defaults={cancel:null,distance:1,delay:0}}(jQuery);jsRequire("scripts/third-party/ui.core.js");
(function($){$.widget("cozi.widget",{yield:null,returnValues:{},before:function(method,f){var original=this[method];this[method]=function(){f.apply(this,arguments);return original.apply(this,arguments)}},after:function(method,f){var original=this[method];this[method]=function(){this.returnValues[method]=original.apply(this,arguments);return f.apply(this,arguments)}},around:function(method,f){var original=this[method];this[method]=function(){var tmp=this.yield;this.yield=original;var ret=f.apply(this,
arguments);this.yield=tmp;return ret}},instanceOf:function(widgetName){var e=$(this.element).get(0);return $.cache[e[$.expando]][widgetName]!==undefined}});$.cozi.widget.defaults={extend:$.extend};var clone=function(F){return function(o){F.prototype=o;return new F}}(function(){});var OVERRIDE=/xyz/.test(function(){xyz})?/\b_super\b/:/.*/;$.cozi.widget.subclass=function subclass(name,extensionObj){$.widget(name);name=name.split(".");var scopeName=name[0];var widgetName=name[1];var widget=$[scopeName][widgetName],
superclass=this,superproto=superclass.prototype;var proto=widget.prototype=clone(superproto);$.extend(proto,extensionObj);widget.subclass=subclass;widget.defaults=clone(superclass.defaults);widget.getter=this.getter;widget.getterSetter=this.getterSetter;for(key in proto)if(proto.hasOwnProperty(key))switch(key){case "_init":var init=proto._init;proto._init=function(){superproto._init.apply(this);init.apply(this);this.element.data(widgetName,this)};break;case "destroy":var destroy=proto.destroy;proto.destroy=
function(){destroy.apply(this);superproto.destroy.apply(this)};break;default:if($.isFunction(proto[key])&&$.isFunction(superproto[key])&&OVERRIDE.test(proto[key]))proto[key]=function(name,fn){return function(){var tmp=this._super;this._super=superproto[name];try{var ret=fn.apply(this,arguments)}finally{this._super=tmp}return ret}}(key,proto[key]);break}}})(jQuery);jsRequire("scripts/cozi/calendar/jquery/jquery.attendeeDot.js");jsRequire("scripts/cozi/shared/jquery/cozi.subClass.js");
$.cozi.widget.subclass("cozi.appointment",{_init:function(){if(!this.element.hasClass("Appointment"))return;this.element.addClass("AppointmentDiv").empty();if(!this.options.appointment)return;for(var key in this.options.cssClasses){var classesForKey=this.options.cssClasses[key];if(!classesForKey)this.options.cssClasses[key]="";else if(classesForKey.join)this.options.cssClasses[key]=classesForKey.join(" ")}this.element.data("apptId",this.options.appointment.getId());this._appendTimes(this.element);
this._appendAttendees(this.element);var details=$.make("div",null,this.options.document).addClass("AppointmentDetails").appendTo(this.element);this._appendSubject(details);this._appendLocation(details);this._appendNotes(details)},_appendAttendees:function(container){var attendees=this.options.appointment.getAttendees();var wrapper=$.make("span",null,this.options.document).addClass("AppointmentAttendees").appendTo(container);for(var i=0;i<attendees.length;i++){var attendeeWrap=$.make("span",null,this.options.document).addClass("AttendeeWrap").appendTo(wrapper);
var attendeeDot=$.make("span",null,this.options.document).attendeeDot({color:attendees[i].getColor(),document:this.options.document}).appendTo(attendeeWrap);if(!this.options.hasAttendeeName&&attendees[i].getEncodedName())attendeeDot.attr("title",attendees[i].getEncodedName());if(this.options.hasAttendeeName&&attendees[i].getEncodedName())$.make("span",null,this.options.document).addClass("AttendeeName").addClass(this.options.cssClasses.attendeeName).html(attendees[i].getEncodedName()).appendTo(attendeeWrap)}},
_appendLocation:function(container){var appointment=this.options.appointment;if(this.options.hasLocation&&appointment.getLocation())container.append($.make("span",null,this.options.document).addClass("AppointmentLocation").addClass(this.options.cssClasses.location).html("("+appointment.getLocation()+")"))},_appendNotes:function(container){var appointment=this.options.appointment;if(this.options.hasNotes&&appointment.getNotes())container.append($.make("span",null,this.options.document).addClass("AppointmentNotes").addClass(this.options.cssClasses.notes).html(appointment.getNotes()))},
_appendSubject:function(container){var appointment=this.options.appointment;if(this.options.hasSubject)container.append($.make("div",null,this.options.document).addClass("AppointmentSubject").addClass(this.options.cssClasses.subject).html(appointment.getSubject()));if(this.options.hasAbbreviatedSubject1&&appointment.getAbbreviatedSubject1())container.append($.make("div",null,this.options.document).addClass("AppointmentSubject").addClass("AbbreviatedSubject1").addClass(this.options.cssClasses.abbreviatedSubject1).html(appointment.getAbbreviatedSubject1()));
if(this.options.hasAbbreviatedSubject2&&appointment.getAbbreviatedSubject2())container.append($.make("div",null,this.options.document).addClass("AppointmentSubject").addClass("AbbreviatedSubject2").addClass(this.options.cssClasses.abbreviatedSubject2).html(appointment.getAbbreviatedSubject2()))},_appendTimes:function(container){var appointment=this.options.appointment;if(appointment.isAllDayEvent())container.append($.make("span",null,this.options.document).addClass("AppointmentTimes").addClass("AppointmentAllDay").html(this.options.allDayText));
else{var timeSpanTokens=this._getTimeSpanHtmlTokens(appointment);var times=$.make("span",null,this.options.document).addClass("AppointmentTimes").appendTo(container);$.make("span",null,this.options.document).addClass("AppointmentStartTime").text(timeSpanTokens.startTimeStr).appendTo(times);if(this.options.hasEndTime&&!appointment.isZeroTime()){$.make("span",null,this.options.document).addClass("AppointmentTimeSeparator").addClass(this.options.cssClasses.endTime).html(timeSpanTokens.separatorChar).appendTo(times);
$.make("span",null,this.options.document).addClass("AppointmentEndTime").addClass(this.options.cssClasses.endTime).text(timeSpanTokens.endTimeStr).appendTo(times)}}},_getTimeSpanHtmlTokens:function(appointment){var tokens={startTimeStr:"",endTimeStr:"",separatorChar:""};var startTime=appointment.getStartTime();var endTime=appointment.getEndTime();if(!appointment.isPartialEnd())tokens.startTimeStr=startTime.dateFormat(this.options.timeFormat);if(!appointment.isZeroTime()&&!appointment.isPartialStart())tokens.endTimeStr=
endTime.dateFormat(this.options.timeFormat);if(!appointment.isZeroTime())tokens.separatorChar=this.options.separatorRule(appointment);return tokens}});
$.cozi.appointment.defaults.extend({appointment:null,allDayText:COZI_WIDGET_CONSTANTS.en_US.ALL_DAY,cssClasses:{abbreviatedSubject1:"",abbreviatedSubject2:"",attendeeNames:"",endTime:"",location:"",notes:"",subject:""},document:document,hasAbbreviatedSubject1:true,hasAbbreviatedSubject2:false,hasAttendeeName:false,hasEndTime:true,hasLocation:true,hasNotes:true,hasSubject:true,separatorRule:function(appt){return appt.isPartialStart()||appt.isPartialEnd()?"&ndash;":"-"},timeFormat:"gIb"});
$.cozi.appointment.getter="";jsRequire("styles/PopupList.css");jsRequire("scripts/cozi/calendar/jquery/jquery.attendeeDot.js");jsRequire("scripts/cozi/calendar/jquery/jquery.calendarDay.js");jsRequire("scripts/cozi/core/CoziConstants.js");jsRequire("scripts/cozi/shared/jquery/jquery.imageCorners.js");jsRequire("scripts/cozi/shared/jquery/jquery.popupList.js");jsRequire("scripts/cozi/shared/jquery/jquery.utils.js");jsRequire("scripts/cozi/util/StringUtil.js");jsRequire("scripts/cozi/util/UiUtil.js");
jsRequire("scripts/widgets/util/dates.js");jsRequire("IFrame/scripts/util/config.js");jsRequire("scripts/widgets/calendar/jquery/jquery.appointment.js");
function CalendarWidgetView(){this._today=null;this._duration=null;this._hasHeader=true;this._headerLinks=null;this._state=null;this._adImgLocation=COZI_WIDGET_CONSTANTS.MARKETING_IMAGE_PATHS.LIVE;this._numAdImgs=COZI_WIDGET_CONSTANTS.DEFAULT_NUM_IMGS;this._cobrand="";this._marketingRotationOptions={limit:-1,delay:4*1E3};this._numRotations=0;this._parentPage=null;this._signUpURL="";this._content=null;this._trackedAuthed=false;this._trackedUnAuthed=false;this._isSigningIn=false;return this}
CalendarWidgetView.STATES={AUTHED:0,UNAUTHED:1,SIGN_IN:2};CalendarWidgetView.STATE_CLASSES=[{root:"Authed",node:"AuthedContent"},{root:"UnAuthed",node:"UnAuthedContent"},{root:"SignIn",node:"SignInContent"}];CalendarWidgetView.prototype=new CoziObserverSubject;CalendarWidgetView.prototype.appointmentFailure=function(){$(".ErrorMessageContainer",this._content).errorMessage().showErrors()};
CalendarWidgetView.prototype.drawAppointmentData=function(appointments){var view=this;$.each($("."+CalendarWidgetView.STATE_CLASSES[CalendarWidgetView.STATES.AUTHED].node,this._content).children(),function(){var timestamp=this.id.replace(/^day_/,"");var currentDate=new Date(view._today.getFullYear(),view._today.getMonth(),view._today.getDate(),0,0,0);currentDate.setTime(timestamp);currentDateKey=currentDate.toString();var dayAppts=[];if(appointments[currentDateKey])for(var i=0;i<appointments[currentDateKey].length;i++)dayAppts.push(appointments[currentDateKey][i]);
var getClickClosure=function(goToDate){return function(){window.open(view._getWebclientLink(COZI_WIDGET_CONSTANTS.URL_APPOINTMENT).format("DAY_PARAM",goToDate.dateFormat(DateUtil.Formats.ShortDate)).format("ID_PARAM",$(this).data("apptId")))}};var apptWrapper=$(".AppointmentWrapper",$(this));for(var j=0;j<dayAppts.length;j++)apptWrapper.append($.make("div").addClass("Appointment").appointment({appointment:dayAppts[j],hasAbbreviatedSubject1:false,hasLocation:false,hasNotes:false,separatorRule:function(appt){var hr=
appt.getEndTime().getHours()>12?appt.getEndTime().getHours()%12:appt.getEndTime().getHours();return hr<10?"&ndash;":"-"},timeFormat:DateUtil.Formats.ShortTime}));$(".AppointmentDiv",apptWrapper).click(getClickClosure(currentDate));if(view._isIE6()){$.each($(".AppointmentDiv",apptWrapper),function(){view._attachIE6StateClasses($(this))});$.each($(".AttendeeDot",apptWrapper),function(){$(this).css("font-size","2.4em")})}})};
CalendarWidgetView.prototype.openContextMenu=function(){var me=this;var menu=[];menu.push({html:$("<div/>").append(this._getExternalLink(this._getWebclientLink(COZI_WIDGET_CONSTANTS.URL_CALENDAR).formatConditional("HAS_TARGET_DAY","false"),COZI_WIDGET_CONSTANTS.en_US.CALENDAR)).html()});menu.push({html:$("<div/>").append(this._getExternalLink(this._getWebclientLink(COZI_WIDGET_CONSTANTS.URL_SHOPPING_LIST),COZI_WIDGET_CONSTANTS.en_US.SHOPPING_LIST)).html()});menu.push({html:$("<div/>").append(this._getExternalLink(this._getWebclientLink(COZI_WIDGET_CONSTANTS.URL_TODO_LIST),
COZI_WIDGET_CONSTANTS.en_US.TODO_LIST)).html()});menu.push({html:$("<div/>").append(this._getExternalLink(this._getWebclientLink(COZI_WIDGET_CONSTANTS.URL_FAMILY_JOURNAL),COZI_WIDGET_CONSTANTS.en_US.FAMILY_JOURNAL)).html()});menu.push({html:$("<div/>").append(this._getExternalLink(this._getWebclientLink(COZI_WIDGET_CONSTANTS.URL_COZI_SETTINGS),COZI_WIDGET_CONSTANTS.en_US.COZI_SETTINGS)).html()});menu.push({html:"--------"});menu.push({html:'<a href="#" onclick="return false;">'+this._getWebclientLink(COZI_WIDGET_CONSTANTS.en_US.SIGN_OUT)+
"</a>",clickFun:function(){me.publish("Widget.View.onSignOut")}});$.popupList({menuItems:menu,menuId:"contextMenu",parentSelector:"#contextMenuLink",offsetLeft:-8,modal:true,imageCornerDir:"../../Images/borders/PopupList/PopupList"});if(this._isIE6()){var popupList=$("#contextMenu").parent();$.each($(".ImageCorners",popupList),function(){$(this).css("display","none")});$.each($("li",popupList),function(){me._attachIE6StateClasses($(this))})}};
CalendarWidgetView.prototype.render=function(startDate,duration,cobrand,campaign,adImageLocation,numAdImages,rotationLimit,rotationDelay,parentPage,hasHeader){this._today=startDate;this._duration=duration;this._hasHeader=hasHeader;if(cobrand!=null)this._cobrand=cobrand.toUpperCase();this._campaign=campaign?campaign:this._cobrand.replace(/^(.)(.*)$/,function(m0,m1,m2){return m1+m2.toLowerCase()});if(parentPage!=null)this._parentPage=parentPage;if(adImageLocation)this._adImgLocation=decodeURIComponent(adImageLocation);
if(numAdImages)this._numAdImgs=numAdImages;if(rotationLimit!=null)this._marketingRotationOptions.limit=Math.max(rotationLimit,COZI_WIDGET_CONSTANTS.MARKETING_ROTATION_MIN);if(rotationDelay!=null)this._marketingRotationOptions.delay=rotationDelay<1E3?rotationDelay*1E3:rotationDelay;this._signUpURL=COZI_WIDGET_CONSTANTS.URL_SIGN_UP.format("COBRAND",this._cobrand).format("CAMPAIGN",this._campaign);this._widget=$("#coziWidget").wrap($("<div/>").addClass(hasHeader?"HasHeader":"HasNoHeader"));this._content=
$(".Content",this._widget);this._footer=$(".Footer",this._widget);this._switchState(CalendarWidgetView.STATES.UNAUTHED);var header=$(".Header",this._widget);this._headerLinks=[];this._headerLinks.push(this._getExternalLink(this._signUpURL,"").append($("<img/>").attr("src","../../Images/trans_filler.gif").addClass("Logo")).appendTo(header));this._headerLinks.push(this._getExternalLink(this._signUpURL,"").append($("<h1/>").addClass("TitleImage").append($("<img/>").attr("src","../../Images/trans_filler.gif")).append($("<span/>").text(COZI_WIDGET_CONSTANTS.en_US.MY_FAMILY_CALENDAR))).appendTo(header));
this._appendUnAuthedContent();this._appendUnAuthedFooter();this._appendSignInContent();this._appendSignInFooter();this._appendAuthedFooter();this.publish("Widget.View.onPageLoad")};
CalendarWidgetView.prototype.renderAuthedWidget=function(){this._isSigningIn=false;this._switchState(CalendarWidgetView.STATES.AUTHED);this._numRotations=0;if(!this._trackedAuthed){this.publish("Widget.Track.Authed",this._cobrand||"COZI",this._parentPage);this._trackedAuthed=true}this._appendAuthedContent();this.publish("Widget.View.onRenderAuthedData",this._today,this._duration)};
CalendarWidgetView.prototype.renderError=function(errorCode){this._isSigningIn=false;if(errorCode==COZI_WIDGET_CONSTANTS.SERVER_ERROR_CODES.BAD_CRED||this._state==CalendarWidgetView.STATES.SIGN_IN){if(this._state!=CalendarWidgetView.STATES.SIGN_IN)this.renderSignIn();var authErrorMessage=$(".ErrorMessageContainer",$("."+CalendarWidgetView.STATE_CLASSES[CalendarWidgetView.STATES.SIGN_IN].node,this._content));authErrorMessage.errorMessage().showErrors()}else if(this._state!=CalendarWidgetView.STATES.UNAUTHED)this.renderUnAuthedWidget()},
CalendarWidgetView.prototype.renderSignIn=function(){this._stopMarketingRotation();this._switchState(CalendarWidgetView.STATES.SIGN_IN);var signInContent=$("."+CalendarWidgetView.STATE_CLASSES[CalendarWidgetView.STATES.SIGN_IN].node,this._content);$(".ErrorMessageContainer",signInContent).errorMessage().hideErrors();$("#username",signInContent).val("");$("#password",signInContent).val("");$("#username").focus()};
CalendarWidgetView.prototype.renderUnAuthedWidget=function(){if(!this._trackedUnAuthed){this.publish("Widget.Track.UnAuthed",this._cobrand||"COZI",this._parentPage);this._trackedUnAuthed=true}this._switchState(CalendarWidgetView.STATES.UNAUTHED);this._changeHeaderLinks(this._signUpURL);$("."+CalendarWidgetView.STATE_CLASSES[CalendarWidgetView.STATES.AUTHED].node,this._content).remove();this._startMarketingRotation()};
CalendarWidgetView.prototype._appendAuthedContent=function(){this._changeHeaderLinks(this._getWebclientLink(COZI_WIDGET_CONSTANTS.URL_CALENDAR).formatConditional("HAS_TARGET_DAY","true").format("DAY_PARAM",this._today.dateFormat(DateUtil.Formats.ShortDate)));var errorDiv=$("<div/>").html(COZI_WIDGET_CONSTANTS.ERROR_MESSAGES.APPT_FAILURE_0).append($("<li/>").html(COZI_WIDGET_CONSTANTS.ERROR_MESSAGES.APPT_FAILURE_1)).append($("<li/>").append(this._getExternalLink(this._getWebclientLink(COZI_WIDGET_CONSTANTS.URL_CALENDAR).formatConditional("HAS_TARGET_DAY",
"false"),COZI_WIDGET_CONSTANTS.ERROR_MESSAGES.APPT_FAILURE_2)));var wrapper=$("<div/>").addClass(CalendarWidgetView.STATE_CLASSES[CalendarWidgetView.STATES.AUTHED].node).append($("<div/>").errorMessage(errorDiv)).appendTo(this._content);if(this._isIE6())this._attachIE6StateClasses(this._content);var indexDate=new Date(this._today.getFullYear(),this._today.getMonth(),this._today.getDate(),0,0,0);for(var i=0;i<this._duration;i++){var dayWidget=$("<div></div>").addClass("Fadeable").calendarDay(new Date(indexDate),
this._today,"widget").children(".AppointmentWrapper").end();wrapper.append(dayWidget);indexDate.setDate(indexDate.getDate()+1)}wrapper.append($("<div/>").attr("id","seeMoreAppts").addClass("Fadeable").append(this._getExternalLink(this._getWebclientLink(COZI_WIDGET_CONSTANTS.URL_CALENDAR).formatConditional("HAS_TARGET_DAY","true").format("DAY_PARAM",this._today.dateFormat(DateUtil.Formats.ShortDate)),COZI_WIDGET_CONSTANTS.en_US.SEE_MORE_APPOINTMENTS)))};
CalendarWidgetView.prototype._appendAuthedFooter=function(){var me=this;var addApptLink=this._getWebclientLink(COZI_WIDGET_CONSTANTS.URL_APPOINTMENT).format("DAY_PARAM",this._today.dateFormat(DateUtil.Formats.ShortDate)).format("ID_PARAM",CoziConstants.EmptyGuid);$("<div/>").addClass(CalendarWidgetView.STATE_CLASSES[CalendarWidgetView.STATES.AUTHED].node).append(this._getExternalLink(addApptLink,COZI_WIDGET_CONSTANTS.en_US.ADD_AN_APPOINTMENT).addClass("FullAppointmentLink")).append(this._getExternalLink(addApptLink,
COZI_WIDGET_CONSTANTS.en_US.ADD_AN_APPT).addClass("ShortAppointmentLink")).append($("<span/>").addClass("Bullet").html("&bull;")).append($("<a/>").attr("href","#").attr("id","contextMenuLink").click(function(){me.openContextMenu();this.blur();return false}).text(COZI_WIDGET_CONSTANTS.en_US.GO_TO).append($("<img/>").attr("src","../../Images/trans_filler.gif"))).appendTo(this._footer)};
CalendarWidgetView.prototype._appendSignInContent=function(){var dialogDiv=$("<div/>").addClass(CalendarWidgetView.STATE_CLASSES[CalendarWidgetView.STATES.SIGN_IN].node);var me=this;var signInForm=$("<form/>").attr("id","signInForm").submit(function(){if(me._isSigningIn)return false;me._isSigningIn=true;me._validateSignInForm(this);return false}).append($('<input type="submit"/>').addClass("signInFormSubmit")).appendTo(dialogDiv);$("<div/>").append($("<div/>").addClass("Row").addClass("Title").text(COZI_WIDGET_CONSTANTS.en_US.SIGN_IN_DIALOG_MSG)).errorMessage(COZI_WIDGET_CONSTANTS.ERROR_MESSAGES.LOGIN_FAILURE).appendTo(signInForm);
$("<div/>").addClass("Row").append($("<label/>").text(COZI_WIDGET_CONSTANTS.en_US.YOUR_EMAIL_ADDRESS).attr("for","username")).append($('<input type="textfield"/>').attr("name","username").attr("id","username").attr("autocomplete","off").addClass("TextField")).append($("<span/>").addClass("RequiredAsterisk").text("*")).appendTo(signInForm);$("<div/>").addClass("Row").append($("<label/>").text(COZI_WIDGET_CONSTANTS.en_US.COZI_PASSWORD).attr("for","password")).append($('<input type="password"/>').addClass("TextField").attr("name",
"password").attr("id","password").attr("autocomplete","off")).append($("<span/>").addClass("RequiredAsterisk").text("*")).appendTo(signInForm);$("<div/>").addClass("Row").append($("<span/>").addClass("RememberMe").append($('<input type="checkbox">').attr("name","isRememberMe").attr("id","isRememberMe")).append($("<label/>").text(COZI_WIDGET_CONSTANTS.en_US.REMEMBER_ME).attr("for","isRememberMe"))).append($("<span/>").addClass("ForgotPassword").append(this._getExternalLink(COZI_WIDGET_CONSTANTS.URL_FORGOT_PASSWORD,
COZI_WIDGET_CONSTANTS.en_US.FORGOT_PASSWORD).attr("tabIndex",-1))).appendTo(signInForm);this._content.append(dialogDiv)};
CalendarWidgetView.prototype._appendSignInFooter=function(){var me=this;$("<div/>").addClass(CalendarWidgetView.STATE_CLASSES[CalendarWidgetView.STATES.SIGN_IN].node).append(this._getExternalButtonLink(null,function(){$("#signInForm").submit();return false},COZI_WIDGET_CONSTANTS.en_US.SIGN_IN)).append($("<span/>").addClass("ItsFreeTxt").text(COZI_WIDGET_CONSTANTS.en_US.ITS_FREE)).append($("<span/>").append("&bull;").addClass("Bullet")).append(this._getExternalLink(this._signUpURL,COZI_WIDGET_CONSTANTS.en_US.SIGN_UP).addClass("SignInLink")).appendTo(this._footer)};
CalendarWidgetView.prototype._appendUnAuthedContent=function(){var imgPath=this._adImgLocation;if(location.search&&/\bmarketingImageMode=(\w+)\b/.test(location.search)){var altMode=RegExp.$1.toUpperCase();if(typeof COZI_WIDGET_CONSTANTS.MARKETING_IMAGE_PATHS[altMode]!="undefined"){imgPath=COZI_WIDGET_CONSTANTS.MARKETING_IMAGE_PATHS[altMode];if(altMode!="LIVE")Logger.warning("Widget.View.renderUnAuthedWidget: using non-live marketing images: "+imgPath)}}imgPath=imgPath.replace(/\/*$/,"");var imgSuffix=
this._hasHeader?".jpg":".300x130.jpg";var wrapper=$("<div/>").addClass(CalendarWidgetView.STATE_CLASSES[CalendarWidgetView.STATES.UNAUTHED].node).appendTo(this._content);var imgLink=this._getExternalLink(this._signUpURL,"").focus(function(){this.blur()}).appendTo(wrapper);for(var i=0;i<this._numAdImgs;i++){var imgElement=$("<img/>").attr("src",imgPath+"/img_"+(i+1)+imgSuffix).addClass("MarketingImg").attr("idx",i).appendTo(imgLink);if(i==0)imgElement.show()}};
CalendarWidgetView.prototype._appendUnAuthedFooter=function(){var me=this;$("<div/>").addClass(CalendarWidgetView.STATE_CLASSES[CalendarWidgetView.STATES.UNAUTHED].node).append(this._getExternalButtonLink(this._signUpURL,null,COZI_WIDGET_CONSTANTS.en_US.SIGN_UP)).append($("<span/>").addClass("ItsFreeTxt").text(COZI_WIDGET_CONSTANTS.en_US.ITS_FREE)).append($("<span/>").append("&bull;").addClass("Bullet")).append(this._getExternalLink("#",COZI_WIDGET_CONSTANTS.en_US.SIGN_IN).addClass("SignInLink").click(function(){me.renderSignIn();
return false})).appendTo(this._footer)};CalendarWidgetView.prototype._attachIE6StateClasses=function(element){return element.hover(function(){$(this).addClass("Hover")},function(){$(this).removeClass("Hover")}).mousedown(function(){$(this).addClass("Active")}).mouseup(function(){$(this).removeClass("Active")})};CalendarWidgetView.prototype._changeHeaderLinks=function(url){for(var i=0;i<this._headerLinks.length;i++)this._headerLinks[i].attr("href",url)};
CalendarWidgetView.prototype._getButton=function(text){var button=$('<input type="submit"/>').addClass("WidgetButton").val(text).focus(function(){this.blur()});if(this._isIE6())this._attachIE6StateClasses(button);return button};
CalendarWidgetView.prototype._getExternalButtonLink=function(url,submitHandler,text){var form=$("<form/>").append(this._getButton(text));if(url){var urlPieces=url.split("?");url=urlPieces[0];var params=urlPieces[1].split("&");for(var i=0;i<params.length;i++){var data=params[i].split("=");form.append($('<input type="hidden"/>').attr("name",data[0]).val(data[1]))}form.attr("action",url).attr("target","_blank").attr("method","get")}if(submitHandler)form.submit(submitHandler);return form};
CalendarWidgetView.prototype._getExternalLink=function(url,text){return $("<a/>").attr("href",url).attr("target","_blank").text(text)};CalendarWidgetView.prototype._getWebclientLink=function(url){try{return url.format("WEBCLIENT_DOMAIN",Config.getWebClientDomain())}catch(err){console.log(err)}};CalendarWidgetView.prototype._isIE6=function(){return $.browser.msie&&parseInt($.browser.version)<7};
CalendarWidgetView.prototype._rotateMarketingImage=function(idx){var wrapper=$("."+CalendarWidgetView.STATE_CLASSES[CalendarWidgetView.STATES.UNAUTHED].node,this._content);if(arguments.length==0){var nextImg=$("img:visible",wrapper).next("img");if(!nextImg.length){nextImg=$("img[idx=0]",wrapper);if(this._marketingRotationOptions.limit>-1&&++this._numRotations>=this._marketingRotationOptions.limit){this._stopMarketingRotation();return}}}else nextImg=$("img[idx="+idx+"]",wrapper);$.each($("img",wrapper),
function(){$(this).hide()});nextImg.show();Logger.info("Widget.View._rotateMarketingImage: rotating to image "+nextImg.attr("idx")+" ("+this._numRotations+" rotations complete)")};CalendarWidgetView.prototype._startMarketingRotation=function(){if(this._numAdImgs<=1)return;var me=this;this._marketingRotationIV=setInterval(function(){me._rotateMarketingImage()},this._marketingRotationOptions.delay)};
CalendarWidgetView.prototype._stopMarketingRotation=function(){clearInterval(this._marketingRotationIV);this._marketingRotationIV=null;this._rotateMarketingImage(0)};CalendarWidgetView.prototype._switchState=function(state){for(var key in CalendarWidgetView.STATES)this._widget.removeClass(CalendarWidgetView.STATE_CLASSES[CalendarWidgetView.STATES[key]].root);this._state=state;this._widget.addClass(CalendarWidgetView.STATE_CLASSES[state].root)};
CalendarWidgetView.prototype._validateSignInForm=function(form){var userNameNode=$(form.username).parent().removeClass("Error");var passwordNode=$(form.password).parent().removeClass("Error");var userName=form.username.value;var password=form.password.value;var isRememberMe=form.isRememberMe.checked;var emptyStrRE=/^\s*$/;var isValid=true;if(emptyStrRE.test(userName)){userNameNode.addClass("Error");isValid=false}if(emptyStrRE.test(password)){passwordNode.addClass("Error");isValid=false}if(isValid)this.publish("Widget.View.onSignIn",
userName,password,isRememberMe)};
jQuery.fn.errorMessage=function(message){if(arguments.length){this.addClass("ErrorMessageContainer");if(typeof message=="string")this.append($("<div/>").addClass("ErrorMessage").html(message));else this.append(message.addClass("ErrorMessage"))}else $.extend(this,{hideErrors:function(){$.each(this.children(),function(){if($(this).hasClass("ErrorMessage"))$(this).hide();else $(this).show()});$(".Fadeable",this.parent()).removeClass("Faded");return this},showErrors:function(){$.each(this.children(),function(){if(!$(this).hasClass("ErrorMessage"))$(this).hide();
else $(this).show()});$(".Fadeable",this.parent()).addClass("Faded");return this}});return this};jsRequire("scripts/widgets/calendar/controls/CoziObserverSubject.js");jsRequire("scripts/cozi/data/CoBrand.js");jsRequire("scripts/cozi/data/CalendarColors.js");jsRequire("scripts/cozi/util/StringUtil.js");jsRequire("scripts/widgets/util/Logger.js");jsRequire("IFrame/scripts/util/constants.js");jsRequire("scripts/widgets/calendar/local/LocalWidgetDataSource.js");jsRequire("scripts/widgets/calendar/local/LocalWidgetModel.js");
jsRequire("scripts/widgets/calendar/controls/WidgetPresenter.js");jsRequire("IFrame/scripts/controls/CalendarWidgetView.js");function CalendarWidget(){this._dataSource=new LocalWidgetDataSource;this._model=null;this._view=null;this._presenter=null;this._today=new Date;return this}
CalendarWidget.prototype.init=function(){var cobrandName=location.search&&/\bcobrand=(\w+)\b/i.test(location.search)?RegExp.$1:null;var campaign=location.search&&/\bcampaign=(\w+)\b/i.test(location.search)?RegExp.$1:null;var parentPage=location.search&&/\bparent=(\w+)\b/i.test(location.search)?RegExp.$1:null;var adImageLocation=location.search&&/\badImageLocation=([^\&]+)/i.test(location.search)?RegExp.$1:null;var numAdImages=location.search&&/\bnumAdImages=(\w+)\b/i.test(location.search)?RegExp.$1:
null;var rotationLimit=location.search&&/\brotationLimit=(\w+)\b/i.test(location.search)?parseInt(RegExp.$1):null;var rotationDelay=location.search&&/\brotationDelayInSeconds=(\w+)\b/i.test(location.search)?parseInt(RegExp.$1):null;var loggingLevel=location.search&&/\blog=(\w+)\b/i.test(location.search)?RegExp.$1.toUpperCase():"NONE";var yyyymmdd=location.search&&/\btoday=(\d{8})\b/.test(location.search)?RegExp.$1:null;var headerValue=location.search&&/\bheader=(\w+)\b/i.test(location.search)?RegExp.$1:
"true";var hasHeader=headerValue=="false"?false:true;if(typeof Logger.LEVELS[loggingLevel]=="undefined")loggingLevel="NONE";Logger.setLevel(Logger.LEVELS[loggingLevel]);if(cobrandName)this._importCobrandCSS(cobrandName);if(yyyymmdd){var matches=/(\d{4})(\d{2})(\d{2})/.exec(yyyymmdd);this._today.setYear(matches[1]);this._today.setMonth(parseInt(matches[2],10)-1);this._today.setDate(matches[3])}this._model=new LocalWidgetModel(this._today);this._view=new CalendarWidgetView;this._presenter=new WidgetPresenter(this._view,
this._model,this._dataSource);this._addBrowserConfigClasses();this._view.render(this._today,this._model.getDuration(),cobrandName,campaign,adImageLocation,numAdImages,rotationLimit,rotationDelay,parentPage,hasHeader);this._numCobrandTries=10;if(cobrandName){var me=this;this._dataSource.getCoBrandData(cobrandName,function(){me._tryCobrand()},function(){ErrorHandler.logError("failed to get cobrand data for '<COBRAND/>', unable to hit comscore".format("COBRAND",cobrandName),"CalendarWidget.init")})}};
CalendarWidget.prototype._addBrowserConfigClasses=function(){var browserClass="";if($.browser.msie){browserClass="MSIE";var version=$.browser.version.charAt(0);if(version==="8")browserClass+=" MSIE8";else if(version==="7")browserClass+=" MSIE7"}else{if($.browser.webkit){browserClass=navigator.userAgent.indexOf("Chrome")==-1?"Safari":"Chrome";browserClass+=" Webkit"}else if($.browser.mozilla)browserClass="Mozilla";if(navigator.appVersion.toLowerCase().match("macintosh"))browserClass+=" IsMac"}$(document.body).addClass(browserClass)};
CalendarWidget.prototype._importCobrandCSS=function(cobrand){var link="CoBrand/"+cobrand+"/styles.css";if(document.createStyleSheet)document.createStyleSheet(link);else $("<link/>").attr("rel","stylesheet").attr("type","text/css").attr("href",link).appendTo($("head",document))};CalendarWidget.prototype._tryCobrand=function(){var me=this;if(window.cobrand)this._dataSource.trackComScore(window.cobrand.getComScoreId());else if(--this._numCobrandTries)setTimeout(function(){me._tryCobrand()},500)};

