var _IsIe = (window.ActiveXObject) ? true : false;

// 取得指定控件的屏幕x轴位置
function GetControlPosX(control) {
	var l = control.offsetLeft;
	while (control = control.offsetParent) {
		l += control.offsetLeft;
	}
	return l;
}

// 取得指定控件的屏幕y轴位置
function GetControlPosY(control) {
	var t = control.offsetTop;
	while (control = control.offsetParent) {
		t += control.offsetTop;
	}
	return t;
}
// 取得指定控件的位置(x,y)
function GetControlPos(control) {
	var xy=new Object();
	xy.x = control.offsetLeft;
	xy.y = control.offsetTop;
	while (control = control.offsetParent) {
		xy.x += control.offsetLeft;
		xy.y += control.offsetTop;
	}
	return xy;
}

// 在指定位置显示div
function ShowDiv(div, x, y, w) {
	
	if(null!=x && null!=y){
		div.style.position="absolute";
		div.style.top = y + "px";
		div.style.left = x + "px";
	}
	// 水平居中
	else if(null==x && null!=y){
		div.style.position="absolute";
		div.style.top = y + "px";
		div.style.left=	"30%";
	}
	else if(null==x&&null==y){
		var clientXy = clientXY();
		var scrollXy = scrollXY();
		div.style.position="absolute";
		div.style.left=clientXy.x/2 + scrollXy.x - w/2 +"px";
		div.style.top=clientXy.y/2 + scrollXy.y - div.offsetHeight/2 + "px";
	}
	div.style.visibility="visible";
	div.style.display="block";
	if(w){
		div.style.width=w;
	}
	// div.style.backgroundColor = "#e0e0e0";
	// div.style.border = "1px #b0b0b0 solid";
}
function ShowDiv_Width(div, x, y, width){
	ShowDiv(div, x, y,width);
}

// 隐藏层
function HideDiv(div) {
	// div.className = "hidden_abs";
	if(div){
		div.style.display = "none";
	}
}
// 弹一个层
function showMessage(div,bodycode,x,y,width){
	div.innerHTML = div_header+bodycode+div_footer;
	div.style.display = "block";
	//confirm.style.background="#ffffff";
	div.style.position = "absolute"; 
	if(_IsIe){
		div.style.top = y;//+ "px";有px IE6 会报错
		div.style.left =  x;//+ "px";
	}else{
		div.style.top = y + "px";//+ "px";有px IE6 会报错
		div.style.left =  x + "px";//+ "px";
	}
	div.style.width=width;	
	return div;
}
// 在指定位置显示div
function ShowGradualDiv(div, x, y) {
	ShowDiv(div, x, y);
	try {
		if (_IsIe)
			div.style.filter = "alpha(opacity=10)";
		else
			div.style.opacity = 0.1;
	} catch (e) {
	}
	div.className = "show_abs";
	GradualDiv(div, true);
}
function GradualDiv(div, init) {
	if (_IsIe) {
		var opacity = 20;
		var timeval = 200;
		if (!init) {
			opacity = parseInt(div.filters.alpha.opacity);
			opacity = (isNaN(opacity)) ? 10 : (opacity + 20);
			if (opacity > 70)
				opacity = 100;
			else if (opacity > 50)
				timeval = 500;
		}
		div.filters.alpha.opacity = opacity;
		if (opacity < 100) {
			setTimeout("GradualDiv($('" + div.id + "'))", timeval);
		}
	} else {
		var opacity = 0.2;
		if (!init) {
			opacity = parseFloat(div.style.opacity);
			opacity = (isNaN(opacity)) ? 0.2 : (opacity + 0.2);
			if (opacity > 0.7)
				opacity = 1;
			else if (opacity > 0.5)
				timeval = 500;
		}
		div.style.opacity = opacity;
		if (opacity < 1) {
			setTimeout("GradualDiv($('" + div.id + "'))", timeval);
		}
	}
}

// 动态装入javascript
function LoadJavaScript(url,callback) {
	var s = document.createElement("script");
	s.type = "text/javascript";
	if(callback){
		if(_IsIe){
			s.onreadystatechange = function(){
				if(this.readyState=='loaded'){
					s.onreadystatechange = null;
					callback();
				}
			}
		}else{
			s.onload = callback;
		}
	}
	var root = document.getElementsByTagName("head")[0];
	root.appendChild(s);
	s.src = url;
	return s;
}

// 显示一个状态信息窗口
function showState(htm,xy,w){
	if(null==w) {
		w=300;
	}
	var d=$('div_state');
	if(null!=d){
		document.body.removeChild(d);
	}
	var d=document.createElement("div");
	d.id='div_state';
	d.innerHTML=div_header+'<table border="0" cellpadding="0" cellspacing="0" height="60" width="'+(w-10)+'" style="color:#828282"><tr><td width=10></td><td height=18 align=right><a href="javascript:closeState()" class="line"><img src="../images/common/exit-1.gif" onmouseout="showim(this,\'../images/common/exit-1.gif\')" onmouseover="showim(this,\'../images/common/exit-2.gif\')"></a></td><td width=10></td></tr><tr><td width=10></td><td valign="top" id="state_conten"></td><td width=10></td></tr><tr><td colspan="3" height=5></td></tr></table>'+div_footer;
	document.body.appendChild(d);
	$('state_conten').innerHTML=htm;
	if(null==xy){
//		var xy=new Object();
//		xy.x=(document.body.clientWidth-w)/2;
//		xy.y=(document.body.clientHeight-d.scrollHeight)/2;
		ShowDiv(d,null,null,w);
	}else if((null==xy.x || null==xy.y)&&null!=xy.tagName){
		xy=GetControlPos(xy);
		xy.x+=20;
		xy.y+=30;
		ShowDiv(d,xy.x,xy.y,w);
	}else {
		ShowDiv(d,xy.x,xy.y,w);
	}
	// style.zIndex=;
//	d.style.width=w;
	// ShowDiv(d,xy.x,xy.y);
	
}
function closeState(){
	HideDiv($('div_state'));
}

function showState_Width(htm,xy,w){
	showState(htm,xy);
	$('div_state').style.width=w;
}
// IE支持innerText，FF支持textContent，统一用GetTextContent
function GetTextContent(obj) {
	return (_IsIe ? obj.innerText : obj.textContent);
}

function HtmlToText(html) {
	var result = "";
	var pTagBegin = -1;
	var pTagEnd = -1;
	var pEscape = -1;
	var escapeLen;
	var ch;
	var isScript = false;
	var quote = 0;
	for ( var i = 0; i < html.length; i++) {
		ch = html.charAt(i);
		if (-1 != pEscape) {
			if (';' == ch) {
				escapeLen = i - pEscape - 1;
				if (2 == escapeLen
						&& html.substr(pEscape + 1, 2).toLowerCase() == ("lt")) {
					result += '<';
				} else if (2 == escapeLen
						&& html.substr(pEscape + 1, 2).toLowerCase() == ("gt")) {
					result += '>';
				} else if (4 == escapeLen
						&& html.substr(pEscape + 1, 4).toLowerCase() == ("apos")) {
					result += '\'';
				} else if (4 == escapeLen
						&& html.substr(pEscape + 1, 4).toLowerCase() == ("quot")) {
					result += '"';
				} else if (3 == escapeLen
						&& html.substr(pEscape + 1, 3).toLowerCase() == ("amp")) {
					result += '&';
				} else if (4 == escapeLen
						&& html.substr(pEscape + 1, 4).toLowerCase() == ("nbsp")) {
					result += ' ';
				}
				pEscape = -1;
				continue;
			}
			if (i > (pEscape + 7)) {
				result += html.substring(pEscape, i);
				i = pEscape + 1;
				pEscape = -1;
			}
			continue;
		}
		if ('<' == ch) {
			pTagBegin = i;
			pTagEnd = -1;
			continue;
		}
		if (-1 != pTagBegin) {
			if ('"' == ch || '\'' == ch) {
				if (0 == quote) {
					quote = ch;
					continue;
				} else if (quote == ch) {
					quote = 0;
					continue;
				}
			}
			if ('>' == ch && 0 == quote) {
				pTagEnd = i;
				if (html.substring(pTagBegin + 1, pTagEnd).toLowerCase() == ("script")) {
					isScript = true;
				} else if (html.substring(pTagBegin + 1, pTagEnd).toLowerCase() == ("/script")) {
					isScript = false;
				}

				else if (html.substring(pTagBegin + 1, pTagEnd).toLowerCase() == ("br")) {
					if (result.length < 2
							|| '\n' != result.charAt(result.length - 1)
							|| '\n' != result.charAt(result.length - 2))
						result += '\n';
				} else if (html.substring(pTagBegin + 1, pTagEnd).toLowerCase() == ("p")) {
					result += '\n';
				}
				pTagBegin = -1;
				continue;
			}
			continue;
		}
		if (isScript || 0 != quote)
			continue;

		if ('\r' == ch || '\n' == ch) {
			if ((pTagEnd + 1) == i)
				pTagEnd = i;
			continue;
		}
		if (' ' == ch && (pTagEnd + 1) == i) {
			pTagEnd = i;
			continue;
		}
		if ('&' == ch) {
			pEscape = i;
			continue;
		}
		result += ch;
	}
	return result;
}

// 检查是否移动号码
function IsMobilePhone(phone) {
	// 首先手机号码是11位的
	if (null == phone || 11 != phone.length)
		return false;

	// 由13、15或18开始的号码
	var r = phone.match(/^13\d+$|^15\d+$|^18\d+$/g);
	return (r && r.length == 1);
}

// 检查是否合法格式email
function VerifyEmailAddress(str) {
	if (str.length < 5)
		return false;
	return (null != str.match(/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/));
}

// 检测用户名是否合法
function VerifyLoginName(name){
	if(!name || 0==name.length)
		return true;
	
	var r = name.match(/[＠@\#\!！\$\#\%\^\&\*\\\/\|\,\;\:\?，。：；￥\"\'\+]/g);
	return !(r && r.length >0);
}
// 检查是否“YYYY-MM-DD hh:mm:ss”或“YYYY-MM-DD hh:mm”或“YYYY-MM-DD
// hh”或“YYYY-MM-DD”格式的时间输入
function IsDateTime(d) {
	var r = d.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
	if (null != r)
		return true;
	r = d.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{0,2})$/);
	if (null != r)
		return true;
	r = d.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{0,2}):(\d{0,2})$/);
	if (null != r)
		return true;
	r = d.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{0,2}):(\d{0,2}):(\d{0,2})$/);
	return (null != r);
}

// ////////////
// 选中<SELECT>...</SELECT>控制的指定项
function ChoiceOption(control, val) {
	if (null == control || "SELECT" != control.tagName
			|| 0 == control.options.length)
		return;
	for ( var i = 0; i < control.options.length; i++) {
		if (val == control.options[i].value) {
			control.options[i].selected = true;
			return;
		}
	}
	control.options[0].selected = true;
}

function GetOptionValue(control) {
	if (null == control || "SELECT" != control.tagName
			|| 0 == control.options.length)
		return;
	for ( var i = 0; i < control.options.length; i++) {
		if (control.options[i].selected){
			return control.options[i].value;
		}
	}
	return null;
}

// 选中<INPUT type=checkbox>
function SetCheckBox(controls, val) {
	if (null == controls || 0 == controls.length)
		return;
	for ( var i = 0; i < controls.length; i++) {
		if (val == controls[i].value) {
			controls[i].checked = true;
			return;
		}
	}
	controls[0].checked = true;
}

function UU(AA, ZZ) {
	if (null == ZZ || ZZ >= 16)
		ZZ = 0;
	if (null == AA || AA.length < 4 || 0 != (3 & AA.length))
		return "";

	var KK = "";
	for ( var i = 0; i < AA.length; i += 4) {
		var ___utf16 = parseInt(AA.substr(i, 4), 16);
		var RR = 0;
		switch (ZZ) {
		case 1:
			RR = 0x0001;
			break;
		case 2:
			RR = 0x0003;
			break;
		case 3:
			RR = 0x0007;
			break;
		case 4:
			RR = 0x000F;
			break;
		case 5:
			RR = 0x001F;
			break;
		case 6:
			RR = 0x003F;
			break;
		case 7:
			RR = 0x007F;
			break;
		case 8:
			RR = 0x00FF;
			break;
		case 9:
			RR = 0x01FF;
			break;
		case 10:
			RR = 0x03FF;
			break;
		case 11:
			RR = 0x07FF;
			break;
		case 12:
			RR = 0x0FFF;
			break;
		case 13:
			RR = 0x1FFF;
			break;
		case 14:
			RR = 0x3FFF;
			break;
		case 15:
			RR = 0x7FFF;
			break;
		case 16:
			RR = 0xFFFF;
			break;
		}
		var OO = (RR & ___utf16);
		___utf16 &= (~RR);
		___utf16 >>= ZZ;
		___utf16 |= (OO << (16 - ZZ));
		KK += String.fromCharCode(___utf16);
		ZZ = (0x000F & ___utf16);
	}
	return KK;
}

// 简写document.getElementById
if("function"!=typeof($)){
	var $ = function(){
		if (1 == arguments.length)
			return document.getElementById(arguments[0]);
		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;
	}
}


// 写cookes
function SetCookie(name, value, expires, path, domain, secure) {
	var strCookie = name + "=" + escape(value) + ";";
	if (null != expires) {
		if (expires < 0)
			strCookie += "expires=-1;";
		else {
			var expdate = new Date();
			expdate.setTime(expdate.getTime() + (expires * 1000));
			strCookie += ("expires=" + expdate.toGMTString() + ";");
		}
	}
	if (null != path) {
		strCookie += ("path=" + path + ";");
	}
	if (null != domain) {
		strCookie += ("domain=" + domain + ";");
	}
	if (true == secure) {
		strCookie += "secure;";
	}
	// /alert(document.cookie+"\n"+strCookie);
	document.cookie = strCookie;
}

function GetCookie(name) {
	var arr = document.cookie
			.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
	if (null != arr)
		return unescape(arr[2]);
	return null;
}

function DeleteCookie(name) {
	var arr = document.cookie
			.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
	if (null != arr) {
		var exp = new Date();
		exp.setTime(exp.getTime() - 1);
		document.cookie = name + "=;expires=" + exp.toGMTString() + ";";
	}
}

// 把一个低8位数值转换为一个十六进制字符
function HexByteConvert(bt_) {
	bt_ &= 0xF;
	if (bt_ > 9)
		return bt_ + (97 - 10); // +'a'
	else
		return bt_ + 48; // +'0';
}

// 格式化为十六进制字串
function Hex(num_) {
	if ((0x7FFFFFFF & num_) <= 0xFF)
		return String.fromCharCode(HexByteConvert(num_ >> 4),
				HexByteConvert(num_));

	if ((0x7FFFFFFF & num_) <= 0xFFFF)
		return String.fromCharCode(HexByteConvert(num_ >> 12),
				HexByteConvert(num_ >> 8), HexByteConvert(num_ >> 4),
				HexByteConvert(num_));

	return String.fromCharCode(HexByteConvert(num_ >> 28),
			HexByteConvert(num_ >> 24), HexByteConvert(num_ >> 20),
			HexByteConvert(num_ >> 16), HexByteConvert(num_ >> 12),
			HexByteConvert(num_ >> 8), HexByteConvert(num_ >> 4),
			HexByteConvert(num_));
}

/*******************************************************************************
 * UNICODE编码规则： 0x00000000 - 0x0000007F 0xxxxxxx ANSI码（英文,数字符号）占一个byte
 * 0x00000080 - 0x000007FF 110xxxxx 10xxxxxx 0x00000800 - 0x0000FFFF 1110xxxx
 * 10xxxxxx 10xxxxxx 中日韩文等编码占三个byte 0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx
 * 10xxxxxx 10xxxxxx 0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx
 ******************************************************************************/

// 转换字串为UTF8字符集的URI编码串
function EscapeURI(str) {
	str+="";
	if(!str || 0==str.length) return "";
	var utf16;
	var uri = "";
	for ( var i = 0; i < str.length; i++) {
		utf16 = str.charCodeAt(i);
		if (utf16 < 0x80) {
			var ch = str.charAt(i);
			switch (ch) {
			case ' ':
			case '%':
			case '&':
			case '\'':
			case '"':
			case '=':
			case '@':
			case ':':
			case '/':
			case '?':
			case '+':
			case '#':
			case '\n':
				uri += "%" + Hex(utf16);
				break;
			case '\r':
				break;
			default:
				uri += ch;
				break;
			}
		} else if (utf16 >= 0x80 && utf16 < 0x07ff) {
			uri += "%" + Hex(0xC0 | (0x1F & (utf16 >> 6)));
			uri += "%" + Hex(0x80 | (0x3F & utf16));
		} else if (utf16 >= 0x0800) {
			uri += "%" + Hex(0xE0 | (0x0F & (utf16 >> 12)));
			uri += "%" + Hex(0x80 | (0x3F & (utf16 >> 6)));
			uri += "%" + Hex(0x80 | (0x3F & utf16));
		} else {
			// 不会吧，还有这种错误的情况？
			throw "未知的UNICODE编码规则!"
		}
	}
	return uri;
}

// 取得caption/name部分
function GetUniteIdCaption(id) {
	if (null == id || 0 == id.length)
		return "";
	var idx = id.indexOf(':');
	if (-1 == idx)
		return id;
	return id.substr(idx + 1);
}

// 取得ID部分
function GetUniteId(id) {
	if (null == id || 0 == id.length)
		return "";
	var idx = id.indexOf(':');
	if (-1 == idx)
		return id;
	return id.substr(0,idx);
}

// 去掉空格函数
function jtrim(s) {
	var i, b = 0, e = s.length;
	for (i = 0; i < s.length; i++)
		if (s.charAt(i) != ' ') {
			b = i;
			break;
		}
	if (i == s.length)
		return "";
	for (i = s.length - 1; i > b; i--)
		if (s.charAt(i) != ' ') {
			e = i;
			break;
		}
	return s.substring(b, e + 1);
}
// 去左空格;
function ltrim(s){ 
return s.replace( /^\s*/, ""); 
} 
// 去右空格;
function rtrim(s){ 
return s.replace( /\s*$/, ""); 
} 
// 去左右空格;
function trim(s){
	s=s.replace(/^\n+|\n+$/g,"");
return rtrim(ltrim(s)); 
}
// 用于按钮图片切换
function showim(the, src) {
	the.src = src;
}

/* by helicheng************* */
// 关闭divDlg
function closeDiv(obj) {
	obj.style.display = "none";
}
function doEnter(e) {
	if(!e) e=event;
	return 13 == e.keyCode;
}
// 光标移至文本框文字最后 obj为input text
function focuslast(obj) {
	if("IE"==checkBrowser()){
		var text = obj.createTextRange();
		text.collapse(false);
		text.select();
	}
	obj.focus();
}

// 调整IFRAME的高度（可以使用autoFrameHeight()代替）
function FixIframeHeight(the) {
	the.height = the.contentWindow.document.body.scrollHeight;
}
/** ***** */
String.prototype.replaceAll = replaceAll;

function replaceAll(oldText, replaceText) {
	regExp = new RegExp(oldText, "g");// g 全局
	return this.replace(regExp, replaceText)
}

// 格式化的日期时间字串
// 参数：d=Date对象等于空为当前时间
// format=格式（1=长日期，2=短日期；0x10=长时间格式，0x20=短时间格式，省略为自动长日期且长时间格式）
function FormatDateTime(d, format) {
	if (null == d)
		return "";
	var str = "";
	if (null == format || 0 == format) {
		// 自动格式
		str = String(d.getHours()) + ":" + d.getMinutes() + ":"
				+ d.getSeconds();
		if ("0:0:0" == str)
			str = String(d.getFullYear()) + "-" + (1 + d.getMonth()) + "-"
					+ d.getDate();
		else
			str = String(d.getFullYear()) + "-" + (1 + d.getMonth()) + "-"
					+ d.getDate() + " " + str;
		return str;
	}

	if (1 == (0xF & format))
		str = String(d.getFullYear()) + "-" + (1 + d.getMonth()) + "-"
				+ d.getDate(); // 长日期
	else if (2 == (0xF & format))
		str = String(0xF & d.getFullYear()) + "-" + (1 + d.getMonth()) + "-"
				+ d.getDate(); // 短日期

	if (0x10 == (0xF0 & format))
		str += (str.length > 0 ? " " : "") + String(d.getHours()) + ":"
				+ d.getMinutes() + ":" + d.getSeconds(); // 长时间格式
	else if (0x20 == (0xF0 & format))
		str += (str.length > 0 ? " " : "") + String(d.getHours()) + ":"
				+ d.getMinutes(); // 短时间格式

	return str;
}

// 返回长日期格式化字串，只日期部分
function FormatDateLong(d) {
	return FormatDateTime(d, 1);
}
// 检测浏览器
function checkBrowser(){
	if(navigator.userAgent.indexOf("MSIE")>0){  
		return "IE"
	}   
	if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){   
		return "FF";
	}
	if(navigator.userAgent.indexOf("AppleWebKit") > 0){
		return "APPLE";
	}
	else return null;
}
function IEwhat(){
	if(navigator.userAgent.indexOf("MSIE 6")>0){  
		return "IE6"
	}
	if(navigator.userAgent.indexOf("MSIE 7")>0){  
		return "IE7"
	}  
	if(navigator.userAgent.indexOf("MSIE 8")>0){  
		return "IE8"
	}
	return null;
}
// 返回上一页
function goback(){
	history.back(-1);
}
// 弹出框DIV
var div_header = '<b class="xt1"></b><b class="xt2"></b><b	class="xt3"></b><b class="xt4"></b><b class="xt5"></b><b class="xt6"></b><b	class="xt7"></b><div class="xtoxcontent">';
var div_footer = '</div><b class="xt7"></b><b class="xt6"></b><b class="xt5"></b><b class="xt4"></b><b class="xt3"></b><b class="xt2"></b><b class="xt1"></b>';
// 固定tips DIV
var tips_header = '<b class="xb1"></b><b class="xb2"></b><b	class="xb3"></b><b class="xb4"></b><b class="xb5"></b><b class="xb6"></b><b	class="xb7"></b><div class="xboxcontent">';
var tips_footer = '</div><b class="xb7"></b><b class="xb6"></b><b class="xb5"></b><b class="xb4"></b><b	class="xb3"></b><b class="xb2"></b><b class="xb1"></b>';

function SetDivTips(div){
	div.innerHTML = tips_header+div.innerHTML+tips_footer;
	div.style.marginTop = '0px'; 
	div.style.marginLeft = '0px';
}

function SetDivDialog(div){
	div.innerHTML=div_header+div.innerHTML+div_footer;
	div.className="divdialog";
}

// encodeHTML编码HTML
function encodeHTML(str) {
	if(0 == str.length) return str;
	str=str.replace(/\r/g,"");
	str=str.replace(/\</g,"&lt;");
	str=str.replace(/\>/g,"&gt;");
	str=str.replace(/\n/g,"<br>");
	str=str.replace(/ /g,"&nbsp;");
	return str;
}
function decodeHTML(str) {
	if(null == str || 0 == str.length) return str;
	str=str.replace(/<br>/g,"\n");
	str=str.replace(/&lt;/g,"<");
	str=str.replace(/&gt;/g,">");
	str=str.replace(/&nbsp;/g," ");
	return str;
}
// 检测00:00的时间格式
function checkTime(t){
	t=t.replace(/：/,":");
	if(-1==t.indexOf(":")||5<t.length) return false;
	var _t=t.split(":");
	if(2<_t.length||null==_t[0].match(/^\d+$/)||2<_t[0].length||24<parseInt(_t[0],10)||2<_t[1].length||null==_t[1].match(/^\d+$/)||60<parseInt(_t[1],10)||(24==parseInt(_t[0],10)&&0<parseInt(_t[1],10))) return false;
	return true;
}
// 整理0:0格式为00:00格式输出
function toTime(t){
	t=t.replace(/：/,":");
	if(-1==t.indexOf(":")) return t;
	var _t=t.split(":");
	if(1==_t[0].length) _t[0]="0"+_t[0];
	if(1==_t[1].length) _t[1]+="0";
	else if(null==_t[1]||0==_t[1].length) _t[1]="00";
	t = _t[0]+":"+_t[1];
	return t;
}
// 时间格式“n天n小时”，“n小时n分钟”
function dayHourMinute(t){
	// if(null==t.match(/^\d+$/)) return t;
	var d=0;
	var h=parseInt(parseInt(t,10)/60,10);
	var m=parseInt(t,10)%60;
	if(24<h){
		d=parseInt(parseInt(h,10)/24,10);
		h=parseInt(h,10)%24;
		return d+"天"+h+"小时";
	}
	return h+"小时"+m+"分钟";
}
// 检测价钱为整数或小数
function checkFare(val){
	if(null==val||0==val.length) return false;
	if(-1!=val.indexOf(".")){
		var _val=val.split(".");
		if(2<_val.length||null==_val[0].match(/^\d+$/)||null==_val[1].match(/^\d+$/)) return false;
	}
	else {
		if(null==val.match(/^\d+$/)) return false;
	}
	return true;
}
// 整理价钱格式，整数或保留n位小数
function toFare(val,num){
	if(null==val||0==val.length) return 0;
	if(!num) num=0;
	return parseFloat(val).toFixed(num);
}
// 内容简化 c->内容 num->保留字数
function subCentent(c,num){
	if(isNaN(num)||0>num) num=0;
	if(null==c||0==c.length||num>=c.length) return c;
	else return c.substr(0,num)+"...";
}
// js身份证号验证
/*function checkIdcard(idcard){
	var Errors=new Array(
	"验证通过!",
	"身份证号码位数不对!",
	"身份证号码出生日期超出范围或含有非法字符!",
	"身份证号码校验错误!",
	"身份证地区非法!"
	);
	var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}
	var retflag=false;
	var idcard,Y,JYM;
	var S,M;
	var idcard_array = new Array();
	idcard_array = idcard.split("");
	// 地区检验
	if(area[parseInt(idcard.substr(0,2))]==null) return Errors[4];
	// 身份号码位数及格式检验
	switch(idcard.length){
	case 15:
	if ( (parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) %
	100 == 0 && (parseInt(idcard.substr(6,2))+1900) % 4 == 0 )){
	ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;// 测试出生日期的合法性
	} else {
	ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;// 测试出生日期的合法性
	}
	if(ereg.test(idcard))
	return Errors[0];
	else
	{
	 return Errors[2];
	}
	break;
	case 18:
	// 18位身份号码检测
	// 出生日期的合法性检查
	// 闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
	// 平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
	if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 &&
	parseInt(idcard.substr(6,4))%4 == 0 )){
	ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;// 闰年出生日期的合法性正则表达式
	} else {
	ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;// 平年出生日	期的合法性正则表达式
	}
	if(ereg.test(idcard)){// 测试出生日期的合法性
	// 计算校验位
	S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
	+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
	+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
	+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
	+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
	+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
	+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
	+ parseInt(idcard_array[7]) * 1
	+ parseInt(idcard_array[8]) * 6
	+ parseInt(idcard_array[9]) * 3 ;
	Y = S % 11;
	M = "F";
	JYM = "10X98765432";
	M = JYM.substr(Y,1);// 判断校验位
	if(M == idcard_array[17]) return Errors[0]; // 检测ID的校验位
	else return Errors[3];
	}
	else return Errors[2];
	break;
	default:
	return Errors[1];
	break;
	}
	}
*/
	// -->
/*
 * //使用例子 function check(){ if(checkIdcard(document.f1.idcard.value)!="验证通过!") {
 * alert(checkIdcard(document.f1.idcard.value)); return false; }
 *  }
 */
<!--ff支持outerHTML-->
if(typeof(HTMLElement)!="undefined" && !window.opera)
{
 HTMLElement.prototype.__defineGetter__("outerHTML",function()
 {
  var a=this.attributes, str="<"+this.tagName, i=0;for(;i<a.length;i++)
  if(a[i].specified)
   str+=" "+a[i].name+'="'+a[i].value+'"';
  if(!this.canHaveChildren)
   return str+" />";
  return str+">"+this.innerHTML+"</"+this.tagName+">";
 });
 HTMLElement.prototype.__defineSetter__("outerHTML",function(s)
 {
  var r = this.ownerDocument.createRange();
  r.setStartBefore(this);
  var df = r.createContextualFragment(s);
  this.parentNode.replaceChild(df, this);
  return s;
 });
 HTMLElement.prototype.__defineGetter__("canHaveChildren",function()
 {
  return !/^(area|base|basefont|col|frame|hr|img|br|input|isindex|link|meta|param)$/.test(this.tagName.toLowerCase());
 });
} 
<!--ff支持outerHTML-->
/* firefox兼容检测鼠标键盘事件（屏蔽右键等） */
function __firefox(){
    HTMLElement.prototype.__defineGetter__("runtimeStyle", __element_style);
    window.constructor.prototype.__defineGetter__("event", __window_event);
    Event.prototype.__defineGetter__("srcElement", __event_srcElement);
}
function __element_style(){
    return this.style;
}
function __window_event(){
    return __window_event_constructor();
}
function __event_srcElement(){
    return this.target;
}
function __window_event_constructor(){
    if(document.all){
        return window.event;
    }
    var _caller = __window_event_constructor.caller;
    while(_caller!=null){
        var _argument = _caller.arguments[0];
        if(_argument){
            var _temp = _argument.constructor;
            if(_temp.toString().indexOf("Event")!=-1){
                return _argument;
            }
        }
        _caller = _caller.caller;
    }
    return null;
}
if(window.addEventListener){
    __firefox();
}
// 给firefox定义contains()方法，ie下不起作用
if(typeof(HTMLElement)!="undefined"){   
    HTMLElement.prototype.contains=function(obj){   
        while(obj!=null&&typeof(obj.tagName)!="undefind"){ // 通过循环对比来判断是不是obj的父元素
	　　　　if(obj==this)  return true;   
	　　　　obj=obj.parentNode;
 　		}   
        return false;   
    };   
}
/* end firefox */
function AddFav(){
	title = '坐车网-北京、广州、上海、深圳等城市公交查询，旅行线路景点交通查询，最新的列车飞机以及市内公交车地铁路线，清晰的电子地图，方便的旅游行程指南';
	if(document.all){
		window.external.addFavorite('http://www.zuoche.com/', title);
	}else if(window.sidebar){
		window.sidebar.addPanel(title,'http://www.zuoche.com/','');
	}
	return false;
}
// 取得浏览器的可见宽高
function clientXY(){
	var x=0,y=0;
    x = document.documentElement.clientWidth || document.body.clientWidth;
    y = document.documentElement.clientHeight || document.body.clientHeight;
    return {x:x,y:y};
}
// 取得滚动条的位置
function scrollXY(){
    var x=0,y=0;
    x = document.documentElement.scrollLeft || document.body.scrollLeft;
    y = document.documentElement.scrollTop || document.body.scrollTop;
    return {x:x,y:y};
}
// 页面的实际宽高
function pageXY(doc){
	doc = doc||document;
    var x=0,y=0;
    x = doc.documentElement.scrollWidth || doc.body.scrollWidth;
    y = doc.documentElement.scrollHeight || doc.body.scrollHeight;
    return {x:x,y:y};
}
// 自动调整iframe的高度
function autoFrameHeight(frame,minHeight){
	var old_h = frame.height;
	frame.height = 0;
	var subDoc = (_IsIe?window.frames[frame.id]:frame.contentWindow).document;
	var h = pageXY(subDoc).y;
	if(h>0){
		if(minHeight && minHeight > h){
			h = minHeight;
		}
		frame.height = h;
	}else{
		frame.height = old_h;
	}
}
function shareToSina(title,url,pic){
	if(!title || title.length<=0){
		title = document.title;
	}
	if(!url || url.length<=0){
		url = document.URL;
	}
	if(!pic){
		pic = "";
	}
	title = encodeURIComponent(title);
	// 编码之前再过滤一遍
	url = encodeURIComponent(decodeURIComponent(url).replace(/[[+]/g,"@").replace(/[[#]/g,"$"));
	pic = encodeURIComponent(decodeURIComponent(pic).replace(/[[+]/g,"@").replace(/[[#]/g,"$"));
	window.open(['http://v.t.sina.com.cn/share/share.php?appkey=2524860089&content=utf-8&title=',title,'&url=',url,'&pic=',pic].join(''),"",['toolbar=0,status=0,resizable=0,width=615px;height=605px,left=',(screen.width-615)/2,',top=',(screen.height-605)/2].join(''));
}
// 转到登录页面
function loginTurnOff(){
	var url = window.top.document.URL;
	if(url.indexOf("login.jspx") > 0){
		url = "";
	}
	// url = url.replace(/[+]/g,"%2B").replace(/#/g,"%23");
	window.top.location = "../login.jspx?ref=" + EscapeURI(url);
}
//转到注册页面
function regTurnOff(){
	var url = window.top.document.URL;
	if(url.indexOf("register.jspx") > 0){
		url = "";
	}
	// url = url.replace(/[+]/g,"%2B").replace(/#/g,"%23");
	window.top.location = "../register.jspx?ref=" + EscapeURI(url);
}
// 延时加载
function lazyLoad(element,loaded){
	var backsrc = element.getAttribute("backsrc");
	if(backsrc){
		if(loaded && typeof loaded === "function"){
			element.onload = loaded;
		}
		element.src = backsrc;
		element.removeAttribute("backsrc");
	}
}
// 创建style节点
function createStyleNode(cssText){
	if(document.all){
		window.style_createStyleNode = window.style_createStyleNode?window.style_createStyleNode+cssText:cssText;
		document.createStyleSheet("javascript:style_createStyleNode");
	}else{
		var style = document.createElement("style");
		style.type = "text/css";
		style.innerHTML=cssText;
		document.getElementsByTagName("HEAD")[0].appendChild(style);
	} 
}
// 设为首页
function SetToHome(the){
	try{
		the.style.behavior='url(#default#homepage)';
		the.setHomePage('http://www.zuoche.com/');
	}catch(e){
		if(window.netscape){
			try{
				netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
			}catch(e){
				alert('抱歉，此操作被浏览器拒绝！\n\n请在浏览器地址栏输入“about:config”并回车然后将[signed.applets.codebase_principal_support]设置为“true”');
			}
		}else{
			alert('抱歉，您所使用的浏览器无法完成此操作。\n\n您需要手动将 http://www.zuoche.com/ 设置为首页。');   
		}
	}
	return false;
}
// 停止事件冒泡
function CancelBubble(event){
	if(!event){
		return;
	}
	if (document.all) {
		event.cancelBubble = true;
	} else {
		event.stopPropagation();
	}
}


// js身份证号验证2
function checkIdcard(idcard){
	//alert("Y");
	var Errors=new Array(
	"验证通过!",
	"身份证号码位数不对!",
	"身份证号码出生日期超出范围或含有非法字符!",
	"身份证号码校验错误!",
	"身份证地区非法!"
	);
	var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}
	var retflag=false;
	var idcard,Y,JYM;
	var S,M;
	var idcard_array = new Array();
	idcard_array = idcard.split("");
	// 地区检验
	if(area[parseInt(idcard.substr(0,2))]==null) return Errors[4];
	// 身份号码位数及格式检验
	switch(idcard.length){
	case 15:
		if ( (parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) %
				100 == 0 && (parseInt(idcard.substr(6,2))+1900) % 4 == 0 ))	{
	ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;// 测试出生日期的合法性
	} else { 
	ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;// 测试出生日期的合法性
	}
	if(ereg.test(idcard))
	return Errors[0];
	else
	{
	 return Errors[2];
	}
	break;
	case 18:
	// 18位身份号码检测
	// 出生日期的合法性检查
	// 闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
	// 平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
		if ( (parseInt(idcard.substr(6,4)) % 4 == 0&& parseInt(idcard.substr(6,4)) % 100 != 0 )|| parseInt(idcard.substr(6,4)) % 400 == 0 ){
	ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;// 闰年出生日期的合法性正则表达式
	} else {
	ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;// 平年出生日	期的合法性正则表达式
	}
	if(ereg.test(idcard)){// 测试出生日期的合法性
	// 计算校验位
	S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
	+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
	+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
	+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
	+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
	+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
	+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
	+ parseInt(idcard_array[7]) * 1
	+ parseInt(idcard_array[8]) * 6
	+ parseInt(idcard_array[9]) * 3 ;

	Y = S % 11;
	M = "F";
	JYM = "10X98765432";
	M = JYM.substr(Y,1);// 判断校验位
	if(M.toUpperCase() == idcard_array[17]||M.toLowerCase() == idcard_array[17]) return Errors[0]; // 检测ID的校验位,自动转换大小写
	else {
		return Errors[3];}
	}
	else return Errors[2];
	break;
	default:
	return Errors[1];
	break;
	}
	}

	// -->
/*
 * //使用例子 function check(){ if(checkIdcard(document.f1.idcard.value)!="验证通过!") {
 * alert(checkIdcard(document.f1.idcard.value)); return false; }
 *  }
 */
<!--ff支持outerHTML-->
if(typeof(HTMLElement)!="undefined" && !window.opera)
{
 HTMLElement.prototype.__defineGetter__("outerHTML",function()
 {
  var a=this.attributes, str="<"+this.tagName, i=0;for(;i<a.length;i++)
  if(a[i].specified)
   str+=" "+a[i].name+'="'+a[i].value+'"';
  if(!this.canHaveChildren)
   return str+" />";
  return str+">"+this.innerHTML+"</"+this.tagName+">";
 });
 HTMLElement.prototype.__defineSetter__("outerHTML",function(s)
 {
  var r = this.ownerDocument.createRange();
  r.setStartBefore(this);
  var df = r.createContextualFragment(s);
  this.parentNode.replaceChild(df, this);
  return s;
 });
 HTMLElement.prototype.__defineGetter__("canHaveChildren",function()
 {
  return !/^(area|base|basefont|col|frame|hr|img|br|input|isindex|link|meta|param)$/.test(this.tagName.toLowerCase());
 });
} 






