var java_msg;
java_msg="";
flag=0;
//******************************************
//suCheckVarient Function # 1
//Description
//	This function valid the string+ all characters are acceptable
//Parameters
//	str=FILED NAME
//	mode= 0 Compalsary
//	   -1 Oprional
//		5 Minimum Five Character Required
//	fld_name
//		Filed name caption
//******************************************
function suCheckVarient(str,mode,fld_name)
{		
	if (parseInt(mode)==0)
	{
		if (str=="")
		{
			java_msg=java_msg + fld_name + " is a required field..\n";
			return false;
		}
		else
		{
			return true;
		}
	}
	if (parseInt(mode)>=0)
	{	
		if (parseInt(str.length) >=parseInt(mode))
		{
			return true;
		}
		else
		{
			java_msg=java_msg + "Minimum " + mode + " characters are required in " + fld_name.toLowerCase() + ".\n";
			return false;
		}
	}
	if (parseInt(mode)==-1)
	{
		return true;
	}
}
//******************************************
//suCheckString Function # 2
//Description
//	This function valid the string. Only A-Z a-z ' " . are acceptable
//Parameters
//	str=FILED NAME
//	mode= 0 Compalsary
//	   -1 Oprional
//		5 Minimum Five Character Required
//	fld_name
//		Filed name caption
//******************************************
function suCheckString(str,mode,fld_name)
{
	
	if (parseInt(mode)==0) 
	{
		if(str=="")
		{
			java_msg=java_msg + fld_name + " is a required field.\n";
			return false;
		}
	}
	if (parseInt(mode)>0) 
	{
		if(parseInt(str.length)<parseInt(mode))
		{	
			java_msg=java_msg + "Minimum " + mode + " characters are required in " + fld_name.toLowerCase() + ". \n";
			return false;
		}
	}
	
	for(java_i=0;java_i<str.length;java_i++)
	{
		getChar=str.charCodeAt(java_i);
		getChar=parseInt(getChar);
		if (((getChar>=97)	&& (getChar<=122)) || ((getChar>=65) && (getChar<=90)) || ((getChar>=48) && (getChar<=57)) || ((getChar==32)) || ((getChar==39)) || ((getChar==34)) || ((getChar==46)))
		{
			flag=0;
		}
		else
		{
			flag=1;
			break;
		} 
	} 
	if (parseInt(flag)==1)
	{
		java_msg=java_msg + "Enter " + fld_name.toLowerCase() + " in valid format. \n";
		return false;
	}
	else
	{
		return true;
	} 
} 
//******************************************
//suCheckChar Function # 3
//Description
//	This function valid the string. Only A-Z a-z 0-9. are acceptable
//Parameters
//	str=FILED NAME
//	mode= 0 Compalsary
//	   -1 Oprional
//		5 Minimum Five Character Required
//	fld_name
//		Filed name caption
//******************************************
function suCheckChar(str,mode,fld_name)
{
	
	if (parseInt(mode)==0) 
	{
		if(str=="")
		{
			java_msg=java_msg + fld_name + " is a required field. \n";
			return false;
		}
	}
	if (parseInt(mode)>0) 
	{
		if(parseInt(str.length)<parseInt(mode))
		{	
			java_msg=java_msg + "Minimum " + mode + " characters are required in " + fld_name.toLowerCase() + ". \n";
			return false;
		}
	}
	
	for(java_i=0;java_i<str.length;java_i++)
	{
		getChar=str.charCodeAt(java_i);
		getChar=parseInt(getChar);
		if (((getChar>=97)	&& (getChar<=122)) || ((getChar>=65) && (getChar<=90)) || ((getChar>=48) && (getChar<=57)) || ((getChar==32)) || ((getChar==46)))
		{
			flag=0;
		}
		else
		{
			flag=1;
			break;
		} 
	} 
	if (parseInt(flag)==1)
	{
		java_msg=java_msg + "Enter " + fld_name.toLowerCase() + " in valid format. \n";
		return false;
	}
	else
	{
		suCheckChar=0;
		return true;
	} 
} 
//******************************************
//suCheckInteger Function # 4
//Description
//	This function valid the integer. Only 0-9 are acceptable
//Parameters
//	str=FILED NAME
//	mode= 0 Compalsary
//	   -1 Oprional
//		5 Minimum Five Character Required
//	fld_name
//		Filed name caption
//******************************************
function suCheckInteger(str,mode,fld_name)
{
	if (parseInt(mode)==0) 
	{
		if(str=="")
		{
			java_msg=java_msg + fld_name + " is a required field. \n";
			return false;
		}
	}
	if (parseInt(mode)>0) 
	{
		if(parseInt(str.length)<parseInt(mode))
		{	
			java_msg=java_msg + "Minimum " + mode + " characters are required in " + fld_name.toLowerCase() + ". \n";
			return false;
		}
	}
	
	for(java_i=0;java_i<str.length;java_i++)
	{
		getChar=str.charCodeAt(java_i);
		getChar=parseInt(getChar);
		if ((getChar>=48) && (getChar<=57))
		{
			flag=0;
		}
		else
		{
			flag=1;
			break;
		} 
	} 
	if (parseInt(flag)==1)
	{
		java_msg=java_msg + "Enter " + fld_name.toLowerCase() + " in valid format. \n";
		return false;
	}
	else
	{
		return true;
	} 
} 
//******************************************
//suCheckDecimal Function # 5
//Description
//	This function valid the decimal. Only 0-9 . are acceptable
//Parameters
//	str=FILED NAME
//	mode= 0 Compalsary
//	   -1 Oprional
//		5 Minimum Five Character Required
//	fld_name
//		Filed name caption
//******************************************
function suCheckDecimal(str,mode,fld_name)
{
	
	if (parseInt(mode)==0) 
	{
		if(str=="")
		{
			java_msg=java_msg + fld_name + " is a required field. \n";
			return false;
		}
	}
	if (parseInt(mode)>0) 
	{
		if(parseInt(str.length)<parseInt(mode))
		{	
			java_msg=java_msg + "Minimum " + mode + " characters are required in " + fld_name.toLowerCase() + ". \n";
			return false;
		}
	}
	decimalFlag=0;
	for(java_i=0;java_i<str.length;java_i++)
	{
		getChar=str.charCodeAt(java_i);
		getChar=parseInt(getChar);
		if ((getChar>=48)	&& (getChar<=57)) 
		{
			flag=0;
		}
		else
		{
			if ((decimalFlag==0) && (getChar==46))
			{
				decimalFlag=1;					
			}
			else
			{
				flag=1;
				break;
			}
		}
	} 
	if (parseInt(flag)==1)
	{
		java_msg=java_msg + "Enter " + fld_name.toLowerCase() + " in valid format. \n";
		return false;
	}
	else
	{
		return true;
	} 
} 
//******************************************
//suCheckPhone Function # 6
//Description
//	This function valid the phone no. Only 0-9 - are acceptable
//Parameters
//	str=FILED NAME
//	mode= 0 Compalsary
//	   -1 Oprional
//		5 Minimum Five Character Required
//	fld_name
//		Filed name caption
//******************************************
function suCheckPhone(str,mode,fld_name)
{
	if (parseInt(mode)==0) 
	{
		if(str=="")
		{
			java_msg=java_msg + fld_name + " is a required field.. \n";
			return false;
		}
	}
	if (parseInt(mode)>0) 
	{
		if(parseInt(str.length)<parseInt(mode))
		{	
			java_msg=java_msg + "Minimum " + mode + " characters are required in " + fld_name.toLowerCase() + ". \n";
			return false;
		}
	}
	dashFlag=0;
	for(java_i=0;java_i<str.length;java_i++)
	{
		getChar=str.charCodeAt(java_i);
		getChar=parseInt(getChar);
		if (((getChar>=48)	&& (getChar<=57)) || (getChar==45) || (getChar==43) || (getChar==32))
		{
			if (getChar==43)
			{
				if (java_i!=0)
				{
					flag=1;
					break;		
				}
			}
			flag=0;
		}
		else
		{
			flag=1;
			break;
		}
	}  
	if (parseInt(flag)==1)
	{
		java_msg=java_msg + "Enter " + fld_name.toLowerCase() + " in valid format. \n";
		return false;
	}
	else
	{
		return true;
	} 
}
//******************************************
//suCheckEmail Function # 7
//Description
//	This function valid the email address
//Parameters
//	str=FILED NAME
//	mode= 0 Compalsary
//	   -1 Oprional
//		5 Minimum Five Character Required
//	fld_name
//		Filed name caption
//******************************************
function suCheckEmail(str,mode,fld_name)
{
	if (parseInt(mode)==0)
	{
		if (str=="")
		{
			java_msg=java_msg + fld_name + " is a required field..\n";
			return false;
		}
	}
	if (str!="")
	{
		if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(str))
		{
			return (true)
		}
		else
		{
			java_msg=java_msg + "Enter " + fld_name.toLowerCase() + " in valid format. \n";
			return false;
		}
	}
	else
	{
		return true;
	}
}
//******************************************
//suCheckEmail Function # 7
//Description
//	This function valid the email address
//Parameters
//	str=FILED NAME
//	mode= 0 Compalsary
//	   -1 Oprional
//	fld_name
//		Filed name caption
//	file_ext
//		.doc.xls.bmp.jpg.gif
//******************************************
function suCheckFileType(str,mode,fld_name,file_ext)
{
	if (mode==0)
	{
		if (str=="")
		{
			java_msg=java_msg + "Please select a file for " + fld_name + ".\n";
			return false
		}
	}
	if (str!="")
	{
		a=str.search(file_ext);
		if (a==-1) 
		{
			java_msg=java_msg + "Invalid file format selected for " + fld_name + ".\n";
		}
		else
		{
			return true;
		}
	}	
}
//******************************************
//suCheckCombo Function # 9
//Description
//	This function check for combo
//Parameters
//	str=FILED NAME
//	mode= 0 Compalsary
//	   -1 Oprional
//	fld_name
//		Filed name caption
//******************************************
function suCheckCombo(value,mode,fld_name)
{
	if (mode==0) 
	{
		if ((value=="") || (value=="0"))
		{ 
			java_msg=java_msg + "Select valid " + fld_name + " from list. \n";
			return false;
		}
		else
		{
			return true;
		}
	}
	else
	{
		return true;
	}
}
//---------------------------

// Declaring valid date character, minimum year and maximum year
	var dtCh= "/";
	var minYear=1900;
	var maxYear=2100;

	function isInteger(s)
	{
		var i;
    	for (i = 0; i < s.length; i++)
		{   
        	// Check that current character is number.
        	var c = s.charAt(i);
        	if (((c < "0") || (c > "9"))) return false;
    	}
    	// All characters are numbers.
    	return true;
	}

	function stripCharsInBag(s, bag)
	{
		var i;
    	var returnString = "";
    	// Search through string's characters one by one.
    	// If character is not in bag, append to returnString.
    	for (i = 0; i < s.length; i++)
		{   
        	var c = s.charAt(i);
        	if (bag.indexOf(c) == -1) returnString += c;
    	}
    	return returnString;
	}

	function daysInFebruary (year)
	{
		// February has 29 days in any year evenly divisible by four,
    	// EXCEPT for centurial years which are not also divisible by 400.
    	return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
	}
	function DaysArray(n) 
	{
		for (var i = 1; i <= n; i++) 
		{
			this[i] = 31
			if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
			if (i==2) {this[i] = 29}
   		} 
   		return this
	}

	function isDate(dtStr)
	{
		var daysInMonth = DaysArray(12)
		var pos1=dtStr.indexOf(dtCh)
		var pos2=dtStr.indexOf(dtCh,pos1+1)
		var strMonth=dtStr.substring(0,pos1)
		var strDay=dtStr.substring(pos1+1,pos2)
		var strYear=dtStr.substring(pos2+1)
		strYr=strYear
		if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
		if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
		for (var i = 1; i <= 3; i++) 
		{
			if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
		}
		month=parseInt(strMonth)
		day=parseInt(strDay)
		year=parseInt(strYr)
		if (pos1==-1 || pos2==-1)
		{
			java_msg=java_msg + "The date format should be : mm/dd/yyyy.\n";
			return false
		}
		if (strMonth.length<1 || month<1 || month>12)
		{
			java_msg=java_msg + "Please enter a valid month.\n";
			return false
		}
		if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month])
		{
			java_msg=java_msg + "Please enter a valid day.\n";
			return false
		}
		if (strYear.length != 4 || year==0 || year<minYear || year>maxYear)
		{
			java_msg=java_msg + "Please enter a valid 4 digit year between " + minYear + " and " + maxYear + ".\n";
			return false
		}
		if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false)
		{
			java_msg=java_msg + "Please enter a valid date.\n";
			return false
		}
		return true
	}