var HotaruUtil = {
	getWindowSize : function() {
		var result = {};
		if (document.documentElement && document.documentElement.clientWidth) {
			result.width = document.documentElement.clientWidth;
			result.height = (window.innerHeight) ? window.innerHeight : document.documentElement.clientHeight;
		} else {
			result.width = document.body.clientWidth;
			result.height = (window.innerHeight) ? window.innerHeight : document.body.clientHeight;
		}
		return result;
	},
	getScrollSize : function() {
		var result = {};
		if (document.documentElement.scrollTop) {
			result.top = document.documentElement.scrollTop;
		} else {
			result.top = document.body.scrollTop;
		}
		if (document.documentElement.scrollLeft) {
			result.left = document.documentElement.scrollLeft;
		} else {
			result.left = document.body.scrollLeft;
		}
		return result;
	},
	addEventListener : function(target, type, func) {
		if (!target) return false;
		if (target.addEventListener) {
			target.addEventListener(type, func, false);
		} else if (target.attachEvent) {
			target.attachEvent('on' + type, func);
		} else {
			return false;
		}
		return true;
	},
	removeEventListener : function(target, type, func) {
		if (!target) return false;
		if (target.removeEventListener) {
			target.removeEventListener(type, func, false);
		} else if(target.detachEvent) {
			target.detachEvent('on' + type, func);
		} else {
			return false;
		}
		return true;
	},
	findBlogTitle : function() {
		if (0 <= location.host.indexOf("blog.so-net.ne.jp")) {
			 var titles = document.getElementsByTagName("h2");
			for (var i=0; i<titles.length; i++) {
				if (titles[i].getAttribute(HotaruUtil.getClassName()) == "articles-title") {
					return HotaruUtil.extractText(titles[i].innerHTML);
				}
			}
		}
		if (0 <= location.host.indexOf("cocolog-nifty.com")) {
			var titles = document.getElementsByTagName("h3");
			if (0 < titles.length) {
				return HotaruUtil.extractText(titles[0].innerHTML);
			}
		}
		if (0 <= location.host.indexOf("ameblo.jp")) {
			var titles = document.getElementsByTagName("h3");
			for (var i=0; i<titles.length; i++) {
				if (titles[i].getAttribute(HotaruUtil.getClassName()) == "title") {
					return HotaruUtil.extractText(titles[i].innerHTML);
				}
			}
		}
		if (0 <= location.host.indexOf("blog.livedoor.jp")) {
			var titles = document.getElementsByTagName("h3");
			for (var i=0; i<titles.length; i++) {
				if (titles[i].getAttribute(HotaruUtil.getClassName()) && 0 <= titles[i].getAttribute(HotaruUtil.getClassName()).indexOf("entry-title")) {
					return HotaruUtil.extractText(titles[i].innerHTML);
				}
			}
			var titles = document.getElementsByTagName("h2");
			for (var i=0; i<titles.length; i++) {
				if (titles[i].getAttribute(HotaruUtil.getClassName()) && 0 <= titles[i].getAttribute(HotaruUtil.getClassName()).indexOf("entry-title")) {
					return HotaruUtil.extractText(titles[i].innerHTML);
				}
			}
		}
		if (0 <= location.host.indexOf("seesaa.net")) {
			var titles = document.getElementsByTagName("h3");
			for (var i=0; i<titles.length; i++) {
				if (titles[i].getAttribute(HotaruUtil.getClassName()) == "title") {
					return HotaruUtil.extractText(titles[i].innerHTML);
				}
			}
		}
		var head = document.getElementsByTagName("head")[0];
		var title = head.getElementsByTagName("title")[0];
		return HotaruUtil.extractText(title.innerHTML);
	},
	findBlogText : function() {
		if (0 <= location.host.indexOf("blog.so-net.ne.jp")) {
			var divs = document.getElementsByTagName("div");
			for (var i=0; i<divs.length; i++) {
				if (divs[i].getAttribute(HotaruUtil.getClassName()) == "articles-body") {
					return HotaruUtil.extractText(divs[i].innerHTML);
				}
			}
		}
		if (0 <= location.host.indexOf("cocolog-nifty.com")) {
			var divs = document.getElementsByTagName("div");
			for (var i=0; i<divs.length; i++) {
				if (divs[i].getAttribute(HotaruUtil.getClassName()) == "entry-body-text") {
					return HotaruUtil.extractText(divs[i].innerHTML);
				}
			}
		}
		if (0 <= location.host.indexOf("ameblo.jp")) {
			var divs = document.getElementsByTagName("div");
			for (var i=0; i<divs.length; i++) {
				if (divs[i].getAttribute(HotaruUtil.getClassName()) == "subContents") {
					return HotaruUtil.extractText(divs[i].innerHTML);
				}
			}
		}
		if (0 <= location.host.indexOf("blog.livedoor.jp")) {
			var divs = document.getElementsByTagName("div");
			for (var i=0; i<divs.length; i++) {
				if (divs[i].getAttribute(HotaruUtil.getClassName()) && (0 <= divs[i].getAttribute(HotaruUtil.getClassName()).indexOf("entry-content") || 0 <= divs[i].getAttribute(HotaruUtil.getClassName()).indexOf("article-body-inner"))) {
					return HotaruUtil.extractText(divs[i].innerHTML);
				}
			}
		}
		if (0 <= location.host.indexOf("seesaa.net")) {
			var divs = document.getElementsByTagName("div");
			for (var i=0; i<divs.length; i++) {
				if (divs[i].getAttribute(HotaruUtil.getClassName()) == "text") {
					return HotaruUtil.extractText(divs[i].innerHTML);
				}
			}
		}
		var head = document.getElementsByTagName("head")[0];
		var metaNodes = head.getElementsByTagName("meta");
		for (var i=0; i<metaNodes.length; i++) {
			if (metaNodes[i].getAttribute("name") == "description") {
				return metaNodes[i].getAttribute("content");
			}
		}
		if (document.getElementById("content")) {
			return HotaruUtil.extractText(document.getElementById("content").innerHTML);
		} else if (document.getElementById("container")) {
			return HotaruUtil.extractText(document.getElementById("container").innerHTML);
		} else {
			return HotaruUtil.extractText(document.body.innerHTML);
		}
	},
	extractText : function(src) {
		src = src.replace(/\t|\r\n|\n/g, '');
		src = src.replace(/<br><br>|<br \/><br \/>|<br\/><br\/>|<br>|<br \/>|<br\/>/g, '\n');
		src = src.replace(/<\/?[^>]+>/gi, '');
		src = src.replace(/\&nbsp\;\[編集\]/g, '');
		if (0 <= location.host.indexOf("ameblo.jp")) {
			if (0 <= src.indexOf("google_protectAndRun")) {
				src = src.substr(0, src.indexOf("google_protectAndRun"))
			}
		}
		if (0 < src.indexOf("-->")) {
			src = src.substr(src.indexOf("-->") + 3);
		}
		if (100 < src.length) {
			return src.substr(0, 100)+'……';
		} else {
			return src;
		}
	},
	getClassName : function() {
		var isMSIE = /*@cc_on!@*/false;
		if (isMSIE) {
			return "className";
		} else {
			return "class";
		}
	}
};

function hotaruOpen() {
	if (document.getElementById("hotaruContainer")) return;
	
	var blog_title = HotaruUtil.findBlogTitle();
	var blog_text = HotaruUtil.findBlogText();
	var winSize = HotaruUtil.getWindowSize();
	var scrollSize = HotaruUtil.getScrollSize();
	
	var div = document.createElement("div");
	div.setAttribute('id', 'hotaruContainer');
	div.style.display = 'block';
	div.style.zIndex = 90000;
	div.style.position = 'absolute';
	div.style.top = scrollSize.top + 'px';
	div.style.margin = 0;
	div.style.padding = 0;
	div.style.left = 0;
	div.style.width = winSize.width + 'px';
	div.style.height = winSize.height + 'px';
	div.innerHTML = 
		'<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,45" width="100%" height="100%">' +
		'<param name="movie" value="http://www.hotaru-san.com/blogparts/blogparts.swf" />' +
		'<param name="quality" value="high" />' +
		'<param name="wmode" value="transparent" />' +
		'<param name="allowScriptAccess" value="always" />' +
		'<param name="bgcolor" value="#000" />' +
		'<param name="flashvars" value="blogTitle=' + blog_title + '&blogText=' + blog_text + '" />' +
		'<embed src="http://www.hotaru-san.com/blogparts/blogparts.swf" flashvars="blogTitle=' + blog_title + '&blogText=' + blog_text + '" quality="high" wmode="transparent" allowScriptAccess="always" bgcolor="#000" width="100%" height="100%" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />' +
		'</object>';
	var body = document.body;
	var divElement = body.insertBefore(div, body.firstChild);
	
          HotaruUtil.addEventListener(window, 'resize', hotaruWindowSizeChange);
          HotaruUtil.addEventListener(window, 'scroll', hotaruWindowSizeChange);
}
function hotaruClose() {
	HotaruUtil.removeEventListener(window, 'resize', hotaruWindowSizeChange);
	HotaruUtil.removeEventListener(window, 'scroll', hotaruWindowSizeChange);
	var body = document.body;
	var div = document.getElementById("hotaruContainer");
	body.removeChild(div);
}
function hotaruWindowSizeChange() {
	var winSize = HotaruUtil.getWindowSize();
	var scrollSize = HotaruUtil.getScrollSize();
	var div = document.getElementById('hotaruContainer');
	div.style.top = scrollSize.top + 'px';
	div.style.width = winSize.width + 'px';
	div.style.height = winSize.height + 'px';
}
function hotaruBanner(num) {
	var w, h;
	switch (num) {
		case 1: w = 173; h = 283; break;
		case 2: w = 173; h = 289; break;
		case 3: w = 175; h = 281; break;
		case 4: w = 173; h = 298; break;
		case 5: w = 173; h = 285; break;
	}
	document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,45" width="' + w + '" height="' + h + '">');
	document.write('<param name="movie" value="http://www.hotaru-san.com/blogparts/banner' + num + '.swf" />');
	document.write('<param name="quality" value="high" />');
	document.write('<param name="wmode" value="transparent" />');
	document.write('<param name="allowScriptAccess" value="always" />');
	document.write('<param name="bgcolor" value="#FFF" />');
	document.write('<embed src="http://www.hotaru-san.com/blogparts/banner' + num + '.swf" quality="high" allowScriptAccess="always" wmode="transparent" bgcolor="#FFF" width="' + w + '" height="' + h + '" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />');
	document.write('</object>');
}
