﻿// (c) www.sadauskas.eu v1.00 2009-07-18

var sanitizeJSON;var sanitizedJSON;var JSONContainer;var text="";var textRes="";var textIndex;var XMLTagName;var imageFileName;var pushCheck=0;var m=0;var o=0;var c=0;var d=0;var c2=0;var c3=0;var cityChoice="";var r=0;var XMLR;var q1="";var q2="";var q3="";var q4="";var q5="";var q6="";var qf1="";var qf2="";var qf3="";var qf4="";var qf5="";var city=new Array(5);city[0]="Vilnius";city[1]="Kaunas";city[2]="Klaipeda";city[3]="Siauliai";city[4]="Panevezys";var textArray1=new Array(6);textArray1[0]="city";textArray1[1]="condition";textArray1[2]="temp_c";textArray1[3]="humidity";textArray1[4]="icon";textArray1[5]="wind_condition";var textArray2=new Array(5);textArray2[0]="day_of_week";textArray2[1]="low";textArray2[2]="high";textArray2[3]="icon";textArray2[4]="condition";var iconArrayInfo=new Array(19);iconArrayInfo[0]="chance_of_rain.gif";iconArrayInfo[1]="sunny.gif";iconArrayInfo[2]="mostly_sunny.gif";iconArrayInfo[3]="chance_of_storm.gif";iconArrayInfo[4]="chance_of_snow.gif";iconArrayInfo[5]="cloudy.gif";iconArrayInfo[6]="mist.gif";iconArrayInfo[7]="storm.gif";iconArrayInfo[8]="thunderstorm.gif";iconArrayInfo[9]="sleet.gif";iconArrayInfo[10]="snow.gif";iconArrayInfo[11]="icy.gif";iconArrayInfo[12]="dust.gif";iconArrayInfo[13]="fog.gif";iconArrayInfo[14]="smoke.gif";iconArrayInfo[15]="haze.gif";iconArrayInfo[16]="mostly_cloudy.gif";iconArrayInfo[17]="partly_cloudy.gif";iconArrayInfo[18]="rain.gif";var iconArrayImages=new Array(19);iconArrayImages[0]="uploads/images/weather/sky/chance_of_rain.gif";iconArrayImages[1]="uploads/images/weather/sky/sunny.gif";iconArrayImages[2]="uploads/images/weather/sky/mostly_sunny.gif";iconArrayImages[3]="uploads/images/weather/sky/chance_of_storm.gif";iconArrayImages[4]="uploads/images/weather/sky/chance_of_snow.gif";iconArrayImages[5]="uploads/images/weather/sky/cloudy.gif";iconArrayImages[6]="uploads/images/weather/sky/mist.gif";iconArrayImages[7]="uploads/images/weather/sky/storm.gif";iconArrayImages[8]="uploads/images/weather/sky/thunderstorm.gif";iconArrayImages[9]="uploads/images/weather/sky/sleet.gif";iconArrayImages[10]="uploads/images/weather/sky/snow.gif";iconArrayImages[11]="uploads/images/weather/sky/icy.gif";iconArrayImages[12]="uploads/images/weather/sky/dust.gif";iconArrayImages[13]="uploads/images/weather/sky/fog.gif";iconArrayImages[14]="uploads/images/weather/sky/smoke.gif";iconArrayImages[15]="uploads/images/weather/sky/haze.gif";iconArrayImages[16]="uploads/images/weather/sky/mostly_cloudy.gif";iconArrayImages[17]="uploads/images/weather/sky/partly_cloudy.gif";iconArrayImages[18]="uploads/images/weather/sky/rain.gif";var iconArrayImagesAlt=new Array(19);iconArrayImagesAlt[0]="Galimas lietus";iconArrayImagesAlt[1]="Saulėta";iconArrayImagesAlt[2]="Daugiausia saulėta";iconArrayImagesAlt[3]="Galima liūtis";iconArrayImagesAlt[4]="Galimas snigimas";iconArrayImagesAlt[5]="Debesuota";iconArrayImagesAlt[6]="Rūkas";iconArrayImagesAlt[7]="Liūtis";iconArrayImagesAlt[8]="Liūtis su perkūnija";iconArrayImagesAlt[9]="Šlapdriba";iconArrayImagesAlt[10]="Snigimas";iconArrayImagesAlt[11]="Šalna";iconArrayImagesAlt[12]="Dulkėta";iconArrayImagesAlt[13]="Tirštas rūkas";iconArrayImagesAlt[14]="Dūmai";iconArrayImagesAlt[15]="Nedidelis rūkas";iconArrayImagesAlt[16]="Daugiausia debesuota";iconArrayImagesAlt[17]="Protarpiais debesuota";iconArrayImagesAlt[18]="Lietus";var windDirectionArrayImages=new Array(9);windDirectionArrayImages[0]="uploads/images/weather/wind/P_S.png";windDirectionArrayImages[1]="uploads/images/weather/wind/PR_SE.png";windDirectionArrayImages[2]="uploads/images/weather/wind/PV_SW.png";windDirectionArrayImages[3]="uploads/images/weather/wind/R_E.png";windDirectionArrayImages[4]="uploads/images/weather/wind/S_N.png";windDirectionArrayImages[5]="uploads/images/weather/wind/SR_NE.png";windDirectionArrayImages[6]="uploads/images/weather/wind/SV_NW.png";windDirectionArrayImages[7]="uploads/images/weather/wind/V_W.png";windDirectionArrayImages[8]="uploads/images/weather/wind/NK_ND.png";var windDirectionAltText=new Array(9);windDirectionAltText[0]="Pietų krypties vėjas";windDirectionAltText[1]="Pietryčių krypties vėjas";windDirectionAltText[2]="Pietvakarių krypties vėjas";windDirectionAltText[3]="Rytų krypties vėjas";windDirectionAltText[4]="Šiaurės krypties vėjas";windDirectionAltText[5]="Šiaurės rytų krypties vėjas";windDirectionAltText[6]="Šiaurės vakarų krypties vėjas";windDirectionAltText[7]="Vakarų krypties vėjas";windDirectionAltText[8]="Nėra vėjo krypties duomenų";function createXHRObj()
{try
{if(window.XMLHttpRequest)
{XMLR=new XMLHttpRequest();}
else
if(window.ActiveXObject)
{XMLR=new ActiveXObject("Microsoft.XMLHTTP");}
else
{alert("Orų informacija negali būti pateikta,\nnes Jūsų naršyklė nepalaiko naujausių standartų.");}
return null;}
catch(error)
{}}
function checkServerReach(){try{if(XMLR.readyState==4){if(XMLR.status==200){if(o===2){o=0;cityChoice="";}}
else
if(XMLR.statusText==="Unknown"){alert("Informacija negali būti pateikta,\nnes nėra priėjimo prie interneto.\n\nPatikrinkite interneto jungtį. Jei\nryšys vėl yra – atlikite norimus\nveiksmus dar kartą.\n\nwww.sadauskas.eu");o=2;}}
return null;}
catch(error){}}
function checkConnection(){try{createXHRObj();XMLR.onreadystatechange=checkServerReach;var urlHOME="http://www.sadauskas.eu/pixel.png?c="+Math.round(Math.random()*100000);XMLR.open("GET",urlHOME,false);XMLR.send(null);return null;}
catch(error){}}
function removeUsedScript(){document.getElementsByTagName("head")[0].removeChild(document.getElementById("DST"));return null;}
function dynamicScript(){try{var firstHead=document.getElementsByTagName("head")[0];var scriptChild=document.createElement("script");scriptChild.setAttribute("type","text/javascript");scriptChild.setAttribute("id","DST");if(cityChoice==="")
{scriptChild.setAttribute("src","http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D%22http%3A%2F%2Fwww.google.com%2Fig%2Fapi%3Fweather%3D"+city[m]+"%2CLithuania%22&format=json&callback=getData");firstHead.appendChild(scriptChild);}
else
{switch(cityChoice)
{case"vilnius":{d=0;}
break;case"kaunas":{d=1;}
break;case"klaipeda":{d=2;}
break;case"siauliai":{d=3;}
break;case"panevezys":{d=4;}
break;default:{alert("Nesuspėta pateikti duomenų.\nPrašome paspausti mygtuką\n\"Atnaujinti / Šiuo metu.\" dar kartą.\n\nwww.sadauskas.eu");}}
scriptChild.setAttribute("src","http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D%22http%3A%2F%2Fwww.google.com%2Fig%2Fapi%3Fweather%3D"+city[d]+"%2CLithuania%22&format=json&callback=getData");firstHead.appendChild(scriptChild);}
return null;}
catch(error){document.getElementById("weatherForecast").innerHTML="Klaida:\&nbsp;#1";}}
function startWeatherForecast(){try{checkConnection();if(o===0){pushCheck++;if(pushCheck===1){if(m===5)
{textRes="<b>Dabartinės orų sąlygos</b><br /><br />";m=0;}
else{textRes="<b>Dabartinės orų sąlygos</b><br /><br />";}
dynamicScript();}
else{alert("Jūs paspaudėte mygtuką keletą kartų iš eilės,\nkai dar informacija ruošiama pagal pirmąjį\nmygtuko paspaudimą.\n\nJei pageidaujate atnaujinti informaciją, palaukite\nkol bus užbaigta pateikti visų penkių miestų\ndabartinė orų sąlygų informacija.\n\nwww.sadauskas.eu");}}
else
if(o===1){dynamicScript();}
return null;}
catch(error){}}
function loadWeatherForecastApp(){try{if(window.location.hostname==="www.sadauskas.eu"){document.getElementById("weatherForecastField").innerHTML="<span class=\"greenBoldText\">Lietuvos orų informacija</span><br /><br /><form name=\"cityForm\"><select id=\"citySelectMenu\" name=\"citySelect\" onchange=\"whichCity(); return false;\"><option value=\"chooseCity\" selected=\"selected\">\&middot;\&middot;\&middot;\&nbsp;Orų prognozė\&nbsp;\&middot;\&middot;\&middot;</option><option value=\"vilnius\">Vilnius</option><option value=\"kaunas\">Kaunas</option><option value=\"klaipeda\">Klaipėda</option><option value=\"siauliai\">Šiauliai</option><option value=\"panevezys\">Panevėžys</option></select></form><input id=\"greenButton\" type=\"button\" value=\"Dabar yra / Atnaujinti\" onclick=\"startWeatherForecast();\" /><br /><br /><p><span id=\"weatherForecast\">Jei norite sužinoti orų<br />prognozę artimiausioms<br />trims dienoms, įskaitant<br />šiandieną, išsirinkite<br />miestą iš išskleidžiamo<br />sąrašo. Jei norite sužinoti<br />kokios yra dabartinės<br />orų sąlygos – paspauskite<br />mygtuką.</span><br /></p>";}
else{document.getElementById("weatherForecastField").innerHTML="<span id=\"whenEnglish\" style=\"color: #228b22;\">Weather forecast is<br />available only in<br />Lithuanian.</span>";}
return null;}
catch(error){}}
function forCity(cityName){try{var localVar1="";switch(cityName){case city[0]:{localVar1="Vilniaus";}
break;case city[1]:{localVar1="Kauno";}
break;case city[2]:{localVar1="Klaipėdos";}
break;case city[3]:{localVar1="Šiaulių";}
break;case city[4]:{localVar1="Panevėžio";}
break;default:{localVar1="neteisingam";}}
return localVar1;}
catch(error){}}
function loopCities(){try{if(m<=4){++m;if(m!=5){removeUsedScript();dynamicScript();}
else{removeUsedScript();pushCheck=0;}}
return null;}
catch(error){}}
function getData(payload){try{sanitizeJSON=JSON.stringify(payload);sanitizedJSON=JSON.parse(sanitizeJSON);JSONContainer=sanitizedJSON;if(JSONContainer.query.results.xml_api_reply.weather.problem_cause===undefined){processData();}
else{var localVar1="";if(d===0&&cityChoice===""){localVar1=forCity(city[m]);loopCities();textRes+="<span id=\"forError\" style=\"color: #ff0000;\"><br />Informacija\&nbsp;apie\&nbsp;"+localVar1+"<br />miestą laikinai neprieinama.<br /><br /></span>";}
else{removeUsedScript();localVar1=forCity(city[d]);textRes="<span id=\"forError\" style=\"color: #ff0000;\"><br />Informacija\&nbsp;apie\&nbsp;"+localVar1+"<br />miestą laikinai neprieinama.<br /><br /></span>";o=0;d=0;cityChoice="";}
document.getElementById("weatherForecast").innerHTML=textRes;}
sanitizeJSON=null;sanitizedJSON=null;JSONContainer=null;return null;}
catch(error){document.getElementById("weatherForecast").innerHTML="Klaida:\&nbsp;#2";}}
function fToC(localText){localText=parseInt(localText);localText=Math.round((localText-32)*5/9);return localText;}
function processData()
{try
{if(o===0)
{for(;c<=5;c++)
{switch(textArray1[c])
{case"city":{text=JSONContainer.query.results.xml_api_reply.weather.forecast_information.city.data;textIndex=text.indexOf(",");var localVar=text.slice(0,textIndex);switch(localVar)
{case"Vilnius":{q1+="<b>Vilnius</b><br />";break;}
case"Kaunas":{q1+="<b>Kaunas</b><br />";break;}
case"Klaipeda":{q1+="<b>Klaipėda</b><br />";break;}
case"Siauliai":{q1+="<b>Šiauliai</b><br />";break;}
case"Panevezys":{q1+="<b>Panevėžys</b><br />";break;}
default:{q1+="Nėra duomenų:\&nbsp;<span id=\"forError\" style=\"color: #ff0000;\">miestas</span><br />";}}}
break;case"condition":{q2+="";}
break;case"temp_c":{text=JSONContainer.query.results.xml_api_reply.weather.current_conditions.temp_c.data;if(text!="")
{q3+="Temperatūra:\&nbsp;"+text+"\&nbsp;\&deg;C<br />";}
else
{q3+="Nėra duomenų:\&nbsp;<span id=\"forError\" style=\"color: #ff0000;\">temperatūra</span><br />";}}
break;case"humidity":{text=JSONContainer.query.results.xml_api_reply.weather.current_conditions.humidity.data;if(text!="")
{var localVar4=text.indexOf(" ");textIndex=text.indexOf("%");q4+="Drėgnumas:"+text.slice(localVar4,textIndex)+"\&nbsp;%<br />";}
else
{q4+="Nėra duomenų:\&nbsp;<span id=\"forError\" style=\"color: #ff0000;\">drėgnumas</span><br />";}}
break;case"icon":{var theDateObject=new Date();var currentHours=theDateObject.getHours();if(currentHours>5&&currentHours<23){text=JSONContainer.query.results.xml_api_reply.weather.current_conditions.icon.data;if(text!="")
{textIndex=text.lastIndexOf("/");imageFileName=text.slice(textIndex+1,text.length);for(var b=0;b<=19;b++)
{if(iconArrayInfo[b]===imageFileName)
{q5+=iconArrayImagesAlt[b]+"<br /><img src=\""+iconArrayImages[b]+"\" alt=\""+iconArrayImagesAlt[b]+"\" /><br />";break;}}}
else
{q5+="Nėra duomenų:\&nbsp;<span id=\"forError\" style=\"color: #ff0000;\">oras</span><br />";}}
else{q5+="<span id=\"nightTime\" style=\"color: #0000ff;\">Nakties metas</span><br />";}}
break;case"wind_condition":{text=JSONContainer.query.results.xml_api_reply.weather.current_conditions.wind_condition.data;if(text!="")
{var windCondArray=text.split(" ");var localVar2=Number(windCondArray[3])/3.6;if(!isNaN(localVar2)){var localVar3=localVar2.toFixed(1);var windSpeed=localVar3.replace(".",",");q6+="Vėjas:\&nbsp;"+windSpeed+"\&nbsp;m/s<br />";}
else{q6+="Nėra duomenų:\&nbsp;<span id=\"forError\" style=\"color: #ff0000;\">greitis</span><br />";}
switch(windCondArray[1])
{case"S":{r=0;}
break;case"SE":{r=1;}
break;case"SW":{r=2;}
break;case"E":{r=3;}
break;case"N":{r=4;}
break;case"NE":{r=5;}
break;case"NW":{r=6;}
break;case"W":{r=7;}
break;default:{r=8;q6+="Nėra duomenų:\&nbsp;<span id=\"forError\" style=\"color: #ff0000;\">kryptis</span><br />";}}
q6+="<img src=\""+windDirectionArrayImages[r]+"\" alt=\""+windDirectionAltText[r]+"\" /><br />";}
else
{q6+="Nėra duomenų:\&nbsp;<span id=\"forError\" style=\"color: #ff0000;\">vėjas</span><br />";}}
break;default:{textRes+="Nėra duomenų:\&nbsp;<span id=\"forError\" style=\"color: #ff0000;\">šaltinis</span><br />";}}}
textRes+=q1+q3+q2+q5+q4+q6;q1="";q2="";q3="";q4="";q5="";q6="";c=0;loopCities();}
else
if(o===1)
{switch(cityChoice)
{case"vilnius":{textRes="<b>Orų prognozė Vilniui</b><br /><br />";break;}
case"kaunas":{textRes="<b>Orų prognozė Kaunui</b><br /><br />";break;}
case"klaipeda":{textRes="<b>Orų prognozė Klaipėdai</b><br /><br />";break;}
case"siauliai":{textRes="<b>Orų prognozė Šiauliams</b><br /><br />";break;}
case"panevezys":{textRes="<b>Orų prognozė Panevėžiui</b><br /><br />";break;}
default:{textRes="Nėra duomenų:\&nbsp;<span id=\"forError\" style=\"color: #ff0000;\">miestas2</span><br />";}}
cityChoice="";for(;c3<=3;c3++)
{++c2;for(;c<=4;c++)
{switch(textArray2[c])
{case"day_of_week":{text=JSONContainer.query.results.xml_api_reply.weather.forecast_conditions[c3].day_of_week.data;switch(text)
{case"Mon":{qf1+="<b>Pirmadienį</b><br />";}
break;case"Tue":{qf1+="<b>Antradienį</b><br />";}
break;case"Wed":{qf1+="<b>Trečiadienį</b><br />";}
break;case"Thu":{qf1+="<b>Ketvirtadienį</b><br />";}
break;case"Fri":{qf1+="<b>Penktadienį</b><br />";}
break;case"Sat":{qf1+="<b>Šeštadienį</b><br />";}
break;case"Sun":{qf1+="<b>Sekmadienį</b><br />";}
break;default:{qf1+="Nėra duomenų:\&nbsp;<span id=\"forError\" style=\"color: #ff0000;\">diena</span><br />";}}}
break;case"low":{text=JSONContainer.query.results.xml_api_reply.weather.forecast_conditions[c3].low.data;if(text!="")
{text=fToC(text);qf2+="Temperatūra:<br />naktį\&nbsp;"+text+"\&nbsp;\&deg;C<br />";}
else
{qf2+="Nėra duomenų:\&nbsp;<span id=\"forError\" style=\"color: #ff0000;\">naktį</span><br />";}}
break;case"high":{text=JSONContainer.query.results.xml_api_reply.weather.forecast_conditions[c3].high.data;if(text!="")
{text=fToC(text);qf3+="dieną\&nbsp;"+text+"\&nbsp;\&deg;C<br />";}
else
{qf3+="Nėra duomenų:\&nbsp;<span id=\"forError\" style=\"color: #ff0000;\">dieną</span><br />";}}
break;case"icon":{text=JSONContainer.query.results.xml_api_reply.weather.forecast_conditions[c3].icon.data;if(text!="")
{textIndex=text.lastIndexOf("/");imageFileName=text.slice(textIndex+1,text.length);for(var b=0;b<=19;b++)
{if(iconArrayInfo[b]===imageFileName)
{qf4+=iconArrayImagesAlt[b]+"<br /><img src=\""+iconArrayImages[b]+"\" alt=\""+iconArrayImagesAlt[b]+"\" /><br />";break;}}}
else
{qf4+="Nėra duomenų:\&nbsp;<span id=\"forError\" style=\"color: #ff0000;\">oras2</span><br />";}}
break;case"condition":{q2+="";}
break;delaut:{textRes+="Nėra duomenų:\&nbsp;<span id=\"forError\" style=\"color: #ff0000;\">šaltinis2</span><br />";}}}
textRes+=qf1+qf2+qf3+qf5+qf4;qf1="";qf2="";qf3="";qf4="";qf5="";c=0;if(c2===4)
{c2=0;}}
if(c3===4)
{c3=0;}
if(d!=0)
{d=0;}
o=0;removeUsedScript();}
document.getElementById("weatherForecast").innerHTML=textRes;return null;}
catch(error)
{document.getElementById("weatherForecast").innerHTML="Klaida:\&nbsp;#3";}}
function whichCity()
{try
{o=1;cityChoice=document.cityForm.citySelect.options[document.cityForm.citySelect.selectedIndex].value;if(cityChoice!="chooseCity")
{startWeatherForecast();document.cityForm.citySelect.selectedIndex=0;}
else
{cityChoice="";}
return null;}
catch(error)
{document.getElementById("weatherForecast").innerHTML="<b>Informacija laikinai neprieinama.</b><br />#4";}}