PageSourceSearch

https://www.zjhzu.edu.cn/_js/_portletPlugs/datepicker/js/jquery.datepicker.js

js zjhzu.edu.cn collected 2026-10-02 16:32:08 UTC 27,046 bytes, 585 lines download raw bytes

1; (function($) {
2    if (!dateFormat || typeof (dateFormat) != "function") {
3        var dateFormat = function(format) {
4            var o = {
5                "M+": this.getMonth() + 1,
6                "d+": this.getDate(),
7                "h+": this.getHours(),
8                "H+": this.getHours(),
9                "m+": this.getMinutes(),
10                "s+": this.getSeconds(),
11                "q+": Math.floor((this.getMonth() + 3) / 3),
12                "w": "0123456".indexOf(this.getDay()),
13                "S": this.getMilliseconds()
14            };
15            if (/(y+)/.test(format)) {
16                format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
17            }
18            for (var k in o) {
19                if (new RegExp("(" + k + ")").test(format))
20                    format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
21            }
22            return format;
23        };
24    }
25    if (!DateAdd || typeof (DateDiff) != "function") {
26        var DateAdd = function(interval, number, idate) {
27            number = parseInt(number);
28            var date;
29            if (typeof (idate) == "string") {
30                date = idate.split(/\D/);
31                eval("var date = new Date(" + date.join(",") + ")");
32            }
33            if (typeof (idate) == "object") {
34                date = new Date(idate.toString());
35            }
36            switch (interval) {
37                case "y": date.setFullYear(date.getFullYear() + number); break;
38                case "m": date.setMonth(date.getMonth() + number); break;
39                case "d": date.setDate(date.getDate() + number); break;
40                case "w": date.setDate(date.getDate() + 7 * number); break;
41                case "h": date.setHours(date.getHours() + number); break;
42                case "n": date.setMinutes(date.getMinutes() + number); break;
43                case "s": date.setSeconds(date.getSeconds() + number); break;
44                case "l": date.setMilliseconds(date.getMilliseconds() + number); break;
45            }
46            return date;
47        }
48    }
49    if (!DateDiff || typeof (DateDiff) != "function") {
50        var DateDiff = function(interval, d1, d2) {
51            switch (interval) {
52                case "d": //date
53                case "w":
54                    d1 = new Date(d1.getFullYear(), d1.getMonth(), d1.getDate());
55                    d2 = new Date(d2.getFullYear(), d2.getMonth(), d2.getDate());
56                    break;  //w
57                case "h":
58                    d1 = new Date(d1.getFullYear(), d1.getMonth(), d1.getDate(), d1.getHours());
59                    d2 = new Date(d2.getFullYear(), d2.getMonth(), d2.getDate(), d2.getHours());
60                    break; //h
61                case "n":
62                    d1 = new Date(d1.getFullYear(), d1.getMonth(), d1.getDate(), d1.getHours(), d1.getMinutes());
63                    d2 = new Date(d2.getFullYear(), d2.getMonth(), d2.getDate(), d2.getHours(), d2.getMinutes());
64                    break;
65                case "s":
66                    d1 = new Date(d1.getFullYear(), d1.getMonth(), d1.getDate(), d1.getHours(), d1.getMinutes(), d1.getSeconds());
67                    d2 = new Date(d2.getFullYear(), d2.getMonth(), d2.getDate(), d2.getHours(), d2.getMinutes(), d2.getSeconds());
68                    break;
69            }
70            var t1 = d1.getTime(), t2 = d2.getTime();
71            var diff = NaN;
72            switch (interval) {
73                case "y": diff = d2.getFullYear() - d1.getFullYear(); break; //y
74                case "m": diff = (d2.getFullYear() - d1.getFullYear()) * 12 + d2.getMonth() - d1.getMonth(); break;    //m
75                case "d": diff = Math.floor(t2 / 86400000) - Math.floor(t1 / 86400000); break;
76                case "w": diff = Math.floor((t2 + 345600000) / (604800000)) - Math.floor((t1 + 345600000) / (604800000)); break; //w
77                case "h": diff = Math.floor(t2 / 3600000) - Math.floor(t1 / 3600000); break; //h
78                case "n": diff = Math.floor(t2 / 60000) - Math.floor(t1 / 60000); break; //
79                case "s": diff = Math.floor(t2 / 1000) - Math.floor(t1 / 1000); break; //s
80                case "l": diff = t2 - t1; break;
81            }
82            return diff;
83
84        }
85    }
86    var userAgent = window.navigator.userAgent.toLowerCase();
87    $.browser.msie8 = $.browser.msie && /msie 8\.0/i.test(userAgent);
88    $.browser.msie7 = $.browser.msie && /msie 7\.0/i.test(userAgent);
89    $.browser.msie6 = !$.browser.msie8 && !$.browser.msie7 && $.browser.msie && /msie 6\.0/i.test(userAgent);
90    if ($.fn.noSelect == undefined) {
91        $.fn.noSelect = function(p) { //no select plugin by me :-)
92            if (p == null)
93                prevent = true;
94            else
95                prevent = p;
96            if (prevent) {
97                return this.each(function() {
98                    if ($.browser.msie || $.browser.safari) $(this).bind('selectstart', function() { return false; });
99                    else if ($.browser.mozilla) {
100                        $(this).css('MozUserSelect', 'none');
101                        $('body').trigger('focus');
102                    }
103                    else if ($.browser.opera) $(this).bind('mousedown', function() { return false; });
104                    else $(this).attr('unselectable', 'on');
105                });
106
107            } else {
108                return this.each(function() {
109                    if ($.browser.msie || $.browser.safari) $(this).unbind('selectstart');
110                    else if ($.browser.mozilla) $(this).css('MozUserSelect', 'inherit');
111                    else if ($.browser.opera) $(this).unbind('mousedown');
112                    else $(this).removeAttr('unselectable', 'on');
113                });
114
115            }
116        }; //end noSelect
117    };
118    $.fn.datepicker = function(o) {
119        var def = {
120            weekStart: 0,
121            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
122            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],
123            monthp: i18n.datepicker.dateformat.postfix,
124            Year: new Date().getFullYear(), //default year
125            Month: new Date().getMonth() + 1, //default month
126            Day: new Date().getDate(), //default date
127            today: new Date(),
128            btnOk: i18n.datepicker.ok,
129            btnCancel: i18n.datepicker.cancel,
130            btnToday: i18n.datepicker.today,
131            inputDate: null,
132            onReturn: false,
133            version: "1.1",
134            applyrule: false, //function(){};return rule={startdate,endate};
135            showtarget: null,
136            picker: ""
137        };
138        $.extend(def, o);
139        var cp = $("#BBIT_DP_CONTAINER");
140        if (cp.length == 0) {
141            var cpHA = [];
142            cpHA.push("<div id='BBIT_DP_CONTAINER' class='bbit-dp' style='width:175px;z-index:999;'>");
143            if ($.browser.msie6) {
144                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>');
145            }
146            cpHA.push("<table class='dp-maintable' cellspacing='0' cellpadding='0' style='width:175px;'><tbody><tr><td>");
147            //caption bar goes here
148            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, "'>&nbsp;</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, "'>&nbsp;</a></td></tr></table>");
149            cpHA.push("</td></tr>");
150            cpHA.push("<tr><td>");
151            //week 
152            cpHA.push("<table id='BBIT_DP_INNER' class='bbit-dp-inner' cellspacing='0'><thead><tr>");
153            //calculat for week
154            for (var i = def.weekStart, j = 0; j < 7; j++) {
155                cpHA.push("<th><span>", def.weekName[i], "</span></th>");
156                if (i == 6) { i = 0; } else { i++; }
157            }
158            cpHA.push("</tr></thead>");
159            //to generat tBody, everything need to rebuilt
160            cpHA.push("<tbody></tbody></table>");
161            //end tbody
162            cpHA.push("</td></tr>");
163            cpHA.push("<tr>
163<td class='bbit-dp-bottom' align='center'><button id='BBIT-DP-TODAY'>", def.btnToday, "</button></td></tr>");
164            cpHA.push("</tbody></table>");
165            //for drop down to select year & month
166            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>");
167            cpHA.push("<tr>");
168            //tow buttons for Jan & Jul
169            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>");
170            cpHA.push("</tr>");
171            cpHA.push("<tr>");
172            cpHA.push("<td class='bbit-dp-mp-month' xmonth='1'><a href='javascript:void(0);'>", def.monthName[1], "</a></td>
172<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>");
173            cpHA.push("</tr>");
174            cpHA.push("<tr>");
175            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>");
176            cpHA.push("</tr>");
177            cpHA.push("<tr>");
178            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>
178<td class='bbit-dp-mp-year'><a href='javascript:void(0);'></a></td>");
179            cpHA.push("</tr>");
180
181            cpHA.push("<tr>");
182            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>");
183            cpHA.push("</tr>");
184
185            cpHA.push("<tr>");
186            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>");
187            cpHA.push("</tr>");
188            cpHA.push("<tr class='bbit-dp-mp-btns'>");
189            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>");
190            cpHA.push("</tr>");
191
192            cpHA.push("</tbody></table>");
193            cpHA.push("</div>");
194            cpHA.push("</div>");
195
196            var s = cpHA.join("");
197            $(document.body).append(s);
198            cp = $("#BBIT_DP_CONTAINER");
199
200            initevents();
201        }
202        function initevents() {
203            //1 today btn;
204            $("#BBIT-DP-TODAY").click(returntoday);
205            cp.click(returnfalse);
206            $("#BBIT_DP_INNER tbody").click(tbhandler);
207            $("#BBIT_DP_LEFTBTN").click(prevm);
208            $("#BBIT_DP_RIGHTBTN").click(nextm);
209            $("#BBIT_DP_YMBTN").click(showym);
210            $("#BBIT-DP-MP").click(mpclick).dblclick(mpdblclick);
211
212            $("#BBIT-DP-MP-PREV").click(mpprevy);
213            $("#BBIT-DP-MP-NEXT").click(mpnexty);
214            $("#BBIT-DP-MP-OKBTN").click(mpok);
215            $("#BBIT-DP-MP-CANCELBTN").click(mpcancel);
216        }
217        function mpcancel() {
218            $("#BBIT-DP-MP").animate({ top: -193 }, { duration: 200, complete: function() { $("#BBIT-DP-MP").hide(); } });
219            return false;
220        }
221        function mpok() {
222            def.Year = def.cy;
223            def.Month = def.cm + 1;
224            def.Day = 1;
225            $("#BBIT-DP-MP").animate({ top: -193 }, { duration: 200, complete: function() { $("#BBIT-DP-MP").hide(); } });
226            writecb();
227            return false;
228        }
229        function mpprevy() {
230            var y = def.ty - 10
231            def.ty = y;
232            rryear(y);
233            return false;
234        }
235        function mpnexty() {
236            var y = def.ty + 10
237            def.ty = y;
238            rryear(y);
239            return false;
240        }
241        function rryear(y) {
242            var s = y - 4;
243            var ar = [];
244            for (var i = 0; i < 5; i++) {
245                ar.push(s + i);
246                ar.push(s + i + 5);
247            }
248            $("#BBIT-DP-MP td.bbit-dp-mp-year").each(function(i) {
249                if (def.Year == ar[i]) {
250                    $(this).addClass("bbit-dp-mp-sel");
251                }
252                else {
253                    $(this).removeClass("bbit-dp-mp-sel");
254                }
255                $(this).html("<a href='javascript:void(0);'>" + ar[i] + "</a>").attr("xyear", ar[i]);
256            });
257        }
258        function mpdblclick(e) {
259            var et = e.target || e.srcElement;
260            var td = getTd(et);
261            if (td == null) {
262                return false;
263            }
264            if ($(td).hasClass("bbit-dp-mp-month") || $(td).hasClass("bbit-dp-mp-year")) {
265                mpok(e);
266            }
267            return false;
268        }
269        function mpclick(e) {
270            var panel = $(this);
271            var et = e.target || e.srcElement;
272            var td = getTd(et);
273            if (td == null) {
274                return false;
275            }
276            if ($(td).hasClass("bbit-dp-mp-month")) {
277                if (!$(td).hasClass("bbit-dp-mp-sel")) {
278                    var ctd = panel.find("td.bbit-dp-mp-month.bbit-dp-mp-sel");
279                    if (ctd.length > 0) {
280                        ctd.removeClass("bbit-dp-mp-sel");
281                    }
282                    $(td).addClass("bbit-dp-mp-sel")
283                    def.cm = parseInt($(td).attr("xmonth"));
284                }
285            }
286            if ($(td).hasClass("bbit-dp-mp-year")) {
287                if (!$(td).hasClass("bbit-dp-mp-sel")) {
288                    var ctd = panel.find("td.bbit-dp-mp-year.bbit-dp-mp-sel");
289                    if (ctd.length > 0) {
290                        ctd.removeClass("bbit-dp-mp-sel");
291                    }
292                    $(td).addClass("bbit-dp-mp-sel")
293                    def.cy = parseInt($(td).attr("xyear"));
294                }
295            }
296            return false;
297        }
298        function showym() {
299            var mp = $("#BBIT-DP-MP");
300            var y = def.Year;
301            def.cy = def.ty = y;
302            var m = def.Month - 1;
303            def.cm = m;
304            var ms = $("#BBIT-DP-MP td.bbit-dp-mp-month");
305            for (var i = ms.length - 1; i >= 0; i--) {
306                var ch = $(ms[i]).attr("xmonth");
307                if (ch == m) {
308                    $(ms[i]).addClass("bbit-dp-mp-sel");
309                }
310                else {
311                    $(ms[i]).removeClass("bbit-dp-mp-sel");
312                }
313            }
314            rryear(y);
315            mp.css("top", -193).show().animate({ top: 0 }, { duration: 200 });
316        }
317        function getTd(elm) {
318            if (elm.tagName.toUpperCase() == "TD") {
319                return elm;
320            }
321            else if (elm.tagName.toUpperCase() == "BODY") {
322                return null;
323            }
324            else {
325                var p = $(elm).parent();
326                if (p.length > 0) {
327                    if (p[0].tagName.toUpperCase() != "TD") {
328                        return getTd(p[0]);
329                    }
330                    else {
331                        return p[0];
332                    }
333                }
334            }
335            return null;
336        }
337        function tbhandler(e) {
338            var et = e.target || e.srcElement;
339            var td = getTd(et);
340            if (td == null) {
341                return false;
342            }
343            var $td = $(td);
344            if (!$(td).hasClass("bbit-dp-disabled")) {
345                var s = $td.attr("xdate");              
346                cp.data("indata",stringtodate(s));
347                returndate();
348            }
349            return false;
350        }
351        function returnfalse() {
352            return false;
353        }
354
355        function stringtodate(datestr) {
356            try
357            {
358                var arrs = datestr.split(i18n.datepicker.dateformat.separator);
359                var year = parseInt(arrs[i18n.datepicker.dateformat.year_index]);
360                var month = parseInt(arrs[i18n.datepicker.dateformat.month_index]) - 1;
361                var day = parseInt(arrs[i18n.datepicker.dateformat.day_index]);
362                return new Date(year, month, day);
363            }
364            catch(e)
365            {
366             return null;
367            }
368        }
369        function prevm() {
370            if (def.Month == 1) {
371                def.Year--;
372                def.Month = 12;
373            }
374            else {
375                def.Month--
376            }
377            writecb();
378            return false;
379        }
380        function nextm() {
381            if (def.Month == 12) {
382                def.Year++;
383                def.Month = 1;
384            }
385            else {
386                def.Month++
387            }
388            writecb();
389            return false;
390        }
391        function returntoday() {
392            cp.data("indata", new Date());
393            returndate();
394        }
395        function returndate() {
396            var ct = cp.data("ctarget");
397            var ck = cp.data("cpk");
398            var re = cp.data("onReturn");
399            var ndate = cp.data("indata")
400            var ads = cp.data("ads");
401            var ade = cp.data("ade");
402            var dis = false;
403            if (ads && ndate < ads) {
404                dis = true;
405            }
406            if (ade && ndate > ade) {
407                dis = true;
408            }
409            if (dis) {
410                return;
411            }
412            if (re && jQuery.isFunction(re)) {
413                re.call(ct[0], cp.data("indata"));
414            }
415            else {
416                ct.val(dateFormat.call(cp.data("indata"), i18n.datepicker.dateformat.fulldayvalue));
417            }
418            ck.attr("isshow", "0");
419            cp.removeData("ctarget").removeData("cpk").removeData("indata").removeData("onReturn")
420            .removeData("ads").removeData("ade");
421            cp.css("visibility", "hidden");
422            ct = ck = null;
423        }
424        function writecb() {
425            var tb = $("#BBIT_DP_INNER tbody");
426            $("#BBIT_DP_YMBTN").html(def.monthName[def.Month - 1] + def.monthp + " " + def.Year);
427            var firstdate = new Date(def.Year, def.Month - 1, 1);
428
429            var diffday = def.weekStart - firstdate.getDay();
430            var showmonth = def.Month - 1;
431            if (diffday > 0) {
432                diffday -= 7;
433            }
434            var startdate = DateAdd("d", diffday, firstdate);
435            var enddate = DateAdd("d", 42, startdate);
436            var ads = cp.data("ads");
437            var ade = cp.data("ade");
438            var bhm = [];
439            var tds = dateFormat.call(def.today, i18n.datepicker.dateformat.fulldayvalue);
440            var indata = cp.data("indata");
441            var ins = indata != null ? dateFormat.call(indata, i18n.datepicker.dateformat.fulldayvalue) : "";
442            for (var i = 1; i <= 42; i++) {
443                if (i % 7 == 1) {
444                    bhm.push("<tr>");
445                }
446                var ndate = DateAdd("d", i - 1, startdate);
447                var tdc = [];
448                var dis = false;
449                if (ads && ndate < ads) {
450                    dis = true;
451                }
452                if (ade && ndate > ade) {
453                    dis = true;
454                }
455                if (ndate.getMonth() < showmonth) {
456                    tdc.push("bbit-dp-prevday");
457                }
458                else if (ndate.getMonth() > showmonth) {
459                    tdc.push("bbit-dp-nextday");
460                }
461
462                if (dis) {
463                    tdc.push("bbit-dp-disabled");
464                }
465                else {
466                    tdc.push("bbit-dp-active");
467                }
468
469                var s = dateFormat.call(ndate, i18n.datepicker.dateformat.fulldayvalue);
470                if (s == tds) {
471                    tdc.push("bbit-dp-today");
472                }
473                if (s == ins) {
474                    tdc.push("bbit-dp-selected");
475                }
476
477                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>
477", ndate.getDate(), "</span></em></a></td>");
478                if (i % 7 == 0) {
479                    bhm.push("</tr>");
480                }
481            }
482            tb.html(bhm.join(""));
483        }
484       
485        return $(this).each(function() {
486
487            var obj = $(this).addClass("bbit-dp-input");
488            var picker = $(def.picker);
489            def.showtarget == null && obj.after(picker);
490            picker.click(function(e) {
491                var isshow = $(this).attr("isshow");
492                //hide it initially
493                var me = $(this);
494
495                if (cp.css("visibility") == "visible") {
496                    cp.css(" visibility", "hidden");
497                }
498                if (isshow == "1") {
499                    me.attr("isshow", "0");
500                    cp.removeData("ctarget").removeData("cpk").removeData("indata").removeData("onReturn");
501                    return false;
502                }
503                var v = obj.val();
504                if (v != "") {
505                    v = stringtodate(v);
506                }
507                if (v == null || v == "") {
508                    def.Year = new Date().getFullYear();
509                    def.Month = new Date().getMonth() + 1;
510                    def.Day = new Date().getDate();
511                    def.inputDate = null
512                }
513                else {
514                    def.Year = v.getFullYear();
515                    def.Month =v.getMonth() + 1;
516                    def.Day = v.getDate();
517                    def.inputDate = v;
518                }
519                cp.data("ctarget", obj).data("cpk", me).data("indata", def.inputDate).data("onReturn", def.onReturn);
520                if (def.applyrule && $.isFunction(def.applyrule)) {
521                    var rule = def.applyrule.call(obj, obj[0].id);
522                    if (rule) {
523                        if (rule.startdate) {
524                            cp.data("ads", rule.startdate);
525                        }
526                        else {
527                            cp.removeData("ads");
528                        }
529                        if (rule.enddate) {
530                            cp.data("ade", rule.enddate);
531                        }
532                        else {
533                            cp.removeData("ade");
534                        }
535                    }
536                }
537                else {
538                    cp.removeData("ads").removeData("ade")
539                }
540                writecb();
541
542
543                $("#BBIT-DP-T").height(cp.height());
544                var t = def.showtarget || obj;
545                var pos = t.offset();
546
547
548                var height = t.outerHeight();
549                var newpos = { left: pos.left, top: pos.top + height };
550                var w = cp.width();
551                var h = cp.height();
552                var bw = document.documentElement.clientWidth;
553                var bh = document.documentElement.clientHeight;
554                if ((newpos.left + w) >= bw) {
555                    newpos.left = bw - w - 2;
556                }
557                if ((newpos.top + h) >= bh) {
558                    newpos.top = pos.top - h - 2;
559                }
560                if (newpos.left < 0) {
561                    newpos.left = 10;
562                }
563                if (newpos.top < 0) {
564                    newpos.top = 10;
565                }
566                $("#BBIT-DP-MP").hide();
567                newpos.visibility = "visible";
568                cp.css(newpos);
569
570
571
572                //cp.show();
573                $(this).attr("isshow", "1");
574
575                $(document).one("click", function(e) {
576                    me.attr("isshow", "0");
577                    cp.removeData("ctarget").removeData("cpk").removeData("indata");
578                    cp.css("visibility", "hidden");
579                });
580
581                return false;
582            });
583        });
584    };
585})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.