window.onload=ini;

function ini (){

	weather();
	travel();
	left_count_statement();
}


function pop_pref(){
	$('pref_table').setStyle('position: absolute; left: 200px; top: 300px');
	$('pref_table').setOpacity(0.85);
	window.scroll(0,0);
}

//レビュー用の板を立ち上げる
function update_submit(){

	//確認ダイアログを出現させる
	if(confirm("50文字以上で、利用者に有益な情報を投稿してください")){
		shori();
	}else{
		return false;
	}
	
	function shori(){

		var haku_name = (document.title.split(/\s+/, 2))[0];
		$('hakubutsukan').innerHTML = haku_name + 'のレビューを書く'; //現在レビューを書き込んでいる対象の博物館の名前をユーザーに示す
		$('haku_hide').setValue(haku_name); //レビュー送信のとき、どの博物館かを判別にするための処理
		
		$('user_review_submit_state').innerHTML = ""; //テンプレートファイル(review_submit/html)のDOM要素user_review_submit_state（送信結果などを示す）を初期化する
		
		//同様に初期化の処理（入力フォームを初期化する）
		$('nick_name').setValue('');
		$('select').setValue('');
		$('review').setValue('');
		
		//入力フォームを所定の位置（ユーザーに見える位置）に移動させ、半透明化する
		$('review_submit').setStyle('position: absolute; left: 200px; top: 300px');
		$('review_submit').setOpacity(0.95);
		
		//徐々に現れる（視覚効果）
		new Effect.Grow('review_submit');
		
		//ニックネームをパネルを起動時は薄い赤に、何か書き込むと、白煮変化させる
		$('nick_name').setStyle('background-color: #ffcccc');
		$('nick_name').onchange = function(){
			$('nick_name').setStyle('background-color: #ffffff');
		}
		
		//評価のプルダウンを起動時は薄い赤に、何か書き込むと、白煮変化させる
		$('select').setStyle('background-color: #ffcccc');
		$('select').onchange = function(){
			$('select').setStyle('background-color: #ffffff');
		}
		
		
		//レビューの入力文字数を数えて「str_count」に表示する
		setInterval("strcount()",1000);

	}

}

// 投稿用ボードの中身が文字数で●●を超えるまで警告する
function strcount(){
   var str_num = 50 - $('review').getValue().length;
   if(str_num>0){
		$('str_count').innerHTML = '<p align="right">（残り'+str_num+'文字）</p>';
		$('review').setStyle('background-color: #ffcccc');
	}else{
		$('str_count').innerHTML = '<p align="right">十分な文字数に達しました</p>';
		$('review').setStyle('background-color: #ffffff');
	}
}

//コンパネ抽出
function my_submit (){

	//県選択用の板を移動させる
	$('pref_table').setStyle('position: absolute; left: -1000px; top: -1000px');
	
	$('user_review').update('');
	
	var pref_name  = $F('prefid');
	var junle_name = $F('junle');

	if(pref_name == '都道府県を選択'){
		alert('都道府県を選択してください');
		return false;
	}

	var mode = 1;

	map_script(pref_name,mode,junle_name,name);

	if(pref_name == '全国'){
		clear_prefDisp(); //天気予報などの県レベルで表示したものを消す
	}else{
		//県レベルの検索
		prefDisp(pref_name); //天気予報
		shisetsu_display(pref_name); //右袖の施設一覧表示
	}
	
	clear(travel);

}



//天気予報を返す
function clear_prefDisp() {
	$('result').hide(); //天気予報を消す
	$('shisetsu_display').hide(); //施設一覧を消す
}

function weather() {

  var pref_name = (document.title.split(/\s+/, 2))[0];
	
  var result = $('result');

  var url = "./weather_html.cgi?pref=" + pref_name;

  var paramList = "";

  new Ajax.Request(url,
    {
      method: 'get',
      onSuccess: getData,
      onFailure: showErrMsg,
      parameters: paramList
  });

  function getData(data){
  
   var test = data.responseText;  

   tmpHtml = test;
   result.innerHTML = tmpHtml;

  }

  function showErrMsg(){

  }

}

//周辺ブログ情報
function travel() {

  var haku_name = (document.title.split(/\s+/, 2))[0];
  
  var travel       = $('travel');

  var url = "./for_travel.cgi?name=" + haku_name; 
  
  var paramList = "";

  new Ajax.Request(url,
    {
      method: 'get',
      onSuccess: getData,
      onFailure: showErrMsg,
      parameters: paramList
  });

  function getData(data){

   var test = data.responseText;  

   tmpHtml = '<div id = "travel_child"><h2><b>'+haku_name+'</b>の周辺の旅行ブログ（<a href="http://4travel.jp/" target=_blank title="旅行のクチコミサイト フォートラベル">Web Services by 4travel.jp</a> ）</h2>'+test+"</div>";
   
	travel.innerHTML = tmpHtml;
	
	//result.appendChild(tmpHtml);

  }

  function showErrMsg(){

  }

}

//ユーザーレビュー一覧（地図の下）
function review_dsiplay (haku) {

  var result = $('user_review');
  
  var url = "./user_review_display.cgi?haku=" + haku;

  var paramList = "";

  new Ajax.Request(url,
    {
      method: 'get',
      onSuccess: getData,
      onFailure: showErrMsg,
      parameters: paramList
  });

  function getData(data){
  
   var test = data.responseText;  

    result.innerHTML = test;

  }

  function showErrMsg(){
    clearDisp();
    state.innerHTML = "データを取得できませんでした。<br />\n";
  }

}

//ユーザーレビュー投稿および投稿後のアクション
function user_review_submit() {

	//二重投稿を防ぐため、フォームを無効化する
	Form.disable("user_review_submitting");
	$("user_review_submit_button_id").hide();

	//現在の文字数を調べる
  var str_count = $('str_count').innerHTML;
  nokori = str_count.match( /\d+/g ); //nokori[0]に数字が入る
  var final_nokori;
  if(nokori){
  	final_nokori = nokori[0]; //残り数字をfinal_nokoriに代入する
  }else{
  	final_nokori >= 1000; //1000文字以上書いていることと同値とする。メンテ性の問題で1000とした。
  }

  var nick_name  = $F('nick_name');
  var point      = $F('select');
  var review     = $F('review');
  var pref_name  = $F('haku_hide'); //館名
  
  var error="";
  if(!nick_name || !review || point =='no'){
  	error = '未記入の項目があります\n';
  }
  if(final_nokori < 50){
  	error = error + 'あと' + nokori + '文字追加してください。';
  }
  
  if(error){
  	alert(error);
	return false;
  }  	


//キャッシュ防止のためのタイムスタンプを作成
  var date = new Date();
  var timestamp = date.getTime();

  $('user_review_submit_state').innerHTML = "<p>ただいま登録中です・・・<div id='align'><img src='./template/load_ball.gif'></div></p>";

  var url = "./user_review.cgi"; 
  
  var paramList = 'nick_name=' + nick_name+ '&point=' + point + '&review=' + review + '&pref_name=' + pref_name + '&time=' + timestamp;

  new Ajax.Request(url,
    {
      method: 'get',
      onSuccess: getData,
      onFailure: showErrMsg,
      parameters: paramList
  });

  function getData(data){

		left_count_statement(); //あと○回の部分を更新する

	　 var atari = data.responseText; 

       atari = atari.replace("\n",""); //改行コードを削除する

		if(atari == 'b'){ //ブラックリストの人間が投稿したことを表すbがﾞ返ってきたときの処理
			alert('ブラック');
			clear_submit();
			return false;
		}
		
		if(atari == 'w'){ //同一人物の二重投稿を表すシグナルwがﾞ返ってきたときの処理
			alert('一定時間内の連続投稿はお控えください。');
			clear_submit();
			return false;
		}
		
	   
	   var tmpHtml = '<p>投稿ありがとうございました！<br>無事受付完了しました。<br>しばらくして反映されます。</p>';

	   if(atari){
		   $('user_review_submit_state').update(tmpHtml + '<img src="/maps_for_debug/template/ist2_2098934-profit-idea.gif">' + atari);
	   }else{
	   		$('user_review_submit_state').update(tmpHtml + '<p>残念ですが、プレゼントには当選しませんでした。<br>またの投稿をお待ちしております。<br>ただいまのプレゼントは<a href="/present.html" target="_blank">こちら。</a></p>');
	   }
   
  }

  function showErrMsg(){

  }

}

//レビューサブミット用のボードをクリアーする
function clear_submit(){
	new Effect.SwitchOff('review_submit'); 

}



//都道府県選択ボードの各要素をクリックした際に呼ばれる関数
function mess(e){
		$('prefid').setValue(e.innerHTML);
		$('pref_table').setStyle('position: absolute; left: -1000px; top: -1000px');
		$('statement').scrollTo;
}

//残り○回で必ず当たる！の○を更新するAJAX
function left_count_statement() {

  var date = new Date();
  var timestamp = date.getTime();

  var result = $('left_count_statement');

  var url = "./present_left_count.dat?" + 'time=' + timestamp;

  var paramList = "";

  new Ajax.Request(url,
    {
      method: 'get',
      onSuccess: getData,
      onFailure: showErrMsg,
      parameters: paramList
  });

  function getData(data){
  
  result.innerHTML = 'あと<font size="+3">' + data.responseText + '</font>投稿以内に本物化石が当たる！';

  }

  function showErrMsg(){
  //
  }
}