PageRenderTime 43ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 1ms

/public/javascripts/utility.js

http://ozgb2c-ruby-on-rails.googlecode.com/
JavaScript | 492 lines | 367 code | 47 blank | 78 comment | 98 complexity | e73cb8b9710322fab8d23c90f7b83a1c MD5 | raw file
  1. //????2011-09-13
  2. //??????????,???????
  3. function formatFloat(src, pos) {
  4. return Math.round(src * Math.pow(10, pos)) / Math.pow(10, pos);
  5. }
  6. //????????????js(??FF?IE)
  7. //<input type="text" name="test" id="test" onkeydown="checkNumber(this.value,event)" style="ime-mode:disabled" />
  8. function checkNumber(value, e) {
  9. var key = window.event ? e.keyCode : e.which;
  10. if ((key > 95 && key < 106) ||
  11. (key > 47 && key < 60) ||
  12. (key == 110 && value.indexOf(".") < 0) ||
  13. (key == 190 && value.indexOf(".") < 0)) {
  14. }
  15. else if (key != 8) {
  16. if (window.event) {
  17. //IE
  18. e.returnValue = false; //event.returnValue=false ????.
  19. }
  20. else {
  21. //Firefox
  22. e.preventDefault();
  23. }
  24. }
  25. }
  26. //??URL??
  27. function getUrlParam(name){
  28. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
  29. var r = window.location.search.substr(1).match(reg);
  30. if (r!=null){
  31. return unescape(r[2]);
  32. }
  33. else{
  34. return null;
  35. }
  36. }
  37. //??jquery.mln????
  38. function getMlnValue(mlnID){
  39. var items=document.getElementsByName(mlnID);
  40. for(var i=0;i<items.length;i++){
  41. if(items[i].name==mlnID){
  42. return items[i].value;
  43. }
  44. }
  45. }
  46. //??????
  47. function getRandomColor(){
  48. //16????????0-F
  49. var arrHex = ["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];
  50. var strHex = "#";
  51. var index;
  52. for(var i = 0; i < 6; i++) {
  53. //??0-15???????
  54. index = Math.round(Math.random() * 15);
  55. strHex += arrHex[index];
  56. }
  57. return strHex;
  58. }
  59. //?????????
  60. function getCurrentFile(){
  61. var thisHREF = document.location.href;
  62. var tmpHPage = thisHREF.split( "/" );
  63. var thisHPage = tmpHPage[ tmpHPage.length-1 ];
  64. thisHPage=thisHPage.substring(0,thisHPage.indexOf("?"))
  65. return thisHPage;
  66. }
  67. // 1.??select??? ????Value="paraValue"?Item
  68. function isSelectExistItem(objSelect, objItemValue) {
  69. var isExit = false;
  70. for (var i = 0; i < objSelect.options.length; i++) {
  71. if (objSelect.options[i].value == objItemValue) {
  72. isExit = true;
  73. break;
  74. }
  75. }
  76. return isExit;
  77. }
  78. // 2.?select??? ????Item
  79. function addItemToSelect(objSelect, objItemText, objItemValue) {
  80. //??????
  81. if (isSelectExistItem(objSelect, objItemValue)) {
  82. alert("?Item?Value?????");
  83. } else {
  84. var varItem = new Option(objItemText, objItemValue);
  85. objSelect.options.add(varItem);
  86. //alert("????");
  87. }
  88. }
  89. // 3.?select??? ????Item
  90. function removeItemFromSelect(objSelect, objItemValue) {
  91. //??????
  92. if (isSelectExistItem(objSelect, objItemValue)) {
  93. for (var i = 0; i < objSelect.options.length; i++) {
  94. if (objSelect.options[i].value == objItemValue) {
  95. objSelect.options.remove(i);
  96. break;
  97. }
  98. }
  99. //alert("????");
  100. } else {
  101. alert("?select? ?????");
  102. }
  103. }
  104. // 4.??select?????
  105. function removeSelectedItemFromSelect(objSelect) {
  106. var length = objSelect.options.length - 1;
  107. for (var i = length; i >= 0; i--) {
  108. if (objSelect.options[i].selected) {
  109. objSelect.options[i] = null;
  110. }
  111. }
  112. }
  113. // 5.??select??? value="paraValue"?text?"paraText"
  114. function updateItemToSelect(objSelect, objItemText, objItemValue) {
  115. //??????
  116. if (isSelectExistItem(objSelect, objItemValue)) {
  117. for (var i = 0; i < objSelect.options.length; i++) {
  118. if (objSelect.options[i].value == objItemValue) {
  119. objSelect.options[i].text = objItemText;
  120. break;
  121. }
  122. }
  123. //alert("????");
  124. } else {
  125. alert("?select? ?????");
  126. }
  127. }
  128. // 6.??select?text="paraText"????Item???
  129. function selectItemByText(objSelect, objItemText) {
  130. //??????
  131. var isExit = false;
  132. for (var i = 0; i < objSelect.options.length; i++) {
  133. if (objSelect.options[i].text == objItemText) {
  134. objSelect.options[i].selected=true;
  135. isExit = true;
  136. break;
  137. }
  138. }
  139. //Show???
  140. if (isExit) {
  141. //alert("????");
  142. } else {
  143. alert("?select? ?????");
  144. }
  145. }
  146. // 7.??select?value="paraValue"?Item???
  147. //document.all.objSelect.value = objItemValue;
  148. // 8.??select???????value
  149. //var currSelectValue = document.all.objSelect.value;
  150. // 9.??select???????text
  151. //var currSelectText = document.all.objSelect.options
  152. //[document.all.objSelect.selectedIndex].text;
  153. // 10.??select???????Index
  154. //var currSelectIndex = document.all.objSelect.selectedIndex;
  155. // 11.??select??
  156. //document.all.objSelect.options.length = 0;
  157. //??????????????
  158. //??: onkeydown="return keyClick('search');
  159. function keyClick(btnID){
  160. if (event.keyCode == 13){
  161. event.returnValue=false;
  162. event.cancel = true;
  163. document.getElementById(btnID).click();
  164. return false;
  165. }
  166. }
  167. //???????XY??
  168. function getPos(oArg) {
  169. /*
  170. getPos(document.getElementById('img1')).x
  171. getPos(document.getElementById('img1')).y
  172. */
  173. var oPos = new Object();
  174. oPos.x = oArg.offsetLeft;
  175. oPos.y = oArg.offsetTop;
  176. while (oArg.tagName.toLocaleLowerCase() != "body" && oArg.tagName.toLocaleLowerCase() != "html") {
  177. oArg = oArg.offsetParent;
  178. oPos.x += oArg.offsetLeft;
  179. oPos.y += oArg.offsetTop;
  180. }
  181. return oPos; //????
  182. }
  183. //???????
  184. //<img src="XXXX" alt="????????" onload="javascript:drawImage(this,'200','200');" />
  185. function drawImage(ImgD, FitWidth, FitHeight) {
  186. var image = new Image();
  187. image.src = ImgD.src;
  188. if (image.width > 0 && image.height > 0) {
  189. if (image.width / image.height >= FitWidth / FitHeight) {
  190. if (image.width > FitWidth) {
  191. ImgD.width = FitWidth;
  192. ImgD.height = (image.height * FitWidth) / image.width;
  193. } else {
  194. ImgD.width = image.width;
  195. ImgD.height = image.height;
  196. }
  197. } else {
  198. if (image.height > FitHeight) {
  199. ImgD.height = FitHeight;
  200. ImgD.width = (image.width * FitHeight) / image.height;
  201. } else {
  202. ImgD.width = image.width;
  203. ImgD.height = image.height;
  204. }
  205. }
  206. }
  207. }
  208. //??????
  209. function getPageCharset() {
  210. var charSet = "";
  211. var oType = getBrowser();
  212. switch (oType) {
  213. case "IE":
  214. charSet = document.charset;
  215. break;
  216. case "FIREFOX":
  217. charSet = document.characterSet;
  218. break;
  219. default:
  220. break;
  221. }
  222. return charSet;
  223. }
  224. //???????
  225. function getBrowser() {
  226. var oType = null;
  227. if (navigator.userAgent.indexOf("MSIE") != -1) {
  228. oType = "IE";
  229. }
  230. else if (navigator.userAgent.indexOf("Firefox") != -1) {
  231. oType = "Firefox";
  232. }
  233. return oType;
  234. }
  235. //js????(yyyy-mm-dd)
  236. //a??b??1
  237. //a??b??-1
  238. //a??b??0
  239. function compdate(a, b) {
  240. var arr = a.split("-");
  241. var starttime = new Date(arr[0], arr[1], arr[2]);
  242. var starttimes = starttime.getTime();
  243. var arrs = b.split("-");
  244. var lktime = new Date(arrs[0], arrs[1], arrs[2]);
  245. var lktimes = lktime.getTime();
  246. if (starttimes > lktimes) {
  247. return 1;
  248. }
  249. else if (starttimes < lktimes) {
  250. return -1;
  251. }
  252. else if (starttimes == lktimes) {
  253. return 0;
  254. }
  255. else {
  256. return 'exception';
  257. }
  258. }
  259. //js????(yyyy-mm-dd hh:mi:ss)
  260. //a??b??1
  261. //a??b??-1
  262. //a??b??0
  263. function comptime(a, b) {
  264. //var beginTime = "2009-09-21 00:00:00";
  265. //var endTime = "2009-09-21 00:00:01";
  266. var beginTime = a;
  267. var endTime = b;
  268. //??Firefox???
  269. if (getBrowser() == 'Firefox') {
  270. beginTime = strToDate(beginTime);
  271. beginTime = beginTime.getMonth() + "/" + beginTime.getDate() + "/" + beginTime.getFullYear() + " " + beginTime.getHours() + ":" + beginTime.getMinutes() + ":" + beginTime.getSeconds();
  272. endTime = strToDate(endTime);
  273. endTime = endTime.getMonth() + "/" + endTime.getDate() + "/" + endTime.getFullYear() + " " + endTime.getHours() + ":" + endTime.getMinutes() + ":" + endTime.getSeconds();
  274. }
  275. else {
  276. var beginTimes = beginTime.substring(0, 10).split('-');
  277. var endTimes = endTime.substring(0, 10).split('-');
  278. beginTime = beginTimes[1] + '-' + beginTimes[2] + '-' + beginTimes[0] + ' ' + beginTime.substring(10, 19);
  279. endTime = endTimes[1] + '-' + endTimes[2] + '-' + endTimes[0] + ' ' + endTime.substring(10, 19);
  280. //alert(beginTime + "aaa" + endTime);
  281. //alert(Date.parse(endTime));
  282. //alert(Date.parse(beginTime));
  283. }
  284. var a = (Date.parse(endTime) - Date.parse(beginTime)) / 3600 / 1000;
  285. if (a < 0) {
  286. return 1;
  287. } else if (a > 0) {
  288. return -1;
  289. } else if (a == 0) {
  290. return 0;
  291. } else {
  292. return 'exception';
  293. }
  294. }
  295. //????????
  296. function getStrLen(str) {
  297. var totallength = 0;
  298. for (var i = 0; i < str.length; i++) {
  299. var intCode = str.charCodeAt(i);
  300. if (intCode >= 0 && intCode <= 128) {
  301. totallength = totallength + 1; //?????????? 1
  302. }
  303. else {
  304. totallength = totallength + 2; //???????? 2
  305. }
  306. } //end for
  307. return totallength;
  308. }
  309. //IE?firefox?????????
  310. function copyToClipboard(txt) {
  311. txt = encodeURI(txt);
  312. if (window.clipboardData) {
  313. window.clipboardData.clearData();
  314. window.clipboardData.setData("Text", txt);
  315. alert("?????");
  316. }
  317. else if (navigator.userAgent.indexOf("Opera") != -1) {
  318. window.location = txt;
  319. }
  320. else if (window.netscape) {
  321. try {
  322. netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
  323. } catch (e) {
  324. alert("???????\n??????????'about:config'???\n???'signed.applets.codebase_principal_support'???'true'");
  325. }
  326. var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
  327. if (!clip)
  328. return;
  329. var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
  330. if (!trans)
  331. return;
  332. trans.addDataFlavor('text/unicode');
  333. var str = new Object();
  334. var len = new Object();
  335. var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
  336. var copytext = txt;
  337. str.data = copytext;
  338. trans.setTransferData("text/unicode", str, copytext.length * 2);
  339. var clipid = Components.interfaces.nsIClipboard;
  340. if (!clip)
  341. return false;
  342. clip.setData(trans, null, clipid.kGlobalClipboard);
  343. alert("?????");
  344. }
  345. }
  346. //?????Date
  347. //dateString:String 2008-01-01 00:00:00
  348. function strToDate(dateString) {
  349. var d = dateString.split(' ');
  350. var date = d[0];
  351. var dates = date.split('-');
  352. var time = null;
  353. var times = null;
  354. if (d[1]) {
  355. time = d[1];
  356. times = time.split(':');
  357. }
  358. var dd = new Date();
  359. dd.setFullYear(dates[0]);
  360. dd.setMonth(dates[1]);
  361. dd.setDate(dates[2]);
  362. if (times) {
  363. if (times[0]) {
  364. dd.setHours(times[0]);
  365. }
  366. if (times[1]) {
  367. dd.setMinutes(times[1]);
  368. }
  369. if (times[2]) {
  370. dd.setSeconds(times[2]);
  371. }
  372. }
  373. return dd;
  374. }
  375. //???????
  376. function inputInt(objID) {
  377. var obj = document.getElementById(objID);
  378. obj.setAttribute("onkeyup", "this.value=this.value.replace(/[^\\d]/g,'')");
  379. obj.setAttribute("onbeforepaste", "clipboardData.setData('text',clipboardData.getData('text').replace(/[^\\d]/g,''))");
  380. }
  381. //??????????
  382. function inputDecimal(objID) {
  383. var obj = document.getElementById(objID);
  384. obj.setAttribute("onkeyup", "this.value=this.value.replace(/[^0-9.]/g,'')");
  385. obj.setAttribute("onbeforepaste", "clipboardData.setData('text',clipboardData.getData('text').replace(/[^0-9.]/g,''))");
  386. }
  387. //???????
  388. function isMobile(s) {
  389. var ex = /^0*(13|15)\d{9}$/;
  390. return ex.test(s);
  391. }
  392. //???QQ?
  393. function isQQ(s) {
  394. var ex = /^[1-9][0-9]{4,}$/;
  395. return ex.test(s);
  396. }
  397. //???????
  398. function isTel(s) {
  399. var ex = /^[0][1-9]{2,3}-[0-9]{5,8}$/;
  400. if (!ex.test(s)) {
  401. ex = /^[1-9]{1}[0-9]{5,8}$/;
  402. return ex.test(s);
  403. }
  404. else {
  405. return true;
  406. }
  407. }
  408. //?????
  409. function isEmail(s) {
  410. var ex = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
  411. return ex.test(s);
  412. }
  413. //?????
  414. function isPostCode(s) {
  415. var ex = /^[1-9][0-9]{5}$/;
  416. return ex.test(s);
  417. }
  418. //????????
  419. function isCnID(s) {
  420. var ex = /(^\d{15}$)|(^\d{17}([0-9]|X)$)/;
  421. return ex.test(s);
  422. }
  423. //?????????
  424. function getLocalTime(nS) {
  425. return new Date(parseInt(nS) * 1000).toLocaleString();
  426. }
  427. //???UNIX???
  428. function getUnixTime(datestr) {
  429. var new_str = datestr.replace(/:/g, "-");
  430. new_str = new_str.replace(/ /g, "-");
  431. var arr = new_str.split("-");
  432. var datum = new Date(Date.UTC(arr[0], arr[1] - 1, arr[2], arr[3] - 8, arr[4], arr[5]));
  433. return (datum.getTime() / 1000); //?PHP??
  434. }
  435. //?????
  436. function getPageCount(total, page_size) {
  437. total = parseInt(total);
  438. page_size = parseInt(page_size);
  439. if (total % page_size == 0) {
  440. return Math.floor(total / page_size);
  441. }
  442. else {
  443. return Math.floor((total / page_size) + 1);
  444. }
  445. }