PageRenderTime 69ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 0ms

/test/arkanoid/arkanoid_files/re_00000.js

https://github.com/keil/TbDA
JavaScript | 1146 lines | 960 code | 164 blank | 22 comment | 429 complexity | 41b69f1f70338dded08568e91c94cb0e MD5 | raw file
Possible License(s): Apache-2.0, BSD-3-Clause
  1. var reinvigorate =
  2. {
  3. host: "track.reinvigorate.net"
  4. , port: 80
  5. , wkey: ""
  6. , session:
  7. {
  8. user_agent: ""
  9. , url: ""
  10. , referrer: ""
  11. , browser: ""
  12. , browser_version: ""
  13. , browser_ident: ""
  14. , platform: ""
  15. , platform_version: ""
  16. , unique: false
  17. , search_engine: ""
  18. , search_keyword: ""
  19. , begin: new Date()
  20. }
  21. , env:
  22. {
  23. duration:
  24. {
  25. unique: 86400
  26. ,return_visitor: 86400*365
  27. }
  28. , key:
  29. {
  30. ret: ""
  31. , ses: ""
  32. , ses_index: ""
  33. , visit_time: ""
  34. }
  35. }
  36. , jobs: []
  37. , cookie_exists: function(n)
  38. {
  39. return document.cookie.indexOf(n + "=") != -1;
  40. }
  41. , get_cookie: function(n)
  42. {
  43. var b, e, n, t;
  44. if (document.cookie == "")
  45. return false;
  46. with (document.cookie)
  47. {
  48. if ((b = indexOf(n + "=")) == -1)
  49. return false;
  50. if ((e = substring(b).indexOf(";")) == -1)
  51. return unescape(substring(b + n.length + 1));
  52. t = substring(b + n.length + 1);
  53. return unescape(t.substring(0,t.indexOf(";")));
  54. }
  55. return "";
  56. }, set_cookie: function(name, value, expires, path, domain, secure)
  57. {
  58. var whence = "";
  59. if (expires)
  60. {
  61. var the_date = new Date();
  62. the_date.setTime(the_date.getTime()+(expires*1000));
  63. whence = the_date.toGMTString();
  64. }
  65. var cook = name + "=" + escape(value) + (expires ? "; expires=" + whence : "") + (path ? "; path=" + path : "") + (domain ? "; domain=" + domain : "") + (secure ? "secure" : "");
  66. document.cookie = cook;
  67. }
  68. , add: function(func)
  69. {
  70. reinvigorate.jobs.push(func);
  71. }
  72. , url_filter: function(url)
  73. {
  74. return url.replace(/^https?:\/\/(www\.)?/,"http://");
  75. }
  76. , track: function(_wkey)
  77. {
  78. var _e;
  79. reinvigorate.wkey = _wkey;
  80. with (reinvigorate.env.key)
  81. {
  82. ret = _wkey + "_r";
  83. ses = _wkey + "_s";
  84. ses_index = _wkey + "_i";
  85. visit_time = _wkey + "_vt";
  86. if (!reinvigorate.cookie_exists(ret))
  87. reinvigorate.set_cookie(ret,0,reinvigorate.env.duration.return_visitor,"/");
  88. else if (!reinvigorate.get_cookie(ses))
  89. reinvigorate.set_cookie(ret,parseInt(reinvigorate.get_cookie(ret)) + 1,reinvigorate.env.duration.return_visitor,"/");
  90. if (!reinvigorate.get_cookie(ses))
  91. {
  92. reinvigorate.set_cookie(ses,reinv_util.sid(),reinvigorate.env.duration.unique,"/");
  93. reinvigorate.set_cookie(ses_index,1,reinvigorate.env.duration.unique,"/");
  94. reinvigorate.session.unique = true;
  95. } else
  96. {
  97. reinvigorate.set_cookie(ses_index,parseInt(reinvigorate.get_cookie(ses_index)) + 1,reinvigorate.env.duration.unique,"/");
  98. }
  99. }
  100. with (reinvigorate.session)
  101. {
  102. user_agent = navigator.userAgent.toLowerCase();
  103. url = (window.location + "").substring(0,250);
  104. reinv_util.get_browser();
  105. reinv_util.get_platform();
  106. // find referrer
  107. try
  108. {
  109. if (parent.document.referrer != undefined && unique)
  110. referrer = parent.document.referrer + "";
  111. } catch (_e) {}
  112. try
  113. {
  114. if (referrer == "")
  115. referrer = document.referrer + "";
  116. // Try not to track referrers from the same hostname
  117. if (referrer.indexOf(location.hostname) != -1)
  118. referrer = "";
  119. } catch (_e) {}
  120. if (referrer == "blockedReferrer")
  121. referrer = "";
  122. // Don't count hit if the request is from a user viewing heatmaps
  123. if ((new RegExp(/heatmap(\/[0-9]*)?$/)).exec(referrer))
  124. return;
  125. // was the referrer from a search engine?
  126. if (referrer != "")
  127. {
  128. try
  129. {
  130. var matches;
  131. var exp = new RegExp(/^([a-zA-Z]+:\/\/).*?([^.]+)\.[^.\/]+(\/|$)/);
  132. if (matches = exp.exec(referrer))
  133. {
  134. var k = reinv_util.search_engines[matches[2].toLowerCase()];
  135. var v = "";
  136. if (typeof k != "undefined")
  137. {
  138. var pos = referrer.indexOf(k[1]+"=");
  139. if (pos > -1)
  140. {
  141. v = referrer.substr(pos+k[1].length+1);
  142. pos = v.indexOf("&");
  143. if (pos > -1)
  144. v = v.substr(0,pos);
  145. v = encodeURIComponent(v);
  146. }
  147. }
  148. }
  149. if (v != "")
  150. {
  151. search_engine = k[0];
  152. search_keyword = v;
  153. }
  154. } catch (_e) {}
  155. }
  156. }
  157. // build output map
  158. var map = {};
  159. map["std"] = 1;
  160. map["wkey"] = reinvigorate.wkey;
  161. map["ses"] = reinvigorate.get_cookie(reinvigorate.env.key.ses);
  162. map["ses_index"] = parseInt(reinvigorate.get_cookie(reinvigorate.env.key.ses_index));
  163. map["cook"] = !!document.cookie;
  164. map["lt"] = reinv_util.ltime();
  165. map["url"] = reinvigorate.url_filter(reinvigorate.session.url);
  166. map["title"] = (document.title && document.title != "") ? document.title : "Untitled";
  167. if (typeof re_name_tag != "undefined")
  168. map["nt"] = re_name_tag;
  169. if (typeof re_context_tag != "undefined")
  170. map["ct"] = re_context_tag;
  171. function trim(str)
  172. {
  173. return str.replace(/^\s*|\s*$/g,'');
  174. }
  175. with (reinvigorate.session)
  176. {
  177. map["bwr"] = trim(browser);
  178. map["bwrv"] = trim(browser_version);
  179. map["os"] = trim(platform);
  180. map["osv"] = trim(platform_version);
  181. if (unique)
  182. {
  183. map["u"] = "1";
  184. map["ret_index"] = parseInt(reinvigorate.get_cookie(reinvigorate.env.key.ret));
  185. map["tz"] = (new Date()).getTimezoneOffset()/60;
  186. map["resw"] = screen.width;
  187. map["resh"] = screen.height;
  188. if (search_keyword != "")
  189. {
  190. map["se"] = search_engine;
  191. map["kw"] = search_keyword;
  192. }
  193. if (referrer != ""
  194. && reinv_util.server_name(referrer)
  195. != reinv_util.server_name(url))
  196. map["ref"] = referrer;
  197. } else
  198. {
  199. map["vt"] = Math.floor((reinvigorate.session.begin.getTime()-parseInt(reinvigorate.get_cookie(reinvigorate.env.key.visit_time)))/1000);
  200. if (document.referrer != undefined)
  201. map["pp"] = reinvigorate.url_filter(document.referrer);
  202. }
  203. }
  204. reinvigorate.set_cookie(reinvigorate.env.key.visit_time, reinvigorate.session.begin.getTime(),86400,"/");
  205. // modules
  206. for (var i=0;i<reinvigorate.jobs.length;++i)
  207. {
  208. var r = reinvigorate.jobs[i]();
  209. if (typeof r == "object")
  210. {
  211. for (var k in r)
  212. {
  213. try // safety
  214. {
  215. map[k] = r[k];
  216. } catch (_e) {}
  217. }
  218. }
  219. }
  220. map["rnd"] = Math.floor(Math.random()*214748364);
  221. var buf = "";
  222. for (var k in map)
  223. buf += encodeURIComponent(k) + "=" + encodeURIComponent(map[k]) + "&";
  224. if (buf.length > 0)
  225. buf = buf.substr(0,buf.length-1);
  226. var img = new Image(1,1);
  227. var proto = document.location.protocol == "https:" ? "https" : "http";
  228. img.src = proto + "://" + reinvigorate.host + (reinvigorate.port == 80 ? "" : (":"+reinvigorate.port)) + "/re_/ping?" + buf;
  229. }
  230. };
  231. var reinv_util =
  232. {
  233. ltime: function()
  234. {
  235. var d = new Date();
  236. var hr = d.getHours()%12;
  237. return (hr == 0 ? 12 : hr) + ":" + (d.getMinutes().toString().length == 1 ? "0" : "") + d.getMinutes() + " " + (d.getHours() < 12 ? "am" : "pm");
  238. }
  239. , sid: function()
  240. {
  241. return Math.floor(Math.random()*214748364);
  242. }
  243. , get_ua: function(s)
  244. {
  245. return reinvigorate.session.user_agent.indexOf(s) + 1;
  246. }
  247. , search_engines:
  248. {
  249. "google": ["Google","q"]
  250. ,"yahoo": ["Yahoo","p"]
  251. ,"msn": ["MSN","q"]
  252. ,"aol": ["AOL","query"]
  253. ,"lycos": ["Lycos","query"]
  254. ,"ask": ["Ask","q"]
  255. ,"altavista": ["AltaVista","q"]
  256. ,"search": ["Search.com","q"]
  257. ,"netscape": ["Netscape","s"]
  258. ,"cnn": ["CNN","query"]
  259. ,"looksmart": ["LookSmart","qt"]
  260. ,"about": ["About","terms"]
  261. ,"mamma": ["Mamma","query"]
  262. ,"alltheweb": ["AlltheWeb","q"]
  263. ,"gigablast": ["Gigablast","q"]
  264. ,"voila": ["Voila","kw"]
  265. ,"virgilio": ["Virgilio","qs"]
  266. ,"live": ["Live","q"]
  267. ,"baidu": ["Baidu","wd"]
  268. ,"seznam": ["Seznam","w"]
  269. ,"yandex": ["Yandex","text"]
  270. ,"najdi": ["Najdi","q"]
  271. }
  272. , server_name: function(url)
  273. {
  274. var matches;
  275. var exp = new RegExp(/^([a-zA-Z]+:\/\/).*?([^.]+)\.[^.\/]+(\/|$)/);
  276. if (matches = exp.exec(url))
  277. return matches[2];
  278. return "";
  279. }
  280. , get_browser: function()
  281. {
  282. with (reinvigorate.session)
  283. {
  284. // browser
  285. if (reinv_util.get_ua("konqueror"))
  286. {
  287. browser = "Konqueror";
  288. browser_ident = "konqueror";
  289. } else if (reinv_util.get_ua("chrome"))
  290. {
  291. browser = "Google Chrome";
  292. browser_ident = "chrome";
  293. } else if (reinv_util.get_ua("safari"))
  294. {
  295. browser = "Safari";
  296. browser_ident = "safari";
  297. } else if (reinv_util.get_ua("opera"))
  298. {
  299. browser = "Opera";
  300. browser_ident = "opera";
  301. } else if (reinv_util.get_ua("webtv"))
  302. {
  303. browser = "WebTV";
  304. browser_ident = "webtv";
  305. } else if (reinv_util.get_ua("firefox"))
  306. {
  307. browser = "Firefox";
  308. browser_ident = "firefox";
  309. } else if (reinv_util.get_ua("msie"))
  310. {
  311. browser = "Internet Explorer";
  312. browser_ident = "msie";
  313. } else if (reinv_util.get_ua("omniweb"))
  314. {
  315. browser = "OmniWeb";
  316. browser_ident = "omniweb";
  317. } else if (reinv_util.get_ua("netscape"))
  318. {
  319. browser = "Netscape";
  320. browser_ident = "netscape";
  321. } else if (!reinv_util.get_ua("compatible"))
  322. {
  323. browser = "Netscape Navigator";
  324. browser_ident = "Netscape Navigator";
  325. }
  326. // browser version
  327. var i, ua, b, cr;
  328. if (browser_ident == "Netscape Navigator" && document.layers)
  329. {
  330. browser_version = 4;
  331. } else if (!((i = user_agent.indexOf(browser_ident+" ")) >= 0 || (i = user_agent.indexOf(browser_ident+"/")) >= 0))
  332. {
  333. browser_version = "";
  334. } else
  335. {
  336. ua = user_agent.substring(i + browser_ident.length + 1);
  337. if (ua.charAt(0) == "v")
  338. ua = ua.substring(1);
  339. b = "";
  340. for (cnt=0;cnt<ua.length;cnt++)
  341. {
  342. cr = ua.charAt(cnt);
  343. if ((cr >= 0 && cr <= 9) || cr == ".")
  344. b += cr;
  345. else
  346. break;
  347. }
  348. browser_version = b;
  349. }
  350. }
  351. }
  352. , get_platform: function()
  353. {
  354. with (reinvigorate.session)
  355. {
  356. // platform
  357. if(reinv_util.get_ua("iphone"))
  358. platform = "iPhone";
  359. else if (reinv_util.get_ua("sunos"))
  360. platform = "SunOS";
  361. else if (reinv_util.get_ua("freebsd") || reinv_util.get_ua("openbsd"))
  362. platform = "BSD";
  363. else if (reinv_util.get_ua("linux"))
  364. platform = "Linux";
  365. else if (reinv_util.get_ua("mac") || reinv_util.get_ua("ppc"))
  366. platform = "Mac";
  367. else if (reinv_util.get_ua("x11"))
  368. platform = "UNIX";
  369. else if (reinv_util.get_ua("win"))
  370. platform = "Windows";
  371. else if (reinv_util.get_ua("nintendo wii"))
  372. platform = "Nintendo Wii";
  373. else if (reinv_util.get_ua("playstation 3"))
  374. platform = "Playstation 3";
  375. else if (reinv_util.get_ua("playstation portable"))
  376. platform = "PlayStation Portable";
  377. else
  378. platform = "";
  379. // platform version
  380. var os = platform;
  381. if (os == "Windows")
  382. {
  383. if (user_agent.indexOf("win3.11") != -1 || user_agent.indexOf("windows 3.1") != -1)
  384. platform_version = "3.1";
  385. else if (user_agent.indexOf("winnt3.51") != -1)
  386. platform_version = "NT 3.11";
  387. else if (user_agent.indexOf("winnt4.0") != -1)
  388. platform_version = "4.0";
  389. else if (user_agent.indexOf("win95") != -1 || user_agent.indexOf("windows 95") != -1)
  390. platform_version = "95";
  391. else if (user_agent.indexOf("win98") != -1 || user_agent.indexOf("windows 98") != -1)
  392. platform_version = "98";
  393. else if (user_agent.indexOf("win 9x 4.90") != -1)
  394. platform_version = "Millennium Edition";
  395. else if (user_agent.indexOf("nt 5.0") != -1 || user_agent.indexOf("windows 2000") != -1)
  396. platform_version = "2000";
  397. else if (user_agent.indexOf("nt 5.1") != -1)
  398. platform_version = "XP";
  399. else if (user_agent.indexOf("nt 5.2") != -1)
  400. platform_version = "Server 2003 / XP Pro (x64 Edition)";
  401. else if (user_agent.indexOf("nt 6.0") != -1)
  402. platform_version = "Vista";
  403. else if (user_agent.indexOf("nt 6.1") != -1)
  404. platform_version = "7";
  405. else if (user_agent.indexOf("win32") != -1)
  406. platform_version = "XP";
  407. else if (user_agent.indexOf("windows nt") != -1)
  408. platform_version = "NT";
  409. } else if (os == "Mac")
  410. {
  411. if (user_agent.indexOf("os x") != -1 && user_agent.indexOf("intel") != -1)
  412. platform_version = "OS X (Intel)";
  413. else if (user_agent.indexOf("os x") != -1 && user_agent.indexOf("ppc") != -1)
  414. platform_version = "OS X (PowerPC)";
  415. else if (user_agent.indexOf("mac") != -1)
  416. platform_version = "MacOS";
  417. } else if (os == "SunOS")
  418. {
  419. var exp = new RegExp(/sunos ([0-9.]+)/);
  420. var matches;
  421. if ((matches = exp.exec(user_agent)) && matches.length == 2)
  422. platform_version = matches[1];
  423. }
  424. }
  425. }
  426. };
  427. reinvigorate.add(function()
  428. {
  429. re_heatmap_click_cnt=0;
  430. var heatmap_click_event = function(e)
  431. {
  432. if(!e)
  433. e = window.event;
  434. if (++re_heatmap_click_cnt > 3)
  435. return;
  436. var w = document.clientWidth !== undefined ? document.clientWidth : window.innerWidth;
  437. var h = document.clientHeight !== undefined ? document.clientHeight : window.innerHeight;
  438. var scrollx = window.pageXOffset === undefined ? document.scrollLeft : window.pageXOffset;
  439. var scrolly = window.pageYOffset === undefined ? document.scrollTop : window.pageYOffset;
  440. if(e.clientX > w || e.clientX < 0 || e.clientY > h || e.clientY < 0 || e.clientX == "NaN" || scrollx == "NaN" || w == "NaN" || h == "Nan")
  441. return;
  442. var node = false;
  443. if (e.target)
  444. node = e.target;
  445. else if (e.srcElement)
  446. node = e.srcElement;
  447. var ele_code = "";
  448. while (node)
  449. {
  450. ele_code += node.tagName;
  451. if (typeof node.src != "undefined")
  452. ele_code += node.src;
  453. if (typeof node.name != "undefined")
  454. ele_code += node.name;
  455. if (typeof node.href != "undefined")
  456. ele_code += node.href;
  457. node = node.parentNode;
  458. if (typeof node.tagName == "undefined")
  459. break;
  460. }
  461. var params = 'heatmap=1&wkey=' + encodeURIComponent(reinvigorate.wkey) + '&x=' + (e.clientX + scrollx) + '&y=' + (e.clientY + scrolly) + '&w=' + w + '&h=' + h + '&url=' + encodeURIComponent(reinvigorate.url_filter(reinvigorate.session.url)) + '&title=' + encodeURIComponent((document.title && document.title != '') ? document.title : 'Untitled') + "&elecode=" + encodeURIComponent(ele_code);
  462. if (((e.clientX + scrollx)+(e.clientY + scrolly))*w*h == 0)
  463. return;
  464. var img = new Image(1,1);
  465. var proto = document.location.protocol == "https:" ? "https" : "http";
  466. img.src = proto + '://' + reinvigorate.host + (reinvigorate.port == 80 ? '' : (':'+reinvigorate.port)) + '/re_/ping?' + params;
  467. }
  468. if (document.addEventListener)
  469. document.addEventListener('mouseup', heatmap_click_event, false);
  470. else if (document.attachEvent)
  471. document.attachEvent('onmouseup', heatmap_click_event);
  472. return {};
  473. });
  474. function log_region()
  475. {
  476. var map = {};
  477. if (reinvigorate.session.unique)
  478. {
  479. map["tz"] = ((new Date()).getTimezoneOffset()/60)+"";
  480. if (navigator.language)
  481. map["lang"] = navigator.language.toLowerCase();
  482. }
  483. return map;
  484. }
  485. reinvigorate.add(log_region);
  486. ///// Legacy ////////////////////////////////////////////////////
  487. //////////////////////////////////////////////////////////////////
  488. var _re_script_v = 1.5;
  489. var re_host = "stats.reinvigorate.net";
  490. var re_u_expires = 86400;
  491. var re_r_expires = 86400*365;
  492. var re_unique = 0;
  493. var re_ua = navigator.userAgent.toLowerCase();
  494. var re_browser_ident = "";
  495. if (typeof(re_name_tag) == "undefined")
  496. var re_name_tag = "";
  497. if (typeof(re_context_tag) == "undefined")
  498. var re_context_tag = "";
  499. if (typeof(re_comment_tag) == "undefined")
  500. var re_comment_tag = "";
  501. if (typeof(re_new_user_tag) == "undefined")
  502. var re_new_user_tag = "";
  503. if (typeof(re_purchase_tag) == "undefined")
  504. var re_purchase_tag = "";
  505. function re_ua_get(s)
  506. {
  507. return re_ua.indexOf(s) + 1;
  508. }
  509. function re_cookie_exists(n)
  510. {
  511. return ((document.cookie.indexOf(n + "=") == -1) ? false : true);
  512. }
  513. function re_get_cookie(n)
  514. {
  515. var b, e, n, t;
  516. if (document.cookie == "")
  517. return false;
  518. with (document.cookie)
  519. {
  520. if ((b = indexOf(n + "=")) == -1)
  521. return false;
  522. if ((e = substring(b).indexOf(";")) == -1)
  523. return unescape(substring(b + n.length + 1));
  524. t = substring(b + n.length + 1);
  525. return unescape(t.substring(0,t.indexOf(";")));
  526. }
  527. return "";
  528. }
  529. function re_set_cookie(name, value, expires, path, domain, secure)
  530. {
  531. var whence = "";
  532. if (expires)
  533. {
  534. var the_date = new Date();
  535. the_date.setTime(the_date.getTime()+(expires*1000));
  536. whence = the_date.toGMTString();
  537. }
  538. var cook = name + "=" + escape(value) + (expires ? "; expires=" + whence : "") + (path ? "; path=" + path : "") + (domain ? "; domain=" + domain : "") + (secure ? "secure" : "");
  539. document.cookie = cook;
  540. }
  541. function re_add_event(obj, evnt, func)
  542. {
  543. var oldobj = obj[evnt];
  544. if (typeof oldfrm != 'function')
  545. {
  546. obj[evnt] = func;
  547. } else
  548. {
  549. obj[evnt] = function()
  550. {
  551. oldfrm();
  552. func();
  553. }
  554. }
  555. }
  556. function re_make_comment(name, email, url, comment)
  557. {
  558. if (name == "")
  559. name = "Anonymous";
  560. var context = url;
  561. if (context == "")
  562. url = "mailto:" + email;
  563. if (name != "Anonymous")
  564. {
  565. re_set_cookie("_reun",name,86400*365,"/");
  566. if (context != "")
  567. re_set_cookie("_rectx",context,86400*365,"/");
  568. }
  569. comment = comment.substr(0,155);
  570. re_set_cookie("_recmt",comment,60*60*2,"/");
  571. }
  572. function re_auto_tag(usernames, contexts)
  573. {
  574. var nametag="";
  575. for (var i=0;i<usernames.length;++i)
  576. {
  577. if (re_cookie_exists(usernames[i]) && re_get_cookie(usernames[i]) != "")
  578. {
  579. nametag = re_get_cookie(usernames[i]);
  580. break;
  581. }
  582. }
  583. var context="";
  584. for (var i=0;i<contexts.length;++i)
  585. {
  586. if (re_cookie_exists(contexts[i]) && re_get_cookie(contexts[i]) != "")
  587. {
  588. context = re_get_cookie(contexts[i]);
  589. break;
  590. }
  591. }
  592. //
  593. //re_name_tag = "n/a";
  594. //re_context_tag = "n/a";
  595. //re_comment_tag = "n/a";
  596. //
  597. if (nametag != "" && re_name_tag == "")
  598. re_name_tag = nametag;
  599. if (context != "" && re_context_tag == "")
  600. re_context_tag = context;
  601. if (re_cookie_exists("_recmt") && re_get_cookie("_recmt") != "")
  602. {
  603. re_comment_tag = re_get_cookie("_recmt");
  604. re_set_cookie("_recmt","",0,"/");
  605. }
  606. //alert(re_name_tag + "\n" + re_context_tag + "\n" + re_comment_tag);
  607. }
  608. function re_mt_platform() // Movable Type
  609. {
  610. re_add_event(window, "onload", function()
  611. {
  612. var btn = document.getElementById("comment-post");
  613. var f = document.forms["comments_form"];
  614. if (!btn && typeof f != "undefined")
  615. return;
  616. re_add_event(btn, "onclick", function()
  617. {
  618. re_make_comment(f["comment-author"].value, f["comment-email"].value, f["comment-url"].value, f["comment-text"].value);
  619. });
  620. } );
  621. re_auto_tag(new Array("_reun","mtcmtauth"), new Array("_rectx","mtcmthome","mtcmtmail"));
  622. }
  623. function re_tt_platform() // Text Pattern
  624. {
  625. re_add_event(window, "onload", function()
  626. {
  627. var f = document.getElementById("txpCommentInputForm");
  628. if (typeof f["submit"] == "undefined")
  629. return;
  630. var msg = "";
  631. var a = f.getElementsByTagName("textarea");
  632. for (i=0;i<a.length;++i)
  633. if (a[i].className.match(/txpCommentInputMessage/))
  634. msg = a[i].value;
  635. re_add_event(f["submit"], "onclick", function() { re_make_comment(f.name.value, f.email.value, f.web.value, msg); });
  636. } );
  637. re_auto_tag(new Array("_reun"), new Array("_rectx"));
  638. }
  639. function re_ee_platform() // Expression Engine
  640. {
  641. re_add_event(window, "onload", function()
  642. {
  643. var f = document.getElementById("comment_form");
  644. if (f && f["submit"])
  645. re_add_event(f["submit"], "onclick", function() { re_make_comment(f.name.value, f.email.value, f.url.value, f.comment.value); });
  646. } );
  647. re_auto_tag(new Array("_reun"), new Array("_rectx"));
  648. }
  649. function re_wp_platform()
  650. {
  651. re_add_event(window, "onload", function()
  652. {
  653. var f = document.getElementById("commentform");
  654. if (f && f["submit"])
  655. re_add_event(f["submit"], "onclick", function() { re_make_comment(f.author.value, f.email.value, f.url.value, f.comment.value); });
  656. } );
  657. re_auto_tag(new Array("_reun"), new Array("_rectx"));
  658. }
  659. function re_discover_platform()
  660. {
  661. if (typeof(re_disc_plat_ran) != "undefined")
  662. return;
  663. re_disc_plat_ran = true;
  664. var metas = document.getElementsByName("generator");
  665. for (var i=0;i<metas.length;++i)
  666. {
  667. if ((metas[i].content + "").match(/movable type/i) || (metas[i].content + "").match(/typepad/i)) // Movable Type / Typepad
  668. {
  669. re_mt_platform();
  670. return;
  671. }
  672. }
  673. // Textpattern
  674. if (document.getElementById("txpCommentInputForm"))
  675. {
  676. re_tt_platform();
  677. return;
  678. }
  679. // Expression Engine
  680. if (re_cookie_exists("exp_tracker"))
  681. {
  682. re_ee_platform();
  683. return;
  684. }
  685. // Wordress comments page
  686. var wp_tag = document.getElementById("commentform");
  687. if (wp_tag && wp_tag.action.match(/wp-comments-post/i))
  688. {
  689. re_wp_platform();
  690. return;
  691. }
  692. // Let name tags and comments work for unidentifable pages
  693. if (re_cookie_exists("_reun"))
  694. re_auto_tag(new Array("_reun"), new Array("_rectx"));
  695. }
  696. function re_os()
  697. {
  698. if(re_ua_get("sunos"))
  699. return "SunOS";
  700. else if (re_ua_get("freebsd") || re_ua_get("openbsd"))
  701. return "BSD";
  702. else if (re_ua_get("linux"))
  703. return "Linux";
  704. else if (re_ua_get("mac") || re_ua_get("ppc"))
  705. return "Mac";
  706. else if (re_ua_get("x11"))
  707. return "UNIX";
  708. else if (re_ua_get("win"))
  709. return "Windows";
  710. else if (re_ua_get("nintendo wii"))
  711. return "Nintendo Wii";
  712. else if (re_ua_get("playstation 3"))
  713. return "Playstation 3";
  714. else if (re_ua_get("playstation portable"))
  715. return "PlayStation Portable";
  716. return "";
  717. }
  718. function re_os_version()
  719. {
  720. var os = re_os();
  721. if (os == "Windows")
  722. {
  723. if (re_ua.indexOf("win3.11") != -1 || re_ua.indexOf("windows 3.1") != -1)
  724. return "3.1";
  725. if (re_ua.indexOf("winnt3.51") != -1)
  726. return "NT 3.11";
  727. if (re_ua.indexOf("winnt4.0") != -1)
  728. return "4.0";
  729. if (re_ua.indexOf("win95") != -1 || re_ua.indexOf("windows 95") != -1)
  730. return "95";
  731. if (re_ua.indexOf("win98") != -1 || re_ua.indexOf("windows 98") != -1)
  732. return "98";
  733. if (re_ua.indexOf("win 9x 4.90") != -1)
  734. return "Millennium Edition";
  735. if (re_ua.indexOf("nt 5.0") != -1 || re_ua.indexOf("windows 2000") != -1)
  736. return "2000";
  737. if (re_ua.indexOf("nt 5.1") != -1)
  738. return "XP";
  739. if (re_ua.indexOf("nt 5.2") != -1)
  740. return "Server 2003 / XP Pro (x64 Edition)";
  741. if (re_ua.indexOf("nt 6.0") != -1)
  742. return "Vista";
  743. if (re_ua.indexOf("win32") != -1)
  744. return "XP";
  745. if (re_ua.indexOf("windows nt") != -1)
  746. return "NT";
  747. }
  748. if (os == "Mac")
  749. {
  750. if (re_ua.indexOf("os x") != -1 && re_ua.indexOf("intel") != -1)
  751. return "OS X (Intel)";
  752. if (re_ua.indexOf("os x") != -1 && re_ua.indexOf("ppc") != -1)
  753. return "OS X (PowerPC)";
  754. if (re_ua.indexOf("mac") != -1)
  755. return "MacOS";
  756. }
  757. if (os == "SunOS")
  758. {
  759. var exp = new RegExp(/sunos ([0-9.]+)/);
  760. var matches;
  761. if ((matches = exp.exec(re_ua)) && matches.length == 2)
  762. return matches[1];
  763. }
  764. return "";
  765. }
  766. function re_get_browser_version()
  767. {
  768. var i, ua, b, cr;
  769. if (re_browser_ident == "Netscape Navigator" && document.layers)
  770. return 4;
  771. if (!((i = re_ua.indexOf(re_browser_ident+" ")) >= 0 || (i = re_ua.indexOf(re_browser_ident+"/")) >= 0))
  772. return "";
  773. ua = re_ua.substring(i + re_browser_ident.length + 1);
  774. if (ua.charAt(0) == "v")
  775. ua = ua.substring(1);
  776. b = "";
  777. for (cnt=0;cnt<ua.length;cnt++)
  778. {
  779. cr = ua.charAt(cnt);
  780. if ((cr >= 0 && cr <= 9) || cr == ".")
  781. b += cr;
  782. else
  783. break;
  784. }
  785. return b;
  786. }
  787. function re_get_clr()
  788. {
  789. var a = re_ua.split(".net clr ");
  790. var exp = new RegExp(/^([0-9.]+).*$/);
  791. var matches;
  792. var dotnet_v = new Array();
  793. for (var cnt=0;cnt<a.length;++cnt)
  794. {
  795. if ((matches = exp.exec(a[cnt])) && matches.length == 2)
  796. dotnet_v.push(matches[1]);
  797. }
  798. if (dotnet_v.length > 0)
  799. {
  800. var big = dotnet_v[0];
  801. for (var cnt=0;cnt<dotnet_v.length;++cnt)
  802. {
  803. if (dotnet_v[cnt] > big)
  804. big = dotnet_v[cnt];
  805. }
  806. return big;
  807. }
  808. return "";
  809. }
  810. function re_get_browser()
  811. {
  812. var re_browser = "";
  813. if (re_ua_get("konqueror"))
  814. {
  815. re_browser = "Konqueror";
  816. re_browser_ident = "konqueror";
  817. } else if (re_ua_get("safari"))
  818. {
  819. re_browser = "Safari";
  820. re_browser_ident = "safari";
  821. } else if (re_ua_get("opera"))
  822. {
  823. re_browser = "Opera";
  824. re_browser_ident = "opera";
  825. } else if (re_ua_get("webtv"))
  826. {
  827. re_browser = "WebTV";
  828. re_browser_ident = "webtv";
  829. } else if (re_ua_get("firefox"))
  830. {
  831. re_browser = "FireFox";
  832. re_browser_ident = "firefox";
  833. } else if (re_ua_get("msie"))
  834. {
  835. re_browser = "Internet Explorer";
  836. re_browser_ident = "msie";
  837. } else if (re_ua_get("omniweb"))
  838. {
  839. re_browser = "OmniWeb";
  840. re_browser_ident = "omniweb";
  841. } else if (re_ua_get("netscape"))
  842. {
  843. re_browser = "Netscape";
  844. re_browser_ident = "netscape";
  845. } else if (!re_ua_get("compatible"))
  846. {
  847. re_browser = "Netscape Navigator";
  848. re_browser_ident = "Netscape Navigator";
  849. }
  850. return re_browser;
  851. }
  852. function primary_domain_name(url)
  853. {
  854. var pos;
  855. if ((pos = url.indexOf(":\/\/")) >= 0)
  856. url = url.substr(pos);
  857. var domain = url.match(/(www\.)?([^\/:]+)/);
  858. if (!domain)
  859. return "";
  860. domain = domain[2];
  861. var top_levels = new Array("aero","biz","cat","com","coop","edu","gov","info","int","jobs","mil","mobi","museum","name","net","org","travel");
  862. var name_list = domain.split(".");
  863. while (true)
  864. {
  865. var num_levels = name_list.length;
  866. var level = name_list[name_list.length-1];
  867. for (var cnt=0;cnt<top_levels.length;++cnt)
  868. {
  869. if (top_levels[cnt] == level && name_list.length > 1)
  870. {
  871. name_list.pop();
  872. break;
  873. }
  874. }
  875. if (name_list.length > 1 && name_list[name_list.length-1].length == 2)
  876. name_list.pop();
  877. if (num_levels == name_list.length)
  878. break;
  879. }
  880. return name_list.pop();
  881. }
  882. function re_sid()
  883. {
  884. var re_d = new Date();
  885. var chars = "qwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNM";
  886. var buffer = "";
  887. for (var i=0;i<5;++i)
  888. buffer += chars.charAt(Math.floor(Math.random()*chars.length));
  889. buffer += "-" + Math.floor(Math.random()*214748364) + "" + re_d.getSeconds();
  890. return buffer;
  891. }
  892. function re_localtime()
  893. {
  894. var d = new Date();
  895. var hr = d.getHours()%12;
  896. return (hr == 0 ? 12 : hr) + ":" + (d.getMinutes().toString().length == 1 ? "0" : "") + d.getMinutes() + " " + (d.getHours() < 12 ? "am" : "pm");
  897. }
  898. function re_(re_id)
  899. {
  900. re_discover_platform();
  901. var screen_res = 0;
  902. var inner_screen_res = 0;
  903. if (screen)
  904. screen_res = screen.width | screen.height << 16;
  905. if (window.innerWidth)
  906. inner_screen_res = window.innerWidth | window.innerHeight << 16;
  907. else if (document.body)
  908. inner_screen_res = document.body.clientWidth | document.body.clientHeight << 16;
  909. if (!re_cookie_exists("re_ret"))
  910. re_set_cookie("re_ret",0,re_r_expires,"/");
  911. else if (!re_get_cookie("re_ses"))
  912. re_set_cookie("re_ret",parseInt(re_get_cookie("re_ret")) + 1,re_r_expires,"/");
  913. if (!re_get_cookie("re_ses"))
  914. {
  915. re_set_cookie("re_ses",re_sid(),re_u_expires,"/");
  916. re_set_cookie("re_ses_indx",1,re_u_expires,"/");
  917. re_unique = 1;
  918. } else
  919. {
  920. re_set_cookie("re_ses_indx",parseInt(re_get_cookie("re_ses_indx")) + 1,re_u_expires,"/");
  921. }
  922. var re_ref = "";
  923. var re_parent_ref = "";
  924. try
  925. {
  926. if (parent.document.referrer != undefined)
  927. re_parent_ref = parent.document.referrer + "";
  928. } catch (_E)
  929. {
  930. }
  931. if (re_parent_ref != "" && re_unique)
  932. re_ref = re_parent_ref + "";
  933. else
  934. re_ref = document.referrer + "";
  935. var tz = (new Date()).getTimezoneOffset()/60;
  936. var ary = {};
  937. ary["id"] = re_id;
  938. ary["sv"] = _re_script_v;
  939. ary["ses"] = re_get_cookie("re_ses");
  940. ary["ses_index"] = parseInt(re_get_cookie("re_ses_indx"));
  941. re_url = (window.location + "").substring(0,250);
  942. if (re_unique)
  943. {
  944. ary["u"] = 1;
  945. ary["ret_index"] = parseInt(re_get_cookie("re_ret"));
  946. ary["tz"] = tz;
  947. ary["bwr"] = re_get_browser();
  948. ary["bwrv"] = re_get_browser_version();
  949. ary["os"] = re_os();
  950. ary["osv"] = re_os_version();
  951. ary["ref"] = re_ref;
  952. ary["dotnet"] = re_get_clr();
  953. ary["res"] = screen_res;
  954. ary["user_agent"] = navigator.userAgent;
  955. ary["pdn"] = primary_domain_name(re_url);
  956. ary["rpdn"] = primary_domain_name(re_ref);
  957. }
  958. ary["cook"] = !!document.cookie;
  959. ary["lt"] = re_localtime();
  960. ary["url"] = re_url;
  961. ary["title"] = (document.title) ? document.title : "Untitled";
  962. ary["ires"] = inner_screen_res;
  963. if (re_name_tag != "")
  964. {
  965. ary["nt"] = re_name_tag;
  966. if (re_context_tag != "")
  967. ary["ct"] = re_context_tag;
  968. }
  969. if (re_comment_tag != "")
  970. ary["cmmt"] = re_comment_tag;
  971. if (re_new_user_tag != "")
  972. ary["nwusr"] = re_new_user_tag;
  973. if (re_purchase_tag != "")
  974. ary["prchs"] = re_purchase_tag;
  975. ary["rnd"] = Math.floor(Math.random()*2147483647);
  976. var qry_str = "";
  977. for (k in ary)
  978. qry_str += escape(k) + "=" + escape(ary[k]) + "&";
  979. qry_str = qry_str.substring(0,qry_str.length-1);
  980. var _re_rpcimg = new Image(1,1);
  981. _re_rpcimg.src = "http://" + re_host + "/ping?" + qry_str;
  982. }