//利用正则表达式检测字符串
function Check(reg, str)
{
 if( reg.test( str ) )
 {
    return true;
 }
 else
 {
    return false;
 }
}
//检测会员帐号
function CheckUserAccount(str)
{
  var reg=/[a-zA-Z-_0-9]{3,15}/;
  return Check( reg, str );
}
function CheckUserAccountReg(str)
{
  var reg=/^[a-zA-Z-_0-9]{3,15}$/;
  return Check( reg, str );
}
//检测会员密码
function CheckUserPwd(str)
{
  var reg=/[a-zA-Z-_0-9]{6,12}/;
  return Check( reg, str );
}
//检测验证码
function CheckValiCode(str)
{
  var reg=/\d{4}/;
  return Check( reg, str );
}
// 检测是否包含电话号码
function CheckIncludeTel( str )
{
 var reg = /(([0-9]|[０-９]|[零,一,二,三,四,五,六,七,八,九])\W*){7,}/;
 return Check( reg, str );
}
function ChangeNum(str)
{
  var restr = str;
  restr = restr.replace("０","0");
  restr = restr.replace("１","1");
  restr = restr.replace("２","2");
  restr = restr.replace("３","3");
  restr = restr.replace("４","4");
  restr = restr.replace("５","5");
  restr = restr.replace("６","6");
  restr = restr.replace("７","7");
  restr = restr.replace("８","8");
  restr = restr.replace("９","9");
  return restr;
 }
function ConvertNum(str,ctl)
{
   ctl.value = ChangeNum(str);
}
// 检测Email
function CheckEmail( str )
{
 var reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
 return Check( reg, str );
}
// 检测数字
function CheckNum( str )
{
 var reg = /^\d*$/;
 return Check( reg, str );
}
// 检测money
function CheckMoneyNum( str )
{
 var reg = /^[\d|\.]*$/;
 return Check( reg, str );
}
//检测Date类型
function CheckDate(str)
{
  var reg=/\d{4}[-]\d{0,2}[-]\d{0,2}/;
  return Check( reg, str );
}
//去左空格
function ltrim(s){ 
return s.replace( /^\s*/, ""); 
} 
//去右空格; 
function rtrim(s){ 
return s.replace( /\s*$/, ""); 
} 
//去左右空格; 
function trim(s){ 
return rtrim(ltrim(s)); 
}
//检测电话类型
function CheckTel(str)
{
  var reg=/(^(0\d{2,3})?(-|\s)?(\d{7,8})(-(\d{2,4}))?$)|(^(\+86)?(\s+)?((13)|(15))(\d{9})$)/
  return Check( reg, str );
}
//检测控件的值是否为空
function CheckNull(Ctl,msg)
{
    if (Ctl.value=="")
    {
        alert(msg);
        Ctl.focus();
        return false;
    }
    return true;
}
function showInfo(layer)
{
	layer.style.display="";
	layer.style.top = event.clientY+document.body.scrollTop+10;
	layer.style.left = event.clientX+document.body.scrollLeft+15;
	status = event.screenX + " " + event.screenY;
}
function hiddenInfo(layer)
{
	layer.style.display="none";
}
//利用XmlHttp装载指定页面的数据
function  loadXml(file)
{
	var xmlObj = null;
	if(window.XMLHttpRequest)
	{ 
		xmlObj = new XMLHttpRequest();
	}
	else if(window.ActiveXObject)
	{
		xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else
	{
		return;
	}
	xmlObj.onreadystatechange = function ()
	{
		if(xmlObj.readyState == "4")
		{
			processXML(xmlObj.responseText);
		}
	} 
	xmlObj.open("post",file,true);
	xmlObj.send("");
}
/*-------- common javascript functions -------------*/
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 = (argc > 2) ? argv[2] : new Date();
    var path = (argc > 3) ? argv[3] : "/";
    var domain = (argc > 4) ? argv[4] : "localhost";
    var secure = (argc > 5) ? argv[5] : false;
   // document.cookie = name + "=" + escape (value) + expires.toGMTString() + "; path=" + path + "; domain=" + domain ;
	  document.cookie = name + "=" + value + ";path=/";
}
function DelCookie(name)//删除Cookie
{
var exp = new Date();
exp.setTime (exp.getTime() - 1);
var cval = GetCookie (name);
document.cookie = name + "=" + cval + "; expires="+ exp.toGMTString();
}
//获取checkbox的下级checkbox信息
	//@entity : checkbox的DOM对象
	function findChildCheckBox(entity){

		//存放下级checkbox的数组
		var chkArray = new Array();

		//判断是否有input标签
		if(document.getElementsByTagName("input")){

			//获取所有的input标签
			var inputs = document.getElementsByTagName("input");

			//遍历input标签，获取下级checkbox
			for(var i = 0; i < inputs.length; i++){
				var ele = inputs[i];

				//判断type是“checkbox”，并且checkbox的parentId等于entity的id
				if(ele.type == "checkbox" && ele.getAttribute("parentId") == entity.id){
					chkArray.push(ele);
				}
			}
		}
		return chkArray;
	}

	//获取checkbox的同级checkbox信息
	//@entity : checkbox的DOM对象
	function findBrotherCheckBox(entity){

		//存放同级checkbox的数组
		var chkArray = new Array();

		//判断是否有input标签
		if(document.getElementsByTagName("input")){

			//获取所有的input标签
			var inputs = document.getElementsByTagName("input");

			//遍历input标签，获取同级checkbox
			for(var i = 0; i < inputs.length; i++){
				var ele = inputs[i];

				//判断type是“checkbox”，并且checkbox的parentId等于entity的parentId
				if(ele.type == "checkbox" && ele.getAttribute("parentId") == entity.getAttribute("parentId")){
					chkArray.push(ele);
				}
			}
		}
		return chkArray;
	}

	//获取checkbox的上级checkbox信息
	//@entity : checkbox的DOM对象
	function findParentCheckBox(entity){

		//存放上级checkbox的对象
		var _element = null;

		//判断是否有input标签
		if(document.getElementsByTagName("input")){

			//获取所有的input标签
			var inputs = document.getElementsByTagName("input");

			//遍历input标签，获取上级checkbox
			for(var i = 0; i < inputs.length; i++){
				var ele = inputs[i];

				//判断type是“checkbox”，并且checkbox的id等于entity的parentId
				if(ele.type == "checkbox" && ele.id == entity.getAttribute("parentId")){
					_element = ele;
					break;
				}
			}
		}
		return _element;
	}

	//设置checkbox的下级checkbox的状态
	//@entity : checkbox的DOM对象
	function setChildCheckBox(entity){
		//entity的选中状态
		var status = entity.checked;

		//获取entity的下级checkbox
		var childList = findChildCheckBox(entity);

		//判断是否有下级
		if(childList.length > 0){

			//遍历下级checkbox，并设置状态
			for(var i = 0; i < childList.length; i++){
				childList[i].checked = status;

				//设置childList[i]的下级checkbox的状态
				setChildCheckBox(childList[i]);
			}
		}
	}

	//设置checkbox的上级checkbox的状态
	//@entity : checkbox的DOM对象
	function setParentCheckBox(entity){

		//entity的上级checkbox的选中状态
		var parentChecked = true;

		//获取entity的上级checkbox
		var parentCheckBox = findParentCheckBox(entity);

		//判断是否有上级
		if(parentCheckBox){

			//获取entity的同级checkbox
			var brotherList = findBrotherCheckBox(entity);

			//判断是否有同级
			if(brotherList.length > 0){
				
				//遍历同级checkbox
				for(var i = 0; i < brotherList.length; i++){

					//如果同级的checkbox有未选中的状态，则设置上级的checkbox的状态为false
					if(brotherList[i].checked == false){
						parentChecked = false;
						break;
					}
				}
			}

			//设置上级checkbox的选中状态
			parentCheckBox.checked = parentChecked;

			//设置parentCheckbox的上级checkbox的状态
			setParentCheckBox(parentCheckBox);
		}
	}
