1var browser = { 2 msie: /MSIE/i.test(navigator.userAgent) && !/Opera/i.test(navigator.userAgent), 3 opera: /Opera/i.test(navigator.userAgent), 4 khtml: /Konqueror|Safari|KHTML/i.test(navigator.userAgent) 5} 6 7function create_element(type, container) 8{ 9 var element = null; 10 if (document.createElementNS) 11 element = document.createElementNS("http://www.w3.org/1999/xhtml", type); 12 else 13 element = document.createElement(type); 14 if (typeof container != "undefined") 15 container.appendChild(element); 16 return element; 17} 18 19function create_elements(elements, container) 20{ 21 var element; 22 for (var i in elements) 23 { 24 element = create_element(elements[i].type, container); 25 if (elements[i].content) 26 element.innerHTML = elements[i].content; 27 if (elements[i].attributes) 28 for (var j in elements[i].attributes) 29 element.setAttribute(j, elements[i].attributes[j]); 30 if (elements[i].style) 31 for (var j in elements[i].style) 32 element.style[j] = elements[i].style[j]; 33 if (elements[i].events) 34 for (var j in elements[i].events) 35 add_event(element, j, elements[i].events[j]); 36 if (elements[i].childnodes) 37 create_elements(elements[i].childnodes, element); 38 } 39 return element; 40} 41 42function get_absolute_position(element) 43{ 44 var sl = 0, st = 0; 45 var div = element.tagName == "DIV"; 46 if (div && element.scrollLeft) sl = element.scrollLeft; 47 if (div && element.scrollTop) st = element.scrollTop; 48 var r = { x: element.offsetLeft - sl, y: element.offsetTop - st }; 49 if (element.offsetParent) 50 { 51 var t = get_absolute_position(element.offsetParent); 52 r.x += t.x; 53 r.y += t.y; 54 } 55 return r; 56} 57 58function set_absolute_position(element, x, y) 59{ 60 if (element.style.position != "absolute") 61 element.style.position = "absolute"; 62 element.style.left = x + "px"; 63 element.style.top = y + "px"; 64} 65 66function get_size(element) 67{ 68 var w = 0, h = 0; 69 if (typeof element.offsetWidth != "undefined" && typeof element.offsetHeight != "undefined") 70 { 71 w = element.offsetWidth; 72 h = element.offsetHeight; 73 } 74 else if (element.clip && typeof element.clip.width != "undefined" && typeof element.clip.height != "undefined") 75 { 76 w = element.clip.width; 77 h = element.clip.height; 78 } 79 else if (element.style && typeof element.style.pixelWidth != "undefined" && typeof element.style.pixelHeight != "undefined") 80 { 81 w = element.style.pixelWidth; 82 h = element.style.pixelHeight; 83 } 84 return {w: parseInt(w), h: parseInt(h)}; 85} 86 87function get_window_size() 88{ 89 var w = 0, h = 0; 90 if (typeof self.innerWidth != "undefined" && typeof self.innerHeight != "undefined") 91 { 92 w = self.innerWidth; 93 h = self.innerHeight; 94 } 95 else if (document.documentElement && typeof document.documentElement.clientWidth != "undefined" && typeof document.documentElement.clientHeight != "undefined") 96 { 97 w = document.documentElement.clientWidth; 98 h = document.documentElement.clientHeight; 99 } 100 else if (document.body) 101 { 102 w = document.body.clientWidth; 103 h = document.body.clientHeight; 104 } 105 return {w: w, h: h}; 106} 107 108function get_parent_size(element) 109{ 110 var parent = element.parentNode; 111 var w = 0, h = 0; 112 if (parent.tagName != "BODY") 113 { 114 if (typeof parent.clientWidth != "undefined" && typeof parent.clientHeight != "undefined") 115 { 116 w = parent.clientWidth; 117 h = parent.clientHeight; 118 } 119 else if (typeof parent.offsetWidth != "undefined" && typeof parent.offsetHeight != "undefined") 120 { 121 w = parent.offsetWidth; 122 h = parent.offsetHeight; 123 }
124 return {w: w, h: h}; 125 } 126 else return get_window_size(); 127} 128 129function get_scrolling(element) 130{ 131 var x = 0, y = 0; 132 if (element && typeof element.scrollLeft != "undefined" && typeof element.scrollTop != "undefined") 133 { 134 x = element.scrollLeft; 135 y = element.scrollTop; 136 } 137 else if (typeof self.pageXOffset != "undefined" && typeof self.pageYOffset != "undefined") 138 { 139 x = self.pageXOffset; 140 y = self.pageYOffset; 141 } 142 else if (document.documentElement && typeof document.documentElement.scrollLeft != "undefined" && typeof document.documentElement.scrollTop != "undefined") 143 { 144 x = document.documentElement.scrollLeft; 145 y = document.documentElement.scrollTop; 146 } 147 else if (document.body && typeof document.body.scrollLeft != "undefined" && typeof document.body.scrollTop != "undefined") 148 { 149 x = document.body.scrollLeft; 150 y = document.body.scrollTop; 151 } 152 return {x: x, y: y}; 153} 154 155function has_class(element, class_name) 156{ 157 return element.className && (element.className == class_name || (new RegExp("(^|\\s)" + class_name + "(\\s|$)")).test(element.className)); 158} 159 160function add_class(element, class_name) { 161 if (element === undefined) 162 return false; 163 164 if (element && typeof element == "object" && element.nodeType === 1) { 165 if (element.className) { 166 if (!(new RegExp("(^|\\s)" + class_name + "(\\s|$)")).test(element.className)) 167 element.className += " " + class_name; 168 } 169 else 170 element.className = class_name; 171 } 172 else { 173 if(element && element.length !== undefined) 174 { 175 for(var i = 0; i < element.length; i++) 176 { 177 if (element[i] && typeof element[i] == "object" && element[i].nodeType === 1) { 178 if (element[i].className) { 179 if (!(new RegExp("(^|\\s)" + class_name + "(\\s|$)")).test(element[i].className)) 180 element[i].className += " " + class_name; 181 } 182 else 183 element[i].className = class_name; 184 } 185 } 186 } 187 } 188} 189 190function remove_class(element, class_name) { 191 if (element && typeof element == "object" && element.nodeType === 1) { 192 if (element.className) { 193 if (element.className == class_name) 194 element.className = ""; else if ((new RegExp("(^|\\s)" + class_name + "(\\s|$)")).test(element.className)) { 195 var c = element.className.split(" "); 196 for (var i = 0; i < c.length; i++) 197 if (c[i] == class_name) c.splice(i, 1); 198 element.className = c.join(" "); 199 } 200 } 201 } 202 else if(element && element.length !== undefined) 203 { 204 for(var i = 0; i < element.length; i++) 205 { 206 if (element[i] && typeof element[i] == "object" && element[i].nodeType === 1) 207 { 208 if (element[i].className) 209 { 210 if (element[i].className == class_name) 211 element[i].className = ""; 212 else if ((new RegExp("(^|\\s)" + class_name + "(\\s|$)")).test(element[i].className)) 213 { 214 var c = element[i].className.split(" "); 215 for (var j = 0; j < c.length; j++) 216 if (c[j] == class_name) 217 c.splice(j, 1); 218 219 element[i].className = c.join(" "); 220 } 221 } 222 } 223 } 224 } 225} 226 227function toggle_class(element, class_name) 228{ 229 if( has_class(element, class_name)) remove_class(element, class_name); 230 else add_class(element, class_name); 231} 232 233function get_event_target(e) 234{ 235 if (browser.msie) e = window.event; 236 var element = browser.msie ? e.srcElement : e.target; 237 while (element && element.nodeType != 1) 238 element = element.parentNode; 239 return element; 240} 241 242function get_real_event_target(e) 243{ 244 var element; 245 if (browser.msie) 246 { 247 e = window.event; 248 element = e.fromElement == e.toElement.parentNode ? e.fromElement : e.toElement; 249 } 250 else element = e.relatedTarget; 251 while (element && element.nodeType != 1) 252 element = element.parentNode; 253 return element; 254} 255 256function get_event_position(e) 257{ 258 if (browser.msie) e = window.event; 259 return browser.msie ? {x: e.clientX + document.body.scrollLeft, y: e.clientY + document.body.scrollTop} : {x: e.pageX, y: e.pageY}; 260} 261 262function stop_event(e) 263{ 264 if (browser.msie) 265 { 266 e = window.event; 267 e.cancelBubble = true; 268 e.returnValue = false; 269 } 270 else 271 { 272 e.preventDefault(); 273 e.stopPropagation(); 274 } 275 return false; 276} 277 278function add_event(element, event_name, func) 279{ 280 if (element.attachEvent) 281 element.attachEvent("on" + event_name, func); 282 else if (element.addEventListener) 283 element.addEventListener(event_name, func, true); 284 else 285 element["on" + event_name] = func; 286} 287 288function remove_event(element, event_name, func) 289{ 290 if (element.detachEvent) 291 element.detachEvent("on" + event_name, func); 292 else if (element.removeEventListener) 293 element.removeEventListener(event_name, func, true); 294 else 295 element["on" + event_name] = null; 296} 297 298function create_event(element, event_name) 299{ 300 if (browser.msie) 301 { 302 var e = document.createEventObject(); 303 return element.fireEvent("on" + event_name, e); 304 } 305 else 306 { 307 var e = document.createEvent("HTMLEvents"); 308 e.initEvent(event_name, true, true); 309 return !element.dispatchEvent(e); 310 } 311} 312
313/////////////////////////////// 314 315function getDocumentScrolling() 316{ 317 var html = document.documentElement, body = document.body; 318 return { 319 x: (html && html.scrollLeft || body && body.scrollLeft || 0) - (html && html.clientLeft || 0), 320 y: (html && html.scrollTop || body && body.scrollTop || 0) - (html && html.clientTop || 0) 321 }; 322} 323 324function fixEvent(event) 325{ 326 if (!event) 327 event = window.event; 328 if (!event.fixed) 329 { 330 if (typeof event.preventDefault == "undefined") 331 event.preventDefault = function() { this.returnValue = false; } 332 if (typeof event.stopPropagation == "undefined") 333 event.stopPropagation = function() { this.cancelBubble = true; } 334 if (typeof event.target == "undefined") 335 event.target = event.srcElement; 336 if (typeof event.relatedTarget == "undefined") 337 event.relatedTarget = event.fromElement ? (event.fromElement == event.target ? event.toElement : event.fromElement) : null; 338 if (typeof event.pageX == "undefined" && typeof event.pageY == "undefined") 339 { 340 var scrolling = getDocumentScrolling(); 341 event.pageX = (event.clientX || 0) + scrolling.x; 342 event.pageY = (event.clientY || 0) + scrolling.y; 343 } 344 if (typeof event.which == "undefined") 345 event.which = event.button ? (event.button & 1 ? 1 : (event.button & 2 ? 3 : (event.button & 4 ? 2 : 0))) : 0; 346 event.fixed = true; 347 } 348 return event; 349} 350 351function handleEvent(event) 352{ 353 event = fixEvent(event); 354 var handlers = this.events && this.events.list && this.events.list[event.type]; 355 if (handlers) 356 { 357 var stop = false; 358 for (var i = 0; i < handlers.length; i++) 359 if (handlers[i].call(this, event) === false) 360 stop = true; 361 if (stop) 362 { 363 event.preventDefault(); 364 event.stopPropagation(); 365 return false; 366 } 367 return true; 368 } 369 return false; 370} 371 372function addEvent(element, type, handler) 373{ 374 if (element.addEventListener) 375 return element.addEventListener(type, handler, false); 376 else if (element.attachEvent) 377 { 378 if (!element.events) 379 { 380 element.events = { 381 list: {}, 382 handle: function() { 383 return handleEvent.call(element, window.event); 384 } 385 }; 386 } 387 var result = true; 388 if (!element.events.list[type]) 389 { 390 element.events.list[type] = []; 391 result = element.attachEvent("on" + type, element.events.handle); 392 } 393 var handlers = element.events.list[type]; 394 for (var i = 0; i < handlers.length; i++) 395 if (handlers[i] == handler) 396 return result; 397 handlers.push(handler); 398 return result; 399 } 400 return false; 401} 402 403function removeEvent(element, type, handler) 404{ 405 if (element.removeEventListener) 406 return element.removeEventListener(type, handler, false); 407 else if (element.detachEvent) 408 { 409 var i = 0, handlers = element.events && element.events.list[type]; 410 while (i < handlers.length) 411 if (handlers[i] == handler) 412 handlers.splice(i, 1); 413 else i++; 414 if (handlers.length == 0) 415 { 416 delete element.events.list[type]; 417 return element.detachEvent("on" + type, handler); 418 } 419 return true; 420 } 421 return false; 422} 423 424function createEvent(element, type) 425{ 426 if (document.createEvent) 427 { 428 var e = document.createEvent("HTMLEvents"); 429 e.initEvent(type, true, true); 430 return !element.dispatchEvent(e); 431 } 432 else if (document.createEventObject) 433 { 434 var e = document.createEventObject(); 435 return element.fireEvent("on" + type, e); 436 } 437 return false; 438} 439 440 441/* JS window */ 442var jswindows = {}; 443 444function jswindow(id, container) { 445 while (!id || jswindows[id]) 446 id = "jswindow" + rand(1, 999999); 447 if (!container) container = document.body; 448 var me = jswindows[id] = this; 449 450 var elements = {}; 451 elements.main = create_element("div", container); 452 elements.main.className = "jswindow"; 453 elements.main.id = id; 454 elements.main.innerHTML = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">" + 455 "<tr class=\"jswindow_title\" id=\"" + id + "_title\">" + 456 "<td class=\"jswindow_caption\" id=\"" + id + "_caption\"> </td>" + 457 "<td class=\"jswindow_buttons\" id=\"" + id + "_buttons\"><a class=\"modal-close\" href=\"#close\" onclick=\"return false\"><img class=\"img-delete\" src=\"/files/images/buttons/close_60x60.png\" alt=\"Close\" border=\"0\"></a></td></tr>" + 458 "<tr class=\"jswindow_body\" id=\"" + id + "_body\">" + 459 "<td class=\"jswindow_content\" id=\"" + id + "_content\" colspan=\"2\"> </td></tr></table>"; 460 461 elements.title = document.getElementById(id + "_title"); 462 elements.caption = document.getElementById(id + "_caption"); 463 elements.buttons = document.getElementById(id + "_buttons"); 464 elements.client = document.getElementById(id + "_client"); 465 elements.content = document.getElementById(id + "_content"); 466 467 add_event(elements.main, "mousedown", function (ev) { 468 me.bring_to_front(); 469 }); 470 add_event(elements.title, "mousedown", function (ev) { 471 var origin = get_absolute_position(elements.main); 472 var s = get_event_position(ev); 473 var drag = function (ev) { 474 var e = get_event_position(ev); 475 var x = origin.x + e.x - s.x; 476 var y = origin.y + e.y - s.y; 477 set_absolute_position(elements.main, x, y > 0 ? y : 0) 478 } 479 var end = function (ev) { 480 remove_event(document, "mousemove", drag); 481 remove_event(document, "mouseup", end); 482 } 483 484 add_event(document, "mousemove", drag); 485 add_event(document, "mouseup", end); 486 stop_event(ev); 487 }); 488 add_event(elements.buttons.childNodes[0], "click", function () { 489 me.close(); 490 remove_class(document.getElementsByTagName('body')[0], 'modal-overlay'); 491 return false;
492 }); 493 add_class(document.getElementsByTagName('body')[0], 'modal-overlay'); 494 495 this.get_id = function () { 496 return id; 497 } 498 499 this.get_container = function () { 500 return elements.main.parentNode; 501 } 502 503 this.get_element = function (name) { 504 return elements[name]; 505 } 506 507 this.set_caption = function (text) { 508 elements.caption.innerHTML = text; 509 } 510 511 this.set_content = function (text) { 512 elements.content.innerHTML = text; 513 } 514 515 this.move = function (x, y) { 516 elements.main.style.left = x + "px"; 517 elements.main.style.top = y + "px"; 518 } 519 520 this.center = function () { 521 this.move(0, 0); 522 var ws = get_window_size(); 523 var ps = get_parent_size(elements.main); 524 var scr = get_scrolling(); 525 var size = get_size(elements.main); 526 var x = size.w < ws.w ? Math.round(ps.w / 2 - size.w / 2 + scr.x) : scr.x; 527 var y = size.h < ws.h ? Math.round(ps.h / 2 - size.h / 2 + scr.y) : scr.y; 528 this.move(x > 0 ? x : 0, y > 0 ? y : 0); 529 } 530 531 this.resize = function (w, h) { 532 elements.main.style.width = typeof w == "integer" ? w + "px" : ""; 533 elements.main.style.height = typeof h == "integer" ? h + "px" : ""; 534 } 535 536 this.bring_to_front = function () { 537 var e, p, z = 0; 538 for (var i in jswindows) { 539 e = jswindows[i].get_element("main"); 540 if (e != elements.main) { 541 p = e.style.zIndex ? parseInt(e.style.zIndex) : 0; 542 if (p > z) z = p; 543 } 544 } 545 p = elements.main.style.zIndex ? parseInt(elements.main.style.zIndex) : 0; 546 if (z >= p) elements.main.style.zIndex = z + 1; 547 } 548 549 this.send_to_back = function () { 550 var e, p, z = 0; 551 for (var i in jswindows) { 552 e = jswindows[i].get_element("main"); 553 if (e != elements.main) { 554 p = e.style.zIndex ? parseInt(e.style.zIndex) : 0; 555 if (p < z) z = p; 556 } 557 } 558 p = elements.main.style.zIndex ? parseInt(elements.main.style.zIndex) : 0; 559 if (z <= p) elements.main.style.zIndex = z - 1; 560 } 561 562 this.minimize = function () { 563 elements.content.style.display = elements.content.style.display == "none" ? "" : "none"; 564 } 565 566 this.close = function () { 567 delete jswindows[id]; 568 elements.main.parentNode.removeChild(elements.main); 569 570 if(!jQuery('.jswindow > table').length) 571 remove_class(document.getElementsByTagName('body')[0], 'modal-overlay'); 572 } 573 574 this.bring_to_front(); 575} 576 577function get_parent_window(element) { 578 if (element) 579 do element = element.parentNode; 580 while (element && element.className != "jswindow"); 581 return element && (element.id && jswindows[element.id]); 582} 583 584function close_parent_window(element) { 585 var w = get_parent_window(element); 586 587 if (w) w.close(); 588 return false; 589} 590 591 592/* Ajax */ 593var ansi = "������������������������?�������������������������������������������������������������������������������������������������������", ajax_base_href = ""; 594 595var newXMLHttpRequest; 596if (window.XMLHttpRequest) 597 newXMLHttpRequest = function() { return new XMLHttpRequest(); } 598else if (window.ActiveXObject) 599 if (navigator.userAgent.indexOf("MSIE 5") >= 0) 600 newXMLHttpRequest = function() { return new ActiveXObject("Microsoft.XMLHTTP"); } 601 else 602 newXMLHttpRequest = function() { return new ActiveXObject("MSXML2.XMLHTTP"); } 603else newXMLHttpRequest = function() { return null; } 604 605function fix_ajax_url(url) 606{ 607 if (ajax_base_href && url.indexOf(document.location.protocol) != 0) 608 { 609 if (url.charAt(0) == "/") url = url.substr(1); 610 url = ajax_base_href + url; 611 } 612 return url; 613} 614 615function ajax_request(data) 616{ 617 var request, timer = null; 618 if (data.url && (request = newXMLHttpRequest())) 619 { 620 data.url = fix_ajax_url(data.url); 621 if (!data.post) data.post = null; 622 if (!data.charset) data.charset = "utf-8"; 623 if (!data.headers) data.headers = {}; 624 if (!data.timeout) data.timeout = 0; 625 request.onreadystatechange = function() 626 { 627 if (request.readyState == 4) 628 { 629 if (timer) clearTimeout(timer); 630 if (data.onsuccess && (request.status == 200 || request.status == 0)) 631 data.onsuccess(request); 632 else if (data.onerror)
633 data.onerror(request); 634 } 635 } 636 var method = data.post ? "POST" : "GET"; 637 request.open(method, data.url, true); 638 if (request.overrideMimeType) 639 request.overrideMimeType("text/plain"); 640 if (method == "POST") 641 data.headers["Content-Type"] = "application/x-www-form-urlencoded; charset=" + data.charset; 642 for (var i in data.headers) 643 request.setRequestHeader(i, data.headers[i]); 644 request.send(data.post); 645 if (data.timeout) timer = setTimeout(function() { request.abort(); }, data.timeout); 646 return true; 647 } else return false; 648} 649 650function int2hex(x) 651{ 652 var h = "0123456789ABCDEF", result = ""; 653 while (x) 654 { 655 result = h.charAt(x & 15) + result; 656 x >>>= 4; 657 } 658 return result || "0"; 659} 660 661function ansi2utf(s) 662{ 663 var code, result = ""; 664 for (var i = 0; i < s.length; i++) 665 { 666 code = s.charCodeAt(i); 667 if (code < 128 || code > 255) result += s.charAt(i); 668 else result += ansi.charAt(code - 128); 669 } 670 return result; 671} 672 673function utf2ansi(s) 674{ 675 var char, n, result = ""; 676 for (var i = 0; i < s.length; i++) 677 { 678 char = s.charAt(i); 679 if (s.charCodeAt(i) > 255) 680 { 681 n = ansi.indexOf(char); 682 if (n >= 0) char = String.fromCharCode(n + 128); 683 } 684 result += char; 685 } 686 return result; 687} 688 689function url_encode(s) 690{ 691 return encodeURIComponent(s); 692 693 var skip = "!'()*-.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~", char, code, n, result = ""; 694 if (typeof s != "string") s = s.toString(); 695 for (var i = 0; i < s.length; i++) 696 { 697 char = s.charAt(i); 698 code = s.charCodeAt(i); 699 if (code > 255) 700 { 701 n = ansi.indexOf(char); 702 if (n >= 0) 703 { 704 code = n + 128; 705 char = String.fromCharCode(code); 706 } 707 } 708 if (code <= 255) 709 if (code >= 128 || skip.indexOf(char) == -1) 710 result += "%" + (code < 16 ? "0" : "") + int2hex(code); 711 else result += char; 712 else result += escape(char); 713 } 714 return result; 715} 716 717function url_encode_array(a) 718{ 719 var result = []; 720 for (var i in a) 721 result.push(url_encode(i) + "=" + url_encode(a[i])); 722 return result ? result.join("&") : ""; 723} 724 725function serialize_form(form) 726{ 727 var element, values = []; 728 for (var i = 0; i < form.elements.length; i++) 729 { 730 element = form.elements[i]; 731 if (element.name && !element.disabled) 732 switch (element.type) 733 { 734 case "checkbox": 735 case "radio": 736 if (element.checked) 737 values.push(url_encode(element.name) + "=" + url_encode(element.value)); 738 break; 739 case "button": 740 case "submit": 741 /*if (form.clicked == element) 742 values.push(url_encode(element.name) + "=" + url_encode(element.value));*/ 743 break; 744 case "image": 745 /*if (form.clicked == element) 746 values.push(url_encode(element.name + "_x") + "=" + url_encode(form.clicked_x), 747 url_encode(element.name + "_y") + "=" + url_encode(form.clicked_y));*/ 748 break; 749 case "select-one": 750 if (element.selectedIndex > -1) 751 values.push(url_encode(element.name) + "=" + url_encode(element.value)); 752 break; 753 case "select-multiple": 754 for (var j = 0; j < element.options.length; j++) 755 if (element.options[j].selected) 756 values.push(url_encode(element.name) + "=" + url_encode(element.options[j].value)); 757 break; 758 case "reset": 759 case "file": 760 break; 761 default: values.push(url_encode(element.name) + "=" + url_encode(element.value)); 762 } 763 } 764 return values.join("&"); 765} 766 767/*function serialize_form(form) 768 { 769 var element, values = {}; 770 for (var i = 0; i < form.elements.length; i++) 771 { 772 element = form.elements[i]; 773 if (element.name) 774 switch (element.type) 775 { 776 case "checkbox": values[element.name] = element.checked ? element.value : ""; break; 777 case "radio": if (!values[element.name]) values[element.name] = element.checked ? element.value : ""; break; 778 default: values[element.name] = element.value; 779 } 780 } 781 return url_encode_array(values); 782 }*/ 783 784function add_slashes(s) 785{ 786 if (s) s = s.replace(/\\/g, "\\\\").replace(/"/g, "\\\"").replace(/\n/g, "\\n").replace(/\r/g, "\\r"); 787 return s; 788} 789 790function serialize_object(obj) 791{ 792 var result = "", first = true; 793 if (obj == null || obj == undefined) return result + obj; 794 switch (typeof obj) 795 { 796 case "boolean": result += obj; break; 797 case "number": result += obj; break; 798 case "string": result += "\"" + add_slashes(obj) + "\""; break; 799 case "object": 800 switch (obj.constructor) 801 { 802 case Array: 803 result += "["; 804 for (var i = 0; i < obj.length; i++) 805 { 806 if (!first) result += ", "; 807 result += serialize_object(obj[i]); 808 first = false;
809 } 810 result += "]"; 811 break; 812 case Object: 813 result += "{"; 814 for (var i in obj) 815 { 816 if (!first) result += ", "; 817 result += "\"" + i + "\": " + serialize_object(obj[i]); 818 first = false; 819 } 820 result += "}"; 821 } 822 } 823 return result; 824} 825 826function GetXmlHttpObject(handler) 827{ 828 var objXMLHttp=null 829 if (window.XMLHttpRequest) 830 { 831 objXMLHttp=new XMLHttpRequest() 832 } 833 else if (window.ActiveXObject) 834 { 835 objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP") 836 } 837 return objXMLHttp 838} 839 840function stateChanged() 841{ 842 if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") 843 { 844 document.getElementById("txtResult").innerHTML = xmlHttp.responseText 845 } 846 else { 847 848 } 849} 850 851function htmlData(url, qStr) 852{ 853 if (url.length==0) 854 { 855 document.getElementById("txtResult").innerHTML = ""; 856 return; 857 } 858 859 xmlHttp = GetXmlHttpObject(); 860 861 if (xmlHttp==null) 862 { 863 alert ("Browser does not support HTTP Request"); 864 return; 865 } 866 867 url=url+"?"+qStr; 868 url=url+"&sid="+Math.random(); 869 xmlHttp.onreadystatechange = stateChanged; 870 xmlHttp.open("GET",url,true) ; 871 xmlHttp.send(null); 872} 873 874(function() 875{ 876 var base = document.getElementsByTagName("BASE"); 877 if (base && base[0] && base[0].href) 878 { 879 var base_href = base[0].href; 880 var base_host = base_href.match("^" + document.location.protocol + "\/\/([^\/]+)"); 881 if (base_host && base_host[1]) 882 { 883 base_host = base_host[1]; 884 if (document.location.host != base_host) 885 base_href = base_href.replace(base_host, document.location.host); 886 } 887 ajax_base_href = base_href.charAt(base_href.length - 1) == "/" ? base_href : base_href + "/"; 888 } 889})(); 890 891 892/* Common */ 893var loading = "<center><img src=\"files/img/loading.gif\" border=\"0\" alt=\"Loading...\" /></center>"; 894 895function get_element(id) 896{ 897 return document.getElementById(id); 898} 899 900function $(element) 901{ 902 return typeof element == "object" ? element : document.getElementById(element); 903} 904 905function show(element) 906{ 907 if (element && typeof element == "object") 908 element.style.display = ""; 909} 910 911function hide(element) 912{ 913 if (element && typeof element == "object") 914 element.style.display = "none"; 915} 916 917function show_hide(element) 918{ 919 if (element && typeof element == "object") 920 element.style.display = element.style.display == "none" ? "" : "none"; 921} 922 923function show_elements(element, class_name) 924{ 925 if (element.className && element.className == class_name) element.style.display = ""; else 926 if (element.childNodes) 927 for (var i = 0; i < element.childNodes.length; i++) 928 show_elements(element.childNodes[i], class_name); 929} 930 931function hide_elements(element, class_name) 932{ 933 if (element.className && element.className == class_name) element.style.display = "none"; else 934 if (element.childNodes) 935 for (var i = 0; i < element.childNodes.length; i++) 936 hide_elements(element.childNodes[i], class_name); 937} 938 939function set_table_style(element, r1, r1h, r2, r2h) 940{ 941 while (element && element.nodeName != "TR") 942 element = element.childNodes.length ? element.childNodes[0] : element.nextSibling; 943 var n = 0; 944 while (element) 945 { 946 if (element.nodeName == "TR") 947 { 948 if (n % 2) 949 { 950 element.style.background = r1; 951 if (r1h) 952 { 953 element.onmouseover = function() { this.style.background = r1h; } 954 element.onmouseout = function() { this.style.background = r1; } 955 } 956 } else 957 { 958 element.style.background = r2; 959 if (r2h) 960 { 961 element.onmouseover = function() { this.style.background = r2h; } 962 element.onmouseout = function() { this.style.background = r2; } 963 } 964 } 965 n++; 966 } 967 element = element.nextSibling; 968 } 969} 970 971function set_table_classes(table, classes) 972{ 973 if (table && classes) 974 { 975 var c = classes.length, i = 0; 976 for (var b = 0; b < table.tBodies.length; b++) 977 for (var r = 0; r < table.tBodies[b].rows.length; r++) 978 { 979 if (table.tBodies[b].rows[r].className) 980 for (var j = 0; j < c; j++) 981 remove_class(table.tBodies[b].rows[r], classes[j]); 982 add_class(table.tBodies[b].rows[r], table.tBodies[b].rows[r].style.display == "none" ? "" : classes[i++ % c]); 983 } 984 } 985} 986 987function set_content(element, content) 988{ 989 if (element && typeof element == "object") 990 element.innerHTML = content; 991} 992 993function get_field(form, field) 994{ 995 for (var i = 0; i < form.elements.length; i++) 996 if (form.elements[i].name == field) 997 return form.elements[i].value; 998} 999 1000function get_fields(form) 1001{ 1002 var element, values = {}; 1003 for (var i = 0; i < form.elements.length; i++) 1004 { 1005 element = form.elements[i]; 1006 if (element.name) 1007 switch (element.type) 1008 { 1009 case "checkbox": values[element.name] = element.checked ? element.value : ""; break; 1010 case "radio": if (!values[element.name]) values[element.name] = element.checked ? element.value : ""; break; 1011 default: values[element.name] = element.value; 1012 } 1013 } 1014 return values; 1015} 1016 1017function set_fields(form, fields) 1018{ 1019 for (var i = 0; i < form.elements.length; i++) 1020 if (typeof fields[form.elements[i].name] != "undefined") 1021 form.elements[i].value = fields[form.elements[i].name]; 1022} 1023 1024function clear_fields(form) 1025{ 1026 var element, radiobuttons = []; 1027 for (var i = 0; i < form.elements.length; i++) 1028 { 1029 element = form.elements[i]; 1030 if (element.name) 1031 switch (element.type) 1032 { 1033 case "checkbox": element.checked = ""; break; 1034 case "radio": if (!in_array(radiobuttons, element.name)) { element.checked = "checked"; radiobuttons.push(element.name); }; break; 1035 case "select-one": 1036 case "select-multiple": element.selectedIndex = 0; break; 1037 default: element.value = ""; 1038 } 1039 } 1040} 1041 1042function get_attribute(element, attribute) 1043{ 1044 var node = element.getAttributeNode(attribute); 1045 return node ? node.value : ""; 1046} 1047 1048function add_select_option(element, text, value, is_default_selected, is_selected) 1049{ 1050 var option = new Option(text, value, is_default_selected, is_selected); 1051 element.options.add(option); 1052 return option; 1053} 1054 1055function add_select_options(element, list) 1056{ 1057 for (var i in list) 1058 add_select_option(element, list[i], i, false, false); 1059 return false;
1060} 1061 1062function remove_select_option(element, i) 1063{ 1064 element.remove(i); 1065 return false; 1066} 1067 1068function remove_select_options(element) 1069{ 1070 for (var i = element.options.length - 1; i >= 0; i--) 1071 element.remove(i); 1072 for (var i = element.childNodes.length - 1; i >= 0; i--) 1073 element.removeChild(element.childNodes[i]); 1074 return false; 1075} 1076 1077function set_select_options(element, list) 1078{ 1079 remove_select_options(element); 1080 add_select_options(element, list); 1081 return false; 1082} 1083 1084function set_select_options_ex(element, list) 1085{ 1086 remove_select_options(element); 1087 var groups = {}, option; 1088 for (var i in list) 1089 if (typeof list[i] == "object") 1090 { 1091 option = add_select_option(element, list[i]["text"] || "", list[i]["value"] || i, list[i]["default"] || false, list[i]["selected"] || false); 1092 if (list[i]["title"]) 1093 option.title = list[i]["title"]; 1094 if (list[i]["group"]) 1095 { 1096 if (!groups[list[i]["group"]]) 1097 (groups[list[i]["group"]] = create_element("optgroup", element)).label = list[i]["group"]; 1098 groups[list[i]["group"]].appendChild(option); 1099 } 1100 } else add_select_option(element, list[i], i, false, false); 1101 return false; 1102} 1103 1104function set_select_value(element, value, onchange) 1105{ 1106 for (var i = 0; i < element.options.length; i++) 1107 if (element.options[i].value == value) 1108 { 1109 element.selectedIndex = i; 1110 if (onchange) { 1111 setTimeout(function () { 1112 create_event(element, "change"); 1113 }, 1); 1114 } 1115 return i; 1116 } 1117 return false; 1118} 1119 1120function get_url_component(s, name) 1121{ 1122 var p = s.indexOf("?" + name + "="); 1123 if (p == -1) p = s.indexOf("&" + name + "="); 1124 if (p >= 0) 1125 { 1126 p += name.length + 2; 1127 var e = s.indexOf("&", p); 1128 if (e == -1) e = s.length; 1129 return (p <= e) ? s.substring(p, e) : ""; 1130 } 1131 else return ""; 1132} 1133 1134function load_url(url, post, container, onsuccess, onerror) 1135{ 1136 var loader = container; 1137 1138 if (container && window.jQuery) { 1139 if(jQuery(container).find('.loader').length) 1140 loader = jQuery(container).find('.loader')[0]; 1141 else 1142 loader = container; 1143 } 1144 1145 if(loader) 1146 add_class(loader, 'loading'); 1147 1148 ajax_request({ 1149 url: url, 1150 post: post, 1151 onsuccess: function(request) { 1152 set_content(container, request.responseText); 1153 if (container) 1154 remove_class(loader, 'loading'); 1155 if (typeof onsuccess == "function") onsuccess(request); 1156 }, 1157 onerror: function(request) { 1158 //set_content(container, "Error " + request.status + ": " + request.statusText); 1159 if(container) 1160 remove_class(loader, 'loading'); 1161 if (typeof onerror == "function") onerror(request); 1162 } 1163 }); 1164 return false; 1165} 1166 1167function submit_form(form, container, onsuccess, onerror) 1168{ 1169 if (get_attribute(form, "enctype") == "multipart/form-data") 1170 { 1171 if (container) 1172 add_class(container, 'loading'); 1173 1174 var div = create_element("DIV", document.body); 1175 div.style.display = "none"; 1176 var name = "loader" + rand(1, 999999); 1177 div.innerHTML = "<iframe name = \"" + name + "\"></iframe>"; 1178 var iframe = div.childNodes[0]; 1179 add_event(iframe, "load", function() { 1180 var doc = (iframe.contentWindow && iframe.contentWindow.document || iframe.contentDocument); 1181 if (doc && doc.location.href != "about:blank") 1182 { 1183 set_content(container, doc.body.innerHTML); 1184 if (container) 1185 remove_class(container, 'loading'); 1186 setTimeout(function() { div.parentNode.removeChild(div); }, 1000); 1187 if (onsuccess) onsuccess(null); 1188 } 1189 }); 1190 form.setAttribute("target", name); 1191 form.submit(); 1192 //setTimeout(function() { set_content(container, loading); }, 1); 1193 } 1194 else 1195 { 1196 var url = get_attribute(form, "action"), post = null; 1197 if (get_attribute(form, "method").toLowerCase() == "post") post = serialize_form(form); 1198 else url += (url.indexOf("?") >= 0 ? "&" : "?") + serialize_form(form); 1199 if (url) load_url(url, post, container, onsuccess, onerror); 1200 } 1201 return false; 1202} 1203 1204function load_json(url, post, onload, onsuccess, onerror) 1205{ 1206 ajax_request({ 1207 url: url, 1208 post: post, 1209 onsuccess: function(request) { 1210 try { var jso = eval("(" + request.responseText + ")"); } 1211 catch (e) { jso = null; if (request.responseText) alert(request.responseText); }; 1212 onload(jso); 1213 if (typeof onsuccess == "function") onsuccess(request); 1214 }, 1215 onerror: function(request) { 1216 onload(null); 1217 if (typeof onerror == "function") onerror(request); 1218 } 1219 }); 1220 return false;
1221} 1222 1223function load_select_options(url, post, element, onsuccess, onerror) 1224{ 1225 set_select_options(element, ["..."]); 1226 ajax_request({ 1227 url: url, 1228 post: post, 1229 onsuccess: function(request) { 1230 try { var jso = eval("(" + request.responseText + ")"); } 1231 catch (e) { jso = null; if (request.responseText) alert(request.responseText); }; 1232 if (typeof jso == "object") 1233 set_select_options(element, jso); 1234 else 1235 set_select_options(element, [request.responseText]); 1236 if (typeof onsuccess == "function") onsuccess(request); 1237 }, 1238 onerror: function(request) { 1239 set_select_options(element, ["Error " + request.status + ": " + request.statusText]); 1240 if (typeof onerror == "function") onerror(request); 1241 } 1242 }); 1243 return false; 1244} 1245 1246function intval(value) 1247{ 1248 return parseInt(value) || 0; 1249} 1250 1251function floatval(value) 1252{ 1253 return parseFloat(value) || 0; 1254} 1255 1256function round(value, precision) 1257{ 1258 if (precision && precision > 0) 1259 { 1260 var p = Math.pow(10, precision); 1261 return Math.round(value * p) / p; 1262 } 1263 else 1264 return Math.round(value); 1265} 1266 1267function in_array(array, element) 1268{ 1269 for (var i in array) 1270 if (array[i] == element) return true; 1271 return false; 1272} 1273 1274function index_of(array, element) 1275{ 1276 for (var i in array) 1277 if (array[i] == element) return i; 1278 return -1; 1279} 1280 1281function rand(a, b) 1282{ 1283 var r = Math.random(); 1284 if (typeof a == "undefined") return r; 1285 if (typeof b == "undefined") { b = a; a = 0; } 1286 return a + Math.floor(r * (b - a + 1)); 1287} 1288 1289function trim(s) 1290{ 1291 return s.replace(/(^\s+)|(\s+$)/g, ""); 1292} 1293 1294function nl2br(s) 1295{ 1296 return s.replace(/\n/g, "<br />\n"); 1297} 1298 1299function html_special_chars(s) 1300{ 1301 return s.replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<").replace(/>/g, ">"); 1302} 1303 1304function clone(o) 1305{ 1306 if (typeof o == "object") 1307 { 1308 var n = new o.constructor(); 1309 for (var p in o) 1310 if (o.hasOwnProperty(p)) 1311 n[p] = clone(o[p]); 1312 return n; 1313 } 1314 else return o; 1315} 1316 1317function set_cookie(name, value, expires, path, domain, secure) 1318{ 1319 if (expires) 1320 { 1321 date = new Date(); 1322 date.setTime(date.getTime() + expires * 1000); 1323 expires = date.toGMTString(); 1324 } 1325 document.cookie = name + "=" + escape(value) + 1326 (expires ? ";expires=" + expires : "") + 1327 (path ? ";path=" + path : "") + 1328 (domain ? ";domain=" + domain : "") + 1329 (secure ? ";secure" : ""); 1330 return true; 1331} 1332 1333function get_cookies() 1334{ 1335 var cookies = document.cookie.split(";"), cookie, result = []; 1336 for (var i = 0; i < cookies.length; i++) 1337 { 1338 cookie = trim(cookies[i]).split("="); 1339 if (cookie.length == 2) 1340 result[cookie[0]] = unescape(cookie[1]); 1341 } 1342 return result; 1343} 1344 1345function get_cookie(name) 1346{ 1347 var cookies = get_cookies(); 1348 return cookies[name] || ""; 1349} 1350 1351function delete_cookie(name, path, domain) 1352{ 1353 var date = new Date(0), expires = date.toGMTString(); 1354 document.cookie = name + "=" + 1355 ";expires=" + expires + 1356 (path ? ";path=" + path : "") + 1357 (domain ? ";domain=" + domain : ""); 1358 return true; 1359} 1360function run_scripts(container) { 1361 if (container) { 1362 var scripts = container.getElementsByTagName("script"), content; 1363 if (scripts && scripts.length) 1364 for (var i = 0; i < scripts.length; i++) 1365 if (content = scripts[i].innerHTML) 1366 try { 1367 eval.call(window, content); 1368 } catch (e) {} 1369 } 1370 return false; 1371} 1372 1373function _submit_form(form, container, onsuccess, onerror) 1374{ 1375 var url = get_attribute(form, "action"), post = null; 1376 if (get_attribute(form, "method").toLowerCase() == "post") post = serialize_form(form); 1377 else url += (url.indexOf("?") >= 0 ? "&" : "?") + serialize_form(form); 1378 if (url) 1379 _ajax(url, post, container, onsuccess, onerror); 1380 1381 return false; 1382} 1383 1384function _ajax(url, post, container, onsuccess, onerror) 1385{ 1386 if(container) 1387 add_class(container, 'loading'); 1388 1389 ajax_request({ 1390 url: url, 1391 post: post, 1392 onsuccess: function(request) { 1393 set_content(container, request.responseText); 1394 if (typeof onsuccess == "function") onsuccess(request); 1395 run_scripts(container); 1396 }, 1397 onerror: function(request) { 1398 set_content(container, "Error " + request.status + ": " + request.statusText); 1399 if (typeof onerror == "function") onerror(request); 1400 } 1401 }); 1402
1403 if(container) 1404 remove_class(container, 'loading'); 1405 1406 return false; 1407} 1408 1409function to_order_by_code() { 1410 load_url('/controller.php','action=TIMER_DISCOUNT_CODE',null, function(response) { 1411 window.location.href = "/order.html?userid="+response.responseText.toString()+'&?pk_campaign=timer&pk_source=internal&pk_medium='+(window.pk_medium?window.pk_medium:'')+'&pk_content=banner&pk_url='+location.pathname; 1412 }); 1413} 1414 1415function run_timer(discount_code_timer) { 1416 load_url('/controller.php','action=TIMER_DISCOUNT_CODE',null, function(response){ 1417 document.getElementById('discount_code_timer').innerHTML = response.responseText.toString(); 1418 jQuery('#countdown_dashboard').css('display', 'block'); 1419 jQuery(document).ready(function() { 1420 1421 var today = new Date(); 1422 var end_date = new Date(today.getFullYear(),today.getMonth(),today.getDate()+(6-today.getDay()),18,30,0,0); 1423 1424 jQuery('#countdown_dashboard').countDown({ 1425 targetDate: { 1426 //SET HERE DEADLINE 1427 'day': end_date.getDate(), 1428 'month': end_date.getMonth()+1, 1429 'year': end_date.getFullYear(), 1430 'hour': end_date.getHours(), 1431 'min': end_date.getMinutes(), 1432 'sec': end_date.getSeconds() 1433 }, 1434 omitWeeks: true, 1435 onComplete: function() { jQuery('.slide').hide(); } 1436 }); 1437 }); 1438 }); 1439} 1440 1441function file_name(self) { 1442 if(self.files&&self.files[0]&&self.files[0].name) 1443 jQuery(self).closest('.custom-file-upload').find('.file-name').val(self.files[0].name); 1444 else 1445 jQuery(self).closest('.custom-file-upload').find('.file-name').val(jQuery(this).val()); 1446} 1447 1448function get_radio_value(elements) 1449{ 1450 if (elements) 1451 { 1452 if (!elements.length) elements = [elements]; 1453 for (var i = 0, l = elements.length; i < l; i++) 1454 if (elements[i].checked) 1455 return elements[i].value; 1456 } 1457 return false; 1458} 1459 1460function set_radio_value(elements, value, onchange) 1461{ 1462 if (elements) 1463 { 1464 if (!elements.length) elements = [elements]; 1465 for (var i = 0, l = elements.length; i < l; i++) 1466 if (elements[i].value == value) 1467 { 1468 elements[i].checked = true; 1469 if (onchange) { 1470 setTimeout(function () { 1471 create_event(element, "change"); 1472 }, 1); 1473 } 1474 return i; 1475 } 1476 } 1477 return false; 1478}
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.