//全部选中 默认为未选中
var bChecked = false;

/**
 * 校验输入的是否为整型
 * 如果不是整数，则返回假，
 * 如果是整数，则返回真
 */
function checkIntValue(NumStr){
  if (NumStr!="")
  {
    for(i=0;i<NumStr.length;i++)
    {
      if ((NumStr.charAt(i)>"9"||NumStr.charAt(i)<"0"))
          {return false;}
    }
  }
  return true;
}

function checkNumber(input) {
	if (!checkIntValue(input.value)) {
		alert("请输入数字！");
		input.value = "";
		return false; 
	}
	return true;
}

/**
 * 限定输入框内的值整型最大值65535
 */
function LimitInputValue(inputValue,maxValue,minValue){
  if (inputValue > maxValue )
    return false;
  else if (inputValue < minValue)
    return false;
  return true;
}

/**
 * 检查输入是否为空
 * false --不是空
 * true  --是空
 */
function checkNotNull(Input, str){
	if(!Input)
	return true;
   if (Input.value == "" || trim(Input.value) == "") {
	   	alert(str);
		Input.focus();
    	return false;
   } else {
	   return true;
	}
}

/**
 * 检查输入是否为空
 * false --不是空
 * true  --是空
 */
function checkNotNullEx(Input){
	if(!Input)
	return true;
   if (Input.value == "" || trim(Input.value) == "") {
    	return false;
   } else {
	   return true;
	}
}

function checkCodeNull(Input, str){
	if (!Input)
		return true;
   if (Input.value == 0 || trim(Input.value) == "") {
	   	alert(str);
    	return false;
   } else {
	   return true;
	}
}



/**
 * 当用户关闭窗口时，不做数据的检验
 * 当用户取消关闭窗口时，将焦点设回原位
 */
var isClose = false;
var lastFocus;
function setUnClose() {
	isClose = false;
}
function setClose() {
	isClose = true;
}
function setLastFocus() {
	lastFocus.focus();
}
/**
 * 改变div的开合状态
 * imgid 图片id
 * divid DIV元素的id
 * path 图片的路径
 */
function toggleDisplay(imgid, divid,path)
{
	// var obj = eval(divid.id + "_NAME");
	if (divid.style.display != "none")
	{
		divid.style.display = "none";
		imgid.src = path + "/close.gif";
		//obj.style.color = "#0B309B";
	}
	else
	{
		divid.style.display = "";
		imgid.src = path + "/open.gif";
		//obj.style.color = "#000000";
	}
}

//判断是否为空串，去掉空格,回车
function trim(str)
{
	var rbuff="";
	var c;
	var i;
	var j;

	for (i=0; str.length>i; i++) { 
		c = str.substring(i,i+1);

		if (c!=" " && c!="　") //一个是半角空格，一个是全角空格
			break;
	}

	if(i==str.length) {
		return rbuff;
	}

	for(j=str.length;j>0;j--) {
		c = str.substring(j-1,j);

		if (c!=" " && c!="　") 
			break;
	}
	rbuff=str.substring(i,j);
	return rbuff;
}

/*
 * 检查输入字符串的长度
 */
function checkinputlength(Num,maxLen)
{
  lastFocus = Num;
  if (isClose)
  	return true;

  var NumStr=Num.value;
  var totalLen=0;
  var asc2Str;
  var zhtempstr;
  var outStr="输入字符长度不能超过"+maxLen+"!";

  for(i=0;i<NumStr.length;i++)
  {
  	zhtempstr=NumStr.charAt(i);
	asc2Str=escape(zhtempstr);
	if(asc2Str.length==6 ||
	zhtempstr == '§' || zhtempstr == '×' || zhtempstr =='÷' || zhtempstr=='·' )
	  totalLen=totalLen+2;
	else
	  totalLen=totalLen+1;
  }
  if(totalLen>maxLen)
  {
	alert(outStr);
	Num.focus();
	return false;
  }else return true;
}

function delConfirm()
{
	if (isCheck() && confirm("是否确认要删除？")) {
		document.formMain.act.value = "d";
		document.formMain.submit();
	}
}

function isCheck()
{
	return isChecked("formMain", "请选择操作的记录！");
}

function isSearchCheck()
{
	return isChecked("formSearch", "请选择查询条件！");
}

function isChecked(form, str)
{
	var checked=0;
	//获得选择的check列表对象
	if (form == "formMain")
		form = form + ".check";
	else
		form = form + ".checkSearch";
	var checkIdObj = eval(form);

	//判断对象是否为空
	if (checkIdObj == null) {
		return false;
	}

	//如果check列表对象多于一个
	if(checkIdObj.length) {
		for (i=0; i<checkIdObj.length; i++) {
			if(checkIdObj[i].checked) {
				checked = 1;
				return true;
			}
		}
	} //否则
	else {
		if(checkIdObj.checked) {
			checked = 1;
			return true;
		}
	}
	if( checked !=1 ) {
		alert(str);
		return false;
	}
	return true;
}

function toPage(page){
	formMain.act.value = "r";
    formMain.page.value = page;
    formMain.submit();
}

function checkPageInteger(nMaxPage,sUrl)
{
	var Num = document.formMain.toPage;
  if(checkinputinteger(Num))
  {
	var NumStr=Num.value;
	if(trim(NumStr))
	{
	  if( NumStr > nMaxPage || NumStr < 1 )
	  {
		alert('请输入合法页数！');
		Num.focus();
		Num.value='';
	  }
	  else {
	  	//self.location.href(sUrl+"page="+NumStr);
          formMain.page.value = NumStr;
          formMain.submit();
		}
	}
  }
}

function checkinputinteger(p_num)//判断输入整数类型
{
  if(!checkIntValue(p_num.value))
  {
	alert("请输入合法整数！");
	p_num.value="";
	p_num.focus();
		return false;
  }
  return true;
}

function checkinputplus(input)
{
	lastFocus = input;
	if (isClose)
		return true;
	if (!trim(input.value))
		return true;
	if(!checkinputinteger(input))
		return false;
	else{
		if(input.value<=0){
			alert("请输入正整数！");
			input.focus();
			return false;
		}
	}
}

function checkinputNonNegative(input)
{
	lastFocus = input;
	if (isClose)
		return true;
	if (!trim(input.value))
		return true;
	if(!checkinputinteger(input))
		return false;
	else{
		if(input.value<0){
			alert("请输入非负数！");
			input.focus();
			return false;
		}
	}
}

function getOneChecked(form, str)
{
	var checked=0;
	var checkObj;

	//获得选择的check列表对象
	form = form + ".check";
	var checkIdObj = eval(form);

	//判断对象是否为空
	if (checkIdObj == null) {
		return "";
	}

	//如果check列表对象多于一个
	if(checkIdObj.length) {
		for (i=0; i<checkIdObj.length; i++) {
			if(checkIdObj[i].checked) {
				checked++;
				checkObj = checkIdObj[i];
			}
		}
	} //否则
	else {
		if(checkIdObj.checked) {
			checked = 1;
			checkObj = checkIdObj;
		}
	}
	if( checked == 0 || checked > 1 ) {
		alert(str);
		return "";
	}
	return checkObj.value;
}

function edit() {
	id = getOneChecked("formMain", "请选择一条操作记录！");
	if (id) {
		document.formMain.id.value = id;
		document.formMain.act.value = "e";
		document.formMain.submit();
	}
}

function valid() {
	if (isCheck()) {
		document.formMain.act.value = "v";
		document.formMain.submit();
	}
}

function validAll() {
	if(confirm("是否确认全部置有效？")){
		document.formMain.act.value = "y";
		document.formMain.submit();
	}
}

function invalid() {
	if (isCheck()) {
		document.formMain.act.value = "i";
		document.formMain.submit();
	}
}

function invalidAll() {
	if(confirm("是否确认全部置无效？")){
		document.formMain.act.value = "z";
		document.formMain.submit();
	}
}

function detail(id) {
	document.formMain.id.value = id;
	document.formMain.act.value = "x";
	document.formMain.submit();
}

function backtrack() {
	if (history.length == 0) {
		var form = document.formMain;
		if (form) {
			if (form.cond && form.cond.value)
				form.act.value = "r";
			else
				form.act.value = "l";
			form.submit();
		}
	} else
		history.back();
}

function hasHtmlTag(str){
	var filter= /[<\">]/
	if (filter.test(str.value)) {
		alert("不能包含\"、<、>!");
		str.value = "";
		str.focus();
		return false;
	}
	return true;
}

function checkemailaddress(email)
{
	lastFocus = email;
	if (isClose)
		return true;
	if (!trim(email.value))
		return true;
  var result;
  var filter=/^.+@.+\..{2,4}$/
  if (filter.test(email.value))
    return true;
  else
  {
    alert("请输入合法的邮件地址！");
    email.value = "";
	email.focus();
    return false;
  }
}

function check2Float(Num, iDigit, iXS)
{
	lastFocus = Num;
	if (isClose)
		return true;
  var bDot = false;
  var NumStr = Num.value;
  if (NumStr!="")
  {
    for(i=0;i<NumStr.length;i++)
    {
      if ((NumStr.charAt(i)>"9"||NumStr.charAt(i)<"0"))
      {
         if(!bDot && NumStr.charAt(i)==".")
         {
           bDot = true;
           if (i>iDigit)
           {
             alert("整数位数应小于等于" + iDigit+"。");
             Num.focus();
             Num.value="";
             break;
           }
           if ((NumStr.length-i-1)>iXS)
           {
             alert("小数位数应小于等于" + iXS+"。");
             Num.focus();
             Num.value="";
             break;
           }
         }
         else
         {
           alert("必须填写数值！");
           Num.focus();
           Num.value="";
           break;
         }
      }
      else
      {
      	if (!bDot && (i+1>iDigit))
           {
             alert("整数位数应小于等于" + iDigit+"。");
             Num.focus();
             Num.value="";
             break;
           }
      }
     }
   }
   return true;
}

function checkVal(ID, minlen, maxlen) {
	lastFocus = ID;
	if (isClose)
		return true;
   var sID = ID.value;
   if( trim(sID) )
   {
   	for(i=0;i<sID.length;i++)
	{
	   if((sID.charAt(i)<="z" && sID.charAt(i)>="a") || (sID.charAt(i)<="Z" && sID.charAt(i)>="A") || (sID.charAt(i)<="9" && sID.charAt(i)>="0") )
	     continue;
	   else
	     {
	     	alert("只能填写英文字母和数字！");
			ID.focus();
			ID.value="";
	     	return false;
	     }
	}
	if (sID.length > maxlen || sID.length < minlen) {
		alert("输入字符长度应大于" + minlen + "，小于" + maxlen);
		ID.focus();
		ID.value ="";
	     return false;
	}
   }
   return true;
}

//对两个日期(年月日)进行比较，当firday>secday 提示dayhint ,焦点在前(即：firday)
function checkTwoDateLess(firday,secday,dayhint)
{
  var sfirday=firday.value;
  var ssecday=secday.value;

  var i = sfirday.indexOf('-');
  var j = sfirday.indexOf('-', i+1);

  ifiryear = sfirday.substring(0,i);
  ifirmon = sfirday.substring(i+1,j);
  ifirdate = sfirday.substring(j+1,sfirday.length);

  i = ssecday.indexOf('-');
  j = ssecday.indexOf('-', i+1);

  isecyear = ssecday.substring(0,i);
  isecmon = ssecday.substring(i+1,j);
  isecdate = ssecday.substring(j+1,ssecday.length);

  if (parseInt(isecyear,10) < parseInt(ifiryear,10) )
  {
	alert(dayhint);
	firday.focus();
	return false;
  }
  else
  {
	if (parseInt(isecyear,10) == parseInt(ifiryear,10) )
	{
	  if (parseInt(isecmon,10) < parseInt(ifirmon,10) )
	  {
		alert(dayhint);
		firday.focus();
		return false;
	  }
	  else
	  {
		if (parseInt(isecmon,10) == parseInt(ifirmon,10) )
		{
		  if ( parseInt(isecdate,10)< parseInt(ifirdate,10) )
		  {
			alert(dayhint);
			firday.focus();
			return false;
		  }
		}
	  }
	}
  }
  return true;
}

function login() {
	var form = document.formMain;
	if (checkNotNull(form.C_NAME, "请填写用户名！")
		 	&& checkNotNull(form.C_PWD, "请填写登录密码！") )
		form.submit();
}

function CRLogin() {
	if (window.event.keyCode == 13) {
		login();	
	}
}

function checkBaleNum(num) {
	var numstr = num.value;
	if (!trim(numstr))
		return false;
	if (!checkIntValue(num.value)) {
		alert("请输入合法的条码");
		return false;
	}
	if (numstr.length != 32) {
		alert("请输入合法的条码");
		return false;
	}
	return true;
}

/**
 * 判断查询条件选择是否正确
 */
function checkCondition(form, str) {
	var checkObj = form.checkSearch;
	var checked = 0; // 不可以查询
	var hasCheck = 0;
	for (i = 0; i < checkObj.length; i++) {
		if (!checkObj[i].checked)
			continue;
		
		checked = 1;
		hasCheck = 1;
		
		// 取出查询字段名称
		strName = checkObj[i].value;
		chnName = document.all(strName + "_T").innerHTML;
		chnName = delHTMLnbsp(chnName);
		prefix = strName.substring(0,2);
		// 判断类型
		// 字符类型
		if (prefix == "N_" || prefix == "C_") {
			var objField = eval("form." + strName);
			if (!trim(objField.value)) {
				if (objField.type != "hidden") {
					objField.focus();
					alert("请填写" + chnName + "！");
				} else {
					checkObj[i].focus();
					alert("请选择" + chnName + "！");
				}
				checked = 0;
				break;
			}
		} else if (prefix == "D_") {
			var objBegin = eval("form." + strName + "_KS");
			var objEnd = eval("form." + strName + "_JS");
			if (!checkNotNull(objBegin, "请填写" + chnName + "开始日期！") 
				|| !checkNotNull(objEnd, "请填写" + chnName + "结束日期！")
				|| !checkTwoDateLess(objBegin,objEnd,"开始日期应小于等于结束日期！")) {
				checked = 0;
				break;
			}
		} else if (prefix == "V_") {
			var objBegin = eval("form." + strName + "_KS");
			var objEnd = eval("form." + strName + "_JS");
			if (!checkNotNull(objBegin, "请填写" + chnName + "最小值！") 
				|| !checkNotNull(objEnd, "请填写" + chnName + "最大值！")
				|| !checkTwoLess(objBegin,objEnd,"最小值应小于等于最大值！")) {
				checked = 0;
				break;
			}
		}
	}
	
	if (hasCheck == 0)
		alert(str);
	return (checked == 1);
}

// 去掉Html &nbsp;
function delHTMLnbsp(str) {
	pos = str.indexOf('&');
	while (pos > 0) {
		str = str.substring(0, pos) + str.substring(pos+6);
		pos = str.indexOf('&');
	}
	return str;
}

// 比较两个浮点数 begin > end 则提示 str 返回false
function checkTwoLess(begin, end, str) {
	if (parseFloat(begin.value) > parseFloat(end.value)) {
		alert(str);
		begin.focus();
		return false;
	}
	return true;
}

// Modified by wangyg 2008-02-28 18:42。
// check 的标签值中加入的报表的发布状态，因此判断状态位就可以了，
// 不用原来的判断发布状态方法。
function canRelease()
{
	// 记录报表发布状态。
	var status = -1;
	
	var checked=0;
	//获得选择的check列表对象
	var checkIdObj = eval("formMain.check");

	//判断对象是否为空
	if (checkIdObj == null) {
		return false;
	}
	
	//如果check列表对象多于一个
	if(checkIdObj.length)
	{
		for (i=0; i<checkIdObj.length; i++)
		{
			if(checkIdObj[i].checked)
			{
				var sTemp = checkIdObj[i].value;
				checked = 1;
				pos = sTemp.indexOf('-');
				
				if ( -1 != pos )
				{
				    status = sTemp.substring( pos + 1, pos + 2 );
				}
				
				if ( 2 != status )
				{
				    alert("不能发布未生成状态的信息!")
					return false;
				}
								
				return true;
			}
		}
	}
	else 
	{
		if(checkIdObj.checked)
	    {
			var sTemp1 = checkIdObj.value;
			checked = 1;
			pos = sTemp1.indexOf("-");
			status = sTemp1.subString( pos + 1, pos + 2 );
			if ( 2 != status )
			{
				alert("不能发布未生成状态的信息!")
				return false;
			}
			
			return true;
		}
	}
	if( checked !=1 )
	{
		alert("请选择要操作的记录！");
		
		return false;
	}
	
	return true;
}

function checkSelectTagNull(name, str){
	var selName = name + "_A";
	if (document.all(selName).innerText == str ||
		document.all(selName).innerText == "无" ) {
		alert(str + "！");
		return false;
	} else
		return true;
}

// 执行一个正则表达式
function execExp( sExp, sStr ){
	if ( sExp.exec( sStr ) )
		return true;
	else
		return false;
}

//全部选中或全部取消 
function checkedAll(){
	var form = "formMain.check"
	var checkIdObj = eval(form);

	//判断对象是否为空
	if (checkIdObj == null) {
		return;
	}

	//如果check列表对象多于一个
	if(checkIdObj.length == 0)
		return;
	else{
		bChecked = !bChecked;
		for (var i=0; i<checkIdObj.length; i++) {
				checkIdObj[i].checked = bChecked;
		}
	}
}
