PageSourceSearch

https://ao.smmu.edu.cn/_js/_portletPlugs/datepicker/js/jquery.datepicker.js

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