var old_bg = "";

function inStyle(obj)
{
    old_bg = obj.style.background;
    if(!old_bg)old_bg = obj.style.backgroundColor;
	if(!old_bg)old_bg = obj.getAttribute("bgcolor");
	obj.style.background = "#E1EBF7";
}

function outStyle(obj)
{
    obj.style.background = old_bg;
}

function GetScrollTop(){
	var diffY = 0;
	if (document.documentElement && document.documentElement.scrollTop){
		diffY = document.documentElement.scrollTop;
	}else if (document.body){
		diffY = document.body.scrollTop;
	}
	return diffY;
}

function GetScrollLeft(){
	var diffX = 0;
	if (document.documentElement && document.documentElement.scrollLeft){
		diffX = document.documentElement.scrollLeft;
	}else if (document.body){
		diffX = document.body.scrollLeft;
	}
	return diffX;
}

function GetBodyHeight(){
	var h = 0;
	if (document.documentElement && document.documentElement.clientHeight){
		h = document.documentElement.clientHeight;
	}else if (document.body){
		h = document.body.clientHeight;
	}
	return h;
}

function GetBodyOffsetHeight(){
	var h = 0;
	if (document.documentElement && document.documentElement.offsetHeight){
		h = document.documentElement.offsetHeight;
	}else if (document.body){
		h = document.body.offsetHeight;
	}
	return h;
}

function GetBodyWidth(){
	var w = 0;
	if (document.documentElement && document.documentElement.clientWidth){
		w = document.documentElement.clientWidth;
	}else if (document.body){
		w = document.body.clientWidth;
	}
	return w;
}

function selectAll(form,obj,targetName){
	for(i=0;i<form.length;i++){
	   if(form[i].name.indexOf(targetName)!=-1){
		   if(obj.checked) form[i].checked=true;
		   else form[i].checked=false;
	   }
	}
}

function ClearOptions(SelectObjectId)
{
	var SelectObject = typeof(SelectObjectId) == 'object'? SelectObjectId : document.getElementById(SelectObjectId);
	while(SelectObject.options.length > 0) SelectObject.options[0] = null;
}

function isDomain(str){
  if(/^[0-9a-z\.]+[0-9a-z\-0-9a-z]+[\.]+[0-9a-z]+$/.test(str)==false) return false;
  else return true;
}

function isEmail(s){
	var regx = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
	return regx.test(s);
}

function isTel(s){
	var regx = /^(86\-)?\d{2,4}\-\d{6,10}(\-\d+)?$/;
	return regx.test(s);
}

function isMobile(s){
	var regx = /^(0)?(1)\d{10}$/;
	return regx.test(s);
}

function isPostCode(s){
	var regx = /^\d{6}$/;
	return regx.test(s);
}

function isChinese(s){
	var rxp = /^[\u4e00-\u9fa5]+$/g;
	return rxp.test(s);
}

function isPostCode(str)
{
    var reg = /^[0-9]{6}$/;
    return (reg.test(str));
}

function isNumber(s)
{
	var rxp = /^(-|\+)?\d+(\.\d+)?$/;	
	return rxp.test(s);
}

function isInt(s)
{
    var rxp = /^\d+$/
	return rxp.test(s);
}

function $e() {
	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;
}

function GetEvent()
{
	if(document.all) return window.event;//如果是ie
	func = GetEvent.caller;
	while(func != null)
	{
		var arg0 = func.arguments[0];
		if(arg0)
		{
			if((arg0.constructor == Event || arg0.constructor == MouseEvent) ||(typeof(arg0) == "object" && arg0.preventDefault && arg0.stopPropagation))
			{
				return arg0;
			}
		}
		func = func.caller;
	}
	return null;
}

function ReplaceSpecialChars(input){
	var SpecialChars = "１２３４５６７８９０－ＱＷＥＲＴＹＵＩＯＰＡＳＤＦＧＨＪＫＬＺＸＣＶＢＮＭ。";
	var replacement = "1234567890-qwertyuiopasdfghjklzxcvbnm.";
	
	for(var i = 0;i < input.length; i++){
		var charTemp = input.charAt(i);
		for(var j=0;j<SpecialChars.length;j++){
			var charTempS = SpecialChars.charAt(j);
			if(charTemp == charTempS){
				var charTempR = replacement.charAt(j);
				input = input.replace(charTempS,charTempR);
			}
		}
	}
	return input;
}

function hideElement(eid){
	var e = $e(eid);
	if(e){
		e.style.display = 'none';
	}
}

function DropDown(inputbox,rowCellLen){
	if(typeof(inputbox) == 'string') inputbox = $e(inputbox);
	var dropdownId = inputbox.id + '_dropdown';
	if($e(dropdownId)){
		$e(dropdownId).style.display = 'block';
		hideControl("SELECT,OBJECT",dropdownId);
		return;
	}
	var div = document.createElement('DIV');
	div.id = dropdownId;
	div.style.position = 'absolute';
	div.style.top = getOffsetTop(inputbox) + inputbox.clientHeight + 3;
	div.style.width = inputbox.clientWidth + 2 + 'px';
	div.style.background = '#E5F3FF';
	div.style.border = "1px solid #7F9DB9";
	div.style.zIndex = 99999;
	//div.style.borderTop = "none";
	var items = inputbox.getAttribute('items');
	var arritem = items.split(',');
	var table = "<table width='100%' border='0' cellpadding='3' cellspacing='1'>";
	var header = inputbox.getAttribute('header');
	if(header) table += "<tr><td colspan='100'><b>"+ header +"</b></td></tr>";
	var rowCharCount = 0;
	var rowCellCount = 0;
	table += "<tr>";
	for (var j = 0; j < arritem.length; j++){
		table += "<td nowrap><a href=\"javascript:void($e('"+ inputbox.id +"').value = '"+ arritem[j] +"')\"><span style='font-size:12px'>"+ arritem[j] +"</span></a></td>";
		rowCharCount += arritem[j].length + 1;
		rowCellCount ++;
		if(rowCellLen){
			if(rowCellCount == rowCellLen){
				table += "</tr><tr>";
				rowCellCount = 0;
			}
		}else{
			if(rowCharCount * 12 > inputbox.clientWidth - 10){
				table += "</tr><tr>";
				rowCharCount = 0;
			}
		}
	}
	table += "</tr><table>";
	div.innerHTML = table;
	hideControl("SELECT,OBJECT",div);
	var parent = inputbox.parentNode;
	parent.insertBefore(div, inputbox);
	AttachEventEx(document.body,"onclick",function(){ if(event.srcElement.id != inputbox.id){ $e(dropdownId).style.display = 'none'; showControl(dropdownId);} });
};

//trim()
String.prototype.trim = function() {
	return (this.replace(/^\s+|\s+$/g,""));
}
//ltrim()
String.prototype.ltrim = function() {
	return (this.replace(/^\s*/,""));
}
//rtrim()
String.prototype.rtrim = function() {
	return (this.replace(/\s*$/,""));
}
//delete html tags
String.prototype.stripTags = function() {
	return this.replace(/<\/?[^>]+>/gi, '');
}

function ShowFrameWindow(url,title,width,height,callback,callbackargs)
{
	var mask = showMaskDiv("append");
	var pannel = document.createElement("DIV");
	width = width ? width : 750;
	height = height ? height : 500;
	var pageWidth = GetBodyWidth();
	var pageHeight = document.body.clientHeight;
	var DivId = GetRandomLetters(3);

	if (width == "auto") width = pageWidth - 30;
	
	pannel.id = DivId;
	pannel.style.width = width;
	//pannel.style.height = height;
	pannel.style.background = "#F7F7F7";
	pannel.style.position = "absolute";
	pannel.style.left = pageWidth/2 - (width/2);
	pannel.style.top = pageHeight/2 + document.body.scrollTop - (height/2);
	pannel.style.border = "1px solid #1F3B63";
	pannel.style.zIndex = 99999;
	pannel.handleid = pannel.id + '_close';

	if(url.indexOf("?") > -1) url += "&handleid=" + pannel.handleid;
	else url += "?handleid=" + pannel.handleid;

	var titlebg = "#1F3B63";
	var titlecolor = "#FFFFFF";
	var html = "<table width='100%' cellspacing='0' border='0'>";
		html += "<tr height='25' bgcolor='"+ titlebg +"'><td style='color:"+ titlecolor +";font-size:14px;font-weight:bold;' nowrap>&nbsp;" + title + "</td>";
		html += "<td align='right'>";
		html += "<font color='white' id='"+ pannel.handleid +"' style='font-size:14px;font-weight:bold;cursor:pointer'>[关闭]</font>&nbsp;";
		html += "</td><tr>";
		html += "<tr><td colspan='2' valign='top' height='"+ height +"'><iframe src='"+ url +"' frameborder='0' scrolling='auto' border='0' width='100%' height='"+ (height) +"'></iframe></td><tr>";
		html += "</table>";
	pannel.innerHTML = html;
	document.body.appendChild(pannel);
	hideControl("OBJECT,SELECT", pannel);
	var handle = $e(pannel.handleid).onclick = function(){
		if(mask) removeElement(mask.id);
		removeElement(pannel.id);
		showControl(pannel);
		if(callback){
			//callbackargs 是一个数组
			var args = new Array();
			if(typeof(callbackargs) == 'object'){
				args = args.concat(callbackargs);
			}
			callback.apply(null,args);
		}
	}
	return pannel;
}

function showTips(title,text,width,height,showNeverShow,cookieName,showType,showMask,noSureBtn){
	if(getCookie(cookieName) == '1') return;
	var mask = null;
	if(showMask) mask = showMaskDiv(showType);
	var pannel = document.createElement("DIV");
	width = width ? width : 300;
	height = height ? height : 200;
	var pageWidth = document.body.clientWidth;
	var pageHeight = document.body.clientHeight;
	var DivId = GetRandomLetters(3);
	pannel.id = DivId;
	pannel.style.width = width;
	//pannel.style.height = height;
	pannel.style.background = "#F7F7F7";
	pannel.style.position = "absolute";
	pannel.style.pixelLeft = pageWidth/2 - (width/2);
	pannel.style.pixelTop = pageHeight/2 + document.body.scrollTop - (height/2);
	pannel.style.border = "1px solid #1F3B63";
	pannel.style.zIndex = 99999;
	var titlebg = "#1F3B63";
	var titlecolor = "#FFFFFF";
	var html = "<table width='100%' height='100%' cellpadding='5' cellspacing='0' border='0'>";
		html += "<tr height='20' bgcolor='"+ titlebg +"'><td style='color:"+ titlecolor +";font-weight:bold;' nowrap>" + title + "</td>";
		html += "<td align='right'>";
		if(!noSureBtn){
			var htmla = "removeElement('" + DivId + "');";
			if(mask) htmla += "removeElement('" + mask.id + "');";
			html += "<font color='white' style='cursor:pointer' onclick=\""+ htmla +"\">[关闭]</font>&nbsp;";
		}
		html += "</td><tr>";
		html += "<tr><td colspan='2' height='"+ height +"' style='padding:10px;line-height:180%'>" + text + "</td><tr>";
		html += "<tr height='20'><td colspan='2' align='center' style='font-size:14px;'>";
		html += "<hr size='1' width='95%' color='#CCCCCC'>";
		if(showNeverShow){
			html += "&nbsp;<input type='checkbox' id='TipsNeverShow' onclick=\"if(this.checked){SetCookie('"+ cookieName +"','1')}else{SetCookie('"+ cookieName +"','0')}\"><label for='TipsNeverShow'><span style='color:red;font-size:12px'><b>不再提示</b></span></label>&nbsp;";
		}
		if(!noSureBtn){
			var htmla = "removeElement('" + DivId + "');";
			if(mask) htmla += "removeElement('" + mask.id + "');";
			html += " <input type='button' value='确 定' onclick=\""+ htmla +"\">";
		}
		html += "</td>";
		html += "</tr></table>";
	pannel.innerHTML = html;
	if(showType == 'append') document.body.appendChild(pannel);
	else document.write(pannel.outerHTML);
	return pannel;
}

function showMaskDiv(showType){
	var pannel = document.createElement("DIV");
	var maskid = GetRandomLetters(3);
	pannel.id = maskid;
	pannel.style.width = GetBodyWidth();
	pannel.style.height = document.body.scrollHeight > GetBodyHeight() ? document.body.scrollHeight : GetBodyHeight();
	pannel.style.background = "#999999";
	pannel.style.position = "absolute";
	pannel.style.left = "0px";
	pannel.style.top = "0px";
	pannel.style.zIndex = 10;
	pannel.style.opacity = 0.5;
	pannel.style.filter = "alpha(enabled=true,opacity=50)";

	if(showType == 'append') document.body.appendChild(pannel);
	else document.write(pannel.outerHTML);
	return pannel;
}

function webRequest(url,xmlstr,method,isAsync,callback,callbackargs)
{
    var xmlhttp = null;
	if (window.ActiveXObject) {
       xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }else if (window.XMLHttpRequest) {
       xmlhttp = new XMLHttpRequest();
    }
	if(!method) method = "GET";
	if(!isAsync) isAsync = false;
	if(isAsync && callback){
		var args = new Array();
		args.push(xmlhttp);
		if(typeof(callbackargs) == 'object'){
			args = args.concat(callbackargs);
		}
		xmlhttp.onreadystatechange = function(){callback.apply(null,args);}
	}
	xmlhttp.open(method,url,isAsync);
    if(method.toLowerCase() == 'post'){
		xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	}
    xmlhttp.send(xmlstr);
	if(!isAsync){
		return xmlhttp.responseText;
	}
}

function LoadUrl(eid,url)
{
	var e = $e(eid);
	if(!e){ alert("找不到显示对象");return;}
	if(url.indexOf("?") > -1) url += "&autowebrandomstr=" + Math.random(500);
	else url += "?autowebrandomstr=" + Math.random(500);
	
	var loadingtext = arguments[2];
	var callback = arguments[3]; //这个应该是一个函数的名称
	var callbackargs = arguments[4]; //这个应该是一个数组

	if(!loadingtext) loadingtext = "正在加载数据...";
	e.innerHTML = loadingtext;
	webRequest(url,"","GET",true,function(){
			var xmlhttp = arguments[0];
			if (xmlhttp.readyState == 4){
				var content = xmlhttp.responseText;
				e.innerHTML = content;
				if(callback) callback.apply(null,callbackargs);
			}
		},new Array());
}

function GetRandomLetters(length)
{
	var str="";
	for(i=0;i<length;i++){
		var rnd=parseInt((122-97+1)*Math.random()+97);
	    var s=String.fromCharCode(rnd);
		str+=s;
	}
	return str;
}

function removeElement(elementId){
    var element = document.getElementById(elementId);
	if(element && element.parentElement) element.parentElement.removeChild(element);
	if(element && element.parentNode) element.parentNode.removeChild(element);
}

function getOffsetLeft(src){
	var set=0;
	if(src)
	{
		if (src.offsetParent)
			set+=src.offsetLeft+getOffsetLeft(src.offsetParent);
		
		if(src.tagName!="BODY")
		{
			var x=parseInt(src.scrollLeft,10);
			if(!isNaN(x))
				set-=x;
		}
	}
	return set;
}

function getOffsetTop(src){
	var set=0;
	if(src)
	{
		if (src.offsetParent)
			set+=src.offsetTop+getOffsetTop(src.offsetParent);
		
		if(src.tagName!="BODY")
		{
			var y=parseInt(src.scrollTop,10);
			if(!isNaN(y))
				set-=y;
		}
	}
	return set;
}

//* 为对象绑定事件
function AttachEventEx(eid,env,action)
{
	var object = typeof(eid) == 'object' ? eid : document.getElementById(eid);
	if (object && object.addEventListener){
		if(/^(on)/i.test(env)) env = env.substring(2);
		object.addEventListener(env,action,true);
	}else if(object){
		object.attachEvent(env,action);
	}
}

//** Tips
function AddTips(s){
	//if( s == '') return;
	var args = arguments;
	var id,position,width,height;
	if(args[1]) id = args[1];
	if(args[2]) position = args[2]; //显示位置,有 top bottom left right mouse(鼠标跟随) 等多种属性
	if(args[3]) width = args[3];
	if(args[4]) height = args[4];
	if(!id) id = 'dvTips';
	var dvTips = document.getElementById(id);
	if(!dvTips){
		dvTips = document.createElement("DIV");
		dvTips.id = id;
        dvTips.style.border = '1px solid #F2BB6F';
		dvTips.style.background = '#FDF7E7';
		dvTips.style.position = 'absolute';
		dvTips.style.padding = '5px';
		if(width) dvTips.style.width = width;
		if(height) dvTips.style.height = height;
		document.body.appendChild(dvTips);
	}
    //dvTips.innerHTML = "<font color='red'>"+ s +"</red>";
	if(s != '') dvTips.innerHTML = s;
	if(position == 'top'){
		dvTips.style.top = getOffsetTop(event.srcElement) - ( dvTips.clientHeight + 5 );
		dvTips.style.left = getOffsetLeft(event.srcElement);
	}else if(position == 'bottom'){
		dvTips.style.top = getOffsetTop(event.srcElement) + ( event.srcElement.clientHeight + 5 );
		dvTips.style.left = getOffsetLeft(event.srcElement);
	}else if(position == 'left'){
		dvTips.style.top = getOffsetTop(event.srcElement);
		dvTips.style.left = getOffsetLeft(event.srcElement) - ( dvTips.clientWidth + 5 );
	}else if(position == 'right'){
		dvTips.style.top = getOffsetTop(event.srcElement);
		dvTips.style.left = getOffsetLeft(event.srcElement) + ( event.srcElement.clientWidth + 5 );
	}else{
		dvTips.style.left = event.clientX + 5 + document.body.scrollLeft;
		dvTips.style.top = event.clientY + 5 + document.body.scrollTop;
	}
	dvTips.style.display = '';
}

function RemoveTips(){
	var args = arguments;
	var id,delay;
	if(args[0]) id = args[0];
	if(typeof(args[1]) != 'undefined') delay = args[1];
	if(!id) id = 'dvTips';
	var dvTips = document.getElementById(id);
	if(dvTips){
		if(typeof(delay) == 'undefined' || delay == true) setTimeoutEx(function(){dvTips.style.display = 'none'},200);
		else dvTips.style.display = 'none';
	}
}

//重载 setTimeout
var _st = window.setTimeout;
window.setTimeoutEx = function(fRef, mDelay) 
{ 
	if(typeof(fRef) == 'function')
	{ 
		var argu = Array.prototype.slice.call(arguments,2);
		var f = (function(){ fRef.apply(null, argu);});
		return _st(f, mDelay);
	}
	return _st(fRef,mDelay);
}
// end of 重载 setTimeout

//重载 setInterval
var _setInterval = window.setInterval;
window.setIntervalEx = function(fRef, mDelay) 
{ 
	if(typeof(fRef) == 'function')
	{ 
		var argu = Array.prototype.slice.call(arguments,2);
		var f = (function(){ fRef.apply(null, argu);});
		return _setInterval(f, mDelay);
	}
	return _setInterval(fRef,mDelay);
}
// end of 重载 setInterval

//* 拖动层所须的代码
var moveobj = null;
var px = 0;
var py = 0;
var screenTop = 0;
var screenLeft = 0;
var moveable = false;
document.onmouseup = EndMove;
document.onmousemove = MouseMove;
function InitMove(ObjId){
	moveable = true;
	moveobj = document.getElementById(ObjId);
	px = event.x - moveobj.style.pixelLeft;
	py = event.y - moveobj.style.pixelTop;
} 

function MouseMove(){
	if(moveobj != null){		
		moveobj.style.left = event.x - px;
		moveobj.style.top = event.y - py;
	}
}

function EndMove(){
	moveable = false;
	moveobj = null;
}
// end of 拖动层所须的代码

/*
  Cookie 相关函数
*/
function getCookieVal (offset) 
{
	var endstr = document.cookie.indexOf (";", offset);
	if (endstr == -1) endstr = document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}


function getCookie (name) 
{
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen) 
	{
		var j = i + alen;
		if (document.cookie.substring(i, j) == arg) return getCookieVal (j);
		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0) break; 
	}
	return null;
}

function SetCookie (name, value) 
{
	var argv = SetCookie.arguments;
	var argc = SetCookie.arguments.length;
	var expires = (2 < argc) ? argv[2] : null;
	var path = (3 < argc) ? argv[3] : null;
	var domain = (4 < argc) ? argv[4] : null;
	var secure = (5 < argc) ? argv[5] : false;
	document.cookie = name + "=" + escape (value) +
	                 ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
	                 ((path == null) ? "" : ("; path=" + path)) +
	                 ((domain == null) ? "" : ("; domain=" + domain)) +
	                 ((secure == true) ? "; secure" : "");
}

/*
var expdate = new Date();
expdate.setTime(expdate.getTime() +  (24 * 60 * 60 * 1000 * 365)); //一年后过期
SetCookie("WebTongCid", WebTongCid, expdate ,"/");
*/

//** end of Cookie 相关函数

//** 隐藏指定控件
function hideControl(tagName, overCtrl)
{
	if(typeof(overCtrl) == 'string') overCtrl = $e(overCtrl);
	var x = getOffsetLeft(overCtrl);
	var y = getOffsetTop(overCtrl);
	var w = overCtrl.offsetWidth;
	var h = overCtrl.offsetHeight;
	if (!overCtrl.overlap) overCtrl.overlap = new Array ();
	var arTags = tagName.split(",");
	for(var j = 0;j < arTags.length;j++){
		var hideTags = document.getElementsByTagName(arTags[j]);
		for (var i = 0; i < hideTags.length; ++i)
		{
			var obj = hideTags[i];
			if (!obj || !obj.offsetParent)
				continue;

			var ox = getOffsetLeft(obj);
			var oy = getOffsetTop(obj);
			var ow = obj.offsetWidth;
			var oh = obj.offsetHeight;

			if (ox > (x + w) || (ox + ow) < x)
				continue;
			if (oy > (y + h) || (oy + oh) < y)
				continue;

			if(obj.style.visibility == "hidden")
				continue;

			overCtrl.overlap[overCtrl.overlap.length] = obj;
			obj.style.visibility = "hidden";
		}
	}
}

function showControl(overCtrl)
{
	if(typeof(overCtrl) == 'string') overCtrl = $e(overCtrl);
	if (overCtrl.overlap)
	{
		var i;
		for (i = 0; i < overCtrl.overlap.length; ++i)
			overCtrl.overlap[i].style.visibility = "";
	}
	overCtrl.overlap = null;
}

//** end of 隐藏指定控件
