1/* $Id : utils.js 5052 2007-02-03 10:30:13Z weberliu $ */ 2 3var Browser = new Object(); 4 5Browser.isMozilla = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined') && (typeof HTMLDocument != 'undefined'); 6Browser.isIE = window.ActiveXObject ? true : false; 7Browser.isFirefox = (navigator.userAgent.toLowerCase().indexOf("firefox") != - 1); 8Browser.isSafari = (navigator.userAgent.toLowerCase().indexOf("safari") != - 1); 9Browser.isOpera = (navigator.userAgent.toLowerCase().indexOf("opera") != - 1); 10 11var Utils = new Object(); 12 13Utils.htmlEncode = function(text) 14{ 15 return text.replace(/&/g, '&').replace(/"/g, '"').replace(/</g, '<').replace(/>/g, '>'); 16} 17 18Utils.trim = function( text ) 19{ 20 if (typeof(text) == "string") 21 { 22 return text.replace(/^\s*|\s*$/g, ""); 23 } 24 else 25 { 26 return text; 27 } 28} 29 30Utils.isEmpty = function( val ) 31{ 32 switch (typeof(val)) 33 { 34 case 'string': 35 return Utils.trim(val).length == 0 ? true : false; 36 break; 37 case 'number': 38 return val == 0; 39 break; 40 case 'object': 41 return val == null; 42 break; 43 case 'array': 44 return val.length == 0; 45 break; 46 default: 47 return true; 48 } 49} 50 51Utils.isNumber = function(val) 52{ 53 var reg = /^[\d|\.|,]+$/; 54 return reg.test(val); 55} 56 57Utils.isInt = function(val) 58{ 59 if (val == "") 60 { 61 return false; 62 } 63 var reg = /\D+/; 64 return !reg.test(val); 65} 66 67Utils.isEmail = function( email ) 68{ 69 var reg1 = /([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/; 70 71 return reg1.test( email ); 72} 73 74Utils.isTel = function ( tel ) 75{ 76 var reg = /^[\d|\-|\s|\_]+$/; //åªå è®¸ä½¿ç¨æ°å-ç©ºæ ¼ç 77 78 return reg.test( tel ); 79} 80 81Utils.fixEvent = function(e) 82{ 83 var evt = (typeof e == "undefined") ? window.event : e; 84 return evt; 85} 86 87Utils.srcElement = function(e) 88{ 89 if (typeof e == "undefined") e = window.event; 90 var src = document.all ? e.srcElement : e.target; 91 92 return src; 93} 94 95Utils.isTime = function(val) 96{ 97 var reg = /^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}$/; 98 99 return reg.test(val); 100} 101 102Utils.x = function(e) 103{ //å½åé¼ æ Xåæ 104 return Browser.isIE?event.x + document.documentElement.scrollLeft - 2:e.pageX; 105} 106 107Utils.y = function(e) 108{ //å½åé¼ æ Yåæ 109 return Browser.isIE?event.y + document.documentElement.scrollTop - 2:e.pageY; 110} 111 112Utils.request = function(url, item) 113{ 114 var sValue=url.match(new RegExp("[\?\&]"+item+"=([^\&]*)(\&?)","i")); 115 return sValue?sValue[1]:sValue; 116} 117 118Utils.$ = function(name) 119{ 120 return document.getElementById(name); 121} 122 123function rowindex(tr) 124{ 125 if (Browser.isIE) 126 { 127 return tr.rowIndex; 128 } 129 else 130 { 131 table = tr.parentNode.parentNode; 132 for (i = 0; i < table.rows.length; i ++ ) 133 { 134 if (table.rows[i] == tr) 135 { 136 return i; 137 } 138 } 139 } 140} 141 142document.getCookie = function(sName) 143{ 144 // cookies are separated by semicolons 145 var aCookie = document.cookie.split("; "); 146 for (var i=0; i < aCookie.length; i++) 147 { 148 // a name/value pair (a crumb) is separated by an equal sign 149 var aCrumb = aCookie[i].split("="); 150 if (sName == aCrumb[0]) 151 return decodeURIComponent(aCrumb[1]); 152 } 153 154 // a cookie with the requested name does not exist 155 return null; 156} 157 158document.setCookie = function(sName, sValue, sExpires) 159{ 160 var sCookie = sName + "=" + encodeURIComponent(sValue); 161 if (sExpires != null) 162 { 163 sCookie += "; expires=" + sExpires; 164 } 165 166 document.cookie = sCookie; 167} 168 169document.removeCookie = function(sName,sValue) 170{ 171 document.cookie = sName + "=; expires=Fri, 31 Dec 1999 23:59:59 GMT;"; 172} 173 174function getPosition(o) 175{ 176 var t = o.offsetTop; 177 var l = o.offsetLeft; 178 while(o = o.offsetParent) 179 { 180 t += o.offsetTop; 181 l += o.offsetLeft; 182 } 183 var pos = {top:t,left:l}; 184 return pos; 185} 186 187function cleanWhitespace(element) 188{ 189 var element = element; 190 for (var i = 0; i < element.childNodes.length; i++) { 191 var node = element.childNodes[i];
192 if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) 193 element.removeChild(node); 194 } 195}
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.