/**
 * Evolva time warning mechanism
 * (C) by Evolva 2004
 * Author: Matija Tomaskovic
 */

/**
 * srv_date            - string "dd.mm.yyyy"
 * srv_time            - string "hh:mi:ss"
 * dopustena_razlika   - string "30", u sekundama
 */
function checkToPrintTimeWarning(srv_date, srv_time, dopustena_razlika) {
    razlika = getTimeDifference(srv_date, srv_time);
    if (razlika > dopustena_razlika) {
        document.write('<img src="images/icon_bad_clock.gif" alt="Lokalno vrijeme i vrijeme na serveru se razlikuju za više od '+dopustena_razlika+' sekundi ('+razlika+'), provjerite da li je browser u offline načinu rada"/>');
    }
}

/**
 * srv_date            - string "dd.mm.yyyy"
 * srv_time            - string "hh:mi:ss"
 * dopustena_razlika   - string "30", u sekundama
 *
 * return true ako da, false ako ne
 */
function getTimeDifference(srv_date, srv_time) {
    var razlika_u_vremenu = "ne";
    var loc_d = new Date();
    var loc_mm = loc_d.getMonth()+1;
    var loc_dd = loc_d.getDate();
    var loc_yyyy = loc_d.getYear();
    var loc_hh = loc_d.getHours();
    var loc_mi = loc_d.getMinutes();
    var loc_ss = loc_d.getSeconds();
    //document.write("<br/>SERVER_DATE: " + srv_date);
    //document.write("<br/>SERVER_TIME: " + srv_time);
    //             0123456789
    // srv_date = "21.07.2004"
    // srv_time = "11:11:11";
    var srv_hh = toNum(srv_time.substring(0, 2));
    var srv_mi = toNum(srv_time.substring(3, 5));
    var srv_ss = toNum(srv_time.substring(6, 8));
    var srv_dd = toNum(srv_date.substring(0, 2));
    var srv_mm = toNum(srv_date.substring(3, 5));
    var srv_yyyy = toNum(srv_date.substring(6, 10));
    //document.write("<br/>LOCAL: " + loc_dd + "." + loc_mm + "." + loc_yyyy + "; " + loc_hh + ":" + loc_mi + ":" + loc_ss);
    //document.write("<br/>SERVER " + srv_dd + "." + srv_mm + "." + srv_yyyy + "; " + srv_hh + ":" + srv_mi + ":" + srv_ss);
    var local = loc_yyyy*12*31*24*60*60 +
                (loc_mm-1)*31*24*60*60 +
                (loc_dd-1)*24*60*60 +
                loc_hh*60*60 +
                loc_mi*60 +
                loc_ss;
    var server= srv_yyyy*12*31*24*60*60 +
                (srv_mm-1)*31*24*60*60 +
                (srv_dd-1)*24*60*60 +
                srv_hh*60*60 +
                srv_mi*60 +
                srv_ss;
    //document.write("<br/>LOCAL: " + local + "; SERVER: " + server);
    //var razlika = local - server;
    var razlika = Math.abs(local - server);
    //document.write("<br/> razlika=" + razlika);
    return razlika;
}


function toNum(s) {
    i=0;
    while(i<s.length-1) {
        if (s.charAt(i) == '0') {
            i++;
            continue;
        }
        break;
    }
    return parseInt(s.substring(i));
}

//
// Za pozivatelje "misc.RazdobljeLookup" modula
//

function prikaziRazdobljeLookup(obj_name_od, obj_name_do) {
    var v_od = eval(obj_name_od).value;
    var v_do = eval(obj_name_do).value;
    wnd_openDialog(new Array(obj_name_od, obj_name_do), 650, 400, "?module=misc.RazdobljeLookup&amp;popup=da&amp;datum_od="+v_od+"&amp;datum_do="+v_do);
}

//
// Za RazdobljeLookup.xsl
//

/**
 * Princip ove funkcije je da širi postojeće razdoblje,
 * osim u slučaju da se klikne na rubnu točku - tada rubna granica smanjuje
 */
function dodaj_razdoblje(d_od, d_do) {

    // Trenutne vrijednosti
    var curr_od = document.MainForm.datum_od.value;
    var curr_do = document.MainForm.datum_do.value;

    var v_d_od = dajKaoBroj(d_od);
    var v_d_do = dajKaoBroj(d_do);
    var v_curr_od = dajKaoBroj(curr_od);
    var v_curr_do = dajKaoBroj(curr_do);

    // Nema granica?
    if (curr_od == "" && curr_do == "") {
        curr_od = d_od;
        curr_do = d_do;
    }
    // Manji od donje granice? Prosiri donju granicu
    else if (v_d_od < v_curr_od) {
        curr_od = d_od;
    }
    // Veci od gornje granice? Prosiri gornju granicu
    else if (v_d_do > v_curr_do) {
        curr_do = d_do;
    }
    // Unutar razdoblja
    else {
        curr_od = d_od;
        curr_do = d_do;
    }

    document.MainForm.datum_od.value = curr_od;
    document.MainForm.datum_do.value = curr_do;
    repaint_razdoblja();
}


function repaint_razdoblja() {

    var curr_od = document.MainForm.datum_od.value;
    var curr_do = document.MainForm.datum_do.value;

    var v_curr_od = dajKaoBroj(curr_od);
    var v_curr_do = dajKaoBroj(curr_do);

    //
    // Paint
    //

    for (var i=0; i<24; i++) {


    var browserIE = document.all ? 1 : 0
    var browserNetscape = document.layers ? 1 : 0

    var id = "row_" + (i+1);
    var oo;

    if(browserNetscape)
        oo = document.layers[id].style;
    else if(browserIE)
        oo = document.all[id].style;

    var c = "#d0d0d0";
    var l_od = eval("document.MainForm.mj_od_" + (i+1)).value;
    var l_do = eval("document.MainForm.mj_do_" + (i+1)).value;
    var v_l_od = dajKaoBroj(l_od);
    var v_l_do = dajKaoBroj(l_do);
    var c_selected = "#b0b0b0";
    if (curr_od != "") {
        if (curr_do == "" && v_l_od >= v_curr_od) {
            c = c_selected;
        }
        if (l_od.substring(3, 10) == curr_od.substring(3, 10))
            c = c_selected;
        else if (v_l_od >= v_curr_od && v_l_do <= v_curr_do)
            c = c_selected;
    }
    else if (curr_do != "") {
        if (v_l_do <= v_curr_do)
            c = c_selected;
    }
    else {
        c = c_selected;
    }

    oo.background = c;

    }

}

function dajKaoBroj(datum) {
    //          0123456789
    // datum = "21.07.2004"
    if (datum == "")
    return 0;
    var dd = toNum(datum.substring(0, 2));
    var mm = toNum(datum.substring(3, 5));
    var yyyy = toNum(datum.substring(6, 10));
    var vrijednost = yyyy*31*12 + (mm-1)*31 + dd-1;
    return vrijednost;
}



