

$(document).ready(function(){

	$('.tenki').click(function(){
		window.open('http://feeds.feedburner.com/hitokuchi_8230', '_blank');
	}).hover(function(){
		$(this).children('.weekWeather').css('display', 'block');
	}, function(){
		$(this).children('.weekWeather').css('display', 'none');
	});
	
	var todayData;
	var weekData = new Array();
	var weatherWeekley;
	var weatherOption;
	var dayWeek = ['日', '月', '火', '水', '木', '金', '土'];
	var weatherAreaUrl = {
		'base': 'http://feeds.feedburner.com/hitokuchi_',
		'area': [4510, 4310, 4210, 5040, 8230, 8110]
	}
	var weatherXML = null;
	
	var place = "福岡県";
	
	weatherAreaInfo();
	
	function weatherAreaInfo(){
		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);
				}
			};
			req.send('');
			req.open('GET', url, true);
		} else {
			weatherRenderAreaInfo(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 = 4;
		
		$(xml).find('forecast').each(function(){
			area = $(this).find("area").find("prefecture").text();
			if (area == place) {
				//XMLから更新日時と地名を取得
				var ar = $(this).find('area');
				weatherOption = {
					"update": $(this).attr('announce'),
					"pref": $(ar).find('prefecture').text(),
					"region": $(ar).find('region').text(),
					"city": $(ar).find('city').text()
				};
			};
			//週間天気のパース
			$(this).find('content').each(function(i){
				if (area == place) {
					var date = $(this).attr('date');
					var tmpDate = date.split('/');
					tmpDate[1] = parseInt(tmpDate[1]);
					
					if (date == nowDateString) {
						todayData = {
							"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()
							});
						}
					});
					
					weekData.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
					});
				}
			});
		});
		weatherRender();
	}
	function weatherRender(){
		$('.todayIMG').attr('src', '/image/weather/icon' + todayData.code + '.gif');
		$('.todayIMG').attr('alt', todayData.text);
		$('.todayData').html(todayData.text);
		
		/*
		 * 週間天気
		 */
		var weekStartDate = new Date();
		//更新日時
		var dateArray = weatherOption.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.pref + weatherOption.region + "（" + weatherOption.city + "）の週間天気");
		
		//5日間の天気を表示
		var weekDate = new Date();
		var roop = 5
		for (var i = 0; i < roop; i++) {
			var index = i + 1;
			var weekDateArray = weekData[i].date.split('/');
			weekDateArray[0] = parseInt(weekDateArray[0]) - 1;
			weekDateArray[1] = parseInt(weekDateArray[1]);
			weekDate.setMonth(weekDateArray[0]);
			weekDate.setDate(weekDateArray[1]);
			
			//日付
			var thString = weekData[i].date + '（' + dayWeek[weekDate.getDay()] + '）';
			$('.jsWeekDate th:eq(' + index + ')').html(thString);
			//画像
			$('.jsWeekWeather td:eq(' + index + ') img').attr('src', '/image/weather/icon' + weekData[i].code + '.gif');
			//気温
			$('.jsWeekTemp td:eq(' + (index + 1) + ') .txt_r').html(weekData[i].temp.max + '&deg;C');
			$('.jsWeekTemp td:eq(' + (index + 1) + ') .txt_b').html(weekData[i].temp.min + '&deg;C');
			//降水確率
			var rainString = '--';
			var rainArray = ['--', '--', '--'];
			for (var j = 0; j < weekData[i].rainfall.length; j++) {
				if (weekData[i].rainfall[j].time != 'none') {
					switch (weekData[i].rainfall[j].time) {
						case '06-12':
							rainArray[0] = weekData[i].rainfall[j].text + '%';
							break;
						case '12-18':
							rainArray[1] = weekData[i].rainfall[j].text + '%';
							break;
						case '18-00':
							rainArray[2] = weekData[i].rainfall[j].text + '%';
							break;
					}
					rainString = rainArray.join('<br />');
					$('.jsWeekRainfall td:eq(' + (index + 1) + ')').html(rainString);
				} else {
					rainString = weekData[i].rainfall[j].text + '%';
					$('.jsWeekRainfall td:eq(' + (index + 1) + ')').html(rainString);
				}
			}
		}
	}
});

