//------------------------------------------------
// @T COM TOP PAGE Scripting
// [Ver.1.10] 2008/09/01 S.Kojima
//------------------------------------------------
//***** グローバル変数 *****
var site_domain = "www.t-com.ne.jp";				// Cookie保存先のドメイン[本番]
//var site_domain = "sip2.victokai.co.jp";		// Cookie保存先のドメイン
var weather_key = "_VicWP";									// Cookie Keyword (Weather)

//***** ブラウザ情報判定 *****
function uac(n){ return navigator.userAgent.indexOf(n)>=0; }
var ua_type = 0;
if(document.getElementById){
	ua_type = 1;
	if(uac("Opera 7")||uac("Opera/7")||uac("Opera 5")||uac("Opera 6")) ua_type = 1;
	else if(uac("MSIE 5.5")||uac("Opera/8")||uac("Opera 8")) ua_type = 1.5;
	else if((uac("Mac") && uac("MSIE"))||uac("Opera 3")||uac("Opera 4")) ua_type = 0;
	else if(uac("MSIE 5.")) ua_type = 1;
	else if(uac("MSIE 7")||uac("MSIE 6")||uac("Firefox")||uac("Safari")||uac("Netscape/")||uac("Opera/9")) ua_type = 2;
	else if(uac("MSIE")||uac("Opera")) ua_type = 2;
}

/***** XMLHttpRequest Object *****/
function createHttpRequest(){
	//Win ie7以上、ie以外のブラウザ
	if(window.XMLHttpRequest){
		return new XMLHttpRequest();
	//Win ie6以下
	} else if(window.ActiveXObject){
		try {
			//MSXML2以降用
			return new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				//旧MSXML用
				return new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e2) {
				return null;
			}
		}
	} else {
		return null;
	}
}

//***** COOKIE操作3点SET *****
function getCookieValue(key) { 
	tmpCookie = document.cookie + ";";
	var pos = tmpCookie.indexOf(key);
	var area = "";
	if (pos != -1){
		if (tmpCookie.indexOf("=", pos) != -1){		// IEの空文字対処
			pos = pos + 1;
		}
		end = tmpCookie.indexOf(";", pos);
		area = unescape(tmpCookie.substring(pos + key.length, end));
	}
	return(area);
}
function setCookieValue(key, val) { 
	Term = new Date();
	Term.setTime(Term.getTime() + 31536000000);
	document.cookie = key + "=" + escape(val) + "; path=/" + "; expires=" + Term.toGMTString() + "; domain=" + site_domain + ";";
}
function clearCookieValue(key){
	// 既に保存されている場合は有効期限を過去日にする
	tmpCookie = document.cookie + ";";
	if (tmpCookie.indexOf(key) != -1){
		document.cookie = key + "=" + "; expires=1-Jan-1990 00:00:00; domain=" + site_domain + ";";
	}
}

//***** パネル開閉3点SET *****
function weather_setting(){
	if(document.getElementById("panel_flg").value == "0"){
		cpg.closeAllPanels();
		cpg.openPanel(0);
		document.getElementById("panel_flg").value = "1";	// Panel ON
	}else{
		cpg.closeAllPanels();
		document.getElementById("panel_flg").value = "0";	// Panel OFF
	}
	return false;
}

function my_area_panel(){
	cpg.closePanel(0);
	cpg.openPanel(1);
	document.getElementById("panel_flg").value = "1";	// Panel ON
	return false;
}

function panel_close(){
	cpg.closeAllPanels();
	document.getElementById("panel_flg").value = "0";	// Panel OFF
	return false;
}

//***** 天気予報エリア初期化 ***** ※初期表示も通ります。
function weather_init(kbn){
	if(ua_type == false){ return false; }

	if(uac("Safari")||uac("Chrome")){
		if(kbn != "0"){ return false; }
	}else{
		if(kbn == "0"){ return false; }
	}

	// ①｢キャンセル｣ボタン
	document.getElementById("set_weather_1").onreset = function(){
		cpg.closeAllPanels();
		document.getElementById("panel_flg").value = "0";	// Panel OFF
		return false;
	}

	// ②｢キャンセル｣ボタン
	document.getElementById("set_weather_2").onreset = function(){
		cpg.closeAllPanels();
		document.getElementById("panel_flg").value = "0";	// Panel OFF
		return false;
	}
	execute('1');		// Cookie値で初期化
}

//***** 地域情報取得CGI *****
function execute(kbn) { 
	var id = "";
	if( kbn == "1" ){
		// COOKIE値を取得
		id = getCookieValue(weather_key);
	}else{
		var obj = document.getElementsByName("weather2");
		for(var i = 0; i < obj.length; i++){
			if ( obj[i].checked ){
				id = obj[i].value;
				break;
			}
		}
	}

	// 地域が未設定なら処理を抜ける
	if( id == "" ){
		return false;
	}

	/* Make XMLHttpRequest Object */
	var obj = createHttpRequest();
	if (obj == null) {
		window.alert("XMLHttpRequest非対応のブラウザです。");
	}

	/* Call Back Method */
	obj.onreadystatechange = handleHttpEvent;

	/* Call Back Method : handleHttpEvent */
	function handleHttpEvent(){
		if (obj.readyState == 4) {
			if (obj.status == 200) {
				response_write(obj.responseText);
			} else {
				//window.alert("通信エラーが発生しました。");
			}
		}
	}

	/* HttpRequest Execute(CGI) */
	var req_url = "/cgi-bin/weather/spot_weather.cgi?area_id=" + id;
	obj.open("GET", req_url, true);
	obj.send(null);

	if(kbn == "2" && id != ""){
		// COOKIEを保存
		setCookieValue(weather_key, id);
	}
}

function response_write(text){
	var wurl = "http://www.t-com.ne.jp/weather/";
	with(window.document){

	getElementById('spot_weather').innerHTML = text; 

	getElementById('my_area').innerHTML = 
		'<a href="' + wurl + 'area/' + getElementById("page_name").value + '" title="【' + getElementById("area_name").value + 
		'】">【' + getElementById("area_name").value + '】</a>';

	getElementById('now_weather').innerHTML = 
		'<img src="' + wurl + 'icon_images/' + getElementById("today_image").value + 
		'" width="61" height="25" alt="' + getElementById("today_forecast").value + '" />';

	getElementById('now_temp').innerHTML = 
		'<a href="' + wurl + 'area/' + getElementById("page_name").value + '"><span class="temp-name">' + getElementById("today_forecast").value + 
		'</span></a><br />最高 <span class="temp-high">' + getElementById("today_hightemp").value + 
		'℃</span> / 最低 <span class="temp-low">' + getElementById("today_lowtemp").value + 
		'℃</span><br />';

	getElementById('next_weather').innerHTML = 
		'<img src="' + wurl + 'icon_images/' + getElementById("tomorrow_image").value + 
		'" width="61" height="25" alt="' + getElementById("tomorrow_forecast").value + '" />';

	getElementById('next_temp').innerHTML = 
		'<a href="' + wurl + 'area/' + getElementById("page_name").value + '"><span class="temp-name">' + getElementById("tomorrow_forecast").value + 
		'</span></a><br />最高 <span class="temp-high">' + getElementById("tomorrow_hightemp").value + 
		'℃</span> / 最低 <span class="temp-low">' + getElementById("tomorrow_lowtemp").value + 
		'℃</span><br />';
	}
}

//***** パネル情報取得 *****
function panel_change(kbn) { 
	var req_txt = "";
	var page_id = "";
	var obj = document.getElementsByName("weather1");
	for(var i = 0; i < obj.length; i++){
		if ( obj[i].checked ){
			page_id = obj[i].value;
			break;
		}
	}

	/* Make XMLHttpRequest Object */
	var obj = createHttpRequest();
	if (obj == null) {
		window.alert("XMLHttpRequest非対応のブラウザです。");
	}

	/* Call Back Method */
	obj.onreadystatechange = handleHttpEvent;

	/* Call Back Method : handleHttpEvent */
	function handleHttpEvent(){
		if (obj.readyState == 4) {
			if (obj.status == 200) {
				document.getElementById('change_area').innerHTML = obj.responseText;
				my_area_panel();	// パネル切替え
			} else {
				//window.alert("通信エラーが発生しました。");
			}
		}
	}

	/* HttpRequest Execute(Text) */
	if (kbn == "1") { req_txt = "../"; }
	else if (kbn == "2") { req_txt = "../../"; }
	req_txt = req_txt  + "top_data/weather_" + page_id + ".txt";
	obj.open("GET", req_txt, true);
	obj.send(null);
	return false;
}

