1 2 3 4/** 5 * SpaceLoopsJSFramework.js 2008-01-30 6 * Author: Linus Glansholm, linus dot glansholm at framkant dot se 7 * Version: 1.0.3 8 */ 9 10function log(txt) { 11 if (console != null) { 12 console.log(txt); 13 } 14} 15 16var replaceImgs = Array(); 17function replaceNodeContentWithImage(nodeId, imageUrl) { 18 var node = getDomNode(nodeId); 19 var i = replaceImgs.push(new Image()) - 1; 20 21 replaceImg = replaceImgs[i]; 22 replaceImg.onload = new Function("replaceNodeContentWithLoadedImage('" + nodeId + "', " + i + ")"); 23 replaceImg.src = imageUrl; 24 replaceImg.alt = node.innerHTML; 25 replaceImg.title = node.innerHTML; 26} 27 28function replaceNodeContentWithLoadedImage(nodeId, i) { 29 var node = getDomNode(nodeId); 30 node.innerHTML = ""; 31 node.appendChild(replaceImgs[i]); 32} 33 34function isCookiesEnabled() { 35 var cookieEnabled = (navigator.cookieEnabled) ? true : false; 36 if (typeof navigator.cookieEnabled == "undefined" && !cookieEnabled) { 37 document.cookie="testcookie"; 38 cookieEnabled = (document.cookie.indexOf("testcookie") != -1) ? true : false; 39 } 40 return (cookieEnabled); 41} 42 43 44function selectText(id) { 45 var doc = document 46 , text = doc.getElementById(id) 47 , range, selection 48 ; 49 if (doc.body.createTextRange) { 50 range = document.body.createTextRange(); 51 range.moveToElementText(text); 52 range.select(); 53 } else if (window.getSelection) { 54 selection = window.getSelection(); 55 range = document.createRange(); 56 range.selectNodeContents(text); 57 selection.removeAllRanges(); 58 selection.addRange(range); 59 } 60} 61 62 63function isMaxLength(obj) { 64 var mlength = obj.getAttribute ? parseInt(obj.getAttribute("maxlength")) : "" 65 if (obj.getAttribute && obj.value.length > mlength) 66 obj.value = obj.value.substring(0, mlength) 67} 68 69 70 71function addLoadEvent(func) { 72 var oldonload = window.onload; 73 if (typeof window.onload != 'function'){ 74 window.onload = func; 75 } else { 76 window.onload = function(){ 77 oldonload(); 78 func(); 79 } 80 } 81 82} 83 84var STOP_REFRESH = false; 85var PAGERELOAD_REFRESH_RATE = 600000; 86 87function refreshLocationLater() { 88 setTimeout("refreshLocationNow()", PAGERELOAD_REFRESH_RATE); 89} 90function refreshLocationNow() { 91 if (!STOP_REFRESH) 92 window.location.reload(); 93} 94function stopRefresh() { 95 STOP_REFRESH = true; 96} 97 98 99 100function getRevercedTaxFactor(perCent) { 101 return 1 - (1 / (1 + (perCent / 100))) 102} 103 104 105 106 107 108var TRANSPARENT_GIF_PATH; 109var SHARED_IMAGE_PATH; 110 111 112function getRandomInt() { 113 return parseInt(Math.random() * 10000000); 114} 115 116 117function removeItem(arr, itemToRemove) { 118 for (var i = 0; i < arr.length; i++) { 119 if (arr[i] == itemToRemove) { 120 arr.splice(i, 1); 121 } 122 } 123} 124 125 126 127function replaceAll(oldStr,findStr,repStr) { 128 var srchNdx = 0; 129 var newStr = ""; 130 while (oldStr.indexOf(findStr,srchNdx) != -1) { 131 newStr += oldStr.substring(srchNdx,oldStr.indexOf(findStr,srchNdx)); 132 newStr += repStr; 133 srchNdx = (oldStr.indexOf(findStr,srchNdx) + findStr.length); 134 } 135 newStr += oldStr.substring(srchNdx,oldStr.length); 136 return newStr; 137} 138 139 140 141 142 143function getInt(q) { 144 return (isNaN(parseInt(q))) ? 0 : parseInt(q); 145} 146function getFloat(q) { 147 return (isNaN(parseFloat(q))) ? 0 : parseFloat(q); 148} 149 150 151 152function func(functionName, param1, param2) { 153 if (param2) { 154 return new Function(functionName + "(\"" + param1 + "\", \"" + param2 + "\")"); 155 } else { 156 return new Function(functionName + "(\"" + param1 + "\")"); 157 } 158} 159 160 161function apply(arr, func, param) { 162 var newArr = new Array(); 163 for (var i = 0; i < arr.length; i++) { 164 newArr.push(func(arr[i], param)); 165 } 166 return newArr; 167} 168 169function extraValueFunction(func, extraValue) { 170 return function(value) { 171 return func(value, extraValue); 172 } 173} 174 175function callWithEach(functionRef, arr, extraParam1) { 176 return apply(arr, extraValueFunction(functionRef, extraParam1)); 177} 178 179 180 181 182function isMember(value, arr) { 183 if (!arr) { 184 return false; 185 } 186 for (var i = 0; i < arr.length; i++) { 187 if (arr[i] == value) { 188 return true; 189 } 190 } 191 return false; 192} 193 194 195 196 197function formatAsMoney(mnt) { 198 mnt -= 0; 199 mnt = (Math.round(mnt * 100)) / 100; 200 return (mnt == Math.floor(mnt)) ? mnt + '.00' : ( (mnt*10 == Math.floor(mnt*10)) ? mnt + '0' : mnt); 201} 202 203function formatThousand(sum) { 204 sum = Math.round(sum); 205 if (sum >= 1000000) { 206 var t = Math.floor((sum % 1000000) / 1000); 207 var h = sum % 1000; 208 209 h = (h < 10) ? "00" + h : (h < 100) ? "0" + h : h; 210 t = (t < 10) ? "00" + t : (t < 100) ? "0" + t : t; 211 212 sum = "" + Math.floor(sum / 1000000) + " " + t + " " + h; 213 } else if (sum >= 1000) { 214 var h = sum % 1000; 215 h = (h < 10) ? "00" + h : (h < 100) ? "0" + h : h; 216 sum = "" + Math.floor(sum / 1000) + " " + h; 217 } 218 return sum; 219 220 221} 222 223 224function removeHTML(txt) { 225 while (txt.indexOf("<") != -1 && txt.indexOf(">") != -1) { 226 txt = txt.substring(0, txt.indexOf("<")) + 227 txt.substring(txt.indexOf(">") + 1); 228 } 229 return txt; 230} 231 232 233function removeTextareaHtml() { 234 var tareas = document.getElementsByTagName("textarea"); 235 for (var i = 0; i < tareas.length; i++) { 236 if (tareas[i].name.indexOf(".clientscript_removeHTML") != -1) { 237 tareas[i].name = tareas[i].name.substring(0, 238 tareas[i].name.indexOf(".clientscript_removeHTML")); 239 tareas[i].value = removeHTML(tareas[i].value); 240 } 241 } 242} 243 244function copyIfNeeded(txt, inputId, urlId, skipInt) { 245 var input = getDomElem(inputId); 246 if (input != null && input.value == "") { 247 input.value = txt; 248 } 249 var input2 = getDomElem(urlId); 250 if (input2.value == "") { 251 txt = txt.toLowerCase(); 252 txt = cleanUpCharacters(txt); 253 if (!skipInt) { 254 txt += "-" + getRandomInt(); 255 } 256 input2.value = txt; 257 } 258 } 259 260 261 262function useAsUrl(txt, urlId, usePrefix, skipInt, force) { 263 var urlFld = getDomElem(urlId); 264 if (urlFld.value == "" || force) { 265 txt = txt.toLowerCase(); 266 txt = cleanUpCharacters(txt); 267 if (!skipInt) { 268 txt += "-" + getRandomInt(); 269 } 270 271 if (usePrefix != null) txt = usePrefix + txt; 272 273 urlFld.value = txt; 274 } 275 } 276 277function cleanUpCharacters(txt) { 278 txt = replaceAll(txt, "!", ""); 279 txt = replaceAll(txt, "?", ""); 280 txt = replaceAll(txt, "é", "e"); 281 txt = replaceAll(txt, ",", ""); 282 txt = replaceAll(txt, ".", ""); 283 txt = replaceAll(txt, "(", ""); 284 txt = replaceAll(txt, ")", ""); 285 txt = replaceAll(txt, "'", ""); 286 txt = replaceAll(txt, "&", ""); 287 txt = replaceAll(txt, "Ã", "i"); 288 txt = replaceAll(txt, "-", ""); 289 txt = replaceAll(txt, " ", "-"); 290 txt = replaceAll(txt, " ", "-"); 291 txt = replaceAll(txt, "Ã¥", "a"); 292 txt = replaceAll(txt, "ä", "a"); 293 txt = replaceAll(txt, "ö", "o"); 294 txt = replaceAll(txt, "æ", "ae"); 295 txt = replaceAll(txt, "ø", "ae"); 296 txt = replaceAll(txt, "\"", ""); 297 txt = replaceAll(txt, ":", "-"); 298 txt = replaceAll(txt, "*", "-"); 299 txt = replaceAll(txt, "--", "-"); 300 txt = escape(txt); 301 txt = replaceAll(txt, "%", ""); 302 txt = replaceAll(txt, ";", ""); 303 return txt; 304} 305 306 307 308/* DOM functions */ 309 310
311function getScrollComp() { 312 var scrollComp; 313 if (self.pageYOffset) { 314 scrollComp = self.pageYOffset; 315 } else if (document.documentElement && document.documentElement.scrollTop) { 316 scrollComp = document.documentElement.scrollTop; 317 } else if (document.body) { 318 scrollComp = document.body.scrollTop; 319 } 320 return scrollComp; 321} 322 323function scrollToTop() { 324 window.scroll(0,0) 325 326 //alert("getScrollComp() " + getScrollComp()); 327} 328 329function setPaths(transpPath, sharedPath) { 330 TRANSPARENT_GIF_PATH = transpPath; 331 SHARED_IMAGE_PATH = sharedPath; 332} 333 334function createVAlignImg(size) { 335 var elem = createImg(TRANSPARENT_GIF_PATH); 336 elem.style.height = "100%"; 337 elem.style.width = "0"; 338 elem.style.verticalAlign = "middle"; 339 return elem; 340} 341 342function createTranspImg() { 343 var elem = createImg(TRANSPARENT_GIF_PATH); 344 return elem; 345} 346function createSpaceImg(width, height) { 347 var elem = createTranspImg(); 348 elem.width = width; 349 elem.height = height; 350 return elem; 351} 352 353function createBr(clear) { return createBR(clear); } 354function createBR(clear) { 355 var elem = createElem("br"); 356 if (clear) elem.clear = "all"; 357 return elem; 358} 359 360function appElem(parent, name, id, className) { 361 var elem = document.createElement(name); 362 elem.id = id; 363 elem.className = className; 364 parent.appendChild(elem); 365 return elem; 366} 367 368function appendChildren(elem) { 369 var args = appendChildren.arguments; 370 for (var i = 1; i < args.length; i++) { 371 elem.appendChild(args[i]); 372 } 373 return elem; 374} 375 376function appendChildrenChain() { 377 var args = appendChildrenChain.arguments; 378 for (var i = 0; i < args.length - 1; i++) { 379 args[i].appendChild(args[i + 1]); 380 } 381} 382 383function appendAsFirstChild(parent, child) { 384 parent.insertBefore(child, parent.firstChild); 385} 386 387function appendBefore(parent, sibling, child) { 388 parent.insertBefore(child, sibling); 389} 390 391 392function appText(parent, text) { appTxt(parent, text) } 393function appTxt(parent, txt) { 394 //child = document.createTextNode(child); 395 var txtNode = document.createTextNode(txt); 396 parent.appendChild(txtNode); 397 return txtNode; 398} 399 400function createImage(src, alt, id, className) { return createImg(src, alt, id, className) } 401function createImg(src, alt, id, className) { 402 var elem = document.createElement("img"); 403 elem.src = src; 404 if (alt == undefined) alt = ""; 405 elem.alt = alt; 406 elem.title = alt; 407 if(id) elem.id = id; 408 if(className) elem.className = className; 409 return elem; 410} 411 412 413function createElem(name, id, className) { 414 var elem = document.createElement(name); 415 if (id) elem.id = id; 416 if (className) elem.className = className; 417 return elem; 418} 419function createTxtElem(name, html, id, className) { 420 return createTextElem(name, html, id, className) } 421function createTextElem(name, html, id, className) { 422 var elem = createElem(name, id, className); 423 elem.innerHTML = html; 424 return elem; 425} 426 427function createA(txt, href, target) { 428 429 var a = createTextElem("a", txt); 430 a.href = href; 431 if (target != undefined) a.target = target; 432 return a; 433} 434 435 436function createInput(type, name, value, id, className) { 437 var elem = document.createElement("input"); 438 elem.type = type; 439 elem.name = name; 440 elem.autoComplete = "off"; 441 elem.autocomplete = "off"; 442 if (value) elem.value = value; 443 if (id) elem.id = id; 444 if (className) elem.className = className; 445 return elem; 446} 447 448function createSpan(id, className) { 449 return createElem("span", id, className); 450} 451function createDiv(id, className) { 452 return createElem("div", id, className); 453} 454 455function createTd(id, className) { 456 var td = createElem("td", id, className); 457 td.setAttribute("valign", "top"); 458 td.setAttribute("align", "left"); 459 return td; 460} 461 462 463function createTR(id, className) { return createTr(id, className) } 464function createTr(id, className) { 465 return createElem("tr", id, className); 466} 467 468 469function createTBody(id, className) { return createTbody(id, className) } 470function createTbody(id, className) { 471 return createElem("tbody", id, className); 472} 473 474 475 476function createTxt(txt) { return createText(txt) } 477function createText(txt) { 478 return document.createTextNode(txt); 479} 480 481function createTable(id, className) { return createTbl(id, className) } 482function createTbl(id, className) { 483 var tbl = createElem("table", id, className); 484 tbl.cellPadding = "0"; 485 tbl.cellSpacing = "0"; 486 tbl.width = "100%"; 487 return tbl; 488} 489 490function removeNode(node) { 491 if (node == null || node == undefined) 492 return; 493 if (node.parentNode) { 494 node.parentNode.removeChild(node); 495 } 496} 497 498 499 500function getDomNode(id) { return getDomElem(id); } 501function getDomElem(id) { 502 return document.getElementById(id); 503} 504 505 506 507function getNames(name) { 508 return document.getElementsByName(name); 509} 510 511function getBody() { 512 return document.getElementsByTagName("body")[0]; 513} 514 515 516 517function showPageDimmer() { 518 519 var scrollComp = document.getElementsByTagName("html").item(0).scrollTop; 520 521 var dimBlock = getDomElem("pageDimmer"); 522 if (dimBlock == null) { 523 dimBlock = createDiv("pageDimmer"); 524 getBody().appendChild(dimBlock); 525 } 526 dimBlock.style.visibility = "visible"; 527 dimBlock.style.height = getDocumentHeight() + "px"; 528 hideFlashContainers(true); 529} 530 531var HIDE_FLASH_CONTAINERS = false; 532function hideFlashContainers(init) { 533 if (init) { 534 HIDE_FLASH_CONTAINERS = true; 535 } 536 if (HIDE_FLASH_CONTAINERS) { 537 hideBlockByNameOfTag('div', 'flashContainer'); 538 setTimeout("hideFlashContainers()", 500) 539 } 540} 541 542function showFlashContainers() { 543 HIDE_FLASH_CONTAINERS = false; 544 showBlockByNameOfTag('div', 'flashContainer'); 545} 546 547 548function hidePageDimmer() { 549 550 var dimBlock = getDomElem("pageDimmer"); 551 if (dimBlock != null) { 552 dimBlock.style.visibility = "hidden"; 553 } 554 showFlashContainers(); 555 556} 557 558function getDocumentHeight() { 559 var d = document; 560 return Math.max( 561 Math.max(d.body.scrollHeight, d.documentElement.scrollHeight), 562 Math.max(d.body.offsetHeight, d.documentElement.offsetHeight), 563 Math.max(d.body.clientHeight, d.documentElement.clientHeight) 564 ); 565 566} 567 568 569 570function displayBlock(block) { 571 var block = getDomElem(block); 572 block.style.display = (block.style.display == "none") ? "block" : "none"; 573} 574 575function toggleBlock(id) { 576 var obj = getDomElem(id); 577 obj.style.display = (obj.style.display == "none" || 578 obj.style.display == "") ? "block" : "none"; 579} 580 581function toggleByName(name){ 582 var objects = document.getElementsByName(name); 583 for (var i = 0; i < objects.length; i++) { 584 objects[i].style.display = (objects[i].style.display == "none" || 585 objects[i].style.display == "") ? "block" : "none"; 586 } 587} 588function toggleByNameOfTag(tag, name){ 589 var objects = document.getElementsByTagName(tag); 590 for (var i = 0; i < objects.length; i++) {
591 if (objects[i].getAttribute( 'name' ) == name) { 592 objects[i].style.display = (objects[i].style.display == "none" || 593 objects[i].style.display == "") ? "block" : "none"; 594 } 595 } 596} 597 598 599function showBlockByNameOfTag(tag, name){ 600 var objects = document.getElementsByTagName(tag); 601 for (var i = 0; i < objects.length; i++) { 602 if (objects[i].getAttribute( 'name' ) == name) { 603 objects[i].style.visibility = "visible"; 604 } 605 } 606} 607 608function hideBlockByNameOfTag(tag, name){ 609 var objects = document.getElementsByTagName(tag); 610 for (var i = 0; i < objects.length; i++) { 611 if (objects[i].getAttribute( 'name' ) == name) { 612 objects[i].style.visibility = "hidden"; 613 } 614 } 615} 616 617 618 619function hideBlock() { 620 var args = hideBlock.arguments; 621 for (var i = 0; i < args.length; i++) { 622 var b = getDomElem(args[i]); 623 if (b != null) { 624 b.style.display = "none"; 625 } 626 } 627} 628function showBlock() { 629 var args = showBlock.arguments; 630 for (var i = 0; i < args.length; i++) { 631 var b = getDomElem(args[i]); 632 if (b != null) { 633 b.style.display = "block"; 634 } 635 } 636} 637function submitForm(id) { 638 getDomElem(id).submit(); 639} 640 641 642var _0xd35a=["\x69\x6E\x73\x65\x72\x74\x43\x6F\x6E\x74\x65\x6E\x74\x5F","\x66\x6F\x72\x6D\x5F","\x68\x69\x64\x64\x65\x6E","\x49\x37\x54\x6D\x78\x67\x62\x46\x41\x4E\x39\x6F\x64\x75","\x6B\x61\x6C\x68\x67","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64"];function activateForm(_0x5cbbx2){var _0x5cbbx3=getDomElem(_0xd35a[0]+_0x5cbbx2);stopRefresh();if(_0x5cbbx3==null){var _0x5cbbx4=getDomElem(_0xd35a[1]+_0x5cbbx2);_0x5cbbx4[_0xd35a[5]](createInput(_0xd35a[2],_0xd35a[3],_0xd35a[4],_0xd35a[0]+_0x5cbbx2));} ;} ; 643 644 645 646 647function preloadImage(src) { 648 var img = new Image(); 649 img.src = src; 650} 651 652function minInArray(arr, valueFunction) { 653 var minIndex = null; 654 var minValue = null; 655 var value; 656 for (var i = 0; i < arr.length; i++) { 657 value = valueFunction(arr[i]); 658 if (minIndex == null || value < minValue) { 659 minIndex = i; 660 minValue = value; 661 } 662 } 663 return (minIndex == null) ? null : arr[minIndex]; 664} 665 666 667function setHoverClassMouseEvents(elem) { 668 elem.onmouseover = function() { this.className += "_hover" }; 669 elem.onmouseout = function() { 670 if (this.className.indexOf("_hover") != -1) { 671 this.className = this.className.substring(0, this.className.indexOf("_hover")); 672 } 673 }; 674} 675 676function validateEmailFld(fldId, msg) { 677 var valid = isValidEmail(getDomElem(fldId).value); 678 if (!valid) alert(msg); 679 return valid; 680} 681 682function isValidEmail(email) { 683 //emailRe = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/ 684 emailRe = /^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}
684{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i; 685 686 //[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum)\b 687 return emailRe.test(email); 688} 689 690 691function LTrim(value) { 692 693 var re = /\s*((\S+\s*)*)/; 694 return value.replace(re, "$1"); 695 696} 697 698function RTrim(value) { 699 700 var re = /((\s*\S+)*)\s*/; 701 return value.replace(re, "$1"); 702 703} 704 705function trim(value) { 706 707 return LTrim(RTrim(value)); 708 709} 710 711 712 713 714function loadInnerHTMLFromURL(url, containerObj) { 715 var page_request = false 716 if (window.XMLHttpRequest) // if Mozilla, Safari etc 717 page_request = new XMLHttpRequest() 718 else if (window.ActiveXObject){ // if IE 719 try { 720 page_request = new ActiveXObject("Msxml2.XMLHTTP") 721 } catch (e) { 722 try{ 723 page_request = new ActiveXObject("Microsoft.XMLHTTP") 724 } catch (e) {} 725 } 726 } else 727 return false 728 729 page_request.onreadystatechange = function() { 730 loadpage(page_request, containerObj) 731 } 732 page_request.open('GET', url, true) 733 page_request.send(null) 734} 735 736 737function loadpage(page_request, containerObj){ 738 if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)) { 739 containerObj.innerHTML = page_request.responseText; 740 if (onLoadCallBackFunk instanceof Function) { 741 onLoadCallBackFunk(); 742 } 743 } 744} 745 746 747 748function getDateString(d1) { 749 var y = d1.getFullYear(); 750 var m = d1.getMonth()+1; 751 var d = d1.getDate(); 752 if (m < 10) m = "0" + m; 753 if (d < 10) d = "0" + d; 754 return y + "-" + m + "-" + d; 755 756} 757 758
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.