// converts titles of img.imgcap eles to captions

img_eater = {
	// setup onload handlers for imgs
	watch_imgs: function() {
		var contentdiv = dojo.byId('content');
		var imgs = dojo.html.getElementsByClass('imgcap', contentdiv, 'img');
		for(var i = 0; i < imgs.length; ++i) {
			var img = imgs[i];
			var isrc = img.src;
			if(img.title)
				dojo.event.connect(img, "onload", this, "swallow_tag"); //XXX
			img.src = isrc;
		}

		var imgs = contentdiv.getElementsByTagName('img');
		for(var i = 0; i < imgs.length; i++) {
			var img = imgs[i];
			var isrc = img.src;
			dojo.event.connect(img, "onload", this, "make_clickable");
			img.src = isrc;
		}
	},

	// add onclick event to large images
	make_clickable: function(evt) {
		var img = evt.currentTarget;
		if(img.width > 600) {
			var p = img.parentNode;
			cdiv = document.createElement('div');
			cdiv.style.fontSize = "10px";
			p.insertBefore(cdiv, img);
			p.removeChild(img);
			cdiv.style.textAlign = "right";
			cdiv.appendChild(img);
			cdiv.style.cursor = "pointer";
			cdiv.appendChild(document.createElement('br'));
			cdiv.appendChild(document.createTextNode('Click for full-size image (' + img.width + 'x' + img.height + ')'));
			var nwin_w = img.width + 50;
			var nwin_h = img.height + 50;
			var asub = function() { window.open(img.src, 'saimg_fullsize', 'menubar=0,resizable=1,width='+nwin_w+',height='+nwin_h); };
			dojo.event.connect(img, "onclick", asub);
			dojo.event.connect(cdiv, "onclick", asub);
		}
		dojo.event.disconnect(img, "onload", this, "make_clickable");
	},

	// pass img node, creates div with img and caption div as children
	swallow_tag: function(evt) {
		var img = evt.currentTarget;
		var p = img.parentNode;
		var title = img.getAttribute('title');

		dojo.event.disconnect(img, "onload", this, "swallow_tag");
		if(title && !title.length) return;

		var cdiv = document.createElement('div');
		var txtdiv = document.createElement('div');
		txtdiv.appendChild(document.createTextNode(img.getAttribute('title')));

		p.insertBefore(cdiv, img);
		p.removeChild(img);
		cdiv.appendChild(img);
		cdiv.appendChild(txtdiv);
		cdiv.style.width = img.offsetWidth + 'px';
		//cdiv.onclick = function() { alert('ding ding'); };

		var styles = dojo.html.getClasses(img);
		for(var j = 0; j < styles.length; j++) {
			var className = styles[j];
			//dojo.html.removeClass(img, className);
			dojo.html.removeClass(img, 'imgcap');
			//if(className != 'imgcap') dojo.html.addClass(cdiv, className);
			dojo.html.addClass(cdiv, className);
			switch(className) {
				case 'right':
					cdiv.style.marginLeft = '8px';
					cdiv.style.clear = 'both';
					break;
				case 'left':
					cdiv.style.marginRight = '8px';
					cdiv.style.clear = 'both';
					break;
				case 'center':
					var bdiv = document.createElement('center');
					p.insertBefore(bdiv, cdiv);
					bdiv.appendChild(cdiv);
					bdiv.align = 'center';
					bdiv.style.textAlign = 'center';
					//dojo.html.addClass(bdiv, 'center');
					p.removeChild(cdiv);
					break;
				case 'imgcap':
				default:
					break;
			}
		}
		dojo.event.disconnect(img, "onload", this, "swallow_tag");
	}
};

dojo.addOnLoad(img_eater, 'watch_imgs');
