function empty(s) 
{
	for(var i=0;i<s.value.length;++i) 
	{
		var ch = s.value.charAt(i);
    	if ((ch!=' ') && (ch!='\n') && (ch!='\t'))
		return false;
	}
	return true;
}

function digits(s)
{
	for(var i=0;i<s.value.length;++i) 
	{
		var ch = s.value.charAt(i);
    	if ((ch < '0') || (ch > '9'))
		return false;
	}
	return true;
}

function digits2(s)
{
	for(var i=0;i<s.length;++i) 
	{
		var ch = s.charAt(i);
    	if ((ch < '0') || (ch > '9'))
		return false;
	}
	return true;
}

function emailok (emailStr) 
{
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
		
	var matchArray=emailStr.match(emailPat);
	if (matchArray==null)
		return false;
		
	var user=matchArray[1];
	var domain=matchArray[2];
		
	if (user.match(userPat)==null) 
		return false;
		
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null)
	{
		for (var i=1;i<=4;i++) 
		{
			if (IPArray[i]>255) 
				return false;
		}
		return true;
	}
		
	var domainArray=domain.match(domainPat);    
	if (domainArray==null) 
		return false;
		
	var atomPat=new RegExp(atom,"g");
	var domArr=domain.match(atomPat);
	var len=domArr.length;
	if ((domArr[domArr.length-1].length<2)||(domArr[domArr.length-1].length>3)) 
		return false;
			
	if (len<2) 
		return false;
	
	return true;
}

function zeroCut(s)
{
	if ((s.length == 2) && (s.charAt(0) == '0'))
		return s.charAt(1);

	return s;
}

function leapYear(r)
{
	if (r%4 == 0)
	{
		if (r%100 != 0)
			return true;
		else 
		{
			if (r%400 == 0)
				return true;
			else
				return false;
		}
	}
	else
		return false;
}

function dateOk(day, month, year)
{
	if ((day < 1) || (day > 31) || (month < 1) || (month > 12))
		return false;

	if ((month == 2) && ((leapYear(year) && (day > 29)) || ((!leapYear(year)) && (day > 28))))
		return false;

	if (((month == 4) || (month == 6) || (month == 9) || (month == 11)) && (day > 30))
		return false;

	return true;
}

function properDate(s)
{
	var t;

	t = s.split("-");
	if (t.length != 3)
		return false;
	if (!(digits2(t[0]) && digits2(t[1]) && digits2(t[2])))
		return false;
	
	return dateOk(zeroCut(t[2]), zeroCut(t[1]), t[0]);
}

function setTagField(fields, tfield)
{
	var ttxt = document.getElementsByName(tfield).item(0);
	
	if((ttxt.value.length == 0))
		setTags = 1;
	
	if((setTags == 0))
		return 0;	
	
	var temptxt = '';
	var pfieldv; 
	var fieldv;
	
	for(var i=0;i<fields.length;++i) 
	{		
		pfieldv = '';
		field = document.getElementsByName(fields[i]).item(0);
		if(i>0)
			pfieldv = document.getElementsByName(fields[i-1]).item(0).value;
		
		temptxt += (pfieldv.length > 0 ? ' ':'') + field.value;
	}
	
	ttxt.value = temptxt;	
	return 1;	
}