/*
 *  wx.js - Funktioner i Javaskript för vädersidorna
 *  Copyright (c) 2003--2010, Robert Larsson, Göteborg
 *  http://rl.se
 *
 */

function grafik24(icao)                             // 24-timmars vädergrafik som popup.
{
    if (! window.focus)
        return;

    var href   = '/vadret/grafik24c.php?stn=' + icao;
    var hojd   = screen.height - 50;
    var wparam = 'width=650,height='  + hojd + ',scrollbars=yes';

    wh = window.open(href, 'g24h', wparam);
    wh.moveTo(0,0);
}

function hist24(icao, ymd)                          // 24-timmars HISTORISK vädergrafik
{
    if (! window.focus)
        return;

    var href = '/vadret/grafik24c.php?stn=' + icao + '&ymd=' + ymd;
    var hojd   = screen.height - 50;
    var wparam = 'width=650,height='  + hojd + ',scrollbars=yes';

    wh = window.open(href, 'g24h', wparam);
    wh.moveTo(0,0);
}

function umsg(bg, themsg)                           // Tala om för användaren hur inmatningen går
{
    var z;

    switch (bg)                                     // Ev. färgad bakgrund på text
    {
        case 2: z = "<span style='background: #ffdddd'>" + themsg + "<\/span>"; break;
        case 4: z = "<span style='background: #ffffdd'>" + themsg + "<\/span>"; break;
        case 5: z = "<span style='background: #ddffdd'>" + themsg + "<\/span>"; break;
        default: z = themsg;                        // Vaniljsmak
    }

    document.getElementById("ledtext").innerHTML = z ;
}

function goodday()                                  // Kolla om datumet lirar sjysst
{
    var     pelle, olle;                            // Bröderna Variabel...
    var     yy,mo,dd,hh,mi;
    var     right_now = new Date();
    var     leapyear = false;


    pelle = document.f.W.value;                     // Redan regex-kollat, antas vara snyggt

    yy = pelle.substring(0,4);
    mo = pelle.substring(5,7);
    dd = pelle.substring(8,10);
    hh = pelle.substring(11,13);
    mi = pelle.substring(14,16);

    if (mo<1 || mo>12 || dd<1 || hh>23 || mi>59)    // Flagranta fel
    {
        umsg(2, "Tid eller datum felaktigt!");
        return false;
    }

    switch (parseInt(mo))                           // Kolla datumlogiken
    {
        case  2:
            if ((yy % 4 == 0) && ((yy % 400 == 0) || (yy % 100 != 0)))
            {
                if (dd > 29)
                {
                    umsg(4, "Februari har bara 29 dagar ett skottår!");
                    return false;
                }
            }
            else                                    // Dvs inget skottår!
            {
                if (dd > 28)
                {
                    umsg(4, "Endast 28 dagar i februari detta år!");
                    return false;
                }
            }

            break;

        case  4:
        case  6:
        case  9:
        case 11:
            if (dd > 30)
            {
                umsg(4, "30 dagar har september&hellip;");
                return false;
            }
            break;

        default:
            if (dd > 31)
            {
                umsg(4, "Max 31 dagar denna månad");
                return false;
            }
    }

    var   oldest_data    = new Date(2001,8,24,23,20,00);
    var   requested_time = new Date(yy,mo-1,dd,hh,mi,0);

    if (requested_time < oldest_data)
    {
        umsg(4, 'Så gamla data har jag inte!');
        return false;
    }

    if (requested_time > right_now)
    {
        umsg(4, "Kan inte spå framtida väder&hellip;");
        return false;
    }

    return true;                                    // Who's your daddy..?
}

function mrx()                                      // Matchar regex?
{

    if (document.f.W.value.length > 4)
    {
        var re1 = new RegExp('^20[01][0-9]-');      // Dålig början...

        if (!document.f.W.value.match(re1))
        {
            umsg(2, "Fel format, backa!") ;
            document.f.knappen.disabled = true;
            return false;
        }
    }


    //  Snyggt svarvade datum från år 2000 till 2019 anses matcha,
    //  så varför inte skapa ett sådant regex-uttryck?

    var re = new RegExp('20[01][0-9]-[01][0-9]-[0123][0-9] [012][0-9]:[0-5][0-9]');

    if (document.f.W.value.match(re))               // Rockar fett!
    {
        if (goodday())                              // Giltigt datum?
        {
            document.f.knappen.disabled = false;
            umsg(5, "Okej, nu kan du trycka !") ;
            return true;
        }
        else                                        // Vidrig tidsangivelse!
        {
            document.f.knappen.disabled = true;
            return false;
        }
    }
    else                                            // Fy fan, ett kasst regex...
    {
        document.f.knappen.disabled = true;         // Otryckbart...
        umsg(0, "Ange ÅÅÅÅ-MM-DD hh:mm") ;
        return false;
    }
}

function pageload()                                 // Precis vad det låter som...
{
    document.f.knappen.disabled = true;
    // document.f.W.value = '';
    document.f.W.focus();
}

function trysubmit()                                // Surfarn tryckte på knappen
{
    if (!mrx())                                     // Strängen validerar inte
    {
        document.f.W.focus();                       // Cursorn i fältet igen och...
        return false;                               // ...skicka tebax honom
    }

    document.f.submit();                            // Ser bra ut, posta formuläret!
    return true;
}

function Wfill(stuff)                               // Fyll i textfältet med nåt
{
    document.f.W.value = stuff ;
}


var infohidden = true;                              // Det är sant.

function toggleinfo()                               // Hjälptexten är normalt dold men
{                                                   // tas fram med klick på rätt knapp
    infohidden = !infohidden;

    var tt = document.getElementById("infotext");
    tt.style.display=infohidden ? "none" : "block";
    self.scrollTo(0,800);
}


//  Man måste ju kunna ändra sin plats, eller?
//
var trail = "; expires=Tue, 31 Dec 2019 22:22:22 GMT; path=/" ;

function setHome(la, lo, ko)                        // Uppdatera kakor+sidan
{
    document.cookie = "ulat=" + la + trail ;
    document.cookie = "ulon=" + lo + trail ;
    document.cookie = "ukomm=" + ko + trail ;
    window.location = '/prognos/' ;                 // Använd GET nu!
}

