Haiku = Class.create();
Haiku.prototype = {
	initialize:		function() {
						this.update();
					},
	
	update:			function() {
						this._initDisplay();
						this._startRequest();
					},
	
	_initDisplay:	function() {
						var obj = $('haiku');
						if(obj) {
							// 掃除
							while(obj.hasChildNodes()) {
								obj.removeChild(obj.lastChild);
							}
							
							// 読み込み中
							img_elem = obj.appendChild(document.createElement('img'));
							img_elem.setAttribute('src',	'/web20/loading.gif');
							img_elem.setAttribute('width',	'16');
							img_elem.setAttribute('height',	'16');
							img_elem.setAttribute('alt',	'loading...');
							img_elem.setAttribute('title',	'');
						}
					},
	
	_startRequest:	function() {
						var now = new Date();
						var uri = 'http://fetus.k-hsu.net/document/webmaster/diary2/blogpet/haiku/latest/485c99ebe34cec42114e664957d453a5';
						uri += '?';
						uri += now.getTime();
						var ajax = new Ajax.Request(uri,
													{
														method:		'get',
														onComplete:	this._onComplete,
														onFailure:	this._onFailure
													}
												   );
					},
	
	_onFailure:		function(req) {
						// 失敗したら echo の中身をすべて消す
						var obj = $('haiku');
						if(obj) {
							while(obj.hasChildNodes()) {
								obj.removeChild(obj.lastChild);
							}
							obj.appendChild(document.createTextNode('読込失敗'));
						}
					},
	
	_onComplete:	function(httpobj) {
						var domdoc = httpobj.responseXML;
						if(!domdoc) {
							this._onFailure();
							return;
						}
						while($('haiku').hasChildNodes()) {
							$('haiku').removeChild($('haiku').lastChild);
						}
						var haikus = domdoc.getElementsByTagName('haiku');
						for(var i = 1; i < haikus.length; ++i) {
							var xml_haiku = haikus.item(i);
							var a   = document.createElement('a');
							var img = a.appendChild(document.createElement('img'));
							a.setAttribute('rel', 'lightbox[blogpet_haiku]');
							img.setAttribute('alt', '');
							for(var xml_node = xml_haiku.firstChild; xml_node; xml_node = xml_node.nextSibling) {
								if(xml_node.nodeType == 1) {
									if(xml_node.nodeName == 'hitokoto') {
										a.setAttribute('title', haikuHelp_GetTextContent(xml_node.firstChild));
									} else if(xml_node.nodeName == 'image') {
										for(var subnode = xml_node.firstChild; subnode; subnode = subnode.nextSibling) {
											if(xml_node.nodeType == 1 && subnode.nodeName == 'uri') {
												a.setAttribute('href', subnode.firstChild.nodeValue);
											}
										}
									} else if(xml_node.nodeName == 'thumbnail') {
										for(var subnode = xml_node.firstChild; subnode; subnode = subnode.nextSibling) {
											if(subnode.nodeType == 1) {
												if(subnode.nodeName == 'uri') {
													img.setAttribute('src', subnode.firstChild.nodeValue);
												} else if(subnode.nodeName == 'width') {
													img.setAttribute('width', subnode.firstChild.nodeValue);
												} else if(subnode.nodeName == 'height') {
													img.setAttribute('height', subnode.firstChild.nodeValue);
												}
											}
										}
									}
								}
							}
							if(a.hasAttribute('href') && img.hasAttribute('src')) {
								$('haiku').appendChild(a);
							}
						}
						if(myLightbox) {
							myLightbox.updateImageList();
						}
					}
};

function haikuHelp_GetTextContent(node) {
	if(typeof node.textContent != "undefined") {
		return node.textContent;
	} else {
		return node.innerText;
	}
}

var myHaiku = undefined;

function initHaiku() {
	if(!myHaiku) {
		myHaiku = new Haiku();
	}
}

Event.observe(window, 'load', initHaiku, false);
