var BUI = {};


/*-----------------------------------------------------------------------------
table要素用class属性値をセット
------------------------------------------------------------------------------*/
function setTableClass() {
	var tbls = $$('table');
	
	for (var i=0; i<tbls.length; i++)
	{
		// tr に class属性値をセット
		for (var j=0; j<tbls[i].rows.length; j++)
		{
			// tr の通し番号と、上と下のtr に top bottom をセット
			if (j == 0)
			{
				Element.addClassName(tbls[i].rows[j], 'tr'+ j +' top');
			}
			else if (j == tbls[i].rows.length - 1)
			{
				Element.addClassName(tbls[i].rows[j], 'tr'+ j +' bottom');
			}
			else
			{
				Element.addClassName(tbls[i].rows[j], 'tr'+ j);
			}
			
			// 偶数行か奇数行かを class属性値にセット
			var isOdd;
			if ((j==0) || (j%2==0))
			{
				// JavaScript等により、ページをリロードせずにテーブルの要素の順番が変ったときに、変る前のclass属性値（y-oddなど）を持っているので、それをまず削除するために Element.removeClassNameを実行
				Element.removeClassName(tbls[i].rows[j], 'y-odd');
				Element.removeClassName(tbls[i].rows[j], 'y-even');
				// class属性値を再追加
				Element.addClassName(tbls[i].rows[j], 'y-odd');
				isOdd = true;
			}
			else
			{
				// JavaScript等により、ページをリロードせずにテーブルの要素の順番が変ったときに、変る前のclass属性値（y-oddなど）を持っているので、それをまず削除するために Element.removeClassNameを実行
				Element.removeClassName(tbls[i].rows[j], 'y-odd');
				Element.removeClassName(tbls[i].rows[j], 'y-even');
				// class属性値を再追加
				Element.addClassName(tbls[i].rows[j], 'y-even');
				isOdd = false;
			}

			// tr に th か td の子ノードがあれば class属性値をセット
			if (tbls[i].rows[j].cells.length != 0)
			{
				for (var k=0; k<tbls[i].rows[j].cells.length; k++)
				{
					// その行におけるセルの通し番号と、左端と右端のセルに left right をセット
					if (tbls[i].rows[j].cells[k].nodeName == 'TH' || tbls[i].rows[j].cells[k].nodeName == 'TD')
					{
						if (k == 0)
						{
							Element.addClassName(tbls[i].rows[j].cells[k], 'cell'+ k + ' left');
						}
						else if (k == tbls[i].rows[j].cells.length - 1)
						{
							Element.addClassName(tbls[i].rows[j].cells[k], 'cell'+ k + ' right');
						}
						else
						{
							Element.addClassName(tbls[i].rows[j].cells[k], 'cell'+ k);
						}
					}
					
					// 偶数セルか奇数セルかを class属性値にセット
					if ((k==0) || (k%2==0))
					{
						Element.addClassName(tbls[i].rows[j].cells[k], 'x-odd');
					}
					else
					{
						Element.addClassName(tbls[i].rows[j].cells[k], 'x-even');
					}
					
					// 偶数行のセルか奇数行のセルかを class属性値にセット
					if (isOdd)
					{
						Element.addClassName(tbls[i].rows[j].cells[k], 'y-odd');
					}
					else
					{
						Element.addClassName(tbls[i].rows[j].cells[k], 'y-even');
					}
				}
			}
		}
	}
}


/*-----------------------------------------------------------------------------
検索用入力フォーム
-----------------------------------------------------------------------------*/
function setSearchForm() {
	if ($('search')) {
		var keyword = $('search');
		if ((keyword.value == '') || (keyword.value == 'キーワード')) {
			keyword.style.color = '#999999';
			keyword.value = 'キーワード';
		}
		else {
			keyword.style.color = '#333333';
		}
		
		Event.observe(keyword, 'focus', xFocus);
		Event.observe(keyword, 'blur', xBlur);
	}
	
	function xFocus(evt) {
		evt.target.style.color = '#333333';
		if (evt.target.value == 'キーワード') {
			evt.target.value = '';
		}
	}

	function xBlur(evt) {
		if ((evt.target.value == '') || evt.target.value == 'キーワード') {
			evt.target.style.color = '#999999';
			evt.target.value = 'キーワード';
		}
		else {
		evt.target.style.color = '#333333';
		}
	}
}


/*-----------------------------------------------------------------------------
トラックバックURL
-----------------------------------------------------------------------------*/
function setTrackbackUrl() {
	if ($('trackbackUrl')) {
		var trackbackUrl = $('trackbackUrl');
		Event.observe(trackbackUrl, 'focus', xFocusUrl);
	}
	
	function xFocusUrl(evt) {
		trackbackUrl.select();
	}
}


/*-----------------------------------------------------------------------------
ページ内リンクでスムーズにスクロール
（全てのページ内リンクのみを対象とする場合）
-------------------------------------------------------------------------------
特定のページ内リンクのみを対象とする場合

■手順1（全てのページ内リンクを対象にする場合）
1.setting1 の isAll に true を代入
2.setting1 の duration に数値を代入
3.ページ内リンク（リンク元＆リンク先）を設定

■記述例
・HTML（リンク元）
<a href="#target_a">リンク</a>
・HTML（リンク先）
<p id="target_a" name="target_a">リンク先</p>
-------------------------------------------------------------------------------
ページ内リンクでスムーズにスクロール
（特定のページ内リンクのみを対象とする場合）
-------------------------------------------------------------------------------
特定のページ内リンクのみを対象とする場合

■手順1（全てのページ内リンクを対象にする場合）
1.setting1 の isAll に false を代入
2.setting1 の duration に数値を代入
3.ページ内リンク（リンク元＆リンク先）を設定
  ※リンク元のclass属性値に”smoothLink”を設定する

■記述例
・HTML（リンク元）
<a href="#target_a" class="smoothLink">リンク</a>
・HTML（リンク先）
<p id="target_a" name="target_a">リンク先</p>
-----------------------------------------------------------------------------*/
function smoothLink() {

	/* setting1 */
	var isAll = true; // 全てのページ内リンクに設定するかどうか
	var duration = 0.7; // スクロールに要す時間（※この値で速さが変わる）
	emphasisFlg = true;
	
	if (isAll) {
		var link_array = $$('a[href^=#]:not([href=#])');
		for (var i=0; i<link_array.length; i++) {
			link_array[i].observe('click', onClick.bind(link_array[i]));
		}
	}
	else {
		if ($$('a.smoothLink').length > 1) {
			var link_array = $$('a.smoothLink');
			for (var i=0; i<link_array.length; i++) {
				link_array[i].observe('click', onClick.bind(link_array[i]));
			}
		}
	}
	
	function onClick(evt) {
		BUI.emphasisRowFlg = false;
//		alert(this.hash.substr(1));
		new Effect.ScrollTo(this.hash.substr(1), {
			duration: duration, 
			beforeStartInternal: function(effect) {
			}, 
			afterFinishInternal: function(effect) {
				BUI.emphasisRowFlg = true;
			}
		});
		evt.stop();
	}
}


/*-----------------------------------------------------------------------------
トップページメイン画像
-----------------------------------------------------------------------------*/
function setMainImg() {
	if ($('mainImg')) {
		var imgs = ['img/home_main01.jpg', 'img/home_main01.jpg'];
		var mainImg = $('mainImg');
		var indx = Math.floor(Math.random() * imgs.length);
		mainImg.src = imgs[indx];
	}
}


/*-----------------------------------------------------------------------------
お問合せ
-----------------------------------------------------------------------------*/
function gotoContact() {
	if ($('gotoContact')) {
		function openContactWindow(evt) {
			window.open('https://ssm001.kix.ad.jp/ex0040035340/fueseijin.com/contact/', 'newwin', 'width=600 height=600 scrollbars = yes');
			evt.stop();
			return false;
		}
		var gotoContact = $('gotoContact');
		Event.observe(gotoContact, 'click', openContactWindow);
	}
}


/*-----------------------------------------------------------------------------
windowロード完了時に実行する関数
-----------------------------------------------------------------------------*/
function init() {
	smoothLink();
	setSearchForm();
	gotoContact();
	setMainImg();
	setTrackbackUrl();
	setTableClass();
}

Event.observe(window, 'load', init);
