¿Cómo cargar las API JS de Google Custom-search-engine (CSE) después de cargar la página?

Estoy usando el motor de búsqueda personalizado de Google con su nueva función de autocompletado. Quiero que todo este javascript se cargue DESPUÉS de cargar la página en sí. El código original de Google es este:

<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
  google.load('search', '1');
  google.setOnLoadCallback(function() {
    google.search.CustomSearchControl.attachAutoCompletion(
      'some-long-unique-id',
      document.getElementById('q'),
      'cse-search-box');
  });
</script>
<script type="text/javascript" src="http://www.google.com/cse/brand?form=cse-search-box&lang=cs"></script>

He transformado este código usando tutorial sobre la carga dinámica de JS a este código:

(function() {
  var goog = document.createElement('script'); goog.type = 'text/javascript';
  goog.src = 'http://www.google.com/jsapi';
  var cse = document.createElement('script'); cse.type = 'text/javascript';
  cse.src = 'http://www.google.com/cse/brand?form=cse-search-box&lang=cs';
  goog.onload = function() {
    google.load('search', '1');
    google.setOnLoadCallback(function() {
      google.search.CustomSearchControl.attachAutoCompletion(
        'some-long-unique-id',
        document.getElementById('q'),
        'cse-search-box');
    });
  };
  var s = document.getElementsByTagName('script')[0];
  s.parentNode.insertBefore(cse, s);
  s.parentNode.insertBefore(goog, s);
})();

Bueno, aunque creo que mi solución debería funcionar (de la misma manera que Google ha cambiado su código asincrónico a pedido de Analytics), no lo hace. La página se carga bien y tan pronto como se carga CSE, la página queda en blanco. Algo borra el DOM, supongo que es una especie de "cosa de Google"? ¿Alguien puede aportar algo de luz sobre este problema y posiblemente una solución que funcione?

Gracia

Respuestas a la pregunta(3)

Su respuesta a la pregunta