Aquesta funcció genera el menu select segons l'xml rebut

 function getmenu(xml){

   var gallery      = readCookie('gallery');
   var array_select = xml.getElementsByTagName("category");
   var menu = "";

   menu += "<form name=\'cat\'><div>\n";

   for( var x = 0; x < array_select.length; x++) {

      var categories = array_select[x];
      var id         = categories.getAttribute("name");
      var subcat     = categories.getElementsByTagName("sub");
      var y          = 0;
      menu += "<fileset id=\""+id+"\" >\n";
      menu += "<legend class=\"menu_title\"><code>"+ucWords(id)+
              "</code></legend>";

      while ( y < subcat.length) {

         var sub_id = subcat[y].getAttribute("name");

         menu += "<input";
         menu += "  type='checkbox'";
         menu += "  class='menu_input'";
         menu += "  onClick =\" check_pics(); \"";
         menu += "  id=\"" + sub_id + "\"";
         menu += "  name=\"" + sub_id + "\"";
         menu += "  checked='checked'";
         menu += " />\n";
         menu += sub_id + "\n<br>\n"; 
         y++;
      }

      menu += "</fileset><br>";

   }

   menu += "</div></form>";
   $('menu').innerHTML = menu;<br>

   check_pics();

 }

listat de variables

Variable Descripció
xml XML rebut
gallery nom de la galeria
array_select array on es guardaran les propietats del menu
categories / id / subcat / subid propietats de cada element del menu


porcions de codi a comentar

for( var x = 0; x < array_select.length; x++) { per cada element del array executarem les instruccions que la segueixen
var id = categories.getAttribute("name"); obtenim els atributs ("name") del objecte categories i el guardem en la variable id
var subcat = categories.getElementsByTagName("sub"); obtenim els objectes "sub" del objecte pare categories
while ( y < subcat.length) { per cada subcategoria executarem les instruccions que la segueixen