
var isNN = ( navigator.appName.indexOf( "Netscape" ) != -1 );

function isDate( dateStr ) 
{

  var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
  var matchArray = dateStr.match( datePat ); // is the format ok?

  if( matchArray == null )
    return false;

  month = matchArray[ 1 ]; // parse date into variables
  day = matchArray[ 3 ];
  year = matchArray[ 5 ];

  if( month < 1 || month > 12 )// check month range
    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

}

function autoTab( input, len, e ) 
{

  var keyCode = ( isNN ) ? e.which : e.keyCode; 
  var filter = ( isNN ) ? [ 0, 8, 9 ] : [ 0, 8, 9, 16, 17, 18, 37, 38, 39, 40, 46 ];
  if( input.value.length >= len && !containsElement( filter,keyCode ) ) 
  {
  
  input.value = input.value.slice( 0, len );
  input.form[ ( getIndex( input ) + 1 ) % input.form.length ].focus();

  }

  function containsElement( arr, ele ) 
  {

    var found = false, 
        index = 0;
    
    while( !found && index < arr.length )
    
    if( arr[ index ] == ele )
      found = true;
    else
      index++;
      
    return found;

  }

  function getIndex( input ) 
  {

    var index = -1, 
        i = 0, 
        found = false;
        
    while( i < input.form.length && index == -1 )
      if( input.form[ i ] == input )
        index = i;
      else i++;
        return index;
        
  }
  
  return true;

}

function noenter( e ) 
{

  // IE 
  if( window.event )
  {
    
    if( window.event.keyCode == 13 )
    {
      
      window.event.cancelBubble = true;
      window.event.returnValue = false;
      
    }
    
    return;
    
  }
  
  // Netscape/Mozilla/FireFox
  if( e.which )
  {
    
    return e.which != 13;
    
  }
  
}