/*********************************************
               Function List
 ---------------------------------------------
	checkEmail(name, data, allowNull)
	checkFormDate(name,ctrl,allowNull)
	checkFormEmail(name, ctrl, allowNull)
	checkPassword(pwdCtrl1, pwdCtrl2, allowNull)
	checkFormNum(name,ctrl,allowedNull)
	checkFormString(name,ctrl,allowNull)
	checkFormString(name,ctrl,allowNull,minLen,maxLen)
	checkString(name,data,allowNull)
	getSelectionValues(selectCtrl)
	isValidDate(theYear,theMonth,theDay)
	isValidDateStr(theDate,separator)
	setSelectionOption(the_selection, option_list)
	selectOptionInSelect(the_selection, value)
	selectAllSelections(selectCtrl, selected)
	openFixedWindow(url, title, width, height)
	openWindow(url, title, width, height)
	checkFormPassword(ctrl1, ctrl2, allowNull)
*********************************************/

function checkFormNum(name,ctrl,allowedNull)
{
	var num=ctrl.value;
	if(num.search(/^[0-9]+(\.[0-9]*)?$/gi)!= -1)
		return true;
	else
	{
		if (num=='')
		{
			if (allowedNull)
				return true;
			else
				alert("请输入“" + name + "”一个数字r!");
		}
		else
			alert("“" + name + "”不是一个数字!");
		ctrl.focus();
		return false;
	}
}

function checkString(name,data,allowNull)
{
	var dataStr = data;
	var leftTrim = dataStr.search(/\S/gi);
	if (leftTrim == -1)
	{
		if (allowNull) 
			return 1;
		else
		{
			alert("请输入“" + name + "”!");
			return -2;
		}
	}
	
	if (dataStr.search(/[<>]/gi) != -1)
	{
		alert("" + name + "中包含非法字符<>");
		return -1;
	}
	return 0;
}

function checkFormString(name,ctrl,allowNull)
{
	return checkFormString(name,ctrl,allowNull,-1,-1)
}

function checkFormString(name,ctrl,allowNull,minLen,maxLen)
{
	var dataStr = ctrl.value;
	if (dataStr == null)
	{
		alert("Bad contorl!");
		return false;
	}
	if (allowNull == 0 && dataStr.length < minLen)
	{
		alert("“" + name + "”的长度不能小于 " + minLen + "!" );
		ctrl.focus();
		return false;
	}
	if (allowNull == 0 && dataStr.length > maxLen)
	{
		alert("“" + name + "”的长度不能大于 " + maxLen + "!" );
		ctrl.focus();
		return false;
	}
	var leftTrim = dataStr.search(/\S/gi);
	if (leftTrim == -1)
	{
		if (allowNull)
			return true;
		else
		{
			alert("请输入“" + name + "”！");
			ctrl.focus();
			return false;
		}
	}

	if (dataStr.search(/[<>]/gi) != -1)
	{
		alert("" + name + "中包含非法字符<>");
		ctrl.focus();
		return false;
	}
	return true;
}

function checkFormDate(name,ctrl,allowNull)
{
	var dataStr = ctrl.value;
	if (dataStr == null)
	{
		alert("控件错误！");
		return false;
	}	
	if (allowNull == 0 && dataStr.length == 0)
	{
		alert("“" + name + "”不能为空！");
		ctrl.focus();
		return false;
  	}
	if (isValidDateStr(dataStr, "-"))
		return true;
	else if (isValidDateStr(dataStr, "/"))
	{
		ctrl.value = dataStr.replace(/\//gi, "-");
		return true;
	}
	alert("”" + name + "” 日期格式错误,请输入例如'2005-10-01'的格式！");
	ctrl.focus();
	return false;
}

function checkEmail(name, data, allowNull)
{
	var dataStr = data;
	var leftTrim = dataStr.search(/\S/gi);
	if (leftTrim == -1) 
	{
		if (allowNull)
			return 1;
		else
		{
			alert("请输入一个有效的E-mail地址！");
			return -1;
		}
	}

	var myRegExp = /[a-z0-9](([a-z0-9]|[_\-\.][a-z0-9])*)@([a-z0-9]([a-z0-9]|[_\-][a-z0-9])*)((\.[a-z0-9]([a-z0-9]|[_\-][a-z0-9])*)*)/gi;
	var answerInd = dataStr.search(myRegExp);
	var answerArr = dataStr.match(myRegExp);

	if (answerInd == 0 && answerArr[0].length == dataStr.length)
	{
		return 0;
	}
	alert("请输入一个有效的E-mail地址！");
	return -1;
}

function checkFormEmail(name, ctrl, allowNull)
{
	var dataStr = ctrl.value;
	if (dataStr == null)
	{
		alert("Error control!");
		return false;
	}    
	if ("" == dataStr && 0 == allowNull)
	{
		ctrl.focus();
		alert("“" + name + "”不能为空！");
		return false;
	}
	var leftTrim = dataStr.search(/\S/gi);
	if (leftTrim == -1)
	{
		ctrl.focus();
		alert("请输入一个有效的E-mail地址！");
		return false;
	}

	var myRegExp = /[a-z0-9](([a-z0-9]|[_\-\.][a-z0-9])*)@([a-z0-9]([a-z0-9]|[_\-][a-z0-9])*)((\.[a-z0-9]([a-z0-9]|[_\-][a-z0-9])*)*)/gi;
	var answerInd = dataStr.search(myRegExp);
	var answerArr = dataStr.match(myRegExp);

	if (answerInd == 0 && answerArr[0].length == dataStr.length)
	{
		return true;
	}
	ctrl.focus();
	alert("请输入一个有效的E-mail地址！");
	return false;
}

function checkPassword(pwdCtrl1, pwdCtrl2, allowNull)
{
	if (pwdCtrl1.value == pwdCtrl2.value)
	{
		if (1 == allowNull || "" != pwdCtrl1.value)
			return true;
		else
			alert("密码不能为空！");
	}
	else
		alert("两次输入的密码不一致！");
	pwdCtrl1.focus();
	return false;
}

function isValidDate(theYear,theMonth,theDay)
{
	var theYear=parseInt(theYear, 10)
	var theMonth=parseInt(theMonth, 10)
	var theDay=parseInt(theDay, 10)

	if ((theYear < 1000) || (theYear > 3000))
	{
		return false
	}

	if (theMonth < 1 || theMonth > 12)
	{
		return false
	}
  
	if (theDay < 1 || theDay > 31)
	{
	return false
	}

	if ((theMonth==1 || theMonth==3 || theMonth==5 || theMonth==7 || theMonth==8 || theMonth==10 || theMonth==12) && (theDay <1 || theDay > 31))
	{
		return false
	} 
	else if ((theMonth==4 || theMonth==6 || theMonth==9 || theMonth==11) && (theDay <1 || theDay > 30)){
		return false
	}

	if (theYear%400==0 || (theYear%4==0 && theYear%100!=0))
	{  //闰年
		if (theMonth==2 && (theDay <1 || theDay > 29) )
			return false
	}
	else  //平年
		if (theMonth==2 && (theDay <1 || theDay > 28) )
			return false
	return true
}

function isValidDateStr(theDate,separator)
{
	if (theDate.length>10 || theDate.length<8)
		return false
	idx1=theDate.indexOf(separator)
	if (idx1==-1)
		return false
	idx2=theDate.indexOf(separator,idx1+1)
	if (idx2==-1)
		return false
	
	theYear=theDate.substring(0,idx1)
	theMonth=theDate.substring(idx1+1,idx2)
	theDay=theDate.substring(idx2+1)
	
	return isValidDate(theYear,theMonth,theDay)
}

function setSelectionOption(the_selection, option_list)
{
  var arr_dir, str_dir;
  the_selection.length=0;
  for(var i=0; i<option_list.length; i++)
  {
    	str_dir=new String(option_list[i]);
        arr_dir=str_dir.split("===");
        the_selection.options[i] = new Option();
		the_selection.options[i].value = arr_dir[0];
		the_selection.options[i].text = arr_dir[1];
  }
}

function selectOptionInSelect(the_selection, value)
{
    for (var i=0; i<the_selection.length; i++)
    {
    if (the_selection.options[i].value == value) 	the_selection.options[i].selected = true;
    }
}

function openWindow(url,title,width,height)
{
	var left = (window.screen.availWidth - width) / 2;
	var top = (window.screen.availHeight - height) / 2;
	window.open (url,title,"Height="+height+",Width="+width+",left="+left+",top="+top+",resizable=yes,scrollbars=auto,status=yes");
}

function openFixedWindow(url, title, width, height)
{
	var left = (window.screen.availWidth - width) / 2;
	var top = (window.screen.availHeight - height) / 2;
	window.open (url,title,"Height="+height+",Width="+width+",left="+left+",top="+top+",resizable=no,scrollbars=no,status=0");
}

function getSelectionValues(selectCtrl)
{
	var values = '';
	var s;
	if (selectCtrl == null) 
		return values;
	s = selectCtrl;
	if (s.type)
		if (s.checked)
			return s.value;
		else
			return values;
	for (i=0; i<s.length; i++)
	{
		if (s[i].checked)
		{
			if (values == '')
				values += s[i].value;
			else
				values += ',' + s[i].value;
		}
	}
	return values;
}

function selectAllSelections(selectCtrl, selected)
{
	if (selectCtrl == null) 
		return;
	s = selectCtrl;
	if (s.type)
		s.checked = selected;
	for (i=0; i<s.length; i++)
	{
		s[i].checked = selected;
	}
}

