
 //==========================================================================

// Declare patterns for different Regular Expression

var PatternsDict = new Object()


// mathes telephone no.
PatternsDict.telpat  = "^(\d{10}|(\d{3}-\d{3}-\d{4}))?$"

// matches numeric
PatternsDict.numericpat  = "^\d*$" // Any number is allowed, but are optional

// matches white space
PatternsDict.whitespacepat = /\s+/

// matches zip code
PatternsDict.zippat = "^(\d{5}|\d{9}|(\d{5}-\d{4}))?$"

// matches IP address
PatternsDict.IPpat = "^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})?$"

// matches hex number
PatternsDict.hexpat = "^([a-fA-F0-9]+)?$"

// matches any alphanumeric character,hyphen(-) or an underscore(_)
// including white space
PatternsDict.validpat = "^[a-zA-Z0-9-_]+$"

// matches required field
PatternsDict.requiredpat = "^((/\s+)|'')?$"

// matches character
 PatternsDict.charpat = /^[a-zA-Z]+$/

// mathes email
var emailpat = /^[A-Za-z0-9\-_\.]+@+[A-Za-z0-9\-\.]+\.+[A-Za-z]{2,10}$/

// matches unsigned float
var ufloatpat = /^((\d+(\.\d*)?)|((\d*\.)?\d+))$/

// matches signed float
var sfloatpat = /^(((\+|\-)?\d+(\.\d*)?)|((\+|\-)?(\d*\.)?\d+))$/



// End of pattern declaration
//=================================================================================


// Check for valid email format

function isEmail(Object,msg)
 {

   var strInput   = new String(Object.value)

   if (trim(strInput) == "")

     {
       return true
     }

   var objregExp  = emailpat

   if(objregExp.test(strInput))

     {
       return true

     }
     alert(msg)
     Object.focus()
     return false

 }

// Checks a character type field

function isChar(Object,msg)
 {

   var strInput = new String(Object.value)

   if (trim(strInput) == "")

     {
        return true
     }

   var objregExp  = new RegExp(PatternsDict.charpat)

   if(objregExp.test(strInput))

     {

       return true

     }

     alert(msg)
     Object.focus()
     return false

 }

// Check if field contains any character except alplanumeric and -/_
// including white space

function isValid(Object,msg)
 {

   var strInput = new String(Object.value)
   var objregExp  = new RegExp(PatternsDict.validpat)


   if(objregExp.test(strInput))

     {

       return true

     }

     alert(msg)
     Object.focus()
     return false

 }

// Checks mandatory field

function isRequired(Object,msg)
  {
    var strInput = trim(new String(Object.value))
    var objregExp  = new RegExp(PatternsDict.requiredpat)


   if(objregExp.test(strInput))

     {
       alert(msg)
       Object.focus()
       return false

     }

     return true

 }

// Checks valid hexa decimal number

function isHex(Object,msg)

 {
   var strInput   = new String(Object.value)

   if (trim(strInput) == "")

     {
       return true
     }

   var objregExp  = new RegExp(PatternsDict.hexpat)

   if(objregExp.test(strInput))

     {
       return true

     }

     alert(msg)
     Object.focus()
     return false

 }

// Checks valid IP address

function isValidIP(Object,msg)
{
   var strInput   = new String(Object.value)

   if (trim(strInput) == "")

     {
       return true
     }

   var objregExp  = new RegExp(PatternsDict.IPpat)

   if(objregExp.test(strInput))

     {
       return true

     }

     alert(msg)
     Object.focus()
     return false

 }

// Checks for valid zip no.

function isUSAZip(Object,msg)

 {
   var strInput   = new String(Object.value)

   if (trim(strInput) == "")

     {
       return true
     }

   var objregExp  = new RegExp(PatternsDict.zippat)


   if(objregExp.test(strInput))

     {
       return true

     }

     alert(msg)
     Object.focus()
     return false

 }

// Checks for white space

function isWhitespace(Object,msg)

 {
   var strInput   = new String(Object.value)

   var objregExp  = new RegExp(PatternsDict.whitespacepat)

   if(objregExp.test(strInput))
     {
	if (msg != null)
	  alert(msg);

   	return true
     }

   return false

 }

// Checks for numeric input


/*
function isNumeric(Object,msg)

 {
   var strInput   = new String(Object.value)
   var objregExp  = new RegExp(PatternsDict.numericpat)

   if(objregExp.test(strInput))

     {
       return true

     }

     alert(msg)
     Object.focus()
     return false

 }

*/


function isUSATel(Object,msg)
 {

   var strInput   = new String(Object.value)

   if (trim(strInput) == "")

     {
       return true
     }

   var objregExp  = new RegExp(PatternsDict.telpat)

   if(objregExp.test(strInput))

     {
       return true

     }

     alert(msg)
     Object.focus()
     return false

 }

// Checks partial phone number

 function isFilled(Object,msg)
  {
   var strInput   = new String(Object.value)

   if (trim(strInput) == "")

     {
       return true
     }

   var objregExp  = new RegExp(PatternsDict.telpat)

   if(objregExp.test(strInput))

     {
       return true

     }

     alert(msg)
     Object.focus()
     return false
  }


// =======================================================================================
// This function is used to change any text to Uppercase text

function UpperCase(toconvert)
 {
  text      = new String(toconvert);
  toconvert = text.toUpperCase();

  return  toconvert;
 }


  // Check for numeric field

 function isNumeric(Object,length,msg)
   {

     var strInput = new String(Object.value)


     if(strInput.length > 0 && !isWhitespace (Object))
      {
       if(strInput.length < length)
        {
         alert("Field must be " + length + " characters long")
         Object.focus()
         return false
        }

       for(i = 0; i < strInput.length; i++)
        {
         if(strInput.charAt(i) < '0' ||  strInput.charAt(i) > '9')
          {
           alert(msg)
           Object.focus()
           return false
          }
        }
     }
      return true
   }



 // Check whether Passwords are matched

 function isPwdMatch(pwd,cpwd,msg)
  {

    if (pwd.value != cpwd.value )
     {
       alert(msg);
       cpwd.focus()
       return false
     }
    else
      return true
  }



 // Check if the field is of min length

function isMinlen(Object,len,msg)
 {
  strInput = trim(new String(Object.value))
  sLength  = strInput.length
  if(sLength < len)
   {
    alert(msg)
    Object.focus()
    return false
   }
  return true
 }

// Check if the maximum length of the field

function isMaxlen(Object,len,msg)
 {
  strInput = trim(new String(Object.value))
  sLength  = strInput.length
  if(sLength > len)
   {
    alert(msg)
    Object.focus()
    return false
   }
  return true
 }

// Check if two fields are indentical

 function isSimilar(Object1,Object2,msg)
  {
   strInput1 = new String(Object1.value)
   strInput2 = new String(Object2.value)

   if(strInput1.valueOf() == strInput2.valueOf())
       {
     alert(msg)
     Object2.focus()
     return true
    }

    return false
  }

// Check if two or motr email ids are are indentical

 function isEmailSimilar(str1,str2,str3,str4,str5,msg)
  {

   strInput1 = new String(str1)
   strInput2 = new String(str2)
   strInput3 = new String(str3)
   strInput4 = new String(str4)
   strInput5 = new String(str5)


     var fstr,sstr;
     for(i=1;i<=5;i++)
      {
      fstr = new String(eval("strInput" + i))

        for(j=i+1;j<=5;j++)
        {

         sstr = new String(eval("strInput" + j))

        if(fstr.valueOf() != "" && sstr.valueOf() != "")
          {

			if(fstr.valueOf() == sstr.valueOf())
              {
                alert(msg)
			    return false
		      }
		  }
	    }
      }
     return true
  }
  //==Check whether Pwd Question & Ans. are entered..

  function isValidQA(Object1,Object2,msg1,msg2)
  {
	Object = new String(val1.value)
	str2 = new String(val2.value)
	if(Object.length > 0 || str2.length > 0)
	{
		if(Object.length == 0)
		{
			alert(msg1)
			Object1.focus()
			return false
		}
		else if(str2.length == 0)
		{
			alert(msg2)
			Object2.focus()
			return false
		}
		else
			return true
	}return true
  }

function trim(strString)
{
   var strCopy = new String(strString)
   strCopy = strCopy.replace(/^\s+/,"")
   strCopy = strCopy.replace(/\s+$/, "")
   return strCopy.toString()
}



function isDate(Yr,Mon,Day)
{


//checks number of days in a month, and leap year related validations.
  var rem;
  var dateOk = true;

  if (Day == 31)
  {
    if ((Mon == "02") || (Mon == "04") || (Mon == "06") || (Mon == "09") || (Mon == "11"))
    	  {
    	   dateOk = false;
    	   alert("PLease Check! The month you entered doesn't have 31 days.")
    	   }
  }
  else
  {
     if ((Day > 29) && (Mon == "02"))
     {
         dateOk = false;
         alert("PLease Check! The month you entered doesn't have " + Day + " days.")
     }
	 else
       {
        if ((Day == 29) && (Mon == "02"))
          {
           rem = Yr % 400;
           if (rem == 0)
              dateOk = true;
           else
           {
             rem = rem % 100;
             if (rem == 0)
                dateOk = true;
             else
           	 {
               rem = rem % 4;
               if (rem != 0)
               dateOk = false;
               alert("February can have 29 days in a leap year only. Please select a leap year")
             }
           }
     }
  }
 }
 return dateOk
} // end function

// Check for valid signed float format

function isSignedFloat(Object,msg)
 {

   var strInput   = new String(Object.value)

   if (trim(strInput) == "")

    {
       return true
    }

   var objregExp  = sfloatpat

   if(objregExp.test(strInput))

     {
       return true

     }
     alert(msg)
     Object.focus()
     return false

 }

// Check for valid unsigned float format

function isUnSignedFloat(Object,msg)
 {

   var strInput   = new String(Object.value)

   if (trim(strInput) == "")

     {
          return true
     }

   var objregExp  = ufloatpat

   if(objregExp.test(strInput))

     {
       return true

     }
     alert(msg)
     Object.focus()
     return false

 }


function Replace(str1, str2, str3)

 {

	str1 = str1.replace(new RegExp(str2,'g'),str3);
	return str1
 }

function isNumInRange(Object, low, high,msg)

// Results: alert if textBox does not contain an integer & clears contents
{

   var strInput   = new String(Object.value)

   if (trim(strInput) == "")

    {
       return true
    }

   strInput = parseFloat(strInput);

   Object.value = strInput

   if(isNaN(strInput))
     {
       Object.value = 0
       //return true
     }



   if (isNaN(high) && !isNaN(strInput))
      {

        if ((high.toUpperCase() == "LT") || (high == "<"))
   	    Operator = "<"
   	if((high.toUpperCase() == "LE") || (high == "<="))
   	    Operator = "<="
   	if((high.toUpperCase() == "GT") || (high == ">"))
   	    Operator = ">"
   	if((high.toUpperCase() == "GE") || (high == ">="))
   	    Operator = ">="
   	else if((high.toUpperCase() == "EQ") || (high == "="))
   	    Operator = "=="

   	if (!eval(strInput + 	" " + Operator + " " + low))
   	  {
   	     alert(msg)
   	     Object.focus()
   	     return false
    	  }

    	return true

      }


   if ( isNaN(strInput) || (strInput < low) || (strInput > high))

    {
	alert(msg)
	Object.focus()
	return false

    }

    return true
}

function isIntInRange(Object, low, high,msg)

// Results: alert if textBox does not contain an integer in range & clears
{
    var strInput   = new String(Object.value)
    var Operator

    if (trim(strInput) == "")

     {
        return true
     }


    strInput = parseInt(strInput,10);

    Object.value = strInput

    if(isNaN(strInput))
       {
          Object.value = 0
	  //return true
       }



    if (isNaN(high) && !isNaN(strInput))
      {

	if ((high.toUpperCase() == "LT") || (high == "<"))
	    Operator = "<"
	if((high.toUpperCase() == "LE") || (high == "<="))
	    Operator = "<="
	if((high.toUpperCase() == "GT") || (high == ">"))
	    Operator = ">"
	if((high.toUpperCase() == "GE") || (high == ">="))
	    Operator = ">="
	else if((high.toUpperCase() == "EQ") || (high == "="))
	    Operator = "=="

	if (!eval(strInput + 	" " + Operator + " " + low))
	  {
	     alert(msg)
	     Object.focus()
	     return false
 	  }


 	 return true

      }

    if ( isNaN(strInput) || (strInput % 1 != 0) || (strInput < low) || (strInput > high))
       {
	 alert(msg)

	 Object.focus()
	 return false

       }

    return true
}

//Checks for multiple checked checkboxes

function isMultipleChecked(Object,MsgOption,msg)
{
    var intNoOfLines = 0;
    var NumChecked;

    NumChecked = 0;

    if(Object)
     {
       intNoOfLines = Object.length;
     }

    if(isNaN(intNoOfLines))
     {
       intNoOfLines = 1;

     }

    if(intNoOfLines == 1)
    {
       if (Object.checked)
	{
	  NumChecked++;
	}
    }
   else
    {
     for(i=0;i<intNoOfLines;i++)
      {

       if (Object[i].checked)
	{

	 NumChecked++;

	}
      }
    }

    if(NumChecked > 1)
       {
         if(MsgOption)
            {

	      if(trim(msg) != "" || isMultipleChecked.arguments.length > 2)
       		alert(msg);
    	    }

         return true;
       }

     if(!MsgOption)
	 {

	   if(trim(msg) != "" && isMultipleChecked.arguments.length > 2)
	   alert(msg);
    	 }

    return false;

}
//Checks at lease one checkbox/radio button has been checked or not

function isAtleastOneChecked(Object,msg)
{

	  var intNoOfLines = 0;
	  var boolChecked  = false;

	  if(Object)
	   {
	      intNoOfLines = Object.length;
	   }

	  if (isNaN(intNoOfLines))
	   {
	      intNoOfLines = 1;

	   }


	   if(intNoOfLines == 1)
	    {
	       if (Object.checked)
	        {
	          boolChecked = true;
	        }
	    }
	   else
	    {
	     for(i=0;i<intNoOfLines;i++)
	      {

	       if (Object[i].checked)
	        {

	          boolChecked = true;
	          break;

	        }
	      }
	    }

	   if(boolChecked)
	     {

	       return true;
	     }

	   alert(msg);
	   return false;
}

//==== Checks and unchecks all the check boxes

function selectAll(Object1,Object2)
{

  var intNoOfItems = 0;

  if(Object2)
   {
	intNoOfItems = Object2.length;
   }

  if (isNaN(intNoOfItems))
   {
      intNoOfItems = 1;

   }

  if(Object1.checked)
   {
	 if(intNoOfItems == 1)
	 {
		Object2.checked = true;
	 }
	else
	 {
		for (i=0;i<intNoOfItems;i++)
		{
		 Object2[i].checked = true;
		}
   	 }

   	Object1.checked = true;



   }
  else
    {
	  if(intNoOfItems == 1)
	   {
            Object2.checked = false;
	   }
	  else
	  {
	    for (i=0;i<intNoOfItems;i++)
	     {
	       Object2[i].checked = false;
	     }
	  }

         Object1.checked = false;



    }
}

function chkAllCheckBoxes(Object1,Object2)
{

	var TB=TO=0;
	var intNoOfItems = 0;

	  if(Object2)
	   {
		intNoOfItems = Object2.length;
	   }

	  if (isNaN(intNoOfItems))
	   {
	      intNoOfItems = 1;

   	   }

	for (var i=0;i<intNoOfItems;i++)
	{
	   TB++;

	   if(intNoOfItems == 1)
	     {
	       if(Object2.checked)
	          TO++;
	     }
	   else
	     {
	       if(Object2[i].checked)
		TO++;
	     }
	}

	if (TO==TB)
		Object1.checked=true;
	else
		Object1.checked=false;
}

