

//------Function To Check valid Date Starts Here-----------
	
	function GetDaysOfMonth( mMonth, mYear )
	{
	   eomDate = new Date();
	   eomDate.setDate(1);
	   eomDate.setYear( mYear);
	   eomDate.setMonth(mMonth);
	   eomDate.setDate( eomDate.getDate() - 1);
	   return eomDate.getDate();
	}

	//---uses function GetDaysOfMonth(mMonth,mYear)---
	
	function isValidDate( DayCmb, MonthCmb, YearCmb )
	{
	   now = new Date();
	   if (DayCmb.value > GetDaysOfMonth( MonthCmb.value, YearCmb.value )) return false;
	   today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
	   ComboDay = new Date(MonthCmb.value+"/"+DayCmb.value+"/"+YearCmb.value );
	 if( ComboDay.getTime() <= today.getTime() )
		return true;
	 else
		return false;
	}

//------Function To Check valid Date Ends Here-----------

//-----Function To CompareDate Starts Here-----------------
//---This function is used to check (compare) wether one date is greater than other date
//---User need to pass strings of date min and max dates to be compared and the control on which focus should be set in case or error
//--- you can pass date sting with or without date function will manage it internally.
//  eg. CompareDate("01/01/2001","01/01/2001",focusObj)


	function CompareDate(MinDate,MaxDate,focusObj)
	{
	 var mindate=new Date();
	 var maxdate=new Date();
	 var arrMinDate=MinDate.split("/");
	 var arrMaxDate=MaxDate.split("/");

	 switch(arrMinDate.length)
	 {
		case 3: 
		mindate.setDate(arrMinDate[0]);
		mindate.setMonth(arrMinDate[1]-1);
		mindate.setYear(arrMinDate[2]);
		break;
		case 2: 
		mindate.setDate(1);
		mindate.setMonth(arrMinDate[0]-1);
		mindate.setYear(arrMinDate[1]);	
		break;	
	 }

	 switch(arrMaxDate.length)
	 {
		case 3: 
		maxdate.setDate(arrMaxDate[0]);
		maxdate.setMonth(arrMaxDate[1]-1);
		maxdate.setYear(arrMaxDate[2]);	
		break;	
		case 2: 
		maxdate.setDate(1);
		maxdate.setMonth(arrMaxDate[0]-1);
		maxdate.setYear(arrMaxDate[1]);		
		break;
	 }
		if (mindate>maxdate)
		{
		  alert("From Date and TO date is not matching.!!");
		  focusObj.focus();
		  return false;
		}
		else
		return true;
	}
//-----Function To CompareDate Ends Here-----------------


//------Function To Check valid Integer Starts Here-----------

	function isInt(elm,MsgStr) 
	{
	  var elmstr = elm.value + ""; 
	    if (elmstr == "") 
	    {
			alert(MsgStr + " Should Not Be Blank !");
			elm.select();
	    	return true;
	    }
	    for (var i = 0; i < elmstr.length; i++) 
	    {
	        if (elmstr.charAt(i) < "0" ||elmstr.charAt(i) > "9") 
			{
				if ((i==0 || i==(elmstr.length-1)) && elmstr.charAt(i)==" ")
				{
				}
				else
				{
					alert(MsgStr + " Should Be Numeric !");
					elm.select();
	    			return true;
	    		}
	        }
 	   }
	return false;
	}

//------Function To Check invalid string which can be used by attacker on sql server-----------
function SqlSecure(str)
	{
		var re1 = new RegExp("';");
		var re2 = new RegExp("' ;");
		var re3 = new RegExp("'  ;");
		var re4 = new RegExp("--");
		if(re1.test(str) || re2.test(str) || re3.test(str) || re4.test(str))
			document.write('<script>window.document.location.href="/Tools/SecureError.asp?errid=1"</script>');
	}

//------Function To Check valid Integer or Blank Starts Here-----------

	function isBlankOrInt(elm,MsgStr) 
	{
	  var elmstr = elm.value + ""; 

	    for (var i = 0; i < elmstr.length; i++) 
	    {
			if(elmstr.charAt(0)==0)
			{
				alert(MsgStr + " Should not zero !");
				elm.select();
	    		return true;
			}	    
			if (elmstr.charAt(i) < "0" ||elmstr.charAt(i) > "9") 
			{
				alert(MsgStr + " Should Be Numeric !");
				elm.select();
					return true;
		    }
 	   }
	return false;
	}
//------Function To Check Valid Character & Numeric Values only Starts Here---------

function isAlphaNumeric( TxtObj, MsgStr) 
{
  var str;
  str = TxtObj.value;
  SqlSecure(str);
 
  if ( str.length <= 0 ) 
  {
	alert( MsgStr + " Must be Entered !" );
	TxtObj.select();
	return true;
  }
  var r2 = new RegExp("[^A-Za-z0-9_ /b\(\).\n\r,-]");
  if ( r2.test(str) )
  {
	alert( MsgStr + " is invalid." );
	TxtObj.select();
	return( r2.test(str) );
  }

  return( false );
}

//------Function To Check Valid Character & Numeric Values only Ends Here---------

//------Function To Check Valid Character & Numeric Values Or Blank only Starts Here---------

function isBlankOrAlphaNumeric( TxtObj, MsgStr) 
{
  var str;
  str = TxtObj.value;
  SqlSecure(str);
  var r2 = new RegExp("[^A-Za-z0-9_ /b\(\).\n\r,-]");
  if ( r2.test(str) )
  {
	alert( MsgStr + " is invalid." );
	TxtObj.select();
	return( r2.test(str) );
  }

  return( false );
}

//------Function To Check Valid Character & Numeric Values Or Blank only Ends Here---------

//------Function To Check Valid Characters & Numeric Values & Characters
//---------Like (",:;) etc. Starts Here.

function isAddress( TxtObj, MsgStr) 
{
  var str;
  str = TxtObj.value;
  SqlSecure(str);
  if ( str.length <= 0 ) 
  {
	alert( MsgStr + " Must be Entered !" );
	TxtObj.select();
	return true;
  }
  var r2 = new RegExp("[^A-Za-z0-9_ /b\(\).,:;-]");
  if ( r2.test(str) )
  {
	alert( MsgStr + " is invalid." );
	TxtObj.select();
	return( r2.test(str) );
  }
  return( false );
}


//------Function To Check Valid Characters & Numeric Values & Characters
//---------Like (",:;) etc. or Blank Starts Here.

function isBlankOrAddress( TxtObj, MsgStr) 
{
  var str;
  str = TxtObj.value;
  SqlSecure(str);

  var r2 = new RegExp("[^A-Za-z0-9_ /b\(\).,:;-]");
  if ( r2.test(str) )
  {
	alert( MsgStr + " is invalid." );
	TxtObj.select();
	return( r2.test(str) );
  }
  return( false );
}

//------Function To Check Valid Characters & Numeric Values & Characters
//---------Like (",:;) etc. Ends Here.


//------Function To Check Valid Character Values Starts Here---------

function isAlpha( TxtObj, MsgStr) 
{
  var str;
  str = TxtObj.value;
  SqlSecure(str);

  if ( str.length <= 0 ) 
  {
	alert( MsgStr + " Must be Entered !" );
	TxtObj.select();
	return true;
  }
  var r2 = new RegExp("[^A-Za-z_ /b\(\).,:;]");
  if ( r2.test(str) )
  {
	alert( MsgStr + " is Invalid." );
	TxtObj.select();
	return( r2.test(str) );
  }
  return( false );
}

//------Function To Check Valid Character Values or Blank Starts Here---------

function isBlankOrAlpha( TxtObj, MsgStr) 
{
  var str;
  str = TxtObj.value;
  SqlSecure(str);
  var r2 = new RegExp("[^A-Za-z_ /b\(\)&.,:;]");
  if ( r2.test(str) )
  {
	alert( MsgStr + " is Invalid." );
	TxtObj.select();
	return( r2.test(str) );
  }
  return( false );
}
//------Function To Check Valid Character Values Ends Here---------

//------Function To Check Valid Float Value Starts Here---------

function isFloat(elm, MsgStr) 
{
    var cnt = 0
    var elmstr = elm.value + ""; 
    if (elmstr.charAt(0)==".")
    {
		elmstr = "0" + elmstr;
    }
    if (elmstr == "") 
    {
	alert( MsgStr + " must be entered !" );
	elm.select();
	return true;
    }
    for (var i = 0; i < elmstr.length; i++) 
    {
        if (elmstr.charAt(i) < "0" || elmstr.charAt(i) > "9") 
	{
	      if ( elmstr.charAt(i) == "." )
	      {
		      cnt = cnt + 1;
		      if ( cnt > 1  || i == 0 )
		      {
			alert( MsgStr + " is invalid." );
			elm.select();
			return true;
		      }
	      }
	      else
	      {
			alert( MsgStr + " is invalid." );
			elm.select();
			return true;
	      }
        }	
    }
    return false;
}
//------Function To Check Valid Float Value Ends Here-----------

//------Function To Check Valid Float Value or Blank Starts Here---------
function isBlankOrFloat(elm, MsgStr) 
{
    var cnt = 0
    var elmstr = elm.value + ""; 
    if (elmstr.charAt(0)==".")
    {
		elmstr = "0" + elmstr;
    }
    for (var i = 0; i < elmstr.length; i++) 
    {
        if (elmstr.charAt(i) < "0" || elmstr.charAt(i) > "9") 
	{
	      if ( elmstr.charAt(i) == "." )
	      {
		      cnt = cnt + 1;
		      if ( cnt > 1  || i == 0 )
		      {
			alert( MsgStr + " is invalid." );
			elm.select();
			return true;
		      }
	      }
	      else
	      {
			alert( MsgStr + " is invalid." );
			elm.select();
			return true;
	      }
        }	
    }
    return false;
}
//------Function To Check Valid Float Value or Blank Ends Here-----------

//-----FUNCTION TO CHECK VALID EMAIL ADDRESS STARTS HERE------------

	function isEmail(elm,Msgstr) 
	{
		SqlSecure(elm.value);
		if(elm.value=="")
		{
			alert ("Email Must Be Entered");
		    elm.select();		
		    return true;
		}
		//if(Msgstr!="SMS")		
		// Msgstr="Email ";		
		if(Msgstr=="SMS")		
		{
		elmstr=elm.value.substring(0,elm.value.indexOf('@'));
		    for (var i = 0; i < elmstr.length; i++) 
		    {
		        if (elmstr.charAt(i) < "0" ||elmstr.charAt(i) > "9") 
			{
				alert("Wrong SMS Address !");
				elm.select();
		    		return true;
			}
		    }
		}

		var str=elm.value;
  		var supported = 0;
		if (window.RegExp) 
		{
    			var tempStr = "a";
    			var tempReg = new RegExp(tempStr);
	    		if (tempReg.test(tempStr)) supported = 1;
  		}
	  	if (!supported) 
    		  return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);

	    	  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
	  	  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$");
		  var r3 = new RegExp("\'");
		  var r4 = new RegExp("\"");


	  	if (!(!r1.test(str) && r2.test(str) && !r3.test(str) && !r4.test(str)))
		{
		     alert("Please Enter Valid " + Msgstr + " Address ....");
		     elm.select();		
		     return true;
	  	}
		else return false;
	}

//-----FUNCTION TO CHECK VALID EMAIL ADDRESS ENDS HERE------------


//-----FUNCTION TO CHECK BLANK VALUES IN TEXT BOXES STARTS HERE------------

	function isBlank(blank,MsgStr)
	{
		SqlSecure(blank.value);
		if(blank.value=='')
		 {
			alert(MsgStr + " Should Not Be Blank !");
			blank.select();
			return true;					
		 }
		else if(blank.value.charCodeAt(0)==32)
		 {
			alert(MsgStr + " Should Not Be Blank !");
			blank.select();
			return true;
		 }	
		else return false;	     
	}

	function isBlankAllowed(blank,MsgStr)
	{
		if(blank.value=='')
		 {
			//alert(MsgStr + " Should Not Be Blank !");
			blank.select();
			return true;					
		 }
		else if(blank.value.charCodeAt(0)==32)
		 {
			//alert(MsgStr + " Should Not Be Blank !");
			blank.select();
			return true;
		 }
		else if(blank.value.charCodeAt(0)==0)
		 {
			//alert(MsgStr + " Should Not Be Blank !");
			blank.select();
			return true;
		 }		else return false;	     
	}

	function isValSelected(toselect,MsgStr)
	{
		if(toselect.value=='0')
		 {
			alert("Select " + MsgStr);
			toselect.focus();
			return true;					
		 }
		else return false;	     
	}
//-----FUNCTION TO CHECK BLANK VALUES IN TEXT BOXES ENDS HERE------------


//-----FUNCTION TO CHECK IF ENTERED LENGTHED TEXT IS ALLOWED IN TEXTBOX OR TEXTAREA CONTROLL STARTS HERE----
//-----THIS FUNCTION IS MAINLY USEFUL FOR RESTRICTING USER TO ENTERED MORE THAN ACCEPTABLE LENTH OF TEXT--

	function isTextLength ( taobject , len , MsgStr , isTrim)
	{
		if (taobject.value.length > len )
		{
			alert ( "You can enter "+ MsgStr +" upto " +len+ " characters ..." );
			if (isTrim)
			{
				var chop=confirm("Do you want to set " + MsgStr + " to " + len + " characters ? " );
				if (chop)
				{
					taobject.value=taobject.value.slice(0,len);
				}
			}
			taobject.select();
			return true;
		}
		else return false;
	}

//-----FUNCTION TO CHECK IF ENTERED LENGTHED TEXT IS ALLOWED IN TEXTBOX OR TEXTAREA CONTROLL ENDS HERE----

//-- Function to check wheather the value of the field contains HTML tag --

function isScriptTag( TxtObj, MsgStr) {
  var str;
  str = TxtObj.value;
  SqlSecure(str);
  var r2 = new RegExp("[<>]");
  if (r2.test(str) )
  {
     alert( MsgStr + " is invalid." );
     TxtObj.select();
     return(!r2.test(str) );
  }
  return( true);
}


//-- Function to check wheather the value of the field contains HTML tag --

function isScript( TxtObj, MsgStr)
 {
  var str;
  var onEvents;
 
  onEvents="onclick|onchange|onmouseover|onmouseout|onload|onunload|onfocus|onblur|onKeyDown|onDblClick|onReSize|onselect|onKeyup|onkeyPress|onMouseUp|onabort|<LINK|<Img"
  onEvents=onEvents.toUpperCase();
 
  str = TxtObj.value;
  SqlSecure(str);
  str=str.toUpperCase()
  var r1=new RegExp(onEvents);
  var r2 = new RegExp("<SCRIPT");
  var r3 = new RegExp("<A");
  if (r1.test(str))
  {
	alert( MsgStr + "is invalid, description may contain some script tags which are not allowed.")
	TxtObj.select();
	return(!r1.test(str)); 
  }
  if (r2.test(str) )
  {
     alert( MsgStr + " is invalid, description may contain some script tags which are not allowed." );
     TxtObj.select();
     return(!r2.test(str) );
  }
  if (r3.test(str) )
  {
     alert( MsgStr + " is invalid." );
     TxtObj.select();
     return(!r3.test(str) );
  }
  return( true);
}

function isPhone( TxtObj, MsgStr) 
{
  var str;
  str = TxtObj.value;
  var r2 = new RegExp("[-]");
  if ( r2.test(str) )
  {
	alert( MsgStr + " is invalid must entered ',' saparated value." );
	TxtObj.select();
	return( r2.test(str) );
  }

  return( false );
}
