/*
Javascript Common Tools Class
Email : [email protected]
Blog : http://www.cnblogs.com/DanielChow
*/
Javascript Common Tools Class
Email : [email protected]
Blog : http://www.cnblogs.com/DanielChow
*/
// 2010-2-20 update
var
Js
=
new
Object;
Js.IsDebug = true ;
Js.Domain = " 127.0.0.1 " ;
Js.NetUrl = " http://127.0.0.1 " ;
Js.Locale = " / " ;
Js.CopyRight = " (C) Your.COM " ;
Js.Event = new Object;
Js.Event.add = function (o, t, f) {
if (o.addEventListener) {
o.addEventListener(t, f, false );
} else if (o.attachEvent) {
o.attachEvent( " on " + t, f);
} else {
o[ " on " + t] = f;
}
};
Js.Event.remove = function (o, t, f) {
if (o.removeEventListener) {
o.removeEventListener(t, f, false );
} else if (o.detachEvent) {
o.detachEvent( " on " + t, f);
} else {
o[ " on " + t] = null ;
}
};
/* compatible in IE6+,ff3.0,chrome,oprea */
Js.floatElement = function (Id, Position) {
_bodyfrm = (document.compatMode.toLowerCase() == " css1compat " ) ? document.documentElement : document.body;
_adst = document.getElementById(Id).style;_adst.position = " absolute " ; _intWidth = _adst.width.replace( " px " , "" ); _intHeight = _adst.height.replace( " px " , "" );
_move(Position);window.onscroll = window.onresize = function () {_move(Position);};
function _move(Position) {
switch (Position) {
case " rightbottom " : _adst.left = (_bodyfrm.scrollLeft + _bodyfrm.clientWidth - _intWidth) + " px " ;_adst.top = (_bodyfrm.clientHeight + _bodyfrm.scrollTop - _intHeight) + " px " ; break ;
case " leftbottom " : _adst.left = " 0px " ;_adst.top = (_bodyfrm.clientHeight + _bodyfrm.scrollTop - _intHeight) + " px " ; break ;
case " righttop " : _adst.left = (_bodyfrm.scrollLeft + _bodyfrm.clientWidth - _intWidth) + " px " ;_adst.top = _bodyfrm.scrollTop + " px " ; break ;
case " lefttop " : _adst.left = " 0px " ; _adst.top = _bodyfrm.scrollTop + " px " ; break ;
};
};
};
Js.Guid = function () {
var guid = "" ;
for ( var i = 1 ; i <= 32 ; i ++ ) {
var n = Math.floor(Math.random() * 16.0 ).toString( 16 );
guid += n;
if ((i == 8 ) || (i == 12 ) || (i == 16 ) || (i == 20 ))
guid += " - " ;
}
return guid;
};
Js.SuggestStr = function (len, IsAC) {
// include additional characters
var AC = ' abcdefhijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWYXZ~!@$^*+-|/ ' ;
var noAC = ' abcdefhijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWYXZ ' ;
function returnStr(list, len) {
var re = '' ;
for (i = 0 ; i < len; i ++ ) {
re += list.charAt(Math.floor(Math.random() * list.length))
}
return re;
}
return IsAC ? returnStr(AC, len) : returnStr(noAC, len);
};
Js.Str2XML = function (str) {
if (window.ActiveXObject) {
xmlDoc = new ActiveXObject( " Microsoft.XMLDOM " );
xmlDoc.async = " false " ;
xmlDoc.loadXML(str);
return xmlDoc;
} else {
parser = new DOMParser();
xmlDoc = parser.parseFromString(str, " text/xml " );
return xmlDoc;
}
};
Js.XML2Str = function (xmlObject) {
if (window.ActiveXObject) {
return xmlObject.xml;
} else {
return ( new XMLSerializer()).serializeToString(xmlObject);
}
};
Js.Str2Json = function (str) {
return eval( ' ( ' + str + ' ) ' );
}
Js.ErrorHandler = function (msg, url, l) {
// if (Js.IsDebug) {
// // for debug
// var txt = "";
// txt = "本页中存在错误。\n\n"
// txt += "错误:" + msg + "\n"
// txt += "URL: " + url + "\n"
// txt += "行:" + l + "\n\n"
// txt += "点击“确定”继续。\n\n"
// alert(txt);
// }
return false ;
// false , page response errors directly
// true , var script above to handle errors
// or you can save errors to server (to create logs file)
};
Js.Url = {
encode: function (string) {
return escape( this ._utf8_encode(string));
},
decode: function (string) {
return this ._utf8_decode(unescape(string));
},
request: function (string)
{
var url = location.href; var paraObj = {}; var paraString = url.substring(url.indexOf( " ? " ) + 1 , url.length).split( " & " );
for (i = 0 ; j = paraString[i]; i ++ ) { paraObj[j.substring( 0 , j.indexOf( " = " )).toLowerCase()] = j.substring(j.indexOf( " = " ) + 1 , j.length);}
var returnValue = paraObj[string.toLowerCase()];
if ( typeof (returnValue) == " undefined " ) { return "" ; } else { return returnValue; }
},
// private method
_utf8_encode: function (string) {
string = string.replace( / \r\n / g, " \n " );
var utftext = "" ;
for ( var n = 0 ; n < string.length; n ++ ) {
var c = string.charCodeAt(n);
if (c < 128 ) {
utftext += String.fromCharCode(c);
}
else if ((c > 127 ) && (c < 2048 )) {
utftext += String.fromCharCode((c >> 6 ) | 192 );
utftext += String.fromCharCode((c & 63 ) | 128 );
}
else {
utftext += String.fromCharCode((c >> 12 ) | 224 );
utftext += String.fromCharCode(((c >> 6 ) & 63 ) | 128 );
utftext += String.fromCharCode((c & 63 ) | 128 );
}
}
return utftext;
},
_utf8_decode: function (utftext) {
var string = "" ;
var i = 0 ;
var c = c1 = c2 = 0 ;
while (i < utftext.length) {
c = utftext.charCodeAt(i);
if (c < 128 ) {
string += String.fromCharCode(c);
i ++ ;
}
else if ((c > 191 ) && (c < 224 )) {
c2 = utftext.charCodeAt(i + 1 );
string += String.fromCharCode(((c & 31 ) << 6 ) | (c2 & 63 ));
i += 2 ;
}
else {
c2 = utftext.charCodeAt(i + 1 );
c3 = utftext.charCodeAt(i + 2 );
string += String.fromCharCode(((c & 15 ) << 12 ) | ((c2 & 63 ) << 6 ) | (c3 & 63 ));
i += 3 ;
}
}
return string;
}
}
Js.IsDebug = true ;
Js.Domain = " 127.0.0.1 " ;
Js.NetUrl = " http://127.0.0.1 " ;
Js.Locale = " / " ;
Js.CopyRight = " (C) Your.COM " ;
Js.Event = new Object;
Js.Event.add = function (o, t, f) {
if (o.addEventListener) {
o.addEventListener(t, f, false );
} else if (o.attachEvent) {
o.attachEvent( " on " + t, f);
} else {
o[ " on " + t] = f;
}
};
Js.Event.remove = function (o, t, f) {
if (o.removeEventListener) {
o.removeEventListener(t, f, false );
} else if (o.detachEvent) {
o.detachEvent( " on " + t, f);
} else {
o[ " on " + t] = null ;
}
};
/* compatible in IE6+,ff3.0,chrome,oprea */
Js.floatElement = function (Id, Position) {
_bodyfrm = (document.compatMode.toLowerCase() == " css1compat " ) ? document.documentElement : document.body;
_adst = document.getElementById(Id).style;_adst.position = " absolute " ; _intWidth = _adst.width.replace( " px " , "" ); _intHeight = _adst.height.replace( " px " , "" );
_move(Position);window.onscroll = window.onresize = function () {_move(Position);};
function _move(Position) {
switch (Position) {
case " rightbottom " : _adst.left = (_bodyfrm.scrollLeft + _bodyfrm.clientWidth - _intWidth) + " px " ;_adst.top = (_bodyfrm.clientHeight + _bodyfrm.scrollTop - _intHeight) + " px " ; break ;
case " leftbottom " : _adst.left = " 0px " ;_adst.top = (_bodyfrm.clientHeight + _bodyfrm.scrollTop - _intHeight) + " px " ; break ;
case " righttop " : _adst.left = (_bodyfrm.scrollLeft + _bodyfrm.clientWidth - _intWidth) + " px " ;_adst.top = _bodyfrm.scrollTop + " px " ; break ;
case " lefttop " : _adst.left = " 0px " ; _adst.top = _bodyfrm.scrollTop + " px " ; break ;
};
};
};
Js.Guid = function () {
var guid = "" ;
for ( var i = 1 ; i <= 32 ; i ++ ) {
var n = Math.floor(Math.random() * 16.0 ).toString( 16 );
guid += n;
if ((i == 8 ) || (i == 12 ) || (i == 16 ) || (i == 20 ))
guid += " - " ;
}
return guid;
};
Js.SuggestStr = function (len, IsAC) {
// include additional characters
var AC = ' abcdefhijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWYXZ~!@$^*+-|/ ' ;
var noAC = ' abcdefhijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWYXZ ' ;
function returnStr(list, len) {
var re = '' ;
for (i = 0 ; i < len; i ++ ) {
re += list.charAt(Math.floor(Math.random() * list.length))
}
return re;
}
return IsAC ? returnStr(AC, len) : returnStr(noAC, len);
};
Js.Str2XML = function (str) {
if (window.ActiveXObject) {
xmlDoc = new ActiveXObject( " Microsoft.XMLDOM " );
xmlDoc.async = " false " ;
xmlDoc.loadXML(str);
return xmlDoc;
} else {
parser = new DOMParser();
xmlDoc = parser.parseFromString(str, " text/xml " );
return xmlDoc;
}
};
Js.XML2Str = function (xmlObject) {
if (window.ActiveXObject) {
return xmlObject.xml;
} else {
return ( new XMLSerializer()).serializeToString(xmlObject);
}
};
Js.Str2Json = function (str) {
return eval( ' ( ' + str + ' ) ' );
}
Js.ErrorHandler = function (msg, url, l) {
// if (Js.IsDebug) {
// // for debug
// var txt = "";
// txt = "本页中存在错误。\n\n"
// txt += "错误:" + msg + "\n"
// txt += "URL: " + url + "\n"
// txt += "行:" + l + "\n\n"
// txt += "点击“确定”继续。\n\n"
// alert(txt);
// }
return false ;
// false , page response errors directly
// true , var script above to handle errors
// or you can save errors to server (to create logs file)
};
Js.Url = {
encode: function (string) {
return escape( this ._utf8_encode(string));
},
decode: function (string) {
return this ._utf8_decode(unescape(string));
},
request: function (string)
{
var url = location.href; var paraObj = {}; var paraString = url.substring(url.indexOf( " ? " ) + 1 , url.length).split( " & " );
for (i = 0 ; j = paraString[i]; i ++ ) { paraObj[j.substring( 0 , j.indexOf( " = " )).toLowerCase()] = j.substring(j.indexOf( " = " ) + 1 , j.length);}
var returnValue = paraObj[string.toLowerCase()];
if ( typeof (returnValue) == " undefined " ) { return "" ; } else { return returnValue; }
},
// private method
_utf8_encode: function (string) {
string = string.replace( / \r\n / g, " \n " );
var utftext = "" ;
for ( var n = 0 ; n < string.length; n ++ ) {
var c = string.charCodeAt(n);
if (c < 128 ) {
utftext += String.fromCharCode(c);
}
else if ((c > 127 ) && (c < 2048 )) {
utftext += String.fromCharCode((c >> 6 ) | 192 );
utftext += String.fromCharCode((c & 63 ) | 128 );
}
else {
utftext += String.fromCharCode((c >> 12 ) | 224 );
utftext += String.fromCharCode(((c >> 6 ) & 63 ) | 128 );
utftext += String.fromCharCode((c & 63 ) | 128 );
}
}
return utftext;
},
_utf8_decode: function (utftext) {
var string = "" ;
var i = 0 ;
var c = c1 = c2 = 0 ;
while (i < utftext.length) {
c = utftext.charCodeAt(i);
if (c < 128 ) {
string += String.fromCharCode(c);
i ++ ;
}
else if ((c > 191 ) && (c < 224 )) {
c2 = utftext.charCodeAt(i + 1 );
string += String.fromCharCode(((c & 31 ) << 6 ) | (c2 & 63 ));
i += 2 ;
}
else {
c2 = utftext.charCodeAt(i + 1 );
c3 = utftext.charCodeAt(i + 2 );
string += String.fromCharCode(((c & 15 ) << 12 ) | ((c2 & 63 ) << 6 ) | (c3 & 63 ));
i += 3 ;
}
}
return string;
}
}