/public/javascripts/utility.js
JavaScript | 492 lines | 367 code | 47 blank | 78 comment | 98 complexity | e73cb8b9710322fab8d23c90f7b83a1c MD5 | raw file
- //????2011-09-13
-
- //??????????,???????
- function formatFloat(src, pos) {
- return Math.round(src * Math.pow(10, pos)) / Math.pow(10, pos);
- }
-
- //????????????js(??FF?IE)
- //<input type="text" name="test" id="test" onkeydown="checkNumber(this.value,event)" style="ime-mode:disabled" />
- function checkNumber(value, e) {
- var key = window.event ? e.keyCode : e.which;
- if ((key > 95 && key < 106) ||
- (key > 47 && key < 60) ||
- (key == 110 && value.indexOf(".") < 0) ||
- (key == 190 && value.indexOf(".") < 0)) {
- }
- else if (key != 8) {
- if (window.event) {
- //IE
- e.returnValue = false; //event.returnValue=false ????.
- }
- else {
- //Firefox
- e.preventDefault();
- }
- }
- }
-
- //??URL??
- function getUrlParam(name){
- var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
- var r = window.location.search.substr(1).match(reg);
- if (r!=null){
- return unescape(r[2]);
- }
- else{
- return null;
- }
- }
-
- //??jquery.mln????
- function getMlnValue(mlnID){
- var items=document.getElementsByName(mlnID);
- for(var i=0;i<items.length;i++){
- if(items[i].name==mlnID){
- return items[i].value;
- }
- }
- }
-
- //??????
- function getRandomColor(){
- //16????????0-F
- var arrHex = ["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];
- var strHex = "#";
- var index;
- for(var i = 0; i < 6; i++) {
- //??0-15???????
- index = Math.round(Math.random() * 15);
- strHex += arrHex[index];
- }
- return strHex;
- }
-
- //?????????
- function getCurrentFile(){
- var thisHREF = document.location.href;
- var tmpHPage = thisHREF.split( "/" );
- var thisHPage = tmpHPage[ tmpHPage.length-1 ];
- thisHPage=thisHPage.substring(0,thisHPage.indexOf("?"))
- return thisHPage;
- }
-
- // 1.??select??? ????Value="paraValue"?Item
- function isSelectExistItem(objSelect, objItemValue) {
- var isExit = false;
- for (var i = 0; i < objSelect.options.length; i++) {
- if (objSelect.options[i].value == objItemValue) {
- isExit = true;
- break;
- }
- }
- return isExit;
- }
-
- // 2.?select??? ????Item
- function addItemToSelect(objSelect, objItemText, objItemValue) {
- //??????
- if (isSelectExistItem(objSelect, objItemValue)) {
- alert("?Item?Value?????");
- } else {
- var varItem = new Option(objItemText, objItemValue);
- objSelect.options.add(varItem);
- //alert("????");
- }
- }
-
- // 3.?select??? ????Item
- function removeItemFromSelect(objSelect, objItemValue) {
- //??????
- if (isSelectExistItem(objSelect, objItemValue)) {
- for (var i = 0; i < objSelect.options.length; i++) {
- if (objSelect.options[i].value == objItemValue) {
- objSelect.options.remove(i);
- break;
- }
- }
- //alert("????");
- } else {
- alert("?select? ?????");
- }
- }
-
-
- // 4.??select?????
- function removeSelectedItemFromSelect(objSelect) {
- var length = objSelect.options.length - 1;
- for (var i = length; i >= 0; i--) {
- if (objSelect.options[i].selected) {
- objSelect.options[i] = null;
- }
- }
- }
-
- // 5.??select??? value="paraValue"?text?"paraText"
- function updateItemToSelect(objSelect, objItemText, objItemValue) {
- //??????
- if (isSelectExistItem(objSelect, objItemValue)) {
- for (var i = 0; i < objSelect.options.length; i++) {
- if (objSelect.options[i].value == objItemValue) {
- objSelect.options[i].text = objItemText;
- break;
- }
- }
- //alert("????");
- } else {
- alert("?select? ?????");
- }
- }
-
- // 6.??select?text="paraText"????Item???
- function selectItemByText(objSelect, objItemText) {
- //??????
- var isExit = false;
- for (var i = 0; i < objSelect.options.length; i++) {
- if (objSelect.options[i].text == objItemText) {
- objSelect.options[i].selected=true;
- isExit = true;
- break;
- }
- }
- //Show???
- if (isExit) {
- //alert("????");
- } else {
- alert("?select? ?????");
- }
- }
-
- // 7.??select?value="paraValue"?Item???
- //document.all.objSelect.value = objItemValue;
- // 8.??select???????value
- //var currSelectValue = document.all.objSelect.value;
- // 9.??select???????text
- //var currSelectText = document.all.objSelect.options
- //[document.all.objSelect.selectedIndex].text;
- // 10.??select???????Index
- //var currSelectIndex = document.all.objSelect.selectedIndex;
- // 11.??select??
- //document.all.objSelect.options.length = 0;
-
- //??????????????
- //??: onkeydown="return keyClick('search');
- function keyClick(btnID){
- if (event.keyCode == 13){
- event.returnValue=false;
- event.cancel = true;
- document.getElementById(btnID).click();
- return false;
- }
- }
-
- //???????XY??
- function getPos(oArg) {
- /*
- getPos(document.getElementById('img1')).x
- getPos(document.getElementById('img1')).y
- */
- var oPos = new Object();
- oPos.x = oArg.offsetLeft;
- oPos.y = oArg.offsetTop;
- while (oArg.tagName.toLocaleLowerCase() != "body" && oArg.tagName.toLocaleLowerCase() != "html") {
- oArg = oArg.offsetParent;
- oPos.x += oArg.offsetLeft;
- oPos.y += oArg.offsetTop;
- }
- return oPos; //????
- }
-
- //???????
- //<img src="XXXX" alt="????????" onload="javascript:drawImage(this,'200','200');" />
- function drawImage(ImgD, FitWidth, FitHeight) {
- var image = new Image();
- image.src = ImgD.src;
- if (image.width > 0 && image.height > 0) {
- if (image.width / image.height >= FitWidth / FitHeight) {
- if (image.width > FitWidth) {
- ImgD.width = FitWidth;
- ImgD.height = (image.height * FitWidth) / image.width;
- } else {
- ImgD.width = image.width;
- ImgD.height = image.height;
- }
- } else {
- if (image.height > FitHeight) {
- ImgD.height = FitHeight;
- ImgD.width = (image.width * FitHeight) / image.height;
- } else {
- ImgD.width = image.width;
- ImgD.height = image.height;
- }
- }
- }
- }
-
- //??????
- function getPageCharset() {
- var charSet = "";
- var oType = getBrowser();
- switch (oType) {
- case "IE":
- charSet = document.charset;
- break;
- case "FIREFOX":
- charSet = document.characterSet;
- break;
- default:
- break;
- }
- return charSet;
- }
- //???????
- function getBrowser() {
- var oType = null;
- if (navigator.userAgent.indexOf("MSIE") != -1) {
- oType = "IE";
- }
- else if (navigator.userAgent.indexOf("Firefox") != -1) {
- oType = "Firefox";
- }
- return oType;
- }
-
- //js????(yyyy-mm-dd)
- //a??b??1
- //a??b??-1
- //a??b??0
- function compdate(a, b) {
- var arr = a.split("-");
- var starttime = new Date(arr[0], arr[1], arr[2]);
- var starttimes = starttime.getTime();
-
- var arrs = b.split("-");
- var lktime = new Date(arrs[0], arrs[1], arrs[2]);
- var lktimes = lktime.getTime();
-
- if (starttimes > lktimes) {
- return 1;
- }
- else if (starttimes < lktimes) {
- return -1;
- }
- else if (starttimes == lktimes) {
- return 0;
- }
- else {
- return 'exception';
- }
- }
-
- //js????(yyyy-mm-dd hh:mi:ss)
- //a??b??1
- //a??b??-1
- //a??b??0
- function comptime(a, b) {
- //var beginTime = "2009-09-21 00:00:00";
- //var endTime = "2009-09-21 00:00:01";
- var beginTime = a;
- var endTime = b;
-
- //??Firefox???
- if (getBrowser() == 'Firefox') {
- beginTime = strToDate(beginTime);
- beginTime = beginTime.getMonth() + "/" + beginTime.getDate() + "/" + beginTime.getFullYear() + " " + beginTime.getHours() + ":" + beginTime.getMinutes() + ":" + beginTime.getSeconds();
-
- endTime = strToDate(endTime);
- endTime = endTime.getMonth() + "/" + endTime.getDate() + "/" + endTime.getFullYear() + " " + endTime.getHours() + ":" + endTime.getMinutes() + ":" + endTime.getSeconds();
-
- }
- else {
- var beginTimes = beginTime.substring(0, 10).split('-');
- var endTimes = endTime.substring(0, 10).split('-');
-
- beginTime = beginTimes[1] + '-' + beginTimes[2] + '-' + beginTimes[0] + ' ' + beginTime.substring(10, 19);
- endTime = endTimes[1] + '-' + endTimes[2] + '-' + endTimes[0] + ' ' + endTime.substring(10, 19);
-
- //alert(beginTime + "aaa" + endTime);
- //alert(Date.parse(endTime));
- //alert(Date.parse(beginTime));
- }
-
- var a = (Date.parse(endTime) - Date.parse(beginTime)) / 3600 / 1000;
- if (a < 0) {
- return 1;
- } else if (a > 0) {
- return -1;
- } else if (a == 0) {
- return 0;
- } else {
- return 'exception';
- }
- }
-
- //????????
- function getStrLen(str) {
- var totallength = 0;
- for (var i = 0; i < str.length; i++) {
- var intCode = str.charCodeAt(i);
- if (intCode >= 0 && intCode <= 128) {
- totallength = totallength + 1; //?????????? 1
- }
- else {
- totallength = totallength + 2; //???????? 2
- }
- } //end for
- return totallength;
- }
-
- //IE?firefox?????????
- function copyToClipboard(txt) {
- txt = encodeURI(txt);
- if (window.clipboardData) {
- window.clipboardData.clearData();
- window.clipboardData.setData("Text", txt);
- alert("?????");
- }
- else if (navigator.userAgent.indexOf("Opera") != -1) {
- window.location = txt;
- }
- else if (window.netscape) {
- try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
- } catch (e) {
- alert("???????\n??????????'about:config'???\n???'signed.applets.codebase_principal_support'???'true'");
- }
- var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
- if (!clip)
- return;
- var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
- if (!trans)
- return;
- trans.addDataFlavor('text/unicode');
- var str = new Object();
- var len = new Object();
- var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
- var copytext = txt;
- str.data = copytext;
- trans.setTransferData("text/unicode", str, copytext.length * 2);
- var clipid = Components.interfaces.nsIClipboard;
- if (!clip)
- return false;
- clip.setData(trans, null, clipid.kGlobalClipboard);
- alert("?????");
- }
- }
-
- //?????Date
- //dateString:String 2008-01-01 00:00:00
- function strToDate(dateString) {
- var d = dateString.split(' ');
-
- var date = d[0];
- var dates = date.split('-');
-
- var time = null;
- var times = null;
- if (d[1]) {
- time = d[1];
- times = time.split(':');
- }
-
- var dd = new Date();
- dd.setFullYear(dates[0]);
- dd.setMonth(dates[1]);
- dd.setDate(dates[2]);
-
- if (times) {
- if (times[0]) {
- dd.setHours(times[0]);
- }
- if (times[1]) {
- dd.setMinutes(times[1]);
- }
- if (times[2]) {
- dd.setSeconds(times[2]);
- }
- }
-
- return dd;
- }
-
- //???????
- function inputInt(objID) {
- var obj = document.getElementById(objID);
- obj.setAttribute("onkeyup", "this.value=this.value.replace(/[^\\d]/g,'')");
- obj.setAttribute("onbeforepaste", "clipboardData.setData('text',clipboardData.getData('text').replace(/[^\\d]/g,''))");
- }
-
- //??????????
- function inputDecimal(objID) {
- var obj = document.getElementById(objID);
- obj.setAttribute("onkeyup", "this.value=this.value.replace(/[^0-9.]/g,'')");
- obj.setAttribute("onbeforepaste", "clipboardData.setData('text',clipboardData.getData('text').replace(/[^0-9.]/g,''))");
- }
-
- //???????
- function isMobile(s) {
- var ex = /^0*(13|15)\d{9}$/;
- return ex.test(s);
- }
-
- //???QQ?
- function isQQ(s) {
- var ex = /^[1-9][0-9]{4,}$/;
- return ex.test(s);
- }
-
- //???????
- function isTel(s) {
- var ex = /^[0][1-9]{2,3}-[0-9]{5,8}$/;
- if (!ex.test(s)) {
- ex = /^[1-9]{1}[0-9]{5,8}$/;
- return ex.test(s);
- }
- else {
- return true;
- }
- }
-
- //?????
- function isEmail(s) {
- var ex = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
- return ex.test(s);
- }
-
- //?????
- function isPostCode(s) {
- var ex = /^[1-9][0-9]{5}$/;
- return ex.test(s);
- }
-
- //????????
- function isCnID(s) {
- var ex = /(^\d{15}$)|(^\d{17}([0-9]|X)$)/;
- return ex.test(s);
- }
-
- //?????????
- function getLocalTime(nS) {
- return new Date(parseInt(nS) * 1000).toLocaleString();
- }
-
- //???UNIX???
- function getUnixTime(datestr) {
- var new_str = datestr.replace(/:/g, "-");
- new_str = new_str.replace(/ /g, "-");
- var arr = new_str.split("-");
- var datum = new Date(Date.UTC(arr[0], arr[1] - 1, arr[2], arr[3] - 8, arr[4], arr[5]));
- return (datum.getTime() / 1000); //?PHP??
- }
-
- //?????
- function getPageCount(total, page_size) {
- total = parseInt(total);
- page_size = parseInt(page_size);
- if (total % page_size == 0) {
- return Math.floor(total / page_size);
- }
- else {
- return Math.floor((total / page_size) + 1);
- }
- }