////////////////////////////////////////////////////////////
// beatsync.net js library
////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////
// showhide - script-based "continue reading" system
var contentPrefix="cont"; 
var morePrefix="more";
var lessPrefix="less";

// utility
function addHandler(obj, evt, fnc){	
	if (obj.addEventListener){
		obj.addEventListener(evt, fnc, false);
		return true;
	} else if (obj.attachEvent){
		var r = obj.attachEvent("on"+evt, function(){fnc.apply(obj); return false; });
		return r;
	} else{
		return false;
	}
}

// create dynamic event anchor
function makeTrap(target){
	var idpart=target.id.substring(contentPrefix.length);
	var morePara=document.createElement("p");
	var moreAnchor=document.createElement("a");
	var moreText=document.createTextNode("続きを読む");
	var lessPara=document.createElement("p");
	var lessAnchor=document.createElement("a");
	var lessText=document.createTextNode("詳細を隠す");
	target.style.display="none";
	morePara.id=morePrefix+idpart;
	morePara.style.display="block";
	lessPara.id=lessPrefix+idpart;
	lessPara.style.display="none";

	moreAnchor.href="#"+contentPrefix+idpart;
	lessAnchor.href="#"+morePrefix+idpart;
	
	addHandler(moreAnchor, "click", Show);
	addHandler(moreAnchor, "focus", Show);
	addHandler(lessAnchor, "click", Hide);
	addHandler(lessAnchor, "focus", Hide);
	
	moreAnchor.appendChild(moreText);
	lessAnchor.appendChild(lessText);
	morePara.appendChild(moreAnchor);
	lessPara.appendChild(lessAnchor);
	
	target.parentNode.insertBefore(morePara, target);
	target.parentNode.insertBefore(lessPara, target.nextSibling);
}

// initialize
window.onload = function(){
	// check page mode
	if(location.href.indexOf("log")!=-1){
		return;
	}
	
	// search prefix
	var divlist=document.getElementsByTagName("div");
	for(var i=0; i<divlist.length; ++i){
		if(divlist.item(i).id.indexOf(contentPrefix)==0){
			makeTrap(divlist.item(i));
		}
	}

	// menubar enabled
	var menudiv = document.getElementById("menubar");
	var itemlist = menudiv.getElementsByTagName("ul")[0].childNodes;
	for (var i =0; i < itemlist.length; i++){
		if (itemlist[i].nodeType == 1) { // Element
			addHandler(itemlist[i], "mouseover", Hover);
			addHandler(itemlist[i], "mouseout", Unhover);
		}
	}



}

// event handlers
Show = function(){
	this.parentNode.style.display="none";
	this.parentNode.nextSibling.style.display="block";
	this.parentNode.nextSibling.nextSibling.style.display="block";
	return false;
}
Hide = function(){
	this.parentNode.previousSibling.previousSibling.style.display="block";
	this.parentNode.previousSibling.style.display="none";
	this.parentNode.style.display="none"; 
	return false;
}


////////////////////////////////////////////////////////////
// beatsync.net movie loader

function embedMovie(id, path, width, height){
	document.getElementById(id).innerHTML =
		"<object data=\"/style/flvplayer.swf\" width=\"" + width + "\" height=\"" +
		height + "\" type=\"application/x-shockwave-flash\">\n" + 
		"<param name=\"movie\" value=\"/style/flvplayer.swf\" />\n" +
		"<param name=\"allowfullscreen\" value=\"true\" />" + 
		"<param name=\"flashvars\" value=\"file=" + path + "&amp;width=" +
		width + "&amp;height=" + height +
		"&amp;backcolor=0xE0ECE0&amp;frontcolor=0x224422\" />\n" +
		"</object>";
	
}


////////////////////////////////////////////////////////////
// beatsync.net menubar

Hover = function(){
	this.style.backgroundPosition = "bottom left";
	for (var i = 0; i < this.childNodes.length; i++){
		if (this.childNodes[i].nodeType == 1 &&
			(this.childNodes[i].nodeName != "a"  && this.childNodes[i].nodeName != "A" )){
			this.childNodes[i].style.display = "block";
//			document.getElementById(this.id+"list").style.display="block";
		}
	}
}
Unhover = function(){
	this.style.backgroundPosition = "top left";
	for (var i = 0; i < this.childNodes.length; i++){
		if (this.childNodes[i].nodeType == 1 &&
			(this.childNodes[i].nodeName != "a"  && this.childNodes[i].nodeName != "A" )){
			this.childNodes[i].style.display = "none";
//			document.getElementById(this.id+"list").style.display="block";
		}
	}
}



