function findPosX(obj) {
	var curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	} else if (obj.x) curleft += obj.x;
	return curleft;
}

function findPosY(obj) {
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	} else if (obj.y) curtop += obj.y;
	return curtop;
}

function isEmail(str) {
	return checkData(str, /^[\w_-]+([\.\\w_-]*[\w_-]+)?@[\w-]+\.[a-zA-Z]+(\.[a-zA-Z]+)?$/);
}

function trim(str) {
	return str.replace(/(^\s*)|(\s*$)/g, "");
}

function isInt(str) {
	return checkData(str, /^-?[0-9]+$/);
}

function checkData(str, pattern) {
	if (pattern.test(str)) {
		return true;
	} else {
		return false;
	}
}

function Div(exp1, exp2)
{
	var n1 = Math.round(exp1); // 四舍五入
	var n2 = Math.round(exp2); // 四舍五入

	var rslt = n1 / n2; // 除

	if (rslt >= 0)
	{
		rslt = Math.floor(rslt); // 返回值为小于等于其数值参数的最大整数值。
	}
	else
	{
		rslt = Math.ceil(rslt); // 返回值为大于等于其数字参数的最小整数。
	}

	return rslt;
}

function sleep(numberMillis) {
	var now = new Date();
	var exitTime = now.getTime() + numberMillis;

	while (true) {
		now = new Date();
		if (now.getTime() > exitTime)
			return;
	}
}

function removeElementById(id) {
	var obj = document.getElementById(id);
	if (null==obj) return;
	obj.parentNode.removeChild(obj);
}

function escapeHTML(palinText) {
// var div = document.createElement('div');
// var text = document.createTextNode(palinText);
// div.appendChild(text);
// return div.innerHTML;
	return palinText.replace(/</gi , "&lt;").replace(/>/gi , "&gt;").replace(/\"/gi , "&#34;").replace(/\'/gi , "&#39;");
}

function unescapeHTML(htmlText) {
	return htmlText.replace(/&lt;/gi , "<").replace(/&gt;/gi , ">").replace(/&#39;/gi, "\'").replace(/&#34;/gi, "\"").replace(/&amp;/gi, "&").replace(/&#37;/gi, "%").replace(/＄/gi, "$");
}

/**
 * function unescapeHTML(htmlText) { var div = document.createElement('div');
 * div.innerHTML = stripTags(htmlText); return div.childNodes[0].nodeValue; }
 */

function isPunct(src) {
	var regex = /!|"|#|\$|%|&|'|\(|\)|\*|\+|,|-|\.|\/|:|;|<|=|>|\?|@|\[|\|]|\^|_|`|\{|\||}|~/;
	return regex.test(src);
}

function copyToClipboard(txt) {
	if(window.clipboardData) {
		window.clipboardData.clearData();
		window.clipboardData.setData("Text", txt);
		alert("复制好了，按 CTRL + V 粘贴到BBS、博客里去吧！");
	} else if(navigator.userAgent.indexOf("Opera") != -1) {
		window.location = txt;
		alert("复制好了，按 CTRL + V 粘贴到BBS、博客里去吧！");
	} 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("复制好了，按 CTRL + V 粘贴到BBS、博客里去吧！");
	}
}

function copy_clip(text2copy)
{
	if (window.clipboardData)
	{
		window.clipboardData.setData("Text",text2copy);
	}
	else
	{
		var flashcopier = 'flashcopier';
		if(!document.getElementById(flashcopier))
		{
			var divholder = document.createElement('div');
			divholder.id = flashcopier;
			document.body.appendChild(divholder);
		}
		document.getElementById(flashcopier).innerHTML = '';
		var divinfo = '<embed src="/hot-docs/_clipboard.swf" FlashVars="clipboard='+escape(text2copy)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';// 这里是关键
		document.getElementById(flashcopier).innerHTML = divinfo;
	}
	return true;
}

function setInputFocus(elemID) {
  var elem = document.getElementById(elemID);
  elem.focus();
  // elem.select();/*IE does not set the focus on a newly visible form*/
  // In IE7 this was causing the file dialog to open upon 2 clicks.
}

function $() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];

		if (typeof element == 'string')
			element = document.getElementById(element);

		if (arguments.length == 1)
			return element;

		elements.push(element);
	}

	return elements;
}
