

//return true if string is longer than 0 char and not all blanks
function validateText( strValue )
{
  var strTemp = strValue;
  strTemp = trimAll(strTemp);
  if(strTemp.length > 0)
  {
    return true;
  }
  return false;
}

//return true if string is valid integer
function validateInteger( strValue ) {
  var objRegExp  = /(^-?\d\d*$)/;
  //check for integer characters
  return objRegExp.test(strValue);
}

//remove leading & trailing whitespace
function trimAll( strValue ) {
 var objRegExp = /^(\s*)$/;

    //check for all spaces
    if(objRegExp.test(strValue)) {
       strValue = strValue.replace(objRegExp, '');
       if( strValue.length == 0)
          return strValue;
    }

   //check for leading & trailing spaces
   objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
   if(objRegExp.test(strValue)) {
       //remove leading and trailing whitespace characters
       strValue = strValue.replace(objRegExp, '$2');
    }
  return strValue;
}

//Validates that a string contains only valid numbers.
function  validateNumeric( strValue )
{
  var objRegExp  =  /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/;
  //check for numeric characters
  return objRegExp.test(strValue);
}

//validates date in dd-MMM-yyyy format
function validateDDMMMYYYY( strValue )
{
  //var objRegExp = /^([1-9]|0[1-9]|[1-2][0-9]|3[0-1])-[a-zA-Z]{3}-[1-2][0-9]{3}$/
  var objRegExp = /^([1-9]|0[1-9]|[1-2][0-9]|3[0-1])-(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec|bas)-[1-2][0-9]{3}$/
  //check to see if in correct format
  if(objRegExp.test(strValue.toLowerCase())) return true;
  return false;
}


//validates date in dd-MMM-yyyy hh:mm:ss format
function validateDDMMMYYYYhhmmss( strValue )
{
  var objRegExp = /^([1-9]|0[1-9]|[1-2][0-9]|3[0-1])-(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec|bas)-[1-2][0-9]{3} ([0-9]|[0-1][0-9]|[2][0-3])(:[0-5][0-9])(:[0-5][0-9])$/
  //check to see if in correct format
  if(objRegExp.test(strValue.toLowerCase())) return true;
  return false;
}

//validates date in dd-MMM-yyyy hh:mm format
function validateDDMMMYYYYhhmm( strValue )
{
  var objRegExp = /^([1-9]|0[1-9]|[1-2][0-9]|3[0-1])-(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec|bas)-[1-2][0-9]{3} ([0-9]|[0-1][0-9]|[2][0-3])(:[0-5][0-9])$/
  //check to see if in correct format
  if(objRegExp.test(strValue.toLowerCase())) return true;
  return false;
}

//validates date in dd-MMM-yyyy format
function validateDDMMMYYYY( strValue )
{
  var objRegExp = /^([1-9]|0[1-9]|[1-2][0-9]|3[0-1])-(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec|bas)-[1-2][0-9]{3}$/
  //check to see if in correct format
  if(objRegExp.test(strValue.toLowerCase())) return true;
  return false;
}

//validate against regular expression
function validateValue( strValue, strMatchPattern )
{
  var objRegExp = new RegExp( strMatchPattern);

 //check if string matches pattern
 return objRegExp.test(strValue);
}


//validates time in h, hh or hh:mm format
function validateHHMM( strValue )
{                 // "0" to "23"   or "00:00" to "23:59"
  var objRegExp = /^([0-9]|[0-1][0-9]|[2][0-3])(:[0-5][0-9])?$/

  //check to see if in correct format
  return objRegExp.test(strValue);
}


//Removes characters from a source string
//  based upon matches of the supplied pattern.
function removeCharacters( strValue, strMatchPattern )
{
 var objRegExp =  new RegExp( strMatchPattern, 'gi' );

 //replace passed pattern matches with blanks
  return strValue.replace(objRegExp,'');
}



var months = new Array("jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec");

//Convert dd-MMM-yyyy, dd-MMM-yyyy hh:mm or dd-MMM-yyyy hh:mm:ss string into javascript date
function getDateFromDDMMMYYY(inDate)
{
  var dateSplitArray = inDate.split("-");

  var year = parseInt(dateSplitArray[2], 10);//parseInt finds first int, so ignores times

  //find the month int
  var monthString = dateSplitArray[1].toLowerCase();
  var month = -1;
  for(x=0; x<12 && month == -1 ; x++)
  {
    if(monthString == months[x]) month = x;
  }

  var day = parseInt(dateSplitArray[0], 10);

  var date = new Date();
  date.setYear(year);
  date.setMonth(month);
  date.setDate(day);

  return date;
}

//get the difference between two javascript dates
function daysBetweenDates(date1, date2)
{

    // The number of milliseconds in one day
    var ONE_DAY = 1000 * 60 * 60 * 24;

    // Convert both dates to milliseconds
    var date1_ms = date1.getTime();
    var date2_ms = date2.getTime();

    // Calculate the difference in milliseconds
    //var difference_ms = Math.abs(date1_ms - date2_ms)
    var difference_ms = date2_ms - date1_ms;

    // Convert back to days and return
    return Math.round(difference_ms/ONE_DAY);
}

//get the difference between two dates in dd-MMM-yyyy format
function daysBetween(date1, date2)
{
  return daysBetweenDates(getDateFromDDMMMYYY(date1),
                          getDateFromDDMMMYYY(date2));
}

//validates time in h, hh or hh:mm format
function validateHHMMSS( strValue )
{                 // "0:00:00" or 00:00:00 to "xx:59:59"
  var objRegExp = /^([0-9]|[0-9][0-9])(:[0-5][0-9])(:[0-5][0-9])?$/

  //check to see if in correct format
  return objRegExp.test(strValue);
}