function getValue(name)
{
	return document.getElementById(name).value;
};

function getChecked(name)
{
	return document.getElementById(name).checked;
};

function DoAlert(res)
{
	if(res!=""){alert(res);return false;}else return true;
};

function vText(s,field_name)
{	
	if(getValue(s)=="")
		return "Field \""+field_name+"\" must not be empty\n";		
	return "";
};

function vMail(s,field_name)
{	
	var result;
	result=vText(s,field_name);if(result!="")return result;
	var rxMail = /^[\w\!\#\$\%\*\/\?\|\^\{\}\`\~\&\'\+\=]+(?:\-[\w\!\#\$\%\*\/\?\|\^\{\}\`\~\&\'\+\=]+)*(?:\.[\w\!\#\$\%\*\/\?\|\^\{\}\`\~\&\'\+\=]+(?:\-[\w\!\#\$\%\*\/\?\|\^\{\}\`\~\&\'\+\=]+)*)*@\.?(?:[a-z0-9]+(?:\-[a-z0-9]+)*\.)+[a-z]{2,4}$/i;
	if(!rxMail.test(getValue(s)))
		return "E-mail address in field \""+field_name+"\" has incorrect format\n";
	return "";
};

function vEqual(s1,s2,field_name1,field_name2)
{
	var result;	
	result=vText(s1,field_name1);
	result=result+vText(s2,field_name2);
	if(result!="")return result;
	if(getValue(s1)!=getValue(s2))
		return "Values in fields \""+field_name1+"\" and \""+field_name2+"\" must be equal\n";
	return "";
};

function vDigits(s,field_name)
{
	var rxDigits = /^[0-9]+$/i;
	var result;
	result=vText(s,field_name);if(result!="")return result;
	if(!rxDigits.test(getValue(s)))
		return "Field \""+field_name+"\" must contain digits only\n";
	return "";qwe.qwe
};

function vDate(mm,dd,yyyy,field_name)
{
	var result;
	result=vDigits(mm,field_name);if(result!="")return result;
	result=vDigits(dd,field_name);if(result!="")return result;
	result=vDigits(yyyy,field_name);if(result!="")return result;
	var mm1=getValue(mm)-1;
	var dd1=getValue(dd);
	var yyyy1=getValue(yyyy);
	if((mm1<0)||(mm1>11)||(dd1<1)||(dd1>31)||(yyyy1<1900)||(yyyy1>2100))
		return "Incorrect date format in field \""+field_name+"\"\n";
	var tmp=new Date(yyyy1,mm1,dd1,0,0);	
	if((tmp.getDate()!=dd1)||(tmp.getMonth()!=mm1)||(tmp.getYear()!=(yyyy1-1900)))
		return "Date is out of range in field \""+field_name+"\"\n";
	return "";
};

function vGPA(s,gpa10,field_name)
{
	var result;
	result=vText(s,field_name);if(result!="")return result;
	var rxGPA=/^[0-1]?[0-9](\.[0-9][0-9]?)?$/i;
	var value=getValue(s);
	if(!rxGPA.test(value))
		return "Invalid GPA format in field \""+field_name+"\"\n";
	value=parseFloat(value);
	if(getChecked(gpa10))
	{
		if((value>=7.5)&(value<=10))return "";
	}
	else
	{
		if((value>=3)&(value<=4))return "";
	}
	return "GPA value in field \""+field_name+"\" is out of range\n";			
};

function LimitWords(input,output)
{
	var memo=document.getElementById(input);
	var cnt=document.getElementById(output);
	var num=memo.value.split(/\s+/g).length-1;
	cnt.value=num;
};

