/*set focus, usually after error message alter
input parameter: objects(text box, combo box...)
output: no
*/
function objfocus(o)
{
o.select();
o.focus();
}

/*Get days of the month
input parameter_1: year value,
input parameter_2: month value, 
output return number of days of that value*/
function Date_getDay(aiYear,aiMonth){
 var loDay = [0,31,28,31,30,31,30,31,31,30,31,30,31];
 if (aiYear%4==0) loDay[2] = 29;
 return loDay[aiMonth];
}

/*check format of date value, 
input parameter: date value from text box,
output: return true or false
*/
function Date_istrue(asDate){
 var lsDate  = asDate + "";
 var loDate  = lsDate.split("-");
 if (loDate.length!=3) return false; 
 var liYear  = parseInt(loDate[0]);
 var liMonth = parseInt(loDate[1]);
 var liDay   = parseInt(loDate[2]);
 if ((loDate[0].length>4)||(loDate[1].length>2)||(loDate[2].length>2)) return false;
 if (isNaN(liYear)||isNaN(liMonth)||isNaN(liDay)) return false;
 if ((liYear<1900)||(liYear>3000)) return false;
 if ((liMonth>12)||(liMonth<=0))   return false;
 if (Date_getDay(liYear,liMonth)<liDay) return false;
 return !isNaN(Date.UTC(liYear,liMonth,liDay));
}

/*please use new check date function, this function is keep for old program.
check date, check the format of date value, and return error message if the format is wrong.
input parameter_1: textbox object, 
input parameter_2: check if the date is available(input date < today ), true is check, false is no checking
input parameter_3: message to promp out.
output: error message; if output message is "", means no error.
*/
function checkdate(obj,avl,mes)
{
var error="",today=new Date;
if (Date_istrue(obj.value)==false) 
	{
	error=mes+"格式填写不正确";
	obj.focus();
	}
else if (avl==true)
	{
	if (Date.parse(today)>(Date.parse(obj.value.replace(/\-/g, '/')))) 
		{
		error=mes+"填写过期！";
		obj.focus();
		}
	}
return error;
}

/*new check date function, check the format of date value, and return error message if the format is wrong.
input parameter_1: textbox object, 
input parameter_2: whether date is optional, true for optional, false for mandatory,
input parameter_3: check if the date is available(input date < today ), true is check, false is no checking
input parameter_4: message to promp out.
output: error message; if output message is "", means no error.
*/
function newcheckdate(obj,emp,avl,mes)
{
var error="",today=new Date;

if (emp==false && trimblank(obj.value)== "")
	{
	error="请填写"+mes;
	obj.focus();
	}
else if (trimblank(obj.value)!= "" && Date_istrue(obj.value)==false) 
	{
	error=mes+"格式填写不正确";
	obj.focus();
	}
else if (trimblank(obj.value)!= "" && avl==true)
	{
	if (Date.parse(today)>(Date.parse(obj.value.replace(/\-/g, '/')))) 
		{
		error=mes+"填写过期！";
		obj.focus();
		}
	}
return error;
}

/*
check selection box(combo box), one item must be selected.
input parameter_1: object(selection box),
input parameter_2: error message,
output: error message.
*/
function checkselect(obj,mes)
{
var error="";
if (obj.options[obj.selectedIndex].text.toString()=="请选择")
	{
	error="请选择"+mes;
	obj.focus();
	}
return error;	
}
/*
check radio box, one radio box must be selected.
input parameter_1: object(radio box),
input parameter_2: error message,
output: error message.
*/
function radiochecked(obj,mes)
{
var error="请选择"+mes;
for(var i=0;i<obj.length;i++)
	{
	if (obj[i].checked)
		{
		error="";
		}
	}
if (error!="") objfocus(obj[0]);
return error;	
}
/*
checking for check box, at least one box is selected.
input parameter_1: object(check box),
input parameter_2: error message,
output: error message.
*/
function checkbox(obj,mes)
{
var error="请选择"+mes;
for(var i=0;i<obj.length;i++)
	{
	if (obj[i].checked)
		{
		error="";
		}
	}
if (error!="") objfocus(obj[0]);
return error;	
}
/*
trim blank
input parameter_1: object(text box)
output: text after trimed.
*/
function trimblank(x)
{
while((x.length>0) && (x.charAt(0)==' '))
x = x.substring(1,x.length);
while((x.length>0) && (x.charAt(x.length-1)==' '))
x = x.substring(0,x.length-1);
return x;
}
/*
check page number, to ensure input text is number, and less than max page number. 
input parameter_1: object(text box),
input parameter_2: max page number.
output: error message.
*/
function checkpage_no(obj,n)
{
var error="",temp="0123456789";
if (trimblank(obj.value)=="") error="请填写页数";
else 
	{
	for (var i=0;i<obj.value.length;i++)
		{
		if (temp.indexOf(obj.value.charAt(i))==-1) error="页数填写不正确";
		}
	if (error==""&&(parseInt(obj.value)<1||parseInt(obj.value)>n)) error="页数超出范围";
	}
if (error!="") objfocus(obj);
return error;
}

/*
check text box, 
input parameter_1: text box,
input parameter_2: whether the text box is optional, true for optional, false for mandatory.
input parameter_3: min length, if text box is not empty,
input parameter_4: max length, if text box is not empty,
input parameter_5: error message, input name of the text box for.
output: error message.
*/
function checktext(obj,emp,lleng,mleng,mes)//检测是否空和长度,emp=true时可空,emp=false时不可空
{
var error="";
if (emp==false)	
	{
	if (trimblank(obj.value)=="") error="请填写"+mes;
	else if (obj.value.length<lleng||obj.value.length>mleng) error=mes+"长度应在"+lleng+"-"+mleng+"之间";
	}
else if (obj.value!=""&&(obj.value.length<lleng||obj.value.length>mleng)) error=mes+"长度应在"+lleng+"-"+mleng+"之间";
if (error!="") objfocus(obj);
return error;
}
/*
compair the string of a and b.
input parameter_1: string a,
input parameter_2: string b,
input parameter_3: error message, should be name of the compair content.
output: return error message.
*/
function checkconform(a,b,mes)//检测是否一致
{
var error="";
if (a.value!=b.value)
	{
	error = "两次输入的"+mes+"不一致!";
	objfocus(b);
	}
return error;
}

/*
check the format of email
input parameter_1: email address,
output: error message.
*/

function checkemail (s)//验证E-MAIL格式函数
{
var error="",regu = "^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*[0-9a-zA-Z]+))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}|net|NET|com|COM|gov|GOV|mil|MIL|org|ORG|edu|EDU|int|INT)$";
var re = new RegExp(regu);
if (trimblank(s.value)=="")
	{
	error="请填写EMail";
	objfocus(s);
	}
else if (s.value.length >80 ||s.value.length <5)
	{
	error="Email地址长度应为5-80位之间!";
	objfocus(s);
	}
else if (s.value.search(re) == -1)
	{
	error="请输入有效合法的E-mail地址 ！";
	objfocus(s);
	}
return error;
}

/*
check the format of phone number,
input parameter_1: phone number,
input parameter_2: whether the phone number is optional, true for optional, false for mandatory,
output: error message.
*/

function checkphone(b,emp)//验证电话格式函数
{
var a,shuzhu,error="",temp="0123456789-";
a=b.value;

if (emp==false)
	{
	if (trimblank(a)=="") error="请填写电话号码";
	else
		{
		for (var i=0;i<a.length;i++)
			{
			if (temp.indexOf(a.charAt(i))==-1)
				{
				error="您的电话号码应该是数字、减号，不允许出现其他字符!\n如:\n020-88888888\n13812345678";
				}
			}
		}		
	if (error=="")//验证电话号码格式函数
		{			
		shuzhu=a.split("-");
		if (shuzhu.length==1&&shuzhu[0].length!=11) error="电话号码填写不规范 !\n固话或小灵通前要加区号!\n如:\n020-88888888\n13800880088";
		else if (shuzhu.length==2&&!((shuzhu[0].length==3||shuzhu[0].length==4)&&(shuzhu[1].length==7||shuzhu[1].length==8))) error="电话号码填写不规范 !\n固话或小灵通前要加区号!\n如:\n020-88888888\n13800880088";
		}
	}
else if (a!="")
	{
	for (var i=0;i<a.length;i++)
		{
		if (temp.indexOf(a.charAt(i))==-1)
			{
			error="您的电话号码应该是数字、减号，不允许出现其他字符!\n如:\n020-88888888\n13812345678";
			}
		}	
	if (error=="")//验证电话号码格式函数
		{			
		shuzhu=a.split("-");
		if (shuzhu.length==1&&shuzhu[0].length!=11) error="电话号码填写不规范 !\n固话或小灵通前要加区号!\n如:\n020-88888888\n13800880088";
		else if (shuzhu.length==2&&!((shuzhu[0].length==3||shuzhu[0].length==4)&&(shuzhu[1].length==7||shuzhu[1].length==8))) error="电话号码填写不规范 !\n固话或小灵通前要加区号!\n如:\n020-88888888\n13800880088";
		}
	}
if (error!="") objfocus(b);
return error;
}

/*
check the format of post code,
input parameter_1: post code,
input parameter_2: whether the post code is optional, true for optional, false for mandatory,
output: error message.
*/

function checkpostcode(pc,emp)
{
var error="",temp="0123456789";

if (emp==false)
	{
	if (trimblank(pc.value)=="") error = "请填写邮政编码"	
	else if (error==""&&pc.value.length!=6) error="邮政编码填写有误！";
	else
		{
		for (var i=0;i<pc.value.length;i++)
			{
			if (temp.indexOf(pc.value.charAt(i))==-1) error="邮政编码填写有误！";
			}
		}
	}
else if (pc.value=="") ;
else if (pc.value.length!=6) error="邮政编码填写有误！";
else
	{
	for (var i=0;i<pc.value.length;i++)
		{
		if (temp.indexOf(pc.value.charAt(i))==-1)
			{
			error="邮政编码填写有误！";
			}
		}
	}
if (error!="") objfocus(pc);
return error;
}