function e(){var b=arguments[0];var a=document.getElementById(b);return a}function getPosX(a){var b=0;if(a.offsetParent){while(a.offsetParent){b+=a.offsetLeft;a=a.offsetParent}}else{if(a.x){b+=a.x}}return b}function getPosY(a){var b=0;if(a.offsetParent){while(a.offsetParent){b+=a.offsetTop;a=a.offsetParent}}else{if(a.y){b+=a.y}}return b}function safeFocus(a){var b=a.parentNode;var c=true;while(b){if((b.tagName=="BODY")||(b.tagName=="HTML")){break}if((b.style.display=="none")||(b.style.visibility=="hidden")){c=false;break}b=b.parentNode}if(c){a.focus()}}Date.daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31];Date.prototype.isLeapYear=function(){var a=this.getFullYear();return((a&3)==0&&(a%100||(a%400==0&&a)))};Date.prototype.getDaysInMonth=function(){Date.daysInMonth[1]=this.isLeapYear()?29:28;return Date.daysInMonth[this.getMonth()]};Date.prototype.getWeek=function(){var c=new Date(this);var b=c.getDay();c.setDate(c.getDate()-(b+6)%7+3);var a=c.valueOf();c.setMonth(0);c.setDate(4);return Math.round((a-c.valueOf())/(7*86400000))+1};Date.prototype.shiftD=function(a){this.setDate(this.getDate()+a)};Date.prototype.shiftM=function(a){this.setMonth(this.getMonth()+a)};Date.prototype.shiftY=function(a){this.setYear(this.getYear()+a)};function parseUserDateInput(b){if(isString(b)){var d=/(\d+)\D+(\d+)\D+(\d+)\D*/;d.exec(b);var a=RegExp.$1;var f=RegExp.$2;var c=RegExp.$3;a*=1;f*=1;c*=1;if(f!=""){f-=1;if(f<0){f=11}else{if(f>11){f=0}}}if(c!=""){if(c<100){if(c<50){c+=2000}else{c+=1900}}else{if(c<1000){if(c<200){c+=1900}else{c+=1000}}}}if((c!=0)&&(a!=0)){return new Date(c,f,a)}}else{if(isDate(b)){return b}}return null}function insertAfter(b,c,a){if(a.nextSibling){b.insertBefore(c,a.nextSibling)}else{b.appendChild(c)}}function isFunction(a){return(typeof(a)=="function")}function isObject(b){return(typeof b=="object"&&!!b)||isFunction(b)}function isArray(b){return isObject(b)&&b.constructor==Array}function isDate(b){return isObject(b)&&b.constructor==Date}function isString(b){return typeof b=="string"}function log(b){if(a==null){var a=window.open("","log","")}a.document.writeln(b+"<br>");a.focus()}function logT(a){log(new Date()+": "+a)}var Class={create:function(){return function(){this.initialize.apply(this,arguments)}}};function inherits(c,d){for(var b in c){try{d[b]=c[b]}catch(a){}}}function makeObservable(b,a){inherits(new Observable(),b);if(a!=undefined){b.addObserver(a)}}Array.prototype.forEach=function(d,f){var c=f||window;for(var b=0,a=this.length;b<a;++b){d.call(c,this[b],b,this)}};Array.prototype.filter=function(g,h){var f=h||window;var b=[];for(var d=0,c=this.length;d<c;++d){if(!g.call(f,this[d],d,this)){continue}b.push(this[d])}return b};Observer=Class.create();Observer.prototype={initialize:function(){},observe:function(){}};function Observable(){this.fns=[]}Observable.prototype={addObserver:function(a){this.fns.push(a)},removeObserver:function(a){this.fns=this.fns.filter(function(b){if(b!==a){return b}})},notify:function(c,b){var a=b||window;this.fns.forEach(function(d){d.observe(c)})}};
