var isReadyState = true;
var sliderObj;
var globalTime;
var globalTotal;
var tickerID;

function setScrollCondition(x, y)
{
	document.getElementById('scrollLeft').value = x;
	document.getElementById('scrollTop').value = y;
	window.scrollTo(x, y);
	return true;
}

function catchKeyDown(e, id)
{
	if (e.keyCode) {
		if (e.keyCode == 13) {
			if (e.preventDefault) {
				e.stopPropagation();
				e.preventDefault();
			} else {
				e.returnValue = false;
				e.cancelBubble = true;
			}
			document.getElementById(id).click();
			return false;
		}
	}
	return true;
}

function checkDoubleClick()
{
	setScrollCondition(0, 0);
	if (isReadyState) {
		isReadyState = false;
		document.body.style.cursor = 'wait';
		return true;
	} else {
		return false;
	}
}

function openWindow(url)
{
	window.open(url, "MusicDetail", "width=600,height=600,status=no,resizable=yes,scrollbars=yes,toolbar=no,menubar=no,location=no");
}

function getElementsByClassName2(className, tag, elm)
{
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;


	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}	
	}
	return returnElements;
}

function setHilight(type, sender)
{
	if (type == "") {
		return;
	}

	var defaultClassName;
	var altClassName;
	var targetClassName;

	switch (type) {
		case 'disc':
			defaultClassName = "disc_val";
			altClassName = "disc_val2";
			targetClassName = "disc_val3";
			container = document.getElementById('disc_gird');
			break;
		case 'add':
			defaultClassName = "add_val";
			altClassName = "add_val";
			targetClassName = "add_val3";
			container = document.getElementById('DataGrid1');
			break;
		default:
			defaultClassName = "val";
			altClassName = "val";
			targetClassName = "val3";
			container = document.getElementById('DataGrid1');
			break;
	}

	var isAlt = false;
	var elements = getElementsByClassName2(targetClassName, 'TD', container);

	if (elements.length > 0) {
		if (elements[0].id.match("ac_")) {
			isAlt = true;
		}
	}

	elements.each(function(item) {
		if (isAlt) {
			item.className = altClassName;
		} else {
			item.className = defaultClassName;
		}
	});

	var target = sender.parentNode.parentNode.childNodes;
	var count = target.length;

	for (var i = 0; i < count; i++) {
		if (target.item(i).tagName == "TD") {
			target.item(i).className = targetClassName;
		}
	}
}

function getFlashElement(id) 
{
	var isIE = navigator.appName.indexOf("Microsoft") != -1;
	return (isIE) ? window[id] : document[id];
}

function playMusic(type, sender, id, name)
{
	if (sliderObj) {
		sliderObj.dispose();
	}

	setHilight(type, sender);

	var e = document.getElementById('player');

	if (e.style.display == 'none') {
		new Effect.BlindDown("player");
	}

	getFlashElement('aexternal').startPlay(id);

	$('playerTitleLabel').innerHTML = name;
	$('playerTitleLabel2').innerHTML = name;

	var img = document.getElementById('pauseResumeIcon');
	if (img.src.match("player_play.gif")) {
		img.src = 'images/player_pause.gif';
	}
	initTitleTicker();
}


function initTitleTicker()
{
	var container = document.getElementById("mq");
	var ret = Element.getDimensions('playerTitleLabel2');
	var titleWidth = Element.getDimensions('playerTitleLabel2');

	container.style.left = "260px";
	titleWidth = ret.width;

	if (tickerID != null) {
		clearInterval(tickerID);
	}

	tickerID = setInterval(
		function() {
			container.style.left = (parseInt(container.style.left) > (-titleWidth - 10)) ? parseInt(container.style.left) - 1 + "px" : "260px";
		}
		,50
	);
}

function pause()
{
	getFlashElement('aexternal').pauseResume();
	var img = document.getElementById('pauseResumeIcon');

	if (img.src.match("player_pause.gif")) {
		img.src = 'images/player_play.gif';
	} else {
		img.src = 'images/player_pause.gif';
	}
}

function rewind()
{
	sliderObj.setValue(0);
	getFlashElement('aexternal').seekPosition(0);
}


function updateTime(time)
{
	globalTime = time;
	$('timeLabel').innerHTML = formatTime(time);

	var elem2 = document.getElementById('bar');
	elem2.style.width = Math.ceil(time / globalTotal * 400) + 'px';
}


function setLength(total)
{
	globalTotal = total;
	$('totalLabel').innerHTML = formatTime(total);

	sliderObj = new Control.Slider("ptr", "sliderBG", {
		sliderValue : 0,
		maximum: total,
		minimum: 0,
		range: $R(0, total, true),
		onChange:function(value) {
			getFlashElement('aexternal').seekPosition(value);
		},
		onSlide:function(value) {
		}
	});
}

function formatTime(seconds)
{
	if (!isNaN(seconds)) {
		var m = Math.floor(seconds/60);
		var s = Math.round(seconds-(m*60));
		if (m<10) {
			m = "0"+m;
		}
		if (s<10) {
			s = "0"+s;
		}
		return m+":"+s;
	} else {
		return "00:00";
	}
}


function closePlayer()
{
	if (navigator.userAgent.indexOf("MSIE 6") != -1) {
		document.getElementById('player').style.display = "none";
	} else {
		new Effect.BlindUp("player");
	}
}


//Side Navigation
function ToggleLabel(id)
{
	var img = document.getElementById('hi' + id);
	var elem = document.getElementById('d' + id);

	if ((img) && (elem)) {
		if (elem.style.display == 'none') {
			new Effect.BlindDown(elem, {duration : 0.5} );
			img.src = 'images/parentSelected.gif';
		} else {
			new Effect.BlindUp(elem, {duration : 0.5});
			img.src = 'images/parent.gif';
		}
	}
}

function OpenMenuItem(id, mid)
{
	var img = document.getElementById('hi' + id);
	var elem = document.getElementById('d' + id);
	var item = document.getElementById('i' + mid);

	if (elem.style.display == 'none') {
		elem.style.display = 'block';
		img.src = 'images/parentSelected.gif';
		item.className = 'MenuItemSelected';
	}
	return false;
}

function onMouseOverMenu(obj)
{
	if (obj.className != 'MenuItemSelected') {
		obj.className = 'MenuItemOver';
	}
}

function onMouseOutMenu(obj)
{
	if (obj.className != 'MenuItemSelected') {
		obj.className = 'MenuItem';
	}
}

function ToggleAlt(id)
{
	var img = document.getElementById('i_' + id);
	var row = document.getElementById('a_' + id);
	row.style.display = (row.style.display == 'none') ? '' : 'none';
	img.src = (row.style.display == 'none') ? 'images/parent.gif' : 'images/parentSelected.gif';
	return false;
}

function addNode()
{
	if(typeof tree_selected_id != "undefined") {
		ob_t2_Add(tree_selected_id, 'temp', '新しいフォルダ', null, "folder.gif", null);
	} else {
		if(typeof tree_selected_id == "undefined") {
			alert("サブフォルダを作成する親アイテムを選択して下さい。");
		}
	}
}

function removeSelectedNode()
{
	if(typeof tree_selected_id != "undefined") {
		if (ob_hasChildren(document.getElementById(tree_selected_id))) {
			alert("子アイテムが存在する場合は削除できません。\r\n子アイテムを移動して下さい。");
		} else {
			ob_t2_Remove(tree_selected_id);
		}
	}
}

function mailto()
{
	location.href = 'm' + 'a' + 'i' + 'l' + 't' + 'o' + ':' + String.fromCharCode(105, 110, 102, 111, 64, 115, 97, 107, 117, 114, 97, 110, 111, 116, 101, 115, 46, 99, 111, 109);
}

function showClassic(e, type)
{
	if (document.all) {
		e = event;
	}

	var st = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
	if (navigator.userAgent.toLowerCase().indexOf('safari')>=0) {
		st=0;
	}

	var leftPos = e.clientX;
	if (leftPos < 0 ) {
		leftPos = 0;
	}

	var composer = document.getElementById('classic-composer-list');
	var title = document.getElementById('classic-title-list');

	if (type == "composer") {
		element = composer;
		if (title.style.display != 'none') {
				Element.hide(title);
		}
	} else {
		element = title;
		if (composer.style.display != 'none') {
				Element.hide(composer);
		}
	}

	element.style.left = leftPos - 200 + 'px';
	element.style.top = e.clientY + 10 + st + 'px';
	Element.show(element);
}

function hideClassic(type)
{
	if (type == "composer") {
		Element.hide('classic-composer-list');
	} else {
		Element.hide('classic-title-list');
	}
}

function OpenAllLabel()
{
	var elems = getElementsByClassName2('MenuGroup', 'DIV');
	elems.each(function(item) {
		item.style.display = 'block';
	});
	var imgs = getElementsByClassName2('LabelSelectedImage', 'IMG');
	imgs.each(function(item) {
		item.src = 'images/parentSelected.gif';
	});
}

function CloseAllLabel()
{
	var elems = getElementsByClassName2('MenuGroup', 'DIV');
	elems.each(function(item) {
		item.style.display = 'none';
	});
	var imgs = getElementsByClassName2('LabelSelectedImage', 'IMG');
	imgs.each(function(item) {
		item.src = 'images/parent.gif';
	});
}

function OpenAllMusic()
{
	var elems = getElementsByClassName2('MusicGroup', 'TR');
	elems.each(function(item) {
		item.style.display = '';
	});
	var imgs = getElementsByClassName2('MusicSelectedImage', 'IMG');
	imgs.each(function(item) {
		item.src = 'images/parentSelected.gif';
	});
}

function CloseAllMusic()
{
	var elems = getElementsByClassName2('MusicGroup', 'TR');
	elems.each(function(item) {
		item.style.display = 'none';
	});
	var imgs = getElementsByClassName2('MusicSelectedImage', 'IMG');
	imgs.each(function(item) {
		item.src = 'images/parent.gif';
	});
}

