PageSourceSearch

https://www.3pcb.com/img/js/manage/system/frametools.js?v=1.176956222222743472026051299

js 3pcb.com collected 2026-09-26 15:49:19 UTC 23,062 bytes, 802 lines download raw bytes

1//初始化样式
2$(document).ready(function () {
3
4
5    $('.tinfo_1 tr.trbg').hover(
6       function () {
7           $(this).addClass('trbgh');
8       }, function () {
9           $(this).removeClass('trbgh');
10       }
11    )
12    $('.tinfo_2 td').hover(
13       function () {
14           $(this).addClass('tdh');
15       }, function () {
16           $(this).removeClass('tdh');
17       }
18    )
19
20    $('input.bottonBox').hover(
21       function () {
22           $(this).addClass('bottonBoxClick');
23       }, function () {
24           $(this).removeClass('bottonBoxClick');
25       }
26
27
28
29   );
30
31    $('input.bottonBoxGreen').hover(
32    function () {
33        $(this).addClass('bottonBoxGreenClick');
34    }, function () {
35        $(this).removeClass('bottonBoxGreenClick');
36    });
37
38    $('input.bottonBoxYellow').hover(
39function () {
40    $(this).addClass('bottonBoxYellowClick');
41}, function () {
42    $(this).removeClass('bottonBoxYellowClick');
43});
44
45    $('input.bottonBoxBlue').hover(
46function () {
47    $(this).addClass('bottonBoxBlueClick');
48}, function () {
49    $(this).removeClass('bottonBoxBlueClick');
50});
51
52    //设置过期处理
53    $.ajaxSetup({
54        complete: function (xMLHttpRequest, textStatus) {
55            var header = xMLHttpRequest.getResponseHeader('Timeout-Head');
56            if (header != undefined && header == "timeout") {
57                top.location.href = '/admin/account/';
58            }
59        }, cache: false
60    });
61
62
63    $(document).on('keyup focus', '.js-check-int5', function () {
64        var ival = $(this).val().replaceToIntStr(5);
65        $(this).val(ival);
66    });
67
68    $(document).on('keyup focus', '.js-check-int8', function () {
69        var ival = $(this).val().replaceToIntStr(8);
70        $(this).val(ival);
71    });
72
73    $(document).on('keyup focus', '.js-check-int', function () {
74        var ival = $(this).val().replaceToIntStr();
75        $(this).val(ival);
76    });
77
78    $(document).on('keyup focus', '.js-check-float', function () {
79        var ival = $(this).val().replaceToFloatStr();
80        $(this).val(ival);
81    });
82
83
84    $(document).on('keyup focus', '.js-check-size', function () {
85        var ival = $(this).val().replaceToFloatStr();
86
87        if (ival > 1200) {
88            var altmsg = $("#JsMaxLenAndWidth").val();
89            if (!altmsg || altmsg == '') {
90                altmsg = 'Maximum length/Width: 1200mm.';
91            }
92            if (layer) {
93                layer.msg(altmsg);
94            }
95            
96            $(this).val('');
97        }
98        else {
99            $(this).val(ival);
100        }
101
102        
103    });
104
105
106});
107
108
109
110
111
112/********************************************  
113 *   PicUploader 图片上传方法 
114********************************************/
115function PicUploader(divId, hidName, objName, picNum, uploadConfig) {
116    this.Count = 0; // 点开多少个上传
117    this.UpCount = 0; //已上传多少个  
118    this.CanCount = picNum; //可上传数量
119    this.hidName = hidName;
120    this.objName = objName;
121    this.divName = divId;
122    this.CurrentLi = undefined;
123    this.UploadConfig = uploadConfig;
124    this.ShowDiv = "<li><input type=\"hidden\" name=\"" + hidName + "\" /><a href=\"javascript:void(0);\" title=\"删除图片\" class=\"del\" onclick=\"" + objName + ".Del(this);return false;\">╳</a><img src=\"/img/images/common/noupload.gif\" border=\"0\" alt=\"pic\" onclick=\"" + objName + ".Show(this);\"  width=\"105px\" height=\"105px\" /></li>";
125    $("#" + divId).html(" <ul> <li class=\"add\" id=\"li" + divId + "\"><a href=\"javascript:void(0);\" onclick=\"" + objName + ".Add();return false;\"><font>+</font>上传图片</a></li></ul>");
126}
127
128PicUploader.prototype.Success = function (imgUrl, imgname) {
129    if (typeof (this.CurrentLi) != 'undefined') {
130        this.CurrentLi.find("input").val(imgUrl);
131        this.CurrentLi.find("img").attr("src", imgUrl);
132        this.UpCount++;
133        this.CurrentLi = undefined;
134        //CloseWin();
135    }
136    else {
137        this.AutoAdd();
138        this.Success(imgUrl, imgname);
139    }
140}
141
142PicUploader.prototype.AutoAdd = function () {
143    if (this.Count >= this.CanCount) return false;
144    var bef = $(this.ShowDiv);
145    $("#li" + this.divName).before(bef);
146    this.CurrentLi = $("#li" + this.divName).prev("li");
147    this.Count++;
148
149    if (this.Count == this.CanCount) {
150        $("#li" + this.divName).hide();
151    }
152};
153
154PicUploader.prototype.Init = function (img) {
155    if (img == "") { return false; }
156    var imgSort = img.split('|');
157    for (var i = 0; i < imgSort.length; i++) {
158        this.Success(imgSort[i], "");
159    }
160};
161
162PicUploader.prototype.Add = function () {
163    if (this.Count >= this.CanCount) return false;
164    var bef = $(this.ShowDiv);
165    $("#li" + this.divName).before(bef);
166    this.Count++;
167    if (this.Count == this.CanCount) {
168        $("#li" + this.divName).hide();
169    }
170    $("#li" + this.divName).prev().find("img").click();
171};
172
173PicUploader.prototype.Show = function (objImg) {
174    var uploadNum = this.CanCount - this.UpCount;
175    OpenWin("上传图片", 550, 380, "/upload/web/upload.aspx?funname=" + this.objName + ".Success&uptype=" + this.UploadConfig + "&completefun=CloseWin&uploadnum=1");
176    this.CurrentLi = $(objImg).parents("li");
177};
178
179PicUploader.prototype.Del = function (objA) {
180    var currPicVal = $(objA).parent().find("input").val();
181    if (currPicVal != "") {
182        this.UpCount--;
183    }
184    this.Count--;
185    $(objA).parent().remove();
186    if (this.Count == this.CanCount - 1) {
187        $("#li" + this.divName).show();
188    }
189};
190
191/********************************************  
192 *   PicUploader 图片上传方法 END 
193********************************************/
194
195
196
197
198
199
200
201
202var submiting = false;
203
204// POST提交请求
205function MyPost(url, parm, callback) {
206    if (submiting) {
207        $.messager.show({ title: "请求失败", msg: "请求尚未处理完成,请不要重复提交", timeout: 5000, showType: 'fade' });
208        return false;
209    };
210    submiting = true;
211    var defualtBack;
212    if (callback == undefined) {
213        defualtBack = function (data) {
214            submiting = false;
215        };
216    } else {
217        defualtBack = function (data) {
218            callback(data);
219            submiting = false;
220        };
221    }
222    $.post(encodeURI(url), parm, defualtBack);
223    return true;
224};
225
226
227
228
229
230/// 弹出窗口关闭
231function CloseWin() {
232    $("#win_open_div").window('close');
233}
234
235/// 最大化窗口
236function MaxWin() {
237    $("#win_open_div").window('maximize');
238}
239
240/// 弹出窗口
241function OpenWin(title, w, h, url, onClose) {
242    if ($("#win_open_div").size() == 0) {
243        $(document.body).append('<div id="win_open_div"> </div>');
244    }
245
246    var mw = w + "";
247    if (mw.indexOf("%") > 0) {
248        w = parseInt($(document).width() * parseInt(mw.replace("%", "")) / 100);
249
250    }
251    var mh = h + "";
252    if (mh.indexOf("%") > 0) {
253        h = $(document).height() * parseInt(mh.replace("%", "")) / 100;
254    }
255
256
257    $('#win_open_div').window({
258        title: title,
259        width: w,
260        height: h,
261        left: $(window).width() / 2 - w / 2 + $(document).scrollLeft(),
262        top: $(window).height() / 2 - h / 2 + $(document).scrollTop(),
263        collapsible: false,
264        minimizable: false,
265        modal: true,
266        content: '<iframe id="win_open_ifm" name="win_open_ifm" scrolling="yes" border="0" frameborder="0"  src="' + url + '" style="width:100%;height:99%;"></iframe>',
267        onClose: function () {
268            if (onClose) {
269                onClose();
270            }
271        }
272    });
273}
274
275
276
277
278function OpenTopWin(top, title, w, h, url) {
279    OpenWin(title, w, h, url);
280    $('#win_open_div').window({ top: top });
281}
282
283
284
285////////////// 表单操作 //////////////////
286
287///刷新表单数据,保持当前页
288function TableRefresh(tbName) {
289    $('#' + tbName).datagrid('reload');
290
291}
292
293///重载表单数据,显示第一页
294function TableReLoad(tbName) {
295    $('#' + tbName).datagrid('load');
296}
297
298
299
300function IsTrue(val, row, index) {
301    return val ? "<img src=\"/img/images/manage/system/right.png\" border=0/>" : "<img src=\"/img/images/manage/system/false.gif\" border=0/>";
302}
303
304
305function GetIsTrue(val) {
306    return val ? "<img src=\"/img/images/manage/system/right.png\" border=0/>" : "<img src=\"/img/images/manage/system/false.gif\" border=0/>";
307}
308function IsTrueFont(val) {
309    return val ? "<font color='green'>是</font>" : "<font color='red'>否</font>";
310}
311
312Date.prototype.formatTime = function (formatstr) {
313    var date = this;
314    var year = date.getFullYear();
315    var set = {
316        "M+": date.getMonth() + 1,
317        "d+": date.getDate(),
318        "h+": date.getHours() >= 12 ? date.getHours() - 12 : date.getHours(),
319        "H+": date.getHours(),
320        "m+": date.getMinutes(),
321        "s+": date.getSeconds()
322    };
323    if (/(y+)/.test(formatstr)) {
324        formatstr = formatstr.replace(RegExp.$1, (year + "").substr(4 - RegExp.$1.length));
325    }
326    for (var pro in set) {
327        if (new RegExp("(" + pro + ")").test(formatstr)) {
328            var zero = RegExp.$1.length == 1 ? "0" : "00"
329            var stubStr = zero + set[pro];
330            formatstr = formatstr.replace(RegExp.$1, RegExp.$1.length == 1 ? set[pro] : stubStr.substr(stubStr.length - RegExp.$1.length));
331        }
332    }
333    return formatstr;
334};
335
336function dateFormart(v, r, i) {
337    if (!v)
338        return "";
339    var date = new Date(parseInt(v.replace("/Date(", "").replace(")/", "")));
340    if (!date || date < new Date('2000-1-1'))
341        return "";
342    return date.format("yyyy-MM-dd hh:mm:ss");
343}
344
345function dateFormartByDate(v, r, i) {
346    if (!v)
347        return "";
348    var date = new Date(parseInt(v.replace("/Date(", "").replace(")/", "")));
349    if (!date || date < new Date('2000-1-1'))
350        return "";
351    return date.format("yyyy-MM-dd");
352}
353
354function dateFormartDay(r) {
355
356    if (!r.PayTime)
357        return "";
358    var date = new Date(parseInt(r.PayTime.replace("/Date(", "").replace(")/", "")));
359    if (!date)
360        return "";
361    hour = date.getHours();
362    if (r.ProductionCycle == 6 && hour < 12) {
363        return date.DateAdd('d', 0).format("yyyy-MM-dd");
364    }
365    else if (r.ProductionCycle == 12 || (r.ProductionCycle == 6 && hour > 12)) {
366        return date.DateAdd('d', 1).format("yyyy-MM-dd");
367    }
368    return date.DateAdd('d', 4).format("yyyy-MM-dd");
369}
370
371Date.prototype.DateAdd = function (strInterval, Number) {
372    var dtTmp = this;
373    switch (strInterval) {
374        case 's': return new Date(Date.parse(dtTmp) + (1000 * Number));
375        case 'n': return new Date(Date.parse(dtTmp) + (60000 * Number));
376        case 'h': return new Date(Date.parse(dtTmp) + (3600000 * Number));
377        case 'd': return new Date(Date.parse(dtTmp) + (86400000 * Number));
378        case 'w': return new Date(Date.parse(dtTmp) + ((86400000 * 7) * Number));
379        case 'q': return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number * 3, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.get
379Seconds());
380        case 'm': return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
381        case 'y': return new Date((dtTmp.getFullYear() + Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
382    }
383}
384// 对Date的扩展,将 Date 转化为指定格式的String
385// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
386// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
387// 例子:
388// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
389// (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18
390Date.prototype.format = function (fmt) { //author: meizz
391    var o = {
392        "M+": this.getMonth() + 1,                 //月份
393        "d+": this.getDate(),                    //日
394        "h+": this.getHours(),                   //小时
395        "m+": this.getMinutes(),                 //分
396        "s+": this.getSeconds(),                 //秒
397        "q+": Math.floor((this.getMonth() + 3) / 3), //季度
398        "S": this.getMilliseconds()             //毫秒
399    };
400    if (/(y+)/.test(fmt))
401        fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
402    for (var k in o)
403        if (new RegExp("(" + k + ")").test(fmt))
404            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
405    return fmt;
406}
407
408
409
410
411///////////// Tab 操作 //////////////
412
413// 增加标签
414function addTab(subtitle, url, closable) {
415    debugger;
416    if (!$('#tabs').tabs('exists', subtitle)) {
417        $('#tabs').tabs('add', {
418            title: subtitle,
419            content: '<iframe scrolling="yes" border="0" frameborder="0"  src="' + url + '" style="width:100%;height:100%;"></iframe>',
420            closable: closable
421        });
422    } else {
423        $('#tabs').tabs('select', subtitle);
424        //如果碰到相同标题的,更新为当前点击的地址
425        var tab = $('#tabs').tabs('getSelected');
426        $('#tabs').tabs('update', {
427            tab: tab,
428            options: { content: '<iframe scrolling="yes" border="0" frameborder="0"  src="' + url + '" style="width:100%;height:100%;"></iframe>' }
429        });
430    }
431}
432
433// 根据title更新tab
434function updateTab(subtitle) {
435    if ($('#tabs').tabs('exists', subtitle)) {
436        var tab = $('#tabs').tabs('getTab', subtitle); //获取该title的tab
437        $('#tabs').tabs('update', {
438            tab: tab,
439            options: {}
440        });
441    }
442}
443
444// 关闭当前的tab并更新指定title的tab
445function closeAndUpdateTab(subTitle) {
446    var tab = $('#tabs').tabs('getSelected');
447    var index = $('#tabs').tabs('getTabIndex', tab);
448    $('#tabs').tabs('close', index);
449    updateTab(subTitle);
450}
451
452// 关闭当前标签
453function closeCurrTab() {
454    var tab = $('#tabs').tabs('getSelected');
455    var tabs = $('#tabs').tabs('tabs');
456    var tabNums = tabs.length;
457    if (tabNums > 1) {
458        if (tab) {
459            var index = $('#tabs').tabs('getTabIndex', tab);
460            $('#tabs').tabs('close', index);
461        }
462    }
463    else if (tabNums == 1) {
464        $.messager.confirm('请确认', '只剩下一个窗口了,是否确认删除?', function (r) {
465            if (r) {
466                if (tab) {
467                    var index = $('#tabs').tabs('getTabIndex', tab);
468                    $('#tabs').tabs('close', index);
469                }
470            }
471        });
472    }
473    else {
474        $.messager.alert('友情提示', '已经没有窗口了,您无需再删除了!');
475    }
476}
477
478// 刷新当前Tab
479function reloadCurrTab() {
480    var tab = $('#tabs').tabs('getSelected');
481    $('#tabs').tabs('update', {
482        tab: tab,
483        options: {}
484    });
485}
486
487// 更新当前Tab 地址
488function updateSelectTab(url) {
489    var tab = $('#tabs').tabs('getSelected');
490    $('#tabs').tabs('update', {
491        tab: tab,
492        options: {
493            content: '<iframe scrolling="yes" border="0" frameborder="0"  src="' + url + '" style="width:100%;height:100%;"></iframe>'
494        }
495    });
496}
497
498function tabClose() {
499    /*双击关闭TAB选项卡*/
500    $(".tabs-inner").dblclick(function () {
501        var subtitle = $(this).children("span").text();
502        if (subtitle == '我的桌面') return true;
503        $('#tabs').tabs('close', subtitle);
504    });
505
506    $(".tabs-inner").bind('contextmenu', function (e) {
507        $('#mm').menu('show', {
508            left: e.pageX,
509            top: e.pageY
510        });
511
512        var subtitle = $(this).children("span").text();
513        $('#mm').data("currtab", subtitle);
514
515        return false;
516    });
517}
518
519
520
521
522
523////////////选项框//////////////////
524function CheckAll(chkIdName, checked) {
525    $('input[name=' + chkIdName + ']').prop('checked', checked);
526}
527
528
529function GetCheckedNum(chkIdName) {
530    return $('input[name=' + chkIdName + ']:checked').length;
531}
532
533
534//图片缩放
535function DrawImage(ImgD, FitWidth, FitHeight) {
536    var image = new Image();
537    image.src = ImgD.src;
538    if (image.width > 0 && image.height > 0) {
539        if (image.width / image.height >= FitWidth / FitHeight) {
540            if (image.width > FitWidth) {
541                ImgD.width = FitWidth;
542                ImgD.height = (image.height * FitWidth) / image.width;
543            } else {
544                ImgD.width = image.width;
545                ImgD.height = image.height;
546            }
547        } else {
548            if (image.height > FitHeight) {
549                ImgD.height = FitHeight;
550                ImgD.width = (image.width * FitHeight) / image.height;
551            } else {
552                ImgD.width = image.width;
553                ImgD.height = image.height;
554            }
555        }
556    }
557}
558
559//表单等序列化-escape编码
560function serialize(objs) {
561    var parmString = $(objs).serialize();
562    var parmArray = parmString.split("&");
563    var parmStringNew = "";
564    $.each(parmArray, function (index, data) {
565        var li_pos = data.indexOf("=");
566        if (li_pos > 0) {
567            var name = data.substring(0, li_pos);
568            var value = escape(decodeURIComponent(data.substr(li_pos + 1)));
569            var parm = name + "=" + value;
570            parmStringNew = parmStringNew == "" ? parm : parmStringNew + '&' + parm;
571        }
572    });
573
574    return parmStringNew;
575}
576
577
578
579
580function GetCashType(v) {
581    if (v == 1) {
582        return "取消订单";
583    }
584    if (v == 2) {
585        return "提现";
586    }
587    if (v == 3) {
588        return "注册";
589    } if (v == 4) {
590        return "登录";
591    } if (v == 5) {
592        return "留言";
593    } if (v == 6) {
594        return "发布分享";
595    } if (v == 7) {
596        return "邀请注册";
597    } if (v == 8) {
598        return "被邀请人下单";
599    } if (v == 9) {
600        return "PayPal充值";
601    } if (v == 10) {
602        return "订单退款";
603    } if (v == 99) {
604        return "系统操作";
605    } if (v == 100) {
606        return "下订单";
607    }
608    return "其他";
609}
610function GetGroupStatus(v) {
611
612    if (v == 1) {
613        return "<font color='blue'>尚未生效</font>";
614    }
615    if (v == 2) {
616        return "<font color='green'>订单生效</font>";
617    }
618    if (v == 3) {
619        return "<font color='#999999'>订单取消</font>";
620    }
621    if (v == 4) {
622        return "<font color='red'>等待发货</font>";
623    }
624    if (v == 5) {
625        return "<font color='black'>已发货</font>";
626    }
627    if (v == 100) {
628        return "交易成功";
629    }
630    return "其他";
631}
632
633function GetPanelStatus(v) {
634    if (v == 1) {
635        return "<font color='blue'>待审核</font>";
636    }
637    if (v == 2) {
638        return "<font color='red'>审核中</font>";
639    }
640    if (v == 3) {
641        return "<font color='#999999'>审核不通过</font>";
642    }
643    if (v == 4) {
644        return "<font color='#999999'>交易取消</font>";
645    }
646    if (v == 5) {
647        return "<font color='green'>已审核</font>";
648    }
649    if (v == 6) {
650        return "确定下单";
651    }
652    if (v == 7) {
653        return "<font color='blue'>等待内部编号";
654    }
655    if (v == 8) {
656        return "已内部编号</font>";
657    }
658    if (v == 9) {
659        return "制作MI";
660    }
661    if (v == 10) {
662        return "生产中";
663    }
664    if (v == 11) {
665        return "生产完成";
666    }
667    if (v == 12) {
668        return "待发货";
669    }
670    if (v == 13) {
671        return "已发货";
672    }
673    if (v == 100) {
674        return "交易成功";
675    }
676    return "其他";
677}
678
679
680function GetUserPanelStatus(v) {
681    if (v == 1) {
682        return "<font color='blue'>等待上传文件</font>";
683    }
684    if (v == 4) {
685        return "<font color='red'>审核中</font>";
686    }
687    if (v == 5) {
688        return "<font color='#999999'>审核不通过</font>";
689    }
690    if (v == 7) {
691        return "<font color='#999999'>交易取消</font>";
692    }
693    if (v == 8) {
694        return "<font color='red'>已审核,待付款</font>";
695    }
696
697    if (v == 13) {
698        return "<font color='green'>生产中</font>";
699    }
700    if (v == 14) {
701        return "生产完成";
702    }
703    if (v == 15) {
704        return "待发货";
705    }
706    if (v == 16) {
707        return "已发货";
708    }
709    if (v == 100) {
710        return "交易成功";
711    }
712    return "其他";
713}
714
715function GetTax(v) {
716
717    if (v == 1) {
718        return "<font color='black'>普通发票</font>";
719    }
720    if (v == 2) {
721        return "<font color='black'>专用发票</font>";
722    }
723  
724    return "不要发票";
725}
726function GetProType(v) {
727
728    if (v == 1) {
729        return "<font color='black'>面板</font>";
730    }
731    if (v == 2) {
732        return "<font color='black'>开关</font>";
733    }
734   
735
736    return "--";
737}
738
739function GetProDetailStatus(v) {
740
741    if (v == 1) {
742        return "<font color='blue'>待审核</font>";
743    }
744    if (v == 2) {
745        return "<font color='999999'>取消</font>";
746    }
747    if (v == 3) {
748        return "<font color='#999999'>审核不通过</font>";
749    }
750   
751    if (v == 4) {
752        return "<font color='green'>已审核</font>";
753    }
754    if (v == 5) {
755        return "确定下单";
756    }
757    if (v == 6) {
758        return "<font color='red'>采购中</font>";
759    }
760    if (v == 7) {
761        return "<font color='red'>已退款</font>";
762    }
763    if (v == 8) {
764        return "采购完成";
765    }
766}
767
768function GetSendType(v) {
769
770    if (v == 1) {
771        return "<font color='blue'>寄样</font>";
772    }
773    if (v == 2) {
774        return "<font color='blue'>部分产品</font>";
775    }
776    if (v == 3) {
777        return "<font color='green'>全部产品</font>";
778    }
779}
780
781function setCookie(name, value, Days) {
782
783    var exp = new Date();
784    exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
785    document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString() + ";path=/";
786}
787
788function getCookie(name) {
789    var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
790    if (arr = document.cookie.match(reg))
791        return unescape(arr[2]);
792    else
793        return null;
794}
795
796function delCookie(name) {
797    var exp = new Date();
798    exp.setTime(exp.getTime() - 1);
799    var cval = getCookie(name);
800    if (cval != null)
801        document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
802}

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.