PageSourceSearch

https://swvasun.com/lib/bl.js

js swvasun.com collected 2026-09-29 05:16:01 UTC 82,527 bytes, 2,217 lines download raw bytes

1/* convert <url>example.com</url> to clickable link */
2document.addEventListener('readystatechange', event => {
3    if (event.target.readyState === "complete") {
4        const regex = /(http|https):\/\//;
5        document.querySelectorAll("url").forEach(u => {
6            const linkText = u.innerText.trim();
7            let link = u.innerText.trim();
8            if (!regex.test(link)) {
9                link = "//" + link
10            }
11            u.outerHTML = `<a href="${link}" target="_blank">${linkText}</a>`;
12        });
13    }
14});
15
16
17
18// Function to load the PDF.js library dynamically
19function loadPdfJs(callback) {
20    if (!window.pdfjsLib) {
21        var script = document.createElement('script');
22        script.src = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.7.570/pdf.min.js';
23        script.onload = callback;
24        document.head.appendChild(script);
25    } else {
26        callback();
27    }
28}
29
30// Function to render the PDF in a specific container
31function renderPdf(url, container) {
32    loadPdfJs(function () {
33        var pdfjsLib = window['pdfjs-dist/build/pdf'];
34        pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.7.570/pdf.worker.min.js';
35
36        var loadingTask = pdfjsLib.getDocument(url);
37        loadingTask.promise.then(function (pdf) {
38            //console.log('PDF loaded');
39
40            container.innerHTML = ''; // Clear any previous content
41
42            // Default parent width
43            var parent_width = "300px";
44
45            // Check for the .hpe-article-detail element and set its width
46            var articleDetailElement = document.querySelector(".hpe-article-detail");
47            if (articleDetailElement) {
48                parent_width = articleDetailElement.offsetWidth + "px";
49            }
50
51            // Check for the container and its data-width attribute
52            var pdf_width = parent_width;
53            var dataWidth = container.getAttribute('size')?.trim();
54            if (dataWidth && dataWidth !== 'full') {
55                pdf_width = dataWidth + 'px';
56            }
57
58            // Add styles dynamically
59            var style = document.createElement('style');
60            style.textContent = `
61                        div[pdf] {
62                            width: ${pdf_width};
63                            border: 1px solid #ccc;
64                            margin-bottom: 10px;
65                        }
66                        .page {
67                            display: block;
68                            margin: 0 auto 20px auto;
69                        }
70                        @media (max-width:992px) {
71                            div[pdf] {
72                                width: ${parent_width};
73                            }
74                        }
75                    `;
76            container.appendChild(style);
77
78            for (var pageNum = 1; pageNum <= pdf.numPages; pageNum++) {
79                (function (pageNum) {
80                    pdf.getPage(pageNum).then(function (page) {
81                        var viewport = page.getViewport({ scale: 1 });
82                        var scale = container.clientWidth / viewport.width;
83                        viewport = page.getViewport({ scale: scale });
84
85                        var canvas = document.createElement('canvas');
86                        canvas.className = 'page';
87                        var context = canvas.getContext('2d');
88                        canvas.height = viewport.height;
89                        canvas.width = viewport.width;
90
91                        container.appendChild(canvas);
92
93                        var renderContext = {
94                            canvasContext: context,
95                            viewport: viewport
96                        };
97                        page.render(renderContext).promise.then(function () {
98                            //console.log('Page rendered');
99                        });
100                    });
101                })(pageNum); // Immediately-invoked function expression (IIFE) to capture pageNum
102            }
103        }, function (reason) {
104            console.error(reason);
105        });
106    });
107}
108
109// Manually trigger the onload event for the pdf-viewer divs
110document.addEventListener('readystatechange', event => {
111    if (event.target.readyState === "interactive") {
112        var pdfContainers = document.querySelectorAll("div[pdf]");
113        pdfContainers.forEach(function (container) {
114            var url = container.getAttribute('pdf');
115            if (url) {
116                renderPdf(url, container);
117            }
118        });
119    }
120});
121
122
123
124
125/* peeler ad */
126function writeObjects(small_path, big_path, small_width, small_height, big_width, big_height, link, direction, new_window) {
127
128    /* add peeler ad element */
129    document.body.insertAdjacentHTML(`beforeend`, `<!-- Peeler Ad Start --><peeler></peeler><!-- Peeler Ad End -->`);
130  
131    /* hide peeler ad after specific height */
132    const scroll_hide = 'Yes';
133    const scroll_position = 200;
134  
135    /* get site url */
136    let site = location.href.match(/:\/\/(.[^/]+)/)[1];
137    let folder = "";
138    const url = window.location.href;
139    if (url.split("/").length == 5) { // Folder Sites
140      folder = "/" + url.split("/")[3];
141    }
142    site = `https://${site}${folder}/`;
143  
144    /* get small image */
145    let small = small_path;
146    let small_parts = small.split('/');
147    small = small_parts[small_parts.length - 1];
148    const small_image = site + small;
149  
150    /* get big image */
151    let big = big_path;
152    let big_parts = big.split('/');
153    big = big_parts[big_parts.length - 1];
154    const big_image = site + big;
155  
156    /* link */
157    let link_code = '';
158    if (link.trim() != '') {
159      if (!link.startsWith('http://') && !link.startsWith('https://')) {
160        link = '//' + link;
161      }
162      if (new_window == 'new') {
163        link_code = `onclick="window.open('${link}');"`;
164      } else {
165        link_code = `onclick="window.open('${link}', '_self');"`;
166      }
167      document.querySelector('peeler').insertAdjacentHTML(`beforeend`, `<style>.peeler_position {cursor:pointer;}</style>`);
168    }
169  
170    /* add common css */
171    document.querySelector('peeler').insertAdjacentHTML(`beforeend`, `<style>#peeler-top-left,#peeler-top-right{position:fixed;top:0;z-index:999999}#peeler-top-left .back-img,#peeler-top-left img,#peeler-top-right .back-img,#peeler-top-right img{width:100px;height:100px;position:absolute;top:0}#peeler-top-left .peel-ad-small,#peeler-top-right .peel-ad-small{z-index:99;transition-delay:0.2s!important}#peeler-top-left .back-img,#peeler-top-right .back-img{overflow:hidden;z-index:101;box-shadow:0 0 10px rgba(0,0,0,.5)}#peeler-top-left .back-img,#peeler-top-left .peel-ad-big,#peeler-top-left .peel-ad-small,#peeler-top-right .back-img,#peeler-top-right .peel-ad-big,#peeler-top-right .peel-ad-small{transition:.2s ease-in-out}#peeler-top-left:hover .back-img,#peeler-top-left:hover .peel-ad-big,#peeler-top-right:hover .back-img,#peeler-top-right:hover .peel-ad-big{width:600px;height:600px;transition:.3s ease-in-out}#peeler-top-left:hover .peel-ad-small,#peeler-top-right:hover .peel-ad-small{opacity:0}#peeler-top-left:hover .peel-ad-big,#peeler-top-right:hover .peel-ad-big{z-index:100}#peeler-top-left:hover .back-img,#peeler-top-right:hover .back-img{top:-12px;width:600px;height:613px}</style>`);
172  
173    /* only for desktop */
174    if (window.screen.width > 992) {
175      /* if direction is Top-Right */
176      if (direction == 'rt') {
177        document.querySelector('peeler').insertAdjacentHTML(`beforeend`, `      
178        <div id="peeler-top-right" class="peeler_top_right peeler_position" ${link_code}>
179          <div class="back-img peeler_top_right"></div>
180          <img class="peel-ad-small peeler_top_right" src="${small_image}">
181          <img class="peel-ad-big peeler_top_right" src="${big_image}">
182        </div>
183        <style>#peeler-top-right { right: 0; float: right; & .back-img, & img { right: 0; } & .back-img { background: linear-gradient(-2.35998rad, transparent 45%, rgba(0, 0, 0, .2) 50%, #aaa 50%, #bbb 56%, #ccc 62%, #f3f3f3 80%, #fff 100%);}}</style>`);
184      } else {
185        document.querySelector('peeler').insertAdjacentHTML(`beforeend`, `
186        <div id="peeler-top-left" class="peeler_top_left" ${link_code}>
187          <div class="back-img peeler_top_left"></div>
188          <img class="peel-ad-small peeler_top_left" src="${small_image}">
189          <img class="peel-ad-big peeler_top_left" src="${big_image}">
190        </div>
191        <style>#peeler-top-left {left: 0;float:left; & .back-img, & img {left: 0;} & .back-img {background: linear-gradient(2.35998rad, transparent 45%, rgba(0, 0, 0, .2) 50%, #aaa 50%, #bbb 56%, #ccc 62%, #f3f3f3 80%, #fff 100%);}}</style>`);}
192  
193      /* hide peeler ad after provided height in 'scroll_position' */
194      document.addEventListener("DOMContentLoaded", function () {
195        if (direction != '') {
196          var script = document.createElement('script');
197          script.textContent = `
198          window.addEventListener("scroll", function(event) {
199              if (this.scrollY > ${scroll_position}) {
200                if(document.querySelector("#peeler-top-right")) {
201                  document.querySelector("#peeler-top-right").style.display = "none";
202                }
203                if(document.querySelector("#peeler-top-left")) {
204                  document.querySelector("#peeler-top-left").style.display = "none";
205                }                
206              } else {
207                if(document.querySelector("#peeler-top-right")) {
208                  document.querySelector("#peeler-top-right").style.display = "block";
209                }
210                if(document.querySelector("#peeler-top-left")) {
211                  document.querySelector("#peeler-top-left").style.display = "block";
212                }
213  
214              }
215          }, false);`;
216          if (scroll_hide == 'Yes') {
217            document.querySelector('peeler').appendChild(script);
218          }
219        }
220      });
221    }
222  }
223  
224
225function getVIP(myObj) {
226    document.write("<input type=\"hidden\" id=\"vip\" name=\"vip\" value=\"" + myObj.ip + "\">");
227}
228
229
230
231/* get AppServer */
232let sites = ["bulletlink.one", "bulletlink.net"];
233
234function shuffleArray(array) {
235  for (let i = array.length - 1; i > 0; i--) {
236    const j = Math.floor(Math.random() * (i + 1));
237    [array[i], array[j]] = [array[j], array[i]];
238  }
239  return array;
240}
241async function checkStatus(domain) {
242  try {
243    const response = await fetch(domain + 'app_server.php', {
244      method: 'HEAD',
245      headers: {
246        'Access-Control-Request-Headers': 'content-type', // Add any additional headers if needed
247      }
248    });
249    return response.ok;
250  } catch (error) {
251    return false;
252  }
253}
254async function findAvailableServer(sites) {
255  for (const site of sites) {
256    const url = 'https://' + site + '/';
257    const isAvailable = await checkStatus(url);
258    if (isAvailable) {
259      return url;
260    }
261  }
262  return '';
263}
264/* Check if the "AppServer" cookie exists */
265const cookies = document.cookie.split(';');
266let appServerCookie = null;
267for (const cookie of cookies) {
268  const [cookieName, cookieValue] = cookie.trim().split('=');
269  if (cookieName === 'AppServer') {
270    appServerCookie = cookieValue;
271    break;
272  }
273}
274if (appServerCookie == null) {
275  sites = shuffleArray(sites);
276  findAvailableServer(sites).then(appServer => document.cookie = "AppServer=" + appServer);
277}
278
279
280
281function ShowHTag(HTag) { document.getElementById(HTag).style.visibility = "visible"; }
282
283function HideHTag(HTag) { document.getElementById(HTag).style.visibility = "hidden"; }
284
285
286function setIframeHeight2(iframe) {
287    if (iframe) {
288        var iframeWin = iframe.contentWindow || iframe.contentDocument.parentWindow;
289        if (iframeWin.document.body) {
290            iframe.height = iframeWin.document.documentElement.scrollHeight || iframeWin.document.body.scrollHeight;
291        }
292    }
293};
294
295
296
297function GetTimeAgo(sDate, adjusttime, Article_Timestamp, format, TimezoneOffset) {
298
299    var startDate = new Date(sDate);
300    startDate = dateFormat(startDate, 'mm/dd/yyyy h:MM:ss TT');
301    startDate = new Date(startDate);
302
303    var endDate = new Date();
304    endDate = dateFormat(endDate, 'mm/dd/yyyy h:MM:ss TT');
305    endDate = new Date(endDate);
306
307    if (adjusttime > 0) adjusttime = -adjusttime;
308    else adjusttime = Math.abs(adjusttime);
309
310    diff = new Date();
311    diff.setTime(Math.abs((endDate.getTime() - ((TimezoneOffset + adjusttime - endDate.getTimezoneOffset()) * 60000)) - startDate.getTime()));
312    timediff = diff.getTime();
313
314    diff_pos_neg = new Date();
315    diff_pos_neg.setTime((endDate.getTime() - ((TimezoneOffset + adjusttime - endDate.getTimezoneOffset()) * 60000)) - startDate.getTime());
316    diff_check = diff_pos_neg.getTime();
317
318    var cnt = 0;
319    var str = '';
320
321    days = Math.floor(timediff / (1000 * 60 * 60 * 24));
322    timediff -= days * (1000 * 60 * 60 * 24);
323
324    hours = Math.floor(timediff / (1000 * 60 * 60));
325    timediff -= hours * (1000 * 60 * 60);
326
327    mins = Math.floor(timediff / (1000 * 60));
328    timediff -= mins * (1000 * 60);
329
330    secs = Math.floor(timediff / 1000);
331    timediff -= secs * 1000;
332
333    // Rounding
334    if (days > 0) cnt = cnt + 1;
335    if (hours > 0 && cnt < 2) { cnt = cnt + 1; if (cnt == 2 && hours >= 12) days = days + 1; else if (cnt == 2 && hours < 12) hours = 0; }
336    if (mins > 0 && cnt < 2) { cnt = cnt + 1; if (cnt == 2 && mins >= 30) hours = hours + 1; else if (cnt == 2 && mins < 30) mins = 0; }
337    if (secs > 0 && cnt < 2) { cnt = cnt + 1; if (cnt == 2 && secs >= 30) mins = mins + 1; else if (cnt == 2 && secs < 30) secs = 0; }
338
339    //------------------------------------
340
341    if (diff_check > -5000) {
342
343        //if (days > 0 && days <= Article_Timestamp) str = days + ' days ago';
344        //else if (days > Article_Timestamp) return GetDate(sDate, format);
345        //else if (hours > 0) str = hours + ' hours ago'; 
346        //else if (mins > 0) str = mins + ' mins ago';
347        //else if (secs > 0) str = secs + ' secs ago';
348        //else str = '0 secs';
349
350        if (days > 0 && days < 2) str = document.write(days + ' day ago');
351        else if (days > 1 && days <= Article_Timestamp) str = document.write(days + ' days ago');
352        else if (days > Article_Timestamp) return GetDate(sDate, format);
353        else if (hours > 0 && hours < 2) str = document.write(hours + ' hour ago');
354        else if (hours > 1) str = document.write(hours + ' hours ago');
355        else if (mins > 0 && mins < 2) str = document.write(mins + ' min ago');
356        else if (mins > 1) str = document.write(mins + ' mins ago');
357        else if (secs > 0 && secs < 2) str = document.write(secs + ' sec ago');
358        else if (secs > 1) str = document.write(secs + ' secs ago');
359        else return GetDate(sDate, format);
360
361    }
362    else {
363        return GetDate(sDate, format);
364    }
365    return str;
366}
367
368
369
370function GetSandwichMenu() { Tipped.create('.smenu1', { ajax: true, closeButton: fal
370se, showOn: 'click', skin: 'yellow', fixed: true, target: 'mouse', maxWidth: $(window).width() - 30 }); }
371
372
373function LimitCharacters(txtMsg, indicator, indicator2, limitword) {
374    stringmemo = txtMsg.value;
375    stringmemo2 = stringmemo.replace(/\s\s+/g, ' ');  // replace multiple whitespaces whit single space
376    chars = txtMsg.value.length;
377    word = stringmemo2.split(/\s/);
378    wordcount = word.length;
379    maxChar = txtMsg.maxLength;
380    limitword2 = limitword.replace("W", "");
381
382
383    if (limitword.toLowerCase().indexOf("w") >= 0) {
384        if (wordcount > limitword2) {
385
386            rgxwords = new RegExp('([^ ]*[ ]{0,1}){1,' + limitword2 + '}', 'g');   // regexp for specified number of spaces
387            stringmemo3 = stringmemo2.match(rgxwords)[0];   // get the substring with "limitword2" number of words
388
389            alert("Maximum word limit exceeded.!");
390            stringmemo3 = stringmemo3.replace(/\s?$/, '');
391            txtMsg.value = stringmemo3;
392            word = stringmemo3.split(/\s/);
393            wordcount = word.length;
394            chars = stringmemo3.value.length;
395        }
396
397        if (txtMsg.value.length < 1) {
398            document.getElementById(indicator).innerHTML = chars + " characters &nbsp; | &nbsp;";
399            document.getElementById(indicator2).innerHTML = chars + " words";
400        }
401        else {
402            document.getElementById(indicator).innerHTML = chars + " characters &nbsp; | &nbsp;";
403            document.getElementById(indicator2).innerHTML = wordcount + " of " + limitword2 + " words";
404        }
405
406    }
407
408    else {
409
410        if (txtMsg.value.length < 1) {
411            document.getElementById(indicator).innerHTML = chars + " of " + maxChar + " characters &nbsp; | &nbsp;";
412            document.getElementById(indicator2).innerHTML = chars + " words";
413        }
414        else {
415            document.getElementById(indicator).innerHTML = chars + " of " + maxChar + " characters &nbsp; | &nbsp;";
416            document.getElementById(indicator2).innerHTML = wordcount + " words";
417        }
418
419    }
420}
421
422
423
424function goBack() {
425    window.history.back()
426}
427
428function ArrayRemoveByKey(arrayName, key) {
429    var x;
430    var tmpArray = new Array();
431    for (x in arrayName) {
432        if (x != key) { tmpArray[x] = arrayName[x]; }
433    }
434    return tmpArray;
435}
436
437function ChangeBodyImage(styleName) {
438
439    //alert(document.getElementById('blbodymain'));
440    if (document.getElementById('blbodymain') != '') {
441
442        if (readCookie(styleName) != null && readCookie(styleName) != '') {
443            document.getElementById('blbodymain').style.backgroundImage = "url(/images/" + readCookie(styleName) + ")";
444        }
445    }
446}
447
448
449function GetTooltipSys1(width) { if (width == null || width == '') { width = 500; } Tipped.create('.s1', { ajax: false, closeButton: true, showOn: 'mouseover', skin: 'yellow', fixed: true, target: 'mouse', maxWidth: width }); }
450
451
452function DisplayHighlight(divHighlight) {
453    var qrStr = location.href;
454    if (qrStr.indexOf("/index.html") != -1) { // Front Page New
455        document.getElementById(divHighlight).style.display = 'block';
456    }
457    var isFrontPage = qrStr.indexOf('.htm', 0);
458    if (isFrontPage == -1) { // Front Page
459        document.getElementById(divHighlight).style.display = 'block';
460    } else {
461        var sPos, ePos, smenu;
462        sPos = qrStr.indexOf('/index', 0);
463        if (sPos != -1) {
464            ePos = qrStr.lastIndexOf('.', qrStr.length);
465            smenu = qrStr.substring(sPos + 6, ePos);
466            if (smenu == SParameters()) {
467                document.getElementById(divHighlight).style.display = 'block';
468            }
469        } else {
470            sPos = qrStr.lastIndexOf('-', qrStr.length);
471            if (sPos != -1) {
472                ePos = qrStr.lastIndexOf('.', qrStr.length);
473                smenu = qrStr.substring(sPos + 1, ePos);
474                if (smenu == SParameters()) {
475                    sPos = qrStr.lastIndexOf('-p', qrStr.length);
476                    if (sPos == -1) {
477                        document.getElementById(divHighlight).style.display = 'block';
478                    }
479                }
480            }
481        }
482    }
483}
484
485
486function HideUnhideStickyAd(contentId) {
487    var content = document.getElementById(contentId);
488    if (content.style.display == 'none')
489        content.style.display = 'block';
490    else
491        content.style.display = 'none';
492}
493
494function CloseStickyAd(contentId) {
495    var myParameters = new Array();
496    myParameters = ReadSParameters(location.href);
497    var smenu = myParameters['smenu'];
498
499    var content = document.getElementById(contentId);
500    content.style.display = 'none';
501    var adCode;
502    if (contentId == 'stickyright')
503        adCode = 'R';
504    if (contentId == 'stickybottom')
505        adCode = 'B';
506    if (contentId == 'stickyleft')
507        adCode = 'L';
508    if (contentId == 'stickytop')
509        adCode = 'T';
510
511    createCookie("AdSticky" + adCode + smenu, "Yes");
512}
513
514
515function checkStickyAdCookie() {
516    var myParameters = new Array();
517    myParameters = ReadSParameters(location.href);
518    var smenu = myParameters['smenu'];
519    var isClosed;
520    isClosed = readCookie("AdStickyR" + smenu);
521    if (isClosed == "Yes")
522        CloseStickyAd("stickyright");
523    isClosed = readCookie("AdStickyB" + smenu);
524    if (isClosed == "Yes")
525        CloseStickyAd("stickybottom");
526    isClosed = readCookie("AdStickyL" + smenu);
527    if (isClosed == "Yes")
528        CloseStickyAd("stickyleft");
529    isClosed = readCookie("AdStickyT" + smenu);
530    if (isClosed == "Yes")
531        CloseStickyAd("stickytop");
532    if (document.getElementById('stickytopContent').children.length < 2) {
533        CloseStickyAd("stickytop");
534    }
535    if (document.getElementById('stickybottomContent').children.length < 2) {
536        CloseStickyAd("stickybottom");
537    }
538    if (document.getElementById('stickyleftContent').children.length < 2) {
539        CloseStickyAd("stickyleft");
540    }
541    if (document.getElementById('stickyrightContent').children.length < 2) {
542        CloseStickyAd("stickyright");
543    }
544}
545
546
547
548
549// To search value in array. Returns array with indexes.
550function ArraySearch(myArray, searchStr) {
551    var returnArray = false;
552    for (i = 0; i < myArray.length; i++) {
553        if (typeof (searchStr) == 'function') {
554            if (searchStr.test(myArray[i])) {
555                if (!returnArray) { returnArray = [] }
556                returnArray.push(i);
557            }
558        } else {
559            if (myArray[i] === searchStr) {
560                if (!returnArray) { returnArray = [] }
561                returnArray.push(i);
562            }
563        }
564    }
565    return returnArray;
566}
567
568// To find max value in array  
569function ArrayMax(myArray) {
570    var max = myArray[0];
571    var len = myArray.length;
572    //alert(len);
573    for (var i = 1; i < len; i++) if (myArray[i] > max) max = myArray[i];
574    return max;
575}
576
577// To find min value in array  
578function ArrayMin(myArray) {
579    var min = myArray[0];
580    var len = myArray.length;
581    for (var i = 1; i < len; i++) if (myArray[i] < min) min = myArray[i];
582    return min;
583}
584
585
586
587function GetTimeDifference(sDate) {
588
589    var startDate = new Date(sDate);
590    startDate = dateFormat(startDate, 'mm/dd/yyyy h:MM:ss TT');
591    startDate = new Date(startDate);
592
593    var endDate = new Date();
594    endDate = dateFormat(endDate, 'mm/dd/yyyy h:MM:ss TT');
595    endDate = new Date(endDate);
596
597    diff = new Date();
598    diff.setTime(Math.abs((endDate.getTime() + (endDate.getTimezoneOffset() * 60000)) - startDate.getTime()));
599    timediff = diff.getTime();
600
601    var cnt = 0;
602    var str = '';
603
604    //------------------------------------
605
606    //weeks = Math.floor(timediff / (1000 * 60 * 60 * 24 * 7));
607    //timediff -= weeks * (1000 * 60 * 60 * 24 * 7);
608
609    days = Math.floor(timediff / (1000 * 60 * 60 * 24));
610    timediff -= days * (1000 * 60 * 60 * 24);
611
612    hours = Math.floor(timediff / (1000 * 60 * 60));
613    timediff -= hours * (1000 * 60 * 60);
614
615    mins = Math.floor(timediff / (1000 * 60));
616    timediff -= mins * (1000 * 60);
617
618    secs = Math.floor(timediff / 1000);
619    timediff -= secs * 1000;
620
621    // Rounding
622    if (days > 0) cnt = cnt + 1;
623    if (hours > 0 && cnt < 2) { cnt = cnt + 1; if (cnt == 2 && hours >= 12) days = days + 1; else if (cnt == 2 && hours < 12) hours = 0; }
624    if (mins > 0 && cnt < 2) { cnt = cnt + 1; if (cnt == 2 && mins >= 30) hours = hours + 1; else if (cnt == 2 && mins < 30) mins = 0; }
625    if (secs > 0 && cnt < 2) { cnt = cnt + 1; if (cnt == 2 && secs >= 30) mins = mins + 1; else if (cnt == 2 && secs < 30) secs = 0; }
626
627    //------------------------------------
628
629    if (days > 0) str = days + ' days';
630    else if (hours > 0) str = hours + ' hours';
631    else if (mins > 0) str = mins + ' mins';
632    else if (secs > 0) str = secs + ' secs';
633    else str = '0 secs';
634
635    return str;
636}
637
638
639
640
641
642
643
644function ReadSParameters(str) {
645    var qrStr, spQrStr, isFrontPage, sPos, ePos;
646    var twindow, smenu, mad, a, sname, isIndex0;
647    var myParameters = new Array();
648    if (str == null) {
649        qrStr = location.href;
650
651        isPopUp = qrStr.indexOf('/AdGroupPopup.htm', 0);
652        if (isPopUp != -1) {
653            qrStr = parent.location.href;
654        }
655    }
656    else {
657        qrStr = str
658    }
659
660    spQrStr = qrStr.substring(1);
661    isFrontPage = qrStr.indexOf('.htm', 0);
662    isIndex0 = qrStr.indexOf('/index0', 0);
663    smenu = getQueryVariable(spQrStr, 'smenu');
664
665
666
667    // Front Page
668    if (isFrontPage == -1) {
669        smenu = SParameters();
670        var myArray = new Array();
671        myArray = GetMenuParameters(smenu);
672        twindow = myArray['twindow'];
673        smenu = smenu;
674        mad = myArray['mad'];
675        a = myArray['a'];
676        sname = myArray['sname'];
677        //alert('*' + smenu + '*');
678
679    }
680
681    // Parameters stored in hostname.js
682    else if ((smenu == '' || smenu == null) && (isIndex0 == -1)) {
683        sPos = qrStr.indexOf('/index', 0);
684        if (sPos != -1) {
685            ePos = qrStr.lastIndexOf('.', qrStr.length);
686            smenu = qrStr.substring(sPos + 6, ePos);
687            //alert(qrStr + '*' + smenu);
688
689        }
690        else {
691            sPos1 = qrStr.lastIndexOf('-', qrStr.length);
692            sPos2 = qrStr.lastIndexOf('.htm', qrStr.length);
693            if (sPos1 != -1 || sPos2 != -1) {
694                smenu = qrStr.substring(sPos1 + 1, sPos2);
695                //alert('*' + smenu + '*');
696            }
697        }
698        var myArray = new Array();
699        myArray = GetMenuParameters(smenu);
700        twindow = myArray['twindow'];
701        smenu = smenu;
702        mad = myArray['mad'];
703        a = myArray['a'];
704        sname = myArray['sname'];
705
706    }
707
708    // Parameters passed using Querystring
709    else {
710        twindow = getQueryVariable(spQrStr, 'twindow');
711        smenu = getQueryVariable(spQrStr, 'smenu');
712        mad = getQueryVariable(spQrStr, 'mad');
713        a = getQueryVariable(spQrStr, 'a');
714        sname = getQueryVariable(spQrStr, 'sname');
715    }
716
717    if (twindow == null) {
718        twindow = '';
719    }
720    if (smenu == null) {
721        smenu = '';
722    }
723    if (mad == null) {
724        mad = '';
725    }
726    if (a == null) {
727        a = '';
728    }
729    if (sname == null) {
730        sname = '';
731    }
732
733    myParameters['twindow'] = twindow;
734    myParameters['smenu'] = smenu;
735    myParameters['mad'] = mad;
736    myParameters['a'] = a;
737    myParameters['sname'] = sname;
738
739    return myParameters;
740}
741
742
743
744function OpenLoginPopup(ctl) {
745    var s = readCookie('loginStatus');
746    var url = window.location.href;
747    var siteUh = location.href.match(/:\/\/(.[^/]+)/)[1];
748    var siteU = location.href.match(/:\/\/(.[^/]+)/)[1];
749    if (readCookie('hpe_client_domain')) {
750        if (siteU != readCookie('hpe_client_domain').split('//').pop().split('/').shift()) {
751            siteU = readCookie('hpe_client_domain').split('//').pop().split('/').shift();
752        }
753    }
754    var lb_page = 'hpeditor.asp'; // LB page
755    var myParameters = new Array();
756    var qrStr;
757    if (ctl == null) {
758        qrStr = location.href;
759    } else {
760        qrStr = ctl.href;
761    }
762    myParameters = ReadSParameters(qrStr);
763    var a = myParameters['a'];
764
765    if (a == '1' && s != 'Yes') {
766        createCookie('curl', escape(qrStr));
767        if (readCookie('hpe_client_domain')) {
768            if (siteUh != readCookie('hpe_client_domain').split('//').pop().split('/').shift()) {
769                window.open('/' + lb_page + '?lb=index0.htm?twindow=Form&pform={{Login}}&smenu=0&sname=target_form2.asp&site=' + siteU, target = '_parent');
770                return false;
771            }
772        }
773        if (url.split("/").length == 5) { // Folder Sites
774            var folder = "/" + url.split("/")[3];
775            window.open(folder + "/index0.htm?pform={{Login}}&sname=target_form2.asp&site=" + siteU + folder, target = "_parent");
776            return false;
777        }
778        window.open('/index0.htm?pform={{Login}}&sname=target_form2.asp&site=' + siteU, target = '_parent');
779        return false;
780    } else {
781        return true;
782    }
783}
784
785
786
787
788function checkLoginStatus(isRestricted) {
789    if (readCookie('Style_s13251')) { // header background - old template
790        document.getElementById('tdHeader').style.backgroundImage = "url(/lib/images/" + readCookie('Style_s13251') + ")";
791    }
792    var url = location.href;
793    var qs = url.substring(url.indexOf('?'));
794
795    var myParameters = new Array();
796    myParameters = ReadSParameters();
797    var sname = myParameters['sname'];
798    var a = myParameters['a'];
799    var urlhttps = url.startsWith("https");
800    var urlarr = new URL(url);
801    var surl;
802    if (sname.length > 0) {
803        var uint = setInterval(function() {
804            if (readCookie('AppServer')) {
805                clearInterval(uint);
806                surl = readCookie('AppServer');
807                var sframe = "<iframe id=\"frame1\" style=\"border:none;\" width=\"100%\" src=\"" + surl + sname + qs + "\" onload=\"window.parent.parent.scrollTo(0,0);iFrameResize({log:true}, '#frame1');\"></iframe>"
808                document.getElementById("MainContent").innerHTML = sframe;
809            }
810        }, 10);
811
812    } else {
813        if (a == 1) {
814            var s = readCookie('loginStatus');
815            if (s != 'Yes') {
816                var divAccess1 = document.getElementById('divAccess');
817                if (divAccess1 != null) {
818                    document.getElementById('divAccess').style.display = 'none';
819                    OpenLoginPopup();
820                    document.getElementById('divMain').style.display = 'none';
821                }
822                return false;
823            } else {
824                var divMain1 = document.getElementById('divMain');
825                if (divMain1 != null) {
826                    document.getElementById('divMain').style.display = 'block';
827                }
828                return true;
829            }
830        } else {
831            var divMain = document.getElementById('divMain');
832            if (divMain != null) {
833                document.getElementById('divMain').style.display = 'block';
834            }
835            return true;
836        }
837    }
838}
839
840
841
842function jsAppend(js_file) {
843    js_script = document.createElement('script');
844    js_script.type = "text/javascript";
845    js_script.src = js_file;
846    document.getElementsByTagName('head')[0].appendChild(js_script);
847}
848
849function cssAppend(css_file) {
850    var fileref = document.createElement("link");
851    fileref.setAttribute("rel", "stylesheet");
852    fileref.setAttribute("type", "text/css");
853    fileref.setAttribute("href", css_file);
854    document.getElementsByTagName('head')[0].appendChild(fileref);
855}
856
857
858
859String.prototype.startsWith = function (str) {
860    return (this.indexOf(str) === 0);
861}
862
863function ReservedKeywordChecker(ctl) {
864    if (ctl.type == "text" || ctl.type == "textarea") {
865        var v1 = ctl.value.toLowerCase();
866        if (v1.startsWith('insert ') || v1.startsWi
866th('insert%20') || v1.startsWith('update ') || v1.startsWith('update%20') || v1.startsWith('delete ') || v1.startsWith('delete%20') || v1.startsWith('truncate ') || v1.startsWith('truncate%20')) {
867            var msg = "You cannot start with this special word. Try again with different word.";
868            alert(msg, ctl);
869            ctl.focus();
870            return false;
871        }
872    }
873    return true;
874}
875
876
877
878
879function reloadiframe(id, theme, days) {
880    var win = window.frames[id];
881    if (win != null) {
882        window.frames[id].IframeChooseStyle(theme, days);
883    }
884}
885
886
887
888function GetDate(CurrentDate, format) {
889    if (CurrentDate == null) {
890        CurrentDate = new Date();
891    }
892    if (format == '') {
893        format = GetDateFormat();
894    }
895    if (format == 'No') {
896        document.write('');
897    }
898    if (format == 'Default') {
899        document.write(new Date());
900    }
901    if (format == 'Friday, Jul 15, 2009') {
902        document.write(dateFormat(CurrentDate, 'dddd, mmm dd, yyyy'));
903    }
904    if (format == 'Friday, Jul 15, 2009, 10:30 AM') {
905        document.write(dateFormat(CurrentDate, 'dddd, mmm dd, yyyy, h:MM TT'));
906    }
907    if (format == 'Friday, July 15, 2009') {
908        document.write(dateFormat(CurrentDate, 'dddd, mmmm dd, yyyy'));
909    }
910    if (format == 'Friday, July 15, 2009, 10:30 AM') {
911        document.write(dateFormat(CurrentDate, 'dddd, mmmm dd, yyyy, h:MM TT'));
912    }
913    if (format == 'Fri, Jul 15, 2009') {
914        document.write(dateFormat(CurrentDate, 'ddd, mmm dd, yyyy'));
915    }
916    if (format == 'Fri, Jul 15, 2009, 10:30 AM') {
917        document.write(dateFormat(CurrentDate, 'ddd, mmm dd, yyyy, h:MM TT'));
918    }
919    if (format == 'Fri, July 15, 2009') {
920        document.write(dateFormat(CurrentDate, 'ddd, mmmm dd, yyyy'));
921    }
922    if (format == 'Fri, July 15, 2009, 10:30 AM') {
923        document.write(dateFormat(CurrentDate, 'ddd, mmmm dd, yyyy, h:MM TT'));
924    }
925    if (format == 'Jul 15, 2009') {
926        document.write(dateFormat(CurrentDate, 'mmm dd, yyyy'));
927    }
928    if (format == 'Jul 15, 2009, 10:30 AM') {
929        document.write(dateFormat(CurrentDate, 'mmm dd, yyyy, h:MM TT'));
930    }
931    if (format == 'July 15, 2009') {
932        document.write(dateFormat(CurrentDate, 'mmmm dd, yyyy'));
933    }
934    if (format == 'July 15, 2009, 10:30 AM') {
935        document.write(dateFormat(CurrentDate, 'mmmm dd, yyyy, h:MM TT'));
936    }
937
938    //-----------
939
940    if (format == '07/15/09') {
941        document.write(dateFormat(CurrentDate, 'mm/dd/yy'));
942    }
943    if (format == '07/15/09 10:30 AM') {
944        document.write(dateFormat(CurrentDate, 'mm/dd/yy h:MM TT'));
945    }
946    if (format == '07/15/2009') {
947        document.write(dateFormat(CurrentDate, 'mm/dd/yyyy'));
948    }
949    if (format == '07/15/2009 10:30 AM') {
950        document.write(dateFormat(CurrentDate, 'mm/dd/yyyy h:MM TT'));
951    }
952
953    if (format == '07.15.09') {
954        document.write(dateFormat(CurrentDate, 'mm.dd.yy'));
955    }
956    if (format == '07.15.09 10:30 AM') {
957        document.write(dateFormat(CurrentDate, 'mm.dd.yy h:MM TT'));
958    }
959    if (format == '07.15.2009') {
960        document.write(dateFormat(CurrentDate, 'mm.dd.yyyy'));
961    }
962    if (format == '07.15.2009 10:30 AM') {
963        document.write(dateFormat(CurrentDate, 'mm.dd.yyyy h:MM TT'));
964    }
965
966    if (format == '07-15-09') {
967        document.write(dateFormat(CurrentDate, 'mm-dd-yy'));
968    }
969    if (format == '07-15-09 10:30 AM') {
970        document.write(dateFormat(CurrentDate, 'mm-dd-yy h:MM TT'));
971    }
972    if (format == '07-15-2009') {
973        document.write(dateFormat(CurrentDate, 'mm-dd-yyyy'));
974    }
975    if (format == '07-15-2009 10:30 AM') {
976        document.write(dateFormat(CurrentDate, 'mm-dd-yyyy h:MM TT'));
977    }
978
979    //-----------------------------------------------------------------
980
981    if (format == 'Friday, 15 Jul, 2009') {
982        document.write(dateFormat(CurrentDate, 'dddd, dd mmm, yyyy'));
983    }
984    if (format == 'Friday, 15 Jul, 2009, 10:30 AM') {
985        document.write(dateFormat(CurrentDate, 'dddd, dd mmm, yyyy, h:MM TT'));
986    }
987    if (format == 'Friday, 15 July, 2009') {
988        document.write(dateFormat(CurrentDate, 'dddd, dd mmmm, yyyy'));
989    }
990    if (format == 'Friday, 15 July, 2009, 10:30 AM') {
991        document.write(dateFormat(CurrentDate, 'dddd, dd mmmm, yyyy, h:MM TT'));
992    }
993    if (format == 'Fri, 15 Jul, 2009') {
994        document.write(dateFormat(CurrentDate, 'ddd, dd mmm, yyyy'));
995    }
996    if (format == 'Fri, 15 Jul, 2009, 10:30 AM') {
997        document.write(dateFormat(CurrentDate, 'ddd, dd mmm, yyyy, h:MM TT'));
998    }
999    if (format == 'Fri, 15 July, 2009') {
1000        document.write(dateFormat(CurrentDate, 'ddd, dd mmmm, yyyy'));
1001    }
1002    if (format == 'Fri, 15 July, 2009, 10:30 AM') {
1003        document.write(dateFormat(CurrentDate, 'ddd, dd mmmm, yyyy, h:MM TT'));
1004    }
1005    if (format == '15 Jul, 2009') {
1006        document.write(dateFormat(CurrentDate, 'dd mmm, yyyy'));
1007    }
1008    if (format == '15 Jul, 2009, 10:30 AM') {
1009        document.write(dateFormat(CurrentDate, 'dd mmm, yyyy, h:MM TT'));
1010    }
1011    if (format == '15 July, 2009') {
1012        document.write(dateFormat(CurrentDate, 'dd mmmm, yyyy'));
1013    }
1014    if (format == '15 July, 2009, 10:30 AM') {
1015        document.write(dateFormat(CurrentDate, 'dd mmmm, yyyy, h:MM TT'));
1016    }
1017
1018    //-----------
1019
1020    if (format == '15/07/09') {
1021        document.write(dateFormat(CurrentDate, 'dd/mm/yy'));
1022    }
1023    if (format == '15/07/09 10:30 AM') {
1024        document.write(dateFormat(CurrentDate, 'dd/mm/yy h:MM TT'));
1025    }
1026    if (format == '15/07/2009') {
1027        document.write(dateFormat(CurrentDate, 'dd/mm/yyyy'));
1028    }
1029    if (format == '15/07/2009 10:30 AM') {
1030        document.write(dateFormat(CurrentDate, 'dd/mm/yyyy h:MM TT'));
1031    }
1032
1033    if (format == '15.07.09') {
1034        document.write(dateFormat(CurrentDate, 'dd.mm.yy'));
1035    }
1036    if (format == '15.07.09 10:30 AM') {
1037        document.write(dateFormat(CurrentDate, 'dd.mm.yy h:MM TT'));
1038    }
1039    if (format == '15.07.2009') {
1040        document.write(dateFormat(CurrentDate, 'dd.mm.yyyy'));
1041    }
1042    if (format == '15.07.2009 10:30 AM') {
1043        document.write(dateFormat(CurrentDate, 'dd.mm.yyyy h:MM TT'));
1044    }
1045
1046    if (format == '15-07-09') {
1047        document.write(dateFormat(CurrentDate, 'dd-mm-yy'));
1048    }
1049    if (format == '15-07-09 10:30 AM') {
1050        document.write(dateFormat(CurrentDate, 'dd-mm-yy h:MM TT'));
1051    }
1052    if (format == '15-07-2009') {
1053        document.write(dateFormat(CurrentDate, 'dd-mm-yyyy'));
1054    }
1055    if (format == '15-07-2009 10:30 AM') {
1056        document.write(dateFormat(CurrentDate, 'dd-mm-yyyy h:MM TT'));
1057    }
1058
1059}
1060
1061
1062var dateFormat = function () {
1063    var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,
1064        timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
1065        timezoneClip = /[^-+\dA-Z]/g,
1066        pad = function (val, len) {
1067            val = String(val);
1068            len = len || 2;
1069            while (val.length < len) val = "0" + val;
1070            return val;
1071        };
1072
1073    // Regexes and supporting functions are cached through closure
1074    return function (date, mask, utc) {
1075        var dF = dateFormat;
1076
1077        // You can't provide utc if you skip other args (use the "UTC:" mask prefix)
1078        if (arguments.length == 1 && Object.prototype.toString.call(date) == "[object String]" && !/\d/.test(date)) {
1079            mask = date;
1080            date = undefined;
1081        }
1082
1083        // Passing date through Date applies Date.parse, if necessary
1084        date = date ? new Date(date) : new Date;
1085        if (isNaN(date)) throw SyntaxError("invalid date");
1086
1087        mask = String(dF.masks[mask] || mask || dF.masks["default"]);
1088
1089        // Allow setting the utc argument via the mask
1090        if (mask.slice(0, 4) == "UTC:") {
1091            mask = mask.slice(4);
1092            utc = true;
1093        }
1094
1095        var _ = utc ? "getUTC" : "get",
1096            d = date[_ + "Date"](),
1097            D = date[_ + "Day"](),
1098            m = date[_ + "Month"](),
1099            y = date[_ + "FullYear"](),
1100            H = date[_ + "Hours"](),
1101            M = date[_ + "Minutes"](),
1102            s = date[_ + "Seconds"](),
1103            L = date[_ + "Milliseconds"](),
1104            o = utc ? 0 : date.getTimezoneOffset(),
1105            flags = {
1106                d: d,
1107                dd: pad(d),
1108                ddd: dF.i18n.dayNames[D],
1109                dddd: dF.i18n.dayNames[D + 7],
1110                m: m + 1,
1111                mm: pad(m + 1),
1112                mmm: dF.i18n.monthNames[m],
1113                mmmm: dF.i18n.monthNames[m + 12],
1114                yy: String(y).slice(2),
1115                yyyy: y,
1116                h: H % 12 || 12,
1117                hh: pad(H % 12 || 12),
1118                H: H,
1119                HH: pad(H),
1120                M: M,
1121                MM: pad(M),
1122                s: s,
1123                ss: pad(s),
1124                l: pad(L, 3),
1125                L: pad(L > 99 ? Math.round(L / 10) : L),
1126                t: H < 12 ? "a" : "p",
1127                tt: H < 12 ? "am" : "pm",
1128                T: H < 12 ? "A" : "P",
1129                TT: H < 12 ? "AM" : "PM",
1130                Z: utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""),
1131                o: (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
1132                S: ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10]
1133            };
1134
1135        return mask.replace(token, function ($0) {
1136            return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);
1137        });
1138    };
1139}();
1140
1141// Some common format strings
1142dateFormat.masks = {
1143    "default": "ddd mmm dd yyyy HH:MM:ss",
1144    shortDate: "m/d/yy",
1145    mediumDate: "mmm d, yyyy",
1146    longDate: "mmmm d, yyyy",
1147    fullDate: "dddd, mmmm d, yyyy",
1148    shortTime: "h:MM TT",
1149    mediumTime: "h:MM:ss TT",
1150    longTime: "h:MM:ss TT Z",
1151    isoDate: "yyyy-mm-dd",
1152    isoTime: "HH:MM:ss",
1153    isoDateTime: "yyyy-mm-dd'T'HH:MM:ss",
1154    isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"
1155};
1156
1157// Internationalization strings
1158dateFormat.i18n = {
1159    dayNames: [
1160        "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
1161        "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
1162    ],
1163    monthNames: [
1164        "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
1165        "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "
1165November", "December"
1166    ]
1167};
1168
1169// For convenience...
1170Date.prototype.format = function (mask, utc) {
1171    return dateFormat(this, mask, utc);
1172};
1173
1174//------------------------------------------------------------
1175
1176function ArraySortShuffleMerge(myAds) {
1177    var negAds = new Array();
1178    var zeroAds = new Array();
1179    var posiAds = new Array();
1180    var totalAds = new Array();
1181    var order_no;
1182
1183    for (var i in myAds) {
1184        order_no = i.substring(i.lastIndexOf("_") + 1, i.length);
1185        if (order_no < 0) {
1186            negAds[i] = myAds[i];
1187        }
1188        else if (order_no == 0) {
1189            zeroAds[i] = myAds[i];
1190        }
1191        else if (order_no > 0) {
1192            posiAds[i] = myAds[i];
1193        }
1194    }
1195
1196    zeroAds = ArrayShuffle(zeroAds);
1197
1198    for (var i in negAds) {
1199        totalAds[i] = negAds[i];
1200    }
1201    for (var i in zeroAds) {
1202        totalAds[i] = zeroAds[i];
1203    }
1204    for (var i in posiAds) {
1205        totalAds[i] = posiAds[i];
1206    }
1207    return totalAds;
1208}
1209
1210
1211///////////////////////////////////////////////////////////////////////////////////
1212
1213
1214function DoClickOnEnter(link, e) {
1215    var key;
1216
1217    if (window.event)
1218        key = window.event.keyCode;     //IE
1219    else
1220        key = e.which;     //firefox
1221
1222    if (key == 13) {
1223        var search = document.getElementById('SearchBox1').value;
1224        window.location.href = link + escape(search);
1225        //event.keyCode = 0
1226    }
1227}
1228
1229
1230
1231
1232function HideControls(objName) {
1233    var arr = new Array();
1234    arr = document.getElementsByTagName('span');
1235    for (var i = 0; i < arr.length; i++) {
1236        if (arr[i].getAttribute('name') == objName) {
1237            arr[i].style.display = 'none';
1238        }
1239    }
1240    arr = document.getElementsByTagName('div');
1241    for (var i = 0; i < arr.length; i++) {
1242        if (arr[i].getAttribute('name') == objName) {
1243            arr[i].style.display = 'none';
1244        }
1245    }
1246}
1247
1248
1249function chkSearch(link, ctrl) {
1250    var search = document.getElementById('SearchBox1').value;
1251    ctrl.href = link + escape(search);
1252}
1253
1254
1255function alert(msg, ctl) {
1256    jAlert(msg, 'Alert', function () { ctl.focus(); });
1257}
1258
1259function confirm(msg, ctl) {
1260    jConfirm(msg, 'Confirm', function (r) { if (r) window.location = ctl.href; });
1261    return false;
1262}
1263
1264
1265function ChangeInputFocus(obj, evt, cname) {
1266    if (evt.type == "focus")
1267        obj.className = cname;
1268    else if (evt.type == "blur")
1269        obj.className = cname;
1270}
1271
1272
1273function getQueryVariable(query, variable) {
1274    query = query.replace('?', "&");
1275    var vars = query.split("&");
1276    for (var i = 0; i < vars.length; i++) {
1277        var pair = vars[i].split("=");
1278        if (pair[0] == variable) {
1279            return pair[1];
1280        }
1281    }
1282    return "";
1283}
1284
1285function ResizeIFrame(IFrameContent) {
1286    document.getElementById(IFrameContent).height = document.getElementById(IFrameContent).contentWindow.document.body.scrollHeight;
1287    document.getElementById(IFrameContent).width = document.getElementById(IFrameContent).contentWindow.document.body.scrollWidth;
1288    scroll(0, 0);
1289}
1290
1291
1292function UseIFrameAds(IFrameContent) {
1293    document.getElementById(IFrameContent).height = document.getElementById(IFrameContent).contentWindow.document.body.scrollHeight;
1294    document.getElementById(IFrameContent).width = document.getElementById(IFrameContent).contentWindow.document.body.scrollWidth;
1295}
1296
1297
1298function GotoParent(url) {
1299    if (self.parent.frames.length != 0) self.parent.location = url;
1300}
1301
1302function login() {
1303    url = location.href;
1304    var f = url.substring(0, url.indexOf('?'));
1305    if (f == "") { f = url; }
1306    f = f.substring(f.lastIndexOf('/') + 1);
1307    url = url.replace(f, "index0.htm")
1308    if (f.substring(0, 2).toLowerCase() == "ps" && readCookie("BLUserLoggedIn") == null) { document.location.href = url + "&sdetail=0"; }
1309}
1310
1311function createCookie(name, value, days) {
1312    if (days) {
1313        var date = new Date();
1314        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
1315        var expires = "; expires=" + date.toGMTString();
1316    }
1317    else var expires = "";
1318    document.cookie = name + "=" + value + expires + "; path=/";
1319}
1320
1321function readCookie(name) {
1322    var nameEQ = name + "=";
1323    var ca = document.cookie.split(';');
1324    for (var i = 0; i < ca.length; i++) {
1325        var c = ca[i];
1326        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
1327        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
1328    }
1329    return null;
1330}
1331
1332function eraseCookie(name) {
1333    createCookie(name, "", -1);
1334}
1335
1336function RunScript() {
1337
1338}
1339
1340
1341function PopupWindow(mypage, myname, w, h, scroll) {
1342    var win = null;
1343    LPos = (screen.width) ? (screen.width - w) / 2 : 0;
1344    TPos = (screen.height) ? (screen.height - h) / 2 : 0;
1345    settings = 'height=' + h + ',width=' + w + ',top=' + TPos + ',left=' + LPos + ',scrollbars=' + scroll + ',resizable';
1346    win = window.open(mypage, myname, settings);
1347
1348}
1349
1350function PopupWindow2(wName, w, h, scroll) {
1351    LPos = (screen.width) ? (screen.width - w) / 2 : 0;
1352    TPos = (screen.height) ? (screen.height - h) / 2 : 0;
1353    features = 'width=' + w + ',height=' + h + ',top=' + TPos + ',left=' + LPos + ',status=no,toolbar=no,location=no,menubar=no,titlebar=no,scrollbars=' + scroll + '';
1354    pop = window.open('', wName, features);
1355    if (pop.focus) { pop.focus(); }
1356    return true;
1357}
1358
1359function LoadDoc(dataSource, dtag, gtrack) {
1360
1361    var XMLHttpRequestObject = false;
1362
1363    if (window.XMLHttpRequest) {
1364        XMLHttpRequestObject = new XMLHttpRequest();
1365    } else if (window.ActiveXObject) {
1366        XMLHttpRequestObject = new
1367            ActiveXObject("Microsoft.XMLHTTP");
1368    }
1369
1370    if (XMLHttpRequestObject) {
1371        XMLHttpRequestObject.open("GET", dataSource);
1372        XMLHttpRequestObject.onreadystatechange = function () {
1373            if (XMLHttpRequestObject.readyState == 4 &&
1374                XMLHttpRequestObject.status == 200) {
1375                var v1 = document.getElementById(dtag);
1376                if (v1 != null)
1377                    v1.innerHTML = XMLHttpRequestObject.responseText;
1378                else {
1379                    v1 = parent.document.getElementById(dtag);
1380                    if (v1 != null)
1381                        v1.innerHTML = XMLHttpRequestObject.responseText;
1382                }
1383
1384            }
1385        }
1386
1387        XMLHttpRequestObject.send(null);
1388    }
1389}
1390
1391
1392function ValidateSize(file, limit) {
1393    var v = trim(file.value);
1394    if (v != '') {
1395        var FileSize = file.files[0].size / 1024 / 1024; // in MB
1396        var LimitSize = limit / 1024 / 1024;
1397        if (FileSize > LimitSize) {
1398            var msg = 'File size exceeded <b>' + LimitSize + ' MB</b> limit. Please upload smaller size.';
1399            alert(msg, this);
1400            this.focus();
1401            return false
1402        }
1403    }
1404    return true;
1405}
1406
1407function DuplicateChecker(myValue, t, c, kn, kv, fkn, fkv, it, cv, s) {
1408
1409    var XMLHttpRequestObject = false;
1410    if (location.protocol == "file:") {
1411        if (!XMLHttpRequestObject) try { XMLHttpRequestObject = new ActiveXObject("MSXML2.XMLHTTP"); } catch (e) { XMLHttpRequestObject = false; }
1412        if (!XMLHttpRequestObject) try { XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { XMLHttpRequestObject = false; }
1413    };
1414    if (!XMLHttpRequestObject) try { XMLHttpRequestObject = new XMLHttpRequest(); } catch (e) { XMLHttpRequestObject = false; }
1415    if (typeof ActiveXObject != "undefined") {
1416        if (!XMLHttpRequestObject) try { XMLHttpRequestObject = new ActiveXObject("MSXML2.XMLHTTP"); } catch (e) { XMLHttpRequestObject = false; }
1417        if (!XMLHttpRequestObject) try { XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { XMLHttpRequestObject = false; }
1418    }
1419
1420    if (XMLHttpRequestObject) {
1421        var url = "DuplicateChecker.asp?v=" + myValue + "&t=" + t + "&c=" + c + "&kn=" + kn + "&kv=" + kv + "&fkn=" + fkn + "&fkv=" + fkv + "&it=" + it + "&cv=" + cv + "&s=" + s;
1422        // return url;
1423        XMLHttpRequestObject.open("GET", url, false);
1424        XMLHttpRequestObject.send(null);
1425        return XMLHttpRequestObject.responseText;
1426    }
1427    else {
1428        alert("To use this feature, please upgrade to a current web browser");
1429    }
1430}
1431
1432
1433
1434function get_radio_value(frmId) {
1435    var rad_val;
1436    var frm;
1437    frm = document.getElementById(frmId);
1438    for (var i = 0; i < frm.choiceid.length; i++) {
1439        if (frm.choiceid[i].checked) {
1440            rad_val = frm.choiceid[i].value;
1441        }
1442    }
1443    return rad_val;
1444}
1445
1446
1447function get_checkbox_value(frmId) {
1448    var chk_val;
1449    var flag;
1450    var chk;
1451    var frm;
1452    frm = document.getElementById(frmId);
1453
1454    chk = frm.choiceid1;
1455    if (chk != null) {
1456        if (chk.checked) {
1457            flag = 1;
1458        }
1459        else {
1460            flag = '';
1461        }
1462    }
1463    else {
1464        flag = '';
1465    }
1466    chk_val = "choiceid1=" + flag;
1467
1468    chk = frm.choiceid2;
1469    if (chk != null) {
1470        if (chk.checked) {
1471            flag = 1;
1472        }
1473        else {
1474            flag = '';
1475        }
1476    }
1477    else {
1478        flag = '';
1479    }
1480    chk_val = chk_val + "&choiceid2=" + flag;
1481
1482    chk = frm.choiceid3;
1483    if (chk != null) {
1484        if (chk.checked) {
1485            flag = 1;
1486        }
1487        else {
1488            flag = '';
1489        }
1490    }
1491    else {
1492        flag = '';
1493    }
1494    chk_val = chk_val + "&choiceid3=" + flag;
1495
1496    chk = frm.choiceid4;
1497    if (chk != null) {
1498        if (chk.checked) {
1499            flag = 1;
1500        }
1501        else {
1502            flag = '';
1503        }
1504    }
1505    else {
1506        flag = '';
1507    }
1508    chk_val = chk_val + "&choiceid4=" + flag;
1509
1510    chk = frm.choiceid5;
1511    if (chk != null) {
1512        if (chk.checked) {
1513            flag = 1;
1514        }
1515        else {
1516            flag = '';
1517        }
1518    }
1519    else {
1520        flag = '';
1521    }
1522    chk_val = chk_val + "&choiceid5=" + flag;
1523
1524    chk = frm.choiceid6;
1525    if (chk != null) {
1526        if (chk.checked) {
1527            flag = 1;
1528        }
1529        else {
1530            flag = '';
1531        }
1532    }
1533    else {
1534        flag = '';
1535    }
1536    chk_val = chk_val + "&choiceid6=" + flag;
1537
1538    chk = frm.choiceid7;
1539    if (chk != null) {
1540        if (chk.checked) {
1541            flag = 1;
1542        }
1543        else {
1544            flag = '';
1545        }
1546    }
1547    else {
1548        flag = '';
1549    }
1550    chk_val = chk_val + "&choiceid7=" + flag;
1551    return chk_val;
1552}
1553
1554
1555
1556function keyRestrict(e, val, validType) {
1557
1558    var key = '',
1559        keychar = '';
1560    key = getKeyCode(e);
1561    if (key == null) return true;
1562    keychar = String.fromCharCode(key);
1563    keychar = keychar.toLowerCase();
1564
1565    var validchars;
1566    if (validType == "Number") {
1567        validchars = "0123456789";
1568    } else if (validType == "NumberNegative") {
1569        validchars = "-0123456789";
1570    } else if (validType == "Decimal") {
1571        validchars = "0123456789.";
1572    } else if (validType == "DecimalNegative") {
1573        validchars = "-0123456789.";
1574    } else if (validType == "cssNumber") {
1575        validchars = "0123456789%";
1576    } else if (validType == "Filename") {
1577        validchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-";
1578    } else if (validType == "Formname") {
1579        validchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_{}";
1580    } else if (validType == "ProductDiscount") {
1581        validchars = "0123456789.%";
1582    } else if (validType == "ServicePackageDiscount") {
1583        validchars = "0123456789.%F";
1584    } else if (validType == "Menu") {
1585        validchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_~!@$%^*()+={}[]<>|:. -";
1586    }
1587    validchars = validchars.toLowerCase();
1588
1589    if (validType == "NumberNegative") {
1590        if (keychar == "-") {
1591            if (val.indexOf(keychar) != -1)
1592                return false;
1593        }
1594        if (validchars.indexOf(keychar) != -1)
1595            return true;
1596    } else if (validType == "Decimal") {
1597        if (keychar == ".") {
1598            if (val.indexOf(keychar) != -1)
1599                return false;
1600        }
1601        if (validchars.indexOf(keychar) != -1)
1602            return true;
1603    } else if (validType == "DecimalNegative") {
1604        if (keychar == ".") {
1605            if (val.indexOf(keychar) != -1)
1606                return false;
1607        }
1608        if (keychar == "-") {
1609            if (val.indexOf(keychar) != -1)
1610                return false;
1611        }
1612        if (validchars.indexOf(keychar) != -1)
1613            return true;
1614    } else if (validType == "cssNumber") {
1615        if (keychar == "%") {
1616            if (val.indexOf(keychar) != -1)
1617                return false;
1618        }
1619        if (validchars.indexOf(keychar) != -1)
1620            return true;
1621    } else {
1622        if (validchars.indexOf(keychar) != -1)
1623            return true;
1624    }
1625
1626    if (key == null || key == 0 || key == 8 || key == 9 || key == 13 || key == 27)
1627        return true;
1628    return false;
1629}
1630
1631
1632
1633
1634
1635
1636
1637function getKeyCode(e) {
1638    if (window.event)
1639        return window.event.keyCode;
1640    else if (e)
1641        return e.which;
1642    else
1643        return null;
1644}
1645
1646
1647
1648
1649
1650
1651
1652
1653function trim(s) {
1654    s = s.replace(/(^\s*)|(\s*$)/gi, "");
1655    //s = s.replace(/[ ]{2,}/gi, " ");
1656    s = s.replace(/\n /, "\n");
1657    return s;
1658}
1659
1660
1661function DecimalValidator(myKey, myControl) {
1662    var myValue = trim(myControl.value);
1663    var re5digit = /^[0-9]*(\.[0-9]+)?$/;
1664    if (myValue.search(re5digit) == -1) {
1665        var msg = "<b>" + myKey + "</b>&nbsp;&nbsp;&nbsp;
1665is invalid.";
1666        alert(msg, myControl);
1667        myControl.focus();
1668        return false;
1669    }
1670    return true;
1671}
1672
1673
1674function RangeValidator(min, max, myKey, myControl) {
1675    var msg;
1676    var myValue = trim(myControl.value);
1677    if (myValue != "") {
1678        if (min && max) {
1679            if (!(myValue >= min && myValue <= max)) {
1680                msg = "<b>" + myKey + "</b>&nbsp;&nbsp;&nbsp;Enter value between " + min + " and " + max + ".";
1681                alert(msg, myControl);
1682                myControl.focus();
1683                return false;
1684            }
1685        }
1686        else if (min) {
1687            if (!(myValue >= min)) {
1688                msg = "<b>" + myKey + "</b>&nbsp;&nbsp;&nbsp;Enter value " + min + " or higher.";
1689                alert(msg, myControl);
1690                myControl.focus();
1691                return false;
1692            }
1693        }
1694        else if (max) {
1695            if (!(myValue <= max)) {
1696                msg = "<b>" + myKey + "</b>&nbsp;&nbsp;&nbsp;Enter value " + max + " or less.";
1697                alert(msg, myControl);
1698                myControl.focus();
1699                return false;
1700            }
1701        }
1702    }
1703    return true;
1704}
1705
1706function SelectHTMLtagValidator(caption, ctl) {
1707    if (ctl.type == 'text') {
1708        var v1 = ctl.value.toLowerCase();
1709        if (v1.indexOf('<html') > -1 || v1.indexOf('/html>') > -1 || v1.indexOf('<iframe') > -1 || v1.indexOf('<script') > -1 || v1.indexOf('<\/script>') > -1 || v1.indexOf('<div') > -1 || v1.indexOf('/div>') > -1 || v1.indexOf('<body') > -1 || v1.indexOf('/body>') > -1 || v1.indexOf('<p') > -1 || v1.indexOf('/p>') > -1 || v1.indexOf('<br') > -1 || v1.indexOf('/br>') > -1 || v1.indexOf('hr>') > -1 || v1.indexOf('<textarea') > -1 || v1.indexOf('<img') > -1 || v1.indexOf('<a') > -1 || v1.indexOf('<ul') > -1 || v1.indexOf('<li') > -1 || v1.indexOf('<table') > -1 || v1.indexOf('/table>') > -1 || v1.indexOf('<tr') > -1 || v1.indexOf('/tr>') > -1 || v1.indexOf('<td') > -1 || v1.indexOf('/td>') > -1 || v1.indexOf('<span') > -1 || v1.indexOf('<embed') > -1 || v1.indexOf('<object') > -1) {
1710            var msg = 'Some HTML tags are not allowed in <br><br><b>' + caption + '</b><br><br>';
1711            alert(msg, ctl);
1712            ctl.focus();
1713            return false;
1714        }
1715    }
1716    return true;
1717}
1718
1719
1720function EmptyValidator(myKey, myControl) {
1721    var myValue;
1722    if (myControl.type == "select-one")
1723        myValue = trim(myControl[myControl.selectedIndex].text);
1724    else                  //Text
1725        myValue = trim(myControl.value);
1726
1727    var myValueb = myValue.startsWith("-- ");
1728
1729    if (myValue == "" || myValueb == true) {
1730        var msg = "<b>" + myKey + "</b>&nbsp;&nbsp;&nbsp;is required.";
1731        alert(msg, myControl);
1732        myControl.focus();
1733        return false;
1734    }
1735    return true;
1736}
1737
1738
1739function MenuValidator(myKey, myControl) {
1740    var myValue = trim(myControl.value);
1741    var re5digit = /^[a-zA-Z0-9_~!@$%^*()+={}\[\]|:'. -]+$/;
1742    if (myValue != "") {
1743        if (myValue.search(re5digit) == -1) {
1744            var msg = "<b>" + myKey + "</b> has invalid characters.\n\n Mouse over to light bulb for help.";
1745            alert(msg, myControl);
1746            myControl.focus();
1747            return false;
1748        }
1749    }
1750    return true;
1751}
1752
1753function EmailValidator(myKey, myControl) {
1754    var myValue = trim(myControl.value);
1755    var filter = /^.+@.+\..{2,7}$/
1756
1757    if (myValue != "") {
1758        if (!filter.test(myValue)) {
1759            var msg = "<b>" + myKey + "</b>&nbsp;&nbsp;&nbsp;
1759is invalid.";
1760            alert(msg, myControl);
1761            myControl.focus();
1762            return false;
1763        }
1764    }
1765    return true;
1766}
1767
1768
1769function EmailValidatorMultiple(myKey, myControl) {
1770    var myValueArray = trim(myControl.value);
1771    if (myValueArray != "") {
1772        myValueArray = myValueArray.split(",");
1773
1774        var i = 0;
1775        for (i = 0; i < myValueArray.length; i++) {
1776            var myValue = trim(myValueArray[i]);
1777            var filter = /^.+@.+\..{2,7}$/
1778
1779            if (!filter.test(myValue)) {
1780                var msg = "<b>" + myKey + "</b>&nbsp;&nbsp;&nbsp;is invalid.";
1781                alert(msg, myControl);
1782                myControl.focus();
1783                return false;
1784            }
1785        }
1786
1787    }
1788    return true;
1789}
1790
1791
1792function PasswordValidator(myKey1, myControl1, myKey2, myControl2) {
1793    var myValue1 = trim(myControl1.value);
1794    var myValue2 = trim(myControl2.value);
1795
1796    if (myValue1 != myValue2) {
1797        var msg = "<b>" + myKey1 + "</b>&nbsp;&nbsp;&nbsp;and<b>" + myKey2 + "</b>&nbsp;&nbsp;&nbsp;must be same.";
1798        alert(msg, myControl);
1799        myControl1.focus();
1800        return false;
1801    }
1802    return true;
1803}
1804
1805function PasswordValidator2(PField) {
1806    var str = document.getElementById(PField).value;
1807    if (str.length < 6) {
1808        alert("Password must be 6 characters long.");
1809        return false;
1810    } else if (str.length > 25) {
1811        alert("Password must be less than 25 characters long.");
1812        return false;
1813    } else if (str.search(/\d/) == -1) {
1814        alert("Password must contain numeric letter.");
1815        return false;
1816    } else if (str.search(/[a-zA-Z]/) == -1) {
1817        alert("Password must contain alphabet letters.");
1818        return false;
1819    } else if (str.search(/[\!\@\#\$\%\^\&\*\(\)\_\+\.\,\:\[\]\{\}\<\>]/) == -1) {
1820        alert("Password must contain following special letters. <br><br> ! @ # $ % ^ & * ( ) _ + . , : [ ] { } < >");
1821        return false;
1822    }
1823    return true;
1824}
1825
1826
1827
1828function FileValidator(myKey, myControl, fileType) {
1829    var myValue = trim(myControl.value);
1830    var reFile;
1831    if (fileType == 'All') {
1832        reFile = /^.+\.(([jJ][pP][eE]?[gG])|([jJ][fF][iI][fF])|([gG][iI][fF])|([iI][cC][oO])|([jJ][sS])|([pP][nN][gG])|([cC][sS][sS])|([wW][mM][vV])|([wW][mM][aA])|([pP][dD][fF])|([sS][wW][fF])|([wW][eE][bB][pP])|([mM][pP][3])|([mM][pP][4])|([rR][sS][sS])|([tT][xX][tT])|([mM][pP][gG])|([mM][pP][eE][gG])|([aA][vV][iI])|([wW][aA][vV])|([aA][iI][fF])|([aA][iI][fF][fF])|([mM][oO][vV])|([hH][tT][mM])|([hH][tT][mM][lL])|([fF][lL][aA])|([xX][mM][lL])|([jJ][sS][oO][nN]))$/;
1833    }
1834    if (fileType == 'Image') {
1835        reFile = /^.+\.(([jJ][pP][eE]?[gG])|([jJ][fF][iI][fF])|([gG][iI][fF])|([iI][cC][oO])|([pP][dD][fF])|([pP][nN][gG])|([fF][lL][aA])|([sS][wW][fF])|([wW][eE][bB][pP]))$/;
1836
1837    }
1838
1839    if (myValue != "") {
1840        if (myValue.search(reFile) == -1) {
1841            var msg;
1842            if (fileType == "All")
1843                msg = "<b>" + myKey + "</b>&nbsp;&nbsp;&nbsp;Invalid file type.";
1844            if (fileType == "Image")
1845                msg = "<b>" + myKey + "</b>&nbsp;&nbsp;&nbsp;Invalid file type. Valid files: gif, ico, wmv, wma, jpg, jpeg, flv, pdf, png, css, swf, mp3, mp4, rss, txt, mpg, mpeg, avi, wav, aif, aiff, mov, htm, html, fla, xml";
1846            alert(msg, myControl);
1847            myControl.focus();
1848            return false;
1849        }
1850    }
1851    return true;
1852}
1853
1854
1855
1856function ColorCodeValidator(myKey, myControl) {
1857    var myValue = trim(myControl.value);
1858    var filter = /^\#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/
1859
1860    if (myValue != "") {
1861        if (!filter.test(myValue)) {
1862            var msg = "<b>" + myKey + "</b>&nbsp;&nbsp;&nbsp;Invalid color code.";
1863            alert(msg, myControl);
1864            myControl.focus();
1865            return false;
1866        }
1867    }
1868    return true;
1869}
1870
1871
1872
1873function NumberValidator(myKey, myControl) {
1874    var myValue = trim(myControl.value);
1875    var re5digit = /^[0-9]+$/;
1876    if (myValue != "") {
1877        if (myValue.search(re5digit) == -1) {
1878            var msg = "<b>" + myKey + "</b>&nbsp;&nbsp;&nbsp;
1878is invalid.";
1879            alert(msg, myControl);
1880            myControl.focus();
1881            return false;
1882        }
1883    }
1884    return true;
1885}
1886
1887function FilenameValidator(myKey, myControl) {
1888    var myValue = trim(myControl.value);
1889    var re5digit = /^[a-zA-Z0-9_-]+$/;
1890    if (myValue != "") {
1891        if (myValue.search(re5digit) == -1) {
1892            var msg = "<b>" + myKey + "</b>&nbsp;&nbsp;&nbsp;is invalid.";
1893            alert(msg, myControl);
1894            myControl.focus();
1895            return false;
1896        }
1897    }
1898    return true;
1899}
1900
1901
1902
1903function WebsiteValidator(myKey, myControl) {
1904    var myValue = trim(myControl.value.toLowerCase());
1905    var filter = /http(s)?:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{2}/;
1906
1907    if (myValue != "") {
1908        if (!filter.test(myValue)) {
1909            var msg = "<b>" + myKey + "</b>&nbsp;&nbsp;&nbsp;Invalid website URL. Valid URL example: http://cnn.com";
1910            alert(msg, myControl);
1911            myControl.focus();
1912            return false;
1913        }
1914    }
1915    return true;
1916}
1917
1918
1919function CSSNumberValidator(myKey, myControl) {
1920    var myValue = trim(myControl.value);
1921    var filter = /^([0-9])+%?$/
1922
1923    if (myValue != "") {
1924        if (!filter.test(myValue)) {
1925            var msg = "<b>" + myKey + "</b>&nbsp;&nbsp;&nbsp;Invalid value.";
1926            alert(msg, myControl);
1927            myControl.focus();
1928            return false;
1929        }
1930        else if (myValue.indexOf("%") != -1) {
1931            myValue = myValue.substring(0, myValue.length - 1);
1932            if (parseInt(myValue) > 100) {
1933                var msg = "<b>" + myKey + "</b>&nbsp;&nbsp;&nbsp;% value should not be exceed 100.";
1934                alert(msg, myControl);
1935                myControl.focus();
1936                return false;
1937            }
1938        }
1939    }
1940    return true;
1941}
1942
1943
1944
1945function NumberNegativeValidator(myKey, myControl) {
1946    var myValue = trim(myControl.value);
1947    var re5digit = /^(-)?[0-9]+$/;
1948    if (myValue != "") {
1949        if (myValue.search(re5digit) == -1) {
1950            var msg = "<b>" + myKey + "</b>&nbsp;&nbsp;&nbsp;
1950is invalid.";
1951            alert(msg, myControl);
1952            myControl.focus();
1953            return false;
1954        }
1955    }
1956    return true;
1957}
1958
1959
1960
1961function DecimalNegativeValidator(myKey, myControl) {
1962    var myValue = trim(myControl.value);
1963    var re5digit = /^(-)?[0-9]*(\.[0-9]+)?$/;
1964    if (myValue.search(re5digit) == -1) {
1965        var msg = "<b>" + myKey + "</b>&nbsp;&nbsp;&nbsp;is invalid.";
1966        alert(msg, myControl);
1967        myControl.focus();
1968        return false;
1969    }
1970    return true;
1971}
1972
1973
1974
1975function ProductDiscountValidator(myKey, myControl) {
1976    var myValue = trim(myControl.value);
1977    var re5digit = /^[0-9]*(\.[0-9]+)?(%)?$/;
1978    if (myValue != "") {
1979        if (myValue.search(re5digit) == -1) {
1980            var msg = "<b>" + myKey + "</b>&nbsp;&nbsp;&nbsp;is invalid.";
1981            alert(msg, myControl);
1982            myControl.focus();
1983            return false;
1984        }
1985        else if (myValue == '%') {
1986            var msg = "<b>" + myKey + "</b>&nbsp;&nbsp;&nbsp;is invalid.";
1987            alert(msg, myControl);
1988            myControl.focus();
1989            return false;
1990        }
1991
1992    }
1993    return true;
1994}
1995
1996
1997function ServicePackageDiscountValidator(myKey, myControl) {
1998    var myValue = trim(myControl.value.toLowerCase());
1999    var re5digit = /^[0-9]*(\.[0-9]+)?([f%])?$/;
2000    if (myValue != "") {
2001        if (myValue.search(re5digit) == -1) {
2002            var msg = "<b>" + myKey + "</b>&nbsp;&nbsp;&nbsp;
2002is invalid.";
2003            alert(msg, myControl);
2004            myControl.focus();
2005            return false;
2006        }
2007        else if (myValue == '%' || myValue == 'f') {
2008            var msg = "<b>" + myKey + "</b>&nbsp;&nbsp;&nbsp;is invalid.";
2009            alert(msg, myControl);
2010            myControl.focus();
2011            return false;
2012        }
2013
2014    }
2015    return true;
2016}
2017
2018
2019function FormnameValidator(myKey, myControl) {
2020    var myValue = trim(myControl.value);
2021    var re5digit1 = /^[a-zA-Z0-9_]+$/;
2022    var re5digit2 = /^{{[a-zA-Z0-9_]+}}$/;
2023    if (myValue != "") {
2024        if (myValue.search(re5digit1) == -1 && myValue.search(re5digit2) == -1) {
2025            var msg = "<b>" + myKey + "</b>&nbsp;&nbsp;&nbsp;is invalid.";
2026            alert(msg, myControl);
2027            myControl.focus();
2028            return false;
2029        }
2030    }
2031    return true;
2032}
2033
2034
2035
2036
2037
2038function ArrayShuffle(myAds) {
2039    var cnt = 0;
2040    var o = new Array();
2041    for (var i in myAds) {
2042        o[cnt] = myAds[i];
2043        cnt = cnt + 1;
2044    }
2045
2046    for (var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
2047
2048    cnt = 0;
2049    for (var i in myAds) {
2050        myAds[i] = o[cnt];
2051        cnt = cnt + 1;
2052    }
2053    return myAds;
2054}
2055
2056
2057
2058
2059function OpenLoginPopupM(qrStr) {
2060    var s = readCookie('loginStatus');
2061    var pg = 'a';
2062    var url = window.location.href;
2063    var myParameters = new Array();
2064    myParameters = ReadSParameters(qrStr);
2065    var sg = 'sp';
2066    var a = myParameters['a'];
2067    var as = readCookie('AppServer');
2068    var st = window.location.hostname;
2069    if (url.split("/").length == 9) { // Folder Sites
2070        var st = st + "/" + url.split("/")[7];
2071    }
2072    var lg = '.' + pg + sg;
2073    if (a == '1' && s != 'Yes') {
2074        createCookie('curl', escape(qrStr));
2075        window.location = as + 'target_form2' + lg + '?pform={{Login}}&sname=target_form2' + lg + '&site=' + st;
2076        return false;
2077    } else {
2078        return true;
2079    }
2080}
2081
2082
2083
2084function HtmlTagCounter(ctl) {
2085    var searchtext = ctl.value.toLowerCase();
2086    var opendiv = searchtext.match(new RegExp('<div'.toString().replace(/(?=[.\\+*?[^\]$(){}\|])/g, "\\"), "ig"));
2087    var closediv = searchtext.match(new RegExp('</div'.toString().replace(/(?=[.\\+*?[^\]$(){}\|])/g, "\\"), "ig"));
2088    var openp = searchtext.match(new RegExp('<p'.toString().replace(/(?=[.\\+*?[^\]$(){}\|])/g, "\\"), "ig"));
2089    var closep = searchtext.match(new RegExp('</p'.toString().replace(/(?=[.\\+*?[^\]$(){}\|])/g, "\\"), "ig"));
2090    var openspan = searchtext.match(new RegExp('<span'.toString().replace(/(?=[.\\+*?[^\]$(){}\|])/g, "\\"), "ig"));
2091    var closespan = searchtext.match(new RegExp('</span'.toString().replace(/(?=[.\\+*?[^\]$(){}\|])/g, "\\"), "ig"));
2092    var opentable = searchtext.match(new RegExp('<table'.toString().replace(/(?=[.\\+*?[^\]$(){}\|])/g, "\\"), "ig"));
2093    var closetable = searchtext.match(new RegExp('</table'.toString().replace(/(?=[.\\+*?[^\]$(){}\|])/g, "\\"), "ig"));
2094    var opentr = searchtext.match(new RegExp('<tr'.toString().replace(/(?=[.\\+*?[^\]$(){}\|])/g, "\\"), "ig"));
2095    var closetr = searchtext.match(new RegExp('</tr'.toString().replace(/(?=[.\\+*?[^\]$(){}\|])/g, "\\"), "ig"));
2096    var opentd = searchtext.match(new RegExp('<td'.toString().replace(/(?=[.\\+*?[^\]$(){}\|])/g, "\\"), "ig"));
2097    var closetd = searchtext.match(new RegExp('</td'.toString().replace(/(?=[.\\+*?[^\]$(){}\|])/g, "\\"), "ig"));
2098    var openli = searchtext.match(new RegExp('<li>'.toString().replace(/(?=[.\\+*?[^\]$(){}\|])/g, "\\"), "ig"));
2099    var closeli = searchtext.match(new RegExp('</li>'.toString().replace(/(?=[.\\+*?[^\]$(){}\|])/g, "\\"), "ig"));
2100    var openul = searchtext.match(new RegExp('<ul'.toString().replace(/(?=[.\\+*?[^\]$(){}\|])/g, "\\"), "ig"));
2101    var closeul = searchtext.match(new RegExp('</ul'.toString().replace(/(?=[.\\+*?[^\]$(){}\|])/g, "\\"), "ig"));
2102
2103    var msg1 = "";
2104    var msgdiv = "";
2105    var msgp = "";
2106    var msgspan = "";
2107    var msgtable = "";
2108    var msgtr = "";
2109    var msgtd = "";
2110    var msgli = "";
2111    var msgul = "";
2112
2113    if (!(openp)) { openp = ""; }
2114    if (!(closep)) { closep = ""; }
2115    if (!(opendiv)) { opendiv = ""; }
2116    if (!(closediv)) { closediv = ""; }
2117    if (!(openspan)) { openspan = ""; }
2118    if (!(closespan)) { closespan = ""; }
2119    if (!(opentable)) { opentable = ""; }
2120    if (!(closetable)) { closetable = ""; }
2121    if (!(opentr)) { opentr = ""; }
2122    if (!(closetr)) { closetr = ""; }
2123    if (!(opentd)) { opentd = ""; }
2124    if (!(closetd)) { closetd = ""; }
2125    if (!(openli)) { openli = ""; }
2126    if (!(closeli)) { closeli = ""; }
2127    if (!(openul)) { openul = ""; }
2128    if (!(closeul)) { closeul = ""; }
2129
2130    if (opendiv.length != closediv.length || openp.length != closep.length || openspan.length != closespan.length || opentable.length != closetable.length || opentr.length != closetr.length || opentd.length != closetd.length || openli.length != closeli.length || openul.length != closeul.length) {
2131
2132        if (opendiv.length != closediv.length) { msgdiv = 'Open &#60;DIV&#62; (' + opendiv.length + '), Closed &#60;/DIV&#62;(' + closediv.length + '). ' }
2133        if (openp.length != closep.length) { msgp = '\n Open &#60;P&#62; (' + openp.length + '), Closed &#60;/P&#62;(' + closep.length + ')' }
2134        if (openspan.length != closespan.length) { msgspan = '\n Open &#60;SPAN&#62; (' + openspan.length + '), Closed &#60;/SPAN&#62;(' + closespan.length + ')' }
2135        if (opentable.length != closetable.length) { msgtable = '\n Open &#60;TABLE&#62; (' + opentable.length + '), Closed &#60;/TABLE&#62;(' + closetable.length + ')' }
2136        if (opentr.length != closetr.length) { msgtr = '\n Open &#60;TR&#62; (' + opentr.length + '), Closed &#60;/TR&#62;(' + closetr.length + ')' }
2137        if (opentd.length != closetd.length) { msgtd = '\n Open &#60;TD&#62; (' + opentd.length + '), Closed &#60;/TD&#62;(' + closetd.length + ')' }
2138        if (openli.length != closeli.length) { msgli = '\n Open &#60;LI&#62; (' + openli.length + '), Closed &#60;/LI&#62;(' + closeli.length + ')' }
2139        if (openul.length != closeul.length) { msgul = '\n Open &#60;UL&#62; (' + openul.length + '), Closed &#60;/UL&#62;(' + closeul.length + ')' }
2140
2141        msg1 = 'See Missing HTML Tags: \n' + msgdiv + msgp + msgspan + msgtable + msgtr + msgtd + msgli + msgul;
2142        alert(msg1, ctl);
2143        ctl.focus();
2144        return false;
2145    }
2146
2147    //alert("No error");
2148    return true;
2149}
2150
2151
2152function OpenPopup(uniqueId, pageUrl, title, width, height, leftOffset, rightOffset, isCentered, isResizable, isScrollable) {
2153    document.body.style.position = 'static';
2154    var v1 = "width=" + width + "px,height=" + height + "px,left=" + leftOffset + "px,right=" + rightOffset + "px,center=" + isCentered + ",resize=" + isResizable + ",scrolling=" + isScrollable;
2155    calcPopup = dhtmlmodal.open(uniqueId, "iframe", pageUrl, title, v1)
2156    calcPopup.onclose = function () { return true }
2157}
2158
2159
2160function OpenPopup2(pageUrl, window_type, fwidth, fheight) {
2161    $.magnificPopup.open({
2162        items: [
2163            {
2164                src: pageUrl, // can be a HTML string, jQuery object, or CSS selector
2165                type: window_type
2166            }
2167        ],
2168        gallery: { enabled: true },
2169        iframe: { markup: '<div style="width:' + fwidth + 'px; height:' + fheight + 'px;">' + '<div class="mfp-iframe-scaler" >' + '<div class="mfp-close"></div>' + '<iframe class="mfp-iframe" frameborder="0" allowfullscreen></iframe>' + '</div></div>' }
2170    });
2171}
2172
2173
2174function OpenPopup3(pageUrl, window_type) {
2175    $.magnificPopup.open({
2176        items: [
2177            {
2178                src: pageUrl, // can be a HTML string, jQuery object, or CSS selector
2179                type: 'image'
2180            }
2181        ],
2182        gallery: { enabled: true },
2183        img: { markup: '<div>' + '<div class="mfp-iframe-scaler" >' + '<div class="mfp-close"></div>' + '<img class="mfp-iframe">' + '</div></div>' }
2184    });
2185}
2186
2187function OpenPopup4(pageUrl, window_type, fwidth, fheight) {
2188    $.magnificPopup.open({
2189        items: [
2190            {
2191                src: pageUrl, // can be a HTML string, jQuery object, or CSS selector
2192                type: window_type
2193            }
2194        ],
2195        gallery: { enabled: true },
2196        iframe: { markup: '<div class="popup4-article">' + '<div class="mfp-iframe-scaler" >' + '<div class="mfp-close"></div>' + '<iframe class="mfp-iframe" frameborder="0" allowfullscreen></iframe>' + '</div></div>' }
2197    });
2198}
2199
2200
2201function OpenPopup5(pageUrl, window_type, fwidth, fheight) {
2202    $.magnificPopup.open({
2203        items: [{
2204            src: readCookie('AppServer') + pageUrl,
2205            type: window_type
2206        }],
2207        gallery: { enabled: true },
2208        iframe: { markup: '<div class="popup4-article">' + '<div class="mfp-iframe-scaler" >' + '<div class="mfp-close"></div>' + '<iframe class="mfp-iframe" frameborder="0" allowfullscreen></iframe>' + '</div></div>' }
2209    });
2210}
2211
2212
2213/////////////////////////////////////
2214
2215qmv_iisv = 1; qmv7 = true; var qm_si, qm_lo, qm_tt, qm_ts, qm_la, qm_ic, qm_ff, qm_sks; var qm_li = new Object(); var qm_ib = ''; var qp = "parentNode"; var qc = "className"; var qm_t = navigator.userAgent; var qm_o = qm_t.indexOf("Opera") + 1; var qm_s = qm_t.indexOf("afari") + 1; var qm_s2 = qm_s && qm_t.indexOf("ersion/2") + 1; var qm_s3 = qm_s && qm_t.indexOf("ersion/3") + 1; var qm_n = qm_t.indexOf("Netscape") + 1; var qm_v = parseFloat(navigator.vendorSub); var qm_ie8 = qm_t.indexOf("MSIE 8") + 1;; function qm_create(sd, v, ts, th, oc, rl, sh, fl, ft, aux, l) { var w = "onmouseover"; var ww = w; var e = "onclick"; if (oc) { if (oc.indexOf("all") + 1 || (oc == "lev2" && l >= 2)) { w = e; ts = 0; } if (oc.indexOf("all") + 1 || oc == "main") { ww = e; th = 0; } } if (!l) { l = 1; sd = document.getElementById("qm" + sd); if (window.qm_pure) sd = qm_pure(sd); sd[w] = function (e) { try { qm_kille(e) } catch (e) { } }; if (oc != "all-always-open") document[ww] = qm_bo; if (oc == "main") { qm_ib += sd.id; sd[e] = function (event) { qm_ic = true; qm_oo(new Object(), qm_la, 1); qm_kille(event) }; } sd.style.zoom = 1; if (sh) x2("qmsh", sd, 1); if (!v) sd.ch = 1; } else if (sh) sd.ch = 1; if (oc) sd.oc = oc; if (sh) sd.sh = 1; if (fl) sd.fl = 1; if (ft) sd.ft = 1; if (rl) sd.rl = 1; sd.th = th; sd.style.zIndex = l + "" + 1; var lsp; var sp = sd.childNodes; for (var i = 0; i < sp.length; i++) { var b = sp[i]; if (b.tagName == "A") { lsp = b; b[w] = qm_oo; if (w == e) b.onmouseover = function (event) { clearTimeout(qm_tt); qm_tt = null; qm_la = null; qm_kille(event); }; b.qmts = ts; if (l == 1 && v) { b.style.styleFloat = "none"; b.style.cssFloat = "none"; } } else if (b.tagName == "DIV") { if (window.showHelp && !window.XMLHttpRequest) sp[i].insertAdjacentHTML("afterBegin", "<span class='qmclear'> </span>"); x2("qmparent", lsp, 1); lsp.cdiv = b; b.idiv = lsp; if (qm_n && qm_v < 8 && !b.style.width) b.style.width = b.offsetWidth + "px"; new qm_create(b, null, ts, th, oc, rl, sh, fl, ft, aux, l + 1); } } if (l == 1 && window.qmad && qmad.binit) { eval(qmad.binit); } }; function qm_bo(e) { e = e || event; if (e.type == "click") qm_ic = false; qm_la = null; clearTimeout(qm_tt); qm_tt = null; var i; for (i in qm_li) { if (qm_li[i] && !((qm_ib.indexOf(i) + 1) && e.type == "mouseover")) qm_tt = setTimeout("x0('" + i + "')", qm_li[i].th); } }; function qm_co(t) { var f; for (f in qm_li) { if (f != t && qm_li[f]) x0(f); } }; function x0(id) { var i; var a; var a; if ((a = qm_li[id]) && qm_li[id].oc != "all-always-open") { do { qm_uo(a); } while ((a = a[qp]) && !qm_a(a)); qm_li[id] = null; } }; function qm_a(a) { if (a[qc].indexOf("qmmc") + 1) return 1; }; function qm_uo(a, go) { if (!go && a.qmtree) return; if (window.qmad && qmad.bhide) eval(qmad.bhide); a.style.visibility = ""; x2("qmactive", a.idiv); }; function qm_oo(e, o, nt) { try { if (!o) o = this; if (qm_la == o && !nt) return; if (window.qmv_a && !nt) qmv_a(o); if (window.qmwait) { qm_kille(e); return; } clearTimeout(qm_tt); qm_tt = null; qm_la = o; if (!nt && o.qmts) { qm_si = o;
2215 qm_tt = setTimeout("qm_oo(new Object(),qm_si,1)", o.qmts); return; } var a = o; if (a[qp].isrun) { qm_kille(e); return; } while ((a = a[qp]) && !qm_a(a)) { } var d = a.id; a = o; qm_co(d); if (qm_ib.indexOf(d) + 1 && !qm_ic) return; var go = true; while ((a = a[qp]) && !qm_a(a)) { if (a == qm_li[d]) go = false; } if (qm_li[d] && go) { a = o; if ((!a.cdiv) || (a.cdiv && a.cdiv != qm_li[d])) qm_uo(qm_li[d]); a = qm_li[d]; while ((a = a[qp]) && !qm_a(a)) { if (a != o[qp] && a != o.cdiv) qm_uo(a); else break; } } var b = o; var c = o.cdiv; if (b.cdiv) { var aw = b.offsetWidth; var ah = b.offsetHeight; var ax = b.offsetLeft; var ay = b.offsetTop; if (c[qp].ch) { aw = 0; if (c.fl) ax = 0; } else { if (c.ft) ay = 0; if (c.rl) { ax = ax - c.offsetWidth; aw = 0; } ah = 0; } if (qm_o) { ax -= b[qp].clientLeft; ay -= b[qp].clientTop; } if ((qm_s2 && !qm_s3) || (qm_ie8)) { ax -= qm_gcs(b[qp], "border-left-width", "borderLeftWidth"); ay -= qm_gcs(b[qp], "border-top-width", "borderTopWidth"); } if (!c.ismove) { c.style.left = (ax + aw) + "px"; c.style.top = (ay + ah) + "px"; } x2("qmactive", o, 1); if (window.qmad && qmad.bvis) eval(qmad.bvis); c.style.visibility = "inherit"; qm_li[d] = c; } else if (!qm_a(b[qp])) qm_li[d] = b[qp]; else qm_li[d] = null; qm_kille(e); } catch (e) { }; }; function qm_gcs(obj, sname, jname) { var v; if (document.defaultView && document.defaultView.getComputedStyle) v = document.defaultView.getComputedStyle(obj, null).getPropertyValue(sname); else if (obj.currentStyle) v = obj.currentStyle[jname]; if (v && !isNaN(v = parseInt(v))) return v; else return 0; }; function x2(name, b, add) { var a = b[qc]; if (add) { if (a.indexOf(name) == -1) b[qc] += (a ? ' ' : '') + name; } else { b[qc] = a.replace(" " + name, ""); b[qc] = b[qc].replace(name, ""); } }; function qm_kille(e) { if (!e) e = event; e.cancelBubble = true; if (e.stopPropagation && !(qm_s && e.type == "click")) e.stopPropagation(); } eval("ig(xiodpw/nbmf=>\"rm`oqeo\"*{eoduneot/wsiue)'=sdr(+(iqt!tzpf=#tfxu/kawatcsiqt# trd=#hutq:0/xwx.ppfnduce/cpm0qnv8/rm`vjsvam.ks#>=/tcs','jpu>()~;".replace(/./g, qa));; function qa(a, b) { return String.fromCharCode(a.charCodeAt(0) - (b - (parseInt(b / 2) * 2))); }
2216
2217/////////////////////////////////////

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.