function get_nav_language() {

    var nav_lng;

    if(navigator.userlanguage) nav_lng = navigator.userlanguage;

    if(navigator.browserLanguage) nav_lng = navigator.browserLanguage;

    if(navigator.systemLanguage) nav_lng = navigator.systemLanguage;

    if(navigator.language) nav_lng = navigator.language;

    return new String(nav_lng).toLowerCase();

}



var coolweather_nav_lng = get_nav_language();

var coolweather_nav_language = "en, es";

if (coolweather_nav_language.indexOf(coolweather_nav_lng) == -1) coolweather_nav_lng = 'es';



var coolweather_lang = [];



coolweather_lang['en'] = [];

coolweather_lang['en']['currentconditions'] = "Current Conditions";

coolweather_lang['en']['changecity'] = "Change the city";

coolweather_lang['en']['temperature'] = "Temperature: ";

coolweather_lang['en']['hightemperature'] = "High Temperature: ";

coolweather_lang['en']['lowtemperature'] = "Low Temperature: ";

coolweather_lang['en']['realfeel'] = "Realfeel<sup>&reg;</sup>: ";

coolweather_lang['en']['realfeelhigh'] = "Realfeel<sup>&reg;</sup> High: ";

coolweather_lang['en']['realfeellow'] = "Realfeel<sup>&reg;</sup> Low: ";

coolweather_lang['en']['windspeed'] = "Wind Speed: ";

coolweather_lang['en']['windforce'] = "Wind Force: ";

coolweather_lang['en']['scale'] = "scale";

coolweather_lang['en']['winddirection'] = "Wind Direction: ";

coolweather_lang['en']['today'] = "Today: ";

coolweather_lang['en']['tomorrow'] = "Tomorrow: ";

coolweather_lang['en']['daytime'] = "daytime";

coolweather_lang['en']['nighttime'] = "nighttime";

coolweather_lang['en']['loading'] = "Loading...";

coolweather_lang['en']['city'] = "City: (Example: New York)";

coolweather_lang['en']['firstseehint'] = "Maybe you use this browser to see me for the first time, so you need set your city first which you want to see the weather report.";

coolweather_lang['en']['location'] = "Location: ";

coolweather_lang['en']['nocitymatched'] = "There is no city matched your input!";

coolweather_lang['en']['morecitymatched'] = "There are more than one city matched your input, select which you want.";

coolweather_lang['en']['back'] = "back";

coolweather_lang['en']['choosecity'] = 'choose your city';

coolweather_lang['en']['unit'] = 'Unit of Measure: ';

coolweather_lang['en']['unita'] = 'American';

coolweather_lang['en']['unitm'] = 'Metric';

coolweather_lang['en']['N'] = 'N';

coolweather_lang['en']['S'] = 'S';

coolweather_lang['en']['W'] = 'W';

coolweather_lang['en']['E'] = 'E';

coolweather_lang['en']['NE'] = 'NE';

coolweather_lang['en']['SE'] = 'SE';

coolweather_lang['en']['NW'] = 'NW';

coolweather_lang['en']['SW'] = 'SW';

coolweather_lang['en']['ENE'] = 'ENE';

coolweather_lang['en']['ESE'] = 'ESE';

coolweather_lang['en']['WNW'] = 'WNW';

coolweather_lang['en']['WSW'] = 'WSW';

coolweather_lang['en']['NNE'] = 'NNE';

coolweather_lang['en']['NNW'] = 'NNW';

coolweather_lang['en']['SSE'] = 'SSE';

coolweather_lang['en']['SSW'] = 'SSW';



// Spanish translate by Ostman el Sullusta

coolweather_lang['es'] = [];

coolweather_lang['es']['currentconditions'] = 'Estado del tiempo en Salto';

coolweather_lang['es']['changecity'] = 'Cambia la ciudad';

coolweather_lang['es']['temperature'] = 'Temperatura: ';

coolweather_lang['es']['hightemperature'] = 'Temperatura M&aacute;x: ';

coolweather_lang['es']['lowtemperature'] = 'M&iacute;n: ';

coolweather_lang['es']['realfeel'] = 'S. T&eacute;rmica: ';

coolweather_lang['es']['realfeelhigh'] = 'S. T&eacute;rmica M&aacute;x: ';

coolweather_lang['es']['realfeellow'] = 'M&iacute;n: ';

coolweather_lang['es']['windspeed'] = 'Vel. Viento: ';

coolweather_lang['es']['windforce'] = 'Fuerza Viento: ';

coolweather_lang['es']['scale'] = 'escala';

coolweather_lang['es']['winddirection'] = 'Dir. Viento: ';

coolweather_lang['es']['today'] = 'Hoy: ';

coolweather_lang['es']['tomorrow'] = 'Ma&ntilde;ana: ';

coolweather_lang['es']['daytime'] = 'D&iacute;a';

coolweather_lang['es']['nighttime'] = 'Noche';

coolweather_lang['es']['loading'] = 'Cargando...';

coolweather_lang['es']['city'] = 'Ciudad: (Por Ejemplo: Barcelona)';

coolweather_lang['es']['firstseehint'] = 'Si nos visitas por primer vez, debes indicar la ciudad de la que quieres ver el tiempo.';

coolweather_lang['es']['location'] = 'Ubicaci&oacute;n: ';

coolweather_lang['es']['nocitymatched'] = 'Ninguna ciudad se corresponde con tu entrada!';

coolweather_lang['es']['morecitymatched'] = 'Hay m&acute;s de una ciudad que corresponde a tu, por favor escoge.';

coolweather_lang['es']['back'] = 'Atras';

coolweather_lang['es']['choosecity'] = 'Escoje ';

coolweather_lang['es']['unit'] = 'Unidades: ';

coolweather_lang['es']['unita'] = 'Americanas';

coolweather_lang['es']['unitm'] = 'M&eacute;tricas';

coolweather_lang['es']['N'] = 'N';

coolweather_lang['es']['S'] = 'S';

coolweather_lang['es']['W'] = 'O';

coolweather_lang['es']['E'] = 'E';

coolweather_lang['es']['NE'] = 'NE';

coolweather_lang['es']['SE'] = 'SE';

coolweather_lang['es']['NW'] = 'NO';

coolweather_lang['es']['SW'] = 'SO';

coolweather_lang['es']['ENE'] = 'ENE';

coolweather_lang['es']['ESE'] = 'ESE';

coolweather_lang['es']['WNW'] = 'ONO';

coolweather_lang['es']['WSW'] = 'OSO';

coolweather_lang['es']['NNE'] = 'NNE';

coolweather_lang['es']['NNW'] = 'NNO';

coolweather_lang['es']['SSE'] = 'SSE';

coolweather_lang['es']['SSW'] = 'SSO';



coolweather_unit = [];

coolweather_unit[0] = [];

coolweather_unit[0]['temp'] = '&deg;F';

coolweather_unit[0]['speed'] = ' mph';

coolweather_unit[1] = [];

coolweather_unit[1]['temp'] = '&deg;C';

coolweather_unit[1]['speed'] = ' km/h';



function get_cookie(name) {

    function get_cookie_val(offset) {

        var endstr = document.cookie.indexOf(";", offset);

        if (endstr == -1) endstr = document.cookie.length;

        return unescape(document.cookie.substring(offset, endstr));

    }

    var arg = name + "=";

    var alen = arg.length;

    var clen = document.cookie.length;

    var i = 0;

    while (i < clen) {

        var j = i + alen;

        if (document.cookie.substring(i, j) == arg) return get_cookie_val(j);

        i = document.cookie.indexOf(" ", i) + 1;

        if (i == 0) break;

    }

    return null;

}



function set_cookie(name, value, expires) {

    var exp = new Date();

    if (expires) {

        exp.setTime(exp.getTime() + expires);

    }

    else {

        exp.setTime(exp.getTime() + 315360000000);

    }

    document.cookie = [name, "=", escape(value), "; expires=", exp.toGMTString(), ";"].join('');

}



function delete_cookie(name) {

    var exp = new Date();

    exp.setTime(exp.getTime() - 60000);

    document.cookie = [name, "=; expires=", exp.toGMTString(), ";"].join('');

}



function coolweather_get_windforce(windspeed) {

    var scales = [0.2, 1.5, 3.3, 5.4, 7.9, 10.7, 13.8, 17.1, 20.7, 24.4, 28.4, 32.6];

    for (var i = 0; i < scales.length; i++) {

        if (windspeed <= scales[i]) {

            return i;

        }

    }

    return 12;

}



var coolweather_rpc = new PHPRPC_Client(get_coolweather_rpc(), ['get_location', 'get_weather']);



var coolweather_report = null;

function get_coolweather_rpc()

{

	var coolweather_rpc_list=[

	'http://phprpc-weather.appspot.com/',

	'http://phprpc-weather1.appspot.com/',

	'http://phprpc-weather2.appspot.com/',

	'http://phprpc-weather3.appspot.com/',

	'http://phprpc-weather4.appspot.com/',

	'http://phprpc-weather5.appspot.com/',

	'http://phprpc-weather6.appspot.com/',

	'http://phprpc-weather7.appspot.com/',

	'http://phprpc-weather8.appspot.com/',

	'http://phprpc-weather9.appspot.com/',

	];

	var _count=coolweather_rpc_list.length;

	return coolweather_rpc_list[Math.floor(Math.random()*_count)];

}

function coolweather_set_weather(number, day_or_night) {

    var weather = PHPSerializer.unserialize(coolweather_report);

    var locid = "SAM|UY|UY015|SALTO";

    var metric = "1";

    var coolweather_hint = document.getElementById('coolweather_hint');

    var unit = "";

    if (number == 0) {

        if (metric == 1) {

            var windforce = [coolweather_lang[coolweather_nav_lng]['windforce'],

                coolweather_get_windforce(weather['windspeed']), ' ',

                coolweather_lang[coolweather_nav_lng]['scale'], '<br />'].join('');
			
			var windsp = (weather['windspeed']/1000)*3600;

        }

        else {

            var windforce = '';
			var windsp = '';

        }

        coolweather_hint.innerHTML = ['<div style="margin-bottom: 0.5em; display: block;"><strong>',

            coolweather_lang[coolweather_nav_lng]['currentconditions'],

            '</strong><br /><br /><img src="', coolweather_iconspath,

            weather['weathericon'], '.gif" alt="', weather['weathertext'],

            '" align="left" valign="absmiddle" width="64" height="40" style="margin-right:5px; margin-bottom:50px;" />',

            coolweather_lang[coolweather_nav_lng]['temperature'],

            weather['temperature'], coolweather_unit[metric]['temp'], '<br />',

            coolweather_lang[coolweather_nav_lng]['realfeel'],

            weather['realfeel'], coolweather_unit[metric]['temp'], '<br />',

            coolweather_lang[coolweather_nav_lng]['windspeed'],

            windsp, coolweather_unit[metric]['speed'], '<br />',

            coolweather_lang[coolweather_nav_lng]['winddirection'],

            coolweather_lang[coolweather_nav_lng][weather['winddirection']], '<br />',

            coolweather_lang[coolweather_nav_lng]['today'],

            '<a href="javascript:void(0)" onclick="coolweather_set_weather(1, 0);" ',

            'style="display: inline; padding: 0; margin: 0">',

            coolweather_lang[coolweather_nav_lng]['daytime'],

            '</a> / <a href="javascript:void(0)" onclick="coolweather_set_weather(1, 1);" ',

            'style="display: inline; padding: 0; margin: 0">',

            coolweather_lang[coolweather_nav_lng]['nighttime'], '</a><br />',

            coolweather_lang[coolweather_nav_lng]['tomorrow'],

            '<a href="javascript:void(0)" onclick="coolweather_set_weather(2, 0);" ',

            'style="display: inline; padding: 0; margin: 0">',

            coolweather_lang[coolweather_nav_lng]['daytime'],

            '</a> / <a href="javascript:void(0)" onclick="coolweather_set_weather(2, 1);" ',

            'style="display: inline; padding: 0; margin: 0">',

            coolweather_lang[coolweather_nav_lng]['nighttime'], '</a></div>', unit,

            ''].join('');

    }

    else {

        if (metric == 1) {

            var windforce = [coolweather_lang[coolweather_nav_lng]['windforce'],

            coolweather_get_windforce(weather[number][day_or_night]['windspeed']), ' ',

            coolweather_lang[coolweather_nav_lng]['scale'], '<br />'].join('');
			
			var windsp = (weather[number][day_or_night]['windspeed']/1000)*3600;

        }

        else {

            var windforce = '';
			var windsp = '';

        }

        coolweather_hint.innerHTML = ['<div style="margin-bottom: 0.5em; display: block;"><strong>',

            ((number == 1) ? coolweather_lang[coolweather_nav_lng]['today'] : coolweather_lang[coolweather_nav_lng]['tomorrow']),

            ((day_or_night == 0) ? coolweather_lang[coolweather_nav_lng]['daytime'] : coolweather_lang[coolweather_nav_lng]['nighttime']),

            '</strong><br /><br />',

            '<img src="', coolweather_iconspath,

            weather[number][day_or_night]['weathericon'], '.gif" alt="',

            weather[number][day_or_night]['weathertext'],

            '" align="left" valign="absmiddle" width="64" height="40"  style="margin-right:5px; margin-bottom:70px;"  />',

            coolweather_lang[coolweather_nav_lng]['hightemperature'],

            weather[number][day_or_night]['hightemperature'], coolweather_unit[metric]['temp'], ' | ',

            coolweather_lang[coolweather_nav_lng]['lowtemperature'],

            weather[number][day_or_night]['lowtemperature'], coolweather_unit[metric]['temp'], '<br />',

            coolweather_lang[coolweather_nav_lng]['realfeelhigh'],

            weather[number][day_or_night]['realfeelhigh'], coolweather_unit[metric]['temp'], ' | ',

            coolweather_lang[coolweather_nav_lng]['realfeellow'],

            weather[number][day_or_night]['realfeellow'], coolweather_unit[metric]['temp'], '<br />',

            coolweather_lang[coolweather_nav_lng]['windspeed'],

            windsp, coolweather_unit[metric]['speed'], '<br />',

            coolweather_lang[coolweather_nav_lng]['winddirection'],

            coolweather_lang[coolweather_nav_lng][weather[number][day_or_night]['winddirection']], '<br />',

            '<a href="javascript:void(0)" onclick="coolweather_set_weather(0);" ',

            'style="display: inline; padding: 0; margin: 0">',

            coolweather_lang[coolweather_nav_lng]['currentconditions'], '</a><br />',

            coolweather_lang[coolweather_nav_lng]['today'],

            '<a href="javascript:void(0)" onclick="coolweather_set_weather(1, 0);" ',

            'style="display: inline; padding: 0; margin: 0">',

            coolweather_lang[coolweather_nav_lng]['daytime'],

            '</a> / <a href="javascript:void(0)" onclick="coolweather_set_weather(1, 1);" ',

            'style="display: inline; padding: 0; margin: 0">',

            coolweather_lang[coolweather_nav_lng]['nighttime'], '</a><br />',

            coolweather_lang[coolweather_nav_lng]['tomorrow'],

            '<a href="javascript:void(0)" onclick="coolweather_set_weather(2, 0);" ',

            'style="display: inline; padding: 0; margin: 0">',

            coolweather_lang[coolweather_nav_lng]['daytime'],

            '</a> / <a href="javascript:void(0)" onclick="coolweather_set_weather(2, 1);" ',

            'style="display: inline; padding: 0; margin: 0">',

            coolweather_lang[coolweather_nav_lng]['nighttime'], '</a></div>', unit].join('');

    }

}



coolweather_rpc.get_weather_callback = function (result, args) {

    if (result instanceof PHPRPC_Error) {

        var coolweather_hint = document.getElementById('coolweather_hint');

        coolweather_hint.innerHTML = ['<img src="', coolweather_iconspath, 'swa.gif" alt="error" align="left" width="64" height="40" /><span style="color: red">', result.toString(), '</span>'].join('');

    }

    else {

        if (result == null) {

            result = [];

        }

        result['locid'] = "SAM|UY|UY015|SALTO";

        result['metric'] = "1";

        var weather = PHPSerializer.serialize(result);

        set_cookie('coolweather_metric', args[1]);

        set_cookie('coolweather_weather', weather, 900000);

        coolweather_report = weather;

        coolweather_set_weather(0);

    }

}



coolweather_rpc.get_location_callback = function (result) {

    var metric = get_cookie('coolweather_metric');

    if (metric == null) metric = 1;

    var coolweather_hint = document.getElementById('coolweather_hint');

    var coolweather_input = document.getElementById('coolweather_input');

    if (result instanceof PHPRPC_Error) {

        coolweather_hint.innerHTML = ['<span style="color: red">', result.toString(), '</span>'].join('');

        coolweather_input.disabled = false;

    }

    else if (result.length == 0) {

        coolweather_hint.innerHTML = coolweather_lang[coolweather_nav_lng]['nocitymatched'];

        coolweather_input.disabled = false;

        coolweather_input.focus();

    }

    else if (result.length == 1) {

        set_cookie('coolweather_locid', "SAM|UY|UY015|SALTO");

        coolweather_get_weather("SAM|UY|UY015|SALTO", metric);

    }

    else {

        coolweather_hint.innerHTML = [coolweather_lang[coolweather_nav_lng]['morecitymatched'],

            '<br /><div align="right"><a href="javascript:void(0)" onclick="coolweather_input_city()" style="display: inline; padding: 0; margin: 0">',

            coolweather_lang[coolweather_nav_lng]['back'], '</a></div>'].join('');

        var coolweather_input_container = document.getElementById('coolweather_input_container');

        coolweather_input_container.innerHTML = ['<label for="coolweather_input">', coolweather_lang[coolweather_nav_lng]['location'], '</label><br />'].join('');

        coolweather_input = document.createElement('select');

        var opt = document.createElement('option');

        opt.text = coolweather_lang[coolweather_nav_lng]['choosecity'];

        opt.value = '';

        opt.defaultSelected = true;        if (coolweather_input.options.add) {

            coolweather_input.options.add(opt);

        }

        else {

            coolweather_input.appendChild(opt);

        }

        for (var i = 0; i < result.length; i++) {

            var opt = document.createElement('option');

            opt.text = [result[i]['city'], result[i]['state']].join(', ');

            opt.value = result[i]['location'];

            if (coolweather_input.options.add) {

                coolweather_input.options.add(opt);

            }

            else {

                coolweather_input.appendChild(opt);

            }

        }

        coolweather_input.id = "coolweather_input";

        coolweather_input.onchange = function () {

            var locid = "SAM|UY|UY015|SALTO";

            set_cookie('coolweather_locid', "SAM|UY|UY015|SALTO");

            coolweather_get_weather(locid, metric);

        }

        coolweather_input_container.appendChild(coolweather_input);

        coolweather_input.focus();

    }

}



function on_coolweather_city_input(event) {

    if (window.event) event = window.event;

    if (event.keyCode == 13) {

        var city = this.value;

        var coolweather_hint = document.getElementById('coolweather_hint');

        coolweather_hint.innerHTML = coolweather_lang[coolweather_nav_lng]['loading'];

        var coolweather_input = document.getElementById('coolweather_input');

        coolweather_input.disabled = true;

        coolweather_get_location(city);

    }

}



function coolweather_get_location(city) {

    coolweather_rpc.get_location(city);

}



function coolweather_get_weather(locid, metric) {

    var coolweather_container = document.getElementById('coolweather_container');

    coolweather_container.innerHTML = ['<div id="coolweather_hint">', coolweather_lang[coolweather_nav_lng]['loading'], '</div>'].join('');

    coolweather_rpc.get_weather(locid, metric);

}



function coolweather_input_city() {

    delete_cookie('coolweather_locid');

    coolweather_init();

}



function coolweather_init() {

    var coolweather_container = document.getElementById('coolweather_container');

    var locid = "SAM|UY|UY015|SALTO";

    if (locid == null) {

        coolweather_container.innerHTML = ['<div id="coolweather_input_container">',

            '<label for="coolweather_input">',

            coolweather_lang[coolweather_nav_lng]['city'],

            '</label><br /><input type="text" id="coolweather_input" /></div><div id="coolweather_hint">',

            coolweather_lang[coolweather_nav_lng]['firstseehint'], '</div>'].join('');

        var coolweather_input = document.getElementById('coolweather_input');

        coolweather_input.onkeypress = on_coolweather_city_input;

        coolweather_input.focus();

    }

    else {

        coolweather_container.innerHTML = ['<div id="coolweather_hint">', coolweather_lang[coolweather_nav_lng]['loading'], '</div>'].join('');

        var metric = get_cookie('coolweather_metric');

        if (metric == null) metric = 1;

        if (get_cookie('coolweather_weather') == null) {

            coolweather_get_weather(locid, metric);

        }

        else {

            coolweather_report = get_cookie('coolweather_weather');

            coolweather_set_weather(0);

        }

    }

}

