/***************************************************************************
Copyright (c) 2005 2005 西安斯福特软件公司
创建人: 
日  期: 
修改人:	
日  期: 
描  述: 页面数据验证类工具集
版  本: 1.0
***************************************************************************/

var ObjToolKit = new Object()

ObjToolKit.CheckEmpty = function(vobj,vCaption)
{
	try
	{
		if (ObjToolKit.IsEmpty(vobj.value)){
			alert(vCaption + "必须输入！");
			vobj.focus();
			return false;
		}	
		return true;
	}catch(e){
		return false;
	}
}
ObjToolKit.CheckEmpty1 = function(vobj,vCaption)
{
	try
	{
		if (ObjToolKit.IsEmpty(vobj.value)){
			alert(vCaption + "不能为空！");
			vobj.focus();
			return false;
		}	
		return true;
	}catch(e){
		return false;
	}
}	
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.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.CheckInteger = function (vObj)
{
	vObj.value = ObjToolKit.Trim(vObj.value);
	
	if (!/^(-|\+)?\d+$/.test(vObj.value)){
		return false;
	}

	return true;
}

ObjToolKit.CheckPositiveInteger = function (vObj,vCaption,vMinnum,vMaxnum)
{
	vObj.value = ObjToolKit.Trim(vObj.value);
	
	if (! /(^\d+$)|(^\+?\d+$)/.test(vObj.value)){
		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;
	}
	
	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.RestrictLength = 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.OpenWindow = function(vUrlPath,vName,vWidth,vHeight,vTop,vLeft)
{
	var objWin;
	var vParams;
					
	if (vWidth == "") vWidth = "790";
	if (vHeight == "") vHeight = "480";
	
	if (vTop == "") 
	{ 
		var vParams = new Array();	
		vParams = vHeight.split("pt");
		vTop = window.screen.availHeight/2 - vParams[0]/2;
	}
	if (vLeft == "") 
	{
	    var vParams = new Array();	
		vParams = vWidth.split("pt");
	    vLeft  = window.screen.availWidth/2 - vParams[0]/2 ;
	}
	
	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.PopModelLessDialog = function (vUrlPath,vObj,vWidth,vHeight)
{
	
	
	var vReturnValue;
	var vParams;
		
	if (vWidth == "") vWidth = "280";
	if (vHeight == "") vHeight = "180";
	
	
	vParams = "scrollbar:no;status:no;resizable:yes;unadorne:yes;";
	
	vParams += "dialogHeight:" + vHeight + ";dialogWidth:" + vWidth;
	
	vReturnValue = showModelessDialog(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.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.CheckOnlyNum = function (obj,value)
{
	
	var arrList = new Array();//此处添加可输入的按键编码初始化数组
	var point = 46; //小数点编码
	var Enter = 13;//回车键编码
	//获取当前选中的字符串
	var SelectionString = document.selection.createRange().duplicate().text; //选择文本域
	var afterpoint	= value;//小数点后的位数
	var IsArgee		= false; //是否输入
	var CurrKeyCode = event.keyCode;
	
	//判断当前输入是否为数字
	if(event.keyCode>=48 && event.keyCode<=57)
	{
		//满足输入数字条件处理
		IsArgee = true;
	}else
	{	//非数字条件处理
		switch(CurrKeyCode)
		{
			case point://输入的是小数点
				if(obj.value.indexOf('.') == -1 && (afterpoint != 0))
				{
					if(obj.value.length == 0)
					{	
						obj.value = 0;
						IsArgee = true;
					}else
					{
						IsArgee = true;
					}
				}else
				{
					IsArgee = false;	
				}
				break;
			case Enter: //回车
				break;
			default :		//默认
				for(i in arrList)
				{
					if(CurrKeyCode == arrList[i])
					{
						//此处可添加非数字但允许输入代码
						IsArgee = true;
						break;
					}else
					{
						IsArgee = false;
					}
				}
				break;
		}
	}
	//控制输入位数
	if(IsArgee)
	{
		//存在小数点并且保留小数位数不是0
		if((obj.value.indexOf('.') != -1) && (afterpoint != 0))
		{
			//判断光标在小数点前还是后
			if(obj.value.indexOf('.') < ObjToolKit.getCursorPos(obj))
			{
				if((obj.value.length - 1) - obj.value.indexOf('.')  == afterpoint)
				{
					//如果当前文本框存在被选中的字符
					if(SelectionString.length > 0)
					{
						IsArgee = true;	
					}else
					{
						IsArgee = false;	
					}
				}
			}else
			{
				if(obj.maxLength < obj.value.length)
				{
					IsArgee = true;
				}
			}
		}else
		{
			//不存在小数位
			if((obj.maxLength - obj.value.length) <= (afterpoint+1) && afterpoint != 0)
			{	
				//最后一位可补小数点
				if(CurrKeyCode == point)
				{
					IsArgee = true;
				}else
				{
					//如果当前文本框存在被选中的字符
					if(SelectionString.length > 0)
					{
						IsArgee = true;	
					}else
					{
						IsArgee = false;	
					}
				}
			}
		}
	}
	if(IsArgee)//判断输入是否满足条件
	{
		window.event.returnValue = 1;
		return;
	}else
	{
		
		window.event.returnValue = 0;
		return;
	}
}
//获取当前光标在文本中的位置
ObjToolKit.getCursorPos = function(obj)
{
  var rngSel = document.selection.createRange();//建立选择域
  var rngTxt = obj.createTextRange();//建立文本域
  var flag = rngSel.getBookmark();//用选择域建立书签
  rngTxt.collapse();//瓦解文本域到开始位,以便使标志位移动
  rngTxt.moveToBookmark(flag);//使文本域移动到书签位
  rngTxt.moveStart('character',-obj.value.length);//获得文本域左侧文本
  str = rngTxt.text.replace(/\r\n/g,'');//替换回车换行符
  return(str.length);//返回文本域文本长度
}
//文本域限制长度
ObjToolKit.LimitInputKeyPress = function (vObj,vLength)
{
	if(vObj.value.length >= vLength)
	{
		window.event.returnValue = 0;
		return;
	}
	window.event.returnValue = 1;
	return; 
}

ObjToolKit.LimitInputKeyUp = function (vObj,vLength)
{
	var vStart = "";
	var vEnd = "";
	var vCursor = 0;
	var vCut = 0;
	if(vObj.value.length == vLength)
	{
		window.event.returnValue = 0;
		return;
	}
	else if (vObj.value.length > vLength)
	{
		vCursor = ObjToolKit.getCursorPos(vObj);
		vCut = vLength - (vObj.value.length - vCursor);
		
		vStart = vObj.value.substr(0,vCut);		
		
		vEnd = vObj.value.substr(vCursor,vObj.value.length);
		
		vObj.value = vStart + vEnd;
	}
	
	window.event.returnValue = 1;
	return;
}

ObjToolKit.LimitInputOnPaste = function (vObj,vLength) 
{
	var PasteString = window.clipboardData.getData("Text");
	var vStart = "";
	var vEnd = "";
	var vPaste = "";
	var vCursor = 0;
	var vCut = 0;
	if(vObj.value.length + PasteString.length > vLength)
	{
		if(vObj.value.length >= vLength)
		{
			window.event.returnValue = 0;
			return;
		}
		else
		{
			vCursor = ObjToolKit.getCursorPos(vObj);
			if(vCursor > 0)
			{
				vStart = vObj.value.substr(0,vCursor);
			}
			vEnd = vObj.value.substr(vCursor,vObj.value.length);
			vCut = PasteString.length - (vObj.value.length + PasteString.length - vLength);
			
			vPaste = PasteString.substr(0,vCut);
			window.clipboardData.setData("Text", vPaste);
		}
	}
	window.event.returnValue = 1;
	return;
}

//ADD 2010-06-08 BY WANGBIN
ObjToolKit.IsPositiveInteger = function(vObj) 
{
    var regTest = /^\d+$/;
    return regTest.test(vObj);
}
//方法给输入框的onpaste事件
//功能屏蔽非数字的粘贴
ObjToolKit.OnlyNumPaste = function(obj, ipoint) {

    var PasteString = window.clipboardData.getData("Text");
    var reg = /^\d+?.{0,1}\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;
    }

}