1/* 2 [Discuz!] (C)2001-2009 Comsenz Inc. 3 This is NOT a freeware, use is subject to license terms 4 5 $Id: common.js 30758 2012-06-18 06:48:59Z chenmengshu $ 6*/ 7 8var BROWSER = {}; 9var USERAGENT = navigator.userAgent.toLowerCase(); 10browserVersion({'ie':'msie','firefox':'','chrome':'','opera':'','safari':'','mozilla':'','webkit':'','maxthon':'','qq':'qqbrowser'}); 11if(BROWSER.safari) { 12 BROWSER.firefox = true; 13} 14BROWSER.opera = BROWSER.opera ? opera.version() : 0; 15 16HTMLNODE = document.getElementsByTagName('head')[0].parentNode; 17if(BROWSER.ie) { 18 BROWSER.iemode = parseInt(typeof document.documentMode != 'undefined' ? document.documentMode : BROWSER.ie); 19 HTMLNODE.className = 'ie_all ie' + BROWSER.iemode; 20} 21 22var CSSLOADED = []; 23var JSLOADED = []; 24var JSMENU = []; 25JSMENU['active'] = []; 26JSMENU['timer'] = []; 27JSMENU['drag'] = []; 28JSMENU['layer'] = 0; 29JSMENU['zIndex'] = {'win':200,'menu':300,'dialog':400,'prompt':500}; 30JSMENU['float'] = ''; 31var AJAX = []; 32AJAX['url'] = []; 33AJAX['stack'] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; 34var CURRENTSTYPE = null; 35var discuz_uid = isUndefined(discuz_uid) ? 0 : discuz_uid; 36var creditnotice = isUndefined(creditnotice) ? '' : creditnotice; 37var cookiedomain = isUndefined(cookiedomain) ? '' : cookiedomain; 38var cookiepath = isUndefined(cookiepath) ? '' : cookiepath; 39var EXTRAFUNC = [], EXTRASTR = ''; 40EXTRAFUNC['showmenu'] = []; 41 42var DISCUZCODE = []; 43DISCUZCODE['num'] = '-1'; 44DISCUZCODE['html'] = []; 45 46var USERABOUT_BOX = true; 47var USERCARDST = null; 48var CLIPBOARDSWFDATA = ''; 49var NOTICETITLE = []; 50 51if(BROWSER.firefox && window.HTMLElement) { 52 HTMLElement.prototype.__defineSetter__('outerHTML', function(sHTML) { 53 var r = this.ownerDocument.createRange(); 54 r.setStartBefore(this); 55 var df = r.createContextualFragment(sHTML); 56 this.parentNode.replaceChild(df,this); 57 return sHTML; 58 }); 59 60 HTMLElement.prototype.__defineGetter__('outerHTML', function() { 61 var attr; 62 var attrs = this.attributes; 63 var str = '<' + this.tagName.toLowerCase(); 64 for(var i = 0;i < attrs.length;i++){ 65 attr = attrs[i]; 66 if(attr.specified) 67 str += ' ' + attr.name + '="' + attr.value + '"'; 68 } 69 if(!this.canHaveChildren) { 70 return str + '>'; 71 } 72 return str + '>' + this.innerHTML + '</' + this.tagName.toLowerCase() + '>'; 73 }); 74 75 HTMLElement.prototype.__defineGetter__('canHaveChildren', function() { 76 switch(this.tagName.toLowerCase()) { 77 case 'area':case 'base':case 'basefont':case 'col':case 'frame':case 'hr':case 'img':case 'br':case 'input':case 'isindex':case 'link':case 'meta':case 'param': 78 return false; 79 } 80 return true; 81 }); 82} 83 84function $(id) { 85 return !id ? null : document.getElementById(id); 86} 87 88function $C(classname, ele, tag) { 89 var returns = []; 90 ele = ele || document; 91 tag = tag || '*'; 92 if(ele.getElementsByClassName) { 93 var eles = ele.getElementsByClassName(classname); 94 if(tag != '*') { 95 for (var i = 0, L = eles.length; i < L; i++) { 96 if (eles[i].tagName.toLowerCase() == tag.toLowerCase()) { 97 returns.push(eles[i]); 98 } 99 } 100 } else { 101 returns = eles; 102 } 103 }else { 104 eles = ele.getElementsByTagName(tag); 105 var pattern = new RegExp("(^|\\s)"+classname+"(\\s|$)"); 106 for (i = 0, L = eles.length; i < L; i++) { 107 if (pattern.test(eles[i].className)) { 108 returns.push(eles[i]); 109 } 110 } 111 } 112 return returns; 113} 114 115function _attachEvent(obj, evt, func, eventobj) { 116 eventobj = !eventobj ? obj : eventobj; 117 if(obj.addEventListener) { 118 obj.addEventListener(evt, func, false); 119 } else if(eventobj.attachEvent) { 120 obj.attachEvent('on' + evt, func); 121 } 122} 123 124function _detachEvent(obj, evt, func, eventobj) { 125 eventobj = !eventobj ? obj : eventobj; 126 if(obj.removeEventListener) { 127 obj.removeEventListener(evt, func, false); 128 } else if(eventobj.detachEvent) { 129 obj.detachEvent('on' + evt, func); 130 } 131} 132 133function browserVersion(types) { 134 var other = 1; 135 for(i in types) { 136 var v = types[i] ? types[i] : i; 137 if(USERAGENT.indexOf(v) != -1) { 138 var re = new RegExp(v + '(\\/|\\s)([\\d\\.]+)', 'ig'); 139 var matches = re.exec(USERAGENT); 140 var ver = matches != null ? matches[2] : 0; 141 other = ver !== 0 && v != 'mozilla' ? 0 : other; 142 }else { 143 var ver = 0; 144 } 145 eval('BROWSER.' + i + '= ver'); 146 } 147 BROWSER.other = other; 148} 149 150function getEvent() { 151 if(document.all) return window.event; 152 func = getEvent.caller; 153 while(func != null) { 154 var arg0 = func.arguments[0]; 155 if (arg0) { 156 if((arg0.constructor == Event || arg0.constructor == MouseEvent) || (typeof(arg0) == "object" && arg0.preventDefault && arg0.stopPropagation)) { 157 return arg0; 158 } 159 } 160 func=func.caller; 161 } 162 return null; 163} 164 165function isUndefined(variable) { 166 return typeof variable == 'undefined' ? true : false; 167} 168 169function in_array(needle, haystack) { 170 if(typeof needle == 'string' || typeof needle == 'number') { 171 for(var i in haystack) { 172 if(haystack[i] == needle) { 173 return true; 174 } 175 } 176 } 177 return false; 178} 179 180function trim(str) { 181 return (str + '').replace(/(\s+)$/g, '').replace(/^\s+/g, ''); 182} 183 184function strlen(str) { 185 return (BROWSER.ie && str.indexOf('\n') != -1) ? str.replace(/\r?\n/g, '_').length : str.length; 186} 187 188function mb_strlen(str) { 189 var len = 0; 190 for(var i = 0; i < str.length; i++) { 191 len += str.charCodeAt(i) < 0 || str.charCodeAt(i) > 255 ? (charset == 'utf-8' ? 3 : 2) : 1; 192 } 193 return len; 194} 195 196function mb_cutstr(str, maxlen, dot) { 197 var len = 0; 198 var ret = ''; 199 var dot = !dot ? '...' : ''; 200 maxlen = maxlen - dot.length; 201 for(var i = 0; i < str.length; i++) { 202 len += str.charCodeAt(i) < 0 || str.charCodeAt(i) > 255 ? (charset == 'utf-8' ? 3 : 2) : 1; 203 if(len > maxlen) { 204 ret += dot; 205 break; 206 } 207 ret += str.substr(i, 1); 208 } 209 return ret; 210} 211 212function preg_replace(search, replace, str, regswitch) { 213 var regswitch = !regswitch ? 'ig' : regswitch; 214 var len = search.length; 215 for(var i = 0; i < len; i++) { 216 re = new RegExp(search[i], regswitch); 217 str = str.replace(re, typeof replace == 'string' ? replace : (replace[i] ? replace[i] : replace[0])); 218 } 219 return str; 220} 221 222function htmlspecialchars(str) { 223 return preg_replace(['&', '<', '>', '"'], ['&', '<', '>', '"'], str); 224} 225 226function display(id) { 227 var obj = $(id); 228 if(obj.style.visibility) { 229 obj.style.visibility = obj.style.visibility == 'visible' ? 'hidden' : 'visible'; 230 } else { 231 obj.style.display = obj.style.display == '' ? 'none' : ''; 232 } 233} 234 235function checkall(form, prefix, checkall) { 236 var checkall = checkall ? checkall : 'chkall'; 237 count = 0; 238 for(var i = 0; i < form.elements.length; i++) { 239 var e = form.elements[i]; 240 if(e.name && e.name != checkall && (!prefix || (prefix && e.name.match(prefix)))) { 241 e.checked = form.elements[checkall].checked; 242 if(e.checked) { 243 count++; 244 } 245 } 246 } 247 return count; 248} 249 250function setcookie(cookieName, cookieValue, seconds, path, domain, secure) { 251 var expires = new Date(); 252 if(cookieValue == '' || seconds < 0) { 253 cookieValue = ''; 254 seconds = -2592000; 255 } 256 expires.setTime(expires.getTime() + seconds * 1000); 257 domain = !domain ? cookiedomain : domain; 258 path = !path ? cookiepath : path; 259 document.cookie = escape(cookiepre + cookieName) + '=' + escape(cookieValue) 260 + (expires ? '; expires=' + expires.toGMTString() : '') 261 + (path ? '; path=' + path : '/') 262 + (domain ? '; domain=' + domain : '') 263 + (secure ? '; secure' : ''); 264} 265 266function getcookie(name, nounescape) { 267 name = cookiepre + name; 268 var cookie_start = document.cookie.indexOf(name); 269 var cookie_end = document.cookie.indexOf(";", cookie_start); 270 if(cookie_start == -1) { 271 return ''; 272 } else { 273 var v = document.cookie.substring(cookie_start + name.length + 1, (cookie_end > cookie_start ? cookie_end : document.cookie.length)); 274 return !nounescape ? unescape(v) : v; 275 } 276} 277 278function Ajax(recvType, waitId) { 279 280 for(var stackId = 0; stackId < AJAX['stack'].length && AJAX['stack'][stackId] != 0; stackId++); 281 AJAX['stack'][stackId] = 1; 282 283 var aj = new Object(); 284 285 aj.loading = 'ÇëÉÔºò...'; 286 aj.recvType = recvType ? recvType : 'XML'; 287 aj.waitId = waitId ? $(waitId) : null; 288 289 aj.resultHandle = null; 290 aj.sendString = ''; 291 aj.targetUrl = ''; 292 aj.stackId = 0; 293 aj.stackId = stackId; 294 295 aj.setLoading = function(loading) { 296 if(typeof loading !== 'undefined' && loading !== null) aj.loading = loading; 297 }; 298 299 aj.setRecvType = function(recvtype) { 300 aj.recvType = recvtype; 301 }; 302 303 aj.setWaitId = function(waitid) { 304 aj.waitId = typeof waitid == 'object' ? waitid : $(waitid); 305 }; 306 307 aj.createXMLHttpRequest = function() { 308 var request = false; 309 if(window.XMLHttpRequest) { 310 request = new XMLHttpRequest(); 311 if(request.overrideMimeType) { 312 request.overrideMimeType('text/xml'); 313 } 314 } else if(window.ActiveXObject) { 315 var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.7.0', 'Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP']; 316 for(var i=0; i<versions.length; i++) { 317 try { 318 request = new ActiveXObject(versions[i]); 319 if(request) { 320 return request; 321 } 322 } catch(e) {} 323 } 324 } 325 return request; 326 }; 327 328 aj.XMLHttpRequest = aj.createXMLHttpRequest(); 329 aj.showLoading = function() { 330 if(aj.waitId && (aj.XMLHttpRequest.readyState != 4 || aj.XMLHttpRequest.status != 200)) { 331 aj.waitId.style.display = ''; 332 aj.waitId.innerHTML = '<span><img src="' + IMGDIR + '/loading.gif" class="vm"> ' + aj.loading + '</span>'; 333 } 334 }; 335 336 aj.processHandle = function() { 337 if(aj.XMLHttpRequest.readyState == 4 && aj.XMLHttpRequest.status == 200) { 338 for(k in AJAX['url']) {
339 if(AJAX['url'][k] == aj.targetUrl) { 340 AJAX['url'][k] = null; 341 } 342 } 343 if(aj.waitId) { 344 aj.waitId.style.display = 'none'; 345 } 346 if(aj.recvType == 'HTML') { 347 aj.resultHandle(aj.XMLHttpRequest.responseText, aj); 348 } else if(aj.recvType == 'XML') { 349 if(!aj.XMLHttpRequest.responseXML || !aj.XMLHttpRequest.responseXML.lastChild || aj.XMLHttpRequest.responseXML.lastChild.localName == 'parsererror') { 350 aj.resultHandle('<a href="' + aj.targetUrl + '" target="_blank" style="color:red">ÄÚ²¿´íÎó£¬ÎÞ·¨ÏÔʾ´ËÄÚÈÝ</a>' , aj); 351 } else { 352 aj.resultHandle(aj.XMLHttpRequest.responseXML.lastChild.firstChild.nodeValue, aj); 353 } 354 } 355 AJAX['stack'][aj.stackId] = 0; 356 } 357 }; 358 359 aj.get = function(targetUrl, resultHandle) { 360 targetUrl = hostconvert(targetUrl); 361 setTimeout(function(){aj.showLoading()}, 250); 362 if(in_array(targetUrl, AJAX['url'])) { 363 return false; 364 } else { 365 AJAX['url'].push(targetUrl); 366 } 367 aj.targetUrl = targetUrl; 368 aj.XMLHttpRequest.onreadystatechange = aj.processHandle; 369 aj.resultHandle = resultHandle; 370 var attackevasive = isUndefined(attackevasive) ? 0 : attackevasive; 371 var delay = attackevasive & 1 ? (aj.stackId + 1) * 1001 : 100; 372 if(window.XMLHttpRequest) { 373 setTimeout(function(){ 374 aj.XMLHttpRequest.open('GET', aj.targetUrl); 375 aj.XMLHttpRequest.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); 376 aj.XMLHttpRequest.send(null);}, delay); 377 } else { 378 setTimeout(function(){ 379 aj.XMLHttpRequest.open("GET", targetUrl, true); 380 aj.XMLHttpRequest.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); 381 aj.XMLHttpRequest.send();}, delay); 382 } 383 }; 384 aj.post = function(targetUrl, sendString, resultHandle) { 385 targetUrl = hostconvert(targetUrl); 386 setTimeout(function(){aj.showLoading()}, 250); 387 if(in_array(targetUrl, AJAX['url'])) { 388 return false; 389 } else { 390 AJAX['url'].push(targetUrl); 391 } 392 aj.targetUrl = targetUrl; 393 aj.sendString = sendString; 394 aj.XMLHttpRequest.onreadystatechange = aj.processHandle; 395 aj.resultHandle = resultHandle; 396 aj.XMLHttpRequest.open('POST', targetUrl); 397 aj.XMLHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 398 aj.XMLHttpRequest.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); 399 aj.XMLHttpRequest.send(aj.sendString); 400 }; 401 return aj; 402} 403 404function getHost(url) { 405 var host = "null"; 406 if(typeof url == "undefined"|| null == url) { 407 url = window.location.href; 408 } 409 var regex = /^\w+\:\/\/([^\/]*).*/; 410 var match = url.match(regex); 411 if(typeof match != "undefined" && null != match) { 412 host = match[1]; 413 } 414 return host; 415} 416 417function hostconvert(url) { 418 if(!url.match(/^https?:\/\//)) url = SITEURL + url; 419 var url_host = getHost(url); 420 var cur_host = getHost().toLowerCase(); 421 if(url_host && cur_host != url_host) { 422 url = url.replace(url_host, cur_host); 423 } 424 return url; 425} 426 427function newfunction(func) { 428 var args = []; 429 for(var i=1; i<arguments.length; i++) args.push(arguments[i]); 430 return function(event) { 431 doane(event); 432 window[func].apply(window, args); 433 return false; 434 } 435} 436 437function evalscript(s) { 438 if(s.indexOf('<script') == -1) return s; 439 var p = /<script[^\>]*?>([^\x00]*?)<\/script>/ig; 440 var arr = []; 441 while(arr = p.exec(s)) { 442 var p1 = /<script[^\>]*?src=\"([^\>]*?)\"[^\>]*?(reload=\"1\")?(?:charset=\"([\w\-]+?)\")?><\/script>/i; 443 var arr1 = []; 444 arr1 = p1.exec(arr[0]); 445 if(arr1) { 446 appendscript(arr1[1], '', arr1[2], arr1[3]); 447 } else { 448 p1 = /<script(.*?)>([^\x00]+?)<\/script>/i; 449 arr1 = p1.exec(arr[0]); 450 appendscript('', arr1[2], arr1[1].indexOf('reload=') != -1); 451 } 452 } 453 return s; 454} 455 456var safescripts = {}, evalscripts = []; 457function safescript(id, call, seconds, times, timeoutcall, endcall, index) { 458 seconds = seconds || 1000; 459 times = times || 0; 460 var checked = true; 461 try { 462 if(typeof call == 'function') { 463 call(); 464 } else { 465 eval(call); 466 } 467 } catch(e) { 468 checked = false; 469 } 470 if(!checked) { 471 if(!safescripts[id] || !index) { 472 safescripts[id] = safescripts[id] || []; 473 safescripts[id].push({ 474 'times':0, 475 'si':setInterval(function () { 476 safescript(id, call, seconds, times, timeoutcall, endcall, safescripts[id].length); 477 }, seconds) 478 }); 479 } else { 480 index = (index || 1) - 1; 481 safescripts[id][index]['times']++; 482 if(safescripts[id][index]['times'] >= times) { 483 clearInterval(safescripts[id][index]['si']); 484 if(typeof timeoutcall == 'function') { 485 timeoutcall(); 486 } else { 487 eval(timeoutcall); 488 } 489 } 490 } 491 } else { 492 try { 493 index = (index || 1) - 1; 494 if(safescripts[id][index]['si']) { 495 clearInterval(safescripts[id][index]['si']); 496 } 497 if(typeof endcall == 'function') { 498 endcall(); 499 } else { 500 eval(endcall); 501 } 502 } catch(e) {} 503 } 504} 505 506function $F(func, args, script) { 507 var run = function () { 508 var argc = args.length, s = ''; 509 for(i = 0;i < argc;i++) { 510 s += ',args[' + i + ']'; 511 } 512 eval('var check = typeof ' + func + ' == \'function\''); 513 if(check) { 514 eval(func + '(' + s.substr(1) + ')'); 515 } else { 516 setTimeout(function () { checkrun(); }, 50); 517 } 518 }; 519 var checkrun = function () { 520 if(JSLOADED[src]) { 521 run(); 522 } else { 523 setTimeout(function () { checkrun(); }, 50); 524 } 525 }; 526 script = script || 'common_extra'; 527 src = JSPATH + script + '.js?' + VERHASH; 528 if(!JSLOADED[src]) { 529 appendscript(src); 530 } 531 checkrun(); 532} 533 534function appendscript(src, text, reload, charset) { 535 var id = hash(src + text); 536 if(!reload && in_array(id, evalscripts)) return; 537 if(reload && $(id)) { 538 $(id).parentNode.removeChild($(id)); 539 } 540 541 evalscripts.push(id); 542 var scriptNode = document.createElement("script"); 543 scriptNode.type = "text/javascript"; 544 scriptNode.id = id; 545 scriptNode.charset = charset ? charset : (BROWSER.firefox ? document.characterSet : document.charset); 546 try { 547 if(src) { 548 scriptNode.src = src; 549 scriptNode.onloadDone = false; 550 scriptNode.onload = function () { 551 scriptNode.onloadDone = true; 552 JSLOADED[src] = 1; 553 }; 554 scriptNode.onreadystatechange = function () { 555 if((scriptNode.readyState == 'loaded' || scriptNode.readyState == 'complete') && !scriptNode.onloadDone) { 556 scriptNode.onloadDone = true; 557 JSLOADED[src] = 1; 558 } 559 }; 560 } else if(text){ 561 scriptNode.text = text; 562 } 563 document.getElementsByTagName('head')[0].appendChild(scriptNode); 564 } catch(e) {} 565} 566 567function stripscript(s) { 568 return s.replace(/<script.*?>.*?<\/script>/ig, ''); 569} 570 571function ajaxupdateevents(obj, tagName) { 572 tagName = tagName ? tagName : 'A'; 573 var objs = obj.getElementsByTagName(tagName); 574 for(k in objs) { 575 var o = objs[k]; 576 ajaxupdateevent(o); 577 } 578} 579 580function ajaxupdateevent(o) { 581 if(typeof o == 'object' && o.getAttribute) { 582 if(o.getAttribute('ajaxtarget')) { 583 if(!o.id) o.id = Math.random(); 584 var ajaxevent = o.getAttribute('ajaxevent') ? o.getAttribute('ajaxevent') : 'click'; 585 var ajaxurl = o.getAttribute('ajaxurl') ? o.getAttribute('ajaxurl') : o.href; 586 _attachEvent(o, ajaxevent, newfunction('ajaxget', ajaxurl, o.getAttribute('ajaxtarget'), o.getAttribute('ajaxwaitid'), o.getAttribute('ajaxloading'), o.getAttribute('ajaxdisplay'))); 587 if(o.getAttribute('ajaxfunc')) { 588 o.getAttribute('ajaxfunc').match(/(\w+)\((.+?)\)/); 589 _attachEvent(o, ajaxevent, newfunction(RegExp.$1, RegExp.$2)); 590 } 591 } 592 } 593} 594 595function ajaxget(url, showid, waitid, loading, display, recall) { 596 waitid = typeof waitid == 'undefined' || waitid === null ? showid : waitid; 597 var x = new Ajax(); 598 x.setLoading(loading); 599 x.setWaitId(waitid); 600 x.display = typeof display == 'undefined' || display == null ? '' : display; 601 x.showId = $(showid); 602 603 if(url.substr(strlen(url) - 1) == '#') { 604 url = url.substr(0, strlen(url) - 1); 605 x.autogoto = 1; 606 } 607 608 var url = url + '&inajax=1&ajaxtarget=' + showid; 609 x.get(url, function(s, x) { 610 var evaled = false; 611 if(s.indexOf('ajaxerror') != -1) { 612 evalscript(s); 613 evaled = true; 614 } 615 if(!evaled && (typeof ajaxerror == 'undefined' || !ajaxerror)) { 616 if(x.showId) { 617 x.showId.style.display = x.display; 618 ajaxinnerhtml(x.showId, s); 619 ajaxupdateevents(x.showId); 620 if(x.autogoto) scroll(0, x.showId.offsetTop); 621 } 622 } 623 624 ajaxerror = null; 625 if(recall && typeof recall == 'function') { 626 recall(); 627 } else if(recall) { 628 eval(recall); 629 } 630 if(!evaled) evalscript(s); 631 }); 632} 633 634function ajaxpost(formid, showid, waitid, showidclass, submitbtn, recall) { 635 var waitid = typeof waitid == 'undefined' || waitid === null ? showid : (waitid !== '' ? waitid : ''); 636 var showidclass = !showidclass ? '' : showidclass; 637 var ajaxframeid = 'ajaxframe'; 638 var ajaxframe = $(ajaxframeid); 639 var formtarget = $(formid).target; 640 641 var handleResult = function() { 642 var s = ''; 643 var evaled = false; 644 645 showloading('none'); 646 try { 647 s = $(ajaxframeid).contentWindow.document.XMLDocument.text; 648 } catch(e) { 649 try { 650 s = $(ajaxframeid).contentWindow.document.documentElement.firstChild.wholeText; 651 } catch(e) { 652 try { 653 s = $(ajaxframeid).contentWindow.document.documentElement.firstChild.nodeValue; 654 } catch(e) { 655 s = 'ÄÚ²¿´íÎó£¬ÎÞ·¨ÏÔʾ´ËÄÚÈÝ'; 656 } 657 } 658 } 659 if(s != '' && s.indexOf('ajaxerror') != -1) { 660 evalscript(s); 661 evaled = true; 662 } 663 if(showidclass) { 664 if(showidclass != 'onerror') { 665 $(showid).className = showidclass; 666 } else { 667 showError(s); 668 ajaxerror = true; 669 } 670 } 671 if(submitbtn) { 672 submitbtn.disabled = false; 673 } 674 if(!evaled && (typeof ajaxerror == 'undefined' || !ajaxerror)) { 675 ajaxinnerhtml($(showid), s); 676 } 677 ajaxerror = null; 678 if($(formid)) $(formid).target = formtarget; 679 if(typeof recall == 'function') { 680 recall(); 681 } else { 682 eval(recall); 683 } 684 if(!evaled) evalscript(s); 685 ajaxframe.loading = 0; 686 if(!BROWSER.firefox) { 687 $('append_parent').removeChild(ajaxframe.parentNode); 688 } else { 689 setTimeout( 690 function(){ 691 $('append_parent').removeChild(ajaxframe.parentNode); 692 }, 693 100 694 ); 695 } 696 }; 697 if(!ajaxframe) { 698 var div = document.createElement('div'); 699 div.style.display = 'none'; 700 div.innerHTML = '<iframe name="' + ajaxframeid + '" id="' + ajaxframeid + '" loading="1"></iframe>'; 701 $('append_parent').appendChild(div); 702 ajaxframe = $(ajaxframeid); 703 } else if(ajaxframe.loading) { 704 return false; 705 } 706 707 _attachEvent(ajaxframe, 'load', handleResult); 708 709 showloading(); 710 $(formid).target = ajaxframeid; 711 var action = $(formid).getAttribute('action'); 712 action = hostconvert(action); 713 $(formid).action = action.replace(/\&inajax\=1/g, '')+'&inajax=1'; 714 $(formid).submit(); 715 if(submitbtn) { 716 submitbtn.disabled = true; 717 } 718 doane(); 719 return false; 720} 721 722function ajaxmenu(ctrlObj, timeout, cache, duration, pos, recall, idclass, contentclass) { 723 if(!ctrlObj.getAttribute('mid')) { 724 var ctrlid = ctrlObj.id; 725 if(!ctrlid) { 726 ctrlObj.id = 'ajaxid_' + Math.random(); 727 } 728 } else { 729 var ctrlid = ctrlObj.getAttribute('mid'); 730 if(!ctrlObj.id) { 731 ctrlObj.id = 'ajaxid_' + Math.random(); 732 } 733 } 734 var menuid = ctrlid + '_menu'; 735 var menu = $(menuid); 736 if(isUndefined(timeout)) timeout = 3000; 737 if(isUndefined(cache)) cache = 1;
738 if(isUndefined(pos)) pos = '43'; 739 if(isUndefined(duration)) duration = timeout > 0 ? 0 : 3; 740 if(isUndefined(idclass)) idclass = 'p_pop'; 741 if(isUndefined(contentclass)) contentclass = 'p_opt'; 742 var func = function() { 743 showMenu({'ctrlid':ctrlObj.id,'menuid':menuid,'duration':duration,'timeout':timeout,'pos':pos,'cache':cache,'layer':2}); 744 if(typeof recall == 'function') { 745 recall(); 746 } else { 747 eval(recall); 748 } 749 }; 750 751 if(menu) { 752 if(menu.style.display == '') { 753 hideMenu(menuid); 754 } else { 755 func(); 756 } 757 } else { 758 menu = document.createElement('div'); 759 menu.id = menuid; 760 menu.style.display = 'none'; 761 menu.className = idclass; 762 menu.innerHTML = '<div class="' + contentclass + '" id="' + menuid + '_content"></div>'; 763 $('append_parent').appendChild(menu); 764 var url = (!isUndefined(ctrlObj.href) ? ctrlObj.href : ctrlObj.attributes['href'].value); 765 url += (url.indexOf('?') != -1 ? '&' :'?') + 'ajaxmenu=1'; 766 ajaxget(url, menuid + '_content', 'ajaxwaitid', '', '', func); 767 } 768 doane(); 769} 770 771function hash(string, length) { 772 var length = length ? length : 32; 773 var start = 0; 774 var i = 0; 775 var result = ''; 776 filllen = length - string.length % length; 777 for(i = 0; i < filllen; i++){ 778 string += "0"; 779 } 780 while(start < string.length) { 781 result = stringxor(result, string.substr(start, length)); 782 start += length; 783 } 784 return result; 785} 786 787function stringxor(s1, s2) { 788 var s = ''; 789 var hash = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; 790 var max = Math.max(s1.length, s2.length); 791 for(var i=0; i<max; i++) { 792 var k = s1.charCodeAt(i) ^ s2.charCodeAt(i); 793 s += hash.charAt(k % 52); 794 } 795 return s; 796} 797 798function showPreview(val, id) { 799 var showObj = $(id); 800 if(showObj) { 801 showObj.innerHTML = val.replace(/\n/ig, "<bupdateseccoder />"); 802 } 803} 804 805function showloading(display, waiting) { 806 var display = display ? display : 'block'; 807 var waiting = waiting ? waiting : 'ÇëÉÔºò...'; 808 $('ajaxwaitid').innerHTML = waiting; 809 $('ajaxwaitid').style.display = display; 810} 811 812function ajaxinnerhtml(showid, s) { 813 if(showid.tagName != 'TBODY') { 814 showid.innerHTML = s; 815 } else { 816 while(showid.firstChild) { 817 showid.firstChild.parentNode.removeChild(showid.firstChild); 818 } 819 var div1 = document.createElement('DIV'); 820 div1.id = showid.id+'_div'; 821 div1.innerHTML = '<table><tbody id="'+showid.id+'_tbody">'+s+'</tbody></table>'; 822 $('append_parent').appendChild(div1); 823 var trs = div1.getElementsByTagName('TR'); 824 var l = trs.length; 825 for(var i=0; i<l; i++) { 826 showid.appendChild(trs[0]); 827 } 828 var inputs = div1.getElementsByTagName('INPUT'); 829 var l = inputs.length; 830 for(var i=0; i<l; i++) { 831 showid.appendChild(inputs[0]); 832 } 833 div1.parentNode.removeChild(div1); 834 } 835} 836 837function doane(event, preventDefault, stopPropagation) { 838 var preventDefault = isUndefined(preventDefault) ? 1 : preventDefault; 839 var stopPropagation = isUndefined(stopPropagation) ? 1 : stopPropagation; 840 e = event ? event : window.event; 841 if(!e) { 842 e = getEvent(); 843 } 844 if(!e) { 845 return null; 846 } 847 if(preventDefault) { 848 if(e.preventDefault) { 849 e.preventDefault(); 850 } else { 851 e.returnValue = false; 852 } 853 } 854 if(stopPropagation) { 855 if(e.stopPropagation) { 856 e.stopPropagation(); 857 } else { 858 e.cancelBubble = true; 859 } 860 } 861 return e; 862} 863 864function loadcss(cssname) { 865 if(!CSSLOADED[cssname]) { 866 if(!$('css_' + cssname)) { 867 css = document.createElement('link'); 868 css.id = 'css_' + cssname, 869 css.type = 'text/css'; 870 css.rel = 'stylesheet'; 871 css.href = 'data/cache/style_' + STYLEID + '_' + cssname + '.css?' + VERHASH; 872 var headNode = document.getElementsByTagName("head")[0]; 873 headNode.appendChild(css); 874 } else { 875 $('css_' + cssname).href = 'data/cache/style_' + STYLEID + '_' + cssname + '.css?' + VERHASH; 876 } 877 CSSLOADED[cssname] = 1; 878 } 879} 880 881function showMenu(v) { 882 var ctrlid = isUndefined(v['ctrlid']) ? v : v['ctrlid']; 883 var showid = isUndefined(v['showid']) ? ctrlid : v['showid']; 884 var menuid = isUndefined(v['menuid']) ? showid + '_menu' : v['menuid']; 885 var ctrlObj = $(ctrlid); 886 var menuObj = $(menuid); 887 if(!menuObj) return; 888 var mtype = isUndefined(v['mtype']) ? 'menu' : v['mtype']; 889 var evt = isUndefined(v['evt']) ? 'mouseover' : v['evt']; 890 var pos = isUndefined(v['pos']) ? '43' : v['pos']; 891 var layer = isUndefined(v['layer']) ? 1 : v['layer']; 892 var duration = isUndefined(v['duration']) ? 2 : v['duration']; 893 var timeout = isUndefined(v['timeout']) ? 250 : v['timeout']; 894 var maxh = isUndefined(v['maxh']) ? 600 : v['maxh']; 895 var cache = isUndefined(v['cache']) ? 1 : v['cache']; 896 var drag = isUndefined(v['drag']) ? '' : v['drag']; 897 var dragobj = drag && $(drag) ? $(drag) : menuObj; 898 var fade = isUndefined(v['fade']) ? 0 : v['fade']; 899 var cover = isUndefined(v['cover']) ? 0 : v['cover']; 900 var zindex = isUndefined(v['zindex']) ? JSMENU['zIndex']['menu'] : v['zindex']; 901 var ctrlclass = isUndefined(v['ctrlclass']) ? '' : v['ctrlclass']; 902 var winhandlekey = isUndefined(v['win']) ? '' : v['win']; 903 zindex = cover ? zindex + 500 : zindex; 904 if(typeof JSMENU['active'][layer] == 'undefined') { 905 JSMENU['active'][layer] = []; 906 } 907 908 for(i in EXTRAFUNC['showmenu']) { 909 try { 910 eval(EXTRAFUNC['showmenu'][i] + '()'); 911 } catch(e) {} 912 } 913 914 if(evt == 'click' && in_array(menuid, JSMENU['active'][layer]) && mtype != 'win') { 915 hideMenu(menuid, mtype); 916 return; 917 } 918 if(mtype == 'menu') { 919 hideMenu(layer, mtype); 920 } 921 922 if(ctrlObj) { 923 if(!ctrlObj.getAttribute('initialized')) { 924 ctrlObj.setAttribute('initialized', true); 925 ctrlObj.unselectable = true; 926 927 ctrlObj.outfunc = typeof ctrlObj.onmouseout == 'function' ? ctrlObj.onmouseout : null; 928 ctrlObj.onmouseout = function() { 929 if(this.outfunc) this.outfunc(); 930 if(duration < 3 && !JSMENU['timer'][menuid]) { 931 JSMENU['timer'][menuid] = setTimeout(function () { 932 hideMenu(menuid, mtype); 933 }, timeout); 934 } 935 }; 936 937 ctrlObj.overfunc = typeof ctrlObj.onmouseover == 'function' ? ctrlObj.onmouseover : null; 938 ctrlObj.onmouseover = function(e) { 939 doane(e); 940 if(this.overfunc) this.overfunc(); 941 if(evt == 'click') { 942 clearTimeout(JSMENU['timer'][menuid]); 943 JSMENU['timer'][menuid] = null; 944 } else { 945 for(var i in JSMENU['timer']) { 946 if(JSMENU['timer'][i]) { 947 clearTimeout(JSMENU['timer'][i]); 948 JSMENU['timer'][i] = null; 949 } 950 } 951 } 952 }; 953 } 954 } 955 956 if(!menuObj.getAttribute('initialized')) { 957 menuObj.setAttribute('initialized', true); 958 menuObj.ctrlkey = ctrlid; 959 menuObj.mtype = mtype; 960 menuObj.layer = layer; 961 menuObj.cover = cover; 962 if(ctrlObj && ctrlObj.getAttribute('fwin')) {menuObj.scrolly = true;} 963 menuObj.style.position = 'absolute'; 964 menuObj.style.zIndex = zindex + layer; 965 menuObj.onclick = function(e) { 966 return doane(e, 0, 1); 967 }; 968 if(duration < 3) { 969 if(duration > 1) { 970 menuObj.onmouseover = function() { 971 clearTimeout(JSMENU['timer'][menuid]); 972 JSMENU['timer'][menuid] = null; 973 }; 974 } 975 if(duration != 1) { 976 menuObj.onmouseout = function() { 977 JSMENU['timer'][menuid] = setTimeout(function () { 978 hideMenu(menuid, mtype); 979 }, timeout); 980 }; 981 } 982 } 983 if(cover) { 984 var coverObj = document.createElement('div');
985 coverObj.id = menuid + '_cover'; 986 coverObj.style.position = 'absolute'; 987 coverObj.style.zIndex = menuObj.style.zIndex - 1; 988 coverObj.style.left = coverObj.style.top = '0px'; 989 coverObj.style.width = '100%'; 990 coverObj.style.height = Math.max(document.documentElement.clientHeight, document.body.offsetHeight) + 'px'; 991 coverObj.style.backgroundColor = '#000'; 992 coverObj.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=50)'; 993 coverObj.style.opacity = 0.5; 994 coverObj.onclick = function () { hideMenu(); }; 995 $('append_parent').appendChild(coverObj); 996 _attachEvent(window, 'load', function () { 997 coverObj.style.height = Math.max(document.documentElement.clientHeight, document.body.offsetHeight) + 'px'; 998 }, document); 999 } 1000 } 1001 if(drag) { 1002 dragobj.style.cursor = 'move'; 1003 dragobj.onmousedown = function(event) {try{dragMenu(menuObj, event, 1);}catch(e){}}; 1004 } 1005 1006 if(cover) $(menuid + '_cover').style.display = ''; 1007 if(fade) { 1008 var O = 0; 1009 var fadeIn = function(O) { 1010 if(O > 100) { 1011 clearTimeout(fadeInTimer); 1012 return; 1013 } 1014 menuObj.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + O + ')'; 1015 menuObj.style.opacity = O / 100; 1016 O += 20; 1017 var fadeInTimer = setTimeout(function () { 1018 fadeIn(O); 1019 }, 40); 1020 }; 1021 fadeIn(O); 1022 menuObj.fade = true; 1023 } else { 1024 menuObj.fade = false; 1025 } 1026 menuObj.style.display = ''; 1027 if(ctrlObj && ctrlclass) { 1028 ctrlObj.className += ' ' + ctrlclass; 1029 menuObj.setAttribute('ctrlid', ctrlid); 1030 menuObj.setAttribute('ctrlclass', ctrlclass); 1031 } 1032 if(pos != '*') { 1033 setMenuPosition(showid, menuid, pos); 1034 } 1035 if(BROWSER.ie && BROWSER.ie < 7 && winhandlekey && $('fwin_' + winhandlekey)) { 1036 $(menuid).style.left = (parseInt($(menuid).style.left) - parseInt($('fwin_' + winhandlekey).style.left)) + 'px'; 1037 $(menuid).style.top = (parseInt($(menuid).style.top) - parseInt($('fwin_' + winhandlekey).style.top)) + 'px'; 1038 } 1039 if(maxh && menuObj.scrollHeight > maxh) { 1040 menuObj.style.height = maxh + 'px'; 1041 if(BROWSER.opera) { 1042 menuObj.style.overflow = 'auto'; 1043 } else { 1044 menuObj.style.overflowY = 'auto'; 1045 } 1046 } 1047 1048 if(!duration) { 1049 setTimeout('hideMenu(\'' + menuid + '\', \'' + mtype + '\')', timeout); 1050 } 1051 1052 if(!in_array(menuid, JSMENU['active'][layer])) JSMENU['active'][layer].push(menuid); 1053 menuObj.cache = cache; 1054 if(layer > JSMENU['layer']) { 1055 JSMENU['layer'] = layer; 1056 } 1057} 1058var delayShowST = null; 1059function delayShow(ctrlObj, call, time) { 1060 if(typeof ctrlObj == 'object') { 1061 var ctrlid = ctrlObj.id; 1062 call = call || function () { showMenu(ctrlid); }; 1063 } 1064 var time = isUndefined(time) ? 500 : time; 1065 delayShowST = setTimeout(function () { 1066 if(typeof call == 'function') { 1067 call(); 1068 } else { 1069 eval(call); 1070 } 1071 }, time); 1072 if(!ctrlObj.delayinit) { 1073 _attachEvent(ctrlObj, 'mouseout', function() {clearTimeout(delayShowST);}); 1074 ctrlObj.delayinit = 1; 1075 } 1076} 1077 1078var dragMenuDisabled = false; 1079function dragMenu(menuObj, e, op) { 1080 e = e ? e : window.event; 1081 if(op == 1) { 1082 if(dragMenuDisabled || in_array(e.target ? e.target.tagName : e.srcElement.tagName, ['TEXTAREA', 'INPUT', 'BUTTON', 'SELECT'])) { 1083 return; 1084 } 1085 JSMENU['drag'] = [e.clientX, e.clientY]; 1086 JSMENU['drag'][2] = parseInt(menuObj.style.left); 1087 JSMENU['drag'][3] = parseInt(menuObj.style.top); 1088 document.onmousemove = function(e) {try{dragMenu(menuObj, e, 2);}catch(err){}}; 1089 document.onmouseup = function(e) {try{dragMenu(menuObj, e, 3);}catch(err){}}; 1090 doane(e); 1091 }else if(op == 2 && JSMENU['drag'][0]) { 1092 var menudragnow = [e.clientX, e.clientY]; 1093 menuObj.style.left = (JSMENU['drag'][2] + menudragnow[0] - JSMENU['drag'][0]) + 'px'; 1094 menuObj.style.top = (JSMENU['drag'][3] + menudragnow[1] - JSMENU['drag'][1]) + 'px'; 1095 doane(e); 1096 }else if(op == 3) { 1097 JSMENU['drag'] = []; 1098 document.onmousemove = null; 1099 document.onmouseup = null; 1100 } 1101} 1102function setMenuPosition(showid, menuid, pos) { 1103 var showObj = $(showid); 1104 var menuObj = menuid ? $(menuid) : $(showid + '_menu'); 1105 if(isUndefined(pos) || !pos) pos = '43'; 1106 var basePoint = parseInt(pos.substr(0, 1)); 1107 var direction = parseInt(pos.substr(1, 1)); 1108 var important = pos.indexOf('!') != -1 ? 1 : 0; 1109 var sxy = 0, sx = 0, sy = 0, sw = 0, sh = 0, ml = 0, mt = 0, mw = 0, mcw = 0, mh = 0, mch = 0, bpl = 0, bpt = 0; 1110 1111 if(!menuObj || (basePoint > 0 && !showObj)) return; 1112 if(showObj) { 1113 sxy = fetchOffset(showObj); 1114 sx = sxy['left']; 1115 sy = sxy['top']; 1116 sw = showObj.offsetWidth; 1117 sh = showObj.offsetHeight; 1118 } 1119 mw = menuObj.offsetWidth; 1120 mcw = menuObj.clientWidth; 1121 mh = menuObj.offsetHeight; 1122 mch = menuObj.clientHeight; 1123 1124 switch(basePoint) { 1125 case 1: 1126 bpl = sx; 1127 bpt = sy; 1128 break; 1129 case 2: 1130 bpl = sx + sw; 1131 bpt = sy; 1132 break; 1133 case 3: 1134 bpl = sx + sw; 1135 bpt = sy + sh; 1136 break; 1137 case 4: 1138 bpl = sx; 1139 bpt = sy + sh; 1140 break; 1141 } 1142 switch(direction) { 1143 case 0: 1144 menuObj.style.left = (document.body.clientWidth - menuObj.clientWidth) / 2 + 'px'; 1145 mt = (document.documentElement.clientHeight - menuObj.clientHeight) / 2; 1146 break; 1147 case 1: 1148 ml = bpl - mw; 1149 mt = bpt - mh; 1150 break; 1151 case 2: 1152 ml = bpl; 1153 mt = bpt - mh; 1154 break; 1155 case 3: 1156 ml = bpl; 1157 mt = bpt; 1158 break; 1159 case 4: 1160 ml = bpl - mw; 1161 mt = bpt; 1162 break; 1163 } 1164 var scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop); 1165 var scrollLeft = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft); 1166 if(!important) { 1167 if(in_array(direction, [1, 4]) && ml < 0) { 1168 ml = bpl; 1169 if(in_array(basePoint, [1, 4])) ml += sw; 1170 } else if(ml + mw > scrollLeft + document.body.clientWidth && sx >= mw) { 1171 ml = bpl - mw; 1172 if(in_array(basePoint, [2, 3])) { 1173 ml -= sw; 1174 } else if(basePoint == 4) { 1175 ml += sw; 1176 } 1177 } 1178 if(in_array(direction, [1, 2]) && mt < 0) { 1179 mt = bpt; 1180 if(in_array(basePoint, [1, 2])) mt += sh; 1181 } else if(mt + mh > scrollTop + document.documentElement.clientHeight && sy >= mh) { 1182 mt = bpt - mh; 1183 if(in_array(basePoint, [3, 4])) mt -= sh; 1184 } 1185 } 1186 if(pos.substr(0, 3) == '210') { 1187 ml += 69 - sw / 2; 1188 mt -= 5; 1189 if(showObj.tagName == 'TEXTAREA') { 1190 ml -= sw / 2; 1191 mt += sh / 2; 1192 } 1193 } 1194 if(direction == 0 || menuObj.scrolly) { 1195 if(BROWSER.ie && BROWSER.ie < 7) { 1196 if(direction == 0) mt += scrollTop; 1197 } else { 1198 if(menuObj.scrolly) mt -= scrollTop; 1199 menuObj.style.position = 'fixed'; 1200 } 1201 } 1202 if(ml) menuObj.style.left = ml + 'px'; 1203 if(mt) menuObj.style.top = mt + 'px'; 1204 if(direction == 0 && BROWSER.ie && !document.documentElement.clientHeight) { 1205 menuObj.style.position = 'absolute'; 1206 menuObj.style.top = (document.body.clientHeight - menuObj.clientHeight) / 2 + 'px'; 1207 } 1208 if(menuObj.style.clip && !BROWSER.opera) { 1209 menuObj.style.clip = 'rect(auto, auto, auto, auto)'; 1210 } 1211} 1212 1213function hideMenu(attr, mtype) { 1214 attr = isUndefined(attr) ? '' : attr; 1215 mtype = isUndefined(mtype) ? 'menu' : mtype; 1216 if(attr == '') { 1217 for(var i = 1; i <= JSMENU['layer']; i++) { 1218 hideMenu(i, mtype); 1219 } 1220 return; 1221 } else if(typeof attr == 'number') { 1222 for(var j in JSMENU['active'][attr]) { 1223 hideMenu(JSMENU['active'][attr][j], mtype); 1224 } 1225 return; 1226 }else if(typeof attr == 'string') { 1227 var menuObj = $(attr); 1228 if(!menuObj || (mtype && menuObj.mtype != mtype)) return; 1229 var ctrlObj = '', ctrlclass = ''; 1230 if((ctrlObj = $(menuObj.getAttribute('ctrlid'))) && (ctrlclass = menuObj.getAttribute('ctrlclass'))) { 1231 var reg = new RegExp(' ' + ctrlclass); 1232 ctrlObj.className = ctrlObj.className.replace(reg, ''); 1233 } 1234 clearTimeout(JSMENU['timer'][attr]); 1235 var hide = function() { 1236 if(menuObj.cache) { 1237 if(menuObj.style.visibility != 'hidden') { 1238 menuObj.style.display = 'none'; 1239 if(menuObj.cover) $(attr + '_cover').style.display = 'none'; 1240 } 1241 }else { 1242 menuObj.parentNode.removeChild(menuObj); 1243 if(menuObj.cover) $(attr + '_cover').parentNode.removeChild($(attr + '_cover')); 1244 } 1245 var tmp = []; 1246 for(var k in JSMENU['active'][menuObj.layer]) { 1247 if(attr != JSMENU['active'][menuObj.layer][k]) tmp.push(JSMENU['active'][menuObj.layer][k]); 1248 } 1249 JSMENU['active'][menuObj.layer] = tmp; 1250 }; 1251 if(menuObj.fade) { 1252 var O = 100; 1253 var fadeOut = function(O) { 1254 if(O == 0) { 1255 clearTimeout(fadeOutTimer); 1256 hide(); 1257 return; 1258 } 1259 menuObj.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + O + ')'; 1260 menuObj.style.opacity = O / 100; 1261 O -= 20;
1262 var fadeOutTimer = setTimeout(function () { 1263 fadeOut(O); 1264 }, 40); 1265 }; 1266 fadeOut(O); 1267 } else { 1268 hide(); 1269 } 1270 } 1271} 1272 1273function getCurrentStyle(obj, cssproperty, csspropertyNS) { 1274 if(obj.style[cssproperty]){ 1275 return obj.style[cssproperty]; 1276 } 1277 if (obj.currentStyle) { 1278 return obj.currentStyle[cssproperty]; 1279 } else if (document.defaultView.getComputedStyle(obj, null)) { 1280 var currentStyle = document.defaultView.getComputedStyle(obj, null); 1281 var value = currentStyle.getPropertyValue(csspropertyNS); 1282 if(!value){ 1283 value = currentStyle[cssproperty]; 1284 } 1285 return value; 1286 } else if (window.getComputedStyle) { 1287 var currentStyle = window.getComputedStyle(obj, ""); 1288 return currentStyle.getPropertyValue(csspropertyNS); 1289 } 1290} 1291 1292function fetchOffset(obj, mode) { 1293 var left_offset = 0, top_offset = 0, mode = !mode ? 0 : mode; 1294 1295 if(obj.getBoundingClientRect && !mode) { 1296 var rect = obj.getBoundingClientRect(); 1297 var scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop); 1298 var scrollLeft = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft); 1299 if(document.documentElement.dir == 'rtl') { 1300 scrollLeft = scrollLeft + document.documentElement.clientWidth - document.documentElement.scrollWidth; 1301 } 1302 left_offset = rect.left + scrollLeft - document.documentElement.clientLeft; 1303 top_offset = rect.top + scrollTop - document.documentElement.clientTop; 1304 } 1305 if(left_offset <= 0 || top_offset <= 0) { 1306 left_offset = obj.offsetLeft; 1307 top_offset = obj.offsetTop; 1308 while((obj = obj.offsetParent) != null) { 1309 position = getCurrentStyle(obj, 'position', 'position'); 1310 if(position == 'relative') { 1311 continue; 1312 } 1313 left_offset += obj.offsetLeft; 1314 top_offset += obj.offsetTop; 1315 } 1316 } 1317 return {'left' : left_offset, 'top' : top_offset}; 1318} 1319 1320function showTip(ctrlobj) { 1321 $F('_showTip', arguments); 1322} 1323 1324function showPrompt(ctrlid, evt, msg, timeout) { 1325 $F('_showPrompt', arguments); 1326} 1327 1328function showCreditPrompt() { 1329 $F('_showCreditPrompt', []); 1330} 1331 1332var showDialogST = null; 1333function showDialog(msg, mode, t, func, cover, funccancel, leftmsg, confirmtxt, canceltxt, closetime, locationtime) { 1334 clearTimeout(showDialogST); 1335 cover = isUndefined(cover) ? (mode == 'info' ? 0 : 1) : cover; 1336 leftmsg = isUndefined(leftmsg) ? '' : leftmsg; 1337 mode = in_array(mode, ['confirm', 'notice', 'info', 'right']) ? mode : 'alert'; 1338 var menuid = 'fwin_dialog'; 1339 var menuObj = $(menuid); 1340 confirmtxtdefault = 'È·¶¨'; 1341 closetime = isUndefined(closetime) ? '' : closetime; 1342 closefunc = function () { 1343 if(typeof func == 'function') func(); 1344 else eval(func); 1345 hideMenu(menuid, 'dialog'); 1346 }; 1347 if(closetime) { 1348 leftmsg = closetime + ' Ãëºó´°¿Ú¹Ø±Õ'; 1349 showDialogST = setTimeout(closefunc, closetime * 1000); 1350 } 1351 locationtime = isUndefined(locationtime) ? '' : locationtime; 1352 if(locationtime) { 1353 leftmsg = locationtime + ' ÃëºóÒ³ÃæÌø×ª'; 1354 showDialogST = setTimeout(closefunc, locationtime * 1000); 1355 confirmtxtdefault = 'Á¢¼´Ìø×ª'; 1356 } 1357 confirmtxt = confirmtxt ? confirmtxt : confirmtxtdefault; 1358 canceltxt = canceltxt ? canceltxt : 'È¡Ïû'; 1359 1360 if(menuObj) hideMenu('fwin_dialog', 'dialog'); 1361 menuObj = document.createElement('div'); 1362 menuObj.style.display = 'none'; 1363 menuObj.className = 'fwinmask'; 1364 menuObj.id = menuid; 1365 $('append_parent').appendChild(menuObj); 1366 var hidedom = ''; 1367 if(!BROWSER.ie) { 1368 hidedom = '<style type="text/css">object{visibility:hidden;}</style>'; 1369 } 1370 var s = hidedom + '<table cellpadding="0" cellspacing="0" class="fwin"><tr><td class="t_l"></td><td class="t_c"></td><td class="t_r"></td></tr><tr><td class="m_l"> </td><td class="m_c"><h3 class="flb"><em>'; 1371 s += t ? t : 'ÌáʾÐÅÏ¢'; 1372 s += '</em><span><a href="javascript:;" id="fwin_dialog_close" class="flbc" onclick="hideMenu(\'' + menuid + '\', \'dialog\')" title="¹Ø±Õ">¹Ø±Õ</a></span></h3>'; 1373 if(mode == 'info') { 1374 s += msg ? msg : ''; 1375 } else { 1376 s += '<div class="c altw"><div class="' + (mode == 'alert' ? 'alert_error' : (mode == 'right' ? 'alert_right' : 'alert_info')) + '"><p>' + msg + '</p></div></div>'; 1377 s += '<p class="o pns">' + (leftmsg ? '<span class="z xg1">' + leftmsg + '</span>' : '') + '<button id="fwin_dialog_submit" value="true" class="pn pnc"><strong>'+confirmtxt+'</strong></button>'; 1378 s += mode == 'confirm' ? '<button id="fwin_dialog_cancel" value="true" class="pn" onclick="hideMenu(\'' + menuid + '\', \'dialog\')"><strong>'+canceltxt+'</strong></button>' : ''; 1379 s += '</p>'; 1380 } 1381 s += '</td><td class="m_r"></td></tr><tr><td class="b_l"></td><td class="b_c"></td><td class="b_r"></td></tr></table>'; 1382 menuObj.innerHTML = s; 1383 if($('fwin_dialog_submit')) $('fwin_dialog_submit').onclick = function() { 1384 if(typeof func == 'function') func(); 1385 else eval(func); 1386 hideMenu(menuid, 'dialog'); 1387 }; 1388 if($('fwin_dialog_cancel')) { 1389 $('fwin_dialog_cancel').onclick = function() { 1390 if(typeof funccancel == 'function') funccancel(); 1391 else eval(funccancel); 1392 hideMenu(menuid, 'dialog'); 1393 }; 1394 $('fwin_dialog_close').onclick = $('fwin_dialog_cancel').onclick; 1395 } 1396 showMenu({'mtype':'dialog','menuid':menuid,'duration':3,'pos':'00','zindex':JSMENU['zIndex']['dialog'],'cache':0,'cover':cover}); 1397 try { 1398 if($('fwin_dialog_submit')) $('fwin_dialog_submit').focus(); 1399 } catch(e) {} 1400} 1401 1402function showWindow(k, url, mode, cache, menuv) { 1403 mode = isUndefined(mode) ? 'get' : mode; 1404 cache = isUndefined(cache) ? 1 : cache; 1405 var menuid = 'fwin_' + k; 1406 var menuObj = $(menuid); 1407 var drag = null; 1408 var loadingst = null; 1409 var hidedom = ''; 1410 1411 if(disallowfloat && disallowfloat.indexOf(k) != -1) { 1412 if(BROWSER.ie) url += (url.indexOf('?') != -1 ? '&' : '?') + 'referer=' + escape(location.href); 1413 location.href = url; 1414 doane(); 1415 return; 1416 } 1417 1418 var fetchContent = function() { 1419 if(mode == 'get') { 1420 menuObj.url = url; 1421 url += (url.search(/\?/) > 0 ? '&' : '?') + 'infloat=yes&handlekey=' + k; 1422 url += cache == -1 ? '&t='+(+ new Date()) : ''; 1423 ajaxget(url, 'fwin_content_' + k, null, '', '', function() {initMenu();show();}); 1424 } else if(mode == 'post') { 1425 menuObj.act = $(url).action; 1426 ajaxpost(url, 'fwin_content_' + k, '', '', '', function() {initMenu();show();}); 1427 } 1428 if(parseInt(BROWSER.ie) != 6) { 1429 loadingst = setTimeout(function() {showDialog('', 'info', '<img src="' + IMGDIR + '/loading.gif"> ÇëÉÔºò...')}, 500); 1430 } 1431 }; 1432 var initMenu = function() { 1433 clearTimeout(loadingst); 1434 var objs = menuObj.getElementsByTagName('*'); 1435 var fctrlidinit = false; 1436 for(var i = 0; i < objs.length; i++) { 1437 if(objs[i].id) { 1438 objs[i].setAttribute('fwin', k); 1439 } 1440 if(objs[i].className == 'flb' && !fctrlidinit) { 1441 if(!objs[i].id) objs[i].id = 'fctrl_' + k; 1442 drag = objs[i].id; 1443 fctrlidinit = true; 1444 } 1445 } 1446 }; 1447 var show = function() { 1448 hideMenu('fwin_dialog', 'dialog'); 1449 v = {'mtype':'win','menuid':menuid,'duration':3,'pos':'00','zindex':JSMENU['zIndex']['win'],'drag':typeof drag == null ? '' : drag,'cache':cache}; 1450 for(k in menuv) { 1451 v[k] = menuv[k]; 1452 } 1453 showMenu(v); 1454 }; 1455 1456 if(!menuObj) { 1457 menuObj = document.createElement('div'); 1458 menuObj.id = menuid; 1459 menuObj.className = 'fwinmask'; 1460 menuObj.style.display = 'none'; 1461 $('append_parent').appendChild(menuObj); 1462 evt = ' style="cursor:move" onmousedown="dragMenu($(\'' + menuid + '\'), event, 1)" ondblclick="hideWindow(\'' + k + '\')"'; 1463 if(!BROWSER.ie) { 1464 hidedom = '<style type="text/css">object{visibility:hidden;}</style>'; 1465 } 1466 menuObj.innerHTML = hidedom + '<table cellpadding="0" cellspacing="0" class="fwin"><tr><td class="t_l"></td><td class="t_c"' + evt + '></td><td class="t_r"></td></tr><tr><td class="m_l"' + evt + ')"> </td><td class="m_c" id="fwin_content_' + k + '">' 1467 + '</td><td class="m_r"' + evt + '"></td></tr><tr><td class="b_l"></td><td class="b_c"' + evt + '></td><td class="b_r"></td></tr></table>'; 1468 if(mode == 'html') { 1469 $('fwin_content_' + k).innerHTML = url; 1470 initMenu(); 1471 show(); 1472 } else { 1473 fetchContent(); 1474 } 1475 } else if((mode == 'get' && (url != menuObj.url || cache != 1)) || (mode == 'post' && $(url).action != menuObj.act)) { 1476 fetchContent(); 1477 } else { 1478 show(); 1479 } 1480 doane(); 1481} 1482 1483function showError(msg) { 1484 var p = /<script[^\>]*?>([^\x00]*?)<\/script>/ig; 1485 msg = msg.replace(p, ''); 1486 if(msg !== '') { 1487 showDialog(msg, 'alert', '´íÎóÐÅÏ¢', null, true, null, '', '', '', 3); 1488 } 1489} 1490 1491function hideWindow(k, all, clear) { 1492 all = isUndefined(all) ? 1 : all; 1493 clear = isUndefined(clear) ? 1 : clear; 1494 hideMenu('fwin_' + k, 'win'); 1495 if(clear && $('fwin_' + k)) { 1496 $('append_parent').removeChild($('fwin_' + k)); 1497 } 1498 if(all) { 1499 hideMenu(); 1500 } 1501} 1502 1503function AC_FL_RunContent() { 1504 var str = ''; 1505 var ret = AC_GetArgs(arguments, "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000", "application/x-shockwave-flash"); 1506 if(BROWSER.ie && !BROWSER.opera) { 1507 str += '<object '; 1508 for (var i in ret.objAttrs) { 1509 str += i + '="' + ret.objAttrs[i] + '" '; 1510 } 1511 str += '>'; 1512 for (var i in ret.params) { 1513 str += '<param name="' + i + '" value="' + ret.params[i] + '" /> '; 1514 } 1515 str += '</object>'; 1516 } else { 1517 str += '<embed '; 1518 for (var i in ret.embedAttrs) { 1519 str += i + '="' + ret.embedAttrs[i] + '" '; 1520 } 1521 str += '></embed>'; 1522 } 1523 return str; 1524} 1525 1526function AC_GetArgs(args, classid, mimeType) { 1527 var ret = new Object(); 1528 ret.embedAttrs = new Object(); 1529 ret.params = new Object(); 1530 ret.objAttrs = new Object(); 1531 for (var i = 0; i < args.length; i = i + 2){ 1532 var currArg = args[i].toLowerCase(); 1533 switch (currArg){ 1534 case "classid":break; 1535 case "pluginspage":ret.embedAttrs[args[i]] = 'http://www.macromedia.com/go/getflashplayer';break; 1536 case "src":ret.embedAttrs[args[i]] = args[i+1];ret.params["movie"] = args[i+1];break; 1537 case "codebase":ret.objAttrs[args[i]] = 'http://download.macromedia.com/pub/s
1537hockwave/cabs/flash/swflash.cab#version=9,0,0,0';break; 1538 case "onafterupdate":case "onbeforeupdate":case "onblur":case "oncellchange":case "onclick":case "ondblclick":case "ondrag":case "ondragend": 1539 case "ondragenter":case "ondragleave":case "ondragover":case "ondrop":case "onfinish":case "onfocus":case "onhelp":case "onmousedown": 1540 case "onmouseup":case "onmouseover":case "onmousemove":case "onmouseout":case "onkeypress":case "onkeydown":case "onkeyup":case "onload": 1541 case "onlosecapture":case "onpropertychange":case "onreadystatechange":case "onrowsdelete":case "onrowenter":case "onrowexit":case "onrowsinserted":case "onstart": 1542 case "onscroll":case "onbeforeeditfocus":case "onactivate":case "onbeforedeactivate":case "ondeactivate":case "type": 1543 case "id":ret.objAttrs[args[i]] = args[i+1];break; 1544 case "width":case "height":case "align":case "vspace": case "hspace":case "class":case "title":case "accesskey":case "name": 1545 case "tabindex":ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];break; 1546 default:ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1]; 1547 } 1548 } 1549 ret.objAttrs["classid"] = classid; 1550 if(mimeType) { 1551 ret.embedAttrs["type"] = mimeType; 1552 } 1553 return ret; 1554} 1555 1556function simulateSelect(selectId, widthvalue) { 1557 var selectObj = $(selectId); 1558 if(!selectObj) return; 1559 if(BROWSER.other) { 1560 if(selectObj.getAttribute('change')) { 1561 selectObj.onchange = function () {eval(selectObj.getAttribute('change'));} 1562 } 1563 return; 1564 } 1565 var widthvalue = widthvalue ? widthvalue : 70; 1566 var defaultopt = selectObj.options[0] ? selectObj.options[0].innerHTML : ''; 1567 var defaultv = ''; 1568 var menuObj = document.createElement('div'); 1569 var ul = document.createElement('ul'); 1570 var handleKeyDown = function(e) { 1571 e = BROWSER.ie ? event : e; 1572 if(e.keyCode == 40 || e.keyCode == 38) doane(e); 1573 }; 1574 var selectwidth = (selectObj.getAttribute('width', i) ? selectObj.getAttribute('width', i) : widthvalue) + 'px'; 1575 var tabindex = selectObj.getAttribute('tabindex', i) ? selectObj.getAttribute('tabindex', i) : 1; 1576 1577 for(var i = 0; i < selectObj.options.length; i++) { 1578 var li = document.createElement('li'); 1579 li.innerHTML = selectObj.options[i].innerHTML; 1580 li.k_id = i; 1581 li.k_value = selectObj.options[i].value; 1582 if(selectObj.options[i].selected) { 1583 defaultopt = selectObj.options[i].innerHTML; 1584 defaultv = selectObj.options[i].value; 1585 li.className = 'current'; 1586 selectObj.setAttribute('selecti', i); 1587 } 1588 li.onclick = function() { 1589 if($(selectId + '_ctrl').innerHTML != this.innerHTML) { 1590 var lis = menuObj.getElementsByTagName('li'); 1591 lis[$(selectId).getAttribute('selecti')].className = ''; 1592 this.className = 'current'; 1593 $(selectId + '_ctrl').innerHTML = this.innerHTML; 1594 $(selectId).setAttribute('selecti', this.k_id); 1595 $(selectId).options.length = 0; 1596 $(selectId).options[0] = new Option('', this.k_value); 1597 eval(selectObj.getAttribute('change')); 1598 } 1599 hideMenu(menuObj.id); 1600 return false; 1601 }; 1602 ul.appendChild(li); 1603 } 1604 1605 selectObj.options.length = 0; 1606 selectObj.options[0]= new Option('', defaultv); 1607 selectObj.style.display = 'none'; 1608 selectObj.outerHTML += '<a href="javascript:;" id="' + selectId + '_ctrl" style="width:' + selectwidth + '" tabindex="' + tabindex + '">' + defaultopt + '</a>'; 1609 1610 menuObj.id = selectId + '_ctrl_menu'; 1611 menuObj.className = 'sltm'; 1612 menuObj.style.display = 'none'; 1613 menuObj.style.width = selectwidth; 1614 menuObj.appendChild(ul); 1615 $('append_parent').appendChild(menuObj); 1616 1617 $(selectId + '_ctrl').onclick = function(e) { 1618 $(selectId + '_ctrl_menu').style.width = selectwidth; 1619 showMenu({'ctrlid':(selectId == 'loginfield' ? 'account' : selectId + '_ctrl'),'menuid':selectId + '_ctrl_menu','evt':'click','pos':'43'}); 1620 doane(e); 1621 }; 1622 $(selectId + '_ctrl').onfocus = menuObj.onfocus = function() { 1623 _attachEvent(document.body, 'keydown', handleKeyDown); 1624 }; 1625 $(selectId + '_ctrl').onblur = menuObj.onblur = function() { 1626 _detachEvent(document.body, 'keydown', handleKeyDown); 1627 }; 1628 $(selectId + '_ctrl').onkeyup = function(e) { 1629 e = e ? e : window.event; 1630 value = e.keyCode; 1631 if(value == 40 || value == 38) { 1632 if(menuObj.style.display == 'none') { 1633 $(selectId + '_ctrl').onclick(); 1634 } else { 1635 lis = menuObj.getElementsByTagName('li'); 1636 selecti = selectObj.getAttribute('selecti'); 1637 lis[selecti].className = ''; 1638 if(value == 40) { 1639 selecti = parseInt(selecti) + 1; 1640 } else if(value == 38) { 1641 selecti = parseInt(selecti) - 1; 1642 } 1643 if(selecti < 0) { 1644 selecti = lis.length - 1 1645 } else if(selecti > lis.length - 1) { 1646 selecti = 0; 1647 } 1648 lis[selecti].className = 'current'; 1649 selectObj.setAttribute('selecti', selecti); 1650 lis[selecti].parentNode.scrollTop = lis[selecti].offsetTop; 1651 } 1652 } else if(value == 13) { 1653 var lis = menuObj.getElementsByTagName('li'); 1654 lis[selectObj.getAttribute('selecti')].onclick(); 1655 } else if(value == 27) { 1656 hideMenu(menuObj.id); 1657 } 1658 }; 1659} 1660 1661function switchTab(prefix, current, total, activeclass) { 1662 $F('_switchTab', arguments); 1663} 1664 1665function imageRotate(imgid, direct) { 1666 $F('_imageRotate', arguments); 1667} 1668 1669function thumbImg(obj, method) { 1670 if(!obj) { 1671 return; 1672 } 1673 obj.onload = null; 1674 file = obj.src; 1675 zw = obj.offsetWidth; 1676 zh = obj.offsetHeight; 1677 if(zw < 2) { 1678 if(!obj.id) { 1679 obj.id = 'img_' + Math.random(); 1680 } 1681 setTimeout("thumbImg($('" + obj.id + "'), " + method + ")", 100); 1682 return; 1683 } 1684 zr = zw / zh; 1685 method = !method ? 0 : 1; 1686 if(method) { 1687 fixw = obj.getAttribute('_width'); 1688 fixh = obj.getAttribute('_height'); 1689 if(zw > fixw) { 1690 zw = fixw; 1691 zh = zw / zr; 1692 } 1693 if(zh > fixh) { 1694 zh = fixh; 1695 zw = zh * zr; 1696 } 1697 } else { 1698 fixw = typeof imagemaxwidth == 'undefined' ? '600' : imagemaxwidth; 1699 if(zw > fixw) { 1700 zw = fixw; 1701 zh = zw / zr; 1702 obj.style.cursor = 'pointer'; 1703 if(!obj.onclick) { 1704 obj.onclick = function() { 1705 zoom(obj, obj.src); 1706 }; 1707 } 1708 } 1709 } 1710 obj.width = zw; 1711 obj.height = zh; 1712} 1713 1714var zoomstatus = 1; 1715function zoom(obj, zimg, nocover, pn) { 1716 $F('_zoom', arguments); 1717} 1718 1719function showselect(obj, inpid, t, rettype) { 1720 $F('_showselect', arguments); 1721} 1722 1723function showColorBox(ctrlid, layer, k, bgcolor) { 1724 $F('_showColorBox', arguments); 1725} 1726 1727function ctrlEnter(event, btnId, onlyEnter) { 1728 if(isUndefined(onlyEnter)) onlyEnter = 0; 1729 if((event.ctrlKey || onlyEnter) && event.keyCode == 13) { 1730 $(btnId).click(); 1731 return false; 1732 } 1733 return true; 1734} 1735 1736function parseurl(str, mode, parsecode) { 1737 if(isUndefined(parsecode)) parsecode = true; 1738 if(parsecode) str= str.replace(/\s*\[code\]([\s\S]+?)\[\/code\]\s*/ig, function($1, $2) {return codetag($2);}); 1739 str = str.replace(/([^>=\]"'\/@]|^)((((https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|ed2k|thunder|qqdl|synacast):\/\/))([\w\-]+\.)*[:\.@\-\w\u4e00-\u9fa5]+\.([\.a-zA-Z0-9]+|\u4E2D\u56FD|\u7F51\u7EDC|\u516C\u53F8)((\?|\/|:)+[\w\.\/=\?%\-&;~`@':+!#]*)*)/ig, mode == 'html' ? '$1<a href="$2" target="_blank">$2</a>' : '$1[url]$2[/url]'); 1740 str = str.replace(/([^\w>=\]"'\/@]|^)((www\.)([\w\-]+\.)*[:\.@\-\w\u4e00-\u9fa5]+\.([\.a-zA-Z0-9]+|\u4E2D\u56FD|\u7F51\u7EDC|\u516C\u53F8)((\?|\/|:)+[\w\.\/=\?%\-&;~`@':+!#]*)*)/ig, mode == 'html' ? '$1<a href="$2" target="_blank">$2</a>' : '$1[url]$2[/url]'); 1741 str = str.replace(/([^\w->
1741=\]:"'\.\/]|^)(([\-\.\w]+@[\.\-\w]+(\.\w+)+))/ig, mode == 'html' ? '$1<a href="mailto:$2">$2</a>' : '$1[email]$2[/email]'); 1742 if(parsecode) { 1743 for(var i = 0; i <= DISCUZCODE['num']; i++) { 1744 str = str.replace("[\tDISCUZ_CODE_" + i + "\t]", DISCUZCODE['html'][i]); 1745 } 1746 } 1747 return str; 1748} 1749 1750function codetag(text) { 1751 DISCUZCODE['num']++; 1752 if(typeof wysiwyg != 'undefined' && wysiwyg) text = text.replace(/<br[^\>]*>/ig, '\n').replace(/<(\/|)[A-Za-z].*?>/ig, ''); 1753 DISCUZCODE['html'][DISCUZCODE['num']] = '[code]' + text + '[/code]'; 1754 return '[\tDISCUZ_CODE_' + DISCUZCODE['num'] + '\t]'; 1755} 1756 1757function saveUserdata(name, data) { 1758 if(BROWSER.ie){ 1759 if(data.length < 54889) { 1760 with(document.documentElement) { 1761 setAttribute("value", data); 1762 save('Discuz_' + name); 1763 } 1764 } 1765 } else if(window.localStorage){ 1766 localStorage.setItem('Discuz_' + name, data); 1767 } else if(window.sessionStorage){ 1768 sessionStorage.setItem('Discuz_' + name, data); 1769 } 1770 setcookie('clearUserdata', '', -1); 1771} 1772 1773function loadUserdata(name) { 1774 if(BROWSER.ie){ 1775 with(document.documentElement) { 1776 load('Discuz_' + name); 1777 return getAttribute("value"); 1778 } 1779 } else if(window.localStorage){ 1780 return localStorage.getItem('Discuz_' + name); 1781 } else if(window.sessionStorage){ 1782 return sessionStorage.getItem('Discuz_' + name); 1783 } 1784} 1785 1786function initTab(frameId, type) { 1787 $F('_initTab', arguments); 1788} 1789 1790function openDiy(){ 1791 window.location.href = ((window.location.href + '').replace(/[\?\&]diy=yes/g, '').split('#')[0] + ( window.location.search && window.location.search.indexOf('?diy=yes') < 0 ? '&diy=yes' : '?diy=yes')); 1792} 1793 1794function hasClass(elem, className) { 1795 return elem.className && (" " + elem.className + " ").indexOf(" " + className + " ") != -1; 1796} 1797 1798function runslideshow() { 1799 $F('_runslideshow', []); 1800} 1801 1802function toggle_collapse(objname, noimg, complex, lang) { 1803 $F('_toggle_collapse', arguments); 1804} 1805 1806function updatestring(str1, str2, clear) { 1807 str2 = '_' + str2 + '_'; 1808 return clear ? str1.replace(str2, '') : (str1.indexOf(str2) == -1 ? str1 + str2 : str1); 1809} 1810 1811function getClipboardData() { 1812 window.document.clipboardswf.SetVariable('str', CLIPBOARDSWFDATA); 1813} 1814 1815function setCopy(text, msg) { 1816 $F('_setCopy', arguments); 1817} 1818 1819function copycode(obj) { 1820 $F('_copycode', arguments); 1821} 1822 1823function showdistrict(container, elems, totallevel, changelevel, containertype) { 1824 $F('_showdistrict', arguments); 1825} 1826 1827function setDoodle(fid, oid, url, tid, from) { 1828 $F('_setDoodle', arguments); 1829} 1830 1831 1832function initSearchmenu(searchform, cloudSearchUrl) { 1833 var defaultUrl = 'search.php?searchsubmit=yes'; 1834 if(typeof cloudSearchUrl == "undefined" || cloudSearchUrl == null || cloudSearchUrl == '') { 1835 cloudSearchUrl = defaultUrl; 1836 } 1837 1838 var searchtxt = $(searchform + '_txt'); 1839 if(!searchtxt) { 1840 searchtxt = $(searchform); 1841 } 1842 var tclass = searchtxt.className; 1843 searchtxt.className = tclass + ' xg1'; 1844 searchtxt.onfocus = function () { 1845 if(searchtxt.value == 'ÇëÊäÈëËÑË÷ÄÚÈÝ') { 1846 searchtxt.value = ''; 1847 searchtxt.className = tclass; 1848 } 1849 }; 1850 searchtxt.onblur = function () { 1851 if(searchtxt.value == '' ) { 1852 searchtxt.value = 'ÇëÊäÈëËÑË÷ÄÚÈÝ'; 1853 searchtxt.className = tclass + ' xg1'; 1854 } 1855 }; 1856 if(!$(searchform + '_type_menu')) return false; 1857 var o = $(searchform + '_type'); 1858 var a = $(searchform + '_type_menu').getElementsByTagName('a'); 1859 var formobj = searchtxt.form; 1860 for(var i=0; i<a.length; i++){ 1861 if(a[i].className == 'curtype'){ 1862 o.innerHTML = a[i].innerHTML; 1863 $(searchform + '_mod').value = a[i].rel; 1864 formobj.method = 'post'; 1865 if((a[i].rel == 'forum' || a[i].rel == 'curforum') && defaultUrl != cloudSearchUrl) { 1866 formobj.action = cloudSearchUrl; 1867 formobj.method = 'get'; 1868 } else { 1869 formobj.action = defaultUrl; 1870 } 1871 1872 if($('cloudsearchforumId')) { 1873 $('cloudsearchforumId').value = '0'; 1874 if (a[i].rel == 'curforum') { 1875 $('cloudsearchforumId').value = $('dzsearchforumid').value 1876 } 1877 } 1878 } 1879 a[i].onclick = function(){ 1880 o.innerHTML = this.innerHTML; 1881 $(searchform + '_mod').value = this.rel; 1882 formobj.method = 'post'; 1883 if((this.rel == 'forum' || this.rel == 'curforum') && defaultUrl != cloudSearchUrl) { 1884 formobj.action = cloudSearchUrl; 1885 formobj.method = 'get'; 1886 } else { 1887 formobj.action = defaultUrl; 1888 } 1889 1890 if($('cloudsearchforumId')) { 1891 $('cloudsearchforumId').value = '0'; 1892 if (this.rel == 'curforum') { 1893 $('cloudsearchforumId').value = $('dzsearchforumid').value 1894 } 1895 } 1896 }; 1897 } 1898} 1899 1900function searchFocus(obj) { 1901 if(obj.value == 'ÇëÊäÈëËÑË÷ÄÚÈÝ') { 1902 obj.value = ''; 1903 } 1904 if($('cloudsearchquery') != null) { 1905 $('cloudsearchquery').value = obj.value; 1906 } 1907} 1908 1909function extstyle(css) { 1910 $F('_extstyle', arguments); 1911} 1912 1913function widthauto(obj) { 1914 $F('_widthauto', arguments); 1915} 1916 1917var secST = new Array(); 1918function updatesecqaa(idhash) { 1919 $F('_updatesecqaa', arguments); 1920} 1921 1922function updateseccode(idhash, play) { 1923 $F('_updateseccode', arguments); 1924} 1925 1926function checksec(type, idhash, showmsg, recall) { 1927 $F('_checksec', arguments); 1928} 1929
1930function createPalette(colorid, id, func) { 1931 $F('_createPalette', arguments); 1932} 1933 1934function cardInit() { 1935 var cardShow = function (obj) { 1936 if(BROWSER.ie && BROWSER.ie < 7 && obj.href.indexOf('username') != -1) { 1937 return; 1938 } 1939 pos = obj.getAttribute('c') == '1' ? '43' : obj.getAttribute('c'); 1940 USERCARDST = setTimeout(function() {ajaxmenu(obj, 500, 1, 2, pos, null, 'p_pop card');}, 250); 1941 }; 1942 var a = document.body.getElementsByTagName('a'); 1943 for(var i = 0;i < a.length;i++){ 1944 if(a[i].getAttribute('c')) { 1945 a[i].setAttribute('mid', hash(a[i].href)); 1946 a[i].onmouseover = function() {cardShow(this)}; 1947 a[i].onmouseout = function() {clearTimeout(USERCARDST);}; 1948 } 1949 } 1950} 1951 1952function navShow(id) { 1953 var mnobj = $('snav_mn_' + id); 1954 if(!mnobj) { 1955 return; 1956 } 1957 var uls = $('mu').getElementsByTagName('ul'); 1958 for(i = 0;i < uls.length;i++) { 1959 if(uls[i].className != 'cl current') { 1960 uls[i].style.display = 'none'; 1961 } 1962 } 1963 if(mnobj.className != 'cl current') { 1964 showMenu({'ctrlid':'mn_' + id,'menuid':'snav_mn_' + id,'pos':'*'}); 1965 mnobj.className = 'cl floatmu'; 1966 mnobj.style.width = ($('nv').clientWidth) + 'px'; 1967 mnobj.style.display = ''; 1968 } 1969} 1970 1971function strLenCalc(obj, checklen, maxlen) { 1972 var v = obj.value, charlen = 0, maxlen = !maxlen ? 200 : maxlen, curlen = maxlen, len = strlen(v); 1973 for(var i = 0; i < v.length; i++) { 1974 if(v.charCodeAt(i) < 0 || v.charCodeAt(i) > 255) { 1975 curlen -= charset == 'utf-8' ? 2 : 1; 1976 } 1977 } 1978 if(curlen >= len) { 1979 $(checklen).innerHTML = curlen - len; 1980 } else { 1981 obj.value = mb_cutstr(v, maxlen, true); 1982 } 1983} 1984 1985function noticeTitle() { 1986 NOTICETITLE = {'State':0, 'oldTitle':document.title, flashNumber:0, sleep:15}; 1987 if(!getcookie('noticeTitle')) { 1988 window.setInterval('noticeTitleFlash();', 500); 1989 } else { 1990 window.setTimeout('noticeTitleFlash();', 500); 1991 } 1992 setcookie('noticeTitle', 1, 600); 1993} 1994 1995function noticeTitleFlash() { 1996 if(NOTICETITLE.flashNumber < 5 || NOTICETITLE.flashNumber > 4 && !NOTICETITLE['State']) { 1997 document.title = (NOTICETITLE['State'] ? '¡¾¡¡¡¡¡¡¡¿' : '¡¾ÐÂÌáÐÑ¡¿') + NOTICETITLE['oldTitle']; 1998 NOTICETITLE['State'] = !NOTICETITLE['State']; 1999 } 2000 NOTICETITLE.flashNumber = NOTICETITLE.flashNumber < NOTICETITLE.sleep ? ++NOTICETITLE.flashNumber : 0; 2001} 2002 2003function relatedlinks(rlinkmsgid) { 2004 $F('_relatedlinks', arguments); 2005} 2006 2007function con_handle_response(response) { 2008 return response; 2009} 2010 2011function showTopLink() { 2012 if($('ft')){ 2013 var viewPortHeight = parseInt(document.documentElement.clientHeight); 2014 var scrollHeight = parseInt(document.body.getBoundingClientRect().top); 2015 var basew = parseInt($('ft').clientWidth); 2016 var sw = $('scrolltop').clientWidth; 2017 if (basew < 1000) { 2018 var left = parseInt(fetchOffset($('ft'))['left']); 2019 left = left < sw ? left * 2 - sw : left; 2020 $('scrolltop').style.left = ( basew + left ) + 'px'; 2021 } else { 2022 $('scrolltop').style.left = 'auto'; 2023 $('scrolltop').style.right = 0; 2024 } 2025 2026 if (BROWSER.ie && BROWSER.ie < 7) { 2027 $('scrolltop').style.top = viewPortHeight - scrollHeight - 150 + 'px'; 2028 } 2029 if (scrollHeight < -100) { 2030 $('scrolltop').style.visibility = 'visible'; 2031 } else { 2032 $('scrolltop').style.visibility = 'hidden'; 2033 } 2034 } 2035} 2036 2037function showCreditmenu() { 2038 $F('_showCreditmenu', []); 2039} 2040 2041function showUpgradeinfo() { 2042 showMenu({'ctrlid':'g_upmine', 'pos':'21'}); 2043} 2044 2045function addFavorite(url, title) { 2046 try { 2047 window.external.addFavorite(url, title); 2048 } catch (e){ 2049 try { 2050 window.sidebar.addPanel(title, url, ''); 2051 } catch (e) { 2052 showDialog("Çë°´ Ctrl+D ¼üÌí¼Óµ½ÊղؼÐ", 'notice'); 2053 } 2054 } 2055} 2056 2057function setHomepage(sURL) { 2058 if(BROWSER.ie){ 2059 document.body.style.behavior = 'url(#default#homepage)'; 2060 document.body.setHomePage(sURL); 2061 } else { 2062 showDialog("·Ç IE ä¯ÀÀÆ÷ÇëÊÖ¶¯½«±¾Õ¾ÉèΪÊ×Ò³", 'notice'); 2063 doane(); 2064 } 2065} 2066 2067function smilies_show(id, smcols, seditorkey) { 2068 $F('_smilies_show', arguments, 'smilies'); 2069} 2070 2071if(typeof IN_ADMINCP == 'undefined') { 2072 if(creditnotice != '' && getcookie('creditnotice')) { 2073 _attachEvent(window, 'load', showCreditPrompt, document); 2074 } 2075 if(typeof showusercard != 'undefined' && showusercard == 1) { 2076 _attachEvent(window, 'load', cardInit, document); 2077 } 2078} 2079 2080if(BROWSER.ie) { 2081 document.documentElement.addBehavior("#default#userdata"); 2082}
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.