//创建人:肖兵.
//创建时间:2004-10-13.


//UltraWebGrid_MouseOverHandler
function UltraWebGrid_MouseOverHandler(gridName, id, button)
{
	var ss=id.split("_");
	var cellIdPrefix=ss[0]+"_"+ss[1]+"_";
	if (ss[0].length==gridName.length+2)
	{
		document.getElementById(gridName).title=document.getElementById(id).className;
		for(i=0;i<100;i++)
		{
			try
			{
				document.getElementById(cellIdPrefix+i).className="RowMouseOverStyleDefault";
			}
			catch(e)
			{
				break;
			}
		}
	}
}


//UltraWebGrid_MouseOutHandler
function UltraWebGrid_MouseOutHandler(gridName, id, button)
{
	var ss=id.split("_");
	var cellIdPrefix=ss[0]+"_"+ss[1]+"_";
	if (ss[0].length==gridName.length+2)
	{
		for(i=0;i<100;i++)
		{
			try
			{
				document.getElementById(cellIdPrefix+i).className=document.getElementById(gridName).title;
			}
			catch(e)
			{
				break;
			}
		}
	}
}


function TextareaSubString(maxLength)
{
	if (event.srcElement.value.length > maxLength) 
	{
		event.srcElement.value=event.srcElement.value.substring(0,maxLength);
	}
}


function WebChooserClearNull()
{
	if (event.propertyName=="value" && event.srcElement.value=="Null")
	{
		event.srcElement.value="";
	}
}


//add by huangbin	2005-09-21
function readCookie(name)
{
  var cookieValue = "";
  var search = name + "=";
  if(document.cookie.length > 0)
  { 
    offset = document.cookie.indexOf(search);
    if (offset != -1)
    { 
      offset += search.length;
      end = document.cookie.indexOf(";", offset);
      if (end == -1) end = document.cookie.length;
      cookieValue = unescape(document.cookie.substring(offset, end))
    }
  }
  return cookieValue;
}

//写Cookie
function writeCookie(name, value, hours)
{
  var expire = "";
  if(hours != null)
  {
    expire = new Date((new Date()).getTime() + hours * 3600000);
    expire = "; expires=" + expire.toGMTString();
  }
  document.cookie = name + "=" + escape(value) + expire;
}
//add by wanhq in 2005-10-08
var returnModalDialogValue;
function openConfirm(modalName)
{
	var params = new Array(window,modalName);
	var features = "dialogHeight: 130px; dialogWidth: 250px; dialogTop: 300px; dialogLeft: 200px; edge: Raised; center: Yes; help: no; resizable: no; status: no;";
	window.showModalDialog('../../Script/confirmBox/msg.htm',params,features);
	return returnModalDialogValue;
}








/*********************************************************
功能：  前台校验函数，校验不能为空，数字检查和日期检查

参数：  
返回：  boolean。

作者：  leo  
日期：  2003/9/22
'*********************************************************/
function CheckValue()
{	
	if (readCookie("nocheck") == "yes")
	{
		writeCookie("nocheck","no",1);
		return true;
	}	
	writeCookie("nocheck","no",1);

	var e;
	var check_content = "";
	var context_label = "";
	var IsOk = true;
	var ErrorMsg = "";
	var required_Msg = "必填字段(标注*号)不能为空，请重新输入!";
	var number_Msg = "需要为数字，请重新输入!";
	var date_Msg = "需要为日期，请重新输入!";
	var year_Msg = "需要为年份，请重新输入!";
	var onlynumber_Msg = "只能输入[0-9]的数字!";
	var english_Msg = "只能输入英文字符和数字!";
	
	for(var i = 0;i < window.document.forms[0].elements.length;i++)
	{
		e = window.document.forms[0].elements[i];
		if ((e.type == "text" || e.type == "password") && e.alt != "")
		{
			check_content = e.alt.toLowerCase();//取得alt信息
			
			if (e.contextLabel != null && e.contextLabel != "")
			{
				//context_label = window.document.all(e.contextLabel).innerText;//取得关联控件Text
				context_label = e.contextLabel;
				context_label = "[ " + context_label + " ] ";
			}
			else
			{
				context_label = "字段";
			}
			
			if (check_content.indexOf("required") > -1)//必填
			{
			
				if (trim(e.value) == "")
				{
					IsOk = false;
					e.focus();
					ErrorMsg = context_label + "必须填写";
					break;
				}
			}
			if (check_content.indexOf("numeric_") > -1)//数字
			{
				if (trim(e.value) != "" && !IsNumeric(e.value))
				{
						IsOk = false;
						e.focus();
						ErrorMsg = context_label + number_Msg;
						break;
				}
			}
			if (check_content.indexOf("date") > -1)//日期
			{
				if (trim(e.value) != "" && !IsDate(e.value))
				{
						IsOk = false;
						e.focus();
						ErrorMsg = context_label + date_Msg;
						break;
				}
			}
			if (check_content.indexOf("year") > -1)//年份
			{
				if (trim(e.value) != "" && !IsYear(e.value))
				{
						IsOk = false;
						e.focus();
						ErrorMsg = context_label + year_Msg;
						break;
				}
			}
			if (check_content.indexOf("string_num") > -1)//仅包含数字

			{
				if (trim(e.value) != "" && !IsOnlyNumber(e.value))
				{
						IsOk = false;
						e.focus();
						ErrorMsg = context_label + onlynumber_Msg;
						break;
				}
			}
			if (check_content.indexOf("string_eng") > -1)//仅包含英文字符

			{
				if (trim(e.value) != "" && !IsEnglish(e.value))
				{
						IsOk = false;
						e.focus();
						ErrorMsg = context_label + english_Msg;
						break;
				}
			}			
			if (check_content.indexOf("cardno") > -1)//身份证

			{
				if (trim(e.value) != "" && !IdCardRegCheck(e.value))
				{
						IsOk = false;
						e.focus();
						ErrorMsg = "【" + e.value + "】不是有效的18位身份证号码";
						break;
				}
			}
		}
		if(e.type == "select-one" && e.title != "")//下拉菜单必填
		{
			check_content = e.title.toLowerCase();
			if (check_content.indexOf("required") > -1 && e.value == "")
			{
				IsOk = false;
				e.focus();
				ErrorMsg = required_Msg;
				break;
			}
		}
	}
	if(!IsOk)
	{
		alert(ErrorMsg);
	}
	return IsOk ;
}


function CheckInput(obj)
{
	var strInputType = obj.alt.toLowerCase();
	
	var isNatural = (event.keyCode >= 48 && event.keyCode <= 57)
	 || (event.keyCode>=96 && event.keyCode<=105)
	 
	 || event.keyCode == 35// end
	 || event.keyCode == 36// home
	 || event.keyCode == 37// <-
	 || event.keyCode == 39// ->
	 || event.keyCode == 46// del
	 
	 || event.keyCode == 8//backspace
	 || event.keyCode == 188;//Comma
	
	var isInt = (event.keyCode >= 48 && event.keyCode <= 57)
	 || (event.keyCode>=96 && event.keyCode<=105)
	 
	 || event.keyCode == 35// end
	 || event.keyCode == 36// home
	 || event.keyCode == 37// <-
	 || event.keyCode == 39// ->
	 || event.keyCode == 46// del
	 
	 || event.keyCode == 8//backspace
	 || event.keyCode == 189//-
	 || event.keyCode == 109//-
	 || event.keyCode == 188;//Comma

	var isNumber = (event.keyCode >= 48 && event.keyCode <= 57)
	 || (event.keyCode>=96 && event.keyCode<=105)
	 
	 || event.keyCode == 35// end
	 || event.keyCode == 36// home
	 || event.keyCode == 37// <-
	 || event.keyCode == 39// ->
	 || event.keyCode == 46// del
	 
	 || event.keyCode == 8//backspace
	 || event.keyCode == 189//-
	 || event.keyCode == 109//-
	 || event.keyCode == 190//.
	 || event.keyCode == 110//.
	 || event.keyCode == 188;//Comma
	 
	 var isDate = (event.keyCode >= 48 && event.keyCode <= 57)
	 || (event.keyCode>=96 && event.keyCode<=105)

	 || event.keyCode == 35// end
	 || event.keyCode == 36// home
	 || event.keyCode == 37// <-
	 || event.keyCode == 39// ->
	 || event.keyCode == 46// del
	 
	 || event.keyCode == 8//backspace
	 || event.keyCode == 191// /
	 || event.keyCode == 111// /
	 || event.keyCode == 189//-
	 || event.keyCode == 109;//-

	var checkResult = true;

	if (strInputType.indexOf("numeric_nat") > -1) checkResult = isNatural;
	if (strInputType.indexOf("numeric_int") > -1) checkResult = isInt;
	if (strInputType.indexOf("numeric_num") > -1) checkResult = isNumber;
	if (strInputType.indexOf("date") > -1) checkResult = isDate;
	if (strInputType.indexOf("year") > -1) checkResult = isNatural;
	if (strInputType.indexOf("string_num") > -1) checkResult = isNatural;
	
	if (!checkResult && event.keyCode != 17 &&//Ctrl
	event.keyCode != 9 && event.keyCode != 91 &&//9:Tab,91:Win
	event.keyCode != 90 && event.keyCode != 88 && event.keyCode != 67 && event.keyCode != 86 //z,x,c,v
	)
	{
		event.returnValue = false;
	}
}

function CheckInputValue(obj)
{
	var inputValue = obj.value;
	var strInputType = obj.alt.toLowerCase();
	
	if (strInputType.indexOf("numeric_") > -1 && !IsNumeric(inputValue)) inputValue = "";
	if (strInputType.indexOf("date") > -1 && !IsDate(inputValue)) inputValue = "";
	if (strInputType.indexOf("year") > -1 && !IsYear(inputValue)) inputValue = "";
	//if (strInputType.indexOf("string_num") > -1 && !IsOnlyNumber(inputValue)) inputValue = "";
	//if (strInputType.indexOf("string_eng") > -1 && !IsEnglish(inputValue)) inputValue = "";
	
	obj.value = inputValue;
}


/*********************************************************
功能：  前台校验函数，校验是否相等

参数：  valA：要比较的两个值中的一个

		valB：要比较的两个值中的一个

返回：  boolean。

作者：  leo  
日期：  2003/9/22
'*********************************************************/
function CheckEqual(valA,valB)
{//
	var equalIsOk = true;
	var equalMsg = "字段(标注=号)需要相等,请重新输入!";
	
	if(valA != valB)
	{
		alert(equalMsg);
		equalIsOk = false;
	}

	return equalIsOk;	
}

//返回是否为空
function IsNull(str)
{
	var isN;
	if (str == "" || str == null)
	{isN = true;}
	else
	{isN = false;}
	return isN;
}

//校验字符串是否为数字
function IsNumeric(str)
{
	str = str.toString();
	if (CheckComma(str))
	{
		while (str.indexOf(",") > -1)
		{
			str = str.replace(",","");
		}
	}
	else
	{
		return false;
	}
	re = new RegExp("[-|+]{0,1}[0-9]{1,}[.]{0,1}[0-9]{0,}");
	return str == str.match(re) && str.match(re) != null;
}

//校验字符串是否仅包含数字
function IsOnlyNumber(str)
{
	re = new RegExp("[0-9]{1,}");
	return str == str.match(re) && str.match(re) != null;
}

//检查数字里的逗号是否合法
function CheckComma(str)
{
	var ArrStr = new Array(),pStr = "",fStr= "";
	str = str.toString();
	if (str == "") return true;
	if (str.indexOf(".") > -1)
	{
		ArrStr = str.split(".");
		pStr = ArrStr[0];
		fStr = ArrStr[1];		
	}
	else
	{
		pStr = str;
	}
	
	if (pStr.charAt(0) == "+" || pStr.charAt(0) == "-")
	{
		pStr = pStr.substr(1,pStr.length - 1);
	}
	ArrStr = pStr.split(",");

	if (ArrStr.length == 1) return true;
	for (var i=0;i<ArrStr.length;i++)
	{
		if (i == 0)
		{
			if (ArrStr[i].length < 1 || ArrStr[i].length > 3) return false;
		}
		else
		{
			if (ArrStr[i].length != 3) return false;
		}
	}
	if (fStr.indexOf(",") > -1) return false;
	
	return true;
}

//校验字符串是否为日期
function IsDate(str)
{
	var pattern,Rg1;
	pattern = "[0-9]{4}[-|/]{1}[0-9]{1,2}[-|/]{1}[0-9]{1,2}";
	Rg1 = new RegExp(pattern);
	if (!str == str.match(Rg1) || str.match(Rg1) == null) return false;

	pattern = "([0-9]{4})[-|/]{1}([0-9]{1,2})[-|/]{1}([0-9]{1,2})";
	Rg1 = new RegExp(pattern);
	var arr = Rg1.exec(str);
	
	var year = parseFloat(arr[1]);
	var month = parseFloat(arr[2]);
	var day = parseFloat(arr[3]);

	if (year < 1800 || year > 2999) return false;
	if (month > 12 || month < 1) return false;
	if (day > 31 || day < 1) return false;
	
	if (month < 7 && month % 2 == 0 && day > 30) return false;
	if (month > 8 && month % 2 != 0 && day > 30) return false;
	if(month == 2)
	{
		if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0 && year % 4 == 0))
		{
			if (day > 29) return false;
		}
		else
		{
			if (day > 28) return false;
		}
	}
	
	return true;
}

//校验字符串是否为时间
function IsTime(str)
{
	var re = new RegExp("[0-9]{1,2}[:]{1}[0-9]{1,2}");
	if( str != str.match(re) || str.match(re) == null) return false;

	re = new RegExp("([0-9]{1,2})[:]{1}([0-9]{1,2})");
	var arr = re.exec(str);
	var hour = parseFloat(arr[1]);
	var sec = parseFloat(arr[2]);
	
	if (hour < 0 || hour > 23)return false;
	if (sec < 0 || sec > 59)return false;
	
	return true;
}

function IsYear(str)
{
	var re = new RegExp("[0-9]{4}");
	if( str != str.match(re) || str.match(re) == null) return false;
	if (parseInt(str) < 1000 || parseInt(str) > 9999) return false;
	return true;
}

function IsEnglish(str)
{
	var re = new RegExp("[a-zA-Z0-9]{1,}");
	if( str != str.match(re) || str.match(re) == null) return false;
	return true;
}

function Nz(str)
{
	if(str == "" || !IsNumeric(str))
	{
		return 0;
	}
	else
	{
		while (str.indexOf(",") > -1)
		{
			str = str.replace(",","");
		}
		return parseFloat(str.toString());
	}
}

// 用正则表达式将前后空格用空字符串替代。


function trim(str)
{
    return str.replace(/(^\s*)|(\s*$)/g, "");
}

//模拟Format函数:截取到指定长度并在千位加逗号
function FormatStringForShow(str,flen)
{
	var i;
	var eStr = "";
	var sym = "";
	str = FormatString(str,flen);

	if (str == "" || !IsNumeric(str)) return "";//如果是不合理的数字，返回空


	if (str.charAt(0) == "+" || str.charAt(0) == "-")
	{
		sym = str.charAt(0);
		str = str.substr(1,str.length - 1);
	}
	
	var l = str.lastIndexOf(".");
	
	if (l > 0)
	{
		var ArrStr = str.split(".");
		var pStr = ArrStr[0];
		var fStr = ArrStr[1];
		
		eStr = AddComma(pStr);
		
		eStr = eStr + "." + fStr;
	}
	else
	{
		eStr = AddComma(str);
	}
	eStr = sym + eStr;

	if (!IsNumeric(eStr)) return "";
	if (parseFloat(eStr) == 0) eStr = "0";
	if (eStr.charAt(eStr.length-1) == ".") eStr = eStr.substring(0,eStr.length-1);

	return eStr;
}

//模拟Format函数:四舍五入并截取到指定长度
function FormatString(str,flen)
{
	var i;
	str = str.toString();
	while (str.indexOf(",") > -1)
	{
		str = str.replace(",","");
	}
	
	str = AddZero(str);
	if (str.charAt(str.length-1) == ".") str = str.substring(0,str.length-1);
	
	if (flen < 0) return str;
	if (str == "" || !IsNumeric(str)) return "";
	str = Nz(str).toFixed(flen).toString();//四舍五入
	var l = str.lastIndexOf(".");
	var strlen = str.length;
	
	if (l == -1)//没有小数位


	{
		str += ".";
		for (i=0;i<flen;i++)
		{str += "0";}
		return str;
	}
	else
	{
		if ( flen < (strlen - l - 1) )//需要截取


		{
			return str.substring(0,l + flen + 1);
		}
		else
		{
			for (i=0;i < (flen - (strlen - l - 1));i++)
			{
				str += "0";
			}
			return str;
		}
	}
}

//检查小数点前是否有0，没有0加0，私有函数


function AddZero(str)
{
	var re = new RegExp("[-|+]{0,1}[0-9]{1,}[.]{0,1}[0-9]{0,}");
	if (str == str.match(re) && str.match(re) != null) return str;
	
	var ArrS = new Array();
	
	for (var i=0;i<str.length;i++)//得到数组
	{
		ArrS[i] = str.charAt(i);
	}
	
	for (i = 0;i<ArrS.length;i++)//加0
	{
		if (ArrS[i] == "." && ArrS[i-1] != "0")  ArrS[i] = "0.";
	}
	
	str = "";
	for (i=0;i<ArrS.length;i++)//还原成字串


	{
		str += ArrS[i];
	}

	return str;
}

//加逗号，私有函数


function AddComma(pStr)
{
	var i;
	var eStr = "";
	var ArrS = new Array();
	
	for (i=0;i<pStr.length;i++)//得到数组
	{
		ArrS[i] = pStr.charAt(i);
	}
	
	for (i = pStr.length - 4;i >= 0;i -= 3)//加逗号
	{
		ArrS[i] += ",";
	}
	
	for (i=0;i<ArrS.length;i++)//还原成字串


	{
		eStr += ArrS[i];
	}
	
	return eStr;
}


/******************************
遍历数字格式化Form里的需要格式化的元素，在Page OnLoad 时使用


******************************/
function formatForm_NumberString()
{
	var i,j,e;
	for(i = 0;i < this.document.forms[0].elements.length;i++)
	{
		e = this.document.forms[0].elements[i];
		if (e.type == "text" && e.alt.indexOf("numeric_") > -1 && e.value != "")
		{
			if (e.digit == null || e.digit == "") 
			{
				e.value = FormatStringForShow(e.value,-1);
			} 
			else 
			{
				j = parseInt(e.digit);
				e.value = FormatStringForShow(e.value,j);
			}
		}
	}
}


/******************************
在控件失去焦点时格式化数字


参数：objElement 要格式化的控件


	fLen 小数位长度，如不需制定，则设为-1
******************************/
function FormatValue(objElement,fLen)
{
	var strInputType = objElement.alt.toLowerCase();
	if (strInputType.indexOf("numeric_") > -1)
	{
		objElement.value = FormatStringForShow(objElement.value,fLen);
	}
	
	if (strInputType.indexOf("date") > -1 && !IsDate(objElement.value))
	{
		objElement.value = "";
	}
}

/******************************
得到焦点时，对TextBox值进行格式化
参数：objElement 要格式化的控件


******************************/
function ConvertInput(objElement)
{
	var inputValue = objElement.value;
	var strInputType = objElement.alt.toLowerCase();
	
	if (strInputType.indexOf("numeric_") > -1)
	{
		while (inputValue.indexOf(",") > -1)
		{
			inputValue = inputValue.replace(",","");
		}
		
		objElement.value = inputValue;
	}

	//MoveToTextBoxLast();
}

function MoveToTextBoxLast()
{
	var e = event.srcElement;
	var r = e.createTextRange();
	r.moveStart("character",e.value.length);
	r.collapse(true);
	r.select();
}

//读取Cookie
function readCookie(name)
{
  var cookieValue = "";
  var search = name + "=";
  if(document.cookie.length > 0)
  { 
    offset = document.cookie.indexOf(search);
    if (offset != -1)
    { 
      offset += search.length;
      end = document.cookie.indexOf(";", offset);
      if (end == -1) end = document.cookie.length;
      cookieValue = unescape(document.cookie.substring(offset, end))
    }
  }
  return cookieValue;
}

//写Cookie
function writeCookie(name, value, hours)
{
  var expire = "";
  if(hours != null)
  {
    expire = new Date((new Date()).getTime() + hours * 3600000);
    expire = "; expires=" + expire.toGMTString();
  }
  document.cookie = name + "=" + escape(value) + expire;
}

function SetValue(objid, value)
		{		 		
		   var obj = document.getElementById(objid);
		   if(obj != null)
		   {
		      var tarname = obj.tagName;		      
		      
		      if(tarname == "SPAN")
		      {
		         obj.innerText = value;
		      }
		      else if(tarname=="SELECT")
		      {
		        
		         var selectindex = -1;
		         for(i=0;i<obj.length;i++)
		         {
		            obj.options[i].selected = false;
		            if(obj.options[i].value == value)
		            {
		               selectindex = i;
		            }
		         }
		         if(selectindex >-1)
		         {
					//alert(selectindex);
					obj.options[selectindex].selected = true;
		         }
		         else
		         {
		            var tmp = new Option(value,value);
		            obj.add(tmp);
		            tmp.selected = true;		      		                  
		         }
		      }
		      else if(tarname=="INPUT")
		      {		      
		          if(obj.type.toUpperCase()== "CHECKBOX")
		          {
		             obj.checked = obj.value == value;
		          }
		          else
		          {
		             obj.value = value;
		          }		      
		      }
		      else
		      {
		        obj.value = value;		      
		      }		   
		   }				   
		}
		
function IdCardRegCheck(str)
 {  
  var reg = /^([0-9]{15}|[0-9]{18})$/;
  //var reg = /^([0-9]{18})$/;
  var flag = reg.test(str);
  return flag;
 }


function ShowDialog(url,width,height)
{

		    if(arguments.length <=0) return;
var 		    url = arguments[0];
var today = new Date();
if(url.indexOf("?") >=0)
{
  url = url + "&asdf=" + today;
}
else
{
    url = url + "?asdf=" + today;
}
		     return window.showModalDialog(url,null,"dialogWidth:" + width + ";dialogHeight:" + height + ";resizable:yes;center:yes");
}

function SelectInfo()
		{
		    if(arguments.length <=0) return;
var 		    url = arguments[0];
var today = new Date();
if(url.indexOf("?") >=0)
{
  url = url + "&asdf=" + today;
}
else
{
    url = url + "?asdf=" + today;
}
		     var val = window.showModalDialog(url,null,"dialogWidth:900px;dialogHeight:700px;resizable:yes;center:yes");
		     //alert(val[0]);
		     if(val != null)
		     {
		        var onlyOne = val[0] == null;
		        
		        for(i=1;i<arguments.length;i++)
		        {
		           if(arguments[i] != null && arguments[i] != "")
		           {
     		           document.getElementById(arguments[i]).innerText = onlyOne?val:val[i-1];	 
     		        }
		        }
		        return true;
		       //document.getElementById("txtGYSCode").value = val[0];
		       //document.getElementById("txtGYSCName").innerText = val[1];	 
		       //document.getElementById("txtGYSEName").innerText = val[2];	 
		       //document.getElementById("txtGYSAddress").innerText = val[3];	 		     
		     }
		     else
		     {
		       return false;
		     }
		}
		
		function ReturnSelect()
		{
		     window.returnValue = arguments;
			 window.close(); 	
		}

function GoBack(objname)
{
   var obj = document.all(objname);
   // alert(-1 * parseInt(obj.value));
    window.history.go( -1 * parseInt(obj.value));
}
