function filter(str,filter,max_length)
{
//alert('in');

	if(
		(filter.indexOf((str.charAt(str.length-1)),0) == -1)
								 ||
		(str.length > max_length)
	   )
		return str.substring(0,str.length-1);
	else
		return str;
}

function filterfordecimal(str,max_length)
{
	var newstr = filter(str,'0123456789.',max_length);
	if(str == filter(str,'0123456789',max_length))
		return str;
	else if(str != newstr)
		return newstr;
	else if((str.charAt(str.length-1)) != ".")
		return str;
	else if(str.indexOf(".") != (str.length-1))
		return str.substring(0,(str.length-1));
	else
		return str;
}

function filterforrounddecimal(str,decimal_places,max_length)
{
	var newstr = filterfordecimal(str,max_length);
	if(str != newstr)
		return newstr;
	else if(
			(str.indexOf(".") >=0)
			 		&& 
			 ( (str.indexOf(".") + decimal_places+1) < (str.length) )
			)
		return str.substring(0,(str.length-1));
	else
		return str;
}

function IsEmail(str)
{
	//Must contain exactly one '@' symbol
	if( (!(str.indexOf('@') == str.lastIndexOf('@'))) || (str.indexOf('@') == -1) )
		return 0;
	//Must contain '.'
	if(!(str.indexOf('.')))
		return 0;
	//there must be atleast one '.' after '@' symbol
	if( (str.indexOf('@')) > (str.lastIndexOf('.')) )
		return 0;
	//There must be atleast one char after '.'
	if( str.lastIndexOf('.') == (str.length-1) )
		return 0;
	//There must be atleast one char between '@' and the following '.'
	if( str.indexOf('@') == (str.lastIndexOf('.')-1) )
		return 0;
	//Must not contain spaces
	if(!(str.indexOf(' ') == -1))
		return 0;

	return 1;
}
