data_grid 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. data/.rspec +3 -0
  2. data/CHANGELOG +5 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/Rakefile +1 -0
  6. data/app/assets/images/data_grid/calendar_view_month.png +0 -0
  7. data/app/assets/images/data_grid/csv.gif +0 -0
  8. data/app/assets/images/data_grid/delete.png +0 -0
  9. data/app/assets/images/data_grid/edit.png +0 -0
  10. data/app/assets/images/data_grid/no.png +0 -0
  11. data/app/assets/images/data_grid/sort_down.gif +0 -0
  12. data/app/assets/images/data_grid/sort_up.gif +0 -0
  13. data/app/assets/images/data_grid/yes.png +0 -0
  14. data/app/assets/javascripts/data_grid/data_grid.js +24 -0
  15. data/app/assets/javascripts/data_grid/grid_calendar/calendar-setup.js +200 -0
  16. data/app/assets/javascripts/data_grid/grid_calendar/calendar-setup_stripped.js +21 -0
  17. data/app/assets/javascripts/data_grid/grid_calendar/calendar.js +1819 -0
  18. data/app/assets/javascripts/data_grid/grid_calendar/calendar_original.js +1845 -0
  19. data/app/assets/javascripts/data_grid/grid_calendar/calendar_patched.js +1819 -0
  20. data/app/assets/javascripts/data_grid/grid_calendar/calendar_stripped.js +14 -0
  21. data/app/assets/javascripts/data_grid/grid_calendar/img.gif +0 -0
  22. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-af.js +39 -0
  23. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-al.js +101 -0
  24. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-bg.js +124 -0
  25. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-big5-utf8.js +123 -0
  26. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-big5.js +123 -0
  27. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-br.js +108 -0
  28. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-ca.js +123 -0
  29. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-cs-utf8.js +65 -0
  30. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-cs-win.js +65 -0
  31. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-da.js +123 -0
  32. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-de.js +124 -0
  33. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-du.js +45 -0
  34. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-el.js +89 -0
  35. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-en.js +127 -0
  36. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-es.js +129 -0
  37. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-fi.js +98 -0
  38. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-fr.js +125 -0
  39. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-he-utf8.js +123 -0
  40. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-hr-utf8.js +49 -0
  41. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-hr.js +0 -0
  42. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-hu.js +124 -0
  43. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-it.js +124 -0
  44. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-jp.js +45 -0
  45. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-ko-utf8.js +120 -0
  46. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-ko.js +120 -0
  47. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-lt-utf8.js +114 -0
  48. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-lt.js +114 -0
  49. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-lv.js +123 -0
  50. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-nl.js +73 -0
  51. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-no.js +114 -0
  52. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-pl-utf8.js +93 -0
  53. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-pl.js +56 -0
  54. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-pt.js +123 -0
  55. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-ro.js +66 -0
  56. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-ru.js +123 -0
  57. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-ru_win_.js +123 -0
  58. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-si.js +94 -0
  59. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-sk.js +99 -0
  60. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-sp.js +110 -0
  61. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-sv.js +93 -0
  62. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-tr.js +58 -0
  63. data/app/assets/javascripts/data_grid/grid_calendar/lang/calendar-zh.js +119 -0
  64. data/app/assets/javascripts/data_grid/grid_calendar/lang/cn_utf8.js +123 -0
  65. data/app/assets/javascripts/data_grid/grid_calendar/menuarrow.gif +0 -0
  66. data/app/assets/javascripts/data_grid/grid_calendar/menuarrow2.gif +0 -0
  67. data/app/assets/stylesheets/data_grid/data_grid.css +90 -0
  68. data/app/assets/stylesheets/data_grid/data_grid_3_0.css +90 -0
  69. data/app/assets/stylesheets/data_grid/grid_calendar/calendar-blue.css +233 -0
  70. data/app/assets/stylesheets/data_grid/grid_calendar/calendar-blue2.css +237 -0
  71. data/app/assets/stylesheets/data_grid/grid_calendar/calendar-brown.css +226 -0
  72. data/app/assets/stylesheets/data_grid/grid_calendar/calendar-green.css +230 -0
  73. data/app/assets/stylesheets/data_grid/grid_calendar/calendar-system.css +252 -0
  74. data/app/assets/stylesheets/data_grid/grid_calendar/calendar-tas.css +240 -0
  75. data/app/assets/stylesheets/data_grid/grid_calendar/calendar-win2k-1.css +272 -0
  76. data/app/assets/stylesheets/data_grid/grid_calendar/calendar-win2k-2.css +272 -0
  77. data/app/assets/stylesheets/data_grid/grid_calendar/calendar-win2k-cold-1.css +266 -0
  78. data/app/assets/stylesheets/data_grid/grid_calendar/calendar-win2k-cold-2.css +272 -0
  79. data/app/assets/stylesheets/data_grid/grid_calendar/img.gif +0 -0
  80. data/app/assets/stylesheets/data_grid/grid_calendar/menuarrow.gif +0 -0
  81. data/app/assets/stylesheets/data_grid/grid_calendar/menuarrow2.gif +0 -0
  82. data/app/assets/stylesheets/data_grid/grid_calendar/skins/aqua/active-bg.gif +0 -0
  83. data/app/assets/stylesheets/data_grid/grid_calendar/skins/aqua/dark-bg.gif +0 -0
  84. data/app/assets/stylesheets/data_grid/grid_calendar/skins/aqua/hover-bg.gif +0 -0
  85. data/app/assets/stylesheets/data_grid/grid_calendar/skins/aqua/menuarrow.gif +0 -0
  86. data/app/assets/stylesheets/data_grid/grid_calendar/skins/aqua/normal-bg.gif +0 -0
  87. data/app/assets/stylesheets/data_grid/grid_calendar/skins/aqua/rowhover-bg.gif +0 -0
  88. data/app/assets/stylesheets/data_grid/grid_calendar/skins/aqua/status-bg.gif +0 -0
  89. data/app/assets/stylesheets/data_grid/grid_calendar/skins/aqua/theme.css +236 -0
  90. data/app/assets/stylesheets/data_grid/grid_calendar/skins/aqua/title-bg.gif +0 -0
  91. data/app/assets/stylesheets/data_grid/grid_calendar/skins/aqua/today-bg.gif +0 -0
  92. data/app/views/data_grid/_data_grid.html.erb +101 -0
  93. data/config/locales/en.yml +10 -0
  94. data/data_grid.gemspec +27 -0
  95. data/lib/data_grid/column.rb +38 -0
  96. data/lib/data_grid/controller.rb +30 -0
  97. data/lib/data_grid/cookies_state_saver.rb +42 -0
  98. data/lib/data_grid/csv_exporter.rb +79 -0
  99. data/lib/data_grid/data_grid_logic.rb +175 -0
  100. data/lib/data_grid/data_source_array.rb +267 -0
  101. data/lib/data_grid/data_source_orm.rb +207 -0
  102. data/lib/data_grid/engine.rb +19 -0
  103. data/lib/data_grid/summaries.rb +34 -0
  104. data/lib/data_grid/version.rb +3 -0
  105. data/lib/data_grid/view_helpers.rb +271 -0
  106. data/lib/data_grid.rb +43 -0
  107. data/lib/generators/data_grid/copy_view_generator.rb +16 -0
  108. data/lib/generators/data_grid/install_generator.rb +29 -0
  109. data/lib/generators/templates/data_grid.rb +29 -0
  110. data/lib/generators/templates/stylesheets/data_grid/data_grid_3_0.css +90 -0
  111. data/spec/orm_spec.rb +57 -0
  112. data/spec/spec_helper.rb +15 -0
  113. data/spec/support/active_record.rb +17 -0
  114. metadata +118 -5
@@ -0,0 +1,14 @@
1
+ /* Copyright Mihai Bazon, 2002-2005 | www.bazon.net/mishoo
2
+ * -----------------------------------------------------------
3
+ *
4
+ * The DHTML Calendar, version 1.0 "It is happening again"
5
+ *
6
+ * Details and latest version at:
7
+ * www.dynarch.com/projects/calendar
8
+ *
9
+ * This script is developed by Dynarch.com. Visit us at www.dynarch.com.
10
+ *
11
+ * This script is distributed under the GNU Lesser General Public License.
12
+ * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
13
+ */
14
+ Calendar=function(firstDayOfWeek,dateStr,onSelected,onClose){this.activeDiv=null;this.currentDateEl=null;this.getDateStatus=null;this.getDateToolTip=null;this.getDateText=null;this.timeout=null;this.onSelected=onSelected||null;this.onClose=onClose||null;this.dragging=false;this.hidden=false;this.minYear=1970;this.maxYear=2050;this.dateFormat=Calendar._TT["DEF_DATE_FORMAT"];this.ttDateFormat=Calendar._TT["TT_DATE_FORMAT"];this.isPopup=true;this.weekNumbers=true;this.firstDayOfWeek=typeof firstDayOfWeek=="number"?firstDayOfWeek:Calendar._FD;this.showsOtherMonths=false;this.dateStr=dateStr;this.ar_days=null;this.showsTime=false;this.time24=true;this.yearStep=2;this.hiliteToday=true;this.multiple=null;this.table=null;this.element=null;this.tbody=null;this.firstdayname=null;this.monthsCombo=null;this.yearsCombo=null;this.hilitedMonth=null;this.activeMonth=null;this.hilitedYear=null;this.activeYear=null;this.dateClicked=false;if(typeof Calendar._SDN=="undefined"){if(typeof Calendar._SDN_len=="undefined")Calendar._SDN_len=3;var ar=new Array();for(var i=8;i>0;){ar[--i]=Calendar._DN[i].substr(0,Calendar._SDN_len);}Calendar._SDN=ar;if(typeof Calendar._SMN_len=="undefined")Calendar._SMN_len=3;ar=new Array();for(var i=12;i>0;){ar[--i]=Calendar._MN[i].substr(0,Calendar._SMN_len);}Calendar._SMN=ar;}};Calendar._C=null;Calendar.is_ie=(/msie/i.test(navigator.userAgent)&&!/opera/i.test(navigator.userAgent));Calendar.is_ie5=(Calendar.is_ie&&/msie 5\.0/i.test(navigator.userAgent));Calendar.is_opera=/opera/i.test(navigator.userAgent);Calendar.is_khtml=/Konqueror|Safari|KHTML/i.test(navigator.userAgent);Calendar.getAbsolutePos=function(el){var SL=0,ST=0;var is_div=/^div$/i.test(el.tagName);if(is_div&&el.scrollLeft)SL=el.scrollLeft;if(is_div&&el.scrollTop)ST=el.scrollTop;var r={x:el.offsetLeft-SL,y:el.offsetTop-ST};if(el.offsetParent){var tmp=this.getAbsolutePos(el.offsetParent);r.x+=tmp.x;r.y+=tmp.y;}return r;};Calendar.isRelated=function(el,evt){var related=evt.relatedTarget;if(!related){var type=evt.type;if(type=="mouseover"){related=evt.fromElement;}else if(type=="mouseout"){related=evt.toElement;}}while(related){if(related==el){return true;}related=related.parentNode;}return false;};Calendar.removeClass=function(el,className){if(!(el&&el.className)){return;}var cls=el.className.split(" ");var ar=new Array();for(var i=cls.length;i>0;){if(cls[--i]!=className){ar[ar.length]=cls[i];}}el.className=ar.join(" ");};Calendar.addClass=function(el,className){Calendar.removeClass(el,className);el.className+=" "+className;};Calendar.getElement=function(ev){var f=Calendar.is_ie?window.event.srcElement:ev.currentTarget;while(f.nodeType!=1||/^div$/i.test(f.tagName))f=f.parentNode;return f;};Calendar.getTargetElement=function(ev){var f=Calendar.is_ie?window.event.srcElement:ev.target;while(f.nodeType!=1)f=f.parentNode;return f;};Calendar.stopEvent=function(ev){ev||(ev=window.event);if(Calendar.is_ie){ev.cancelBubble=true;ev.returnValue=false;}else{ev.preventDefault();ev.stopPropagation();}return false;};Calendar.addEvent=function(el,evname,func){if(el.attachEvent){el.attachEvent("on"+evname,func);}else if(el.addEventListener){el.addEventListener(evname,func,true);}else{el["on"+evname]=func;}};Calendar.removeEvent=function(el,evname,func){if(el.detachEvent){el.detachEvent("on"+evname,func);}else if(el.removeEventListener){el.removeEventListener(evname,func,true);}else{el["on"+evname]=null;}};Calendar.createElement=function(type,parent){var el=null;if(document.createElementNS){el=document.createElementNS("http://www.w3.org/1999/xhtml",type);}else{el=document.createElement(type);}if(typeof parent!="undefined"){parent.appendChild(el);}return el;};Calendar._add_evs=function(el){with(Calendar){addEvent(el,"mouseover",dayMouseOver);addEvent(el,"mousedown",dayMouseDown);addEvent(el,"mouseout",dayMouseOut);if(is_ie){addEvent(el,"dblclick",dayMouseDblClick);el.setAttribute("unselectable",true);}}};Calendar.findMonth=function(el){if(typeof el.month!="undefined"){return el;}else if(typeof el.parentNode.month!="undefined"){return el.parentNode;}return null;};Calendar.findYear=function(el){if(typeof el.year!="undefined"){return el;}else if(typeof el.parentNode.year!="undefined"){return el.parentNode;}return null;};Calendar.showMonthsCombo=function(){var cal=Calendar._C;if(!cal){return false;}var cal=cal;var cd=cal.activeDiv;var mc=cal.monthsCombo;if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}if(cal.activeMonth){Calendar.removeClass(cal.activeMonth,"active");}var mon=cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()];Calendar.addClass(mon,"active");cal.activeMonth=mon;var s=mc.style;s.display="block";if(cd.navtype<0)s.left=cd.offsetLeft+"px";else{var mcw=mc.offsetWidth;if(typeof mcw=="undefined")mcw=50;s.left=(cd.offsetLeft+cd.offsetWidth-mcw)+"px";}s.top=(cd.offsetTop+cd.offsetHeight)+"px";};Calendar.showYearsCombo=function(fwd){var cal=Calendar._C;if(!cal){return false;}var cal=cal;var cd=cal.activeDiv;var yc=cal.yearsCombo;if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}if(cal.activeYear){Calendar.removeClass(cal.activeYear,"active");}cal.activeYear=null;var Y=cal.date.getFullYear()+(fwd?1:-1);var yr=yc.firstChild;var show=false;for(var i=12;i>0;--i){if(Y>=cal.minYear&&Y<=cal.maxYear){yr.innerHTML=Y;yr.year=Y;yr.style.display="block";show=true;}else{yr.style.display="none";}yr=yr.nextSibling;Y+=fwd?cal.yearStep:-cal.yearStep;}if(show){var s=yc.style;s.display="block";if(cd.navtype<0)s.left=cd.offsetLeft+"px";else{var ycw=yc.offsetWidth;if(typeof ycw=="undefined")ycw=50;s.left=(cd.offsetLeft+cd.offsetWidth-ycw)+"px";}s.top=(cd.offsetTop+cd.offsetHeight)+"px";}};Calendar.tableMouseUp=function(ev){var cal=Calendar._C;if(!cal){return false;}if(cal.timeout){clearTimeout(cal.timeout);}var el=cal.activeDiv;if(!el){return false;}var target=Calendar.getTargetElement(ev);ev||(ev=window.event);Calendar.removeClass(el,"active");if(target==el||target.parentNode==el){Calendar.cellClick(el,ev);}var mon=Calendar.findMonth(target);var date=null;if(mon){date=new Date(cal.date);if(mon.month!=date.getMonth()){date.setMonth(mon.month);cal.setDate(date);cal.dateClicked=false;cal.callHandler();}}else{var year=Calendar.findYear(target);if(year){date=new Date(cal.date);if(year.year!=date.getFullYear()){date.setFullYear(year.year);cal.setDate(date);cal.dateClicked=false;cal.callHandler();}}}with(Calendar){removeEvent(document,"mouseup",tableMouseUp);removeEvent(document,"mouseover",tableMouseOver);removeEvent(document,"mousemove",tableMouseOver);cal._hideCombos();_C=null;return stopEvent(ev);}};Calendar.tableMouseOver=function(ev){var cal=Calendar._C;if(!cal){return;}var el=cal.activeDiv;var target=Calendar.getTargetElement(ev);if(target==el||target.parentNode==el){Calendar.addClass(el,"hilite active");Calendar.addClass(el.parentNode,"rowhilite");}else{if(typeof el.navtype=="undefined"||(el.navtype!=50&&(el.navtype==0||Math.abs(el.navtype)>2)))Calendar.removeClass(el,"active");Calendar.removeClass(el,"hilite");Calendar.removeClass(el.parentNode,"rowhilite");}ev||(ev=window.event);if(el.navtype==50&&target!=el){var pos=Calendar.getAbsolutePos(el);var w=el.offsetWidth;var x=ev.clientX;var dx;var decrease=true;if(x>pos.x+w){dx=x-pos.x-w;decrease=false;}else dx=pos.x-x;if(dx<0)dx=0;var range=el._range;var current=el._current;var count=Math.floor(dx/10)%range.length;for(var i=range.length;--i>=0;)if(range[i]==current)break;while(count-->0)if(decrease){if(--i<0)i=range.length-1;}else if(++i>=range.length)i=0;var newval=range[i];el.innerHTML=newval;cal.onUpdateTime();}var mon=Calendar.findMonth(target);if(mon){if(mon.month!=cal.date.getMonth()){if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}Calendar.addClass(mon,"hilite");cal.hilitedMonth=mon;}else if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}}else{if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}var year=Calendar.findYear(target);if(year){if(year.year!=cal.date.getFullYear()){if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}Calendar.addClass(year,"hilite");cal.hilitedYear=year;}else if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}}else if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}}return Calendar.stopEvent(ev);};Calendar.tableMouseDown=function(ev){if(Calendar.getTargetElement(ev)==Calendar.getElement(ev)){return Calendar.stopEvent(ev);}};Calendar.calDragIt=function(ev){var cal=Calendar._C;if(!(cal&&cal.dragging)){return false;}var posX;var posY;if(Calendar.is_ie){posY=window.event.clientY+document.body.scrollTop;posX=window.event.clientX+document.body.scrollLeft;}else{posX=ev.pageX;posY=ev.pageY;}cal.hideShowCovered();var st=cal.element.style;st.left=(posX-cal.xOffs)+"px";st.top=(posY-cal.yOffs)+"px";return Calendar.stopEvent(ev);};Calendar.calDragEnd=function(ev){var cal=Calendar._C;if(!cal){return false;}cal.dragging=false;with(Calendar){removeEvent(document,"mousemove",calDragIt);removeEvent(document,"mouseup",calDragEnd);tableMouseUp(ev);}cal.hideShowCovered();};Calendar.dayMouseDown=function(ev){var el=Calendar.getElement(ev);if(el.disabled){return false;}var cal=el.calendar;cal.activeDiv=el;Calendar._C=cal;if(el.navtype!=300)with(Calendar){if(el.navtype==50){el._current=el.innerHTML;addEvent(document,"mousemove",tableMouseOver);}else addEvent(document,Calendar.is_ie5?"mousemove":"mouseover",tableMouseOver);addClass(el,"hilite active");addEvent(document,"mouseup",tableMouseUp);}else if(cal.isPopup){cal._dragStart(ev);}if(el.navtype==-1||el.navtype==1){if(cal.timeout)clearTimeout(cal.timeout);cal.timeout=setTimeout("Calendar.showMonthsCombo()",250);}else if(el.navtype==-2||el.navtype==2){if(cal.timeout)clearTimeout(cal.timeout);cal.timeout=setTimeout((el.navtype>0)?"Calendar.showYearsCombo(true)":"Calendar.showYearsCombo(false)",250);}else{cal.timeout=null;}return Calendar.stopEvent(ev);};Calendar.dayMouseDblClick=function(ev){Calendar.cellClick(Calendar.getElement(ev),ev||window.event);if(Calendar.is_ie){document.selection.empty();}};Calendar.dayMouseOver=function(ev){var el=Calendar.getElement(ev);if(Calendar.isRelated(el,ev)||Calendar._C||el.disabled){return false;}if(el.ttip){if(el.ttip.substr(0,1)=="_"){el.ttip=el.caldate.print(el.calendar.ttDateFormat)+el.ttip.substr(1);}el.calendar.tooltips.innerHTML=el.ttip;}if(el.navtype!=300){Calendar.addClass(el,"hilite");if(el.caldate){Calendar.addClass(el.parentNode,"rowhilite");}}return Calendar.stopEvent(ev);};Calendar.dayMouseOut=function(ev){with(Calendar){var el=getElement(ev);if(isRelated(el,ev)||_C||el.disabled)return false;removeClass(el,"hilite");if(el.caldate)removeClass(el.parentNode,"rowhilite");if(el.calendar)el.calendar.tooltips.innerHTML=_TT["SEL_DATE"];return stopEvent(ev);}};Calendar.cellClick=function(el,ev){var cal=el.calendar;var closing=false;var newdate=false;var date=null;if(typeof el.navtype=="undefined"){if(cal.currentDateEl){Calendar.removeClass(cal.currentDateEl,"selected");Calendar.addClass(el,"selected");closing=(cal.currentDateEl==el);if(!closing){cal.currentDateEl=el;}}cal.date.setDateOnly(el.caldate);date=cal.date;var other_month=!(cal.dateClicked=!el.otherMonth);if(!other_month&&!cal.currentDateEl)cal._toggleMultipleDate(new Date(date));else newdate=!el.disabled;if(other_month)cal._init(cal.firstDayOfWeek,date);}else{if(el.navtype==200){Calendar.removeClass(el,"hilite");cal.callCloseHandler();return;}date=new Date(cal.date);if(el.navtype==0)date.setDateOnly(new Date());cal.dateClicked=false;var year=date.getFullYear();var mon=date.getMonth();function setMonth(m){var day=date.getDate();var max=date.getMonthDays(m);if(day>max){date.setDate(max);}date.setMonth(m);};switch(el.navtype){case 400:Calendar.removeClass(el,"hilite");var text=Calendar._TT["ABOUT"];if(typeof text!="undefined"){text+=cal.showsTime?Calendar._TT["ABOUT_TIME"]:"";}else{text="Help and about box text is not translated into this language.\n"+"If you know this language and you feel generous please update\n"+"the corresponding file in \"lang\" subdir to match calendar-en.js\n"+"and send it back to <mihai_bazon@yahoo.com> to get it into the distribution ;-)\n\n"+"Thank you!\n"+"http://dynarch.com/mishoo/calendar.epl\n";}alert(text);return;case-2:if(year>cal.minYear){date.setFullYear(year-1);}break;case-1:if(mon>0){setMonth(mon-1);}else if(year-->cal.minYear){date.setFullYear(year);setMonth(11);}break;case 1:if(mon<11){setMonth(mon+1);}else if(year<cal.maxYear){date.setFullYear(year+1);setMonth(0);}break;case 2:if(year<cal.maxYear){date.setFullYear(year+1);}break;case 100:cal.setFirstDayOfWeek(el.fdow);return;case 50:var range=el._range;var current=el.innerHTML;for(var i=range.length;--i>=0;)if(range[i]==current)break;if(ev&&ev.shiftKey){if(--i<0)i=range.length-1;}else if(++i>=range.length)i=0;var newval=range[i];el.innerHTML=newval;cal.onUpdateTime();return;case 0:if((typeof cal.getDateStatus=="function")&&cal.getDateStatus(date,date.getFullYear(),date.getMonth(),date.getDate())){return false;}break;}if(!date.equalsTo(cal.date)){cal.setDate(date);newdate=true;}else if(el.navtype==0)newdate=closing=true;}if(newdate){ev&&cal.callHandler();}if(closing){Calendar.removeClass(el,"hilite");ev&&cal.callCloseHandler();}};Calendar.prototype.create=function(_par){var parent=null;if(!_par){parent=document.getElementsByTagName("body")[0];this.isPopup=true;}else{parent=_par;this.isPopup=false;}this.date=this.dateStr?new Date(this.dateStr):new Date();var table=Calendar.createElement("table");this.table=table;table.cellSpacing=0;table.cellPadding=0;table.calendar=this;Calendar.addEvent(table,"mousedown",Calendar.tableMouseDown);var div=Calendar.createElement("div");this.element=div;div.className="calendar";if(this.isPopup){div.style.position="absolute";div.style.display="none";}div.appendChild(table);var thead=Calendar.createElement("thead",table);var cell=null;var row=null;var cal=this;var hh=function(text,cs,navtype){cell=Calendar.createElement("td",row);cell.colSpan=cs;cell.className="button";if(navtype!=0&&Math.abs(navtype)<=2)cell.className+=" nav";Calendar._add_evs(cell);cell.calendar=cal;cell.navtype=navtype;cell.innerHTML="<div unselectable='on'>"+text+"</div>";return cell;};row=Calendar.createElement("tr",thead);var title_length=6;(this.isPopup)&&--title_length;(this.weekNumbers)&&++title_length;hh("?",1,400).ttip=Calendar._TT["INFO"];this.title=hh("",title_length,300);this.title.className="title";if(this.isPopup){this.title.ttip=Calendar._TT["DRAG_TO_MOVE"];this.title.style.cursor="move";hh("&#x00d7;",1,200).ttip=Calendar._TT["CLOSE"];}row=Calendar.createElement("tr",thead);row.className="headrow";this._nav_py=hh("&#x00ab;",1,-2);this._nav_py.ttip=Calendar._TT["PREV_YEAR"];this._nav_pm=hh("&#x2039;",1,-1);this._nav_pm.ttip=Calendar._TT["PREV_MONTH"];this._nav_now=hh(Calendar._TT["TODAY"],this.weekNumbers?4:3,0);this._nav_now.ttip=Calendar._TT["GO_TODAY"];this._nav_nm=hh("&#x203a;",1,1);this._nav_nm.ttip=Calendar._TT["NEXT_MONTH"];this._nav_ny=hh("&#x00bb;",1,2);this._nav_ny.ttip=Calendar._TT["NEXT_YEAR"];row=Calendar.createElement("tr",thead);row.className="daynames";if(this.weekNumbers){cell=Calendar.createElement("td",row);cell.className="name wn";cell.innerHTML=Calendar._TT["WK"];}for(var i=7;i>0;--i){cell=Calendar.createElement("td",row);if(!i){cell.navtype=100;cell.calendar=this;Calendar._add_evs(cell);}}this.firstdayname=(this.weekNumbers)?row.firstChild.nextSibling:row.firstChild;this._displayWeekdays();var tbody=Calendar.createElement("tbody",table);this.tbody=tbody;for(i=6;i>0;--i){row=Calendar.createElement("tr",tbody);if(this.weekNumbers){cell=Calendar.createElement("td",row);}for(var j=7;j>0;--j){cell=Calendar.createElement("td",row);cell.calendar=this;Calendar._add_evs(cell);}}if(this.showsTime){row=Calendar.createElement("tr",tbody);row.className="time";cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=2;cell.innerHTML=Calendar._TT["TIME"]||"&nbsp;";cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=this.weekNumbers?4:3;(function(){function makeTimePart(className,init,range_start,range_end){var part=Calendar.createElement("span",cell);part.className=className;part.innerHTML=init;part.calendar=cal;part.ttip=Calendar._TT["TIME_PART"];part.navtype=50;part._range=[];if(typeof range_start!="number")part._range=range_start;else{for(var i=range_start;i<=range_end;++i){var txt;if(i<10&&range_end>=10)txt='0'+i;else txt=''+i;part._range[part._range.length]=txt;}}Calendar._add_evs(part);return part;};var hrs=cal.date.getHours();var mins=cal.date.getMinutes();var t12=!cal.time24;var pm=(hrs>12);if(t12&&pm)hrs-=12;var H=makeTimePart("hour",hrs,t12?1:0,t12?12:23);var span=Calendar.createElement("span",cell);span.innerHTML=":";span.className="colon";var M=makeTimePart("minute",mins,0,59);var AP=null;cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=2;if(t12)AP=makeTimePart("ampm",pm?"pm":"am",["am","pm"]);else cell.innerHTML="&nbsp;";cal.onSetTime=function(){var pm,hrs=this.date.getHours(),mins=this.date.getMinutes();if(t12){pm=(hrs>=12);if(pm)hrs-=12;if(hrs==0)hrs=12;AP.innerHTML=pm?"pm":"am";}H.innerHTML=(hrs<10)?("0"+hrs):hrs;M.innerHTML=(mins<10)?("0"+mins):mins;};cal.onUpdateTime=function(){var date=this.date;var h=parseInt(H.innerHTML,10);if(t12){if(/pm/i.test(AP.innerHTML)&&h<12)h+=12;else if(/am/i.test(AP.innerHTML)&&h==12)h=0;}var d=date.getDate();var m=date.getMonth();var y=date.getFullYear();date.setHours(h);date.setMinutes(parseInt(M.innerHTML,10));date.setFullYear(y);date.setMonth(m);date.setDate(d);this.dateClicked=false;this.callHandler();};})();}else{this.onSetTime=this.onUpdateTime=function(){};}var tfoot=Calendar.createElement("tfoot",table);row=Calendar.createElement("tr",tfoot);row.className="footrow";cell=hh(Calendar._TT["SEL_DATE"],this.weekNumbers?8:7,300);cell.className="ttip";if(this.isPopup){cell.ttip=Calendar._TT["DRAG_TO_MOVE"];cell.style.cursor="move";}this.tooltips=cell;div=Calendar.createElement("div",this.element);this.monthsCombo=div;div.className="combo";for(i=0;i<Calendar._MN.length;++i){var mn=Calendar.createElement("div");mn.className=Calendar.is_ie?"label-IEfix":"label";mn.month=i;mn.innerHTML=Calendar._SMN[i];div.appendChild(mn);}div=Calendar.createElement("div",this.element);this.yearsCombo=div;div.className="combo";for(i=12;i>0;--i){var yr=Calendar.createElement("div");yr.className=Calendar.is_ie?"label-IEfix":"label";div.appendChild(yr);}this._init(this.firstDayOfWeek,this.date);parent.appendChild(this.element);};Calendar._keyEvent=function(ev){var cal=window._dynarch_popupCalendar;if(!cal||cal.multiple)return false;(Calendar.is_ie)&&(ev=window.event);var act=(Calendar.is_ie||ev.type=="keypress"),K=ev.keyCode;if(ev.ctrlKey){switch(K){case 37:act&&Calendar.cellClick(cal._nav_pm);break;case 38:act&&Calendar.cellClick(cal._nav_py);break;case 39:act&&Calendar.cellClick(cal._nav_nm);break;case 40:act&&Calendar.cellClick(cal._nav_ny);break;default:return false;}}else switch(K){case 32:Calendar.cellClick(cal._nav_now);break;case 27:act&&cal.callCloseHandler();break;case 37:case 38:case 39:case 40:if(act){var prev,x,y,ne,el,step;prev=K==37||K==38;step=(K==37||K==39)?1:7;function setVars(){el=cal.currentDateEl;var p=el.pos;x=p&15;y=p>>4;ne=cal.ar_days[y][x];};setVars();function prevMonth(){var date=new Date(cal.date);date.setDate(date.getDate()-step);cal.setDate(date);};function nextMonth(){var date=new Date(cal.date);date.setDate(date.getDate()+step);cal.setDate(date);};while(1){switch(K){case 37:if(--x>=0)ne=cal.ar_days[y][x];else{x=6;K=38;continue;}break;case 38:if(--y>=0)ne=cal.ar_days[y][x];else{prevMonth();setVars();}break;case 39:if(++x<7)ne=cal.ar_days[y][x];else{x=0;K=40;continue;}break;case 40:if(++y<cal.ar_days.length)ne=cal.ar_days[y][x];else{nextMonth();setVars();}break;}break;}if(ne){if(!ne.disabled)Calendar.cellClick(ne);else if(prev)prevMonth();else nextMonth();}}break;case 13:if(act)Calendar.cellClick(cal.currentDateEl,ev);break;default:return false;}return Calendar.stopEvent(ev);};Calendar.prototype._init=function(firstDayOfWeek,date){var today=new Date(),TY=today.getFullYear(),TM=today.getMonth(),TD=today.getDate();this.table.style.visibility="hidden";var year=date.getFullYear();if(year<this.minYear){year=this.minYear;date.setFullYear(year);}else if(year>this.maxYear){year=this.maxYear;date.setFullYear(year);}this.firstDayOfWeek=firstDayOfWeek;this.date=new Date(date);var month=date.getMonth();var mday=date.getDate();var no_days=date.getMonthDays();date.setDate(1);var day1=(date.getDay()-this.firstDayOfWeek)%7;if(day1<0)day1+=7;date.setDate(-day1);date.setDate(date.getDate()+1);var row=this.tbody.firstChild;var MN=Calendar._SMN[month];var ar_days=this.ar_days=new Array();var weekend=Calendar._TT["WEEKEND"];var dates=this.multiple?(this.datesCells={}):null;for(var i=0;i<6;++i,row=row.nextSibling){var cell=row.firstChild;if(this.weekNumbers){cell.className="day wn";cell.innerHTML=date.getWeekNumber();cell=cell.nextSibling;}row.className="daysrow";var hasdays=false,iday,dpos=ar_days[i]=[];for(var j=0;j<7;++j,cell=cell.nextSibling,date.setDate(iday+1)){iday=date.getDate();var wday=date.getDay();cell.className="day";cell.pos=i<<4|j;dpos[j]=cell;var current_month=(date.getMonth()==month);if(!current_month){if(this.showsOtherMonths){cell.className+=" othermonth";cell.otherMonth=true;}else{cell.className="emptycell";cell.innerHTML="&nbsp;";cell.disabled=true;continue;}}else{cell.otherMonth=false;hasdays=true;}cell.disabled=false;cell.innerHTML=this.getDateText?this.getDateText(date,iday):iday;if(dates)dates[date.print("%Y%m%d")]=cell;if(this.getDateStatus){var status=this.getDateStatus(date,year,month,iday);if(this.getDateToolTip){var toolTip=this.getDateToolTip(date,year,month,iday);if(toolTip)cell.title=toolTip;}if(status===true){cell.className+=" disabled";cell.disabled=true;}else{if(/disabled/i.test(status))cell.disabled=true;cell.className+=" "+status;}}if(!cell.disabled){cell.caldate=new Date(date);cell.ttip="_";if(!this.multiple&&current_month&&iday==mday&&this.hiliteToday){cell.className+=" selected";this.currentDateEl=cell;}if(date.getFullYear()==TY&&date.getMonth()==TM&&iday==TD){cell.className+=" today";cell.ttip+=Calendar._TT["PART_TODAY"];}if(weekend.indexOf(wday.toString())!=-1)cell.className+=cell.otherMonth?" oweekend":" weekend";}}if(!(hasdays||this.showsOtherMonths))row.className="emptyrow";}this.title.innerHTML=Calendar._MN[month]+", "+year;this.onSetTime();this.table.style.visibility="visible";this._initMultipleDates();};Calendar.prototype._initMultipleDates=function(){if(this.multiple){for(var i in this.multiple){var cell=this.datesCells[i];var d=this.multiple[i];if(!d)continue;if(cell)cell.className+=" selected";}}};Calendar.prototype._toggleMultipleDate=function(date){if(this.multiple){var ds=date.print("%Y%m%d");var cell=this.datesCells[ds];if(cell){var d=this.multiple[ds];if(!d){Calendar.addClass(cell,"selected");this.multiple[ds]=date;}else{Calendar.removeClass(cell,"selected");delete this.multiple[ds];}}}};Calendar.prototype.setDateToolTipHandler=function(unaryFunction){this.getDateToolTip=unaryFunction;};Calendar.prototype.setDate=function(date){if(!date.equalsTo(this.date)){this._init(this.firstDayOfWeek,date);}};Calendar.prototype.refresh=function(){this._init(this.firstDayOfWeek,this.date);};Calendar.prototype.setFirstDayOfWeek=function(firstDayOfWeek){this._init(firstDayOfWeek,this.date);this._displayWeekdays();};Calendar.prototype.setDateStatusHandler=Calendar.prototype.setDisabledHandler=function(unaryFunction){this.getDateStatus=unaryFunction;};Calendar.prototype.setRange=function(a,z){this.minYear=a;this.maxYear=z;};Calendar.prototype.callHandler=function(){if(this.onSelected){this.onSelected(this,this.date.print(this.dateFormat));}};Calendar.prototype.callCloseHandler=function(){if(this.onClose){this.onClose(this);}this.hideShowCovered();};Calendar.prototype.destroy=function(){var el=this.element.parentNode;el.removeChild(this.element);Calendar._C=null;window._dynarch_popupCalendar=null;};Calendar.prototype.reparent=function(new_parent){var el=this.element;el.parentNode.removeChild(el);new_parent.appendChild(el);};Calendar._checkCalendar=function(ev){var calendar=window._dynarch_popupCalendar;if(!calendar){return false;}var el=Calendar.is_ie?Calendar.getElement(ev):Calendar.getTargetElement(ev);for(;el!=null&&el!=calendar.element;el=el.parentNode);if(el==null){window._dynarch_popupCalendar.callCloseHandler();return Calendar.stopEvent(ev);}};Calendar.prototype.show=function(){var rows=this.table.getElementsByTagName("tr");for(var i=rows.length;i>0;){var row=rows[--i];Calendar.removeClass(row,"rowhilite");var cells=row.getElementsByTagName("td");for(var j=cells.length;j>0;){var cell=cells[--j];Calendar.removeClass(cell,"hilite");Calendar.removeClass(cell,"active");}}this.element.style.display="block";this.hidden=false;if(this.isPopup){window._dynarch_popupCalendar=this;Calendar.addEvent(document,"keydown",Calendar._keyEvent);Calendar.addEvent(document,"keypress",Calendar._keyEvent);Calendar.addEvent(document,"mousedown",Calendar._checkCalendar);}this.hideShowCovered();};Calendar.prototype.hide=function(){if(this.isPopup){Calendar.removeEvent(document,"keydown",Calendar._keyEvent);Calendar.removeEvent(document,"keypress",Calendar._keyEvent);Calendar.removeEvent(document,"mousedown",Calendar._checkCalendar);}this.element.style.display="none";this.hidden=true;this.hideShowCovered();};Calendar.prototype.showAt=function(x,y){var s=this.element.style;s.left=x+"px";s.top=y+"px";this.show();};Calendar.prototype.showAtElement=function(el,opts){var self=this;var p=Calendar.getAbsolutePos(el);if(!opts||typeof opts!="string"){this.showAt(p.x,p.y+el.offsetHeight);return true;}function fixPosition(box){if(box.x<0)box.x=0;if(box.y<0)box.y=0;var cp=document.createElement("div");var s=cp.style;s.position="absolute";s.right=s.bottom=s.width=s.height="0px";document.body.appendChild(cp);var br=Calendar.getAbsolutePos(cp);document.body.removeChild(cp);if(Calendar.is_ie){br.y+=document.body.scrollTop;br.x+=document.body.scrollLeft;}else{br.y+=window.scrollY;br.x+=window.scrollX;}var tmp=box.x+box.width-br.x;if(tmp>0)box.x-=tmp;tmp=box.y+box.height-br.y;if(tmp>0)box.y-=tmp;};this.element.style.display="block";Calendar.continuation_for_the_fucking_khtml_browser=function(){var w=self.element.offsetWidth;var h=self.element.offsetHeight;self.element.style.display="none";var valign=opts.substr(0,1);var halign="l";if(opts.length>1){halign=opts.substr(1,1);}switch(valign){case "T":p.y-=h;break;case "B":p.y+=el.offsetHeight;break;case "C":p.y+=(el.offsetHeight-h)/2;break;case "t":p.y+=el.offsetHeight-h;break;case "b":break;}switch(halign){case "L":p.x-=w;break;case "R":p.x+=el.offsetWidth;break;case "C":p.x+=(el.offsetWidth-w)/2;break;case "l":p.x+=el.offsetWidth-w;break;case "r":break;}p.width=w;p.height=h+40;self.monthsCombo.style.display="none";fixPosition(p);self.showAt(p.x,p.y);};if(Calendar.is_khtml)setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()",10);else Calendar.continuation_for_the_fucking_khtml_browser();};Calendar.prototype.setDateFormat=function(str){this.dateFormat=str;};Calendar.prototype.setTtDateFormat=function(str){this.ttDateFormat=str;};Calendar.prototype.parseDate=function(str,fmt){if(!fmt)fmt=this.dateFormat;this.setDate(Date.parseDate(str,fmt));};Calendar.prototype.hideShowCovered=function(){if(!Calendar.is_ie&&!Calendar.is_opera)return;function getVisib(obj){var value=obj.style.visibility;if(!value){if(document.defaultView&&typeof(document.defaultView.getComputedStyle)=="function"){if(!Calendar.is_khtml)value=document.defaultView. getComputedStyle(obj,"").getPropertyValue("visibility");else value='';}else if(obj.currentStyle){value=obj.currentStyle.visibility;}else value='';}return value;};var tags=new Array("applet","iframe","select");var el=this.element;var p=Calendar.getAbsolutePos(el);var EX1=p.x;var EX2=el.offsetWidth+EX1;var EY1=p.y;var EY2=el.offsetHeight+EY1;for(var k=tags.length;k>0;){var ar=document.getElementsByTagName(tags[--k]);var cc=null;for(var i=ar.length;i>0;){cc=ar[--i];p=Calendar.getAbsolutePos(cc);var CX1=p.x;var CX2=cc.offsetWidth+CX1;var CY1=p.y;var CY2=cc.offsetHeight+CY1;if(this.hidden||(CX1>EX2)||(CX2<EX1)||(CY1>EY2)||(CY2<EY1)){if(!cc.__msh_save_visibility){cc.__msh_save_visibility=getVisib(cc);}cc.style.visibility=cc.__msh_save_visibility;}else{if(!cc.__msh_save_visibility){cc.__msh_save_visibility=getVisib(cc);}cc.style.visibility="hidden";}}}};Calendar.prototype._displayWeekdays=function(){var fdow=this.firstDayOfWeek;var cell=this.firstdayname;var weekend=Calendar._TT["WEEKEND"];for(var i=0;i<7;++i){cell.className="day name";var realday=(i+fdow)%7;if(i){cell.ttip=Calendar._TT["DAY_FIRST"].replace("%s",Calendar._DN[realday]);cell.navtype=100;cell.calendar=this;cell.fdow=realday;Calendar._add_evs(cell);}if(weekend.indexOf(realday.toString())!=-1){Calendar.addClass(cell,"weekend");}cell.innerHTML=Calendar._SDN[(i+fdow)%7];cell=cell.nextSibling;}};Calendar.prototype._hideCombos=function(){this.monthsCombo.style.display="none";this.yearsCombo.style.display="none";};Calendar.prototype._dragStart=function(ev){if(this.dragging){return;}this.dragging=true;var posX;var posY;if(Calendar.is_ie){posY=window.event.clientY+document.body.scrollTop;posX=window.event.clientX+document.body.scrollLeft;}else{posY=ev.clientY+window.scrollY;posX=ev.clientX+window.scrollX;}var st=this.element.style;this.xOffs=posX-parseInt(st.left);this.yOffs=posY-parseInt(st.top);with(Calendar){addEvent(document,"mousemove",calDragIt);addEvent(document,"mouseup",calDragEnd);}};Date._MD=new Array(31,28,31,30,31,30,31,31,30,31,30,31);Date.SECOND=1000;Date.MINUTE=60*Date.SECOND;Date.HOUR=60*Date.MINUTE;Date.DAY=24*Date.HOUR;Date.WEEK=7*Date.DAY;Date.parseDate=function(str,fmt){var today=new Date();var y=0;var m=-1;var d=0;var a=str.split(/\W+/);var b=fmt.match(/%./g);var i=0,j=0;var hr=0;var min=0;for(i=0;i<a.length;++i){if(!a[i])continue;switch(b[i]){case "%d":case "%e":d=parseInt(a[i],10);break;case "%m":m=parseInt(a[i],10)-1;break;case "%Y":case "%y":y=parseInt(a[i],10);(y<100)&&(y+=(y>29)?1900:2000);break;case "%b":case "%B":for(j=0;j<12;++j){if(Calendar._MN[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){m=j;break;}}break;case "%H":case "%I":case "%k":case "%l":hr=parseInt(a[i],10);break;case "%P":case "%p":if(/pm/i.test(a[i])&&hr<12)hr+=12;else if(/am/i.test(a[i])&&hr>=12)hr-=12;break;case "%M":min=parseInt(a[i],10);break;}}if(isNaN(y))y=today.getFullYear();if(isNaN(m))m=today.getMonth();if(isNaN(d))d=today.getDate();if(isNaN(hr))hr=today.getHours();if(isNaN(min))min=today.getMinutes();if(y!=0&&m!=-1&&d!=0)return new Date(y,m,d,hr,min,0);y=0;m=-1;d=0;for(i=0;i<a.length;++i){if(a[i].search(/[a-zA-Z]+/)!=-1){var t=-1;for(j=0;j<12;++j){if(Calendar._MN[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){t=j;break;}}if(t!=-1){if(m!=-1){d=m+1;}m=t;}}else if(parseInt(a[i],10)<=12&&m==-1){m=a[i]-1;}else if(parseInt(a[i],10)>31&&y==0){y=parseInt(a[i],10);(y<100)&&(y+=(y>29)?1900:2000);}else if(d==0){d=a[i];}}if(y==0)y=today.getFullYear();if(m!=-1&&d!=0)return new Date(y,m,d,hr,min,0);return today;};Date.prototype.getMonthDays=function(month){var year=this.getFullYear();if(typeof month=="undefined"){month=this.getMonth();}if(((0==(year%4))&&((0!=(year%100))||(0==(year%400))))&&month==1){return 29;}else{return Date._MD[month];}};Date.prototype.getDayOfYear=function(){var now=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var then=new Date(this.getFullYear(),0,0,0,0,0);var time=now-then;return Math.floor(time/Date.DAY);};Date.prototype.getWeekNumber=function(){var d=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var DoW=d.getDay();d.setDate(d.getDate()-(DoW+6)%7+3);var ms=d.valueOf();d.setMonth(0);d.setDate(4);return Math.round((ms-d.valueOf())/(7*864e5))+1;};Date.prototype.equalsTo=function(date){return((this.getFullYear()==date.getFullYear())&&(this.getMonth()==date.getMonth())&&(this.getDate()==date.getDate())&&(this.getHours()==date.getHours())&&(this.getMinutes()==date.getMinutes()));};Date.prototype.setDateOnly=function(date){var tmp=new Date(date);this.setDate(1);this.setFullYear(tmp.getFullYear());this.setMonth(tmp.getMonth());this.setDate(tmp.getDate());};Date.prototype.print=function(str){var m=this.getMonth();var d=this.getDate();var y=this.getFullYear();var wn=this.getWeekNumber();var w=this.getDay();var s={};var hr=this.getHours();var pm=(hr>=12);var ir=(pm)?(hr-12):hr;var dy=this.getDayOfYear();if(ir==0)ir=12;var min=this.getMinutes();var sec=this.getSeconds();s["%a"]=Calendar._SDN[w];s["%A"]=Calendar._DN[w];s["%b"]=Calendar._SMN[m];s["%B"]=Calendar._MN[m];s["%C"]=1+Math.floor(y/100);s["%d"]=(d<10)?("0"+d):d;s["%e"]=d;s["%H"]=(hr<10)?("0"+hr):hr;s["%I"]=(ir<10)?("0"+ir):ir;s["%j"]=(dy<100)?((dy<10)?("00"+dy):("0"+dy)):dy;s["%k"]=hr;s["%l"]=ir;s["%m"]=(m<9)?("0"+(1+m)):(1+m);s["%M"]=(min<10)?("0"+min):min;s["%n"]="\n";s["%p"]=pm?"PM":"AM";s["%P"]=pm?"pm":"am";s["%s"]=Math.floor(this.getTime()/1000);s["%S"]=(sec<10)?("0"+sec):sec;s["%t"]="\t";s["%U"]=s["%W"]=s["%V"]=(wn<10)?("0"+wn):wn;s["%u"]=w+1;s["%w"]=w;s["%y"]=(''+y).substr(2,2);s["%Y"]=y;s["%%"]="%";var re=/%./g;if(!Calendar.is_ie5&&!Calendar.is_khtml)return str.replace(re,function(par){return s[par]||par;});var a=str.match(re);for(var i=0;i<a.length;i++){var tmp=s[a[i]];if(tmp){re=new RegExp(a[i],'g');str=str.replace(re,tmp);}}return str;};Date.prototype.__msh_oldSetFullYear=Date.prototype.setFullYear;Date.prototype.setFullYear=function(y){var d=new Date(this);d.__msh_oldSetFullYear(y);if(d.getMonth()!=this.getMonth())this.setDate(28);this.__msh_oldSetFullYear(y);};window._dynarch_popupCalendar=null;
@@ -0,0 +1,39 @@
1
+ // ** I18N Afrikaans
2
+ Calendar._DN = new Array
3
+ ("Sondag",
4
+ "Maandag",
5
+ "Dinsdag",
6
+ "Woensdag",
7
+ "Donderdag",
8
+ "Vrydag",
9
+ "Saterdag",
10
+ "Sondag");
11
+ Calendar._MN = new Array
12
+ ("Januarie",
13
+ "Februarie",
14
+ "Maart",
15
+ "April",
16
+ "Mei",
17
+ "Junie",
18
+ "Julie",
19
+ "Augustus",
20
+ "September",
21
+ "Oktober",
22
+ "November",
23
+ "Desember");
24
+
25
+ // tooltips
26
+ Calendar._TT = {};
27
+ Calendar._TT["TOGGLE"] = "Verander eerste dag van die week";
28
+ Calendar._TT["PREV_YEAR"] = "Vorige jaar (hou vir keuselys)";
29
+ Calendar._TT["PREV_MONTH"] = "Vorige maand (hou vir keuselys)";
30
+ Calendar._TT["GO_TODAY"] = "Gaan na vandag";
31
+ Calendar._TT["NEXT_MONTH"] = "Volgende maand (hou vir keuselys)";
32
+ Calendar._TT["NEXT_YEAR"] = "Volgende jaar (hou vir keuselys)";
33
+ Calendar._TT["SEL_DATE"] = "Kies datum";
34
+ Calendar._TT["DRAG_TO_MOVE"] = "Sleep om te skuif";
35
+ Calendar._TT["PART_TODAY"] = " (vandag)";
36
+ Calendar._TT["MON_FIRST"] = "Vertoon Maandag eerste";
37
+ Calendar._TT["SUN_FIRST"] = "Display Sunday first";
38
+ Calendar._TT["CLOSE"] = "Close";
39
+ Calendar._TT["TODAY"] = "Today";
@@ -0,0 +1,101 @@
1
+ // Calendar ALBANIAN language
2
+ //author Rigels Gordani rige@hotmail.com
3
+
4
+ // ditet
5
+ Calendar._DN = new Array
6
+ ("E Diele",
7
+ "E Hene",
8
+ "E Marte",
9
+ "E Merkure",
10
+ "E Enjte",
11
+ "E Premte",
12
+ "E Shtune",
13
+ "E Diele");
14
+
15
+ //ditet shkurt
16
+ Calendar._SDN = new Array
17
+ ("Die",
18
+ "Hen",
19
+ "Mar",
20
+ "Mer",
21
+ "Enj",
22
+ "Pre",
23
+ "Sht",
24
+ "Die");
25
+
26
+ // muajt
27
+ Calendar._MN = new Array
28
+ ("Janar",
29
+ "Shkurt",
30
+ "Mars",
31
+ "Prill",
32
+ "Maj",
33
+ "Qeshor",
34
+ "Korrik",
35
+ "Gusht",
36
+ "Shtator",
37
+ "Tetor",
38
+ "Nentor",
39
+ "Dhjetor");
40
+
41
+ // muajte shkurt
42
+ Calendar._SMN = new Array
43
+ ("Jan",
44
+ "Shk",
45
+ "Mar",
46
+ "Pri",
47
+ "Maj",
48
+ "Qes",
49
+ "Kor",
50
+ "Gus",
51
+ "Sht",
52
+ "Tet",
53
+ "Nen",
54
+ "Dhj");
55
+
56
+ // ndihmesa
57
+ Calendar._TT = {};
58
+ Calendar._TT["INFO"] = "Per kalendarin";
59
+
60
+ Calendar._TT["ABOUT"] =
61
+ "Zgjedhes i ores/dates ne DHTML \n" +
62
+ "\n\n" +"Zgjedhja e Dates:\n" +
63
+ "- Perdor butonat \xab, \xbb per te zgjedhur vitin\n" +
64
+ "- Perdor butonat" + String.fromCharCode(0x2039) + ", " +
65
+ String.fromCharCode(0x203a) +
66
+ " per te zgjedhur muajin\n" +
67
+ "- Mbani shtypur butonin e mousit per nje zgjedje me te shpejte.";
68
+ Calendar._TT["ABOUT_TIME"] = "\n\n" +
69
+ "Zgjedhja e kohes:\n" +
70
+ "- Kliko tek ndonje nga pjeset e ores per ta rritur ate\n" +
71
+ "- ose kliko me Shift per ta zvogeluar ate\n" +
72
+ "- ose cliko dhe terhiq per zgjedhje me te shpejte.";
73
+
74
+ Calendar._TT["PREV_YEAR"] = "Viti i shkuar (prit per menune)";
75
+ Calendar._TT["PREV_MONTH"] = "Muaji i shkuar (prit per menune)";
76
+ Calendar._TT["GO_TODAY"] = "Sot";
77
+ Calendar._TT["NEXT_MONTH"] = "Muaji i ardhshem (prit per menune)";
78
+ Calendar._TT["NEXT_YEAR"] = "Viti i ardhshem (prit per menune)";
79
+ Calendar._TT["SEL_DATE"] = "Zgjidh daten";
80
+ Calendar._TT["DRAG_TO_MOVE"] = "Terhiqe per te levizur";
81
+ Calendar._TT["PART_TODAY"] = " (sot)";
82
+
83
+ // "%s" eshte dita e pare e javes
84
+ // %s do te zevendesohet me emrin e dite
85
+ Calendar._TT["DAY_FIRST"] = "Trego te %s te paren";
86
+
87
+
88
+ Calendar._TT["WEEKEND"] = "0,6";
89
+
90
+ Calendar._TT["CLOSE"] = "Mbyll";
91
+ Calendar._TT["TODAY"] = "Sot";
92
+ Calendar._TT["TIME_PART"] = "Kliko me (Shift-)ose terhiqe per te ndryshuar
93
+ vleren";
94
+
95
+ // date formats
96
+ Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
97
+ Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
98
+
99
+ Calendar._TT["WK"] = "Java";
100
+ Calendar._TT["TIME"] = "Koha:";
101
+
@@ -0,0 +1,124 @@
1
+ // ** I18N
2
+
3
+ // Calendar BG language
4
+ // Author: Mihai Bazon, <mihai_bazon@yahoo.com>
5
+ // Translator: Valentin Sheiretsky, <valio@valio.eu.org>
6
+ // Encoding: Windows-1251
7
+ // Distributed under the same terms as the calendar itself.
8
+
9
+ // For translators: please use UTF-8 if possible. We strongly believe that
10
+ // Unicode is the answer to a real internationalized world. Also please
11
+ // include your contact information in the header, as can be seen above.
12
+
13
+ // full day names
14
+ Calendar._DN = new Array
15
+ ("������",
16
+ "����������",
17
+ "�������",
18
+ "�����",
19
+ "���������",
20
+ "�����",
21
+ "������",
22
+ "������");
23
+
24
+ // Please note that the following array of short day names (and the same goes
25
+ // for short month names, _SMN) isn't absolutely necessary. We give it here
26
+ // for exemplification on how one can customize the short day names, but if
27
+ // they are simply the first N letters of the full name you can simply say:
28
+ //
29
+ // Calendar._SDN_len = N; // short day name length
30
+ // Calendar._SMN_len = N; // short month name length
31
+ //
32
+ // If N = 3 then this is not needed either since we assume a value of 3 if not
33
+ // present, to be compatible with translation files that were written before
34
+ // this feature.
35
+
36
+ // short day names
37
+ Calendar._SDN = new Array
38
+ ("���",
39
+ "���",
40
+ "���",
41
+ "���",
42
+ "���",
43
+ "���",
44
+ "���",
45
+ "���");
46
+
47
+ // full month names
48
+ Calendar._MN = new Array
49
+ ("������",
50
+ "��������",
51
+ "����",
52
+ "�����",
53
+ "���",
54
+ "���",
55
+ "���",
56
+ "������",
57
+ "���������",
58
+ "��������",
59
+ "�������",
60
+ "��������");
61
+
62
+ // short month names
63
+ Calendar._SMN = new Array
64
+ ("���",
65
+ "���",
66
+ "���",
67
+ "���",
68
+ "���",
69
+ "���",
70
+ "���",
71
+ "���",
72
+ "���",
73
+ "���",
74
+ "���",
75
+ "���");
76
+
77
+ // tooltips
78
+ Calendar._TT = {};
79
+ Calendar._TT["INFO"] = "���������� �� ���������";
80
+
81
+ Calendar._TT["ABOUT"] =
82
+ "DHTML Date/Time Selector\n" +
83
+ "(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
84
+ "For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
85
+ "Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
86
+ "\n\n" +
87
+ "Date selection:\n" +
88
+ "- Use the \xab, \xbb buttons to select year\n" +
89
+ "- Use the " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " buttons to select month\n" +
90
+ "- Hold mouse button on any of the above buttons for faster selection.";
91
+ Calendar._TT["ABOUT_TIME"] = "\n\n" +
92
+ "Time selection:\n" +
93
+ "- Click on any of the time parts to increase it\n" +
94
+ "- or Shift-click to decrease it\n" +
95
+ "- or click and drag for faster selection.";
96
+
97
+ Calendar._TT["PREV_YEAR"] = "������ ������ (�������� �� ����)";
98
+ Calendar._TT["PREV_MONTH"] = "������ ����� (�������� �� ����)";
99
+ Calendar._TT["GO_TODAY"] = "�������� ����";
100
+ Calendar._TT["NEXT_MONTH"] = "������� ����� (�������� �� ����)";
101
+ Calendar._TT["NEXT_YEAR"] = "�������� ������ (�������� �� ����)";
102
+ Calendar._TT["SEL_DATE"] = "�������� ����";
103
+ Calendar._TT["DRAG_TO_MOVE"] = "�����������";
104
+ Calendar._TT["PART_TODAY"] = " (����)";
105
+
106
+ // the following is to inform that "%s" is to be the first day of week
107
+ // %s will be replaced with the day name.
108
+ Calendar._TT["DAY_FIRST"] = "%s ���� ����� ���";
109
+
110
+ // This may be locale-dependent. It specifies the week-end days, as an array
111
+ // of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
112
+ // means Monday, etc.
113
+ Calendar._TT["WEEKEND"] = "0,6";
114
+
115
+ Calendar._TT["CLOSE"] = "���������";
116
+ Calendar._TT["TODAY"] = "����";
117
+ Calendar._TT["TIME_PART"] = "(Shift-)Click ��� drag �� �� ��������� ����������";
118
+
119
+ // date formats
120
+ Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
121
+ Calendar._TT["TT_DATE_FORMAT"] = "%A - %e %B %Y";
122
+
123
+ Calendar._TT["WK"] = "����";
124
+ Calendar._TT["TIME"] = "���:";
@@ -0,0 +1,123 @@
1
+ // ** I18N
2
+
3
+ // Calendar big5-utf8 language
4
+ // Author: Gary Fu, <gary@garyfu.idv.tw>
5
+ // Encoding: utf8
6
+ // Distributed under the same terms as the calendar itself.
7
+
8
+ // For translators: please use UTF-8 if possible. We strongly believe that
9
+ // Unicode is the answer to a real internationalized world. Also please
10
+ // include your contact information in the header, as can be seen above.
11
+
12
+ // full day names
13
+ Calendar._DN = new Array
14
+ ("星期日",
15
+ "星期一",
16
+ "星期二",
17
+ "星期三",
18
+ "星期四",
19
+ "星期五",
20
+ "星期六",
21
+ "星期日");
22
+
23
+ // Please note that the following array of short day names (and the same goes
24
+ // for short month names, _SMN) isn't absolutely necessary. We give it here
25
+ // for exemplification on how one can customize the short day names, but if
26
+ // they are simply the first N letters of the full name you can simply say:
27
+ //
28
+ // Calendar._SDN_len = N; // short day name length
29
+ // Calendar._SMN_len = N; // short month name length
30
+ //
31
+ // If N = 3 then this is not needed either since we assume a value of 3 if not
32
+ // present, to be compatible with translation files that were written before
33
+ // this feature.
34
+
35
+ // short day names
36
+ Calendar._SDN = new Array
37
+ ("日",
38
+ "一",
39
+ "二",
40
+ "三",
41
+ "四",
42
+ "五",
43
+ "六",
44
+ "日");
45
+
46
+ // full month names
47
+ Calendar._MN = new Array
48
+ ("一月",
49
+ "二月",
50
+ "三月",
51
+ "四月",
52
+ "五月",
53
+ "六月",
54
+ "七月",
55
+ "八月",
56
+ "九月",
57
+ "十月",
58
+ "十一月",
59
+ "十二月");
60
+
61
+ // short month names
62
+ Calendar._SMN = new Array
63
+ ("一月",
64
+ "二月",
65
+ "三月",
66
+ "四月",
67
+ "五月",
68
+ "六月",
69
+ "七月",
70
+ "八月",
71
+ "九月",
72
+ "十月",
73
+ "十一月",
74
+ "十二月");
75
+
76
+ // tooltips
77
+ Calendar._TT = {};
78
+ Calendar._TT["INFO"] = "關於";
79
+
80
+ Calendar._TT["ABOUT"] =
81
+ "DHTML Date/Time Selector\n" +
82
+ "(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
83
+ "For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
84
+ "Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
85
+ "\n\n" +
86
+ "日期選擇方法:\n" +
87
+ "- 使用 \xab, \xbb 按鈕可選擇年份\n" +
88
+ "- 使用 " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " 按鈕可選擇月份\n" +
89
+ "- 按住上面的按鈕可以加快選取";
90
+ Calendar._TT["ABOUT_TIME"] = "\n\n" +
91
+ "時間選擇方法:\n" +
92
+ "- 點擊任何的時間部份可增加其值\n" +
93
+ "- 同時按Shift鍵再點擊可減少其值\n" +
94
+ "- 點擊並拖曳可加快改變的值";
95
+
96
+ Calendar._TT["PREV_YEAR"] = "上一年 (按住選單)";
97
+ Calendar._TT["PREV_MONTH"] = "下一年 (按住選單)";
98
+ Calendar._TT["GO_TODAY"] = "到今日";
99
+ Calendar._TT["NEXT_MONTH"] = "上一月 (按住選單)";
100
+ Calendar._TT["NEXT_YEAR"] = "下一月 (按住選單)";
101
+ Calendar._TT["SEL_DATE"] = "選擇日期";
102
+ Calendar._TT["DRAG_TO_MOVE"] = "拖曳";
103
+ Calendar._TT["PART_TODAY"] = " (今日)";
104
+
105
+ // the following is to inform that "%s" is to be the first day of week
106
+ // %s will be replaced with the day name.
107
+ Calendar._TT["DAY_FIRST"] = "將 %s 顯示在前";
108
+
109
+ // This may be locale-dependent. It specifies the week-end days, as an array
110
+ // of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
111
+ // means Monday, etc.
112
+ Calendar._TT["WEEKEND"] = "0,6";
113
+
114
+ Calendar._TT["CLOSE"] = "關閉";
115
+ Calendar._TT["TODAY"] = "今日";
116
+ Calendar._TT["TIME_PART"] = "點擊or拖曳可改變時間(同時按Shift為減)";
117
+
118
+ // date formats
119
+ Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
120
+ Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
121
+
122
+ Calendar._TT["WK"] = "週";
123
+ Calendar._TT["TIME"] = "Time:";
@@ -0,0 +1,123 @@
1
+ // ** I18N
2
+
3
+ // Calendar big5 language
4
+ // Author: Gary Fu, <gary@garyfu.idv.tw>
5
+ // Encoding: big5
6
+ // Distributed under the same terms as the calendar itself.
7
+
8
+ // For translators: please use UTF-8 if possible. We strongly believe that
9
+ // Unicode is the answer to a real internationalized world. Also please
10
+ // include your contact information in the header, as can be seen above.
11
+
12
+ // full day names
13
+ Calendar._DN = new Array
14
+ ("�P����",
15
+ "�P���@",
16
+ "�P���G",
17
+ "�P���T",
18
+ "�P���|",
19
+ "�P����",
20
+ "�P����",
21
+ "�P����");
22
+
23
+ // Please note that the following array of short day names (and the same goes
24
+ // for short month names, _SMN) isn't absolutely necessary. We give it here
25
+ // for exemplification on how one can customize the short day names, but if
26
+ // they are simply the first N letters of the full name you can simply say:
27
+ //
28
+ // Calendar._SDN_len = N; // short day name length
29
+ // Calendar._SMN_len = N; // short month name length
30
+ //
31
+ // If N = 3 then this is not needed either since we assume a value of 3 if not
32
+ // present, to be compatible with translation files that were written before
33
+ // this feature.
34
+
35
+ // short day names
36
+ Calendar._SDN = new Array
37
+ ("��",
38
+ "�@",
39
+ "�G",
40
+ "�T",
41
+ "�|",
42
+ "��",
43
+ "��",
44
+ "��");
45
+
46
+ // full month names
47
+ Calendar._MN = new Array
48
+ ("�@��",
49
+ "�G��",
50
+ "�T��",
51
+ "�|��",
52
+ "����",
53
+ "����",
54
+ "�C��",
55
+ "�K��",
56
+ "�E��",
57
+ "�Q��",
58
+ "�Q�@��",
59
+ "�Q�G��");
60
+
61
+ // short month names
62
+ Calendar._SMN = new Array
63
+ ("�@��",
64
+ "�G��",
65
+ "�T��",
66
+ "�|��",
67
+ "����",
68
+ "����",
69
+ "�C��",
70
+ "�K��",
71
+ "�E��",
72
+ "�Q��",
73
+ "�Q�@��",
74
+ "�Q�G��");
75
+
76
+ // tooltips
77
+ Calendar._TT = {};
78
+ Calendar._TT["INFO"] = "����";
79
+
80
+ Calendar._TT["ABOUT"] =
81
+ "DHTML Date/Time Selector\n" +
82
+ "(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
83
+ "For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
84
+ "Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
85
+ "\n\n" +
86
+ "�����ܤ�k:\n" +
87
+ "- �ϥ� \xab, \xbb ���s�i��ܦ~��\n" +
88
+ "- �ϥ� " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " ���s�i��ܤ��\n" +
89
+ "- �����W�������s�i�H�[�ֿ��";
90
+ Calendar._TT["ABOUT_TIME"] = "\n\n" +
91
+ "�ɶ���ܤ�k:\n" +
92
+ "- �I�����󪺮ɶ������i�W�[���\n" +
93
+ "- �P�ɫ�Shift��A�I���i��֨��\n" +
94
+ "- �I���é즲�i�[�֧��ܪ���";
95
+
96
+ Calendar._TT["PREV_YEAR"] = "�W�@�~ (�������)";
97
+ Calendar._TT["PREV_MONTH"] = "�U�@�~ (�������)";
98
+ Calendar._TT["GO_TODAY"] = "�줵��";
99
+ Calendar._TT["NEXT_MONTH"] = "�W�@�� (�������)";
100
+ Calendar._TT["NEXT_YEAR"] = "�U�@�� (�������)";
101
+ Calendar._TT["SEL_DATE"] = "��ܤ��";
102
+ Calendar._TT["DRAG_TO_MOVE"] = "�즲";
103
+ Calendar._TT["PART_TODAY"] = " (����)";
104
+
105
+ // the following is to inform that "%s" is to be the first day of week
106
+ // %s will be replaced with the day name.
107
+ Calendar._TT["DAY_FIRST"] = "�N %s ��ܦb�e";
108
+
109
+ // This may be locale-dependent. It specifies the week-end days, as an array
110
+ // of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
111
+ // means Monday, etc.
112
+ Calendar._TT["WEEKEND"] = "0,6";
113
+
114
+ Calendar._TT["CLOSE"] = "����";
115
+ Calendar._TT["TODAY"] = "����";
116
+ Calendar._TT["TIME_PART"] = "�I��or�즲�i���ܮɶ�(�P�ɫ�Shift����)";
117
+
118
+ // date formats
119
+ Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
120
+ Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
121
+
122
+ Calendar._TT["WK"] = "�g";
123
+ Calendar._TT["TIME"] = "Time:";