//楽典.comで共通で使うスクリプト UTF-8です

//IDの通番
var hiddenarea = 0;
var midiarea = 0;

//ブラウザ判別
var inex = navigator.appName.indexOf('Microsoft') != -1;
var opera = navigator.appName.indexOf('Opera') != -1;
var windows = navigator.userAgent.indexOf('Windows') != -1;

//リストの最初に各文字
var listitem = 0;
var aiuimage = false;
var katakanas = ['', 'ア', 'イ', 'ウ', 'エ', 'オ', 'カ', 'キ', 'ク', 'ケ', 'コ', 'サ', 'シ', 'ス', 'セ', 'ソ', 'タ', 'チ', 'ツ', 'テ', 'ト', 'ナ', 'ニ', 'ヌ', 'ネ', 'ノ']
var listbegin = (opera) ? '<ul' : '<ol style="list-style-type: katakana"';
var listend = (opera) ? '</ul>' : '</ol>';

//調性判断文字列

var CH = '〔調性判断〕';

//ページのリスト
var pages = [
	['ongaku.html', '音楽とは'],
	['onpu.html', '音符と休符'],
	['tie.html', 'タイ'],
	['futen.html', '付点'],
	['renpu.html', '連符'],
	['hyoshi.html', '拍子'],
	['syncopation.html', '拍を分割・結合したリズム'],
	['tempo.html', 'テンポ'],
	['hanpuku.html', '反復記号'],
	['kyojaku.html', '強弱'],
	['gosen.html', '五線と音部記号'],
	['rinjikigo.html', '臨時記号'],
	['onmei.html', '音名'],
	['ontei_do.html', '音程'],
	['ontei_1235.html', '1、2、3、5度音程'],
	['ontei_tenkai.html', '音程の転回'],
	['ontei_haseion.html', '派生音の音程'],
	['fukuontei.html', '複音程'],
	['baion.html', '倍音'],
	['onkai.html', '音階'],
	['dur.html', '長調'],
	['moll.html', '短調'],
	['waseionkai.html', '和声的短音階・旋律的短音階・その他の音階'],
	['godoken.html', '調の関係・五度圏'],
	['icho.html', '移調'],
	['hanonkai.html', '半音階・全音音階'],
	['waon.html', '和音'],
	['7nowaon.html', '七の和音・九の和音'],
	['waon_tenkai.html', '和音の転回'],
	['hiwaseion.html', '非和声音'],
	['shushikei.html', 'カデンツ（終止形）'],
	['shushi.html', '終止'],
	['chordname.html', 'コードネーム'],
	['articulation.html', 'アーティキュレーション'],
	['ryakki.html', '略記法'],
	['soshokuon.html', '装飾音'],
	['hasso.html', '発想、その他の演奏記号'],
	['keishiki.html', '形式'],
	['', '']
];

//フォントの大きさ
document.writeln ('<style type="text/css">');
document.writeln ('body, b, th, pre, tt, code, kbd, samp, xmp, plaintext, table, td, th {font-size: ', windows * 1 + 14, 'px;}');
document.writeln ('</style>');


//見せる、消す
function showDiv (x) {
	showdiv(x);
	showdiv(x + 'h');
	showdiv(x + 'o');
}

//見せる、消す、中身
function showdiv (x) {		//xはID
	var obj=document.all && document.all(x) || document.getElementById && document.getElementById(x);
	if (obj && obj.style) {
		obj.style.display=	("none" == obj.style.display) ? "" : "none";
	}
}
//document.getElementById("l_menu").innerHTML=a_data[sel];

function qa(q, a) {
	if (!liq(q)) {
		return false;
	}
	document.write('<br>');
	ans (a) ;
	return true;
}

function qas () {
	if (!arguments.length || !liq(arguments[0])) {
		return false;
	}
	document.write(listbegin, ' class=noprintout>');
	listitem = 0;
	aiuimage = inex || opera;
	for (var i = 1; i < arguments.length; i++) {
		if (arguments[i]) {
			lia (arguments[i]);
		}
	}
	aiuimage = false;
	document.write(listend);
	return true;	
}

function qsa () {
	if (!arguments.length || !liq(arguments[0])) {
		return false;
	}
	document.write(listbegin, '>');
	listitem = 0;
	aiuimage = inex || opera;
	for (var i = 1; i < arguments.length - 1; i++) {
		if (arguments[i]) {
			liq (arguments[i]);
		}
	}
	aiuimage = false;
	document.write(listend);
	ans(arguments[i]);
	return true;	
}

function qsas () {
	if (!arguments.length || !liq(arguments[0])) {//問題の表題
		return false;
	}
	document.write(listbegin, '>');
	listitem = 0;
	aiuimage = inex || opera;
	for (var i = 1; i < arguments.length; i += 2) {
		if (liq (arguments[i])) {
			document.write('<br>');
			ans (arguments[i + 1]);
		}
	}
	aiuimage = false;
	document.write(listend);
	return true;	
}
function liq(q) {
	if (q == '') {
		return false;
	}
	li_tag();
	document.write(q);
	return true;
}

function lia(a) {
	li_tag();
	ans(a);
}

function li_tag() {
	document.write('<li');
	if (aiuimage) {
		document.write(' style="list-style-image:url(\'../katakana/', ++listitem, '.gif\');"');
	}
	document.write('>');
	if (aiuimage && opera) {
		document.write(katakanas[listitem], '）');
	}
}

function ans(a) {
	return hideopen ('答え ', a);	//&#31572;&#12360;
}

//消したり書いたりするスクリプト本体
function hideopen (str, a) {	//strは、印刷時に見えなくなる文字列。aは書いたり消したりする文字列。
	openstr = '<small>[表示]</small>';
	hidestr = '<small>[隠す]</small>';
	if (a == '') {
		return false;
	}
	hiddenarea++;

	document.write ('<span id=d', hiddenarea,'o class=noprintout>', str, '<a href="javascript:showDiv(\'d', hiddenarea, '\')">', openstr, '</a></span>');
	document.write ('<span id=d', hiddenarea,'h style="display:none;">', str, '<a href="javascript:showDiv(\'d', hiddenarea, '\')" class=noprintout>', hidestr, '</a></span>');

	document.writeln ('<div id="d', hiddenarea, '" style = "display:none; padding-left:0em; border-top:solid 1px olivedrab; border-bottom:solid 1px olivedrab; ">');
	document.writeln (a);
	document.write ('</div>');
	//document.writeln ('</li>');
	return true;
}

//ヘッダとフッタ用

var filename = location.pathname.substring(location.pathname.lastIndexOf('/') + 1);
var fileno = 0;
for (var i = 0; i < pages.length; i++) {
	if (pages[i][0] == filename) {
		fileno = i;		//このページのノンブル
	}
	if (pages[i][0]) {
		allpage = i;		//ページ数-1
	}
}

//前後のナビ

function zengo () {
	document.write ('<table class=nostyle width = 99%><tr><td align = left class=nostyle>');

	if (fileno) {
			document.write ('<a href=', pages[fileno - 1][0], '>', pages[fileno - 1][1] ,'←</a>');
	}
	document.write ('<br></td><td class=nostyle align = right>');
	if (fileno < allpage) {
			document.write ('<a href=', pages[fileno + 1][0], '>→', pages[fileno + 1][1] ,'</a>');
	}
	document.write ('<br></td></tr></table></span>');
}

//ヘッダ
function header () {
	document.writeln ('<h2>');
	document.writeln ('<a href=index.html>楽典</a>');
	document.writeln ('</h2>');
	document.writeln ('<h3>');
	document.writeln (pages[fileno][1]);
	document.writeln ('</h3>');
	//zengo ();
}

//フッタ
function footer () {
	searchsite ();
	document.write(
	'<span class=noprintout>',
	'<h3 class=navi>',
	'　',
	'</h3>',
	'');
	zengo ();
	document.write('<p lang=en class=copyright>© 2008 by Takuya Shigeta</p>');
}

//検索エンジン
function searchsite () {
	document.write(
	'<span class=noprintout>',
	'<h3 class=navi>',
	'検索',
	'</h3>',
	'',
	'<table class=nostyle>',
	'<tr><td class=nostyle>',
	'<a href="http://www.google.co.jp/">',
	'<img src="http://www.google.com/logos/Logo_40wht.gif" ',
	'border="0" alt="Google" align="absmiddle"></a>',
	'</td><td class=nostyle>',
	'<form method=get action="http://www.google.co.jp/search" target=googleserp>',
	'<input type=text name=q size=31 maxlength=255 value="">',
	'<input type=hidden name=ie value=UTF-8>',
	'<input type=hidden name=oe value=UTF-8>',
	'<input type=hidden name=hl value="ja">',
	'<input type=submit name=btnG value="楽典.comを検索">',
	'<input type=hidden name=domains value="楽典.com">',
	'<input type=hidden name=sitesearch value="楽典.com" checked>',
	'</form>',
	'</td></tr>',
	'<tr><td class=nostyle>',
	'<a href="http://www.yahoo.co.jp"><img src="http://i.yimg.jp/images/search/customsearch/yjlogo/yjlogo_type1_ffffff.gif" width="124" height="20" alt="powered by Yahoo! JAPAN" border=0></a>',
	'</td><td class=nostyle>',
	'<form action="http://custom.search.yahoo.co.jp/search" method="get" id="srch" target="yjserp">',
	'<input type="search" results="20" name="p" id="srchInput" size=31>',
	'<input type="submit" value="楽典.comを検索" id="srchBtn">',
	'<input type="hidden" id="fr" name="fr" value="cse">',
	'<input type="hidden" id="ei" name="ei" value="UTF-8">',
	'<input type="hidden" id="csid" name="csid" value="IbzKNOppIq64fEGVjlZeJ_1b3fbCvZK7iQDb">',
	'<input type="hidden" name="vs" value="楽典.com" id="yjInsite">',
	'</form>',
	'</td></tr></table>',
	'</span>',
	'');
}

//音
function tones () {
	var x = '';
	if (!arguments.length) {	//引数がない
		return false;
	}
	for (var i = 0; i < arguments.length; i++) {
		x = x + arguments[i] + ',';
	}
	midi('http://楽典.com/ontei/makemidi.cgi?tones=' + x);
}

//旋律
function melody () {
	var x = '';
	if (arguments.length < 2) {	//引数がない
		return false;
	}
	for (var i = 1; i < arguments.length; i++) {
		x = x + arguments[i] + ',';
	}
	midi('http://楽典.com/renpu/renpu.cgi?trans=' + arguments[0] + '&tone1=' + x);
}

//和声
function harmony () {
	var x = 'http://楽典.com/renpu/renpu.cgi?mm=60&last=' + arguments.length;
	if (arguments.length < 1) {	//引数がない
		return false;
	}
	for (var i = 1; i <= arguments.length; i++) {
		x = x + '&' + 'tone' + i + '=' + arguments[i - 1];
	}
	midi(x);
}

//midi
/*
function midi (x) {
	document.writeln('<div><object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="16" width="200">');
	document.writeln('<param name="src" value="', x, '">');
	document.writeln('<param name="autoplay" value="false">');
	document.writeln('<embed src="', x, '" autoplay="false" pluginspage="http://www.apple.com/quicktime/download/" height="16" width="200">');
	document.writeln('</object></div>');
}
*/

function midi (x) {
	midiarea ++;
	document.writeln('<div id="midi', midiarea ,'" class=noprintout>',
		'<a href="javascript:midiplay(\'midi', midiarea ,'\', \'', x,'\');">',
		'<img src="img/midipre.gif" border=0>',	// style="margin-bottom: 0.5em;"
		'</a></div>',
		'');
}

function midiplay (id, x) {
	document.getElementById(id).innerHTML =
		'<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="16" width="200">\n' +
		'<param name="src" value="' + x + '">\n' +
		'<param name="autoplay" value="true">\n' +
		'<embed src="' + x + '" autoplay="true" pluginspage="http://www.apple.com/quicktime/download/" height="16" width="200">\n' +
		'</object>';
}

//navigator.userAgent.search(/Windows/i) != -1
//和音の転回形
function joge (shita, ue) {
	document.write ('<span style = "position: relative; top: -0.4em;">');
	document.write ('<span style = "position: absolute; top: 0.8em;">');
	document.write (shita);
	document.write ('</span>');
	document.write (ue);
	document.write ('</span>');
	document.write ('');
}

function joge2 (shita, ue) {
	document.write ('<span style = "font-size: 70%; position: relative; top: -0.6em;">');
	document.write ('<span style = "position: absolute; top: ', ((navigator.userAgent.search(/Gecko/i) != -1) ? '0.3' : '0.9'), 'em;">');
	document.write (shita);
	document.write ('</span>');
	document.write (ue);
	document.write ('</span>');
	document.write ('');
}


//onLoad
function ol () {
	//目次作成
	var mokujilist = document.getElementsByTagName('h4');
	var out = '<div class = noprintout style = "border:#dbf 1px solid; background: #f0ebff; padding: 0 2px 0 2px;">';
	if (mokujilist.length < 2) {
		return;
	}
	for (var i = 0; i < mokujilist.length; i++) {
		var idname = "mokuji" + i;
		out = out + ((i) ? '- ' : '') + '<a href = "#' + idname + '">' + mokujilist[i].innerHTML.replace(/\n/g, '') + '</a> ';
		mokujilist[i].setAttribute ("id", idname);
	}
	document.getElementById("mokuji").innerHTML = out + '</div>';
}