function.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420
  1. String.prototype.trim = function ()
  2. {
  3. var str = this,
  4. str = str.replace(/^\s+/, '');
  5. for (var i = str.length - 1; i >= 0; i--)
  6. {
  7. if (/\S/.test(str.charAt(i)))
  8. {
  9. str = str.substring(0, i + 1);
  10. break;
  11. }
  12. }
  13. return str;
  14. }
  15. Array.prototype.Contain = function (item)
  16. {
  17. var array = this;
  18. for (var i = array.length - 1; i >= 0; i--)
  19. {
  20. if (array[i] == item)
  21. return true;
  22. }
  23. return false;
  24. }
  25. var _browser = (function (a)
  26. {
  27. var r = /(webkit)[ \/]([\w.]+)/,
  28. s = /(opera)(?:.*version)?[ \/]([\w.]+)/,
  29. t = /(msie) ([\w.]+)/,
  30. u = /(mozilla)(?:.*? rv:([\w.]+))?/;
  31. var b = r.exec(a) || s.exec(a) || t.exec(a) || a.indexOf("compatible") < 0 && u.exec(a) || [];
  32. return {
  33. name: b[1] || "",
  34. version: b[2] || "0"
  35. };
  36. })(window.navigator.userAgent.toLowerCase());
  37. /*取cookies*/
  38. var getCookie = function (c_name)
  39. {
  40. if (document.cookie.length > 0)
  41. {
  42. c_start = document.cookie.indexOf(c_name + "=");
  43. if (c_start != -1)
  44. {
  45. c_start = c_start + c_name.length + 1;
  46. c_end = document.cookie.indexOf(";", c_start);
  47. if (c_end == -1) c_end = document.cookie.length;
  48. return decodeURIComponent(document.cookie.substring(c_start, c_end));
  49. }
  50. }
  51. return "";
  52. }
  53. var showadvert = function (url, objId)
  54. {
  55. var xmlhttp;
  56. if (window.XMLHttpRequest)
  57. { xmlhttp = new XMLHttpRequest(); }
  58. else
  59. { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
  60. xmlhttp.onreadystatechange = function ()
  61. {
  62. if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
  63. {
  64. var _txt = xmlhttp.responseText;
  65. _txt = _txt.replace("document.write(\"", "");
  66. _txt = _txt.replace("\")", "");
  67. _txt = _txt.split("\\").join("");
  68. if (objId)
  69. document.getElementById(objId).innerHTML = _txt;
  70. }
  71. }
  72. xmlhttp.open("GET", url, true);
  73. xmlhttp.send();
  74. }
  75. var showSelectBox = function ()
  76. {
  77. $(document).click(function (event)
  78. {
  79. var _box = $(".mSelectBox");
  80. var _select = _box.children(".mSelect");
  81. var _list = _box.children(".mSelectList");
  82. if (_browser.name == "msie")
  83. {
  84. if (event.srcElement.className == "mSelect")
  85. {
  86. if (_list.css("display") == "block")
  87. {
  88. _list.css("display", "none");
  89. } else { _list.css("display", "block"); }
  90. }
  91. else { _list.css("display", "none"); }
  92. } else
  93. {
  94. if ($(event.target).attr("class") == "mSelect")
  95. {
  96. if (_list.css("display") == "block")
  97. {
  98. _list.css("display", "none");
  99. }
  100. else { _list.css("display", "block"); }
  101. }
  102. else { _list.css("display", "none"); }
  103. }
  104. });
  105. }
  106. var showNavSelect = function ()
  107. {
  108. $("#nav-all-box").children("li").each(function ()
  109. {
  110. var $this = $(this);
  111. var css = $this.attr("class") || "";
  112. if (-1 < css.indexOf("js-dropdown"))
  113. {
  114. var $dl = $this.children("dl").eq(0);
  115. $this.hover(
  116. function () { $dl.slideDown("fast"); },
  117. function () { $dl.slideUp("fast"); }
  118. );
  119. }
  120. });
  121. }
  122. var scrollTrend = function ()
  123. {
  124. if (_browser.name == "msie" && parseInt(_browser.version) == 6)
  125. {
  126. return true;
  127. }
  128. var position = "fixed";
  129. var b = $("#chartBody");
  130. var p = { t: b.offset().top, h: b.height() };
  131. $("div.scrollBanner").each(function ()
  132. {
  133. var $this = $(this);
  134. var st = $(window).scrollTop();
  135. if (st >= p.t && st < p.t + p.h)
  136. {
  137. $this.css({ position: position, display: "block" });
  138. } else { $this.hide(); }
  139. });
  140. }
  141. //设为首页
  142. var sethomepage = function (url)
  143. {
  144. if (document.all)
  145. {
  146. document.body.style.behavior = 'url(#default#homepage)';
  147. document.body.setHomePage(window.location.href);
  148. } else if (window.sidebar)
  149. {
  150. if (window.netscape)
  151. {
  152. try
  153. {
  154. netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
  155. } catch (e)
  156. {
  157. alert("该操作被浏览器拒绝,如果想启用该功能,请在地址栏内输入 about:config,然后将项 signed.applets.codebase_principal_support 值该为true");
  158. }
  159. }
  160. var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
  161. prefs.setCharPref('browser.startup.homepage', window.location.href);
  162. } else
  163. {
  164. alert('您的浏览器不支持自动设置首页, 请使用浏览器菜单手动设置!');
  165. }
  166. }
  167. //加入收藏
  168. var addfav = function ()
  169. {
  170. if (document.all)
  171. {
  172. try
  173. {
  174. window.external.addFavorite(window.location.href, document.title);
  175. } catch (e)
  176. {
  177. alert("加入收藏失败,请使用Ctrl+D进行添加");
  178. }
  179. } else if (window.sidebar)
  180. {
  181. window.sidebar.addPanel(document.title, window.location.href, "");
  182. } else
  183. {
  184. alert("加入收藏失败,请使用Ctrl+D进行添加");
  185. }
  186. }
  187. //图片缩放 参数(图片,允许的宽度,允许的高度)
  188. function DrawImage(ImgD, iwidth, iheight)
  189. {
  190. var image = new Image();
  191. image.src = ImgD.src;
  192. if (image.width > 0 && image.height > 0)
  193. {
  194. if (image.width / image.height >= iwidth / iheight)
  195. {
  196. if (image.width > iwidth)
  197. {
  198. ImgD.width = iwidth;
  199. ImgD.height = (image.height * iwidth) / image.width;
  200. } else
  201. {
  202. ImgD.width = image.width;
  203. ImgD.height = image.height;
  204. }
  205. }
  206. else
  207. {
  208. if (image.height > iheight)
  209. {
  210. ImgD.height = iheight;
  211. ImgD.width = (image.width * iheight) / image.height;
  212. } else
  213. {
  214. ImgD.width = image.width;
  215. ImgD.height = image.height;
  216. }
  217. }
  218. }
  219. }
  220. //search
  221. checkTerm = function (min, max)
  222. {
  223. var newterm = $("#newterm").val();
  224. newterm = $.trim(newterm);
  225. if (isEmpty(newterm))
  226. {
  227. $("#newterm").val("");
  228. alert("期数不能为空!");
  229. return false;
  230. }
  231. if (isNaN(newterm))
  232. {
  233. $("#newterm").val("");
  234. alert("请输入正确的期数值!");
  235. return false;
  236. }
  237. if (!isInteger(newterm))
  238. {
  239. $("#newterm").val("");
  240. alert("请输入整数!");
  241. return false;
  242. }
  243. if (newterm.length >= max || newterm.length <= min)
  244. {
  245. $("#newterm").val("");
  246. alert("请输入正确的期数格式!");
  247. return false;
  248. }
  249. $("#newterm").val(newterm);
  250. $("#form1").submit();
  251. }
  252. isEmpty = function (str)
  253. {
  254. if (str == "")
  255. {
  256. return true;
  257. }
  258. var regu = /^[ ]+$/;
  259. var re = new RegExp(regu);
  260. return re.test(str);
  261. }
  262. isInteger = function (str)
  263. {
  264. var regu = /^\+?[0-9]+$/;
  265. var re = new RegExp(regu);
  266. return re.test(str);
  267. }
  268. //农历计算与显示
  269. var CalConv = function (objId)
  270. {
  271. if (typeof (objId) == "undefined") { return; }
  272. var _o = document.getElementById(objId);
  273. if (typeof (_o) == "undefined") { return; }
  274. var tagLunarCal = function (d, i, w, k, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13)
  275. {
  276. this.BaseDays = d;
  277. this.Intercalation = i;
  278. this.BaseWeekday = w;
  279. this.BaseKanChih = k;
  280. this.MonthDays = [m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13];
  281. return this;
  282. };
  283. var GetLeap = function (year)
  284. {
  285. if (year % 400 == 0)
  286. return 1;
  287. else if (year % 100 == 0)
  288. return 0;
  289. else if (year % 4 == 0)
  290. return 1;
  291. else
  292. return 0;
  293. };
  294. var LunarCal = [
  295. tagLunarCal(27, 5, 3, 43, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1),
  296. tagLunarCal(46, 0, 4, 48, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1), /* 88 */
  297. tagLunarCal(35, 0, 5, 53, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1), /* 89 */
  298. tagLunarCal(23, 4, 0, 59, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1),
  299. tagLunarCal(42, 0, 1, 4, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1),
  300. tagLunarCal(31, 0, 2, 9, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0),
  301. tagLunarCal(21, 2, 3, 14, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1), /* 93 */
  302. tagLunarCal(39, 0, 5, 20, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1),
  303. tagLunarCal(28, 7, 6, 25, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1),
  304. tagLunarCal(48, 0, 0, 30, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1),
  305. tagLunarCal(37, 0, 1, 35, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1), /* 97 */
  306. tagLunarCal(25, 5, 3, 41, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1),
  307. tagLunarCal(44, 0, 4, 46, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1),
  308. tagLunarCal(33, 0, 5, 51, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1),
  309. tagLunarCal(22, 4, 6, 56, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0), /* 101 */
  310. tagLunarCal(40, 0, 1, 2, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0),
  311. tagLunarCal(30, 9, 2, 7, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1),
  312. tagLunarCal(49, 0, 3, 12, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1),
  313. tagLunarCal(38, 0, 4, 17, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0), /* 105 */
  314. tagLunarCal(27, 6, 6, 23, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1),
  315. tagLunarCal(46, 0, 0, 28, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0),
  316. tagLunarCal(35, 0, 1, 33, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0),
  317. tagLunarCal(24, 4, 2, 38, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1), /* 109 */
  318. tagLunarCal(42, 0, 4, 44, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1),
  319. tagLunarCal(31, 0, 5, 49, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0),
  320. tagLunarCal(21, 2, 6, 54, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1),
  321. tagLunarCal(40, 0, 0, 59, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1), /* 113 */
  322. tagLunarCal(28, 6, 2, 5, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0),
  323. tagLunarCal(47, 0, 3, 10, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1),
  324. tagLunarCal(36, 0, 4, 15, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1),
  325. tagLunarCal(25, 5, 5, 20, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0), /* 117 */
  326. tagLunarCal(43, 0, 0, 26, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1),
  327. tagLunarCal(32, 0, 1, 31, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0),
  328. tagLunarCal(22, 3, 2, 36, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0)];
  329. var FIRSTYEAR = 1998;
  330. var LASTYEAR = 2031;
  331. var today = new Date();
  332. var SolarYear = today.getFullYear();
  333. var SolarMonth = today.getMonth() + 1;
  334. var SolarDate = today.getDate();
  335. var Weekday = today.getDay();
  336. /* 民国年月日 */
  337. var SolarCal = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
  338. var SolarDays = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365, 396, 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366, 397];
  339. var sm, leap, d, y, acc, kc, Kan, Chih, Age, l1, i, LunarMonth, LunarDate, im;
  340. if (SolarYear <= FIRSTYEAR || SolarYear > LASTYEAR) return;
  341. sm = SolarMonth - 1;
  342. if (sm < 0 || sm > 11) return;
  343. leap = GetLeap(SolarYear);
  344. if (sm == 1)
  345. d = leap + 28;
  346. else
  347. d = SolarCal[sm];
  348. if (SolarDate < 1 || SolarDate > d) return;
  349. y = SolarYear - FIRSTYEAR;
  350. acc = SolarDays[leap * 14 + sm] + SolarDate;
  351. kc = acc + LunarCal[y].BaseKanChih;
  352. Kan = kc % 10;
  353. Chih = kc % 12;
  354. Age = kc % 60;
  355. if (Age < 22)
  356. Age = 22 - Age;
  357. else
  358. Age = 82 - Age;
  359. if (acc <= LunarCal[y].BaseDays)
  360. {
  361. y--;
  362. LunarYear = SolarYear - 1;
  363. leap = GetLeap(LunarYear);
  364. sm += 12;
  365. acc = SolarDays[leap * 14 + sm] + SolarDate;
  366. }
  367. else
  368. LunarYear = SolarYear;
  369. l1 = LunarCal[y].BaseDays;
  370. for (i = 0; i < 13; i++)
  371. {
  372. l2 = l1 + LunarCal[y].MonthDays[i] + 29;
  373. if (acc <= l2) { break; }
  374. l1 = l2;
  375. }
  376. LunarMonth = i + 1;
  377. LunarDate = acc - l1;
  378. im = LunarCal[y].Intercalation;
  379. if (im != 0 && LunarMonth > im)
  380. {
  381. LunarMonth--;
  382. if (LunarMonth == im) { LunarMonth = -im; }
  383. }
  384. if (LunarMonth > 12) { LunarMonth -= 12; }
  385. //2015年9月21日 星期一 农历八月初九
  386. var _week = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六");
  387. var _months = ["正", "二", "三", "四", "五", "六", "七", "八", "九", "十", "冬", "腊"];
  388. var _days = ["初一", "初二", "初三", "初四", "初五", "初六", "初七", "初八", "初九", "初十", "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "二十", "廿一", "廿二", "廿三", "廿四", "廿五", "廿六", "廿七", "廿八", "廿九", "三十"];
  389. var _html = new Array();
  390. _html.push(today.getFullYear());
  391. _html.push("年");
  392. _html.push(today.getMonth() + 1);
  393. _html.push("月");
  394. _html.push(today.getDate());
  395. _html.push("日 ");
  396. _html.push(_week[today.getDay() + 1]);
  397. _html.push(" 农历");
  398. _html.push(_months[Math.abs(LunarMonth) - 1]);
  399. _html.push("月");
  400. _html.push(_days[LunarDate - 1]);
  401. _o.innerHTML = _html.join("");
  402. }