
/////////////////////////////////////////
//Required ///////////////
/////////////////////////////////////////

function CheckRequired(TheObjName,errMsg)
{
  var TheObj;
  TheObj=document.getElementById(TheObjName);
  if (TheObj.value=='')
  {
    alert(errMsg);
    TheObj.focus();
    return false;
  }   
}

function CheckDrpRequired(TheObjName,errMsg)
{
  var TheObj;
  TheObj=document.getElementById(TheObjName);
  if (TheObj.selectedIndex == -1)
  {
    alert(errMsg);
    TheObj.focus();
    return false;
  }   
}

/////////////////////////////////////////
//Date ///////////////
/////////////////////////////////////////

function CheckIsDate(TheObjName,errMsg)
{
  var TheObj;
  TheObj=document.getElementById(TheObjName);
  //alert(isValidDate(TheObj.value));
  if (isValidDate(TheObj.value)!=true)
  {
    alert(errMsg);
    TheObj.focus();
    return false;
  }   
}

function isValidDate(dateStr) {

 var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;

 var matchArray = dateStr.match(datePat); 
 if (matchArray == null) {
  return false;
 }
 month = matchArray[3];
 day = matchArray[1];
 year = matchArray[4];
 
 if (month < 1 || month > 12) {
  return false;
 }
 
 if (day < 1 || day > 31) {
  return false;
 }
 
 if ((month==4 || month==6 || month==9 || month==11) && day==31) {
  return false
 }
 
 if (month == 2) { // check for february 29th
  var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
  if (day>29 || (day==29 && !isleap)) {
   return false;
  }
 }
 
 return true;  // date is valid
}


/////////////////////////////////////////
//Mail and Url ///////////////
/////////////////////////////////////////

function CheckMail(TheObjName,errMsg)
{
  var TheObj;
  var TheMail;
  TheObj=document.getElementById(TheObjName);
  TheMail=TheObj.value;
  
  if (TheMail=="") {return true;}
  
  apos=TheMail.indexOf("@");
  dotpos=TheMail.lastIndexOf(".");
    if (apos<1||dotpos-apos<2) 
    {
      alert(errMsg);
      TheObj.focus();
      return false;
    }
}


function CheckSite(TheObjName,errMsg)
{
  var TheObj;
  var TheSite;
  TheObj=document.getElementById(TheObjName);
  TheSite=TheObj.value;
  
  if (TheSite=="") {return true;}

  var RegExp = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/; 
  if(RegExp.test(TheSite))
  { 
    return true; 
  }
  else
  { 
    alert(errMsg);
    TheObj.focus();
    return false;
  } 
}

/////////////////////////////////////////
//Length ///////////////
/////////////////////////////////////////

function CheckLength(TheObjName,MaxLength,errMsg)
{
  var TheObj;
  var TheString;
  TheObj=document.getElementById(TheObjName);
  TheString=TheObj.value;
    if (TheString.length > MaxLength) 
    {
      alert(errMsg);
      TheObj.focus();
      return false;
    }
}

/////////////////////////////////////////
//Numeric ///////////////
/////////////////////////////////////////

function CheckNumeric(TheObjName,errMsg)
{
  var TheObj;
  var TheString;
  TheObj=document.getElementById(TheObjName);
    if (isNaN(TheObj.value))
    {
      alert(errMsg);
      TheObj.focus();
      return false;
    }
}

function CheckNumericRange(TheObjName,MinValue,MaxValue,errMsg)
{
  var TheObj;
  var TheString;
  TheObj=document.getElementById(TheObjName);
    if (TheObj.value>100 || TheObj.value<0)
    {
      alert(errMsg);
      TheObj.focus();
      return false;
    }
}

