﻿// クリックで花が飛び散る

// 画像のURL
var flower_urls = [ "http://whitearrow.air-nifty.com/blog/files/icon62a.gif", ];
var flower_max = 20;     // 画像の数
var flower_speed = 50;  // スピード（大きくすると遅くなる）
var flower_grav = 5;   // 重力
var flower_velo = 40;   // 初速度
var flower_out = 400;   // 散らばる範囲

////////////////////////////////////////////////////////////////////

var flower_target = 0;
var flower_obj = new Array();
var flower_timerid = 0;
var flower_step = 0.5;
var flower_href = "";

flower_hidelist();
flower_init();

function flower_init() {
	if(!document.getElementById) return;
	var ua = navigator.userAgent;
	if(navigator.userAgent.indexOf("Windows") < 0) return;
	
	var i, j;
	for(i = 0, j = 0; i < flower_max; i++, j++) {
		
		var img = document.createElement("IMG");
		if(!flower_urls[j]) j = 0;
		img.src = flower_urls[j];
		img.style.position = "absolute";
		img.style.left = "-50px";
		img.style.top = "-50px";
		img.style.visibility = "hidden";
		document.body.insertBefore(img, document.body.firstChild);
		
		flower_obj[i] = new Object();
		flower_obj[i].obj = img;
	}
	
	if(!document.onmousedown_funclist) {
		document.onmousedown_funclist = new Array();
		document.onmousedown = function (e) {
			var fl = this.onmousedown_funclist;
			var i;
			for(i = 0; i < fl.length; i++) {
				fl[i](e);
			}
		};
	}
	document.onmousedown_funclist.push(flower_onmousedown);
	
	for(i = 0; i < document.links.length; i++) {
		document.links[i].onclick = flower_anchorclick;
	}
}

function flower_reset(x, y) {
	var i;
	for(i = 0; i < flower_obj.length; i++) {
		var fl = flower_obj[i];
		fl.x = fl.startx = x - 8;
		fl.y = fl.starty = y - 8;
		
		fl.ang = 60 + Math.random() * 60;
		fl.vx = flower_velo * Math.cos((Math.PI / 180) * fl.ang);
		fl.vy = flower_velo * Math.sin((Math.PI / 180) * fl.ang);
		
		var obj = flower_obj[i].obj;
		obj.style.left = x + "px";
		obj.style.top = y + "px";
		obj.style.visibility = "visible";
	}
}

function flower_onmousedown(e) {
	var x, y, src;
	if(window.event) {
		if(event.button != 1) return;
		x = event.clientX + flower_scrollleft();
		y = event.clientY + flower_scrolltop();
		src = window.event.srcElement;
	}
	else if(e) {
		if(e.which != 1) return;
		x = e.pageX; y = e.pageY;
		src = e.target;
	}
	
	while(src) {
		if(src.nodeName == "A") break;
		src = src.parentNode;
	}
	if(src) flower_href = src.href;
	
	if(flower_obj.length == 0) return;
	if(flower_timerid) clearTimeout(flower_timerid);
	flower_reset(x, y);
	
	flower_timerid = setTimeout("flower_timer();", flower_speed);
}

function flower_timer() {
	var i;
	var cont = 0;
	for(i = 0; i < flower_obj.length; i++) {
		var fl = flower_obj[i];
		var obj = flower_obj[i].obj;
		fl.x = fl.x + fl.vx * flower_step;
		fl.y = fl.y - fl.vy * flower_step;
		fl.vy = fl.vy - flower_grav * flower_step;
		
		var l = Math.sqrt(Math.pow(fl.x - fl.startx, 2) +
			Math.pow(fl.y - fl.starty, 2));
		if(l > flower_out)
			obj.style.visibility = "hidden";
		else {
			obj.style.left = Math.floor(fl.x) + "px";
			obj.style.top = Math.floor(fl.y) + "px";
			cont = 1;
		}
	}
	
	if(cont) flower_timerid = setTimeout("flower_timer();", flower_speed);
	else {
		flower_timerid = 0;
		if(flower_href) location.href = flower_href;
		flower_href = "";
	}
}

function flower_anchorclick(e) {
	var src;
	if(window.event) {
		src = window.event.srcElement;
		event.returnValue = false;
	}
	else if(e) {
		src = e.target;
		return false;
	}
}

function flower_scrolltop () {
	if(window.pageYOffset)
		return window.pageYOffset;
	if(document.compatMode == "CSS1Compat")
		return document.documentElement.scrollTop;
	if(document.body.scrollTop)
		return document.body.scrollTop;
	return 0;
}

function flower_scrollleft () {
	if(window.pageXOffset)
		return window.pageXOffset;
	if(document.compatMode == "CSS1Compat")
		return document.documentElement.scrollLeft;
	if(document.body.scrollLeft)
		return document.body.scrollLeft;
	return 0;
}

////////////////////////////////////////////////////////////////////

function flower_hidelist() {
	if(!document.getElementById) return;
	if(window.imp_hidelist) return;
	window.imp_hidelist = 1;
	document.write("<div id='imp_divhidelist'></div>");
	setTimeout("flower_hidelist_timer()", 500);
}

function flower_hidelist_timer() {
	var div = document.getElementById("imp_divhidelist");
	if(!div) {
		setTimeout("flower_hidelist_timer()", 500); return;
	}
	var pa = div.parentNode;
	while(pa) {
		if(pa.tagName == "DIV" && pa.className == "list module") break;
		if(pa.tagName == "DIV" && pa.className == "side") break;
		pa = pa.parentNode;
	}
	if(!pa) return;
	
	if(pa.className == "list module")
		pa.style.display = "none";
	else if(pa.className == "side") {
		pa.style.display = "none";
		var prev = pa.previousSibling;
		while(prev) {
			if(prev.nodeType == "1" && prev.tagName == "DIV") {
				prev.style.display = "none";
				break;
			}
			prev = prev.previousSibling;
		}
	}
}


