

function getFormElement( form, element ) {
  if( document.getElementById ) return document.getElementById( element );
  if( document.all ) return document.all[ element ];
  if( document.layers ) return document[ form ][ element ];
  return null;
}

function validateFields() {

  // initializations
  var form = validateFields.arguments[ 0 ];
  var output = "";
  var ok = true;

  // retrieve each field in the given list
  for( var i = 1; i < validateFields.arguments.length; i++ ) {

    var field = validateFields.arguments[ i ];
    var xtype = field.charAt( 0 );
    field = field.substring( 1, field.length );

    var ref = getFormElement( form, field );

    switch( xtype ) {

      case 'T':
        if( ! validText( ref.value ) ) {
          ok = false;
          output = output + "\nCampul '" + field + "' este gol.";
        }
        break;

      case 'N':
        if( ! validNumber( ref.value ) ) {
	  ok = false;
          output = output + "\nCampul '" + field + "' trebuie sa fie un numar.";
        }
        break;

      case 'E':
        if( ! validEmail( ref.value ) ) {
	  ok = false;
          output = output + "\nCampul '"+ field + "' trebuie sa fie o adresa de e-mail.";
	}
        break;
		
      case 'S':
        if( ! validSelect( ref.value ) ) {
	  ok = false;
          output = output + "\nCampul '" + field + "' este gol.";
        }
        break;
    }
  }


  // send results and function result
  if( ! ok ) alert( "Oops..." + output );
  return ok;

}


function validText( text ) {
  return ( text != "" );
} 


function validSelect( select ) {
  if (select == "Gol") return false;
  return true;
} 

function validNumber( number ) {
  if ( number == "" ) return false;
  for( var i = 0; i < number.length; i++ ) {
    var ch = number.charAt( i );
    if( ch < '0' || ch > '9' ) return false;
  }
  
  return true;
}

function validEmail( email ) {

  // check 'at'
  var x = email.indexOf( '@' );
  if( x < 0 ) return false;

  var x2 = email.lastIndexOf( '.' );
  if( x2 == email.length - 1 || x2 < x ) return false;
  return true;

}

