//选中所有同名单选框
function checkAllBox(name) {
	var el = document.getElementsByTagName('input');
	var len = el.length;
	for ( var i = 0; i < len; i++) {
		if ((el[i].type == "checkbox") && (el[i].name == name)) {
			el[i].checked = true;
		}
	}
}
// 选中所有同名单选框
function reCheckAllBox(name) {
	var el = document.getElementsByTagName('input');
	var len = el.length;
	for ( var i = 0; i < len; i++) {
		if ((el[i].type == "checkbox") && (el[i].name == name)) {
			el[i].checked = false;
		}
	}
}
// 得到所有被选中的同名单选框列表,用","分开
function getCheckedBox(name) {
	var el = document.getElementsByTagName('input');
	var len = el.length;
	var checkedIdStr = new Array();
	for ( var i = 0; i < len; i++) {
		if ((el[i].type == "checkbox")
				&& (el[i].name == name && el[i].checked == true)) {
			checkedIdStr.push(el[i].value);
		}
	}
	return checkedIdStr.join(',');
}
// 校验是否全由数字组成
function isDigit(s) {
	var patrn = /^[0-9]{1,20}$/;
	if (!patrn.exec(s)) {
		return false
	} else {
		return true
	}
}
function setHomePageUtil(url) {
	if (document.all) {
		document.body.style.behavior = "url(#default#homepage)";
		document.body.setHomePage(url);
	} else {
		showMessageBox("浏览器不支持，请手动设置为首页");
	}
	return false;
}

function getCookie(namex) {
	var cookies = document.cookie;
	var cookieHeader = namex + "=";
	var beginPosition = cookies.indexOf(cookieHeader);
	if (beginPosition != -1) {
		var acookie = cookies.substring(beginPosition + cookieHeader.length);
		if (acookie.indexOf(";") > -1) {
			acookie = acookie.substring(0, acookie.indexOf(";"));
		}
		return acookie;
	}
	return "";
}

function deleteCookie(name) { // 删除名称为name的Cookie
	var exp = new Date();
	exp.setTime(exp.getTime());
	// var cval = getCookie (name);
	document.cookie = name + "=;domain=163.com;path=/;expires="
			+ exp.toGMTString();
}

function deletePaipaiCookie(name) { // 删除名称为name的Cookie
	var exp = new Date();
	exp.setTime(exp.getTime());
	// var cval = getCookie (name);
	document.cookie = name + "=;domain=pp.blog.163.com;path=/;expires="
			+ exp.toGMTString();
}

/**
 * 设置Cookie
 */
function setCookie(name, value) {
	var value = name + "=" + value + "; domain=163.com; path=/";
	document.cookie = value;
}

function setPaipaiCookie(name, value) {
	var value = name + "=" + value + "; domain=pp.blog.163.com; path=/";
	document.cookie = value;
}

/**
 * 设置有期限为一年的cookie
 */
function setPermanentCookie(name, value) {
	var d = new Date();
	d.setYear(d.getYear() + 1);
	var value = name + "=" + value + "; domain=163.com; path=/;expires="
			+ d.toGMTString();
	document.cookie = value;
}

function clearPaiPaiCookie() {
	deleteCookie('NETEASE_AUTH_USERNAME');
	deleteCookie('NTES_SESS');
	deleteCookie('S_INFO');
	deleteCookie('NTES_126SS');
	deleteCookie('NTES_188SS');
	deleteCookie('NTES_PPSS');
	deleteCookie('pp_username');
	deleteCookie('pp_nickname');
	deleteCookie('pp_username_suffix');
	deleteCookie('paipai_user_id');
	deleteCookie('pp_zone_title');
	deleteCookie('pp_user_comment');
	deleteCookie('pp_user_picture');
	// delete cookie under domain pp.blog.163.com
	deletePaipaiCookie('pp_username');
	deletePaipaiCookie('pp_nickname');
	deletePaipaiCookie('pp_username_suffix');
	deletePaipaiCookie('paipai_user_id');
	deletePaipaiCookie('pp_zone_title');
	deletePaipaiCookie('pp_user_comment');
	deletePaipaiCookie('pp_user_picture');
}
// 电话号码验证
// (1)电话号码由数字、"("、")"和"-"构成
// (2)电话号码为3到8位
// (3)如果电话号码中包含有区号，那么区号为三位或四位
// (4)区号用"("、")"或"-"和其他部分隔开
// (5)移动电话号码为11或12位，如果为12位,那么第一位为0
// (6)11位移动电话号码的第一位和第二位为"13",或者第一、二、三位为"159"
// (7)12位移动电话号码的第二位和第三位为"13",或者第二、三、四位为"159"
function checkPhone(s) {
	var str = s;
	var reg = /(^[0-9]{3,4}-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^([0-9]{3,4})[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)|(^0{0,1}159[0-9]{8}$)/
	return (reg.test(str));
}

// Email验证
function isEmail(mail) {
	return (new RegExp(
			/([A-Za-z0-9]+|_)@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$/)
			.test(mail));
}

// 检查是否为中文
function isChn(str) {
	var reg = /^[u4E00-u9FA5]+$/;
	if (!reg.test(str)) {
		return false;
	}
	return true;
}

// 显示一个提示框，目前用alert代替，将来换成一个带关闭按钮的层
function showMessageBox(message) {
	alert(message);
}

function showDIV(id) {
	$(id).style.display = "block";
}
function hideDIV(id) {
	$(id).style.display = "none";
}
// 产生遮罩
function createBodyFilter(lodingStr) {
	alert(document.viewport.getHeight());
	alert(document.viewport.getWidth());
	alert(document.viewport.getScrollOffsets());
	alert(document.viewport.getDimensions());
	alert(document.documentElement.clientHeight);
	alert(document.documentElement.clientWidth);
	var h = document.documentElement.clientHeight;
	var w = document.documentElement.clientWidth;
	var div = document
			.createElement("<div id ='bodyFilter' style='position:absolute;visibility:visible;background:#000;filter:alpha(opacity=90);z-index:2;left:0;top:0;width:"
					+ w + "px;height:" + h + "px;'></div>");
	div.innerHTML = "<div style='text-align:center;position:absolute;width:"
			+ w + ";top:" + h / 6 + "'><div id='bodyFilterInfo'>" + lodingStr
			+ "</div></div>";
	if ($('bodyFilter') == null) {
		document.body.appendChild(div);
	} else {
		$('bodyFilter').style.visibility = "visible";
	}
}
// 删除遮罩
function removeBodyFilter() {
	$('bodyFilter').style.visibility = "hidden";
}
// 加密代码
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
// base64加密
function encode64(input) {
	input = encodeURIComponent(input);
	var output = "";
	var chr1, chr2, chr3;
	var enc1, enc2, enc3, enc4;
	var i = 0;

	do {
		chr1 = input.charCodeAt(i++);
		chr2 = input.charCodeAt(i++);
		chr3 = input.charCodeAt(i++);

		enc1 = chr1 >> 2;
		enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
		enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
		enc4 = chr3 & 63;

		if (isNaN(chr2)) {
			enc3 = enc4 = 64;
		} else if (isNaN(chr3)) {
			enc4 = 64;
		}

		output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2)
				+ keyStr.charAt(enc3) + keyStr.charAt(enc4);
	} while (i < input.length);

	return output;
}
// base64解密
function decode64(input) {
	var output = "";
	var chr1, chr2, chr3;
	var enc1, enc2, enc3, enc4;
	var i = 0;

	// remove all characters that are not A-Z, a-z, 0-9, +, /, or =
	input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

	do {
		enc1 = keyStr.indexOf(input.charAt(i++));
		enc2 = keyStr.indexOf(input.charAt(i++));
		enc3 = keyStr.indexOf(input.charAt(i++));
		enc4 = keyStr.indexOf(input.charAt(i++));

		chr1 = (enc1 << 2) | (enc2 >> 4);
		chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
		chr3 = ((enc3 & 3) << 6) | enc4;

		output = output + String.fromCharCode(chr1);

		if (enc3 != 64) {
			output = output + String.fromCharCode(chr2);
		}
		if (enc4 != 64) {
			output = output + String.fromCharCode(chr3);
		}
	} while (i < input.length);

	return encodeURIComponent(output);
}

// 检查是否已经在博客登陆（拥有博客的cookie）
function isBlogLogined() {
	var logined = getCookie("NETEASE_AUTH_USERNAME") != '' || getCookie("S_INFO") != ''
			|| getCookie("NTES_SESS") != '' || getCookie("NTES_126SS") != ''
			|| getCookie("NTES_188SS") != '' || getCookie("NTES_PPSS") != '';
	// alert('在博客登录状态：'+logined);
	// alert(getCookie("NETEASE_AUTH_USERNAME")+getCookie("NTES_SESS")+getCookie("NTES_126SS")+getCookie("NTES_188SS")+getCookie("NTES_PPSS"));
	return logined;
}

/**
 * 增加到cookie的队列中，队列有最大长度，以逗号隔开;已经存在的不重复加入 cookieKey cookie的键 v 值 size 最大长度
 */
function addToCookieQueue(cookieKey, v, size) {
	var cookie = unescape(getCookie(cookieKey));
	if (cookie == '') {
		cookie = v;
	} else {
		var cookieArray = cookie.split(',');
		// 检查是否已经在集合里
		for ( var i = 0; i < cookieArray.length; i++) {
			if (cookieArray[i] == v) {
				return;
			}
		}
		if (cookieArray.length >= size) {
			cookieArray.shift();
			cookieArray[size - 1] = v;
		} else {
			cookieArray[cookieArray.length] = v;
		}
		cookie = cookieArray.length > 1 ? cookieArray.join(",")
				: cookieArray[0];
	}
	setPermanentCookie(cookieKey, escape(cookie));
}

/**
 * 获取cookie队列的数组，如果cookie不存在，返回空数组 cookieKey - cookie的键
 */
function getCookieQueue(cookieKey) {
	var cookie = unescape(getCookie(cookieKey));
	if (cookie == '') {
		return new Array();
	} else {
		return cookie.split(',');
	}
}

function escapeHtml(s) {
	var str = s;
	str = str.replace(/&/g, "&amp;");
	str = str.replace(/"/g, "&quot;");
	str = str.replace(/</g, "&lt;");
	str = str.replace(/>/g, "&gt;");
	str = str.replace(/'/g, "&apos;");
	return str;
}