/*
 *		インデックスページ
 *　	天気関連スクリプト
 *		@Hayato Chiba
 *		2008/2/15～
 */

// /*		天気ページへのリンク先	*/
// var LINK_URL = "http://www.nikkansports.com/";
// 
// /*		アイコン画像のURL		*/
// var ICON_URL = "http://114.dna2006-virtual.814356.com/img/";
 
 /*		クッキーの生存期間		*/
 var COKKIE_DAYS = 365;
 
 /*
  *		クラスWeather
  */	
 var Weather = function(){
 	this.data = {"DisplayDay":"今日","WeatherData":[{"weather":"雨のち晴","rain":"80","max":"24","id":"111","point":"道北宗谷地方","min":"20"},{"weather":"雨のち曇","rain":"70","max":"26","id":"112","point":"道北上川地方","min":"22"},{"weather":"雨のち晴","rain":"80","max":"25","id":"113","point":"道北留萌地方","min":"23"},{"weather":"曇のち雨","rain":"10","max":"30","id":"121","point":"道東網走地方","min":"22"},{"weather":"曇一時雨","rain":"10","max":"30","id":"122","point":"道東北見地方","min":"23"},{"weather":"曇一時雨","rain":"20","max":"27","id":"123","point":"道東紋別地方","min":"20"},{"weather":"曇のち雨","rain":"10","max":"22","id":"124","point":"道東釧路地方","min":"16"},{"weather":"曇のち雨","rain":"10","max":"22","id":"125","point":"道東根室地方","min":"16"},{"weather":"曇のち雨","rain":"30","max":"28","id":"126","point":"道東十勝地方","min":"20"},{"weather":"曇時々雨","rain":"70","max":"27","id":"131","point":"道央石狩地方","min":"24"},{"weather":"雨のち曇","rain":"80","max":"26","id":"132","point":"道央空知地方","min":"23"},{"weather":"雨のち曇","rain":"80","max":"26","id":"133","point":"道央後志地方","min":"24"},{"weather":"雨","rain":"60","max":"24","id":"141","point":"道南胆振地方","min":"20"},{"weather":"雨","rain":"50","max":"23","id":"142","point":"道南日高地方","min":"19"},{"weather":"曇時々雨","rain":"70","max":"28","id":"143","point":"道南渡島地方","min":"24"},{"weather":"雨","rain":"80","max":"26","id":"144","point":"道南桧山地方","min":"24"},{"weather":"曇のち雨","rain":"20","max":"31","id":"211","point":"青森県下北地方","min":"23"},{"weather":"曇のち雨","rain":"20","max":"33","id":"212","point":"青森県三八・上北地方","min":"24"},{"weather":"曇のち雨","rain":"30","max":"32","id":"213","point":"青森県津軽地方","min":"25"},{"weather":"曇り","rain":"10","max":"31","id":"221","point":"岩手県沿岸北部地方","min":"23"},{"weather":"曇時々晴","rain":"10","max":"31","id":"222","point":"岩手県沿岸南部地方","min":"23"},{"weather":"曇り","rain":"10","max":"31","id":"223","point":"岩手県内陸地方","min":"23"},{"weather":"曇のち雨","rain":"30","max":"29","id":"231","point":"秋田県沿岸地方","min":"25"},{"weather":"曇のち雨","rain":"30","max":"31","id":"232","point":"秋田県内陸地方","min":"24"},{"weather":"曇時々晴","rain":"0","max":"33","id":"241","point":"宮城県東部地方","min":"25"},{"weather":"曇時々晴","rain":"0","max":"35","id":"242","point":"宮城県西部地方","min":"24"},{"weather":"曇のち雨","rain":"10","max":"33","id":"251","point":"山形県庄内地方","min":"26"},{"weather":"曇のち雨","rain":"10","max":"34","id":"252","point":"山形県最上地方","min":"23"},{"weather":"曇時々晴","rain":"10","max":"36","id":"253","point":"山形県村山地方","min":"24"},{"weather":"曇時々晴","rain":"10","max":"34","id":"254","point":"山形県置賜地方","min":"23"},{"weather":"晴のち雨","rain":"10","max":"28","id":"261","point":"福島県浜通り地方","min":"22"},{"weather":"晴のち雨","rain":"10","max":"36","id":"262","point":"福島県中通り地方","min":"26"},{"weather":"晴のち雨","rain":"20","max":"34","id":"263","point":"福島県会津地方","min":"24"},{"weather":"曇時々晴","rain":"10","max":"33","id":"311","point":"茨城県北部地方","min":"25"},{"weather":"曇時々晴","rain":"10","max":"34","id":"312","point":"茨城県南部地方","min":"26"},{"weather":"曇のち雨","rain":"30","max":"34","id":"321","point":"栃木県北部地方","min":"25"},{"weather":"曇のち雨","rain":"30","max":"34","id":"322","point":"栃木県南部地方","min":"26"},{"weather":"晴のち雨","rain":"20","max":"32","id":"331","point":"群馬県北部地方","min":"22"},{"weather":"曇のち雨","rain":"20","max":"35","id":"332","point":"群馬県南部地方","min":"25"},{"weather":"曇時々晴","rain":"20","max":"36","id":"341","point":"埼玉県北部地方","min":"25"},{"weather":"曇時々晴","rain":"20","max":"35","id":"342","point":"埼玉県南部地方","min":"26"},{"weather":"曇り","rain":"20","max":"33","id":"343","point":"埼玉県秩父地方","min":"24"},{"weather":"曇のち晴","rain":"10","max":"30","id":"351","point":"千葉県北東部地方","min":"24"},{"weather":"曇のち晴","rain":"10","max":"33","id":"352","point":"千葉県北西部地方","min":"27"},{"weather":"晴時々曇","rain":"10","max":"32","id":"353","point":"千葉県南部地方","min":"25"},{"weather":"曇のち晴","rain":"10","max":"33","id":"361","point":"東京都東京地方","min":"27"},{"weather":"晴時々曇","rain":"20","max":"32","id":"362","point":"東京都伊豆諸島北部地方","min":"26"},{"weather":"曇時々晴","rain":"20","max":"30","id":"363","point":"東京都伊豆諸島南部地方","min":"26"},{"weather":"曇時々晴","rain":"10","max":"33","id":"371","point":"神奈川県東部地方","min":"27"},{"weather":"曇時々晴","rain":"10","max":"33","id":"372","point":"神奈川県西部地方","min":"26"},{"weather":"晴時々曇","rain":"10","max":"33","id":"411","point":"新潟県下越地方","min":"26"},{"weather":"曇時々晴","rain":"10","max":"34","id":"412","point":"新潟県中越地方","min":"26"},{"weather":"曇時々晴","rain":"10","max":"34","id":"413","point":"新潟県上越地方","min":"25"},{"weather":"晴時々曇","rain":"10","max":"31","id":"414","point":"新潟県佐渡地方","min":"27"},{"weather":"曇時々晴","rain":"10","max":"35","id":"421","point":"富山県東部地方","min":"26"},{"weather":"曇時々晴","rain":"10","max":"35","id":"422","point":"富山県西部地方","min":"26"},{"weather":"晴時々曇","rain":"10","max":"33","id":"431","point":"石川県能登地方","min":"26"},{"weather":"晴時々曇","rain":"10","max":"33","id":"432","point":"石川県加賀地方","min":"27"},{"weather":"曇時々晴","rain":"10","max":"34","id":"441","point":"福井県嶺北地方","min":"26"},{"weather":"曇時々晴","rain":"10","max":"34","id":"442","point":"福井県嶺南地方","min":"27"},{"weather":"曇のち雨","rain":"20","max":"30","id":"511","point":"山梨県東部・富士五湖地方","min":"20"},{"weather":"曇のち雨","rain":"20","max":"35","id":"512","point":"山梨県中西部地方","min":"25"},{"weather":"曇時々晴","rain":"10","max":"34","id":"521","point":"長野県北部地方","min":"24"},{"weather":"曇時々晴","rain":"10","max":"34","id":"522","point":"長野県中部地方","min":"23"},{"weather":"曇時々晴","rain":"10","max":"34","id":"523","point":"長野県南部地方","min":"23"},{"weather":"晴れ","rain":"10","max":"33","id":"531","point":"静岡県伊豆地方","min":"26"},{"weather":"曇時々晴","rain":"10","max":"34","id":"532","point":"静岡県東部地方","min":"26"},{"weather":"晴のち曇","rain":"10","max":"34","id":"533","point":"静岡県西部地方","min":"26"},{"weather":"晴のち曇","rain":"10","max":"33","id":"534","point":"静岡県中部地方","min":"26"},{"weather":"晴のち曇","rain":"20","max":"33","id":"541","point":"愛知県東部地方","min":"25"},{"weather":"晴時々曇","rain":"10","max":"36","id":"542","point":"愛知県西部地方","min":"27"},{"weather":"晴時々曇","rain":"20","max":"34","id":"551","point":"岐阜県飛騨地方","min":"22"},{"weather":"晴時々曇","rain":"10","max":"37","id":"552","point":"岐阜県美濃地方","min":"26"},{"weather":"晴時々曇","rain":"10","max":"34","id":"561","point":"三重県北中部地方","min":"27"},{"weather":"晴時々曇","rain":"10","max":"32","id":"562","point":"三重県南部地方","min":"25"},{"weather":"晴時々曇","rain":"10","max":"35","id":"611","point":"滋賀県北部地方","min":"26"},{"weather":"晴時々曇","rain":"10","max":"35","id":"612","point":"滋賀県南部地方","min":"26"},{"weather":"晴のち曇","rain":"0","max":"35","id":"621","point":"京都府北部地方","min":"25"},{"weather":"晴時々曇","rain":"0","max":"35","id":"622","point":"京都府南部地方","min":"27"},{"weather":"晴のち曇","rain":"0","max":"34","id":"631","point":"大阪府大阪地方","min":"28"},{"weather":"晴時々曇","rain":"20","max":"35","id":"641","point":"兵庫県北部地方","min":"24"},{"weather":"晴のち曇","rain":"10","max":"33","id":"642","point":"兵庫県南部地方","min":"28"},{"weather":"晴時々曇","rain":"0","max":"34","id":"651","point":"奈良県北部地方","min":"25"},{"weather":"晴時々曇","rain":"0","max":"34","id":"652","point":"奈良県南部地方","min":"22"},{"weather":"晴時々曇","rain":"10","max":"34","id":"661","point":"和歌山県北部地方","min":"27"},{"weather":"晴時々曇","rain":"10","max":"31","id":"662","point":"和歌山県南部地方","min":"27"},{"weather":"晴時々曇","rain":"10","max":"32","id":"711","point":"島根県東部地方","min":"27"},{"weather":"晴時々曇","rain":"10","max":"31","id":"712","point":"島根県西部地方","min":"27"},{"weather":"晴時々曇","rain":"10","max":"31","id":"713","point":"島根県隠岐地方","min":"27"},{"weather":"晴時々曇","rain":"0","max":"35","id":"721","point":"鳥取県東部地方","min":"25"},{"weather":"晴時々曇","rain":"0","max":"35","id":"722","point":"鳥取県中・西部地方","min":"26"},{"weather":"晴時々曇","rain":"0","max":"34","id":"731","point":"岡山県北部地方 ","min":"23"},{"weather":"晴れ","rain":"0","max":"35","id":"732","point":"岡山県南部地方","min":"27"},{"weather":"晴時々曇","rain":"10","max":"33","id":"741","point":"広島県北部地方","min":"22"},{"weather":"晴時々曇","rain":"0","max":"34","id":"742","point":"広島県南部地方","min":"26"},{"weather":"晴れ","rain":"10","max":"33","id":"751","point":"山口県北部地方","min":"27"},{"weather":"晴れ","rain":"10","max":"34","id":"752","point":"山口県東部地方","min":"27"},{"weather":"晴れ","rain":"10","max":"34","id":"753","point":"山口県中部地方","min":"27"},{"weather":"晴れ","rain":"10","max":"33","id":"754","point":"山口県西部地方","min":"28"},{"weather":"晴れ","rain":"0","max":"35","id":"811","point":"香川県香川地方","min":"27"},{"weather":"晴時々曇","rain":"0","max":"33","id":"821","point":"徳島県北部地方","min":"26"},{"weather":"晴時々曇","rain":"0","max":"33","id":"822","point":"徳島県南部地方","min":"24"},{"weather":"晴れ","rain":"0","max":"31","id":"831","point":"高知県東部地方","min":"26"},{"weather":"晴れ","rain":"0","max":"35","id":"832","point":"高知県中部地方","min":"25"},{"weather":"晴れ","rain":"0","max":"32","id":"833","point":"高知県西部地方","min":"27"},{"weather":"晴れ","rain":"0","max":"35","id":"841","point":"愛媛県東予地方","min":"27"},{"weather":"晴れ","rain":"0","max":"34","id":"842","point":"愛媛県中予地方","min":"27"},{"weather":"晴れ","rain":"0","max":"34","id":"843","point":"愛媛県南予地方","min":"26"},{"weather":"晴時々曇","rain":"20","max":"33","id":"911","point":"福岡県北九州地方","min":"27"},{"weather":"曇時々晴","rain":"20","max":"33","id":"912","point":"福岡県筑豊地方","min":"26"},{"weather":"曇時々晴","rain":"30","max":"34","id":"913","point":"福岡県筑後地方","min":"27"},{"weather":"晴時々曇","rain":"20","max":"34","id":"914","point":"福岡県福岡地方","min":"27"},{"weather":"晴時々曇","rain":"10","max":"33","id":"921","point":"佐賀県北部地方","min":"27"},{"weather":"晴時々曇","rain":"10","max":"34","id":"922","point":"佐賀県南部地方","min":"27"},{"weather":"曇のち晴","rain":"30","max":"32","id":"931","point":"長崎県北部地方","min":"27"},{"weather":"曇のち晴","rain":"30","max":"31","id":"932","point":"長崎県南部地方","min":"27"},{"weather":"晴れ","rain":"10","max":"32","id":"933","point":"長崎県壱岐対馬地方","min":"27"},{"weather":"曇のち晴","rain":"20","max":"32","id":"934","point":"長崎県五島地方","min":"27"},{"weather":"晴れ","rain":"10","max":"34","id":"941","point":"大分県北部地方","min":"27"},{"weather":"晴れ","rain":"10","max":"34","id":"942","point":"大分県中部地方","min":"26"},{"weather":"晴時々曇","rain":"20","max":"32","id":"943","point":"大分県南部地方","min":"26"},{"weather":"曇り","rain":"40","max":"33","id":"944","point":"大分県西部地方","min":"26"},{"weather":"曇一時雨","rain":"50","max":"28","id":"951","point":"熊本県阿蘇地方","min":"25"},{"weather":"晴一時雨","rain":"50","max":"32","id":"952","point":"熊本県熊本地方","min":"28"},{"weather":"晴一時雨","rain":"50","max":"32","id":"953","point":"熊本県球磨地方","min":"25"},{"weather":"晴一時雨","rain":"50","max":"32","id":"954","point":"熊本県天草・芦北地方","min":"27"},{"weather":"晴れ","rain":"0","max":"34","id":"961","point":"宮崎県北部平野部地方","min":"26"},{"weather":"晴れ","rain":"10","max":"35","id":"962","point":"宮崎県南部平野部地方","min":"27"},{"weather":"曇のち晴","rain":"20","max":"30","id":"963","point":"宮崎県北部山沿い地方","min":"24"},{"weather":"曇のち晴","rain":"20","max":"33","id":"964","point":"宮崎県南部山沿い地方","min":"26"},{"weather":"晴一時雨","rain":"50","max":"33","id":"971","point":"鹿児島県薩摩地方","min":"27"},{"weather":"晴一時雨","rain":"50","max":"32","id":"972","point":"鹿児島県大隅地方","min":"26"},{"weather":"晴一時雨","rain":"50","max":"31","id":"973","point":"鹿児島県種子島・屋久島地方","min":"28"},{"weather":"晴時々曇","rain":"20","max":"33","id":"974","point":"鹿児島県奄美地方","min":"26"},{"weather":"晴れ","rain":"10","max":"33","id":"981","point":"沖縄県本島北部地方","min":"28"},{"weather":"晴れ","rain":"10","max":"33","id":"982","point":"沖縄県本島中南部地方","min":"28"},{"weather":"晴れ","rain":"10","max":"32","id":"983","point":"沖縄県久米島地方","min":"28"},{"weather":"晴れ","rain":"10","max":"32","id":"984","point":"沖縄県大東島地方","min":"27"},{"weather":"晴れ","rain":"10","max":"33","id":"985","point":"沖縄県宮古島地方","min":"27"},{"weather":"晴れ","rain":"20","max":"33","id":"986","point":"沖縄県石垣島地方","min":"28"},{"weather":"晴れ","rain":"20","max":"32","id":"987","point":"沖縄県与那国島地方","min":"28"}]};
 	this.selectedId;		//	選択されたID
 	this.displayDay = "";	//	今日/明日
 	this.point = {};		//	id => 詳細地域
 	this.weather = {};		//	id => 天気
 	this.max = {};			//	id => 最高気温
 	this.min = {};			//	id => 最低気温
 	this.rain = {};			//	降水確率
 	//	データのパース
 	this.parse();
 };
 
 //	Jsonから要素を抽出
 Weather.prototype.parse = function(){
 	this.displayDay = this.data["DisplayDay"];
 	for (var i = 0;i < this.data["WeatherData"].length;i++){
 		var id = this.data["WeatherData"][i]["id"].toString();
 		this.point[id] = this.data["WeatherData"][i]["point"];
 		this.weather[id] = this.data["WeatherData"][i]["weather"];
		this.max[id] = this.data["WeatherData"][i]["max"];
		var min = this.data["WeatherData"][i]["min"];
		if (min){
			this.min[id] = min;
		}else{
			this.min[id] = "-";
		}
		this.rain[id] = this.data["WeatherData"][i]["rain"];
 	}	
 }
 //	都道府県を選択した場合の処理
 Weather.prototype.selectTodofuken = function(todofuken){
 	if (todofuken == ""){
 		$("#pointSelect").selectOptions("");
 		return false;
 	}
	if (todofuken == "北海道"){
		todofuken = "道";
	}
 	$("#pointSelect").removeOption(/./);
 	var ids = [];
 	var options = {};
 	var points = this.point;
	for (var id in points){
 		if (points[id].indexOf(todofuken) == 0){
			ids.push(id);
			var point = points[id];
			if (todofuken != "道"){
				point = point.replace(todofuken,"");
			}
 			options[id] = point;
 		}
 	}
 	$("#pointSelect").addOption(options, false);
 		
// 	this.selectPoint(ids[0]);
 }
 //	地域を選択した場合の処理
 Weather.prototype.selectPoint = function(id){ 	
 	//	地域名を表示
 	var todofuken = $("#todofukenSelect").children("option[@selected]").val();
 	var areaName = todofuken;
 	areaName += "&nbsp;";
 	areaName += this.point[id].replace(todofuken, "");
 	$("#homeWeather").find('dt').html(areaName);
 	//	天気文言を表示
 	var word = this.weather[id];
 	word += "&nbsp;";
 	
 	$("#homeWeather").find('dd').html(word + "&nbsp;");
 	$("#homeWeather").find('dd').append('<span>' + this.rain[id] + '%</span>');
 	$("#homeWeather").find('dd').append('<span class="highs">' + this.max[id] + '℃</span>/');
 	$("#homeWeather").find('dd').append('<span class="lows">' + this.min[id] + '℃</span>');
 	
 	this.putImage(id);
 }
 //	天気アイコンを表示 -> クラスの追加に変更
 Weather.prototype.putImage = function(id){
 	
 	var word = {"晴":"hare",
 	            "雨":"ame",
 	            "雪":"yuki",
 	            "曇":"kumori",
 	            "霧":"kumori"
 	            };
  	var w_array = [];
  	var idx = [];
  	var count = 0;
  	for (var key in word){
  		if (this.weather[id].indexOf(key) >= 0){
  			w_array[count] = word[key];
  			idx[count] = this.weather[id].indexOf(key);
  			count++;
  		}
  	}
  	var con = "-";
  	if (this.weather[id].indexOf("時々") >= 0 ){
  		con = "-";
  	}else{
  		con = "_";
  	}
  	
  	if (idx[0] > idx[1]){
  		var temp = w_array[0];
  		w_array[0] = w_array[1];
  		w_array[1] = temp;
  	}
  	
 	var imgName;
 	if (count == 1){
 		imgName = w_array[0];
 	}else{
 		imgName = w_array[0] + con + w_array[1];
 	}
 	$("#homeWeather").find('dl').attr("class", imgName);

 	
 }
 //	表示を消す
 Weather.prototype.removeDisplay = function(){
 	$("#homeWeather").find('dl').attr("class", "");
 	
 }

 //		 
 //	DOMを読み終わったら行う処理
 //		 
 $(document).ready(function(){
 //
 //	main
 //
 var weather = new Weather;

// 		$.ajax({type: "get",
// 			     url: "js/weather/weatherData.js",
// 	    		 async: false,
// 	    		 beforeSend : function(req){
//					// 独自リクエストヘッダーをセット
// 	    			var nowDateTime = new Date();
//					req.setRequestHeader("If-Modified-Since", nowDateTime.toString());
//											},
// 				 success: function(json){ weather.data = eval("(" + json + ")");
// 		 								   weather.parse();
// 		 								  }					  			  
// 		 		});
	
 	
 
 	//	今日の天気か明日の天気か
 	$("#homeWeather")
 		.find('h2')
 			.find('> a').text(weather.displayDay + "の天気");

 	
 	//	都道府県selectタグを変更したときのイベント設定
 	$("#todofukenSelect").change(function()
 	{
 		weather.selectTodofuken($(this).children("option[@selected]").val());
 	});
 	
 	//	地域selectタグを変更したときのイベント設定
// 	$("#pointSelect").change(function()
// 	{	
// 		weather.selectPoint($(this).children("option[@selected]").val());
// 	});
 	
 	//	設定ボタンを押したときのイベント設定
 	$("#weatherSet").click(function()
 	{
 		var todofuken = $("#todofukenSelect").children("option[@selected]").val();
 		var point = $("#pointSelect").children("option[@selected]").val();
 		mySetCookie("weatherTodofuken", todofuken, COKKIE_DAYS);
 		mySetCookie("weatherPoint", point, COKKIE_DAYS);
 		
 		weather.selectPoint(point);
 		return false;
 	});
 	
	//	クッキー関連
	var todofuken = myGetCookie("weatherTodofuken");
 	var point = myGetCookie("weatherPoint")
 	if (todofuken && point){
 		$("#todofukenSelect").selectOptions(todofuken);
 		weather.selectTodofuken(todofuken);
 		$("#pointSelect").selectOptions(point);
 		weather.selectPoint(point);
 	}else{ 		
 		weather.selectPoint("361");
 	}	
	return false; 	
 })
 
 
/*        クッキーに登録する汎用関数              */
/* 書式 : mySetCookie(クッキー名,値,有効期限日数) */
/* 戻り値 : なし(void)                            */
function mySetCookie(myCookie,myValue,myDay){
   myExp = new Date();
   myExp.setTime(myExp.getTime()+(myDay*24*60*60*1000));
   myItem = "@" + myCookie + "=" + escape(myValue) + ";";
   myExpires = "expires="+myExp.toGMTString();
   document.cookie =  myItem + myExpires;
}

/*        クッキーを取り込む汎用関数              */
/* 書式 : myGetCookie(クッキー名)                 */
/* 戻り値 : 値(string)  null:該当なし             */
function myGetCookie(myCookie){
   myCookie = "@" + myCookie + "=";
   myValue = null;
   myStr = document.cookie + ";" ;
   myOfst = myStr.indexOf(myCookie);
   if (myOfst != -1){
      myStart = myOfst + myCookie.length;
      myEnd   = myStr.indexOf(";" , myStart);
      myValue = unescape(myStr.substring(myStart,myEnd));
   }
   return myValue;
}