From ee2ee481e2c9aaf40de245a5e7e66c0ba7386e16 Mon Sep 17 00:00:00 2001 From: Gabriel Monnerat <gabriel@tiolive.com> Date: Thu, 27 Jan 2011 16:01:28 +0000 Subject: [PATCH] - revert r42710, because the wrong file was deleted. - remove not used files correctly git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@42712 20353a03-c40f-0410-a6d1-a30d3c3de9de --- .../wdcalendar/datepicker_lang_US.js.xml | 81 - .../plugin/wdcalendar/jquery.calendar.js.xml | 2843 +++++++++++++++++ .../wdcalendar/jquery.datepicker.js.xml | 625 ---- bt5/erp5_jquery_plugin_wdcalendar/bt/revision | 2 +- 4 files changed, 2844 insertions(+), 707 deletions(-) delete mode 100644 bt5/erp5_jquery_plugin_wdcalendar/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/wdcalendar/datepicker_lang_US.js.xml create mode 100644 bt5/erp5_jquery_plugin_wdcalendar/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/wdcalendar/jquery.calendar.js.xml delete mode 100644 bt5/erp5_jquery_plugin_wdcalendar/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/wdcalendar/jquery.datepicker.js.xml diff --git a/bt5/erp5_jquery_plugin_wdcalendar/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/wdcalendar/datepicker_lang_US.js.xml b/bt5/erp5_jquery_plugin_wdcalendar/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/wdcalendar/datepicker_lang_US.js.xml deleted file mode 100644 index d34e2a1861..0000000000 --- a/bt5/erp5_jquery_plugin_wdcalendar/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/wdcalendar/datepicker_lang_US.js.xml +++ /dev/null @@ -1,81 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="File" module="OFS.Image"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>_Cacheable__manager_id</string> </key> - <value> <string>http_cache</string> </value> - </item> - <item> - <key> <string>_EtagSupport__etag</string> </key> - <value> <string>ts95872687.26</string> </value> - </item> - <item> - <key> <string>__name__</string> </key> - <value> <string>datepicker_lang_US.js</string> </value> - </item> - <item> - <key> <string>content_type</string> </key> - <value> <string>application/javascript</string> </value> - </item> - <item> - <key> <string>data</string> </key> - <value> <string>锘縱ar i18n = $.extend({}, i18n || {}, {\r\n - datepicker: {\r\n - dateformat: {\r\n - "fulldayvalue": "M/d/yyyy",\r\n - "separator": "/",\r\n - "year_index": 2,\r\n - "month_index": 0,\r\n - "day_index": 1,\r\n - "sun": "Sun",\r\n - "mon": "Mon",\r\n - "tue": "Tue",\r\n - "wed": "Wed",\r\n - "thu": "Thu",\r\n - "fri": "Fri",\r\n - "sat": "Sat",\r\n - "jan": "Jan",\r\n - "feb": "Feb",\r\n - "mar": "Mar",\r\n - "apr": "Apr",\r\n - "may": "May",\r\n - "jun": "Jun",\r\n - "jul": "Jul",\r\n - "aug": "Aug",\r\n - "sep": "Sep",\r\n - "oct": "Oct",\r\n - "nov": "Nov",\r\n - "dec": "Dec",\r\n - "postfix": ""\r\n - },\r\n - ok: " Ok ",\r\n - cancel: "Cancel",\r\n - today: "Today",\r\n - prev_month_title: "prev month",\r\n - next_month_title: "next month"\r\n - }\r\n -});\n -\n -</string> </value> - </item> - <item> - <key> <string>precondition</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>size</string> </key> - <value> <int>964</int> </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>datepicker_lang_US.js</string> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_jquery_plugin_wdcalendar/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/wdcalendar/jquery.calendar.js.xml b/bt5/erp5_jquery_plugin_wdcalendar/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/wdcalendar/jquery.calendar.js.xml new file mode 100644 index 0000000000..442f08412a --- /dev/null +++ b/bt5/erp5_jquery_plugin_wdcalendar/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/wdcalendar/jquery.calendar.js.xml @@ -0,0 +1,2843 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="DTMLDocument" module="OFS.DTMLDocument"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Cacheable__manager_id</string> </key> + <value> <string>http_cache</string> </value> + </item> + <item> + <key> <string>__name__</string> </key> + <value> <string>jquery.calendar.js</string> </value> + </item> + <item> + <key> <string>_vars</string> </key> + <value> + <dictionary/> + </value> + </item> + <item> + <key> <string>globals</string> </key> + <value> + <dictionary/> + </value> + </item> + <item> + <key> <string>raw</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +/**\n + * @description {Class} wdCalendar\n + * This is the main class of wdCalendar.\n + */\n +; (function($) {\n + var __WDAY = new Array(i18n.xgcalendar.dateformat.sun, i18n.xgcalendar.dateformat.mon, i18n.xgcalendar.dateformat.tue, i18n.xgcalendar.dateformat.wed, i18n.xgcalendar.dateformat.thu, i18n.xgcalendar.dateformat.fri, i18n.xgcalendar.dateformat.sat);\n + var __MonthName = new Array(i18n.xgcalendar.dateformat.jan, i18n.xgcalendar.dateformat.feb, i18n.xgcalendar.dateformat.mar, i18n.xgcalendar.dateformat.apr, i18n.xgcalendar.dateformat.may, i18n.xgcalendar.dateformat.jun, i18n.xgcalendar.dateformat.jul, i18n.xgcalendar.dateformat.aug, i18n.xgcalendar.dateformat.sep, i18n.xgcalendar.dateformat.oct, i18n.xgcalendar.dateformat.nov, i18n.xgcalendar.dateformat.dec);\n + if (!Clone || typeof (Clone) != "function") {\n + var Clone = function(obj) {\n + var objClone = new Object();\n + if (obj.constructor == Object) {\n + objClone = new obj.constructor();\n + } else {\n + objClone = new obj.constructor(obj.valueOf());\n + }\n + for (var key in obj) {\n + if (objClone[key] != obj[key]) {\n + if (typeof (obj[key]) == \'object\') {\n + objClone[key] = Clone(obj[key]);\n + } else {\n + objClone[key] = obj[key];\n + }\n + }\n + }\n + objClone.toString = obj.toString;\n + objClone.valueOf = obj.valueOf;\n + return objClone;\n + }\n + }\n + if (!dateFormat || typeof (dateFormat) != "function") {\n + var dateFormat = function(format) {\n + var o = {\n + "M+": this.getMonth() + 1,\n + "d+": this.getDate(),\n + "h+": this.getHours(),\n + "H+": this.getHours(),\n + "m+": this.getMinutes(),\n + "s+": this.getSeconds(),\n + "q+": Math.floor((this.getMonth() + 3) / 3),\n + "w": "0123456".indexOf(this.getDay()),\n + "W": __WDAY[this.getDay()],\n + "L": __MonthName[this.getMonth()] //non-standard\n + };\n + if (/(y+)/.test(format)) {\n + format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));\n + }\n + for (var k in o) {\n + if (new RegExp("(" + k + ")").test(format))\n + format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));\n + }\n + return format;\n + };\n + }\n + if (!DateAdd || typeof (DateDiff) != "function") {\n + var DateAdd = function(interval, number, idate) {\n + number = parseInt(number);\n + var date;\n + if (typeof (idate) == "string") {\n + date = idate.split(/\\D/);\n + eval("var date = new Date(" + date.join(",") + ")");\n + }\n +\n + if (typeof (idate) == "object") {\n + date = new Date(idate.toString());\n + }\n + switch (interval) {\n + case "y": date.setFullYear(date.getFullYear() + number); break;\n + case "m": date.setMonth(date.getMonth() + number); break;\n + case "d": date.setDate(date.getDate() + number); break;\n + case "w": date.setDate(date.getDate() + 7 * number); break;\n + case "h": date.setHours(date.getHours() + number); break;\n + case "n": date.setMinutes(date.getMinutes() + number); break;\n + case "s": date.setSeconds(date.getSeconds() + number); break;\n + case "l": date.setMilliseconds(date.getMilliseconds() + number); break;\n + }\n + return date;\n + }\n + }\n + if (!DateDiff || typeof (DateDiff) != "function") {\n + var DateDiff = function(interval, d1, d2) {\n + switch (interval) {\n + case "d": //date\n + case "w":\n + d1 = new Date(d1.getFullYear(), d1.getMonth(), d1.getDate());\n + d2 = new Date(d2.getFullYear(), d2.getMonth(), d2.getDate());\n + break; //w\n + case "h":\n + d1 = new Date(d1.getFullYear(), d1.getMonth(), d1.getDate(), d1.getHours());\n + d2 = new Date(d2.getFullYear(), d2.getMonth(), d2.getDate(), d2.getHours());\n + break; //h\n + case "n":\n + d1 = new Date(d1.getFullYear(), d1.getMonth(), d1.getDate(), d1.getHours(), d1.getMinutes());\n + d2 = new Date(d2.getFullYear(), d2.getMonth(), d2.getDate(), d2.getHours(), d2.getMinutes());\n + break;\n + case "s":\n + d1 = new Date(d1.getFullYear(), d1.getMonth(), d1.getDate(), d1.getHours(), d1.getMinutes(), d1.getSeconds());\n + d2 = new Date(d2.getFullYear(), d2.getMonth(), d2.getDate(), d2.getHours(), d2.getMinutes(), d2.getSeconds());\n + break;\n + }\n + var t1 = d1.getTime(), t2 = d2.getTime();\n + var diff = NaN;\n + switch (interval) {\n + case "y": diff = d2.getFullYear() - d1.getFullYear(); break; //y\n + case "m": diff = (d2.getFullYear() - d1.getFullYear()) * 12 + d2.getMonth() - d1.getMonth(); break; //m\n + case "d": diff = Math.floor(t2 / 86400000) - Math.floor(t1 / 86400000); break;\n + case "w": diff = Math.floor((t2 + 345600000) / (604800000)) - Math.floor((t1 + 345600000) / (604800000)); break; //w\n + case "h": diff = Math.floor(t2 / 3600000) - Math.floor(t1 / 3600000); break; //h\n + case "n": diff = Math.floor(t2 / 60000) - Math.floor(t1 / 60000); break; //\n + case "s": diff = Math.floor(t2 / 1000) - Math.floor(t1 / 1000); break; //s\n + case "l": diff = t2 - t1; break;\n + }\n + return diff;\n +\n + }\n + }\n + if ($.fn.noSelect == undefined) {\n + $.fn.noSelect = function(p) { //no select plugin by me :-)\n + if (p == null)\n + prevent = true;\n + else\n + prevent = p;\n + if (prevent) {\n + return this.each(function() {\n + if ($.browser.msie || $.browser.safari) $(this).bind(\'selectstart\', function() { return false; });\n + else if ($.browser.mozilla) {\n + $(this).css(\'MozUserSelect\', \'none\');\n + $(\'body\').trigger(\'focus\');\n + }\n + else if ($.browser.opera) $(this).bind(\'mousedown\', function() { return false; });\n + else $(this).attr(\'unselectable\', \'on\');\n + });\n +\n + } else {\n + return this.each(function() {\n + if ($.browser.msie || $.browser.safari) $(this).unbind(\'selectstart\');\n + else if ($.browser.mozilla) $(this).css(\'MozUserSelect\', \'inherit\');\n + else if ($.browser.opera) $(this).unbind(\'mousedown\');\n + else $(this).removeAttr(\'unselectable\', \'on\');\n + });\n +\n + }\n + }; //end noSelect\n + }\n + $.fn.bcalendar = function(option) {\n + var def = {\n + /**\n + * @description {Config} view \n + * {String} Three calendar view provided, \'day\',\'week\',\'month\'. \'week\' by default.\n + */\n + view: "week", \n + /**\n + * @description {Config} weekstartday \n + * {Number} First day of week 0 for Sun, 1 for Mon, 2 for Tue.\n + */\n + weekstartday: 1, //start from Monday by default\n + theme: 0, //theme no\n + /**\n + * @description {Config} height \n + * {Number} Calendar height, false for page height by default.\n + */\n + height: false, \n + /**\n + * @description {Config} url \n + * {String} Url to request calendar data.\n + */\n + url: "", \n + /**\n + * @description {Config} eventItems \n + * {Array} event items for initialization.\n + */ \n + eventItems: [], \n + method: "POST", \n + /**\n + * @description {Config} showday \n + * {Date} Current date. today by default.\n + */\n + showday: new Date(), \n + /**\n + * @description {Event} onBeforeRequestData:function(stage)\n + * Fired before any ajax request is sent.\n + * @param {Number} stage. 1 for retrieving events, 2 - adding event, 3 - removiing event, 4 - update event.\n + */\n + onBeforeRequestData: false, \n + /**\n + * @description {Event} onAfterRequestData:function(stage)\n + * Fired before any ajax request is finished.\n + * @param {Number} stage. 1 for retrieving events, 2 - adding event, 3 - removiing event, 4 - update event.\n + */\n + onAfterRequestData: false, \n + /**\n + * @description {Event} onAfterRequestData:function(stage)\n + * Fired when some errors occur while any ajax request is finished.\n + * @param {Number} stage. 1 for retrieving events, 2 - adding event, 3 - removiing event, 4 - update event.\n + */\n + onRequestDataError: false, \n + \n + onWeekOrMonthToDay: false, \n + /**\n + * @description {Event} quickAddHandler:function(calendar, param )\n + * Fired when user quick adds an item. If this function is set, ajax request to quickAddUrl will abort. \n + * @param {Object} calendar Calendar object.\n + * @param {Array} param Format [{name:"name1", value:"value1"}, ...]\n + * \n + */\n + quickAddHandler: false, \n + /**\n + * @description {Config} quickAddUrl \n + * {String} Url for quick adding. \n + */\n + quickAddUrl: "", \n + /**\n + * @description {Config} quickUpdateUrl \n + * {String} Url for time span update.\n + */\n + quickUpdateUrl: "", \n + /**\n + * @description {Config} quickDeleteUrl \n + * {String} Url for removing an event.\n + */\n + quickDeleteUrl: "", \n + /**\n + * @description {Config} autoload \n + * {Boolean} If event items is empty, and this param is set to true. \n + * Event will be retrieved by ajax call right after calendar is initialized.\n + */ \n + autoload: false,\n + /**\n + * @description {Config} readonly \n + * {Boolean} Indicate calendar is readonly or editable \n + */\n + readonly: false, \n + /**\n + * @description {Config} extParam \n + * {Array} Extra params submitted to server. \n + * Sample - [{name:"param1", value:"value1"}, {name:"param2", value:"value2"}]\n + */\n + extParam: [], \n + /**\n + * @description {Config} enableDrag \n + * {Boolean} Whether end user can drag event item by mouse. \n + */\n + enableDrag: true, \n + loadDateR: [] \n + };\n + var eventDiv = $("#gridEvent");\n + if (eventDiv.length == 0) {\n + eventDiv = $("<div id=\'gridEvent\' style=\'display:none;\'></div>").appendTo(document.body);\n + }\n + var gridcontainer = $(this);\n + option = $.extend(def, option);\n + //no quickUpdateUrl, dragging disabled.\n + if (option.quickUpdateUrl == null || option.quickUpdateUrl == "") {\n + option.enableDrag = false;\n + }\n + //template for month and date\n + var __SCOLLEVENTTEMP = "<DIV style=\\"WIDTH:${width};top:${top};left:${left};\\" title=\\"${title}\\" class=\\"chip chip${i} ${drag}\\"><div class=\\"dhdV\\" style=\\"display:none\\">${data}</div><DIV style=\\"BORDER-BOTTOM-COLOR:${bdcolor}\\" class=ct> </DIV><DL style=\\"BORDER-BOTTOM-COLOR:${bdcolor}; BACKGROUND-COLOR:${bgcolor1}; BORDER-TOP-COLOR: ${bdcolor}; HEIGHT: ${height}px; BORDER-RIGHT-COLOR:${bdcolor}; BORDER-LEFT-COLOR:${bdcolor}\\"><DT style=\\"BACKGROUND-COLOR:${bgcolor2}\\">${starttime} - ${endtime} ${icon}</DT><DD><SPAN>${content}</SPAN></DD><DIV class=\'resizer\' style=\'display:${redisplay}\'><DIV class=rszr_icon> </DIV></DIV></DL><DIV style=\\"BORDER-BOTTOM-COLOR:${bdcolor}; BACKGROUND-COLOR:${bgcolor1}; BORDER-TOP-COLOR: ${bdcolor}; BORDER-RIGHT-COLOR: ${bdcolor}; BORDER-LEFT-COLOR:${bdcolor}\\" class=cb1> </DIV><DIV style=\\"BORDER-BOTTOM-COLOR:${bdcolor}; BORDER-TOP-COLOR:${bdcolor}; BORDER-RIGHT-COLOR:${bdcolor}; BORDER-LEFT-COLOR:${bdcolor}\\" class=cb2> </DIV></DIV>";\n + var __ALLDAYEVENTTEMP = \'<div class="rb-o ${eclass}" id="${id}" title="${title}" style="color:${color};"><div class="dhdV" style="display:none">${data}</div><div class="${extendClass} rb-m" style="background-color:${color}">${extendHTML}<div class="rb-i">${content}</div></div></div>\';\n + var __MonthDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n + var __LASSOTEMP = "<div class=\'drag-lasso\' style=\'left:${left}px;top:${top}px;width:${width}px;height:${height}px;\'> </div>";\n + //for dragging var\n + var _dragdata;\n + var _dragevent;\n +\n + //clear DOM\n + clearcontainer();\n +\n + //no height specified in options, we get page height.\n + if (!option.height) {\n + option.height = document.documentElement.clientHeight;\n + }\n + //\n + gridcontainer.css("overflow-y", "visible").height(option.height - 8);\n +\n + //populate events data for first display.\n + if (option.url && option.autoload) {\n + populate(); \n + }\n + else {\n + //contruct HTML \n + render();\n + //get date range\n + var d = getRdate();\n + pushER(d.start, d.end);\n + }\n +\n + //clear DOM\n + function clearcontainer() {\n + gridcontainer.empty();\n + }\n + //get range\n + function getRdate() {\n + return { start: option.vstart, end: option.vend };\n + }\n + //add date range to cache.\n + function pushER(start, end) {\n + var ll = option.loadDateR.length;\n + if (!end) {\n + end = start;\n + }\n + if (ll == 0) {\n + option.loadDateR.push({ startdate: start, enddate: end });\n + }\n + else {\n + for (var i = 0; i < ll; i++) {\n + var dr = option.loadDateR[i];\n + var diff = DateDiff("d", start, dr.startdate);\n + if (diff == 0 || diff == 1) {\n + if (dr.enddate < end) {\n + dr.enddate = end;\n + }\n + break;\n + }\n + else if (diff > 1) {\n + var d2 = DateDiff("d", end, dr.startdate);\n + if (d2 > 1) {\n + option.loadDateR.splice(0, 0, { startdate: start, enddate: end });\n + }\n + else {\n + dr.startdate = start;\n + if (dr.enddate < end) {\n + dr.enddate = end;\n + }\n + }\n + break;\n + }\n + else {\n + var d3 = DateDiff("d", end, dr.startdate);\n +\n + if (dr.enddate < end) {\n + if (d3 < 1) {\n + dr.enddate = end;\n + break;\n + }\n + else {\n + if (i == ll - 1) {\n + option.loadDateR.push({ startdate: start, enddate: end });\n + }\n + }\n + }\n + }\n + }\n + //end for\n + //clear\n + ll = option.loadDateR.length;\n + if (ll > 1) {\n + for (var i = 0; i < ll - 1; ) {\n + var d1 = option.loadDateR[i];\n + var d2 = option.loadDateR[i + 1];\n +\n + var diff1 = DateDiff("d", d2.startdate, d1.enddate);\n + if (diff1 <= 1) {\n + d1.startdate = d2.startdate > d1.startdate ? d1.startdate : d2.startdate;\n + d1.enddate = d2.enddate > d1.enddate ? d2.enddate : d1.enddate;\n + option.loadDateR.splice(i + 1, 1);\n + ll--;\n + continue;\n + }\n + i++;\n + }\n + }\n + }\n + }\n + //contruct DOM \n + function render() {\n + //params needed\n + //viewType, showday, events, config \n + var showday = new Date(option.showday.getFullYear(), option.showday.getMonth(), option.showday.getDate());\n + var events = option.eventItems;\n + var config = { view: option.view, weekstartday: option.weekstartday, theme: option.theme };\n + if (option.view == "day" || option.view == "week") {\n + var $dvtec = $("#dvtec");\n + if ($dvtec.length > 0) {\n + option.scoll = $dvtec.attr("scrollTop"); //get scroll bar position\n + }\n + }\n + switch (option.view) {\n + case "day":\n + BuildDaysAndWeekView(showday, 1, events, config);\n + break;\n + case "week":\n + BuildDaysAndWeekView(showday, 7, events, config);\n + break;\n + case "month":\n + BuildMonthView(showday, events, config);\n + break;\n + default:\n + alert(i18n.xgcalendar.no_implement);\n + break;\n + }\n + initevents(option.view); \n + ResizeView();\n + }\n +\n + //build day view\n + function BuildDaysAndWeekView(startday, l, events, config) {\n + var days = [];\n + if (l == 1) {\n + var show = dateFormat.call(startday, i18n.xgcalendar.dateformat.Md);\n + days.push({ display: show, date: startday, day: startday.getDate(), year: startday.getFullYear(), month: startday.getMonth() + 1 });\n + option.datestrshow = CalDateShow(days[0].date);\n + option.vstart = days[0].date;\n + option.vend = days[0].date;\n + }\n + else {\n + var w = 0;\n + if (l == 7) {\n + w = config.weekstartday - startday.getDay();\n + if (w > 0) w = w - 7;\n + }\n + var ndate;\n + for (var i = w, j = 0; j < l; i = i + 1, j++) {\n + ndate = DateAdd("d", i, startday);\n + var show = dateFormat.call(ndate, i18n.xgcalendar.dateformat.Md);\n + days.push({ display: show, date: ndate, day: ndate.getDate(), year: ndate.getFullYear(), month: ndate.getMonth() + 1 });\n + }\n + option.vstart = days[0].date;\n + option.vend = days[l - 1].date;\n + option.datestrshow = CalDateShow(days[0].date, days[l - 1].date);\n + }\n +\n + var allDayEvents = [];\n + var scollDayEvents = [];\n + //get number of all-day events, including more-than-one-day events.\n + var dM = PropareEvents(days, events, allDayEvents, scollDayEvents);\n +\n + var html = [];\n + html.push("<div id=\\"dvwkcontaienr\\" class=\\"wktopcontainer\\">");\n + html.push("<table class=\\"wk-top\\" border=\\"0\\" cellpadding=\\"0\\" cellspacing=\\"0\\">");\n + BuildWT(html, days, allDayEvents, dM);\n + html.push("</table>");\n + html.push("</div>");\n +\n + //onclick=\\"javascript:FunProxy(\'rowhandler\',event,this);\\"\n + html.push("<div id=\\"dvtec\\" class=\\"scolltimeevent\\"><table style=\\"table-layout: fixed;", jQuery.browser.msie ? "" : "width:100%", "\\" cellspacing=\\"0\\" cellpadding=\\"0\\"><tbody><tr><td>");\n + html.push("<table style=\\"height: 1008px\\" id=\\"tgTable\\" class=\\"tg-timedevents\\" cellspacing=\\"0\\" cellpadding=\\"0\\"><tbody>");\n + BuildDayScollEventContainer(html, days, scollDayEvents);\n + html.push("</tbody></table></td></tr></tbody></table></div>");\n + gridcontainer.html(html.join(""));\n + html = null;\n + //TODO event handlers\n + //$("#weekViewAllDaywk").click(RowHandler);\n + }\n + //build month view\n + function BuildMonthView(showday, events, config) {\n + var cc = "<div id=\'cal-month-cc\' class=\'cc\'><div id=\'cal-month-cc-header\'><div class=\'cc-close\' id=\'cal-month-closebtn\'></div><div id=\'cal-month-cc-title\' class=\'cc-title\'></div></div><div id=\'cal-month-cc-body\' class=\'cc-body\'><div id=\'cal-month-cc-content\' class=\'st-contents\'><table class=\'st-grid\' cellSpacing=\'0\' cellPadding=\'0\'><tbody></tbody></table></div></div></div>";\n + var html = [];\n + html.push(cc);\n + //build header\n + html.push("<div id=\\"mvcontainer\\" class=\\"mv-container\\">");\n + html.push("<table id=\\"mvweek\\" class=\\"mv-daynames-table\\" cellSpacing=\\"0\\" cellPadding=\\"0\\"><tbody><tr>");\n + for (var i = config.weekstartday, j = 0; j < 7; i++, j++) {\n + if (i > 6) i = 0;\n + var p = { dayname: __WDAY[i] };\n + html.push("<th class=\\"mv-dayname\\" title=\\"", __WDAY[i], "\\">", __WDAY[i], "");\n + }\n + html.push("</tr></tbody></table>");\n + html.push("</div>");\n + var bH = GetMonthViewBodyHeight() - GetMonthViewHeaderHeight();\n +\n + html.push("<div id=\\"mvEventContainer\\" class=\\"mv-event-container\\" style=\\"height:", bH, "px;", "\\">");\n + BuilderMonthBody(html, showday, config.weekstartday, events, bH);\n + html.push("</div>");\n + gridcontainer.html(html.join(""));\n + html = null;\n + $("#cal-month-closebtn").click(closeCc);\n + }\n + function closeCc() {\n + $("#cal-month-cc").css("visibility", "hidden");\n + }\n + \n + //all-day event, including more-than-one-day events \n + function PropareEvents(dayarrs, events, aDE, sDE) {\n + var l = dayarrs.length;\n + var el = events.length;\n + var fE = [];\n + var deB = aDE;\n + var deA = sDE;\n + for (var j = 0; j < el; j++) {\n + var sD = events[j][2];\n + var eD = events[j][3];\n + var s = {};\n + s.event = events[j];\n + s.day = sD.getDate();\n + s.year = sD.getFullYear();\n + s.month = sD.getMonth() + 1;\n + s.allday = events[j][4] == 1;\n + s.crossday = events[j][5] == 1;\n + s.reevent = events[j][6] == 1; //Recurring event\n + s.daystr = [s.year, s.month, s.day].join("/");\n + s.st = {};\n + s.st.hour = sD.getHours();\n + s.st.minute = sD.getMinutes();\n + s.st.p = s.st.hour * 60 + s.st.minute; // start time\n + s.et = {};\n + s.et.hour = eD.getHours();\n + s.et.minute = eD.getMinutes();\n + s.et.p = s.et.hour * 60 + s.et.minute; // end time\n + fE.push(s);\n + }\n + var dMax = 0;\n + for (var i = 0; i < l; i++) {\n + var da = dayarrs[i];\n + deA[i] = []; deB[i] = [];\n + da.daystr = da.year + "/" + da.month + "/" + da.day;\n + for (var j = 0; j < fE.length; j++) {\n + if (!fE[j].crossday && !fE[j].allday) {\n + if (da.daystr == fE[j].daystr)\n + deA[i].push(fE[j]);\n + }\n + else {\n + if (da.daystr == fE[j].daystr) {\n + deB[i].push(fE[j]);\n + dMax++;\n + }\n + else {\n + if (i == 0 && da.date >= fE[j].event[2] && da.date <= fE[j].event[3])//first more-than-one-day event\n + {\n + deB[i].push(fE[j]);\n + dMax++;\n + }\n + }\n + }\n + }\n + }\n + var lrdate = dayarrs[l - 1].date;\n + for (var i = 0; i < l; i++) { //to deal with more-than-one-day event\n + var de = deB[i];\n + if (de.length > 0) { // \n + for (var j = 0; j < de.length; j++) {\n + var end = DateDiff("d", lrdate, de[j].event[3]) > 0 ? lrdate : de[j].event[3];\n + de[j].colSpan = DateDiff("d", dayarrs[i].date, end) + 1\n + }\n + }\n + de = null;\n + }\n + //for all-day events\n + for (var i = 0; i < l; i++) {\n + var de = deA[i];\n + if (de.length > 0) { \n + var x = []; \n + var y = []; \n + var D = [];\n + var dl = de.length;\n + var Ia;\n + for (var j = 0; j < dl; ++j) {\n + var ge = de[j];\n + for (var La = ge.st.p, Ia = 0; y[Ia] > La; ) Ia++;\n + ge.PO = Ia; ge.ne = []; //PO is how many events before this one\n + y[Ia] = ge.et.p || 1440;\n + x[Ia] = ge;\n + if (!D[Ia]) {\n + D[Ia] = [];\n + }\n + D[Ia].push(ge);\n + if (Ia != 0) {\n + ge.pe = [x[Ia - 1]]; //previous event\n + x[Ia - 1].ne.push(ge); //next event\n + }\n + for (Ia = Ia + 1; y[Ia] <= La; ) Ia++;\n + if (x[Ia]) {\n + var k = x[Ia];\n + ge.ne.push(k);\n + k.pe.push(ge);\n + }\n + ge.width = 1 / (ge.PO + 1);\n + ge.left = 1 - ge.width;\n + }\n + var k = Array.prototype.concat.apply([], D);\n + x = y = D = null;\n + var t = k.length;\n + for (var y = t; y--; ) {\n + var H = 1;\n + var La = 0;\n + var x = k[y];\n + for (var D = x.ne.length; D--; ) {\n + var Ia = x.ne[D];\n + La = Math.max(La, Ia.VL);\n + H = Math.min(H, Ia.left)\n + }\n + x.VL = La + 1;\n + x.width = H / (x.PO + 1);\n + x.left = H - x.width;\n + }\n + for (var y = 0; y < t; y++) {\n + var x = k[y];\n + x.left = 0;\n + if (x.pe) for (var D = x.pe.length; D--; ) {\n + var H = x.pe[D];\n + x.left = Math.max(x.left, H.left + H.width);\n + }\n + var p = (1 - x.left) / x.VL;\n + x.width = Math.max(x.width, p);\n + x.aQ = Math.min(1 - x.left, x.width + 0.7 * p); //width offset\n + }\n + de = null;\n + deA[i] = k;\n + }\n + }\n + return dMax;\n + }\n +\n + function BuildWT(ht, dayarrs, events, dMax) {\n + //1:\n + ht.push("<tr>", "<th width=\\"60\\" rowspan=\\"3\\"> </th>");\n + for (var i = 0; i < dayarrs.length; i++) {\n + var ev, title, cl;\n + if (dayarrs.length == 1) {\n + ev = "";\n + title = "";\n + cl = "";\n + }\n + else {\n + ev = ""; // "onclick=\\"javascript:FunProxy(\'week2day\',event,this);\\"";\n + title = i18n.xgcalendar.to_date_view;\n + cl = "wk-daylink";\n + }\n + ht.push("<th abbr=\'", dateFormat.call(dayarrs[i].date, i18n.xgcalendar.dateformat.fulldayvalue), "\' class=\'gcweekname\' scope=\\"col\\"><div title=\'", title, "\' ", ev, " class=\'wk-dayname\'><span class=\'", cl, "\'>", dayarrs[i].display, "</span></div></th>");\n +\n + }\n + ht.push("<th width=\\"16\\" rowspan=\\"3\\"> </th>");\n + ht.push("</tr>"); //end tr1;\n + //2: \n + ht.push("<tr>");\n + ht.push("<td class=\\"wk-allday\\"");\n +\n + if (dayarrs.length > 1) {\n + ht.push(" colSpan=\'", dayarrs.length, "\'");\n + }\n + //onclick=\\"javascript:FunProxy(\'rowhandler\',event,this);\\"\n + ht.push("><div id=\\"weekViewAllDaywk\\" ><table class=\\"st-grid\\" cellpadding=\\"0\\" cellspacing=\\"0\\"><tbody>");\n +\n + if (dMax == 0) {\n + ht.push("<tr>");\n + for (var i = 0; i < dayarrs.length; i++) {\n + ht.push("<td class=\\"st-c st-s\\"", " ch=\'qkadd\' abbr=\'", dateFormat.call(dayarrs[i].date, "yyyy-M-d"), "\' axis=\'00:00\'> </td>");\n + }\n + ht.push("</tr>");\n + }\n + else {\n + var l = events.length;\n + var el = 0;\n + var x = [];\n + for (var j = 0; j < l; j++) {\n + x.push(0);\n + }\n + //var c = tc();\n + for (var j = 0; el < dMax; j++) {\n + ht.push("<tr>");\n + for (var h = 0; h < l; ) {\n + var e = events[h][x[h]];\n + ht.push("<td class=\'st-c");\n + if (e) { //if exists\n + x[h] = x[h] + 1;\n + ht.push("\'");\n + var t = BuildMonthDayEvent(e, dayarrs[h].date, l - h);\n + if (e.colSpan > 1) {\n + ht.push(" colSpan=\'", e.colSpan, "\'");\n + h += e.colSpan;\n + }\n + else {\n + h++;\n + }\n + ht.push(" ch=\'show\'>", t);\n + t = null;\n + el++;\n + }\n + else {\n + ht.push(" st-s\' ch=\'qkadd\' abbr=\'", dateFormat.call(dayarrs[h].date, i18n.xgcalendar.dateformat.fulldayvalue), "\' axis=\'00:00\'> ");\n + h++;\n + }\n + ht.push("</td>");\n + }\n + ht.push("</tr>");\n + }\n + ht.push("<tr>");\n + for (var h = 0; h < l; h++) {\n + ht.push("<td class=\'st-c st-s\' ch=\'qkadd\' abbr=\'", dateFormat.call(dayarrs[h].date, i18n.xgcalendar.dateformat.fulldayvalue), "\' axis=\'00:00\'> </td>");\n + }\n + ht.push("</tr>");\n + }\n + ht.push("</tbody></table></div></td></tr>"); // stgrid end //wvAd end //td2 end //tr2 end\n + //3:\n + ht.push("<tr>");\n +\n + ht.push("<td style=\\"height: 5px;\\"");\n + if (dayarrs.length > 1) {\n + ht.push(" colSpan=\'", dayarrs.length, "\'");\n + }\n + ht.push("></td>");\n + ht.push("</tr>");\n + }\n +\n + function BuildDayScollEventContainer(ht, dayarrs, events) {\n + //1:\n + ht.push("<tr>");\n + ht.push("<td style=\'width:60px;\'></td>");\n + ht.push("<td");\n + if (dayarrs.length > 1) {\n + ht.push(" colSpan=\'", dayarrs.length, "\'");\n + }\n + ht.push("><div id=\\"tgspanningwrapper\\" class=\\"tg-spanningwrapper\\"><div style=\\"font-size: 20px\\" class=\\"tg-hourmarkers\\">");\n + for (var i = 0; i < 24; i++) {\n + ht.push("<div class=\\"tg-dualmarker\\"></div>");\n + }\n + ht.push("</div></div></td></tr>");\n +\n + //2:\n + ht.push("<tr>");\n + ht.push("<td style=\\"width: 60px\\" class=\\"tg-times\\">");\n +\n + //get current time \n + var now = new Date(); var h = now.getHours(); var m = now.getMinutes();\n + var mHg = gP(h, m) - 4; //make middle alignment vertically\n + ht.push("<div id=\\"tgnowptr\\" class=\\"tg-nowptr\\" style=\\"left:0px;top:", mHg, "px\\"></div>");\n + var tmt = "";\n + for (var i = 0; i < 24; i++) {\n + tmt = fomartTimeShow(i);\n + ht.push("<div style=\\"height: 41px\\" class=\\"tg-time\\">", tmt, "</div>");\n + }\n + ht.push("</td>");\n +\n + var l = dayarrs.length;\n + for (var i = 0; i < l; i++) {\n + ht.push("<td class=\\"tg-col\\" ch=\'qkadd\' abbr=\'", dateFormat.call(dayarrs[i].date, i18n.xgcalendar.dateformat.fulldayvalue), "\'>");\n + var istoday = dateFormat.call(dayarrs[i].date, "yyyyMMdd") == dateFormat.call(new Date(), "yyyyMMdd");\n + // Today\n + if (istoday) {\n + ht.push("<div style=\\"margin-bottom: -1008px; height:1008px\\" class=\\"tg-today\\"> </div>");\n + }\n + //var eventC = $(eventWrap);\n + //onclick=\\"javascript:FunProxy(\'rowhandler\',event,this);\\"\n + ht.push("<div style=\\"margin-bottom: -1008px; height: 1008px\\" id=\'tgCol", i, "\' class=\\"tg-col-eventwrapper\\">");\n + BuildEvents(ht, events[i], dayarrs[i]);\n + ht.push("</div>");\n +\n + ht.push("<div class=\\"tg-col-overlaywrapper\\" id=\'tgOver", i, "\'>");\n + if (istoday) {\n + var mhh = mHg + 4;\n + ht.push("<div id=\\"tgnowmarker\\" class=\\"tg-hourmarker tg-nowmarker\\" style=\\"left:0px;top:", mhh, "px\\"></div>");\n + }\n + ht.push("</div>");\n + ht.push("</td>");\n + }\n + ht.push("</tr>");\n + }\n + //show events to calendar\n + function BuildEvents(hv, events, sday) {\n + for (var i = 0; i < events.length; i++) {\n + var c;\n + if (events[i].event[7] && events[i].event[7] >= 0) {\n + c = tc(events[i].event[7]); //theme\n + }\n + else {\n + c = tc(); //default theme\n + }\n + var tt = BuildDayEvent(c, events[i], i);\n + hv.push(tt);\n + }\n + }\n + function getTitle(event) { \n + var timeshow, locationshow, attendsshow, eventshow;\n + var showtime = event[4] != 1;\n + eventshow = event[1];\n + var startformat = getymformat(event[2], null, showtime, true);\n + var endformat = getymformat(event[3], event[2], showtime, true);\n + timeshow = dateFormat.call(event[2], startformat) + " - " + dateFormat.call(event[3], endformat);\n + locationshow = (event[9] != undefined && event[9] != "") ? event[9] : i18n.xgcalendar.i_undefined;\n + attendsshow = (event[10] != undefined && event[10] != "") ? event[10] : "";\n + var ret = [];\n + if (event[4] == 1) {\n + ret.push("[" + i18n.xgcalendar.allday_event + "]",$.browser.mozilla?"":"\\r\\n" );\n + }\n + else {\n + if (event[5] == 1) {\n + ret.push("[" + i18n.xgcalendar.repeat_event + "]",$.browser.mozilla?"":"\\r\\n");\n + }\n + }\n + ret.push(i18n.xgcalendar.time + ":", timeshow, $.browser.mozilla?"":"\\r\\n", i18n.xgcalendar.event + ":", eventshow,$.browser.mozilla?"":"\\r\\n", i18n.xgcalendar.location + ":", locationshow);\n + if (attendsshow != "") {\n + ret.push($.browser.mozilla?"":"\\r\\n", i18n.xgcalendar.participant + ":", attendsshow);\n + }\n + return ret.join("");\n + }\n + function BuildDayEvent(theme, e, index) {\n + var p = { bdcolor: theme[0], bgcolor2: theme[0], bgcolor1: theme[2], width: "70%", icon: "", title: "", data: "" };\n + p.starttime = pZero(e.st.hour) + ":" + pZero(e.st.minute);\n + p.endtime = pZero(e.et.hour) + ":" + pZero(e.et.minute);\n + p.content = e.event[1];\n + p.title = getTitle(e.event);\n + p.data = e.event.join("$");\n + var icons = [];\n + icons.push("<I class=\\"cic cic-tmr\\"> </I>");\n + if (e.reevent) {\n + icons.push("<I class=\\"cic cic-spcl\\"> </I>");\n + }\n + p.icon = icons.join("");\n + var sP = gP(e.st.hour, e.st.minute);\n + var eP = gP(e.et.hour, e.et.minute);\n + p.top = sP + "px";\n + p.left = (e.left * 100) + "%";\n + p.width = (e.aQ * 100) + "%";\n + p.height = (eP - sP - 4);\n + p.i = index;\n + if (option.enableDrag && e.event[8] == 1) {\n + p.drag = "drag";\n + p.redisplay = "block";\n + }\n + else {\n + p.drag = "";\n + p.redisplay = "none";\n + }\n + var newtemp = Tp(__SCOLLEVENTTEMP, p);\n + p = null;\n + return newtemp;\n + }\n +\n + //get body height in month view\n + function GetMonthViewBodyHeight() {\n + return option.height;\n + }\n + function GetMonthViewHeaderHeight() {\n + return 21;\n + }\n + function BuilderMonthBody(htb, showday, startday, events, bodyHeight) {\n +\n + var firstdate = new Date(showday.getFullYear(), showday.getMonth(), 1);\n + var diffday = startday - firstdate.getDay();\n + var showmonth = showday.getMonth();\n + if (diffday > 0) {\n + diffday -= 7;\n + }\n + var startdate = DateAdd("d", diffday, firstdate);\n + var enddate = DateAdd("d", 34, startdate);\n + var rc = 5;\n +\n + if (enddate.getFullYear() == showday.getFullYear() && enddate.getMonth() == showday.getMonth() && enddate.getDate() < __MonthDays[showmonth]) {\n + enddate = DateAdd("d", 7, enddate);\n + rc = 6;\n + }\n + option.vstart = startdate;\n + option.vend = enddate;\n + option.datestrshow = CalDateShow(startdate, enddate);\n + bodyHeight = bodyHeight - 18 * rc;\n + var rowheight = bodyHeight / rc;\n + var roweventcount = parseInt(rowheight / 21);\n + if (rowheight % 21 > 15) {\n + roweventcount++;\n + }\n + var p = 100 / rc;\n + var formatevents = [];\n + var hastdata = formartEventsInHashtable(events, startday, 7, startdate, enddate);\n + var B = [];\n + var C = [];\n + for (var j = 0; j < rc; j++) {\n + var k = 0;\n + formatevents[j] = b = [];\n + for (var i = 0; i < 7; i++) {\n + var newkeyDate = DateAdd("d", j * 7 + i, startdate);\n + C[j * 7 + i] = newkeyDate;\n + var newkey = dateFormat.call(newkeyDate, i18n.xgcalendar.dateformat.fulldaykey);\n + b[i] = hastdata[newkey];\n + if (b[i] && b[i].length > 0) {\n + k += b[i].length;\n + }\n + }\n + B[j] = k;\n + }\n + //var c = tc();\n + eventDiv.data("mvdata", formatevents);\n + for (var j = 0; j < rc; j++) {\n + //onclick=\\"javascript:FunProxy(\'rowhandler\',event,this);\\"\n + htb.push("<div id=\'mvrow_", j, "\' style=\\"HEIGHT:", p, "%; TOP:", p * j, "%\\" class=\\"month-row\\">");\n + htb.push("<table class=\\"st-bg-table\\" cellSpacing=\\"0\\" cellPadding=\\"0\\"><tbody><tr>");\n + var dMax = B[j];\n +\n + for (var i = 0; i < 7; i++) {\n + var day = C[j * 7 + i];\n + htb.push("<td abbr=\'", dateFormat.call(day, i18n.xgcalendar.dateformat.fulldayvalue), "\' ch=\'qkadd\' axis=\'00:00\' title=\'\'");\n +\n + if (dateFormat.call(day, "yyyyMMdd") == dateFormat.call(new Date(), "yyyyMMdd")) {\n + htb.push(" class=\\"st-bg st-bg-today\\">");\n + }\n + else {\n + htb.push(" class=\\"st-bg\\">");\n + }\n + htb.push(" </td>");\n + }\n + //bgtable\n + htb.push("</tr></tbody></table>");\n +\n + //stgrid\n + htb.push("<table class=\\"st-grid\\" cellpadding=\\"0\\" cellspacing=\\"0\\"><tbody>");\n +\n + //title tr\n + htb.push("<tr>");\n + var titletemp = "<td class=\\"st-dtitle${titleClass}\\" ch=\'qkadd\' abbr=\'${abbr}\' axis=\'00:00\' title=\\"${title}\\"><span class=\'monthdayshow\'>${dayshow}</span></a></td>";\n +\n + for (var i = 0; i < 7; i++) {\n + var o = { titleClass: "", dayshow: "" };\n + var day = C[j * 7 + i];\n + if (dateFormat.call(day, "yyyyMMdd") == dateFormat.call(new Date(), "yyyyMMdd")) {\n + o.titleClass = " st-dtitle-today";\n + }\n + if (day.getMonth() != showmonth) {\n + o.titleClass = " st-dtitle-nonmonth";\n + }\n + o.title = dateFormat.call(day, i18n.xgcalendar.dateformat.fulldayshow);\n + if (day.getDate() == 1) {\n + if (day.getMonth == 0) {\n + o.dayshow = dateFormat.call(day, i18n.xgcalendar.dateformat.fulldayshow);\n + }\n + else {\n + o.dayshow = dateFormat.call(day, i18n.xgcalendar.dateformat.Md3);\n + }\n + }\n + else {\n + o.dayshow = day.getDate();\n + }\n + o.abbr = dateFormat.call(day, i18n.xgcalendar.dateformat.fulldayvalue);\n + htb.push(Tp(titletemp, o));\n + }\n + htb.push("</tr>");\n + var sfirstday = C[j * 7];\n + BuildMonthRow(htb, formatevents[j], dMax, roweventcount, sfirstday);\n + //htb=htb.concat(rowHtml); rowHtml = null; \n +\n + htb.push("</tbody></table>");\n + //month-row\n + htb.push("</div>");\n + }\n +\n + formatevents = B = C = hastdata = null;\n + //return htb;\n + }\n + \n + //formate datetime \n + function formartEventsInHashtable(events, startday, daylength, rbdate, redate) {\n + var hast = new Object();\n + var l = events.length;\n + for (var i = 0; i < l; i++) {\n + var sD = events[i][2];\n + var eD = events[i][3];\n + var diff = DateDiff("d", sD, eD);\n + var s = {};\n + s.event = events[i];\n + s.day = sD.getDate();\n + s.year = sD.getFullYear();\n + s.month = sD.getMonth() + 1;\n + s.allday = events[i][4] == 1;\n + s.crossday = events[i][5] == 1;\n + s.reevent = events[i][6] == 1; //Recurring event\n + s.daystr = s.year + "/" + s.month + "/" + s.day;\n + s.st = {};\n + s.st.hour = sD.getHours();\n + s.st.minute = sD.getMinutes();\n + s.st.p = s.st.hour * 60 + s.st.minute; // start time position\n + s.et = {};\n + s.et.hour = eD.getHours();\n + s.et.minute = eD.getMinutes();\n + s.et.p = s.et.hour * 60 + s.et.minute; // end time postition\n +\n + if (diff > 0) {\n + if (sD < rbdate) { //start date out of range\n + sD = rbdate;\n + }\n + if (eD > redate) { //end date out of range\n + eD = redate;\n + }\n + var f = startday - sD.getDay();\n + if (f > 0) { f -= daylength; }\n + var sdtemp = DateAdd("d", f, sD);\n + for (; sdtemp <= eD; sD = sdtemp = DateAdd("d", daylength, sdtemp)) {\n + var d = Clone(s);\n + var key = dateFormat.call(sD, i18n.xgcalendar.dateformat.fulldaykey);\n + var x = DateDiff("d", sdtemp, eD);\n + if (hast[key] == null) {\n + hast[key] = [];\n + }\n + d.colSpan = (x >= daylength) ? daylength - DateDiff("d", sdtemp, sD) : DateDiff("d", sD, eD) + 1;\n + hast[key].push(d);\n + d = null;\n + }\n + }\n + else {\n + var key = dateFormat.call(events[i][2], i18n.xgcalendar.dateformat.fulldaykey);\n + if (hast[key] == null) {\n + hast[key] = [];\n + }\n + s.colSpan = 1;\n + hast[key].push(s);\n + }\n + s = null;\n + }\n + return hast;\n + }\n + function BuildMonthRow(htr, events, dMax, sc, day) {\n + var x = []; \n + var y = []; \n + var z = []; \n + var cday = []; \n + var l = events.length;\n + var el = 0;\n + //var c = tc();\n + for (var j = 0; j < l; j++) {\n + x.push(0);\n + y.push(0);\n + z.push(0);\n + cday.push(DateAdd("d", j, day));\n + }\n + for (var j = 0; j < l; j++) {\n + var ec = events[j] ? events[j].length : 0;\n + y[j] += ec;\n + for (var k = 0; k < ec; k++) {\n + var e = events[j][k];\n + if (e && e.colSpan > 1) {\n + for (var m = 1; m < e.colSpan; m++) {\n + y[j + m]++;\n + }\n + }\n + }\n + }\n + //var htr=[];\n + var tdtemp = "<td class=\'${cssclass}\' axis=\'${axis}\' ch=\'${ch}\' abbr=\'${abbr}\' title=\'${title}\' ${otherAttr}>${html}</td>";\n + for (var j = 0; j < sc && el < dMax; j++) {\n + htr.push("<tr>");\n + //var gridtr = $(__TRTEMP);\n + for (var h = 0; h < l; ) {\n + var e = events[h] ? events[h][x[h]] : undefined;\n + var tempdata = { "class": "", axis: "", ch: "", title: "", abbr: "", html: "", otherAttr: "", click: "javascript:void(0);" };\n + var tempCss = ["st-c"];\n +\n + if (e) { \n + x[h] = x[h] + 1;\n + //last event of the day\n + var bs = false;\n + if (z[h] + 1 == y[h] && e.colSpan == 1) {\n + bs = true;\n + }\n + if (!bs && j == (sc - 1) && z[h] < y[h]) {\n + el++;\n + $.extend(tempdata, { "axis": h, ch: "more", "abbr": dateFormat.call(cday[h], i18n.xgcalendar.dateformat.fulldayvalue), html: i18n.xgcalendar.others + (y[h] - z[h]) + i18n.xgcalendar.item, click: "javascript:alert(\'more event\');" });\n + tempCss.push("st-more st-moreul");\n + h++;\n + }\n + else {\n + tempdata.html = BuildMonthDayEvent(e, cday[h], l - h);\n + tempdata.ch = "show";\n + if (e.colSpan > 1) {\n + tempdata.otherAttr = " colSpan=\'" + e.colSpan + "\'";\n + for (var m = 0; m < e.colSpan; m++) {\n + z[h + m] = z[h + m] + 1;\n + }\n + h += e.colSpan;\n +\n + }\n + else {\n + z[h] = z[h] + 1;\n + h++;\n + }\n + el++;\n + }\n + }\n + else {\n + if (j == (sc - 1) && z[h] < y[h] && y[h] > 0) {\n + $.extend(tempdata, { "axis": h, ch: "more", "abbr": dateFormat.call(cday[h], i18n.xgcalendar.dateformat.fulldayvalue), html: i18n.xgcalendar.others + (y[h] - z[h]) + i18n.xgcalendar.item, click: "javascript:alert(\'more event\');" });\n + tempCss.push("st-more st-moreul");\n + h++;\n + }\n + else {\n + $.extend(tempdata, { html: " ", ch: "qkadd", "axis": "00:00", "abbr": dateFormat.call(cday[h], i18n.xgcalendar.dateformat.fulldayvalue), title: "" });\n + tempCss.push("st-s");\n + h++;\n + }\n + }\n + tempdata.cssclass = tempCss.join(" ");\n + tempCss = null;\n + htr.push(Tp(tdtemp, tempdata));\n + tempdata = null;\n + }\n + htr.push("</tr>");\n + }\n + x = y = z = cday = null;\n + //return htr;\n + }\n + function BuildMonthDayEvent(e, cday, length) {\n + var theme;\n + if (e.event[7] && e.event[7] >= 0) {\n + theme = tc(e.event[7]);\n + }\n + else {\n + theme = tc();\n + }\n + var p = { color: theme[2], title: "", extendClass: "", extendHTML: "", data: "" };\n +\n + p.title = getTitle(e.event);\n + p.id = "bbit_cal_event_" + e.event[0];\n + if (option.enableDrag && e.event[8] == 1) {\n + p.eclass = "drag";\n + }\n + else {\n + p.eclass = "cal_" + e.event[0];\n + }\n + p.data = e.event.join("$");\n + var sp = "<span style=\\"cursor: pointer\\">${content}</span>";\n + var i = "<I class=\\"cic cic-tmr\\"> </I>";\n + var i2 = "<I class=\\"cic cic-rcr\\"> </I>";\n + var ml = "<div class=\\"st-ad-ml\\"></div>";\n + var mr = "<div class=\\"st-ad-mr\\"></div>";\n + var arrm = [];\n + var sf = e.event[2] < cday;\n + var ef = DateDiff("d", cday, e.event[3]) >= length; //e.event[3] >= DateAdd("d", 1, cday);\n + if (sf || ef) {\n + if (sf) {\n + arrm.push(ml);\n + p.extendClass = "st-ad-mpad ";\n + }\n + if (ef)\n + { arrm.push(mr); }\n + p.extendHTML = arrm.join("");\n +\n + }\n + var cen;\n + if (!e.allday && !sf) {\n + cen = pZero(e.st.hour) + ":" + pZero(e.st.minute) + " " + e.event[1];\n + }\n + else {\n + cen = e.event[1];\n + }\n + var content = [];\n + content.push(Tp(sp, { content: cen }));\n + content.push(i);\n + if (e.reevent)\n + { content.push(i2); }\n + p.content = content.join("");\n + return Tp(__ALLDAYEVENTTEMP, p);\n + }\n + //to populate the data \n + function populate() {\n + if (option.isloading) {\n + return true;\n + }\n + if (option.url && option.url != "") {\n + option.isloading = true;\n + //clearcontainer();\n + if (option.onBeforeRequestData && $.isFunction(option.onBeforeRequestData)) {\n + option.onBeforeRequestData(1);\n + }\n + var zone = new Date().getTimezoneOffset() / 60 * -1;\n + var param = [\n + { name: "showdate", value: dateFormat.call(option.showday, i18n.xgcalendar.dateformat.fulldayvalue) },\n + { name: "viewtype", value: option.view },\n + { name: "timezone", value: zone }\n +];\n + if (option.extParam) {\n + for (var pi = 0; pi < option.extParam.length; pi++) {\n + param[param.length] = option.extParam[pi];\n + }\n + }\n + \n + $.ajax({\n + type: option.method, //\n + url: option.url,\n + data: param, \n + //dataType: "text", // fixed jquery 1.4 not support Ms Date Json Format /Date(@Tickets)/\n + dataType: "json",\n + dataFilter: function(data, type) { \n + //return data.replace(/"\\\\\\/(Date\\([0-9-]+\\))\\\\\\/"/gi, "new $1");\n + \n + return data;\n + },\n + success: function(data) {//function(datastr) { \n + //datastr =datastr.replace(/"\\\\\\/(Date\\([0-9-]+\\))\\\\\\/"/gi, \'new $1\'); \n + //var data = (new Function("return " + datastr))();\n + if (data != null && data.error != null) {\n + if (option.onRequestDataError) {\n + option.onRequestDataError(1, data);\n + }\n + }\n + else {\n + data["start"] = parseDate(data["start"]);\n + data["end"] = parseDate(data["end"]);\n + $.each(data.events, function(index, value) { \n + value[2] = parseDate(value[2]);\n + value[3] = parseDate(value[3]); \n + });\n + responseData(data, data.start, data.end);\n + pushER(data.start, data.end);\n + }\n + if (option.onAfterRequestData && $.isFunction(option.onAfterRequestData)) {\n + option.onAfterRequestData(1);\n + }\n + option.isloading = false;\n + },\n + error: function(data) { \n + try { \n + if (option.onRequestDataError) {\n + option.onRequestDataError(1, data);\n + } else {\n + alert(i18n.xgcalendar.get_data_exception);\n + }\n + if (option.onAfterRequestData && $.isFunction(option.onAfterRequestData)) {\n + option.onAfterRequestData(1);\n + }\n + option.isloading = false;\n + } catch (e) { }\n + }\n + });\n + }\n + else {\n + alert("url" + i18n.xgcalendar.i_undefined);\n + }\n + }\n + function responseData(data, start, end) {\n + var events;\n + if (data.issort == false) {\n + if (data.events && data.events.length > 0) {\n + events = data.sort(function(l, r) { return l[2] > r[2] ? -1 : 1; });\n + }\n + else {\n + events = [];\n + }\n + }\n + else {\n + events = data.events;\n + }\n + ConcatEvents(events, start, end);\n + render();\n + }\n + function clearrepeat(events, start, end) {\n + var jl = events.length;\n + if (jl > 0) {\n + var es = events[0][2];\n + var el = events[jl - 1][2];\n + for (var i = 0, l = option.eventItems.length; i < l; i++) {\n +\n + if (option.eventItems[i][2] > el || jl == 0) {\n + break;\n + }\n + if (option.eventItems[i][2] >= es) {\n + for (var j = 0; j < jl; j++) {\n + if (option.eventItems[i][0] == events[j][0] && option.eventItems[i][2] < start) {\n + events.splice(j, 1); //for duplicated event\n + jl--;\n + break;\n + }\n + }\n + }\n + }\n + }\n + }\n + function ConcatEvents(events, start, end) {\n + if (!events) {\n + events = [];\n + }\n + if (events) {\n + if (option.eventItems.length == 0) {\n + option.eventItems = events;\n + }\n + else {\n + //remove duplicated one\n + clearrepeat(events, start, end);\n + var l = events.length;\n + var sl = option.eventItems.length;\n + var sI = -1;\n + var eI = sl;\n + var s = start;\n + var e = end;\n + if (option.eventItems[0][2] > e)\n + {\n + option.eventItems = events.concat(option.eventItems);\n + return;\n + }\n + if (option.eventItems[sl - 1][2] < s) \n + {\n + option.eventItems = option.eventItems.concat(events);\n + return;\n + }\n + for (var i = 0; i < sl; i++) {\n + if (option.eventItems[i][2] >= s && sI < 0) {\n + sI = i;\n + continue;\n + }\n + if (option.eventItems[i][2] > e) {\n + eI = i;\n + break;\n + }\n + }\n +\n + var e1 = sI <= 0 ? [] : option.eventItems.slice(0, sI);\n + var e2 = eI == sl ? [] : option.eventItems.slice(eI);\n + option.eventItems = [].concat(e1, events, e2);\n + events = e1 = e2 = null;\n + }\n + }\n + }\n + //utils goes here\n + function weekormonthtoday(e) {\n + var th = $(this);\n + var daystr = th.attr("abbr");\n + option.showday = strtodate(daystr + " 00:00");\n + option.view = "day";\n + render();\n + if (option.onweekormonthtoday) {\n + option.onweekormonthtoday(option);\n + }\n + return false;\n + }\n + function parseDate(str){\n + return new Date(Date.parse(str));\n + }\n + function gP(h, m) {\n + return h * 42 + parseInt(m / 60 * 42);\n + }\n + function gW(ts1, ts2) {\n + var t1 = ts1 / 42;\n + var t2 = parseInt(t1);\n + var t3 = t1 - t2 >= 0.5 ? 30 : 0;\n + var t4 = ts2 / 42;\n + var t5 = parseInt(t4);\n + var t6 = t4 - t5 >= 0.5 ? 30 : 0;\n + return { sh: t2, sm: t3, eh: t5, em: t6, h: ts2 - ts1 };\n + }\n + function gH(y1, y2, pt) {\n + var sy1 = Math.min(y1, y2);\n + var sy2 = Math.max(y1, y2);\n + var t1 = (sy1 - pt) / 42;\n + var t2 = parseInt(t1);\n + var t3 = t1 - t2 >= 0.5 ? 30 : 0;\n + var t4 = (sy2 - pt) / 42;\n + var t5 = parseInt(t4);\n + var t6 = t4 - t5 >= 0.5 ? 30 : 0;\n + return { sh: t2, sm: t3, eh: t5, em: t6, h: sy2 - sy1 };\n + }\n + function pZero(n) {\n + return n < 10 ? "0" + n : "" + n;\n + }\n + //to get color list array\n + function tc(d) {\n + function zc(c, i) {\n + var d = "666666888888aaaaaabbbbbbdddddda32929cc3333d96666e69999f0c2c2b1365fdd4477e67399eea2bbf5c7d67a367a994499b373b3cca2cce1c7e15229a36633cc8c66d9b399e6d1c2f029527a336699668cb399b3ccc2d1e12952a33366cc668cd999b3e6c2d1f01b887a22aa9959bfb391d5ccbde6e128754e32926265ad8999c9b1c2dfd00d78131096184cb05288cb8cb8e0ba52880066aa008cbf40b3d580d1e6b388880eaaaa11bfbf4dd5d588e6e6b8ab8b00d6ae00e0c240ebd780f3e7b3be6d00ee8800f2a640f7c480fadcb3b1440edd5511e6804deeaa88f5ccb8865a5aa87070be9494d4b8b8e5d4d47057708c6d8ca992a9c6b6c6ddd3dd4e5d6c6274878997a5b1bac3d0d6db5a69867083a894a2beb8c1d4d4dae54a716c5c8d8785aaa5aec6c3cedddb6e6e41898951a7a77dc4c4a8dcdccb8d6f47b08b59c4a883d8c5ace7dcce";\n + return "#" + d.substring(c * 30 + i * 6, c * 30 + (i + 1) * 6);\n + }\n + var c = d != null && d != undefined ? d : option.theme;\n + return [zc(c, 0), zc(c, 1), zc(c, 2), zc(c, 3)];\n + }\n + function Tp(temp, dataarry) {\n + return temp.replace(/\\$\\{([\\w]+)\\}/g, function(s1, s2) { var s = dataarry[s2]; if (typeof (s) != "undefined") { return s; } else { return s1; } });\n + }\n + function Ta(temp, dataarry) {\n + return temp.replace(/\\{([\\d])\\}/g, function(s1, s2) { var s = dataarry[s2]; if (typeof (s) != "undefined") { return encodeURIComponent(s); } else { return ""; } });\n + }\n + function fomartTimeShow(h) {\n + return h < 10 ? "0" + h + ":00" : h + ":00";\n + }\n + function getymformat(date, comparedate, isshowtime, isshowweek, showcompare) {\n + var showyear = isshowtime != undefined ? (date.getFullYear() != new Date().getFullYear()) : true;\n + var showmonth = true;\n + var showday = true;\n + var showtime = isshowtime || false;\n + var showweek = isshowweek || false;\n + if (comparedate) {\n + showyear = comparedate.getFullYear() != date.getFullYear();\n + //showmonth = comparedate.getFullYear() != date.getFullYear() || date.getMonth() != comparedate.getMonth();\n + if (comparedate.getFullYear() == date.getFullYear() &&\n + date.getMonth() == comparedate.getMonth() &&\n + date.getDate() == comparedate.getDate()\n + ) {\n + showyear = showmonth = showday = showweek = false;\n + }\n + }\n +\n + var a = [];\n + if (showyear) {\n + a.push(i18n.xgcalendar.dateformat.fulldayshow)\n + } else if (showmonth) {\n + a.push(i18n.xgcalendar.dateformat.Md3)\n + } else if (showday) {\n + a.push(i18n.xgcalendar.dateformat.day);\n + }\n + a.push(showweek ? " (W)" : "", showtime ? " HH:mm" : "");\n + return a.join("");\n + }\n + function CalDateShow(startday, endday, isshowtime, isshowweek) {\n + if (!endday) {\n + return dateFormat.call(startday, getymformat(startday,null,isshowtime));\n + } else {\n + var strstart= dateFormat.call(startday, getymformat(startday, null, isshowtime, isshowweek));\n + var strend=dateFormat.call(endday, getymformat(endday, startday, isshowtime, isshowweek));\n + var join = (strend!=""? " - ":"");\n + return [strstart,strend].join(join);\n + }\n + }\n +\n + function dochange() {\n + var d = getRdate();\n + var loaded = checkInEr(d.start, d.end);\n + if (!loaded) {\n + populate();\n + }\n + }\n +\n + function checkInEr(start, end) {\n + var ll = option.loadDateR.length;\n + if (ll == 0) {\n + return false;\n + }\n + var r = false;\n + var r2 = false;\n + for (var i = 0; i < ll; i++) {\n + r = false, r2 = false;\n + var dr = option.loadDateR[i];\n + if (start >= dr.startdate && start <= dr.enddate) {\n + r = true;\n + }\n + if (dateFormat.call(start, "yyyyMMdd") == dateFormat.call(dr.startdate, "yyyyMMdd") || dateFormat.call(start, "yyyyMMdd") == dateFormat.call(dr.enddate, "yyyyMMdd")) {\n + r = true;\n + }\n + if (!end)\n + { r2 = true; }\n + else {\n + if (end >= dr.startdate && end <= dr.enddate) {\n + r2 = true;\n + }\n + if (dateFormat.call(end, "yyyyMMdd") == dateFormat.call(dr.startdate, "yyyyMMdd") || dateFormat.call(end, "yyyyMMdd") == dateFormat.call(dr.enddate, "yyyyMMdd")) {\n + r2 = true;\n + }\n + }\n + if (r && r2) {\n + break;\n + }\n + }\n + return r && r2;\n + }\n +\n + function buildtempdayevent(sh, sm, eh, em, h, title, w, resize, thindex) {\n + var theme = thindex != undefined && thindex >= 0 ? tc(thindex) : tc();\n + var newtemp = Tp(__SCOLLEVENTTEMP, {\n + bdcolor: theme[0],\n + bgcolor2: theme[0],\n + bgcolor1: theme[2],\n + data: "",\n + starttime: [pZero(sh), pZero(sm)].join(":"),\n + endtime: [pZero(eh), pZero(em)].join(":"),\n + content: title ? title : i18n.xgcalendar.new_event,\n + title: title ? title : i18n.xgcalendar.new_event,\n + icon: "<I class=\\"cic cic-tmr\\"> </I>",\n + top: "0px",\n + left: "",\n + width: w ? w : "100%",\n + height: h - 4,\n + i: "-1",\n + drag: "drag-chip",\n + redisplay: resize ? "block" : "none"\n + });\n + return newtemp;\n + }\n +\n + function getdata(chip) {\n + var hddata = chip.find("div.dhdV");\n + if (hddata.length == 1) {\n + var str = hddata.text();\n + return parseED(str.split("$"));\n + }\n + return null;\n + }\n + function parseED(data) {\n + if (data.length > 6) {\n + var e = [];\n + e.push(data[0], data[1], new Date(data[2]), new Date(data[3]), parseInt(data[4]), parseInt(data[5]), parseInt(data[6]), data[7] != undefined ? parseInt(data[7]) : -1, data[8] != undefined ? parseInt(data[8]) : 0, data[9], data[10]);\n + return e;\n + }\n + return null;\n +\n + }\n + function quickd(type) {\n + $("#bbit-cs-buddle").css("visibility", "hidden");\n + var calid = $("#bbit-cs-id").val();\n + var title = $("#bbit-cs-what").text();\n + var param = [{"name": "calendarId", value: calid },\n + {"name": "type", value: type},\n + {"name": "title", value: title}];\n + var de = rebyKey(calid, true);\n + option.onBeforeRequestData && option.onBeforeRequestData(3);\n + $.post(option.quickDeleteUrl, param, function(data) {\n + if (data) {\n + if (data.IsSuccess) {\n + de = null;\n + option.onAfterRequestData && option.onAfterRequestData(3);\n + }\n + else {\n + option.onRequestDataError && option.onRequestDataError(3, data);\n + Ind(de);\n + render();\n + option.onAfterRequestData && option.onAfterRequestData(3);\n + }\n + }\n + }, "json");\n + render();\n + }\n + function getbuddlepos(x, y) {\n + var tleft = x - 110; \n + var ttop = y - 217; \n + var maxLeft = document.documentElement.clientWidth;\n + var maxTop = document.documentElement.clientHeight;\n + var ishide = false;\n + if (tleft <= 0 || ttop <= 0 || tleft + 400 > maxLeft) {\n + tleft = x - 200 <= 0 ? 10 : x - 200;\n + ttop = y - 159 <= 0 ? 10 : y - 159;\n + if (tleft + 400 >= maxLeft) {\n + tleft = maxLeft - 410;\n + }\n + if (ttop + 164 >= maxTop) {\n + ttop = maxTop - 165;\n + }\n + ishide = true;\n + }\n + return { left: tleft, top: ttop, hide: ishide };\n + }\n + function dayshow(e, data) {\n + if (data == undefined) {\n + data = getdata($(this));\n + }\n + if (data != null) {\n + if (option.quickDeleteUrl != "" && data[8] == 1 && option.readonly != true) {\n + var csbuddle = \'<div id="bbit-cs-buddle" style="z-index: 180; width: 400px;visibility:hidden;" class="bubble"><table class="bubble-table" cellSpacing="0" cellPadding="0"><tbody><tr><td class="bubble-cell-side"><div id="tl1" class="bubble-corner"><div class="bubble-sprite bubble-tl"></div></div><td class="bubble-cell-main"><div class="bubble-top"></div><td class="bubble-cell-side"><div id="tr1" class="bubble-corner"><div class="bubble-sprite bubble-tr"></div></div> <tr><td class="bubble-mid" colSpan="3"><div style="overflow: hidden" id="bubbleContent1"><div><div></div><div class="cb-root"><table class="cb-table" cellSpacing="0" cellPadding="0"><tbody><tr><td class="cb-value"><div class="textbox-fill-wrapper"><div class="textbox-fill-mid"><div id="bbit-cs-what" title="\'\n + + i18n.xgcalendar.click_to_detail + \'" class="textbox-fill-div lk" style="cursor:pointer;"></div></div></div></td></tr><tr><td class=cb-value><div id="bbit-cs-buddle-timeshow"></div></td></tr></tbody></table><div class="bbit-cs-split"><input id="bbit-cs-id" type="hidden" value=""/>[ <span id="bbit-cs-delete" class="lk">\'\n + + i18n.xgcalendar.i_delete + \'</span> ] <SPAN id="bbit-cs-editLink" class="lk">\'\n + + i18n.xgcalendar.update_detail + \' <StrONG>>></StrONG></SPAN></div></div></div></div><tr><td><div id="bl1" class="bubble-corner"><div class="bubble-sprite bubble-bl"></div></div><td><div class="bubble-bottom"></div><td><div id="br1" class="bubble-corner"><div class="bubble-sprite bubble-br"></div></div></tr></tbody></table><div id="bubbleClose2" class="bubble-closebutton"></div><div id="prong1" class="prong"><div class=bubble-sprite></div></div></div>\';\n + var bud = $("#bbit-cs-buddle");\n + if (bud.length == 0) {\n + bud = $(csbuddle).appendTo(document.body);\n + var calbutton = $("#bbit-cs-delete");\n + var lbtn = $("#bbit-cs-editLink");\n + var closebtn = $("#bubbleClose2").click(function() {\n + $("#bbit-cs-buddle").css("visibility", "hidden");\n + });\n + calbutton.click(function() {\n + var data = $("#bbit-cs-buddle").data("cdata");\n + if (option.DeleteCmdhandler && $.isFunction(option.DeleteCmdhandler)) {\n + option.DeleteCmdhandler.call(this, data, quickd);\n + }\n + else {\n + if (confirm(i18n.xgcalendar.confirm_delete_event + "?")) {\n + var s = 0; //0 single event , 1 for Recurring event\n + if (data[6] == 1) {\n + if (confirm(i18n.xgcalendar.confrim_delete_event_or_all)) {\n + s = 0;\n + }\n + else {\n + s = 1;\n + }\n + }\n + else {\n + s = 0;\n + }\n + quickd(s);\n + }\n + }\n + });\n + $("#bbit-cs-what").click(function(e) {\n + if (!option.ViewCmdhandler) {\n + alert("ViewCmdhandler" + i18n.xgcalendar.i_undefined);\n + }\n + else {\n + if (option.ViewCmdhandler && $.isFunction(option.ViewCmdhandler)) {\n + option.ViewCmdhandler.call(this, $("#bbit-cs-buddle").data("cdata"));\n + }\n + }\n + $("#bbit-cs-buddle").css("visibility", "hidden");\n + return false;\n + });\n + lbtn.click(function(e) {\n + if (!option.EditCmdhandler) {\n + alert("EditCmdhandler" + i18n.xgcalendar.i_undefined);\n + }\n + else {\n + if (option.EditCmdhandler && $.isFunction(option.EditCmdhandler)) {\n + option.EditCmdhandler.call(this, $("#bbit-cs-buddle").data("cdata"));\n + }\n + }\n + $("#bbit-cs-buddle").css("visibility", "hidden");\n + return false;\n + });\n + bud.click(function() { return false });\n + }\n + var pos = getbuddlepos(e.pageX, e.pageY);\n + if (pos.hide) {\n + $("#prong1").hide()\n + }\n + else {\n + $("#prong1").show()\n + }\n + var ss = [];\n + var iscos = DateDiff("d", data[2], data[3]) != 0;\n + ss.push(dateFormat.call(data[2], i18n.xgcalendar.dateformat.Md3), " (", __WDAY[data[2].getDay()], ")");\n + if (data[4] != 1) {\n + ss.push(",", dateFormat.call(data[2], "HH:mm"));\n + }\n +\n + if (iscos) {\n + ss.push(" - ", dateFormat.call(data[3], i18n.xgcalendar.dateformat.Md3), " (", __WDAY[data[3].getDay()], ")");\n + if (data[4] != 1) {\n + ss.push(",", dateFormat.call(data[3], "HH:mm"));\n + }\n + }\n + var ts = $("#bbit-cs-buddle-timeshow").html(ss.join(""));\n + $("#bbit-cs-what").html(data[1]);\n + $("#bbit-cs-id").val(data[0]);\n + bud.data("cdata", data);\n + bud.css({ "visibility": "visible", left: pos.left, top: pos.top });\n +\n + $(document).one("click", function() {\n + $("#bbit-cs-buddle").css("visibility", "hidden");\n + });\n + }\n + else {\n + if (!option.ViewCmdhandler) {\n + alert("ViewCmdhandler" + i18n.xgcalendar.i_undefined);\n + }\n + else {\n + if (option.ViewCmdhandler && $.isFunction(option.ViewCmdhandler)) {\n + option.ViewCmdhandler.call(this, data);\n + }\n + }\n + }\n + }\n + else {\n + alert(i18n.xgcalendar.data_format_error);\n + }\n + return false;\n + }\n +\n + function moreshow(mv) {\n + var me = $(this);\n + var divIndex = mv.id.split(\'_\')[1];\n + var pdiv = $(mv);\n + var offsetMe = me.position();\n + var offsetP = pdiv.position();\n + var width = (me.width() + 2) * 1.5;\n + var top = offsetP.top + 15;\n + var left = offsetMe.left;\n +\n + var daystr = this.abbr;\n + var arrdays = daystr.split(\'/\');\n + var day = new Date(arrdays[0], parseInt(arrdays[1] - 1), arrdays[2]);\n + var cc = $("#cal-month-cc");\n + var ccontent = $("#cal-month-cc-content table tbody");\n + var ctitle = $("#cal-month-cc-title");\n + ctitle.html(dateFormat.call(day, i18n.xgcalendar.dateformat.Md3) + " " + __WDAY[day.getDay()]);\n + ccontent.empty();\n + //var c = tc()[2];\n + var edata = $("#gridEvent").data("mvdata");\n + var events = edata[divIndex];\n + var index = parseInt(this.axis);\n + var htm = [];\n + for (var i = 0; i <= index; i++) {\n + var ec = events[i] ? events[i].length : 0;\n + for (var j = 0; j < ec; j++) {\n + var e = events[i][j];\n + if (e) {\n + if ((e.colSpan + i - 1) >= index) {\n + htm.push("<tr><td class=\'st-c\'>");\n + htm.push(BuildMonthDayEvent(e, day, 1));\n + htm.push("</td></tr>");\n + }\n + }\n + }\n + }\n + ccontent.html(htm.join(""));\n + //click\n + ccontent.find("div.rb-o").each(function(i) {\n + $(this).click(dayshow);\n + });\n +\n + edata = events = null;\n + var height = cc.height();\n + var maxleft = document.documentElement.clientWidth;\n + var maxtop = document.documentElement.clientHeight;\n + if (left + width >= maxleft) {\n + left = offsetMe.left - (me.width() + 2) * 0.5;\n + }\n + if (top + height >= maxtop) {\n + top = maxtop - height - 2;\n + }\n + var newOff = { left: left, top: top, "z-index": 180, width: width, "visibility": "visible" };\n + cc.css(newOff);\n + $(document).one("click", closeCc);\n + return false;\n + }\n + function dayupdate(data, start, end) {\n + if (option.quickUpdateUrl != "" && data[8] == 1 && option.readonly != true) {\n + if (option.isloading) {\n + return false;\n + }\n + option.isloading = true;\n + var id = data[0];\n + var title = data[1];\n + var os = data[2];\n + var od = data[3];\n + var zone = new Date().getTimezoneOffset() / 60 * -1;\n + var param = [{ "name": "calendarId", value: id },\n + { "name": "CalendarStartTime", value: dateFormat.call(start, i18n.xgcalendar.dateformat.fulldayvalue + " HH:mm") },\n + { "name": "CalendarEndTime", value: dateFormat.call(end, i18n.xgcalendar.dateformat.fulldayvalue + " HH:mm") },\n + { "name": "timezone", value: zone },\n + { "name": "title", value: title },\n +];\n + var d;\n + if (option.quickUpdateHandler && $.isFunction(option.quickUpdateHandler)) {\n + option.quickUpdateHandler.call(this, param);\n + }\n + else {\n + option.onBeforeRequestData && option.onBeforeRequestData(4);\n + $.post(option.quickUpdateUrl, param, function(data) {\n + if (data) {\n + if (data.IsSuccess == true) {\n + option.isloading = false;\n + option.onAfterRequestData && option.onAfterRequestData(4);\n + }\n + else {\n + option.onRequestDataError && option.onRequestDataError(4, data);\n + option.isloading = false; \n + d = rebyKey(id, true);\n + d[2] = os;\n + d[3] = od;\n + Ind(d);\n + render();\n + d = null;\n + option.onAfterRequestData && option.onAfterRequestData(4);\n + }\n + }\n + }, "json"); \n + d = rebyKey(id, true);\n + if (d) {\n + d[2] = start;\n + d[3] = end;\n + }\n + Ind(d);\n + render();\n + }\n + }\n + }\n + function quickadd(start, end, isallday, pos) {\n + if ((!option.quickAddHandler && option.quickAddUrl == "") || option.readonly) {\n + return;\n + }\n + var buddle = $("#bbit-cal-buddle");\n + if (buddle.length == 0) {\n + var temparr = [];\n + temparr.push(\'<div id="bbit-cal-buddle" style="z-index: 180; width: 400px;visibility:hidden;" class="bubble">\');\n + temparr.push(\'<table class="bubble-table" cellSpacing="0" cellPadding="0"><tbody><tr><td class="bubble-cell-side"><div id="tl1" class="bubble-corner"><div class="bubble-sprite bubble-tl"></div></div>\');\n + temparr.push(\'<td class="bubble-cell-main"><div class="bubble-top"></div><td class="bubble-cell-side"><div id="tr1" class="bubble-corner"><div class="bubble-sprite bubble-tr"></div></div> <tr><td class="bubble-mid" colSpan="3"><div style="overflow: hidden" id="bubbleContent1"><div><div></div><div class="cb-root">\');\n + temparr.push(\'<table class="cb-table" cellSpacing="0" cellPadding="0"><tbody><tr><th class="cb-key">\');\n + temparr.push(i18n.xgcalendar.time, \':</th><td class=cb-value><div id="bbit-cal-buddle-timeshow"></div></td></tr><tr><th class="cb-key">\');\n + temparr.push(i18n.xgcalendar.content, \':</th><td class="cb-value"><div class="textbox-fill-wrapper"><div class="textbox-fill-mid"><input id="bbit-cal-what" class="textbox-fill-input"/></div></div><div class="cb-example">\');\n + temparr.push(i18n.xgcalendar.example, \'</div></td></tr></tbody></table><input id="bbit-cal-start" type="hidden"/><input id="bbit-cal-end" type="hidden"/><input id="bbit-cal-allday" type="hidden"/><input id="bbit-cal-quickAddBTN" value="\');\n + temparr.push(i18n.xgcalendar.create_event, \'" type="button"/> <SPAN id="bbit-cal-editLink" class="lk">\');\n + temparr.push(i18n.xgcalendar.update_detail, \' <StrONG>>></StrONG></SPAN></div></div></div><tr><td><div id="bl1" class="bubble-corner"><div class="bubble-sprite bubble-bl"></div></div><td><div class="bubble-bottom"></div><td><div id="br1" class="bubble-corner"><div class="bubble-sprite bubble-br"></div></div></tr></tbody></table><div id="bubbleClose1" class="bubble-closebutton"></div><div id="prong2" class="prong"><div class=bubble-sprite></div></div></div>\');\n + var tempquickAddHanler = temparr.join("");\n + temparr = null;\n + $(document.body).append(tempquickAddHanler);\n + buddle = $("#bbit-cal-buddle");\n + var calbutton = $("#bbit-cal-quickAddBTN");\n + var lbtn = $("#bbit-cal-editLink");\n + var closebtn = $("#bubbleClose1").click(function() {\n + $("#bbit-cal-buddle").css("visibility", "hidden");\n + realsedragevent();\n + });\n + calbutton.click(function(e) {\n + if (option.isloading) {\n + return false;\n + }\n + option.isloading = true;\n + var what = $("#bbit-cal-what").val();\n + var datestart = $("#bbit-cal-start").val();\n + var dateend = $("#bbit-cal-end").val();\n + var allday = $("#bbit-cal-allday").val();\n + var f = /^[^\\$\\<\\>]+$/.test(what);\n + if (!f) {\n + alert(i18n.xgcalendar.invalid_title);\n + $("#bbit-cal-what").focus();\n + option.isloading = false;\n + return false;\n + }\n + var zone = new Date().getTimezoneOffset() / 60 * -1;\n + var param = [{ "name": "CalendarTitle", value: what },\n + { "name": "CalendarStartTime", value: datestart },\n + { "name": "CalendarEndTime", value: dateend },\n + { "name": "IsAllDayEvent", value: allday },\n + { "name": "timezone", value: zone}];\n +\n + if (option.extParam) {\n + for (var pi = 0; pi < option.extParam.length; pi++) {\n + param[param.length] = option.extParam[pi];\n + }\n + }\n +\n + if (option.quickAddHandler && $.isFunction(option.quickAddHandler)) {\n + option.quickAddHandler.call(this, param);\n + $("#bbit-cal-buddle").css("visibility", "hidden");\n + realsedragevent();\n + }\n + else {\n + $("#bbit-cal-buddle").css("visibility", "hidden");\n + var newdata = [];\n + var tId = -1;\n + option.onBeforeRequestData && option.onBeforeRequestData(2);\n + $.post(option.quickAddUrl, param, function(data) {\n + if (data) {\n + if (data.IsSuccess == true) {\n + option.isloading = false;\n + option.eventItems[tId][0] = data.Data;\n + option.eventItems[tId][8] = 1;\n + render();\n + option.onAfterRequestData && option.onAfterRequestData(2);\n + }\n + else {\n + option.onRequestDataError && option.onRequestDataError(2, data);\n + option.isloading = false;\n + option.onAfterRequestData && option.onAfterRequestData(2);\n + }\n +\n + }\n +\n + }, "json");\n +\n + newdata.push(-1, what);\n + var sd = strtodate(datestart);\n + var ed = strtodate(dateend);\n + var diff = DateDiff("d", sd, ed);\n + newdata.push(sd, ed, allday == "1" ? 1 : 0, diff > 0 ? 1 : 0, 0);\n + newdata.push(-1, 0, "", ""); \n + tId = Ind(newdata);\n + realsedragevent();\n + render();\n + }\n + });\n + lbtn.click(function(e) {\n + if (!option.EditCmdhandler) {\n + alert("EditCmdhandler" + i18n.xgcalendar.i_undefined);\n + }\n + else {\n + if (option.EditCmdhandler && $.isFunction(option.EditCmdhandler)) {\n + option.EditCmdhandler.call(this, [\'0\', $("#bbit-cal-what").val(), $("#bbit-cal-start").val(), $("#bbit-cal-end").val(), $("#bbit-cal-allday").val()]);\n + }\n + $("#bbit-cal-buddle").css("visibility", "hidden");\n + realsedragevent();\n + }\n + return false;\n + });\n + buddle.mousedown(function(e) { return false });\n + }\n + \n + var dateshow = CalDateShow(start, end, !isallday, true); \n + var off = getbuddlepos(pos.left, pos.top);\n + if (off.hide) {\n + $("#prong2").hide()\n + }\n + else {\n + $("#prong2").show()\n + }\n + $("#bbit-cal-buddle-timeshow").html(dateshow);\n + var calwhat = $("#bbit-cal-what").val("");\n + $("#bbit-cal-allday").val(isallday ? "1" : "0");\n + $("#bbit-cal-start").val(dateFormat.call(start, i18n.xgcalendar.dateformat.fulldayvalue + " HH:mm"));\n + $("#bbit-cal-end").val(dateFormat.call(end, i18n.xgcalendar.dateformat.fulldayvalue + " HH:mm"));\n + buddle.css({ "visibility": "visible", left: off.left, top: off.top }); \n + calwhat.blur().focus(); //add 2010-01-26 blur() fixed chrome \n + $(document).one("mousedown", function() {\n + $("#bbit-cal-buddle").css("visibility", "hidden");\n + realsedragevent();\n + });\n + return false;\n + }\n + //format datestring to Date Type\n + function strtodate(str) {\n +\n + var arr = str.split(" ");\n + var arr2 = arr[0].split(i18n.xgcalendar.dateformat.separator);\n + var arr3 = arr[1].split(":");\n +\n + var y = arr2[i18n.xgcalendar.dateformat.year_index];\n + var m = arr2[i18n.xgcalendar.dateformat.month_index].indexOf("0") == 0 ? arr2[i18n.xgcalendar.dateformat.month_index].substr(1, 1) : arr2[i18n.xgcalendar.dateformat.month_index];\n + var d = arr2[i18n.xgcalendar.dateformat.day_index].indexOf("0") == 0 ? arr2[i18n.xgcalendar.dateformat.day_index].substr(1, 1) : arr2[i18n.xgcalendar.dateformat.day_index];\n + var h = arr3[0].indexOf("0") == 0 ? arr3[0].substr(1, 1) : arr3[0];\n + var n = arr3[1].indexOf("0") == 0 ? arr3[1].substr(1, 1) : arr3[1];\n + return new Date(y, parseInt(m) - 1, d, h, n);\n + }\n +\n + function rebyKey(key, remove) {\n + if (option.eventItems && option.eventItems.length > 0) {\n + var sl = option.eventItems.length;\n + var i = -1;\n + for (var j = 0; j < sl; j++) {\n + if (option.eventItems[j][0] == key) {\n + i = j;\n + break;\n + }\n + }\n + if (i >= 0) {\n + var t = option.eventItems[i];\n + if (remove) {\n + option.eventItems.splice(i, 1);\n + }\n + return t;\n + }\n + }\n + return null;\n + }\n + function Ind(event, i) {\n + var d = 0;\n + if (!i) {\n + if (option.eventItems && option.eventItems.length > 0) {\n + var sl = option.eventItems.length;\n + var s = event[2];\n + var d1 = s.getTime() - option.eventItems[0][2].getTime();\n + var d2 = option.eventItems[sl - 1][2].getTime() - s.getTime();\n + var diff = d1 - d2;\n + if (d1 < 0 || diff < 0) {\n + for (var j = 0; j < sl; j++) {\n + if (option.eventItems[j][2] >= s) {\n + i = j;\n + break;\n + }\n + }\n + }\n + else if (d2 < 0) {\n + i = sl;\n + }\n + else {\n + for (var j = sl - 1; j >= 0; j--) {\n + if (option.eventItems[j][2] < s) {\n + i = j + 1;\n + break;\n + }\n + }\n + }\n + }\n + else {\n + i = 0;\n + }\n + }\n + else {\n + d = 1;\n + }\n + if (option.eventItems && option.eventItems.length > 0) {\n + if (i == option.eventItems.length) {\n + option.eventItems.push(event);\n + }\n + else { option.eventItems.splice(i, d, event); }\n + }\n + else {\n + option.eventItems = [event];\n + }\n + return i;\n + }\n + \n + \n + function ResizeView() {\n + var _MH = document.documentElement.clientHeight;\n + var _viewType = option.view;\n + if (_viewType == "day" || _viewType == "week") {\n + var $dvwkcontaienr = $("#dvwkcontaienr");\n + var $dvtec = $("#dvtec");\n + if ($dvwkcontaienr.length == 0 || $dvtec.length == 0) {\n + alert(i18n.xgcalendar.view_no_ready); return;\n + }\n + var dvwkH = $dvwkcontaienr.height() + 2;\n + var calH = option.height - 8 - dvwkH;\n + $dvtec.height(calH);\n + if (typeof (option.scoll) == "undefined") {\n + var currentday = new Date();\n + var h = currentday.getHours();\n + var m = currentday.getMinutes();\n + var th = gP(h, m);\n + var ch = $dvtec.attr("clientHeight");\n + var sh = th - 0.5 * ch;\n + var ph = $dvtec.attr("scrollHeight");\n + if (sh < 0) sh = 0;\n + if (sh > ph - ch) sh = ph - ch - 10 * (23 - h);\n + $dvtec.attr("scrollTop", sh);\n + }\n + else {\n + $dvtec.attr("scrollTop", option.scoll);\n + }\n + }\n + else if (_viewType == "month") {\n + //Resize GridContainer\n + }\n + }\n + function returnfalse() {\n + return false;\n + }\n + function initevents(viewtype) {\n + if (viewtype == "week" || viewtype == "day") {\n + $("div.chip", gridcontainer).each(function(i) {\n + var chip = $(this);\n + chip.click(dayshow);\n + if (chip.hasClass("drag")) {\n + chip.mousedown(function(e) { dragStart.call(this, "dw3", e); return false; });\n + //resize \n + chip.find("div.resizer").mousedown(function(e) {\n + dragStart.call($(this).parent().parent(), "dw4", e); return false;\n + });\n + }\n + else {\n + chip.mousedown(returnfalse)\n + }\n + });\n + $("div.rb-o", gridcontainer).each(function(i) {\n + var chip = $(this);\n + chip.click(dayshow);\n + if (chip.hasClass("drag") && viewtype == "week") {\n + //drag;\n + chip.mousedown(function(e) { dragStart.call(this, "dw5", e); return false; });\n + }\n + else {\n + chip.mousedown(returnfalse)\n + }\n + });\n + if (option.readonly == false) {\n + $("td.tg-col", gridcontainer).each(function(i) {\n + $(this).mousedown(function(e) { dragStart.call(this, "dw1", e); return false; });\n + });\n + $("#weekViewAllDaywk").mousedown(function(e) { dragStart.call(this, "dw2", e); return false; });\n + }\n +\n + if (viewtype == "week") {\n + $("#dvwkcontaienr th.gcweekname").each(function(i) {\n + $(this).click(weekormonthtoday);\n + });\n + }\n +\n +\n + }\n + else if (viewtype = "month") {\n + $("div.rb-o", gridcontainer).each(function(i) {\n + var chip = $(this);\n + chip.click(dayshow);\n + if (chip.hasClass("drag")) {\n + //drag;\n + chip.mousedown(function(e) { dragStart.call(this, "m2", e); return false; });\n + }\n + else {\n + chip.mousedown(returnfalse)\n + }\n + });\n + $("td.st-more", gridcontainer).each(function(i) {\n +\n + $(this).click(function(e) {\n + moreshow.call(this, $(this).parent().parent().parent().parent()[0]); return false;\n + }).mousedown(function() { return false; });\n + });\n + if (option.readonly == false) {\n + $("#mvEventContainer").mousedown(function(e) { dragStart.call(this, "m1", e); return false; });\n + }\n + }\n +\n + }\n + function realsedragevent() {\n + if (_dragevent) {\n + _dragevent();\n + _dragevent = null;\n + }\n + }\n + function dragStart(type, e) {\n + var obj = $(this);\n + var source = e.srcElement || e.target;\n + realsedragevent();\n + switch (type) {\n + case "dw1": \n + _dragdata = { type: 1, target: obj, sx: e.pageX, sy: e.pageY };\n + break;\n + case "dw2": \n + var w = obj.width();\n + var h = obj.height();\n + var offset = obj.offset();\n + var left = offset.left;\n + var top = offset.top;\n + var l = option.view == "day" ? 1 : 7;\n + var py = w % l;\n + var pw = parseInt(w / l);\n + if (py > l / 2 + 1) {\n + pw++;\n + }\n + var xa = [];\n + var ya = [];\n + for (var i = 0; i < l; i++) {\n + xa.push({ s: i * pw + left, e: (i + 1) * pw + left });\n + }\n + ya.push({ s: top, e: top + h });\n + _dragdata = { type: 2, target: obj, sx: e.pageX, sy: e.pageY, pw: pw, xa: xa, ya: ya, h: h };\n + w = left = l = py = pw = xa = null;\n + break;\n + case "dw3": \n + var evid = obj.parent().attr("id").replace("tgCol", "");\n + var p = obj.parent();\n + var pos = p.offset();\n + var w = p.width() + 10;\n + var h = obj.height();\n + var data = getdata(obj);\n + _dragdata = { type: 4, target: obj, sx: e.pageX, sy: e.pageY,\n + pXMin: pos.left, pXMax: pos.left + w, pw: w, h: h,\n + cdi: parseInt(evid), fdi: parseInt(evid), data: data\n + };\n + break;\n + case "dw4": //resize;\n + var h = obj.height();\n + var data = getdata(obj);\n + _dragdata = { type: 5, target: obj, sx: e.pageX, sy: e.pageY, h: h, data: data };\n + break;\n + case "dw5":\n + var con = $("#weekViewAllDaywk");\n + var w = con.width();\n + var h = con.height();\n + var offset = con.offset();\n + var moffset = obj.offset();\n + var left = offset.left;\n + var top = offset.top;\n + var l = 7;\n + var py = w % l;\n + var pw = parseInt(w / l);\n + if (py > l / 2 + 1) {\n + pw++;\n + }\n + var xa = [];\n + var ya = [];\n + var di = 0;\n + for (var i = 0; i < l; i++) {\n + xa.push({ s: i * pw + left, e: (i + 1) * pw + left });\n + if (moffset.left >= xa[i].s && moffset.left < xa[i].e) {\n + di = i;\n + }\n + }\n + var fdi = { x: di, y: 0, di: di };\n + ya.push({ s: top, e: top + h });\n + var data = getdata(obj);\n + var dp = DateDiff("d", data[2], data[3]) + 1;\n + _dragdata = { type: 6, target: obj, sx: e.pageX, sy: e.pageY, data: data, xa: xa, ya: ya, fdi: fdi, h: h, dp: dp, pw: pw };\n + break;\n + case "m1": \n + var w = obj.width();\n + var offset = obj.offset();\n + var left = offset.left;\n + var top = offset.top;\n + var l = 7;\n + var yl = obj.children().length;\n + var py = w % l;\n + var pw = parseInt(w / l);\n + if (py > l / 2 + 1) {\n + pw++;\n + }\n + var h = $("#mvrow_0").height();\n + var xa = [];\n + var ya = [];\n + for (var i = 0; i < l; i++) {\n + xa.push({ s: i * pw + left, e: (i + 1) * pw + left });\n + }\n + var xa = [];\n + var ya = [];\n + for (var i = 0; i < l; i++) {\n + xa.push({ s: i * pw + left, e: (i + 1) * pw + left });\n + }\n + for (var i = 0; i < yl; i++) {\n + ya.push({ s: i * h + top, e: (i + 1) * h + top });\n + }\n + _dragdata = { type: 3, target: obj, sx: e.pageX, sy: e.pageY, pw: pw, xa: xa, ya: ya, h: h };\n + break;\n + case "m2": \n + var row0 = $("#mvrow_0");\n + var row1 = $("#mvrow_1");\n + var w = row0.width();\n + var offset = row0.offset();\n + var diffset = row1.offset();\n + var moffset = obj.offset();\n + var h = diffset.top - offset.top;\n + var left = offset.left;\n + var top = offset.top;\n + var l = 7;\n + var yl = row0.parent().children().length;\n + var py = w % l;\n + var pw = parseInt(w / l);\n + if (py > l / 2 + 1) {\n + pw++;\n + }\n + var xa = [];\n + var ya = [];\n + var xi = 0;\n + var yi = 0;\n + for (var i = 0; i < l; i++) {\n + xa.push({ s: i * pw + left, e: (i + 1) * pw + left });\n + if (moffset.left >= xa[i].s && moffset.left < xa[i].e) {\n + xi = i;\n + }\n + }\n + for (var i = 0; i < yl; i++) {\n + ya.push({ s: i * h + top, e: (i + 1) * h + top });\n + if (moffset.top >= ya[i].s && moffset.top < ya[i].e) {\n + yi = i;\n + }\n + }\n + var fdi = { x: xi, y: yi, di: yi * 7 + xi };\n + var data = getdata(obj);\n + var dp = DateDiff("d", data[2], data[3]) + 1;\n + _dragdata = { type: 7, target: obj, sx: e.pageX, sy: e.pageY, data: data, xa: xa, ya: ya, fdi: fdi, h: h, dp: dp, pw: pw };\n + break;\n + }\n + $(\'body\').noSelect();\n + }\n + function dragMove(e) {\n + if (_dragdata) {\n + if (e.pageX < 0 || e.pageY < 0\n + || e.pageX > document.documentElement.clientWidth\n + || e.pageY >= document.documentElement.clientHeight) {\n + dragEnd(e);\n + return false;\n + }\n + var d = _dragdata;\n + switch (d.type) {\n + case 1:\n + var sy = d.sy;\n + var y = e.pageY;\n + var diffy = y - sy;\n + if (diffy > 11 || diffy < -11 || d.cpwrap) {\n + if (diffy == 0) { diffy = 21; }\n + var dy = diffy % 21;\n + if (dy != 0) {\n + diffy = dy > 0 ? diffy + 21 - dy : diffy - 21 - dy;\n + y = d.sy + diffy;\n + if (diffy < 0) {\n + sy = sy + 21;\n + }\n + }\n + if (!d.tp) {\n + d.tp = $(d.target).offset().top;\n + }\n + var gh = gH(sy, y, d.tp);\n + var ny = gP(gh.sh, gh.sm);\n + var tempdata;\n + if (!d.cpwrap) {\n + tempdata = buildtempdayevent(gh.sh, gh.sm, gh.eh, gh.em, gh.h);\n + var cpwrap = $("<div class=\'ca-evpi drag-chip-wrapper\' style=\'top:" + ny + "px\'/>").html(tempdata);\n + $(d.target).find("div.tg-col-overlaywrapper").append(cpwrap);\n + d.cpwrap = cpwrap;\n + }\n + else {\n + if (d.cgh.sh != gh.sh || d.cgh.eh != gh.eh || d.cgh.sm != gh.sm || d.cgh.em != gh.em) {\n + tempdata = buildtempdayevent(gh.sh, gh.sm, gh.eh, gh.em, gh.h);\n + d.cpwrap.css("top", ny + "px").html(tempdata);\n + }\n + }\n + d.cgh = gh;\n + }\n + break;\n + case 2:\n + var sx = d.sx;\n + var x = e.pageX;\n + var diffx = x - sx;\n + if (diffx > 5 || diffx < -5 || d.lasso) {\n + if (!d.lasso) {\n + d.lasso = $("<div style=\'z-index: 10; display: block\' class=\'drag-lasso-container\'/>");\n + $(document.body).append(d.lasso);\n + }\n + if (!d.sdi) {\n + d.sdi = getdi(d.xa, d.ya, sx, d.sy);\n + }\n + var ndi = getdi(d.xa, d.ya, x, e.pageY);\n + if (!d.fdi || d.fdi.di != ndi.di) {\n + addlasso(d.lasso, d.sdi, ndi, d.xa, d.ya, d.h);\n + }\n + d.fdi = ndi;\n + }\n + break;\n + case 3:\n + var sx = d.sx;\n + var x = e.pageX;\n + var sy = d.sy;\n + var y = e.pageY;\n + var diffx = x - sx;\n + var diffy = y - sy;\n + if (diffx > 5 || diffx < -5 || diffy < -5 || diffy > 5 || d.lasso) {\n + if (!d.lasso) {\n + d.lasso = $("<div style=\'z-index: 10; display: block\' class=\'drag-lasso-container\'/>");\n + $(document.body).append(d.lasso);\n + }\n + if (!d.sdi) {\n + d.sdi = getdi(d.xa, d.ya, sx, sy);\n + }\n + var ndi = getdi(d.xa, d.ya, x, y);\n + if (!d.fdi || d.fdi.di != ndi.di) {\n + addlasso(d.lasso, d.sdi, ndi, d.xa, d.ya, d.h);\n + }\n + d.fdi = ndi;\n + }\n + break;\n + case 4:\n + var data = d.data;\n + if (data != null && data[8] == 1) {\n + var sx = d.sx;\n + var x = e.pageX;\n + var sy = d.sy;\n + var y = e.pageY;\n + var diffx = x - sx;\n + var diffy = y - sy;\n + if (diffx > 5 || diffx < -5 || diffy > 5 || diffy < -5 || d.cpwrap) {\n + var gh, ny, tempdata;\n + if (!d.cpwrap) {\n + gh = { sh: data[2].getHours(),\n + sm: data[2].getMinutes(),\n + eh: data[3].getHours(),\n + em: data[3].getMinutes(),\n + h: d.h\n + };\n + d.target.hide();\n + ny = gP(gh.sh, gh.sm);\n + d.top = ny;\n + tempdata = buildtempdayevent(gh.sh, gh.sm, gh.eh, gh.em, gh.h, data[1], false, false, data[7]);\n + var cpwrap = $("<div class=\'ca-evpi drag-chip-wrapper\' style=\'top:" + ny + "px\'/>").html(tempdata);\n + var evid = d.target.parent().attr("id").replace("tgCol", "#tgOver");\n + $(evid).append(cpwrap);\n + d.cpwrap = cpwrap;\n + d.ny = ny;\n + }\n + else {\n + var pd = 0;\n + if (x < d.pXMin) {\n + pd = -1;\n + }\n + else if (x > d.pXMax) {\n + pd = 1;\n + }\n + if (pd != 0) {\n +\n + d.cdi = d.cdi + pd;\n + var ov = $("#tgOver" + d.cdi);\n + if (ov.length == 1) {\n + d.pXMin = d.pXMin + d.pw * pd;\n + d.pXMax = d.pXMax + d.pw * pd;\n + ov.append(d.cpwrap);\n + }\n + else {\n + d.cdi = d.cdi - pd;\n + }\n + }\n + ny = d.top + diffy;\n + var pny = ny % 21;\n + if (pny != 0) {\n + ny = ny - pny;\n + }\n + if (d.ny != ny) {\n + //log.info("ny=" + ny);\n + gh = gW(ny, ny + d.h);\n + //log.info("sh=" + gh.sh + ",sm=" + gh.sm);\n + tempdata = buildtempdayevent(gh.sh, gh.sm, gh.eh, gh.em, gh.h, data[1], false, false, data[7]);\n + d.cpwrap.css("top", ny + "px").html(tempdata);\n + }\n + d.ny = ny;\n + }\n + }\n + }\n +\n + break;\n + case 5:\n + var data = d.data;\n + if (data != null && data[8] == 1) {\n + var sy = d.sy;\n + var y = e.pageY;\n + var diffy = y - sy;\n + if (diffy != 0 || d.cpwrap) {\n + var gh, ny, tempdata;\n + if (!d.cpwrap) {\n + gh = { sh: data[2].getHours(),\n + sm: data[2].getMinutes(),\n + eh: data[3].getHours(),\n + em: data[3].getMinutes(),\n + h: d.h\n + };\n + d.target.hide();\n + ny = gP(gh.sh, gh.sm);\n + d.top = ny;\n + tempdata = buildtempdayevent(gh.sh, gh.sm, gh.eh, gh.em, gh.h, data[1], "100%", true, data[7]);\n + var cpwrap = $("<div class=\'ca-evpi drag-chip-wrapper\' style=\'top:" + ny + "px\'/>").html(tempdata);\n + var evid = d.target.parent().attr("id").replace("tgCol", "#tgOver");\n + $(evid).append(cpwrap);\n + d.cpwrap = cpwrap;\n + }\n + else {\n + nh = d.h + diffy;\n + var pnh = nh % 21;\n + nh = pnh > 1 ? nh - pnh + 21 : nh - pnh;\n + if (d.nh != nh) {\n + var sp = gP(data[2].getHours(), data[2].getMinutes());\n + var ep = sp + nh;\n + gh = gW(d.top, d.top + nh);\n + tempdata = buildtempdayevent(gh.sh, gh.sm, gh.eh, gh.em, gh.h, data[1], "100%", true, data[7]);\n + d.cpwrap.html(tempdata);\n + }\n + d.nh = nh;\n + }\n + }\n + }\n + break;\n + case 6:\n + var sx = d.sx;\n + var x = e.pageX;\n + var y = e.pageY;\n + var diffx = x - sx;\n + if (diffx > 5 || diffx < -5 || d.lasso) {\n + if (!d.lasso) {\n + var w1 = d.dp > 1 ? (d.pw - 4) * 1.5 : (d.pw - 4);\n + var cp = d.target.clone();\n + if (d.dp > 1) {\n + cp.find("div.rb-i>span").prepend("(" + d.dp + " " + i18n.xgcalendar.day_plural + ") ");\n + }\n + var cpwrap = $("<div class=\'drag-event st-contents\' style=\'width:" + w1 + "px\'/>").append(cp).appendTo(document.body);\n + d.cpwrap = cpwrap;\n + d.lasso = $("<div style=\'z-index: 10; display: block\' class=\'drag-lasso-container\'/>");\n + $(document.body).append(d.lasso);\n + cp = cpwrap = null;\n + }\n + fixcppostion(d.cpwrap, e, d.xa, d.ya);\n + var ndi = getdi(d.xa, d.ya, x, e.pageY);\n + if (!d.cdi || d.cdi.di != ndi.di) {\n + addlasso(d.lasso, ndi, { x: ndi.x, y: ndi.y, di: ndi.di + d.dp - 1 }, d.xa, d.ya, d.h);\n + }\n + d.cdi = ndi;\n + }\n + break;\n + case 7:\n + var sx = d.sx;\n + var sy = d.sy;\n + var x = e.pageX;\n + var y = e.pageY;\n + var diffx = x - sx;\n + var diffy = y - sy;\n + if (diffx > 5 || diffx < -5 || diffy > 5 || diffy < -5 || d.lasso) {\n + if (!d.lasso) {\n + var w1 = d.dp > 1 ? (d.pw - 4) * 1.5 : (d.pw - 4);\n + var cp = d.target.clone();\n + if (d.dp > 1) {\n + cp.find("div.rb-i>span").prepend("(" + d.dp + " " + i18n.xgcalendar.day_plural + ") ");\n + }\n + var cpwrap = $("<div class=\'drag-event st-contents\' style=\'width:" + w1 + "px\'/>").append(cp).appendTo(document.body);\n + d.cpwrap = cpwrap;\n + d.lasso = $("<div style=\'z-index: 10; display: block\' class=\'drag-lasso-container\'/>");\n + $(document.body).append(d.lasso);\n + cp = cpwrap = null;\n + }\n + fixcppostion(d.cpwrap, e, d.xa, d.ya);\n + var ndi = getdi(d.xa, d.ya, x, e.pageY);\n + if (!d.cdi || d.cdi.di != ndi.di) {\n + addlasso(d.lasso, ndi, { x: ndi.x, y: ndi.y, di: ndi.di + d.dp - 1 }, d.xa, d.ya, d.h);\n + }\n + d.cdi = ndi;\n + }\n + break;\n + }\n + }\n + return false;\n + }\n + function dragEnd(e) {\n + if (_dragdata) {\n + var d = _dragdata;\n + switch (d.type) {\n + case 1: //day view\n + var wrapid = new Date().getTime();\n + tp = d.target.offset().top;\n + if (!d.cpwrap) {\n + var gh = gH(d.sy, d.sy + 42, tp);\n + var ny = gP(gh.sh, gh.sm);\n + var tempdata = buildtempdayevent(gh.sh, gh.sm, gh.eh, gh.em, gh.h);\n + d.cpwrap = $("<div class=\'ca-evpi drag-chip-wrapper\' style=\'top:" + ny + "px\'/>").html(tempdata);\n + $(d.target).find("div.tg-col-overlaywrapper").append(d.cpwrap);\n + d.cgh = gh;\n + }\n + var pos = d.cpwrap.offset();\n + pos.left = pos.left + 30;\n + d.cpwrap.attr("id", wrapid);\n + var start = strtodate(d.target.attr("abbr") + " " + d.cgh.sh + ":" + d.cgh.sm);\n + var end = strtodate(d.target.attr("abbr") + " " + d.cgh.eh + ":" + d.cgh.em);\n + _dragevent = function() { $("#" + wrapid).remove(); $("#bbit-cal-buddle").css("visibility", "hidden"); };\n + quickadd(start, end, false, pos);\n + break;\n + case 2: //week view\n + case 3: //month view \n + var source = e.srcElement || e.target; \n + var lassoid = new Date().getTime();\n + if (!d.lasso) {\n + if ($(source).hasClass("monthdayshow"))\n + {\n + weekormonthtoday.call($(source).parent()[0],e);\n + break;\n + }\n + d.fdi = d.sdi = getdi(d.xa, d.ya, d.sx, d.sy);\n + d.lasso = $("<div style=\'z-index: 10; display: block\' class=\'drag-lasso-container\'/>");\n + $(document.body).append(d.lasso);\n + addlasso(d.lasso, d.sdi, d.fdi, d.xa, d.ya, d.h);\n + }\n + d.lasso.attr("id", lassoid);\n + var si = Math.min(d.fdi.di, d.sdi.di);\n + var ei = Math.max(d.fdi.di, d.sdi.di);\n + var firstday = option.vstart;\n + var start = DateAdd("d", si, firstday);\n + var end = DateAdd("d", ei, firstday);\n + _dragevent = function() { $("#" + lassoid).remove(); };\n + quickadd(start, end, true, { left: e.pageX, top: e.pageY });\n + break;\n + case 4: // event moving\n + if (d.cpwrap) {\n + var start = DateAdd("d", d.cdi, option.vstart);\n + var end = DateAdd("d", d.cdi, option.vstart);\n + var gh = gW(d.ny, d.ny + d.h);\n + start.setHours(gh.sh, gh.sm);\n + end.setHours(gh.eh, gh.em);\n + if (start.getTime() == d.data[2].getTime() && end.getTime() == d.data[3].getTime()) {\n + d.cpwrap.remove();\n + d.target.show();\n + }\n + else {\n + dayupdate(d.data, start, end);\n + }\n + }\n + break;\n + case 5: //Resize\n + if (d.cpwrap) {\n + var start = new Date(d.data[2].toString());\n + var end = new Date(d.data[3].toString());\n + var gh = gW(d.top, d.top + nh);\n + start.setHours(gh.sh, gh.sm);\n + end.setHours(gh.eh, gh.em);\n +\n + if (start.getTime() == d.data[2].getTime() && end.getTime() == d.data[3].getTime()) {\n + d.cpwrap.remove();\n + d.target.show();\n + }\n + else {\n + dayupdate(d.data, start, end);\n + }\n + }\n + break;\n + case 6:\n + case 7:\n + if (d.lasso) {\n + d.cpwrap.remove();\n + d.lasso.remove();\n + var start = new Date(d.data[2].toString());\n + var end = new Date(d.data[3].toString());\n + var currrentdate = DateAdd("d", d.cdi.di, option.vstart);\n + var diff = DateDiff("d", start, currrentdate);\n + start = DateAdd("d", diff, start);\n + end = DateAdd("d", diff, end);\n + if (start.getTime() != d.data[2].getTime() || end.getTime() != d.data[3].getTime()) {\n + dayupdate(d.data, start, end);\n + }\n + }\n + break;\n + }\n + d = _dragdata = null;\n + $(\'body\').noSelect(false);\n + return false;\n + }\n + }\n + function getdi(xa, ya, x, y) {\n + var ty = 0;\n + var tx = 0;\n + var lx = 0;\n + var ly = 0;\n + if (xa && xa.length != 0) {\n + lx = xa.length;\n + if (x >= xa[lx - 1].e) {\n + tx = lx - 1;\n + }\n + else {\n + for (var i = 0; i < lx; i++) {\n + if (x > xa[i].s && x <= xa[i].e) {\n + tx = i;\n + break;\n + }\n + }\n + }\n + }\n + if (ya && ya.length != 0) {\n + ly = ya.length;\n + if (y >= ya[ly - 1].e) {\n + ty = ly - 1;\n + }\n + else {\n + for (var j = 0; j < ly; j++) {\n + if (y > ya[j].s && y <= ya[j].e) {\n + ty = j;\n + break;\n + }\n + }\n + }\n + }\n + return { x: tx, y: ty, di: ty * lx + tx };\n + }\n + function addlasso(lasso, sdi, edi, xa, ya, height) {\n + var diff = sdi.di > edi.di ? sdi.di - edi.di : edi.di - sdi.di;\n + diff++;\n + var sp = sdi.di > edi.di ? edi : sdi;\n + var ep = sdi.di > edi.di ? sdi : edi;\n + var l = xa.length > 0 ? xa.length : 1;\n + var h = ya.length > 0 ? ya.length : 1;\n + var play = [];\n + var width = xa[0].e - xa[0].s; \n + var i = sp.x;\n + var j = sp.y;\n + var max = Math.min(document.documentElement.clientWidth, xa[l - 1].e) - 2;\n +\n + while (j < h && diff > 0) {\n + var left = xa[i].s;\n + var d = i + diff > l ? l - i : diff;\n + var wid = width * d;\n + while (left + wid >= max) {\n + wid--;\n + }\n + play.push(Tp(__LASSOTEMP, { left: left, top: ya[j].s, height: height, width: wid }));\n + i = 0;\n + diff = diff - d;\n + j++;\n + }\n + lasso.html(play.join(""));\n + }\n + function fixcppostion(cpwrap, e, xa, ya) {\n + var x = e.pageX - 6;\n + var y = e.pageY - 4;\n + var w = cpwrap.width();\n + var h = 21;\n + var lmin = xa[0].s + 6;\n + var tmin = ya[0].s + 4;\n + var lmax = xa[xa.length - 1].e - w - 2;\n + var tmax = ya[ya.length - 1].e - h - 2;\n + if (x > lmax) {\n + x = lmax;\n + }\n + if (x <= lmin) {\n + x = lmin + 1;\n + }\n + if (y <= tmin) {\n + y = tmin + 1;\n + }\n + if (y > tmax) {\n + y = tmax;\n + }\n + cpwrap.css({ left: x, top: y });\n + }\n + $(document)\n + .mousemove(dragMove)\n + .mouseup(dragEnd);\n + //.mouseout(dragEnd);\n +\n + var c = {\n + sv: function(view) { //switch view \n + if (view == option.view) {\n + return;\n + }\n + clearcontainer();\n + option.view = view;\n + render();\n + dochange();\n + },\n + rf: function() {\n + populate();\n + },\n + gt: function(d) {\n + if (!d) {\n + d = new Date();\n + }\n + option.showday = d;\n + render();\n + dochange();\n + },\n +\n + pv: function() {\n + switch (option.view) {\n + case "day":\n + option.showday = DateAdd("d", -1, option.showday);\n + break;\n + case "week":\n + option.showday = DateAdd("w", -1, option.showday);\n + break;\n + case "month":\n + option.showday = DateAdd("m", -1, option.showday);\n + break;\n + }\n + render();\n + dochange();\n + },\n + nt: function() { \n + switch (option.view) {\n + case "day":\n + option.showday = DateAdd("d", 1, option.showday);\n + break;\n + case "week":\n + option.showday = DateAdd("w", 1, option.showday);\n + break;\n + case "month":\n + var od = option.showday.getDate();\n + option.showday = DateAdd("m", 1, option.showday);\n + var nd = option.showday.getDate();\n + if(od !=nd) //we go to the next month\n + {\n + option.showday= DateAdd("d", 0-nd, option.showday); //last day of last month\n + }\n + break;\n + }\n + render();\n + dochange();\n + },\n + go: function() {\n + return option;\n + },\n + so: function(p) {\n + option = $.extend(option, p);\n + }\n + };\n + this[0].bcal = c;\n + return this;\n + };\n + \n + /**\n + * @description {Method} swtichView To switch to another view.\n + * @param {String} view View name, one of \'day\', \'week\', \'month\'. \n + */\n + $.fn.swtichView = function(view) {\n + return this.each(function() {\n + if (this.bcal) {\n + this.bcal.sv(view);\n + }\n + })\n + };\n + \n + /**\n + * @description {Method} reload To reload event of current time range.\n + */\n + $.fn.reload = function() {\n + return this.each(function() {\n + if (this.bcal) {\n + this.bcal.rf();\n + }\n + })\n + };\n + \n + /**\n + * @description {Method} gotoDate To go to a range containing date.\n + * If view is week, it will go to a week containing date. \n + * If view is month, it will got to a month containing date. \n + * @param {Date} date. Date to go. \n + */\n + $.fn.gotoDate = function(d) {\n + return this.each(function() {\n + if (this.bcal) {\n + this.bcal.gt(d);\n + }\n + })\n + };\n + \n + /**\n + * @description {Method} previousRange To go to previous date range.\n + * If view is week, it will go to previous week. \n + * If view is month, it will got to previous month. \n + */\n + $.fn.previousRange = function() {\n + return this.each(function() {\n + if (this.bcal) {\n + this.bcal.pv();\n + }\n + })\n + };\n + \n + /**\n + * @description {Method} nextRange To go to next date range.\n + * If view is week, it will go to next week. \n + * If view is month, it will got to next month. \n + */\n + $.fn.nextRange = function() {\n + return this.each(function() {\n + if (this.bcal) {\n + this.bcal.nt();\n + }\n + })\n + };\n + \n + \n + $.fn.BcalGetOp = function() {\n + if (this[0].bcal) {\n + return this[0].bcal.go();\n + }\n + return null;\n + };\n + \n + \n + $.fn.BcalSetOp = function(p) {\n + if (this[0].bcal) {\n + return this[0].bcal.so(p);\n + }\n + };\n + \n +})(jQuery);\n + + +]]></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>jquery.calendar.js</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_jquery_plugin_wdcalendar/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/wdcalendar/jquery.datepicker.js.xml b/bt5/erp5_jquery_plugin_wdcalendar/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/wdcalendar/jquery.datepicker.js.xml deleted file mode 100644 index 99da53278d..0000000000 --- a/bt5/erp5_jquery_plugin_wdcalendar/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/wdcalendar/jquery.datepicker.js.xml +++ /dev/null @@ -1,625 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="File" module="OFS.Image"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>_Cacheable__manager_id</string> </key> - <value> <string>http_cache</string> </value> - </item> - <item> - <key> <string>_EtagSupport__etag</string> </key> - <value> <string>ts95975364.59</string> </value> - </item> - <item> - <key> <string>__name__</string> </key> - <value> <string>jquery.datepicker.js</string> </value> - </item> - <item> - <key> <string>content_type</string> </key> - <value> <string>application/javascript</string> </value> - </item> - <item> - <key> <string>data</string> </key> - <value> <string encoding="cdata"><![CDATA[ - -; (function($) {\n - if (!dateFormat || typeof (dateFormat) != "function") {\n - var dateFormat = function(format) {\n - var o = {\n - "M+": this.getMonth() + 1,\n - "d+": this.getDate(),\n - "h+": this.getHours(),\n - "H+": this.getHours(),\n - "m+": this.getMinutes(),\n - "s+": this.getSeconds(),\n - "q+": Math.floor((this.getMonth() + 3) / 3),\n - "w": "0123456".indexOf(this.getDay()),\n - "S": this.getMilliseconds()\n - };\n - if (/(y+)/.test(format)) {\n - format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));\n - }\n - for (var k in o) {\n - if (new RegExp("(" + k + ")").test(format))\n - format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));\n - }\n - return format;\n - };\n - }\n - if (!DateAdd || typeof (DateDiff) != "function") {\n - var DateAdd = function(interval, number, idate) {\n - number = parseInt(number);\n - var date;\n - if (typeof (idate) == "string") {\n - date = idate.split(/\\D/);\n - eval("var date = new Date(" + date.join(",") + ")");\n - }\n - if (typeof (idate) == "object") {\n - date = new Date(idate.toString());\n - }\n - switch (interval) {\n - case "y": date.setFullYear(date.getFullYear() + number); break;\n - case "m": date.setMonth(date.getMonth() + number); break;\n - case "d": date.setDate(date.getDate() + number); break;\n - case "w": date.setDate(date.getDate() + 7 * number); break;\n - case "h": date.setHours(date.getHours() + number); break;\n - case "n": date.setMinutes(date.getMinutes() + number); break;\n - case "s": date.setSeconds(date.getSeconds() + number); break;\n - case "l": date.setMilliseconds(date.getMilliseconds() + number); break;\n - }\n - return date;\n - }\n - }\n - if (!DateDiff || typeof (DateDiff) != "function") {\n - var DateDiff = function(interval, d1, d2) {\n - switch (interval) {\n - case "d": //date\n - case "w":\n - d1 = new Date(d1.getFullYear(), d1.getMonth(), d1.getDate());\n - d2 = new Date(d2.getFullYear(), d2.getMonth(), d2.getDate());\n - break; //w\n - case "h":\n - d1 = new Date(d1.getFullYear(), d1.getMonth(), d1.getDate(), d1.getHours());\n - d2 = new Date(d2.getFullYear(), d2.getMonth(), d2.getDate(), d2.getHours());\n - break; //h\n - case "n":\n - d1 = new Date(d1.getFullYear(), d1.getMonth(), d1.getDate(), d1.getHours(), d1.getMinutes());\n - d2 = new Date(d2.getFullYear(), d2.getMonth(), d2.getDate(), d2.getHours(), d2.getMinutes());\n - break;\n - case "s":\n - d1 = new Date(d1.getFullYear(), d1.getMonth(), d1.getDate(), d1.getHours(), d1.getMinutes(), d1.getSeconds());\n - d2 = new Date(d2.getFullYear(), d2.getMonth(), d2.getDate(), d2.getHours(), d2.getMinutes(), d2.getSeconds());\n - break;\n - }\n - var t1 = d1.getTime(), t2 = d2.getTime();\n - var diff = NaN;\n - switch (interval) {\n - case "y": diff = d2.getFullYear() - d1.getFullYear(); break; //y\n - case "m": diff = (d2.getFullYear() - d1.getFullYear()) * 12 + d2.getMonth() - d1.getMonth(); break; //m\n - case "d": diff = Math.floor(t2 / 86400000) - Math.floor(t1 / 86400000); break;\n - case "w": diff = Math.floor((t2 + 345600000) / (604800000)) - Math.floor((t1 + 345600000) / (604800000)); break; //w\n - case "h": diff = Math.floor(t2 / 3600000) - Math.floor(t1 / 3600000); break; //h\n - case "n": diff = Math.floor(t2 / 60000) - Math.floor(t1 / 60000); break; //\n - case "s": diff = Math.floor(t2 / 1000) - Math.floor(t1 / 1000); break; //s\n - case "l": diff = t2 - t1; break;\n - }\n - return diff;\n -\n - }\n - }\n - var userAgent = window.navigator.userAgent.toLowerCase();\n - $.browser.msie8 = $.browser.msie && /msie 8\\.0/i.test(userAgent);\n - $.browser.msie7 = $.browser.msie && /msie 7\\.0/i.test(userAgent);\n - $.browser.msie6 = !$.browser.msie8 && !$.browser.msie7 && $.browser.msie && /msie 6\\.0/i.test(userAgent);\n - if ($.fn.noSelect == undefined) {\n - $.fn.noSelect = function(p) { //no select plugin by me :-)\n - if (p == null)\n - prevent = true;\n - else\n - prevent = p;\n - if (prevent) {\n - return this.each(function() {\n - if ($.browser.msie || $.browser.safari) $(this).bind(\'selectstart\', function() { return false; });\n - else if ($.browser.mozilla) {\n - $(this).css(\'MozUserSelect\', \'none\');\n - $(\'body\').trigger(\'focus\');\n - }\n - else if ($.browser.opera) $(this).bind(\'mousedown\', function() { return false; });\n - else $(this).attr(\'unselectable\', \'on\');\n - });\n -\n - } else {\n - return this.each(function() {\n - if ($.browser.msie || $.browser.safari) $(this).unbind(\'selectstart\');\n - else if ($.browser.mozilla) $(this).css(\'MozUserSelect\', \'inherit\');\n - else if ($.browser.opera) $(this).unbind(\'mousedown\');\n - else $(this).removeAttr(\'unselectable\', \'on\');\n - });\n -\n - }\n - }; //end noSelect\n - };\n - $.fn.datepicker = function(o) {\n - var def = {\n - weekStart: 0,\n - weekName: [i18n.datepicker.dateformat.sun, i18n.datepicker.dateformat.mon, i18n.datepicker.dateformat.tue, i18n.datepicker.dateformat.wed, i18n.datepicker.dateformat.thu, i18n.datepicker.dateformat.fri, i18n.datepicker.dateformat.sat], //week language support\n - monthName: [i18n.datepicker.dateformat.jan, i18n.datepicker.dateformat.feb, i18n.datepicker.dateformat.mar, i18n.datepicker.dateformat.apr, i18n.datepicker.dateformat.may, i18n.datepicker.dateformat.jun, i18n.datepicker.dateformat.jul, i18n.datepicker.dateformat.aug, i18n.datepicker.dateformat.sep, i18n.datepicker.dateformat.oct, i18n.datepicker.dateformat.nov, i18n.datepicker.dateformat.dec],\n - monthp: i18n.datepicker.dateformat.postfix,\n - Year: new Date().getFullYear(), //default year\n - Month: new Date().getMonth() + 1, //default month\n - Day: new Date().getDate(), //default date\n - today: new Date(),\n - btnOk: i18n.datepicker.ok,\n - btnCancel: i18n.datepicker.cancel,\n - btnToday: i18n.datepicker.today,\n - inputDate: null,\n - onReturn: false,\n - version: "1.1",\n - applyrule: false, //function(){};return rule={startdate,endate};\n - showtarget: null,\n - picker: ""\n - };\n - $.extend(def, o);\n - var cp = $("#BBIT_DP_CONTAINER");\n - if (cp.length == 0) {\n - var cpHA = [];\n - cpHA.push("<div id=\'BBIT_DP_CONTAINER\' class=\'bbit-dp\' style=\'width:175px;z-index:999;\'>");\n - if ($.browser.msie6) {\n - cpHA.push(\'<iframe style="position:absolute;z-index:-1;width:100%;height:205px;top:0;left:0;scrolling:no;" frameborder="0" src="about:blank"></iframe>\');\n - }\n - cpHA.push("<table class=\'dp-maintable\' cellspacing=\'0\' cellpadding=\'0\' style=\'width:175px;\'><tbody><tr><td>");\n - //caption bar goes here\n - cpHA.push("<table class=\'bbit-dp-top\' cellspacing=\'0\'><tr><td class=\'bbit-dp-top-left\'> <a id=\'BBIT_DP_LEFTBTN\' href=\'javascript:void(0);\' title=\'", i18n.datepicker.prev_month_title, "\'> </a></td><td class=\'bbit-dp-top-center\' align=\'center\'><em><button id=\'BBIT_DP_YMBTN\'></button></em></td><td class=\'bbit-dp-top-right\'><a id=\'BBIT_DP_RIGHTBTN\' href=\'javascript:void(0);\' title=\'", i18n.datepicker.next_month_title, "\'> </a></td></tr></table>");\n - cpHA.push("</td></tr>");\n - cpHA.push("<tr><td>");\n - //week \n - cpHA.push("<table id=\'BBIT_DP_INNER\' class=\'bbit-dp-inner\' cellspacing=\'0\'><thead><tr>");\n - //calculat for week\n - for (var i = def.weekStart, j = 0; j < 7; j++) {\n - cpHA.push("<th><span>", def.weekName[i], "</span></th>");\n - if (i == 6) { i = 0; } else { i++; }\n - }\n - cpHA.push("</tr></thead>");\n - //to generat tBody, everything need to rebuilt\n - cpHA.push("<tbody></tbody></table>");\n - //end tbody\n - cpHA.push("</td></tr>");\n - cpHA.push("<tr><td class=\'bbit-dp-bottom\' align=\'center\'><button id=\'BBIT-DP-TODAY\'>", def.btnToday, "</button></td></tr>");\n - cpHA.push("</tbody></table>");\n - //for drop down to select year & month\n - cpHA.push("<div id=\'BBIT-DP-MP\' class=\'bbit-dp-mp\' style=\'z-index:auto;\'><table id=\'BBIT-DP-T\' style=\'width: 175px; height: 193px\' border=\'0\' cellspacing=\'0\'><tbody>");\n - cpHA.push("<tr>");\n - //tow buttons for Jan & Jul\n - cpHA.push("<td class=\'bbit-dp-mp-month\' xmonth=\'0\'><a href=\'javascript:void(0);\'>", def.monthName[0], "</a></td><td class=\'bbit-dp-mp-month bbit-dp-mp-sep\' xmonth=\'6\'><a href=\'javascript:void(0);\'>", def.monthName[6], "</a></td><td class=\'bbit-dp-mp-ybtn\' align=\'middle\'><a id=\'BBIT-DP-MP-PREV\' class=\'bbit-dp-mp-prev\'></a></td><td class=\'bbit-dp-mp-ybtn\' align=\'middle\'><a id=\'BBIT-DP-MP-NEXT\' class=\'bbit-dp-mp-next\'></a></td>");\n - cpHA.push("</tr>");\n - cpHA.push("<tr>");\n - cpHA.push("<td class=\'bbit-dp-mp-month\' xmonth=\'1\'><a href=\'javascript:void(0);\'>", def.monthName[1], "</a></td><td class=\'bbit-dp-mp-month bbit-dp-mp-sep\' xmonth=\'7\'><a href=\'javascript:void(0);\'>", def.monthName[7], "</a></td><td class=\'bbit-dp-mp-year\'><a href=\'javascript:void(0);\'></a></td><td class=\'bbit-dp-mp-year\'><a href=\'javascript:void(0);\'></a></td>");\n - cpHA.push("</tr>");\n - cpHA.push("<tr>");\n - cpHA.push("<td class=\'bbit-dp-mp-month\' xmonth=\'2\'><a href=\'javascript:void(0);\'>", def.monthName[2], "</a></td><td class=\'bbit-dp-mp-month bbit-dp-mp-sep\' xmonth=\'8\'><a href=\'javascript:void(0);\'>", def.monthName[8], "</a></td><td class=\'bbit-dp-mp-year\'><a href=\'javascript:void(0);\'></a></td><td class=\'bbit-dp-mp-year\'><a href=\'javascript:void(0);\'></a></td>");\n - cpHA.push("</tr>");\n - cpHA.push("<tr>");\n - cpHA.push("<td class=\'bbit-dp-mp-month\' xmonth=\'3\'><a href=\'javascript:void(0);\'>", def.monthName[3], "</a></td><td class=\'bbit-dp-mp-month bbit-dp-mp-sep\' xmonth=\'9\'><a href=\'javascript:void(0);\'>", def.monthName[9], "</a></td><td class=\'bbit-dp-mp-year\'><a href=\'javascript:void(0);\'></a></td><td class=\'bbit-dp-mp-year\'><a href=\'javascript:void(0);\'></a></td>");\n - cpHA.push("</tr>");\n -\n - cpHA.push("<tr>");\n - cpHA.push("<td class=\'bbit-dp-mp-month\' xmonth=\'4\'><a href=\'javascript:void(0);\'>", def.monthName[4], "</a></td><td class=\'bbit-dp-mp-month bbit-dp-mp-sep\' xmonth=\'10\'><a href=\'javascript:void(0);\'>", def.monthName[10], "</a></td><td class=\'bbit-dp-mp-year\'><a href=\'javascript:void(0);\'></a></td><td class=\'bbit-dp-mp-year\'><a href=\'javascript:void(0);\'></a></td>");\n - cpHA.push("</tr>");\n -\n - cpHA.push("<tr>");\n - cpHA.push("<td class=\'bbit-dp-mp-month\' xmonth=\'5\'><a href=\'javascript:void(0);\'>", def.monthName[5], "</a></td><td class=\'bbit-dp-mp-month bbit-dp-mp-sep\' xmonth=\'11\'><a href=\'javascript:void(0);\'>", def.monthName[11], "</a></td><td class=\'bbit-dp-mp-year\'><a href=\'javascript:void(0);\'></a></td><td class=\'bbit-dp-mp-year\'><a href=\'javascript:void(0);\'></a></td>");\n - cpHA.push("</tr>");\n - cpHA.push("<tr class=\'bbit-dp-mp-btns\'>");\n - cpHA.push("<td colspan=\'4\'><button id=\'BBIT-DP-MP-OKBTN\' class=\'bbit-dp-mp-ok\'>", def.btnOk, "</button><button id=\'BBIT-DP-MP-CANCELBTN\' class=\'bbit-dp-mp-cancel\'>", def.btnCancel, "</button></td>");\n - cpHA.push("</tr>");\n -\n - cpHA.push("</tbody></table>");\n - cpHA.push("</div>");\n - cpHA.push("</div>");\n -\n - var s = cpHA.join("");\n - $(document.body).append(s);\n - cp = $("#BBIT_DP_CONTAINER");\n -\n - initevents();\n - }\n - function initevents() {\n - //1 today btn;\n - $("#BBIT-DP-TODAY").click(returntoday);\n - cp.click(returnfalse);\n - $("#BBIT_DP_INNER tbody").click(tbhandler);\n - $("#BBIT_DP_LEFTBTN").click(prevm);\n - $("#BBIT_DP_RIGHTBTN").click(nextm);\n - $("#BBIT_DP_YMBTN").click(showym);\n - $("#BBIT-DP-MP").click(mpclick).dblclick(mpdblclick);\n -\n - $("#BBIT-DP-MP-PREV").click(mpprevy);\n - $("#BBIT-DP-MP-NEXT").click(mpnexty);\n - $("#BBIT-DP-MP-OKBTN").click(mpok);\n - $("#BBIT-DP-MP-CANCELBTN").click(mpcancel);\n - }\n - function mpcancel() {\n - $("#BBIT-DP-MP").animate({ top: -193 }, { duration: 200, complete: function() { $("#BBIT-DP-MP").hide(); } });\n - return false;\n - }\n - function mpok() {\n - def.Year = def.cy;\n - def.Month = def.cm + 1;\n - def.Day = 1;\n - $("#BBIT-DP-MP").animate({ top: -193 }, { duration: 200, complete: function() { $("#BBIT-DP-MP").hide(); } });\n - writecb();\n - return false;\n - }\n - function mpprevy() {\n - var y = def.ty - 10\n - def.ty = y;\n - rryear(y);\n - return false;\n - }\n - function mpnexty() {\n - var y = def.ty + 10\n - def.ty = y;\n - rryear(y);\n - return false;\n - }\n - function rryear(y) {\n - var s = y - 4;\n - var ar = [];\n - for (var i = 0; i < 5; i++) {\n - ar.push(s + i);\n - ar.push(s + i + 5);\n - }\n - $("#BBIT-DP-MP td.bbit-dp-mp-year").each(function(i) {\n - if (def.Year == ar[i]) {\n - $(this).addClass("bbit-dp-mp-sel");\n - }\n - else {\n - $(this).removeClass("bbit-dp-mp-sel");\n - }\n - $(this).html("<a href=\'javascript:void(0);\'>" + ar[i] + "</a>").attr("xyear", ar[i]);\n - });\n - }\n - function mpdblclick(e) {\n - var et = e.target || e.srcElement;\n - var td = getTd(et);\n - if (td == null) {\n - return false;\n - }\n - if ($(td).hasClass("bbit-dp-mp-month") || $(td).hasClass("bbit-dp-mp-year")) {\n - mpok(e);\n - }\n - return false;\n - }\n - function mpclick(e) {\n - var panel = $(this);\n - var et = e.target || e.srcElement;\n - var td = getTd(et);\n - if (td == null) {\n - return false;\n - }\n - if ($(td).hasClass("bbit-dp-mp-month")) {\n - if (!$(td).hasClass("bbit-dp-mp-sel")) {\n - var ctd = panel.find("td.bbit-dp-mp-month.bbit-dp-mp-sel");\n - if (ctd.length > 0) {\n - ctd.removeClass("bbit-dp-mp-sel");\n - }\n - $(td).addClass("bbit-dp-mp-sel")\n - def.cm = parseInt($(td).attr("xmonth"));\n - }\n - }\n - if ($(td).hasClass("bbit-dp-mp-year")) {\n - if (!$(td).hasClass("bbit-dp-mp-sel")) {\n - var ctd = panel.find("td.bbit-dp-mp-year.bbit-dp-mp-sel");\n - if (ctd.length > 0) {\n - ctd.removeClass("bbit-dp-mp-sel");\n - }\n - $(td).addClass("bbit-dp-mp-sel")\n - def.cy = parseInt($(td).attr("xyear"));\n - }\n - }\n - return false;\n - }\n - function showym() {\n - var mp = $("#BBIT-DP-MP");\n - var y = def.Year;\n - def.cy = def.ty = y;\n - var m = def.Month - 1;\n - def.cm = m;\n - var ms = $("#BBIT-DP-MP td.bbit-dp-mp-month");\n - for (var i = ms.length - 1; i >= 0; i--) {\n - var ch = $(ms[i]).attr("xmonth");\n - if (ch == m) {\n - $(ms[i]).addClass("bbit-dp-mp-sel");\n - }\n - else {\n - $(ms[i]).removeClass("bbit-dp-mp-sel");\n - }\n - }\n - rryear(y);\n - mp.css("top", -193).show().animate({ top: 0 }, { duration: 200 });\n - }\n - function getTd(elm) {\n - if (elm.tagName.toUpperCase() == "TD") {\n - return elm;\n - }\n - else if (elm.tagName.toUpperCase() == "BODY") {\n - return null;\n - }\n - else {\n - var p = $(elm).parent();\n - if (p.length > 0) {\n - if (p[0].tagName.toUpperCase() != "TD") {\n - return getTd(p[0]);\n - }\n - else {\n - return p[0];\n - }\n - }\n - }\n - return null;\n - }\n - function tbhandler(e) {\n - var et = e.target || e.srcElement;\n - var td = getTd(et);\n - if (td == null) {\n - return false;\n - }\n - var $td = $(td);\n - if (!$(td).hasClass("bbit-dp-disabled")) {\n - var s = $td.attr("xdate"); \n - cp.data("indata",stringtodate(s));\n - returndate();\n - }\n - return false;\n - }\n - function returnfalse() {\n - return false;\n - }\n -\n - function stringtodate(datestr) {\n - try\n - {\n - var arrs = datestr.split(i18n.datepicker.dateformat.separator);\n - var year = parseInt(arrs[i18n.datepicker.dateformat.year_index]);\n - var month = parseInt(arrs[i18n.datepicker.dateformat.month_index]) - 1;\n - var day = parseInt(arrs[i18n.datepicker.dateformat.day_index]);\n - return new Date(year, month, day);\n - }\n - catch(e)\n - {\n - return null;\n - }\n - }\n - function prevm() {\n - if (def.Month == 1) {\n - def.Year--;\n - def.Month = 12;\n - }\n - else {\n - def.Month--\n - }\n - writecb();\n - return false;\n - }\n - function nextm() {\n - if (def.Month == 12) {\n - def.Year++;\n - def.Month = 1;\n - }\n - else {\n - def.Month++\n - }\n - writecb();\n - return false;\n - }\n - function returntoday() {\n - cp.data("indata", new Date());\n - returndate();\n - }\n - function returndate() {\n - var ct = cp.data("ctarget");\n - var ck = cp.data("cpk");\n - var re = cp.data("onReturn");\n - var ndate = cp.data("indata")\n - var ads = cp.data("ads");\n - var ade = cp.data("ade");\n - var dis = false;\n - if (ads && ndate < ads) {\n - dis = true;\n - }\n - if (ade && ndate > ade) {\n - dis = true;\n - }\n - if (dis) {\n - return;\n - }\n - if (re && jQuery.isFunction(re)) {\n - re.call(ct[0], cp.data("indata"));\n - }\n - else {\n - ct.val(dateFormat.call(cp.data("indata"), i18n.datepicker.dateformat.fulldayvalue));\n - }\n - ck.attr("isshow", "0");\n - cp.removeData("ctarget").removeData("cpk").removeData("indata").removeData("onReturn")\n - .removeData("ads").removeData("ade");\n - cp.css("visibility", "hidden");\n - ct = ck = null;\n - }\n - function writecb() {\n - var tb = $("#BBIT_DP_INNER tbody");\n - $("#BBIT_DP_YMBTN").html(def.monthName[def.Month - 1] + def.monthp + " " + def.Year);\n - var firstdate = new Date(def.Year, def.Month - 1, 1);\n -\n - var diffday = def.weekStart - firstdate.getDay();\n - var showmonth = def.Month - 1;\n - if (diffday > 0) {\n - diffday -= 7;\n - }\n - var startdate = DateAdd("d", diffday, firstdate);\n - var enddate = DateAdd("d", 42, startdate);\n - var ads = cp.data("ads");\n - var ade = cp.data("ade");\n - var bhm = [];\n - var tds = dateFormat.call(def.today, i18n.datepicker.dateformat.fulldayvalue);\n - var indata = cp.data("indata");\n - var ins = indata != null ? dateFormat.call(indata, i18n.datepicker.dateformat.fulldayvalue) : "";\n - for (var i = 1; i <= 42; i++) {\n - if (i % 7 == 1) {\n - bhm.push("<tr>");\n - }\n - var ndate = DateAdd("d", i - 1, startdate);\n - var tdc = [];\n - var dis = false;\n - if (ads && ndate < ads) {\n - dis = true;\n - }\n - if (ade && ndate > ade) {\n - dis = true;\n - }\n - if (ndate.getMonth() < showmonth) {\n - tdc.push("bbit-dp-prevday");\n - }\n - else if (ndate.getMonth() > showmonth) {\n - tdc.push("bbit-dp-nextday");\n - }\n -\n - if (dis) {\n - tdc.push("bbit-dp-disabled");\n - }\n - else {\n - tdc.push("bbit-dp-active");\n - }\n -\n - var s = dateFormat.call(ndate, i18n.datepicker.dateformat.fulldayvalue);\n - if (s == tds) {\n - tdc.push("bbit-dp-today");\n - }\n - if (s == ins) {\n - tdc.push("bbit-dp-selected");\n - }\n -\n - bhm.push("<td class=\'", tdc.join(" "), "\' title=\'", dateFormat.call(ndate, i18n.datepicker.dateformat.fulldayvalue), "\' xdate=\'", dateFormat.call(ndate, i18n.datepicker.dateformat.fulldayvalue), "\'><a href=\'javascript:void(0);\'><em><span>", ndate.getDate(), "</span></em></a></td>");\n - if (i % 7 == 0) {\n - bhm.push("</tr>");\n - }\n - }\n - tb.html(bhm.join(""));\n - }\n - \n - return $(this).each(function() {\n - var obj = $(this).addClass("bbit-dp-input");\n - var picker = $(def.picker);\n - def.showtarget == null && obj.after(picker);\n - picker.click(function(e) {\n - var isshow = $(this).attr("isshow");\n - //hide it initially\n - var me = $(this);\n -\n - if (cp.css("visibility") == "visible") {\n - cp.css(" visibility", "hidden");\n - }\n - if (isshow == "1") {\n - me.attr("isshow", "0");\n - cp.removeData("ctarget").removeData("cpk").removeData("indata").removeData("onReturn");\n - return false;\n - }\n - var v = obj.val();\n - if (v != "") {\n - v = stringtodate(v);\n - }\n - if (v == null || v == "") {\n - def.Year = new Date().getFullYear();\n - def.Month = new Date().getMonth() + 1;\n - def.Day = new Date().getDate();\n - def.inputDate = null\n - }\n - else {\n - def.Year = v.getFullYear();\n - def.Month =v.getMonth() + 1;\n - def.Day = v.getDate();\n - def.inputDate = v;\n - }\n - cp.data("ctarget", obj).data("cpk", me).data("indata", def.inputDate).data("onReturn", def.onReturn);\n - if (def.applyrule && $.isFunction(def.applyrule)) {\n - var rule = def.applyrule.call(obj, obj[0].id);\n - if (rule) {\n - if (rule.startdate) {\n - cp.data("ads", rule.startdate);\n - }\n - else {\n - cp.removeData("ads");\n - }\n - if (rule.enddate) {\n - cp.data("ade", rule.enddate);\n - }\n - else {\n - cp.removeData("ade");\n - }\n - }\n - }\n - else {\n - cp.removeData("ads").removeData("ade")\n - }\n - writecb();\n -\n -\n - $("#BBIT-DP-T").height(cp.height());\n - var t = def.showtarget || obj;\n - var pos = t.offset();\n - var height = t.outerHeight();\n - var newpos = { left: pos.left, top: pos.top + height };\n - var w = cp.width();\n - var h = cp.height();\n - var bw = document.documentElement.clientWidth;\n - var bh = document.documentElement.clientHeight;\n - if ((newpos.left + w) >= bw) {\n - newpos.left = bw - w - 2;\n - }\n - if ((newpos.top + h) >= bh) {\n - newpos.top = pos.top - h - 2;\n - }\n - if (newpos.left < 0) {\n - newpos.left = 10;\n - }\n - if (newpos.top < 0) {\n - newpos.top = 10;\n - }\n - $("#BBIT-DP-MP").hide();\n - newpos.visibility = "visible";\n - cp.css(newpos);\n - $(this).attr("isshow", "1");\n -\n - $(document).one("click", function(e) {\n - me.attr("isshow", "0");\n - cp.removeData("ctarget").removeData("cpk").removeData("indata");\n - cp.css("visibility", "hidden");\n - });\n -\n - return false;\n - });\n - });\n - };\n -})(jQuery); - -]]></string> </value> - </item> - <item> - <key> <string>precondition</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>size</string> </key> - <value> <int>26427</int> </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>jquery.datepicker.js</string> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_jquery_plugin_wdcalendar/bt/revision b/bt5/erp5_jquery_plugin_wdcalendar/bt/revision index 301160a930..f11c82a4cb 100644 --- a/bt5/erp5_jquery_plugin_wdcalendar/bt/revision +++ b/bt5/erp5_jquery_plugin_wdcalendar/bt/revision @@ -1 +1 @@ -8 \ No newline at end of file +9 \ No newline at end of file -- 2.30.9