PageSourceSearch

https://www.siliconinvestor.com/Utils.js?v=1.3

js siliconinvestor.com collected 2026-10-02 03:43:08 UTC 7,961 bytes, 187 lines download raw bytes

1String.prototype.format = function() {   
2    var args = arguments;   
3    return this.replace(/{(\d+)}/g, function(match, number) {        
4            return args[number] || '{' + number + '}';     
5        }   
6     ); 
7 };
8
9function rec_remove(ancId) {
10     var anc = document.getElementById(ancId);
11     anc.innerHTML = "";
12     anc.setAttribute("class", "");
13}
14
15function recommendThis(id)
16{
17    var spanId = 'R' + id;
18    var ancId = 'T' + id;
19    var anc = document.getElementById(ancId);
20    var span = document.getElementById(spanId);
21    var anc_before = anc.innerHTML;
22    anc.innerHTML = "<font color='red'>- (sending) -</font>";    
23    var count = invokeService(spanId);
24    if (count > 0) {
25        anc.innerHTML = "<b>Recommended!</b>";
26        span.innerHTML = "{0} {1}".format(count, ((count > 1) ? "Recommendations" : "Recommendation"));
27	span.innerHTML = "<a href='readmsg.aspx?msgid=" + id + "&showwhorecd=1'>" + "{0} {1}".format(count, ((count > 1) ? "Recommendations" : "Recommendation") + "</a>");
28        anc.removeAttribute("href");
29        setTimeout("rec_remove('" + ancId + "');", 1000);
30    }
31    else {
32        anc.innerHTML = anc_before;
33    }
34
35}
36 
37function invokeService(id)
38{ 
39    if (window.XMLHttpRequest) { //IE7+, Firefox, Chrome, Opera, Safari      
40      xmlhttp=new XMLHttpRequest();
41    }
42    else{ // IE6, IE5
43      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
44    }
45    
46    //var url = "Services.ashx?id={0}".format(id);    
47    var url = "RecPost.ashx?id={0}".format(id);    
48    xmlhttp.open("GET", url, false);
49    xmlhttp.send();
50    return (xmlhttp.responseText);     
51}
52
53function pinsearchmenu()
54{
55    document.getElementById('p7').style.cssText='left:auto; right:0; opacity:1; ';
56    document.getElementById('p12').style.cssText='left:auto; right:100%; opacity:1; ';  
57    document.getElementById('unpinsearch').style.visibility='visible';
58}
59
60function unpinsearchmenu()
61{
62    document.getElementById('p7').style.cssText='left:-9999px; right:auto; opacity:0;';
63    document.getElementById('p12').style.cssText='left:-9999px; right:auto; opacity:0;'  
64    document.getElementById('unpinsearch').style.visibility='hidden';
65}
66
67function resetsearchmenu()
68{
69    document.getElementById('p7').style.left='';
70    document.getElementById('p7').style.right='';
71    document.getElementById('p7').style.opacity='';
72    document.getElementById('p12').style.left='';
73    document.getElementById('p12').style.right='';
74    document.getElementById('p12').style.opacity='';
75    document.getElementById('unpinsearch').style.visibility='hidden';
76}
77
78function clickLog(str)
79/* http://stackoverflow.com/questions/9384073/javascript-click-tracker-ahref-links */
80/* <a href=" { url } / file .swf " onClick="clickLog(tshis.href)">Click Me</a>  */
81{
82if (str=="")
83  {
84  document.getElementById("txtHint").innerHTML="";
85  return;
86  }
87if (window.XMLHttpRequest)
88  {// code for IE7+, Firefox, Chrome, Opera, Safari
89  xmlhttp=new XMLHttpRequest();
90  }
91else
92  {// code for IE6, IE5
93  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
94  }
95xmlhttp.onreadystatechange=function()
96  {
97  if (xmlhttp.readyState==4 && xmlhttp.status==200)
98    {
99    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
100    }
101  }
102xmlhttp.open("GET","click-log.php?url="+str,true);
103xmlhttp.send();
104}
105
106function searchpinfocus()
107{
108    pinsearchmenu();
109    document.getElementById("searchsubjects").focus();	
110}
111
112function createCookie(name,value,days) {
113	if (days) {
114	    var date = new Date();
115	    date.setTime(date.getTime()+(days*24*60*60*1000));
116	    var expires = "; expires="+date.toGMTString();
117	}
118	else var expires = "";
119	document.cookie = name+"="+value+expires+"; path=/";
120}
121
122function readCookie(name) {
123	var nameEQ = name + "=";
124	var ca = document.cookie.split(';');
125	for(var i=0;i < ca.length;i++) {
126	    var c = ca[i];
127	    while (c.charAt(0)==' ') c = c.substring(1,c.length);
128	    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
129	}
130	return null;
131}
132
133function eraseCookie(name) { createCookie(name,"",-1); }
134
135function AudioToggle() {
136    if (readCookie("AudioOn") != 0) {
137        createCookie('AudioOn', '0', 365);  // 1 = 1 day = 24 hours persistence
138        $("#audioctrl").attr("src", OUB + "images/audiooff.png");
139	} else {
140        eraseCookie('AudioOn');
141        $("#audioctrl").attr("src", OUB + "images/audioon.png");
142	}
143}
144
145/**
146 * jQuery.browser.mobile (http://detectmobilebrowser.com/)
147 *
148 * jQuery.browser.mobile will be true if the browser is a mobile device
149 *
150 **/
151(function (a) { (jQuery.browser = jQuery.browser || {}).mobile = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4)) })(navigator.userAgent || navigator.vendor || window.opera);
152
153
154/*! Normalized address bar hiding for iOS & Android (c) @scottjehl MIT License */
155(function (win) {
156    var doc = win.document;
157
158    // If there's a hash, or addEventListener is undefined, stop here
159    if (!win.navigator.standalone && !location.hash && win.addEventListener) {
160
161        //scroll to 1
162        win.scrollTo(0, 1);
163        var scrollTop = 1,
164			getScrollTop = function () {
165			    return win.pageYOffset || doc.compatMode === "CSS1Compat" && doc.documentElement.scrollTop || doc.body.scrollTop || 0;
166			},
167
168			//reset to 0 on bodyready, if needed
169			bodycheck = setInterval(function () {
170			    if (doc.body) {
171			        clearInterval(bodycheck);
172			        scrollTop = getScrollTop();
173			        win.scrollTo(0, scrollTop === 1 ? 0 : 1);
174			    }
175			}, 15);
176
177        win.addEventListener("load", function () {
178            setTimeout(function () {
179                //at load, if user hasn't scrolled more than 20 or so...
180                if (getScrollTop() < 20) {
181                    //reset to hide addr bar at onload
182                    win.scrollTo(0, scrollTop === 1 ? 0 : 1);
183                }
184            }, 0);
185        }, false);
186    }
187})(this);

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.