var weatherData = new Array(5);
var weatherWeekley = new Array(5);
var weatherOption = new Array(5);
var weatherWeek = ['日','月','火','水','木','金','土'];
var weatherAreaUrl = {
		'base' : 'http://feeds.feedburner.com/hitokuchi_',
		'area' : [4510,4310,4210,5040,8230,8110]
	}
var weatherXML = null;


function weatherAreaInfo(areaId) {
	var url = "http://svs.weathermap.co.jp/0037/0037_yohou.xml";
	var crossXML = "http://svs.weathermap.co.jp/crossdomain.xml";
	var req = new CrossDomainXMLHttpRequest();
	if (weatherXML == null) {
		CrossDomainXMLHttpRequest.addPolicyFile(crossXML);
		//req.setRequestHeader('If-Modified-Since', 'Wed, 15 Nov 1995 00:00:00 GMT');
		
		req.onreadystatechange = function(){
			if (req.readyState == 4) {
				weatherXML = createXMLDocument(req.responseText);
				weatherAnalyzer(weatherXML);
				weatherRenderAreaInfo(areaId);
			}
		};
		req.send('');
		req.open('GET', url, true);
	}
	else {
		weatherRenderAreaInfo(areaId);
	}	
}


function weather(areaId){
	var ua = $.browser;

	
	var url = "http://svs.weathermap.co.jp/0037/0037_yohou.xml";
	var crossXML = "http://svs.weathermap.co.jp/crossdomain.xml";
	var req = new CrossDomainXMLHttpRequest();
	if (weatherXML == null) {
		CrossDomainXMLHttpRequest.addPolicyFile(crossXML);
		//req.setRequestHeader('If-Modified-Since', 'Wed, 15 Nov 1995 00:00:00 GMT');
		
		req.onreadystatechange = function(){
			if (req.readyState == 4) {
				weatherXML = createXMLDocument(req.responseText);
				weatherAnalyzer(weatherXML);
				weatherRender(areaId);
			}
		};
		req.send('');
		req.open('GET', url, true);
	}
	else {
		weatherRender(areaId);
	}
}
function createXMLDocument(string){
	var browserName = navigator.appName;
	var doc;
	if (browserName == 'Microsoft Internet Explorer') {
		doc = new ActiveXObject('Microsoft.XMLDOM');
		doc.async = 'false'
		doc.loadXML(string);
	} else {
		doc = (new DOMParser()).parseFromString(string, 'text/xml');
	}
	return doc;
}

function weatherAnalyzer(xml) {
	var area;
	var nowDate = new Date();
	var nowDateString = ( nowDate.getMonth() + 1 ) + "/" + nowDate.getDate();
	var areaId = 0;
	
	$(xml).find('forecast').each(function(){
		area = $(this).find("area").find("prefecture").text();
		
		switch(area) {
			case "千葉県":
				areaId = 0;
				break;
			case "埼玉県" :
				areaId = 1;
				break;
			case "群馬県" :
				areaId = 2;
				break;
			case "静岡県" :
				areaId = 3;
				break;
			case "福岡県" :
				areaId = 4;
				break;
			case "山口県" :
				areaId = 5;
				break;
		}
		
		//XMLの更新日取得
		var area = $(this).find('area');
		weatherOption[areaId] = {
			"update" : $(this).attr('announce'),
			"pref"   : $(area).find('prefecture').text(),
			"region" : $(area).find('region').text(),
			"city"   : $(area).find('city').text()
		};
		
		//週間天気のパース
		var weekley = new Array(); 
	
		$(this).find('content').each(function(){
			var date = $(this).attr('date');
			var tmpDate = date.split('/');
			tmpDate[1] = parseInt(tmpDate[1]);
		
			
			if (date == nowDateString) {
				weatherData[areaId] = {
					"text": $(this).find('weather').text(),
					"code": $(this).find("weather").attr('code')
				}
			}
			//降水確率	
			var rainfall = [];
			$(this).find('rainfall').children().each(function(){
				if (typeof($(this).attr('hour')) == 'undefined') {
					rainfall.push({
						'time' : 'none',
						'text' : $(this).text()
					});
				}
				else if ($(this).attr('hour') != '00-06') {
					rainfall.push({
						'time' : $(this).attr('hour'),
						'text' : $(this).text()
					});
				}
			});
				
			weekley.push({
				"date": date,
				"text": $(this).find('weather').text(),
				"code": $(this).find("weather").attr('code'),
				"temp": {
					'max': $(this).find('temperature').find('max').text(),
					'min': $(this).find('temperature').find('min').text()
				},
				"rainfall": rainfall
			});
		
		});
		weatherWeekley[areaId] = weekley;
	});
}

function weatherRender(areaId) {
	
	var imgpath = "/images/tenki/";
	var filename = imgpath + "icon" + weatherData[areaId].code + ".gif";
	var link = [
		"http://weathernews.jp/pinpoint/cgi/search_result.fcgi?service=4&name=%E8%88%B9%E6%A9%8B%E3%82%AA%E3%83%BC%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B9%E5%A0%B4%28%E8%88%B9%E6%A9%8B%E5%B8%82%29&lat=35.67745&lon=139.993073&pref=45&num=12",
		"http://weathernews.jp/pinpoint/cgi/search_result.fcgi?service=4&name=%E5%B7%9D%E5%8F%A3%E3%82%AA%E3%83%BC%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B9%E5%A0%B4%28%E5%B7%9D%E5%8F%A3%E5%B8%82%29&lat=35.8162461&lon=139.7279611&pref=43&num=11",
		"http://weathernews.jp/pinpoint/cgi/search_result.fcgi?service=4&name=%E4%BC%8A%E5%8B%A2%E5%B4%8E%E3%82%AA%E3%83%BC%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B9%E5%A0%B4%28%E4%BC%8A%E5%8B%A2%E5%B4%8E%E5%B8%82%29&lat=36.332933&lon=139.167458&pref=42&num=10",
		"http://weathernews.jp/pinpoint/cgi/search_result.fcgi?service=4&name=%E6%B5%9C%E6%9D%BE%E3%82%AA%E3%83%BC%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B9%E5%A0%B4&lat=34.7342569&lon=137.7077638&pref=50&num=22",
		"http://weathernews.jp/pinpoint/cgi/search_result.fcgi?service=4&name=%E9%A3%AF%E5%A1%9A%E3%82%AA%E3%83%BC%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B9%E5%A0%B4%28%E9%A3%AF%E5%A1%9A%E5%B8%82%29&lat=33.6497469&lon=130.710888&pref=82&num=40",
		"http://weathernews.jp/pinpoint/cgi/search_result.fcgi?service=4&name=%E5%B1%B1%E9%99%BD%E3%82%AA%E3%83%BC%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B9%E5%A0%B4%28%E5%B1%B1%E9%99%BD%E5%B0%8F%E9%87%8E%E7%94%B0%E5%B8%82%29&lat=34.0442411&lon=131.087185&pref=81&num=35"
	];
	
	$(".weatherBox img").attr('src',filename);
	$(".weatherBox img").attr('alt',weatherData[areaId].text);
	$(".weatherBox p").text(weatherData[areaId].text);
	$(".weatherBox img").attr('src',filename);
	
	$(".weatherBox img").css("cursor","pointer"); 
	$(".weatherBox a").click(function(){
		//$(this).attr('href', link[areaId]);
		$(this).attr('href', weatherAreaUrl.base + weatherAreaUrl.area[areaId]);
		$(this).attr('target', '_blank');
	});
	
	
	//週間天気
	var weekNowDate = new Date();
	$('.weekWeather5').css('display','none');
	
	var dateArray = weatherOption[areaId].update.split(' ');
	var date = dateArray[0].split('-');
	var time = dateArray[1].split(':');
	$('.weekWeather5 > h6').text(date[0] + "年" + date[1] + "月" + date[2] + "日 " + time[0] + ":" + time[1]);
	$('.weekWeather5 > h5').text(weatherOption[areaId].pref + weatherOption[areaId].region + "（"+ weatherOption[areaId].city + "）の週間天気" );
	
	var roop = weatherWeekley[areaId].length;
	--roop;
	if (roop > 5) {
		roop =  5;
	}

	for(var i = 0; i < roop; i++){
		var week = weatherWeekley[areaId][i];
		var index = i + 1;
		//日付の処理
		if (i == 0) {
			//開始日をセットする
			var dateArray = week.date.split('/');
			dateArray[0] = parseInt(dateArray[0]) - 1;
			dateArray[1] = parseInt(dateArray[1]);
			weekNowDate.setMonth(dateArray[0]);
			weekNowDate.setDate(dateArray[1]);
		}else {
			weekNowDate.addDays(1);
		}


		var dateString = week.date + "(" + weatherWeek[weekNowDate.getDay()] + ")";
		$('.jsWeekDate > th').eq(index).text(dateString);
		$('.jsWeekWeather > td').eq(index).html('<a href="' + weatherAreaUrl.base + weatherAreaUrl.area[areaId] + '" target="_blank"><img src="/images/tenki/icon' + week.code + '.gif" alt="' + week.text + '" /></a>');
		$('.jsWeekTemp > td').eq(index+1).children('.txt_r').html(week.temp.max + '&deg;C');
		$('.jsWeekTemp > td').eq(index+1).children('.txt_b').html(week.temp.min + '&deg;C');
		
		var rainTxt = "";
		var rainDateArray = [
				'--','--','--'
			]
		var rainDateFlag = false;
		for (var j = 0; j < week.rainfall.length; j++) {
			if (week.rainfall[j].time != 'none'){
				rainDateFlag = true;
				switch(week.rainfall[j].time) {
					case "06-12" :
						rainDateArray[0] = week.rainfall[j].text + "%";
						break;
					case "12-18" :
						rainDateArray[1] = week.rainfall[j].text + "%";
						break;
					case "18-00" :
						rainDateArray[2] = week.rainfall[j].text + "%";
						break;
				}
			}else {
				rainTxt += week.rainfall[j].text + "%";
			}
		}
		
		if (rainDateFlag) {
			rainTxt = rainDateArray.join("<br />");
		}
		
		var rein = $(' .jsWeekRainfall > td').eq(index + 1).html(rainTxt);
		
		
		var a = "b";
	}
//	$('.weekWeather5 > table >')
	
	
	$('.weatherBox').hover(function(){
		$('.weekWeather5').css('display','block');
		$('.weekWeather5').mouseover(function(){
			$('.weekWeather5').css('display','block');
		});
		$('.weekWeather5').mouseout(function(){
			$('.weekWeather5').css('display','none');
		});
	},function(){
		$('.weekWeather5').css('display','none');
	});
	
}

function weatherRenderAreaInfo(areaId){
	
	var imgpath = "/images/tenki/";
	var filename = imgpath + "icon" + weatherData[areaId].code + ".gif";
	var link = [
		"http://weathernews.jp/pinpoint/cgi/search_result.fcgi?service=4&name=%E8%88%B9%E6%A9%8B%E3%82%AA%E3%83%BC%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B9%E5%A0%B4%28%E8%88%B9%E6%A9%8B%E5%B8%82%29&lat=35.67745&lon=139.993073&pref=45&num=12",
		"http://weathernews.jp/pinpoint/cgi/search_result.fcgi?service=4&name=%E5%B7%9D%E5%8F%A3%E3%82%AA%E3%83%BC%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B9%E5%A0%B4%28%E5%B7%9D%E5%8F%A3%E5%B8%82%29&lat=35.8162461&lon=139.7279611&pref=43&num=11",
		"http://weathernews.jp/pinpoint/cgi/search_result.fcgi?service=4&name=%E4%BC%8A%E5%8B%A2%E5%B4%8E%E3%82%AA%E3%83%BC%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B9%E5%A0%B4%28%E4%BC%8A%E5%8B%A2%E5%B4%8E%E5%B8%82%29&lat=36.332933&lon=139.167458&pref=42&num=10",
		"http://weathernews.jp/pinpoint/cgi/search_result.fcgi?service=4&name=%E6%B5%9C%E6%9D%BE%E3%82%AA%E3%83%BC%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B9%E5%A0%B4&lat=34.7342569&lon=137.7077638&pref=50&num=22",
		"http://weathernews.jp/pinpoint/cgi/search_result.fcgi?service=4&name=%E9%A3%AF%E5%A1%9A%E3%82%AA%E3%83%BC%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B9%E5%A0%B4%28%E9%A3%AF%E5%A1%9A%E5%B8%82%29&lat=33.6497469&lon=130.710888&pref=82&num=40",
		"http://weathernews.jp/pinpoint/cgi/search_result.fcgi?service=4&name=%E5%B1%B1%E9%99%BD%E3%82%AA%E3%83%BC%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B9%E5%A0%B4%28%E5%B1%B1%E9%99%BD%E5%B0%8F%E9%87%8E%E7%94%B0%E5%B8%82%29&lat=34.0442411&lon=131.087185&pref=81&num=35"
	];
	
	$(".weatherBox img").attr('src',filename);
	$(".weatherBox img").attr('alt',weatherData[areaId].text);
	$(".weatherBox p").text(weatherData[areaId].text);
	$(".weatherBox img").attr('src',filename);
	
	$(".weatherBox img").css("cursor","pointer"); 
	$(".weatherBox a").click(function(){
		//$(this).attr('href', link[areaId]);
		$(this).attr('href',weatherAreaUrl.base + weatherAreaUrl.area[areaId]);
		$(this).attr('target', '_blank');
	});
	
	
	//週間天気
	var weekNowDate = new Date();
	$('.weekWeather').css('display','none');
	
	var dateArray = weatherOption[areaId].update.split(' ');
	var date = dateArray[0].split('-');
	var time = dateArray[1].split(':');
	$('.weekWeather > h6').text(date[0] + "年" + date[1] + "月" + date[2] + "日 " + time[0] + ":" + time[1]);
	$('.weekWeather > h5').text(weatherOption[areaId].pref + weatherOption[areaId].region + "（"+ weatherOption[areaId].city + "）の週間天気" );
	
	var roop = weatherWeekley[areaId].length;
	--roop;
	if (roop > 7) {
		roop =  7;
	}

	for(var i = 0; i < roop; i++){
		var week = weatherWeekley[areaId][i];
		var index = i + 1;
		//日付の処理
		if (i == 0) {
			//開始日をセットする
			var dateArray = week.date.split('/');
			dateArray[0] = parseInt(dateArray[0]) - 1;
			dateArray[1] = parseInt(dateArray[1]);
			weekNowDate.setMonth(dateArray[0]);
			weekNowDate.setDate(dateArray[1]);
		}else {
			weekNowDate.addDays(1);
		}


		var dateString = week.date + "(" + weatherWeek[weekNowDate.getDay()] + ")";
		$('.jsWeekDate > th').eq(index).text(dateString);
		$('.jsWeekWeather > td').eq(index).html('<a href="' + weatherAreaUrl.base + weatherAreaUrl.area[areaId] + '" target="_blank"><img src="/images/tenki/icon' + week.code + '.gif" alt="' + week.text + '" />');
		$('.jsWeekTemp > td').eq(index).children('.txt_r').html(week.temp.max + '&deg;C');
		$('.jsWeekTemp > td').eq(index).children('.txt_b').html(week.temp.min + '&deg;C');
		
		var rainTxt = "";
		var rainDateArray = [
				'--','--','--'
			]
		var rainDateFlag = false;
		for (var j = 0; j < week.rainfall.length; j++) {
			if (week.rainfall[j].time != 'none'){
				rainDateFlag = true;
				switch(week.rainfall[j].time) {
					case "06-12" :
						rainDateArray[0] = week.rainfall[j].text + "%";
						break;
					case "12-18" :
						rainDateArray[1] = week.rainfall[j].text + "%";
						break;
					case "18-00" :
						rainDateArray[2] = week.rainfall[j].text + "%";
						break;
				}
			}else {
				rainTxt += week.rainfall[j].text + "%";
			}
		}
		
		if (rainDateFlag) {
			rainTxt = rainDateArray.join("<br />");
		}
		
		var rein = $(' .jsWeekRainfall > td').eq(index).html(rainTxt);
		
		
		var a = "b";
	}
//	$('.weekWeather5 > table >')
	
	
	$('.weatherBox').hover(function(){
		$('.weekWeather').css('display','block');
		$('.weekWeather').mouseover(function(){
			$('.weekWeather').css('display','block');
		});
		$('.weekWeather').mouseout(function(){
			$('.weekWeather').css('display','none');
		});
	},function(){
		$('.weekWeather').css('display','none');
	});
}


function createXMLDocument(string){
	var browserName = navigator.appName;
	var doc;
	if (browserName == 'Microsoft Internet Explorer') {
		doc = new ActiveXObject('Microsoft.XMLDOM');
		doc.async = 'false'
		doc.loadXML(string);
	} else {
		doc = (new DOMParser()).parseFromString(string, 'text/xml');
	}
	return doc;
}
