/*
 *
 *UK Time
 */

var tz_offset;

var tz_ldn = 0 * 60;    // GMT +-0
var pos_startUK;
var pos_endUK;


var dayName = new Array("Sun","Mon","Tue","Wed","Thr","Fri","Sat");
var monthName = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");



// Main
function update_watch() {
   
   var today = new Date();
   var year = today.getYear();
   if (year < 2000) { year += 1900; }

   // get difference between local time and GMT in minutes
   tz_offset = today.getTimezoneOffset();

   // get UK sumer time start and end date
   pos_startUK  = GetDstStartUK(year);
   pos_endUK    = GetDstEndUK(year);


    var n_t  = today.getTime();
    var dtUK = printtime(n_t,tz_ldn);

    var YYYY,MM,DD,D, hour, min,sec, interval;
    YYYY = dtUK.getYear();
    if (YYYY < 2000) { YYYY += 1900; }
    MM = dtUK.getMonth();
    DD = dtUK.getDate();
    D = dtUK.getDay();
    hour = dtUK.getHours();
    min  = dtUK.getMinutes();
    sec = dtUK.getSeconds();
    if (hour < 10) {
        hour = "0" + hour;
    }
    if (min < 10) {
        min = "0" + min;
    }
    //Mon 17 Nov 2008|11:17 GMT
    //alert(dayName[D] + " " + DD + " " + monthName[MM] + " " + YYYY + "|" + hour + ":" + min + " GMT");
    UKTimeText = dayName[D] + " " + DD + " " + monthName[MM] + " " + YYYY + "  |  " + hour + ":" + min + " GMT";
    document.clock.UKTime.value = UKTimeText;

/*

    document.worldclock.tyo.value = printtime(n_t,tz_tyo);
    document.worldclock.lax.value = printtime(n_t,tz_lax);
    document.worldclock.nyc.value = printtime(n_t,tz_nyc);

    document.worldclock.internettime.value = internettime();
*/
    interval = (60 - sec) * 1000
    setTimeout('update_watch()', interval);        // 1000msec = 1sec?i?b?j
}



// 
// 
function GetDstStartUK(arg_yearUK) {
    //
    var dst_startUK = new Date(arg_yearUK, 2, 31, 2, 0, 0);
    for (var i = 31; i > 24; i--) {
        dst_startUK.setDate(i);
        if (0 == dst_startUK.getDay()) {
            break;
        }
    }
    return dst_startUK.getTime();
}

//
//
function GetDstEndUK(arg_yearUK) {
    var dst_endUK = new Date(arg_yearUK, 9, 31, 2, 0, 0);
    for (var i = 31; i > 24; i--) {
        dst_endUK.setDate(i);
        if (0 == dst_endUK.getDay()) {    
            break;
        }
    }
    return dst_endUK.getTime();
}


// 
function printtime(now_time, timezone) {
    var hour, min, sec;

    var pos_t = now_time + (tz_offset + timezone) * 60 * 1000;

    // sumer time
    if (timezone == tz_ldn) {
        //
        if ((pos_startUK <= pos_t) && (pos_endUK > pos_t)) {
            pos_t += 60 * 60 * 1000;
        }
    }

    var t = new Date();
    t.setTime(pos_t);
    return t; 
/*
    hour = t.getHours();
    min  = t.getMinutes();
    sec  = t.getSeconds();
    
 

    if (hour < 10) {
        hour = "0" + hour;
    }
    if (min < 10) {
        min = "0" + min;
    }
    if (sec < 10) {
        sec = "0" + sec;
    }

    return hour + ":" + min + ":" + sec;
*/
//    return hour + ":" + min;
}


