var CustomForm = {
  createHidden : function( name, value ) {
    rv = document.createElement( 'input' );
    rv.name = name;
    rv.type = 'hidden';
    rv.value = value;
    return rv;
  }
}

addListener( window, 'load', function() {
  var radios = new Array();
  var checkboxes = new Array();
  var selects = new Array();

  var inputs = document.getElementsByTagName( 'select' );
  for( var i=0; i<inputs.length; i++ )
    if ( inputs[ i ].className.indexOf( 'custom' ) != -1 )
      selects.push( inputs[ i ] );

  for ( var i=0; i<selects.length; i++ )
    new CustomSelect( selects[ i ] );

  //  On cumule les éléments suivants dans des tableaux distincts
  //  pour de sombres histoire de références et d'index dans le tableau inputs
  var inputs = document.getElementsByTagName( 'input' );
  for( var i=0; i<inputs.length; i++ )
    if ( inputs[ i ].className.indexOf( 'custom' ) != -1 ) {
      if ( inputs[ i ].type == 'checkbox' )
        checkboxes.push( inputs[ i ] );
      else if ( inputs[ i ].type == 'radio' )
        radios.push( inputs[ i ] );
    }

  for ( var i=0; i<checkboxes.length; i++ )
    new CustomCheckbox( checkboxes[ i ] );

  for ( var i=0; i<radios.length; i++ ) //  Les boutons radio fonctionnent en groupe ;)
    CustomRadioGroup.getInstance( radios[ i ].name ).append( new CustomRadio( radios[ i ] ) );
} );