﻿var xmlHttpForester=createXmlHttpRequestObject();

function createXmlHttpRequestObject()
{
	var xmlHttpForester;

	if(window.ActiveXObject)
	{
		try
		{
			xmlHttpForester=new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(e)
		{
			xmlHttpForester==false;
		}
	}
	else
	{
		try
		{
			xmlHttpForester=new XMLHttpRequest();		
	
		}
		catch (e)
		{
			xmlHttpForester==false;
		}
	}
	if(!xmlHttpForester)
		document.getElementById("error_response_text").innerHTML="error";
	else
		return xmlHttpForester;
}

function process()
{
	if(xmlHttpForester.readyState==4 || xmlHttpForester.readyState==0)
	{
		xmlHttpForester.open("GET", "/js/site/call.php", true);
		xmlHttpForester.onreadystatechange=handleServerResponse;
		xmlHttpForester.send(null);
	}
	else
	setTimeout('process()', 1000);
}

function handleServerResponse()
{
	if(xmlHttpForester.readyState==4)
	{
		if(xmlHttpForester.status==200)
		{
			xmlResponseForester=xmlHttpForester.responseXML;
			xmlDocumentElement=xmlResponseForester.documentElement;
			date(xmlDocumentElement);
		}
		else
		{
			setTimeout('process()', 1000);
		}
	}
}

function date(xmlDocumentElement)
{
	var obj=new Date();
	hours=obj.getHours();
	var day=obj.getDate();
//	alert(day);
	if(hours>6 && hours<=12){var mark=10;}
	if(hours>12 && hours<=18){var mark=16;}
	if(hours>18) {var mark=22;}
	if(hours<=6) {var mark=4;}
	
	forecast=xmlDocumentElement.getElementsByTagName("FORECAST");
	var gisTime=Array();
	gisTime[0]=forecast[0].getAttribute("hour");
	k=0;
	
	
	
	
	weather(k);
}
function weather(k)
{
	phenomena=xmlDocumentElement.getElementsByTagName("PHENOMENA");
	pressure=xmlDocumentElement.getElementsByTagName("PRESSURE");
	temperature=xmlDocumentElement.getElementsByTagName("TEMPERATURE");
	wind=xmlDocumentElement.getElementsByTagName("WIND");
	rewlet=xmlDocumentElement.getElementsByTagName("RELWET");
	heat=xmlDocumentElement.getElementsByTagName("HEAT");

var cloud="";
var precip="";
var rain="";
var storm="";

	cloud=parseInt(phenomena[k].getAttribute("cloudiness"));
	precip=parseInt(phenomena[k].getAttribute("precipitation"));
	rain=parseInt(phenomena[k].getAttribute("rpower"));
	storm=parseInt(phenomena[k].getAttribute("spower"));
	
	pres_max=pressure[k].getAttribute("max");
	pres_min=pressure[k].getAttribute("min");
	
	temp_max=temperature[k].getAttribute("max");
	temp_min=temperature[k].getAttribute("min");

	wind_max=wind[k].getAttribute("max");
	wind_min=wind[k].getAttribute("min");
	wind_dir=parseInt(wind[k].getAttribute("direction"));
	
	rewl_max=rewlet[k].getAttribute("max");
	rewl_min=rewlet[k].getAttribute("min");
	
	komf_max=heat[k].getAttribute("max");
	komf_min=heat[k].getAttribute("min");
    
	var weatherImg="";
	switch(cloud)
	{
		case(0) : cloudText="Сонячно"; weatherImg="<img src=\"/img/weather/sunny.gif\" alt=\"\" />"; break;
		case(1) : cloudText="Малохмарно"; weatherImg="<img src=\"/img/weather/cloudy.gif\" alt=\"\" />"; break;
		case(2) : cloudText="Хмарно"; weatherImg="<img src=\"/img/weather/gloomy.gif\" alt=\"\" />"; break;
		case(3) : cloudText="Похмуро"; weatherImg="<img src=\"/img/weather/gloomy.gif\" alt=\"\" />"; break;
	}
	
	switch(precip)
	{
		case(4):  
			switch(rain)
			{
				case (0) : precipText="Ймовірен дощ"; weatherImg="<img src=\"/img/weather/rainy.gif\" alt=\"\" />"; break;
				case (1) : precipText="Дощ"; weatherImg="<img src=\"/img/weather/rainy.gif\" alt=\"\" />"; break;
			}
		break;
		
		case(5): precipText="Злива"; weatherImg="<img src=\"/img/weather/rainy.gif\" alt=\"\" />"; break;
		case(6): precipText="Сніг"; weatherImg="<img src=\"/img/weather/snowy.gif\" alt=\"\" />"; break;
		case(7): precipText="Сніг"; weatherImg="<img src=\"/img/weather/snowy.gif\" alt=\"\" />"; break;
		case(8): 
			switch(storm)
			{
				case (0) : precipText="Ймовірно грози"; weatherImg="<img src=\"/img/weather/storm.gif\" alt=\"\" />"; break;
				case (1) : precipText="Грози"; weatherImg="<img src=\"/img/weather/storm.gif\" alt=\"\" />"; break;
			}
 		break;
		case(10): precipText="Без опадів"; break;
	}
	
	switch(wind_dir)
	{
		case(0): windText="ПН"; windFullText="Північнний"; break;
		case(1): windText="ПН-С"; windFullText="Північно-східний"; break;
		case(2): windText="С"; windFullText="Східний"; break;
		case(3): windText="ПД-С";windFullText="Південно-східний";  break;
		case(4): windText="ПД"; windFullText="Південний"; break;
		case(5): windText="ПД-З"; windFullText="Південно-західний"; break;
		case(6): windText="З"; windFullText="Західний"; break;
		case(7): windText="ПН-З"; windFullText="Північно-західний"; break;
	}

	var pressText="Амосферний тиск  "+pres_min+"-"+pres_max+"мм рт.ст";
	var tempText=temp_min+"-"+temp_max;
	windText=windText+", "+wind_min+"-"+wind_max+"м/с \ <br>";
	windFullText="Вітер "+windFullText+" "+wind_min+"-"+wind_max+"м/с \ <br>";
	var tempFull="Температура "+temp_min+"-"+temp_max+"°C <br>";
	if(document.getElementById("forecastWind"))
		document.getElementById("forecastWind").innerHTML=windText+"<br>";
	if(document.getElementById("forecastTemp"))
		document.getElementById("forecastTemp").innerHTML=tempText+"°C <br>";
	if(document.getElementById("cloud"))
		document.getElementById("cloud").innerHTML=cloudText+"<br>";
	if(document.getElementById("precip"))
		document.getElementById("precip").innerHTML=precipText+"<br>";
	if(document.getElementById("pres"))
		document.getElementById("pres").innerHTML=pressText+"<br>";
	if(document.getElementById("windFull"))
		document.getElementById("windFull").innerHTML=windFullText;
	if(document.getElementById("tempFull"))
		document.getElementById("tempFull").innerHTML=tempFull;
	if(document.getElementById("gismeteo"))
		document.getElementById("gismeteo").innerHTML="<a href=\"http://gismeteo.ua\" target=\"_blank\">Детальніше тут</a>";
	if(document.getElementById("weatherImg"))
		document.getElementById("weatherImg").innerHTML=weatherImg;
	if(document.getElementById("weatherBlank"))
		document.getElementById("weatherBlank").innerHTML="";
	


}