/***************************************************************************
Copyright (c) 2005 2005 西安交通大学通用软件公司
创建人: 
日  期:     
修改人:	
日  期:   
描  述: 页面数据验证类工具集 
版  本: 1.0 
***************************************************************************/

var ObjToolKit = new Object()


//获取页面的绝对路径
//参数：vPath，相对于WEB应用程序的相对路径，如“public/Login.aspx”
//返回：页面的绝对路径，如“/public/login.aspx”
ObjToolKit.GetAbsoluteUrl = function(vPath)
{
	var vUrl;
	var vPathName;			
	
	vPathName = window.location.pathname;
	
	if(vPathName.indexOf("/") > 0){
		vPathName = "/".concat(vPathName);
	}
	
	if (vPathName.split("/").length > 2){
		vUrl = "/".concat(vPathName.split("/")[1]).concat("/").concat(vPath);
	}else{
		vUrl = "/".concat(vPath);
	}
	
	return vUrl;
}

ObjToolKit.CheckNumberFloat = function (vObj,vCaption,vMinnum,vMaxnum)
{
	vObj.value = ObjToolKit.Trim(vObj.value);
	if (!ObjToolKit.IsNumeric(vObj)){
		vObj.focus();
		alert(vCaption + "必须输入合法的数值!");
		return false;
	}else if (parseFloat(vObj.value) < parseFloat(vMinnum) || parseFloat(vObj.value) > parseFloat(vMaxnum)){
		vObj.focus();
		alert(vCaption + "必须输入" + vMinnum + "到" + vMaxnum + "之间的数值");
		return false;
	}
	return true;
}

ObjToolKit.CheckEmpty = function(vobj,vCaption) 
{
	if (ObjToolKit.IsEmpty(vobj.value)){ 
		alert(vCaption + "必须输入!");
		vobj.focus();
		return false;
	}             
	return true;  
}
	
ObjToolKit.CheckDate = function(vobj,vCaption,vCanbeblank)
{
	var vDate;    
	var vValid;  
	
	vobj.value = ObjToolKit.Trim(vobj.value);
	
	vDate = vobj.value;
	
	var reg = /^(\d{4})(-)(\d{2})\2(\d{2})$/;
	var r = vDate.match(reg);
	
	vValid = false;
	
	if( vDate == "" && vCanbeblank){
		vValid =  true;
	}else if ( r == null){
		vValid = false;
	}else{ 
	
		var d = new Date(r[1], r[3]-1,r[4]);
		var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate();
		
		vDate = r[1]+r[2]+((r[3]-1)+1)+r[2]+((r[4]-1)+1);
	
		vValid = (newStr == vDate);
	}
	
	if (!vValid){
		alert (vCaption + "必须按yyyy-mm-dd的格式输入合法的日期!" + "例如：2001-12-01。");
		vobj.focus();
	}
	
	return vValid
}
	
ObjToolKit.CheckDate_NY = function(vobj,vCaption,vCanbeblank)
{
	vobj.value = ObjToolKit.Trim(vobj.value);
	if (isdate(vobj.value) || (vobj.value =="" && vCanbeblank)){
		return true;
	}else{
		alert(vCaption + "必须按yyyy-mm的格式输入合法的日期!" + "例如：2001-12。");
		vobj.focus();
		return false;
	}
}

ObjToolKit.IsPositiveInteger = function(vObj) {
    var regTest = /^\d+$/;
    return regTest.test(vObj);
}

ObjToolKit.IsNumeric = function(vObj)
  { 
	if(vObj.value.length<=0) return true;
    if(vObj.value==0) return true;

    f=vObj.value.replace(/[$,]/, "");
    v=parseFloat(vObj.value);
    if( isNaN(v) || v != vObj.value || v==0 || f.match(/\s/) )
      { 
        return false;
      }
    else return true;
 }
 
ObjToolKit.CheckNumber = function (vObj,vCaption,vMinnum,vMaxnum)
{
	vObj.value = ObjToolKit.Trim(vObj.value);
	if (!ObjToolKit.IsNumeric(vObj)){
		alert(vCaption + "必须输入合法的数值!");
		vObj.focus();
		return false;
	}else if (parseInt(vObj.value) < parseInt(vMinnum) || parseInt(vObj.value) > parseInt(vMaxnum)){
		alert(vCaption + "必须输入" + vMinnum + "到" + vMaxnum + "之间的数值");
		vObj.focus();
		return false;
	}
	//vObj.value = parseInt(vObj.value);
	return true;
}
	
ObjToolKit.CheckLength = function (vobj,vCaption,vLength)
{
	var i,ll,ch;
	
	ll=0;
	vobj.value = ObjToolKit.Trim(vobj.value);
    for (i=0;i<vobj.value.length;i++){    	
      	if (vobj.value.charCodeAt(i) < 255 && vobj.value.charCodeAt(i) > 0){
			 ll = ll+1;
		}else{
			ll=ll+2
		}
	}
    	
	if (ll > vLength){
		alert(vCaption + "只能输入" + vLength + "个字符!");
		vobj.focus();
		return false;
	}
	
	return true;
}
	
ObjToolKit.IsEmpty = function(vValue)
{
	var whitespace = " \t\n\r";
	var i;
	
	if((vValue == null) || (vValue.length == 0)){
		return true;
	}
	
	for (i = 0; i < vValue.length; i++){   
		var c = vValue.charAt(i);
		if (whitespace.indexOf(c) == -1){ 
			return false;
		}
    }
    return true;
}

/*
ObjToolKit.Trim = function(vValue)
{
	var str="";
	var sChar;
	
	if (vValue == null){
		return null;
	}else{
		for(var i=0;i<vValue.length;i++){
			sChar = vValue.substring(i,i+1)
			if(sChar!=" "){
				str += sChar;
			}
		}
	}
	return str;
}
*/

ObjToolKit.Trim = function(vValue)
{
	if (vValue == null){
		return null;
	}else{
		return vValue.replace(/(^\s*)|(\s*$)/g, '');		
	}	
}

ObjToolKit.OpenWindow = function(vUrlPath,vName,vWidth,vHeight,vTop,vLeft)
{
	var objWin;
	var vParams;
					
	if (vWidth == "") vWidth = "790";
	if (vHeight == "") vHeight = "480";
	if (vTop == "") vTop = "100";
	if (vLeft == "") vLeft = "100";
	
	vParams = "fullscreen=0,toolbar=0,location=0,directories=0,status=0,menubar=0,";
	vParams += "scrollbars=1,resizable=1,width=" + vWidth + ",height=" + vHeight;
	vParams += ",top=" + vTop + ",left=" + vLeft;
	
	objWin = window.open(vUrlPath,vName,vParams,'');	
	objWin.focus();	
	
	return objWin;
}

ObjToolKit.PopDialog = function (vUrlPath,vObj,vWidth,vHeight)
{
	var vReturnValue;
	var vParams;
	
	if (vWidth == "") vWidth = "280";
	if (vHeight == "") vHeight = "180";
	
	vParams = "scrollbar:no;status:no;resizable:no;unadorne:yes;";
	vParams += "dialogHeight:" + vHeight + ";dialogWidth:" + vWidth;
	
	vReturnValue = showModalDialog(vUrlPath,vObj,vParams);
	
	return vReturnValue;
}
//得到当前日期字符串
ObjToolKit.GetCurrentDate = function ()
{
	var vReturnValue;	
	
	var today;
	var s_day;
	
	today = new Date();

	if(today.getDay()==0) s_day = "星期日";
	if(today.getDay()==1) s_day = "星期一";
	if(today.getDay()==2) s_day = "星期二";
	if(today.getDay()==3) s_day = "星期三";
	if(today.getDay()==4) s_day = "星期四";
	if(today.getDay()==5) s_day = "星期五";	
	if(today.getDay()==6) s_day = "星期六";
	
	vReturnValue  = (today.getYear()) + "年" + (today.getMonth() + 1 ) + "月" + today.getDate() + "日 " + s_day;
		
	return vReturnValue;
}

//大写金额转小写金额
ObjToolKit.ChineseToNumber = function (num)
{
	var numArray = new Array()
	var unit = "亿万圆$"
	for (var i=0; i<unit.length; i++)
	{
		var re = eval("/"+ (numArray[i-1] ? unit.charAt(i-1) : "") +"(.*)"+unit.charAt(i)+"/")
		if (num.match(re))
		{
			numArray[i] = num.match(re)[1].replace(/^拾/, "壹拾")
			numArray[i] = numArray[i].replace(/[零壹贰叁肆伍陆柒捌玖]/g, function ($1)
			{
				return "零壹贰叁肆伍陆柒捌玖".indexOf($1)
			})
			numArray[i] = numArray[i].replace(/[分角拾佰仟]/g, function ($1)
			{
				return "*"+Math.pow(10, "分角 拾佰仟 ".indexOf($1)-2)+"+"
			}).replace(/^\*|\+$/g, "").replace(/整/, "0")
			numArray[i] = "(" + numArray[i] + ")*"+Math.ceil(Math.pow(10, (2-i)*4))
		}
			else	numArray[i] = 0
	}
	return eval(numArray.join("+"))
}

//小写金额转大写金额
ObjToolKit.NumberToChinese = function (num)
{
	if (isNaN(num) || num > Math.pow(10, 12)) return ""
	var cn = "零壹贰叁肆伍陆柒捌玖"
	var unit = new Array("拾佰仟", "分角")
	var unit1= new Array("万亿", "")
	var numArray = num.toString().split(".")
	var start = new Array(numArray[0].length-1, 2)

	function toChinese(num, index)
	{
		var num = num.replace(/\d/g, function ($1)
		{
			return cn.charAt($1)+unit[index].charAt(start--%4 ? start%4 : -1)
		})
		return num
	}

	for (var i=0; i<numArray.length; i++)
	{
		var tmp = ""
		for (var j=0; j*4<numArray[i].length; j++)
		{
			var strIndex = numArray[i].length-(j+1)*4
			var str = numArray[i].substring(strIndex, strIndex+4)
			var start = i ? 2 : str.length-1
			var tmp1 = toChinese(str, i)
			tmp1 = tmp1.replace(/(零.)+/g, "零").replace(/零+$/, "")
			tmp1 = tmp1.replace(/^壹拾/, "拾")
			tmp = (tmp1+unit1[i].charAt(j-1)) + tmp
		}
		numArray[i] = tmp
	}

	numArray[1] = numArray[1] ? numArray[1] : ""
	numArray[0] = numArray[0] ? numArray[0]+"圆" : numArray[0], numArray[1] = numArray[1].replace(/^零+/, "")
	numArray[1] = numArray[1].match(/分/) ? numArray[1] : numArray[1]+"整"
	return numArray[0]+numArray[1]
}

//创建XMLHttpRequest对象
ObjToolKit.newXMLHttpRequest = function()
{
	var XmlRequest = false;
	
	if (!XmlRequest)
	{
		if (window.XMLHttpRequest) 
		{   
			XmlRequest = new XMLHttpRequest();
		}
		else if (window.ActiveXObject) 
		{
			try 
			{
				XmlRequest = new ActiveXObject("Msxml2.XMLHTTP");
			} 
			catch (e1) 
			{
				try 
				{
					XmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
				} 
				catch (e2) 
				{
					alert("创建XMLHttpRequest对象失败！"+e2);
				}
			}
		}
	}
	//
	return XmlRequest;
}
//调用楼幢编辑页面
ObjToolKit.DoPopBuildingEdit = function(vBuilding)
{
    var vWin;
	var vUrl = ObjToolKit.GetAbsoluteUrl("BuildingEdit.aspx?");	
	    vUrl += "LZID="+vBuilding.LZID+"&XMBH="+vBuilding.XMBH+"";
	    	
	return vWin = ObjToolKit.PopDialog(vUrl,vBuilding,"670pt","430pt");
	//window.open(vUrl,'');
}

//调用项目简介页面
ObjToolKit.DoPopProjectInfo = function(vXMBH)
{
    var vWin;
	var vUrl = ObjToolKit.GetAbsoluteUrl("ProjectSummary.aspx?");	
	    vUrl += "XMBH="+vXMBH+"";
	    	
	return vWin = ObjToolKit.PopDialog(vUrl,vXMBH,"600pt","400pt");
	//window.open(vUrl,'');
}

//调用销售人员页面
ObjToolKit.DoPopSalesManList = function(vXMBH)
{
    var vWin;
	var vUrl = ObjToolKit.GetAbsoluteUrl("SalesManList.aspx?");	
	    vUrl += "XMBH="+vXMBH+"";
	    	
	return vWin = ObjToolKit.PopDialog(vUrl,vXMBH,"600pt","435pt");
	//window.open(vUrl,'');
}

		
//调用楼幢弹出页面查询
//参数vBuildingUnit：预留的入口参数
//返回：vWin（预留）
ObjToolKit.DoPopBuildingQuery = function(vOption)
{
    var vWin;
	var vUrl = ObjToolKit.GetAbsoluteUrl("RelationLink/LinkBuildingInfor.aspx?");	
	    vUrl += "LZID="+vOption+"";
	
	return vWin = ObjToolKit.PopDialog(vUrl,vOption,"900pt","420pt");
}

//调用合同打印页面
ObjToolKit.ContractPrint = function(vOption)
{
	var vWin;
	var vUrl;
	var vParams;
	
	if (vOption.length < 1)
	{
		alert("错误！合同登记号为空！");
		return;
	}

	vParams = "fullscreen=0,toolbar=0,location=0,directories=0,status=1,menubar=0,";
	vParams += "scrollbars=1,resizable=0,width=720,height=710,top=0pt,left=200";
		
	vUrl = ObjToolKit.GetAbsoluteUrl("Contract/ContractPrint.aspx?");
	vUrl += "HTDJH="+vOption.split('|')[0]+"";	
	
	return vWin = window.open(vUrl,"",vParams);
}
//调合同签定
ObjToolKit.ContractOK = function(vOption)
{
	var vWin;
	var vUrl;
	var vParams;	
	if (vOption.length < 1)
	{
		alert("错误！合同登记号为空！");
		return;
	}

	vParams = "fullscreen=0,toolbar=0,location=0,directories=0,status=1,menubar=0,";
	vParams += "scrollbars=1,resizable=0,width="+window.screen.width+",height="+window.screen.height+",top=0pt,left=200";
			
	vUrl = ObjToolKit.GetAbsoluteUrl("Contract/ContractText.aspx?");
	vUrl += "HTDJH="+vOption.split('|')[0]+"";	
	
	return vWin = ObjToolKit.PopDialog(vUrl,vOption,window.screen.width,window.screen.height);
}

//调合同 Edit by hua 2008-01-29
ObjToolKit.ContractUrl = function(vOption)
{	
	var vWin;
	var vUrl;
	var vParams;	
	

	vParams = "fullscreen=0,toolbar=0,location=0,directories=0,status=1,menubar=0,";
	vParams += "scrollbars=1,resizable=0,width="+window.screen.width+",height="+window.screen.height+",top=0pt,left=200";
			
	vUrl = ObjToolKit.GetAbsoluteUrl(vOption);
	
	return vWin = ObjToolKit.PopDialog(vUrl,vOption,window.screen.width,window.screen.height);
}
ObjToolKit.CheckInteger = function (vObj)
{
	vObj.value = ObjToolKit.Trim(vObj.value);
	
	if (!/^(-|\+)?\d+$/.test(vObj.value)){
		return false;
	}

	return true;
}

//新的小写金额转大写
ObjToolKit.NewNumberToChinese = function (p_money)
{
if (ObjToolKit.Trim(p_money) == "" || isNaN(Math.floor(p_money)))
	  return "";
	
	var aUpperNumber = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖");
	var aUnit1 = new Array("拾", "佰", "仟");
	var aUnit2 = new Array("元", "万", "亿", "兆");
	var aUnit3 = new Array("角", "分");
												
	var r = "";
	var sMoney = Math.abs(p_money).toString();
	var sIntPart = "";
	var sOddment = "";

	var iPos = sMoney.indexOf(".");
	if (iPos >= 0 && sMoney.substr(iPos + 1, sMoney.length - iPos - 1) != "")
	{
		sIntPart = sMoney.substr(0, iPos);
		sOddment = sMoney.substr(iPos + 1, sMoney.length - iPos - 1);
		if (sOddment.length > 2)
		{
			sOddment = sOddment.substr(0, 2);
		}
		if (sOddment.length > 1 && sOddment.substr(1, 1) != "0")
		{
			r = r + aUpperNumber[sOddment.substr(1, 1)] + aUnit3[1];
			if (sOddment.substr(0, 1) != "0")
				r = aUpperNumber[sOddment.substr(0, 1)] + aUnit3[0] + r;
			else
				r = "零" + r;
		}
		else
		{
			r = aUpperNumber[sOddment.substr(0, 1)] + aUnit3[0] + r;
		}
	}
	else
	{

		if (iPos >= 0)
			sIntPart = sMoney.substr(0, iPos);
		else
			sIntPart = sMoney;
		r = "整";
	}

	for (var i = 0; i < sIntPart.length; i++)
	{
		var iUnit1;
		switch ((i + 1) % 4)
		{
			case 0:
				iUnit1 = 2;
				break;
			case 2:
				iUnit1 = 0;
				break;
			case 3:
				iUnit1 = 1;
				break;
			default:
				iUnit1 = -1;
				break;
		}
		var iUnit2;
		switch ((i + 1) % 4)
		{
			case 1:
				switch (Math.floor((i + 1) / 4))
				{
					case 0:
						iUnit2 = 0;
						break;
					case 1:
						iUnit2 = 1;
						break;
					case 2:
						iUnit2 = 2;
						break;
					default:
						iUnit2 = 3;
						break;
				}
				break;
			default:
				iUnit2 = -1;
				break;
		}

		var iNum = sIntPart.substr(sIntPart.length - i - 1, 1);
		if (iNum != 0)
		{
			if (iUnit1 != -1)
			{
				if (iUnit2 != -1)
				{
					if (r.substr(0, 1) == aUnit1[0] || r.substr(0, 1) == aUnit1[1]
						|| r.substr(0, 1) == aUnit1[2] || r.substr(0, 1) == aUnit2[1]
						|| r.substr(0, 1) == aUnit2[2] || r.substr(0, 1) == aUnit2[3])
						r = r.substr(1, r.length - 1);
					r = aUpperNumber[iNum] + aUnit1[iUnit1] + aUnit2[iUnit2] + r;
				}
				else
					r = aUpperNumber[iNum] + aUnit1[iUnit1] + r;
			}
			else
			if (iUnit2 != -1)
			{
				if (r.substr(0, 1) == aUnit1[0] || r.substr(0, 1) == aUnit1[1]
					|| r.substr(0, 1) == aUnit1[2] || r.substr(0, 1) == aUnit2[1]
					|| r.substr(0, 1) == aUnit2[2] || r.substr(0, 1) == aUnit2[3])
					r = r.substr(1, r.length - 1);
				r = aUpperNumber[iNum] + aUnit2[iUnit2] + r;
			}
		}
		else
		{
			if (iUnit2 >= 0 && iUnit2 <= 3 && sIntPart.length > 1)
			{
				
				if (r.substr(0, 1) == aUnit1[0] || r.substr(0, 1) == aUnit1[1]
					|| r.substr(0, 1) == aUnit1[2] || r.substr(0, 1) == aUnit2[1]
					|| r.substr(0, 1) == aUnit2[2] || r.substr(0, 1) == aUnit2[3])
					r = r.substr(1, r.length - 1);
				r = aUnit2[iUnit2] + r;
			}
			else if (i != sIntPart.length - 1 && r.substr(0, 1) != aUpperNumber[iNum]
				&& r.substr(0, 1) != aUnit2[0] && r.substr(0, 1) != aUnit2[1]
				&& r.substr(0, 1) != aUnit2[2] && r.substr(0, 1) != aUnit2[3])
				{
				r = aUpperNumber[iNum] + r;
				}
			else
			{
				if (r =="整")
					r=aUpperNumber[iNum]+aUnit2[0]+r;
			}
		}
	}
	if (p_money < 0)
		r = "负" + r;
	return r;
}
//方法给输入框的onpaste事件
//功能屏蔽非数字的粘贴
ObjToolKit.OnlyNumPaste = function(obj,ipoint)
{
	var PasteString = window.clipboardData.getData("Text");
	var reg = /^\d+?.?\d+?$/;//正则表达式;
	var r = PasteString.match(reg);
	if(r == null)
	{	
		//没有通过
		window.event.returnValue = 0;
		return;
	}
	else
	{	
		if(PasteString.length > obj.maxLength)
		{
			window.event.returnValue = 0;
			return;
		}		
		if((PasteString.length - 1) - PasteString.indexOf('.')  > ipoint)
		{	
			
			window.event.returnValue = 0;
			return;
		}
		obj.value = "";
		window.event.returnValue = 1;
		return;
	}
}