jpmaps.maplist={
  action: '/localaction/search.cfm',
  data: {},

  image:
    function ( response ) {
      var map=jpmaps.maplist.maps.shift();
      var stockcode=horus.toId(map);
      var data=jpmaps.maplist.data[stockcode];
      var title=data.title;
      if (data.cartographer) title+=': '+data.cartographer;
      var image=data.image ? '/mapimages/maplist/'+data.image : '/resources/noimage.jpg';
      horus.appendChild(map, [ 'img', { src: image, title: title, border: 0 } ]);
      horus.removeClass(map, 'busy');
      horus.matchHeight();
      if (jpmaps.maplist.maps.length) setTimeout(jpmaps.maplist.image, 70);
    },

  fetch:
    function ( response ) {
      if (response.ajaxStatus(true)) {
	var maps=response.selectNodes('horus/map');

	for (var m=0; m<maps.length; m++) {
	  var map=maps[m];

	  jpmaps.maplist.data[response.getAttribute(map, 'stockcode')]=
	    { title:        response.getAttribute(map, 'title'),
	      cartographer: response.getAttribute(map, 'cartographer'),
	      image:        response.getAttribute(map, 'image') };

	}

	if (jpmaps.maplist.maps.length) jpmaps.maplist.image();
      }
    },

  init:
    function () {
      jpmaps.maplist.maps=horus.getTags('a.mapimagelink');
      var stockcodes=[];

      for (var m=0; m<jpmaps.maplist.maps.length; m++) {
	var map=jpmaps.maplist.maps[m];
	horus.addClass(map, 'busy');
	stockcodes.push(horus.toId(map));
      }

      horus.ajax
        (jpmaps.maplist.action, 'map', { stockcode: stockcodes }, jpmaps.maplist.fetch);

    }

};


horus.afterLoad(jpmaps.maplist.init);
