var cal=Class.create();cal.prototype.initialize=function(f,d,c){if(!f){alert("cal input not found");return}if(d=="time"){return this.time_init(f,c)}if(typeof c!="object"){c={}}var g={min_plus:0,max_plus:0};for(var b in g){if(c[b]==undefined){c[b]=g[b]}}this.debug_level=1;this.debug_scope="cal";f.self=this;this.input=f;this.options=c;this.type=d;this.cal_id=d+"_calendar";this.date_format=glob_locale.date_format;this.time_format="H:M:S";this.month_names=glob_locale.short_months;this.day_names=glob_locale.short_days;var e=this.input;while(e.nodeName!="FORM"){e=e.parentNode}this.form=e;var a=new Date();this.nowy=a.getFullYear();this.nowm=a.getMonth()+1;this.nowd=a.getDate();this.now=a.getTime();this.u_created_at=_pi(glob_u.created_at);if(isNaN(this.u_created_at)){IOL.debug("could not assign u.created_at","err",this);this.u_created_at=Math.floor(new Date(this.nowy,0,1,0,0,0,0).getTime()/1000)}if(d=="posted"){this.miny=2000;this.minm=1;this.mind=1;a=new Date(this.now+this.options.max_plus*1000);
this.maxy=a.getFullYear();this.maxm=a.getMonth()+1;this.maxd=a.getDate();this.undo_msg=_MSG.cal_undo_posted}else{this.miny=1800;this.minm=1;this.mind=1;var a=new Date(this.now+this.options.max_plus*1000);this.maxy=this.nowy;this.maxm=this.nowm;this.maxd=this.nowd;this.undo_msg=_MSG.cal_undo_created}this.init()};cal.prototype.init=function(){this.on_change_observer=this.on_change.bindAsEventListener(this);this.open_observer=this.open.bindAsEventListener(this);this.mouse_down_observer=this.mouse_down.bindAsEventListener(this);Event.observe(this.input,"focus",this.open_observer);Event.observe(this.input,"change",this.on_change_observer);Event.observe(this.input,"keypress",function(b){if(b.keyCode==13){Event.stop(b)}}.bindAsEventListener(this));if(this.input.value){this.extract_date();var a=new Date(this.y,this.m-1,this.d);if(a.getFullYear()!=this.y||a.getMonth()!=(this.m-1)||a.getDate()!=this.d){var a=new Date();this.y=a.getFullYear();this.m=a.getMonth()+1;this.d=a.getDate();this.assign_date();
this.undo_value=this.input.value;IOL.debug("Original Date was invalid, corrected it to : "+this.undo_value,"warn",this);this.undo("init")}this.undo_value=this.input.value}this.is_ready=true};cal.prototype.assign_date=function(){var d=this.date_format.split("/");var a=new Array();for(var c=0;c<3;c++){var b=new String(this[d[c].toLowerCase()]).two_digits();a.push(b)}this.input.value=a.join("/")};cal.prototype.extract_date=function(){this.y=this.m=this.d=undefined;var d=this.input.value;if(!d){IOL.debug("NOT COOL, value is undefined","err",this);return false}var c=this.date_format.split("/");var a=d.split("/");if(a.length!=c.length){return false}for(var b=0;b<3;b++){this[c[b].toLowerCase()]=_pi(a[b]*1)}return true};cal.prototype.on_change=function(){if(!this.is_ready){return}if(!this.extract_date()){return this.undo("format")}var h=this.y;var e=this.m;var f=this.d;if(isNaN(h)||isNaN(e)||isNaN(f)){return this.undo("nan")}if(h<=(this.nowy-2000)){h=h+2000}if(h<100){h=h+1900}var c=new Date(h,e-1,f);
if(c.getFullYear()!=h||c.getMonth()!=(e-1)||c.getDate()!=f){return this.undo("system")}if(this.maxy){var g=new Date(this.maxy,this.maxm-1,this.maxd);if(c.getTime()>g.getTime()){return this.undo("max")}}if(this.miny){var g=new Date(this.miny,this.minm-1,this.mind);if(c.getTime()<g.getTime()){return this.undo("min")}}this.assign_date();this.undo_value=this.input.value;if(this.options.back_id){var a=$(this.options.back_id);var e;if(e=a.value.match(/^(\d+\-\d+\-\d+)\W(\d+\:\d+\:\d+)/)){a.value=this.y+"-"+this.m+"-"+this.d+" "+e[2]}else{}}};cal.prototype.undo=function(b){this.close();this.input.blur();this.input.value=this.undo_value;if(b){var a=this.date_format.replace("Y",this.miny).replace("M",this.minm).replace("D",this.mind);alert(this.undo_msg.replace("%s",a));var c={init:"Bad original date",format:"Bad format",nan:"Not a Number",system:"Invalid date (out of system bounds)",max:"Greater than bound",min:"Smaller than bound"}}};cal.prototype.open=function(){if(this.is_closing){return}if(!window[this.cal_id]){var b=document.createElement("div");
b.id=this.cal_id;window[this.cal_id]=b;document.body.appendChild(b)}var a=window[this.cal_id];window._calendar_showing=this.cal_id;this.input.focus();this.input.select();a.self=this;this.extract_date();a.cy=this.y;a.cm=this.m;a.cd=this.d;Event.observe(document,"mousedown",this.mouse_down_observer);this.refresh(a.cm,a.cy)};cal.prototype.close=function(){var a=window[this.cal_id];if(a){a.style.display="none"}window._calendar_showing=undefined;Event.stopObserving(document,"mousedown",this.mouse_down_observer);return false};cal.prototype.mouse_down=function(f){var b=Event.element(f);var c=window._calendar_showing;var d=b;var a=0;while(d.parentNode){if(d==$(c)){a=1;break}d=d.parentNode}if(!a){this.close()}};cal.prototype.refresh=function(f,k){var a=window[this.cal_id];a.m=f;a.y=k;a.d=(k==a.cy&&f==a.cm)?a.cd:0;var c=this.cal_id;var q=(f+1>12)?1:f+1;var g=(f-1<1)?12:f-1;var h=(q==1)?k+1:k;var n=(g==12)?k-1:k;var e=new Date(k,f-1,1).getDay()+1;var o='<table class="calendar" border="0" cellpadding="0" cellspacing="0">';
o+='<tr><th></th><th colspan="2" align="left">';if((!this.miny)||(k>this.miny)||(k==this.miny&&f>this.minm)){o+='<a href="#" onclick="return $(\''+c+"').self.refresh("+g+","+n+')">&lt; '+this.month_names[g-1]+"</a>"}else{o+='<span class="off">&lt; '+this.month_names[g-1]+"</span>"}o+="<br/>";if((!this.miny)||((k-1)>this.miny)||((k-1)==this.miny&&f>=this.minm)){o+='<a href="#" onclick="return $(\''+c+"').self.refresh("+f+","+(k-1)+')">&lt; '+(k-1)+"</a>"}else{o+='<span class="off">&lt; '+(k-1)+"</span>"}o+="</th>";o+='<th colspan="2" align="left">';if((!this.maxy)||(k<this.maxy)||(k==this.maxy&&f<this.maxm)){o+='<a href="#" onclick="return $(\''+c+"').self.refresh("+q+","+h+')">'+this.month_names[q-1]+" &gt;</a>"}else{o+='<span class="off">'+this.month_names[q-1]+" &gt;</span>"}o+="<br>";if((!this.maxy)||(k+1<this.maxy)||(k+1==this.maxy&&f<=this.maxm)){o+='<a href="#" onclick="return $(\''+c+"').self.refresh("+f+","+(k+1)+')">'+(k+1)+"</a> &gt; "}else{o+='<span class="off">'+(k+1)+" &gt;</span>"
}o+="</th>";o+='<th colspan="4" class="month">'+this.month_names[f-1]+"<br />"+k+"</th>";o+="</tr>";o+='<tr><th class="week">&nbsp;</th>';for(s=0;s<7;s++){o+='<th class="week">'+this.day_names[s]+"</th>"}o+='<th class="week">&nbsp;</th></tr>';for(i=1;i<=42;i++){var l=((i+6)%7==0)?'<tr class="day"><td>&nbsp;</td>':"";var j=((i-e>=0)&&(i-e<this.days_in_month(f,k)))?i-e+1:0;l+=(j>0&&j==a.d)?'<td class="today">':"<td>";if(j){if((!this.maxy||(this.maxy&&(f<this.maxm||k<this.maxy)||j<=this.maxd))&&(!this.miny||(this.miny&&(f>this.minm||k>this.miny)||j>=this.mind))){j='<a href="#" onclick="return $(\''+c+"').self.choose("+j+')">'+j+"</a>"}else{j='<span class="off">'+j+"</span>"}}else{j="&nbsp;"}l+=j+"</td>";if(((i)%7==0)&&(i<36)){l+="<td>&nbsp;</td></tr>"}o+=l}o+="<td>&nbsp;</td></tr>";o+='<tr><th colspan="9"><a href="#" onclick="return $(\''+c+'\').self.close()" style="font-weight:normal;text-transform:lowercase">'+_MSG.close+"</a></th></tr>";o+="</table>";a.innerHTML=o;a.style.position="absolute";
a.style.zIndex="2001";a.style.display="block";var b=Position.cumulativeOffset(this.input,true);var l=b[0];var k=b[1];a.style.left=l+"px";if(this.options.ontop){a.style.top=(k-a.offsetHeight)+"px"}else{a.style.top=(k+this.input.offsetHeight+4)+"px"}return false};cal.prototype.choose=function(a){cal=window[this.cal_id];this.y=cal.y;this.m=cal.m;this.d=a;this.assign_date();this.is_closing=1;this.on_change();this.input.focus();this.input.select();this.close();setTimeout(function(){cal.self.is_closing=0},500);return false};cal.prototype.days_in_month=function(a,c){var b=[0,31,28,31,30,31,30,31,31,30,31,30,31];if(a==2&&c>1582){if(((c%100!=0)&&(c%4==0))||(c%400==0)){return 29}}return b[a]};cal.prototype.time_init=function(b,a){if(typeof a!="object"){a={}}b.self=this;this.input=b;this.type="time";this.options=a;this.time_format="H:M:S";if(!this.undo_value){this.undo_value=this.input.value}this.time_on_change_observer=this.time_on_change.bindAsEventListener(this);Event.observe(this.input,"change",this.time_on_change_observer);
Event.observe(this.input,"blur",this.time_on_change_observer);Event.observe(this.input,"focus",function(d){var c=Event.element(d);c.select()})};cal.prototype.time_on_change=function(){var j=this.input;var g=this.time_format.split(":");var l=j.value.split(":");if(l.length==2){l[2]=0}if(l.length!=g.length){return this.undo()}var e=_pi(l[0]),a=_pi(l[1]),o=_pi(l[2]);if(isNaN(e)||isNaN(a)||isNaN(o)){return this.undo()}if((e>=0&&e<=23)&&(a>=0&&a<=59)&&(o>=0&&o<=59)){var c=new String(e).two_digits();var d=new String(a).two_digits();var n=new String(o).two_digits();this.input.value=this.undo_value=c+":"+d+":"+n;if(this.options.back_id){var k=$(this.options.back_id);var a;if(a=k.value.match(/^(\d+\-\d+\-\d+)\W(\d+\:\d+\:\d+)/)){k.value=a[1]+" "+this.input.value}else{}}}else{this.undo()}};cal.prototype.set_value_from_time=function(d){var b;if(typeof d=="string"){if(b=d.match(/(\d+)\-(\d+)\-(\d+)\s+(\d+)\:(\d+)\:(\d+)/)){var c={Y:_pi(b[1]),M:_pi(b[2]),D:_pi(b[3])};var d={H:_pi(b[4]),M:_pi(b[5]),S:_pi(b[6])}
}}if(!c){var h=_pi(glob_u.tmo);d=_pi(d);var a=new Date(d*1000);var c={Y:a.getFullYear(),M:a.getMonth()+1,D:a.getDate()};var d={H:a.getHours(),M:a.getMinutes(),S:a.getSeconds()}}if(this.type=="time"){var j=this.time_format.split(":");var l=new Array();for(var g=0;g<j.length;g++){var e=new String(d[j[g]]).two_digits();l.push(e)}this.input.value=l.join(":");this.undo_value=this.input.value}else{var j=this.date_format.split("/");var l=new Array();for(var g=0;g<j.length;g++){var e=new String(c[j[g]]).two_digits();l.push(e)}this.input.value=l.join("/");this.undo_value=this.input.value}};function calendar_get_mysql_date(e){var g={};var c=glob_locale.date_format.split("/");var a=e.split("/");if(a.length!=c.length){return undefined}for(var b=0;b<3;b++){g[c[b].toLowerCase()]=_pi(a[b]*1)}return g.y+"-"+g.m+"-"+g.d}function calendar_date2time(a){if(m=a.match(/(\d+)\-(\d+)\-(\d+)\s+(\d+)\:(\d+)\:(\d+)/)){return new Date(_pi(m[1]),_pi(m[2])-1,_pi(m[3]),_pi(m[4]),_pi(m[5]),_pi(m[6]),0).getTime()/1000}};