var ary = document.URL.split('/');
var pageID = ary[ary.length - 1].split('.')[0];



function search110()
{
	//検索スクリプトのパス
	//var URL = ( !(pageID.indexOf("genre") != -1) && (pageID != "index")) ? "../search.php" : "./search.php";
	
	//フォーム内容取得
	var q = $('search_word_form').value;
	
	if (q == 'しらべたいことばを入れてね' || q == "") {
		alert("しらべたいことばを入れてね");
		return false;
	}
	
	//検索用のパス生成
	//URL = URL + "?q=" + q;
	
	//検索結果へジャンプ
	//this.location.href = URL;
	
	$('search_form').submit();
}

function kagaku110info()
{
	//index, genreX は、答えページでない
	//テキストページだったらランキングのカウントアップ
	if( !(pageID.indexOf("genre") != -1) && (pageID != "index") && (pageID != "search") )
	{
		ajaxPost();
	}
	
	//ランキングデータの取得〜描画
	ajaxReq('/kagaku/php/kagaku110/getRankingData.php');
	
	//トップだったらピックアップ
	if(pageID == "index")
	{
		ajaxPickup('/kagaku/php/kagaku110/getRandomFile.php');
		//ピックアップ静的版
		//ajaxPickup('/kagaku/110ban/temp/pickup.txt');
	}
	
	//アプライアンス停止アラート
	//insertAlertGA();
	
	//
	initQuestionBlock();
}


function insertAlertGA()
{
	var tgt = $('search_form');
	
	var alertTxt = '<div style="color: #ff3300; background: #ffece8; margin: 10px; padding: 10px; border: 3px solid #ff3300;">システムメンテナンスのため、次の期間、けんさく機能が使えなくなります。<br />ご迷惑をおかけしますが、あらかじめご了承ください。<br /><br />停止予定　8月8日（金）午後16：00ごろ〜8月9日（土）</div>';
	
	new Insertion.After(tgt,alertTxt);
}

function ajaxPost()
{
	var msec = (new Date()).getTime();
	new Ajax.Request("/kagaku/php/kagaku110/countUpRanking.php", {
		method: "get",
		parameters: "cache=" + msec + "&file_id=" + pageID,
		onSuccess:function(httpObj)
		{
			//alert(httpObj);
		},
		onFailure:function(httpObj)
		{
			//alert("エラーで読み込めませんでした");
		}
	});
}

function ajaxReq(url)
{
	var msec = (new Date()).getTime();
	new Ajax.Request(url, {
		method: "get",
		parameters: "cache="+msec,
		onSuccess:function(httpObj)
		{
			setRankingText(httpObj.responseText);
			
		},
		onFailure:function(httpObj)
		{
			//alert("エラーで読み込めませんでした");
		}
	});
}

function setRankingText(resStr)
{
	var rankingInfoArray = resStr.split(";");
	var iHTML = '';
	iHTML += '<table>';
	
	for(var i = 0; i < rankingInfoArray.length; i ++)
	{
		var rankingInfo = rankingInfoArray[i].split("&");
		
		var rankNum = i+1;
		if(rankNum < 10) rankNum = "0" + rankNum;
		
		iHTML += '<tr>';
		iHTML += '<td class="rank_num"><img src="/kagaku/images/top/rank' + rankNum + '.gif" width="26" height="16" alt="1位" /></td>';
		iHTML += '<td class="text"><a href="/kagaku/110ban/text/' + rankingInfo[1].split("=")[1] + '.html">' + rankingInfo[2].split("=")[1] + '</a></td>';
		iHTML += '</tr>';
	}
	
	iHTML += '</table>';
	
	$('access_ranking').innerHTML = iHTML;
}


//ピックアップ
function ajaxPickup(url)
{
	var msec = (new Date()).getTime();
	new Ajax.Request(url, {
		method: "get",
		parameters: "cache="+msec,
		onSuccess:function(httpObj)
		{
			setPickupText(httpObj.responseText);
			
		},
		onFailure:function(httpObj)
		{
			//alert("エラーで読み込めませんでした");
		}
	});
}

function setPickupText(resStr)
{
	//alert(resStr);
	
	var pickupInfoArray = resStr.split("&");
	var iHTML = '';
	
	iHTML += '<div class="pickup110_left align_c">';
	iHTML += '<img class="thumbnail" src="text/thumbnail/p' + pickupInfoArray[3].split("=")[1] + '.gif" ' + pickupInfoArray[4] + '" alt="" />';
	iHTML += '</div>';
	iHTML += '<div class="pickup110_right">';
	iHTML += '<div class="bold">' + pickupInfoArray[1].split("=")[1] + '</div>';
	iHTML += pickupInfoArray[2].split("=")[1] + '...';
	iHTML += '<div class="align_r"><a href="text/' + pickupInfoArray[0].split("=")[1] + '.html">続きを読む</a></div>';
	iHTML += '</div>';
	
	$('ajax_pickup').innerHTML = iHTML;
}

function sendQuestion()
{
	//alert('sendQuestion');
	
	var grade  = $('q_form').grade.value;
	var gender1 = $('q_form').gender[0].checked;
	var gender2 = $('q_form').gender[1].checked;
	var question = $('q_form').question.value;
	
	if(grade == 'no')
	{
		alert('学年をえらんでね。');
		return;
	}
	
	if(!gender1 && !gender2)
	{
		alert('性別をえらんでね。');
		return;
	}
	
	if(question == '' || question == 'ここに質問を書き込んでね')
	{
		alert('質問を書き込んでね');
		return;
	}
	
	$('q_form').url.value = document.URL;
	
	var gender = (gender1) ? "男" : "女";
	
	//自分の質問をまとめて、questionReplay()に持って行く
	var ownTxt = question + '<br /><span class="grade_sex">[ 小' + grade + '：' + gender + ' ]</span>';
	
	var msec = (new Date()).getTime();
	new Ajax.Request("/kagaku/php/kagaku110/sendForm.php", {
		method: "post",
		parameters: "cache=" + msec + "&grade=" + grade + "&gender=" + gender + "&question=" + question,
		onSuccess:function(httpObj)
		{
			questionReplay(httpObj.responseText, ownTxt);
		},
		onFailure:function(httpObj)
		{
			//alert("エラーで読み込めませんでした");
		}
	});
	
	//$('q_form').submit();
}



function questionReplay(txt, ownTxt)
{
	iHTML = '';
	
	iHTML += '<div class="form_send">';
	iHTML += '<div id="form_send_head"></div>';//'<img src="images/form_send_head.gif" width="222" height="10" alt="" />';
	
	iHTML += '<div class="text">';
	
	iHTML += ownTxt;
	
	iHTML += '</div>';
	iHTML += '<div id="form_send_bottom"></div>';//'<img src="images/form_send_bottom.gif" width="222" height="35" alt="" />';
	iHTML += '</div>';
	
	iHTML += '<div class="others_q">';
	iHTML += '<div id="others_question"></div>';//'<img src="images/others_question.gif" width="222" height="31" alt="" />';
	iHTML += '<div class="text">';
	
	iHTML += txt;
	
	iHTML += '<div class="close_link"><a href="javascript: initQuestionBlock()">閉じる</a></div>';
	iHTML += '</div>';
	
	iHTML += '</div>';
	
	$('question_block').innerHTML = iHTML;
}

function initQuestionBlock()
{
	iHTML = '';
	iHTML += '<div class="text">';
	iHTML += '<form id="q_form" class="margin_t20" method="post" action="">';
	iHTML += '<span class="bold"><ruby>学年<rp>（</rp><rt>がくねん</rt><rp>）</rp></ruby></span>';
	iHTML += '<select size="1" name="grade">';
	iHTML += '<option value="no" selected="selected">学年を選んでね</option>';
	iHTML += '<option value="1">１年</option>';
	iHTML += '<option value="2">２年</option>';
	iHTML += '<option value="3">３年</option>';
	iHTML += '<option value="4">４年</option>';
	iHTML += '<option value="5">５年</option>';
	iHTML += '<option value="6">６年</option>';
	iHTML += '</select>';
	iHTML += '<br />';
	iHTML += '<span class="bold"><ruby>性別<rp>（</rp><rt>せいべつ</rt><rp>）</rp></ruby></span>';
	iHTML += '<input type="radio" name="gender" value="男" /><ruby>男<rp>（</rp><rt>おとこ</rt><rp>）</rp></ruby>';
	iHTML += '<input type="radio" name="gender" value="女" /><ruby>女<rp>（</rp><rt>おんな</rt><rp>）</rp></ruby>';

	iHTML += '<input type="hidden" name="url" value="" />';

	iHTML += '<textarea name="question" id="question" onfocus="clearQuestionText(this);">ここに質問を書き込んでね</textarea>';
	iHTML += '<a class="common_btn" id="send_question_btn" href="javascript: sendQuestion();"><ruby>質問<rp>（</rp><rt>しつもん</rt><rp>）</rp></ruby>を<ruby>送<rp>（</rp><rt>おく</rt><rp>）</rp></ruby>る</a>';

	iHTML += '</form>';
	iHTML += '</div>';

	
	$('question_block').innerHTML = iHTML;
	
	
	
	//ルビを初期化するため、common.jsの処理を再度実行
	var cManager = new CookieManager({shelfLife:30});
	var fSize = cManager.getCookie("fontSize");
	var rType = cManager.getCookie("rubyType");
	
	if(fSize == null)
	{
		cManager.setCookie("fontSize", "normal");
		setLargeStyle();
	}
	
	if(rType == null)
	{
		cManager.setCookie("rubyType", "off");
		setRubyOff();
	}
	
	
	if(fSize == "large")
	{
		setLargeStyle();
	}
	else
	{
		setNormalStyle();
	}
	
	if(rType == "on")
	{
		setRubyOn();
	}
	else
	{
		setRubyOff();
	}
	
}

function clearQuestionText(t)
{
	if(t.value == 'ここに質問を書き込んでね')
	{
		t.value = '';
	}
}

function clearSearchText(t)
{
	if(t.value == 'しらべたいことばを入れてね')
	{
		t.value = '';
	}
}

function historyBack()
{
	history.back();
}


/**
 * domready.js
 * 
 * Cross browser mozilla's 'onDOMContentLoaded' implementation.
 * Executes a function when the dom tree is loaded without waiting for images.
 * 
 * Based on +Element.Events.domready+ from Mootools open source project, 
 * this tiny javascript library adds the emulated 'DOMContentLoaded' functionality.
 * 
 * Features:
 *   - No dependency on external libraries
 *   - Compatible with Prototype.js 
 * 
 * Tested browsers (Windows):
 *   - IE 7 (XP standalone)
 *   - IE 6 SP2
 *   - Firefox 2.0.0.4
 *   - Opera 9.21
 * 
 * Tested browsers (Mac OS X):
 *   - Safari 2.0.4
 *   - Firefox 2.0.0.4
 *   - Mac Opera 9.21
 *   - Mac IE 5.2.3
 *
 * Copyright (c) 2007 Takanori Ishikawa.
 * License: MIT-style license.
 * 
 * MooTools Copyright:
 * copyright (c) 2007 Valerio Proietti, <http://mad4milk.net>
 *
 *
 * See Also:
 *
 *   mootools 
 *   http://mootools.net/
 *   
 *   The window.onload Problem - Solved!
 *   http://dean.edwards.name/weblog/2005/09/busted/
 *   
 *   [PATCH] Faster onload for Event.onload
 *   http://dev.rubyonrails.org/ticket/5414
 *   Changeset 6596: Support for "DOMContentLoaded" event handling (prototype.js event branch)
 *   http://dev.rubyonrails.org/changeset/6596
 *
 */

if (typeof Event == 'undefined') Event = new Object();

/*
 * Registers function +fn+ will be executed when the dom 
 * tree is loaded without waiting for images. 
 * 
 * Example:
 *
 *  Event.domReady.add(function() {
 *    ...
 *  });
 *
 */
Event.domReady = {
  add: function(fn) {
    
    //-----------------------------------------------------------
    // Already loaded?
    //-----------------------------------------------------------
    if (Event.domReady.loaded) return fn();
    
    //-----------------------------------------------------------
    // Observers
    //-----------------------------------------------------------
    var observers = Event.domReady.observers;
    if (!observers) observers = Event.domReady.observers = [];
    // Array#push is not supported by Mac IE 5
    observers[observers.length] = fn;
    
    //-----------------------------------------------------------
    // domReady function
    //-----------------------------------------------------------
    if (Event.domReady.callback) return;
    Event.domReady.callback = function() {
      if (Event.domReady.loaded) return;
      
      Event.domReady.loaded = true;
      if (Event.domReady.timer) {
        clearInterval(Event.domReady.timer);
        Event.domReady.timer = null;
      }
      
      var observers = Event.domReady.observers;
      for (var i = 0, length = observers.length; i < length; i++) {
        var fn = observers[i];
        observers[i] = null;
        fn(); // make 'this' as window
      }
      Event.domReady.callback = Event.domReady.observers = null;
    };
    
    //-----------------------------------------------------------
    // Emulates 'onDOMContentLoaded'
    //-----------------------------------------------------------
    var ie = !!(window.attachEvent && !window.opera);
    var webkit = navigator.userAgent.indexOf('AppleWebKit/') > -1;
    
    if (document.readyState && webkit) {
      
      // Apple WebKit (Safari, OmniWeb, ...)
      Event.domReady.timer = setInterval(function() {
        var state = document.readyState;
        if (state == 'loaded' || state == 'complete') {
          Event.domReady.callback();
        }
      }, 50);
      
    } else if (document.readyState && ie) {
      
      // Windows IE 
      var src = (window.location.protocol == 'https:') ? '://0' : 'javascript:void(0)';
      document.write(
        '<script type="text/javascript" defer="defer" src="' + src + '" ' + 
        'onreadystatechange="if (this.readyState == \'complete\') Event.domReady.callback();"' + 
        '><\/script>');
      
    } else {
      
      if (window.addEventListener) {
        // for Mozilla browsers, Opera 9
        document.addEventListener("DOMContentLoaded", Event.domReady.callback, false);
        // Fail safe 
        window.addEventListener("load", Event.domReady.callback, false);
      } else if (window.attachEvent) {
        window.attachEvent('onload', Event.domReady.callback);
      } else {
        // Legacy browsers (e.g. Mac IE 5)
        var fn = window.onload;
        window.onload = function() {
          Event.domReady.callback();
          if (fn) fn();
        }
      }
      
    }
    
  }
}


Event.domReady.add(function() {
  kagaku110info();
});





