// $Header: /Projects/Taxi/WebBooker/WJBasp.NV/js/utils.js 2     16/04/07 17:56 David.g $

var stdDateFormat = "w d mmmm yyyy";

function formDateTime(tm, ctrlTime, ctrlDate)
{
    var hour = tm.getHours();
    var min  = tm.getMinutes();

    ctrlTime.value  = (hour < 10) ? ("0" + hour) : ("" + hour);
    ctrlTime.value += ":";
    ctrlTime.value += (min < 10) ? ("0" + min) : ("" + min);

    var year = tm.getYear();
    year     = (year < 2000) ? (year + 1900) : year;

    ctrlDate.value = "" + dayName[(tm.getDay() + 7 - startAt) % 7] + " " + tm.getDate() + " " + monthName2[tm.getMonth()] + " " + year;
}

function makeDateTime(timeString, dateString, tm)
{
    var tsa = timeString.value.split(":");

    if (tsa.length != 2)
    {
        return 1;
    }

    var hh = parseInt(tsa[0], 10);
    var mm = parseInt(tsa[1], 10);

    if ((isNaN(hh))
    ||  (isNaN(mm))
    ||  (hh < 0)
    ||  (hh > 23)
    ||  (mm < 0)
    ||  (mm > 59))
    {
        return 1;
    }

    var dsa = dateString.value.split(" ");

    if (dsa.length != 4)
    {
        return 2;
    }

    var d = parseInt(dsa[1], 10);
    var m = -1;
    var y = parseInt(dsa[3], 10);

    for (j = 0; j<12; j++)
    {
        if (dsa[2] == monthName2[j])
        {
            m = j;
            break;
        }
    }

    if ((isNaN(d))
    ||  (isNaN(y))
    ||  (d < 1)
    ||  (d > 31)
    ||  (m < 0)
    ||  (m > 11)
    ||  (y < 2004)
    ||  (y > 2099))
    {
        return 2;
    }

    tm.setSeconds(0);
    tm.setMinutes(mm);
    tm.setHours(hh);
    tm.setDate(1);
    tm.setMonth(m);
    tm.setFullYear(y);
    tm.setDate(d);

    return 0;
}

function reformat(timeString)
{
    var tsa = timeString.value.split(":");
    var hh;
    var mm;

    if (tsa.length == 2)
    {
        hh = parseInt(tsa[0], 10);
        mm = parseInt(tsa[1], 10);

        if ((isNaN(hh))
        ||  (isNaN(mm))
        ||  (hh < 0)
        ||  (hh > 23)
        ||  (mm < 0)
        ||  (mm > 59))
        {
            return;
        }
    }
    else if ((timeString.value.length >= 3)
    &&       (timeString.value.length <= 4))
    {
        var hhmm = parseInt(timeString.value, 10);

        if ((isNaN(hhmm))
        ||  (hhmm < 0)
        ||  (hhmm > 2359))
        {
            return;
        }
        else
        {
            hh = Math.floor(hhmm / 100);
            mm = hhmm - (hh * 100);

            if ((isNaN(hh))
            ||  (isNaN(mm))
            ||  (hh < 0)
            ||  (hh > 23)
            ||  (mm < 0)
            ||  (mm > 59))
            {
                return;
            }
        }
    }
    else
    {
        return;
    }

    timeString.value  = (hh < 10) ? ("0" + hh) : ("" + hh);
    timeString.value += ":";
    timeString.value += (mm < 10) ? ("0" + mm) : ("" + mm);
}

