/*****************************************************************
  skrypt odliczający czas pozostały do wygasniecia sesji
 *****************************************************************/

var start_time; // czas rozpoczęcia sesji
var client_session_timeout; // czas trwania sesji w sekundach
var bg_step; // liczba sekund jednego przejscia licznika sesji
var arr_bg_pos = ['-300','-270','-240','-210','-180','-150','-120','-90','-60','-30', '0'];// background-position licznika sesji
var arr_steps  = [];
var timer;
//var dont_hide_refresh_btn = false;

// pobranie aktualnego czasu
function getCurrentTime() {
    var curr_time = new Date();
    start_time = parseInt(curr_time.getTime()/1000);
    return start_time;
}

// zainicjowanie licznika sesji
function initSessionTimer(session_timeout) {
    if (document.getElementById('session_time')) {
        $("#sesja_imgs").css("background-position", '0px ' + arr_bg_pos[0] + 'px ');
        $("#session_time").css("color", '');
        //hide_refresh_btn();
        if (session_timeout <=3600){
            min = parseInt(session_timeout/60);
            sec = session_timeout%60;
        }else{
            min = 60;
            sec = 0;
            session_timeout = 3600;
        }
        client_session_timeout = session_timeout;
        bg_step = Math.floor(client_session_timeout / 10);
        for(var i = 0; i < 11; i++) {
          arr_steps[i] = (10 - i) * bg_step;
        }
        getCurrentTime();
        end_time = start_time + session_timeout + 1;
        sessionTimer(min,sec,end_time);
    }
}

// licznik sesji
function sessionTimer(minutes,seconds,end_time) {
    if (seconds>=0) {
        getCurrentTime();
        left_time = end_time - start_time;
        min = parseInt(left_time/60);
        sec = left_time%60;
        if(sec > 0) {
            sec--;
        } else if(min > 0) {
            min--;
            sec = 59;
        }
        if (document.getElementById('session_time')) {
            var session = document.getElementById('session_time');
        } else {
            sessionTimer(min,sec,end_time);
        }
        if((min==0 && sec==0) || (min < 0 || sec < 0)) {
            show_session_expired ();
            sec = -1;
        } else {
            if (left_time <= bg_step) {
              if ($('#sesja_refresh').css("background-image") == 'none') {
                //dont_hide_refresh_btn = true;
                //show_refresh_btn(true);
              }
            }
            if (left_time <= 3*bg_step) {
              if ($("#session_time").css("color") != '#f96501') {
                $("#session_time").css("color", '#f96501');
              }
            }
            show_session_progress(left_time - 1);
            session.innerHTML=((min < 10) ? "0" + min : min)+":"+((sec < 10) ? "0" + sec : sec) + "s";
        }
        timer = setTimeout("sessionTimer(min,sec,end_time);", 1000);
    } 
}
// prezentacja postepu licznika
function show_session_progress(left_time) {
   var diff = client_session_timeout - left_time;
   if (diff >= bg_step) {
     for(var i = 0; i < 10; i++) {
       if (left_time < arr_steps[i] && left_time >= arr_steps[i+1]) {
         $("#sesja_imgs").css("background-position", '0px ' + arr_bg_pos[i] + 'px ');
         client_session_timeout = arr_steps[i];
         return;
       }
     }
   }
}
// prezentacja licznika po wygasnieciu sesji
function show_session_expired () {
  if (document.getElementById('session_time')) {
      var info = document.getElementById('sesja_info');
      info.innerHTML="<span session_expired='1' id='session_time'>sesja wygasła</span>";
  }
  $("#sesja_imgs").css("background-position", '0px 0px');
  $("#sesja_refresh").remove();
  var sesja_width = $("#sesja").width() - 30;
  var seja_info_width = $("#sesja_info").width() - 30;
  $("#sesja").css("width", sesja_width);
  $("#sesja_info").css("width", seja_info_width);
}
// zatrzymanie licznika sesji
function stopSessionTimer() {
    clearTimeout(timer);
}

/*****************************************************************
 *               ~~~~~ THE END ~~~~
 *****************************************************************/

