function	trim(s)
{
	return 	s.replace(/^(\s*)/,"$`").replace(/(\s*)$/,"$'");
}
function	emailCheck (emailStr) 
{
	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	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];
	for (i=0; i<user.length; i++)	if (user.charCodeAt(i)>127) 	return false;
	for (i=0; i<domain.length; i++)	if (domain.charCodeAt(i)>127)	return false;
	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 atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) if (domArr[i].search(atomPat)==-1)	return false;
	if (checkTLD && domArr[domArr.length-1].length!=2 &&	domArr[domArr.length-1].search(knownDomsPat)==-1)			return false;
	if (len<2)		return false;
	return true;
} 
function	checkEmail(email){return emailCheck(email);}
function	dateCheck(date)
{
	if (date.match(/^(\d{2})\.(\d{2})\.(\d{4})$/))
	{
		var d = RegExp.$1;
		var m = RegExp.$2;
		var y = RegExp.$3;
		
		
		var dt = new Date(y, m-1, d);
		var	ay = dt.getYear();
		if (ay<100)ay+=1900;
		return ((y == ay) && ((m-1) == dt.getMonth()) && (d == dt.getDate()));
	}
	return false;
}
function	checkDate(date){return dateCheck(date);}
// OTHER Stuff - Key input filtering
/////////////////////////////////////////////////////////////////
function	InputAllowNumbersOnly(inp)
{
	var s = new String;
	s = "";
	found_non_zero = 0;
	for (i=0;i<inp.value.length;i++)
	{
		c = inp.value.charAt(i);
		if ((c=='0') || (c=='1')  || (c=='2')  || (c=='3')  || (c=='4')  || (c=='5')  || (c=='6')  || (c=='7')  || (c=='8')  || (c=='9') )
			s+=c;
	}
	if (s!=inp.value)
	{
		if (s.length>0)	inp.value = s;	else	inp.value = '';
	}
} 
function	InputAllowNumbersDot(inp)
{
	var s = new String;
	s = "";
	found_non_zero = 0;
	dot_found = 0;
	for (i=0;i<inp.value.length;i++)
	{
		c = inp.value.charAt(i);
		if ((c=='0') || (c=='1')  || (c=='2')  || (c=='3')  || (c=='4')  || (c=='5')  || (c=='6')  || (c=='7')  || (c=='8')  || (c=='9') )
		{
			if (c!='0')found_non_zero = 1;
			if ((c!='0') || ((c=='0')&&(found_non_zero==1)))
				s+=c;
		}
		if ((c=='.' || c==',') && (!dot_found))
		{
			found_non_zero = 1;
			dot_found = 1;
			s+='.';
		}
	}
	 if ((s.charAt(0)==".") || (s.charAt(0)==","))
		s = "0"+s;
		
	if (s!=inp.value)
	{
		if (s.length>0)	inp.value = s;	else	inp.value = '';
	}
}

function	MakeInputClear(inp)
{
	if (inp.value=="от" || inp.value=="до")inp.value = "";
}

function	resetData(inp)
{
	if (inp.value=="от" || inp.value=="до")inp.value="";
}

function	resumeData(inp,val)
{
	if (trim(inp.value)=="")inp.value=(!val)?"от":"до";
}