function applyProductListConstraint() {
  var oForm = document.getElementById( 'recherche_results' );
  if ( !isSet( oForm ) )
    return ;
  var oInputs = oForm.getElementsByTagName( 'input' );
  var oCheckboxes = new Array();
  for( var i=0; i<oInputs.length; i++ )
    if ( oInputs[ i ].type.toLowerCase() == 'checkbox' )
      oCheckboxes.push( oInputs[ i ] );
  for( var i=0; i<oCheckboxes.length; i++ )
    oCheckboxes[ i ].onclick = function( e ) { disallowMoreThanFourCheckedItems( this, oCheckboxes ); }

  // on lance la routine interdisant de cocher plus de 4 éléments dès maintenant
  // ainsi si l'utilisateur avait commencé à cocher avant la fin du chargement complet
  // de la page, lorsque cet évènement intervient seules les dernières cases restent cochées
  for( var i=0; i<oCheckboxes.length; i++ )
    disallowMoreThanFourCheckedItems( oCheckboxes[ i ], oCheckboxes );
}

function disallowMoreThanFourCheckedItems( oCheckbox, oCheckboxes ) {
  var nChecked = 0;
  for( var i=0; i<oCheckboxes.length; i++ )
    if ( oCheckboxes[ i ].checked ) nChecked++;
  if ( nChecked > 4 )
    oCheckbox.checked = false;
}

function orderBehaviour() {
  var trigger = document.getElementById( 'order_list' );
  if ( trigger )
    addListener( trigger, 'change', function( e ) {
      DOMEvent.getTarget( e ).parentNode.parentNode.parentNode.submit();
    } );
}

function applyListBehaviours() {
	applyProductListConstraint();
	orderBehaviour();
	findShopLink();
}

addListener( window, 'load', applyListBehaviours );