
function isNumber(str)
{
	var filter=/^[\d]+$/;
	return filter.test(str);
}

function validatePhoneNumber(num, isInternational){
	num = trim(num);
	if(isNumber(num))
	{
		if(typeof isInternational == "undefined" || isInternational == false)
		{
			if(num.length == 10 && num.substring(0,1) != "0")
				return true;
			else if(num.length == 12 && num.substring(0,2) == "91" && num.substring(2,3) != "0")
				return true;
			else
				return false;	
		}
		else
			return true;
	}
	else
		return false;	
}


function isValidEmail(value)
{
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	if(filter.test(trim(value)))
		return true;
	else
		return false;
	
}


function ValidateNonEmpty(value)
{
		var value = trim(value);
		if(value == "")
		{
			return false;
    	}    	
    	return true;  		
}

function ValidateAlpha(fieldName, blankAllowed)
{
    var alphaReg = /^[ a-zA-Z][a-zA-Z._0-9 ]*$/;
	return ValidateGenericRegex(fieldName, blankAllowed, alphaReg);
}

function ValidateGenericRegex(fieldName, blankAllowed, regexStr)
{
    try
	{
    	var elem = $(fieldName);
		var value = trim(elem.value);
		if(blankAllowed && value == "")
			return true;	
		var regex = new RegExp(regexStr);    	
		if( (!blankAllowed && value == "") || !(regex.test(value)) )
		{
			return false;
    	}
    	
    	return true;  		
	}
	catch(e){} 	
}

function ValidateDateStr(value)
{
	var returnval = false;	
	var validformat = /^\d{1,2}\/\d{1,2}\/\d{4}$/i;				
	if (validformat.test(value))
	{
		var monthfield = value.split("/")[0];
		var dayfield = value.split("/")[1];
		var yearfield = value.split("/")[2];
		var dayobj = new Date(yearfield, monthfield-1, dayfield);
		if ((dayobj.getMonth()+1==monthfield)&&(dayobj.getDate()==dayfield)&&(dayobj.getFullYear()==yearfield))
			returnval = true;
	}
	return returnval; 	
}

function ValidateDate(fieldName, blankAllowed)
{
	var returnval = false;
	try
	{
    	var elem = $(fieldName);
		var value = trim(elem.value);
		if(blankAllowed && value == "")
			return true;
		
		returnval = ValidateDateStr(value);
	}
	catch(e){} 
				
	return returnval;
}

function ValidateDateOrder(startfield, endfield)
{
	var returnval = false;
	
	var startfieldvalue = $(startfield);
	var start = trim(startfieldvalue.value);
	var endfieldvalue = $(endfield);
	var end = trim(endfieldvalue.value);
	
	var validformat = /^\d{1,2}\/\d{1,2}\/\d{4}$/i;				
	if (validformat.test(start) && validformat.test(end))
	{
		var startmonth = start.split("/")[0];
		var startday = start.split("/")[1];
		var startyear = start.split("/")[2];
		var startobj = new Date(startyear, startmonth-1, startday);
		var endmonth = end.split("/")[0];
		var endday = end.split("/")[1];
		var endyear = end.split("/")[2];
		var endobj = new Date(endyear, endmonth-1, endday);
		if (endobj.getFullYear()>startobj.getFullYear())
			returnval = true;
		else if( endobj.getMonth() > startobj.getMonth() && endobj.getFullYear() == startobj.getFullYear())
			returnval = true;
		else if( endobj.getDate() >=startobj.getDate() && endobj.getMonth() == startobj.getMonth() )
			returnval = true;
	}
	return returnval; 
}
