/*
 * 	お天気ページ
 * 	@Hayato Chiba
 * 
 * 	weatherMain.js
 * 	use	Ext-2.0.1
 * 	use jQuery 1.2.1
 * 
 */
 
 //	定数
 var GOOGLE_URL="http://maps.google.com/maps?file=api&amp;v=2&amp;key=";
 var GOOGLE_VIRTUAL_KEY = "ABQIAAAAd3JqoQkkiex6CZmk7ReOUBRPLB34IlPcsbkgxEC7xb8HX6iK7xRdMWnckkZmxIWHKDcLb-vtfx3Bow";
 var GOOGLE_REAL_KEY = "ABQIAAAA-K8KwRBcPiSMQVka0B1I9RS-QD0O-tkgcTb4iDLSPfynfPuxsRRvJoUzNsuVKfevkOXD8P01iq1TDg";
 
 var ELEVEN_AREA_ID = ["131", "241", "411", "361", "542", "631", "742", "811", "914", "971", "982"];
 var ELEVEN_AREA_NAME = ["札幌", "仙台", "新潟", "東京", "名古屋", "大阪", "広島", "高松", "福岡", "鹿児島", "那覇"];
 var ELEVEN_AREA_LATLNG = {"131": [4318, 14139], 
 						    "241": [3826, 14090],
 						    "411": [3790, 13908],
 						    "361": [3567, 13977],
 						    "542": [3515, 13697],
 						    "631": [3467, 13547],
 						    "742": [3442, 13253],
 						    "811": [3434, 13406],
 						    "914": [3360, 13042],
 						    "971": [3162, 13050],
 						    "982": [2623, 12784]
 						　};
 var ELEVEN_LARGE_AREA = ["hokkaido", "tohoku", "koushin", "kanto", "tokai", "kinki", "chugoku", "shikoku", "kyushu", "kyushu", "kyushu"];						
 //	TOPページのお姉ちゃんの数
 var TOP_GIRLS_COUNT = 8;						
 //	日付定数						   
 var TODAY = 0;
 var TOMORROW = 1;
 var AFTER_TOMORROW = 2;
 //	アイコンサイズ
 var ICON_X = 40;
 var ICON_Y = 40;
 
 //	現在表示している日(デフォルト：今日）
 var day_now = TODAY; 
 
 var nowGirl;
 var map;
 
 //
 //	googlemapsのキーを動的に選択
 //
 var key = "";
 if (window.location.href.indexOf("nikkansports.com") >= 0){
 	key = GOOGLE_REAL_KEY;
 }
 if (window.location.href.indexOf("814356.com") >= 0){
 	key = GOOGLE_VIRTUAL_KEY;
 }
 var src =  '<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=' + 
			key + 
			'" type="text/javascript" charset="utf-8"></script>';
 //	書き込む
 document.write(src);
 
 //
 //	DOM生成後に呼び出す
 //	
 $(document).ready(function(){
	//
 	//	イベント登録
 	//	 	
 	
 	if (!GBrowserIsCompatible()) {
      	document.write("このブラウザには対応しておりません。");
		return false;
	}
	
	map = new GMap2(document.getElementById("gmaps"));
//	map.disableDragging();
	map.setCenter(new GLatLng(35.674169, 136.862834), 4);
	
	//	各クラスのインスタンス化
	var dataManager = new DataManager();
	var showIcons = new ShowIcons(dataManager);
	var menuTools = new MenuTools(dataManager);
	
	//	7時前で明後日が表示出来ないときは
	//	"あさって"tabを表示しない
	//	それ以外は全表示
	if (dataManager.isBefore07()){
		$("#tab1").attr({"src" : "/img/gm-tab01-on.jpg", "alt" : "きょう", "width" : "67", "height" : "26"});
		$("#tab2").attr({"src" : "/img/gm-tab02-off.jpg", "alt" : "あす", "width" : "67", "height" : "26"});
		$('#tab3').attr({"src" : "/img/gm-tab03-off.jpg", "alt" : "あさって", "width" : "75", "height" : "26"});
	}else{
		$("#tab1").attr({"src" : "/img/gm-tab01-on.jpg", "alt" : "きょう", "width" : "67", "height" : "26"});
		$("#tab2").attr({"src" : "/img/gm-tab02-off.jpg", "alt" : "あす", "width" : "67", "height" : "26"});
		$('#tab3').remove();
	}
	//
	//	画像にイベント設定
	//
	$('#girlsImage').click(function(){ 
		displayGirl(true);
	});
	
	//
	//	タブにイベント設定
	//
	$('#tab1').click(function(){
		$("#tab1").attr("src","/img/gm-tab01-on.jpg");
		$("#tab2").attr("src","/img/gm-tab02-off.jpg");
		$("#tab3").attr("src","/img/gm-tab03-off.jpg");
		showIcons.showWeather(TODAY);
		displayGirl(true);
	});
	$('#tab2').click(function(){
		$("#tab1").attr("src","/img/gm-tab01-off.jpg");
		$("#tab2").attr("src","/img/gm-tab02-on.jpg");
		$("#tab3").attr("src","/img/gm-tab03-off.jpg");
		showIcons.showWeather(TOMORROW);
		displayGirl(true);
	});
	$('#tab3').click(function(){
		$("#tab1").attr("src","/img/gm-tab01-off.jpg");
		$("#tab2").attr("src","/img/gm-tab02-off.jpg");
		$("#tab3").attr("src","/img/gm-tab03-on.jpg");
		showIcons.showWeather(AFTER_TOMORROW);
		displayGirl(true);
	});
	$('#menuLargeArea').change(function(){
		menuTools.selectLargeArea($(this).children("option[@selected]").val());
	});
	
		displayGirl(false);
	
	//	初期の地域で小地域を表示
 	$("#menuLargeArea").selectOptions("東京都");	
	menuTools.selectLargeArea("東京都");

	//
 	//	イベント登録
 	//	 	
	$("#registArea").click(function(){
		var id = $("#menuSmallArea").children("option[@selected]").val();		
		var url = dataManager.getLinkURL(id);
		location.href = url;
		return false;
	});
	
	showIcons.showWeather(TODAY);
	//	更新日時を更新
	showIcons.showDateTime();
	
 });
 
 //
 //	TOPのお姉ちゃんを選択表示
 //
 function displayGirl(mode){
	var rand = Math.floor( Math.random() * TOP_GIRLS_COUNT) + 1;
	rand = sprintf("%02d", rand);
   	var imgName = "/img/otenki-girl_" + rand + ".jpg";   	
	$("#girlsImage").attr("src", imgName);
 		
	//
	//	実験！ページビューは増えるか？？
	//
 	if (mode){
 		$.ajax({type: "get",
 	    url: "/",
 	    async: true,
 	    beforeSend : function(req){
			// 独自リクエストヘッダーをセット
 	    	var nowDateTime = new Date();
			req.setRequestHeader("If-Modified-Since", nowDateTime.toString());
		},
 		success: function(){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;
} 