////////////////////// INICI CONTROL REFRESC ///////////////////////////////////
function isDefined(variable) {
    return (typeof (variable) == "undefined") ? false : true;
}

/*Quan entrem estem actius*/
var controlIdle = false;
var isInit = false;

function ControlRefresc() {
	//Jo mateix
	var _self = this;	
	//Els segons de refresc (default 5 minuts = 300000)
	var refrescInterval = 600000;
	//Els segons cada quan comprovem (10 segons = 10000)
	var pingInterval = 10000;	
	// contador d'inactivitat / unitats en ping interval
	var contadorIdle = 0;	
	// refresc per inactivitat (30 minuts = 1800000)
	var refrescByIdle = 1800000;
	
	this.timerPing = null;
	this.refrescPing = null;
	
	this.init = function() {
		contadorIdle = pingInterval * 2;
	
		if (this.timerPing != null) {
			clearTimeout(ControlRefresc.timerPing);
		}
		
		if (this.refrescPing != null) {
			clearTimeout(ControlRefresc.refrescPing);
		}
		
		this.timerPing = setTimeout("ControlRefresc.ping()", pingInterval);
	};
	
	this.ping = function() {
		if (this.timerPing != null) {
			clearTimeout(ControlRefresc.timerPing);
		}
		
		//Quan fem ping cal comprovar si tenim el focus i en aquest cas quan de temps hem estat inactiu
		if (controlIdle == false) {
			//estic mirant
			if (this.refrescPing != null) {
				clearTimeout(ControlRefresc.refrescPing);
			}						
						
			if (contadorIdle > refrescByIdle) {			
				ControlRefresc.refresc();
				contadorIdle = pingInterval * 2;
			}
			
			contadorIdle = contadorIdle + pingInterval;			
		} else {
			//Estic IDLE, NO ESTIC MIRANT per tant cada 5 minuts farem refresc de la p�gina
			this.refrescPing = setTimeout("ControlRefresc.refresc()", refrescInterval);			
		}
		
		this.timerPing = setTimeout("ControlRefresc.ping()", pingInterval);
	};
	
	this.refresc = function() {
		top.location.reload();
	};
}

var ControlRefresc = new ControlRefresc();

function setIdle() {
	ControlRefresc.init();
}

function initialize() {  	
    if (isDefined(window.onfocus) && isDefined(window.onblur)) {    
        window.onfocus = function () {
            controlIdle = false;
            setTimeout("setIdle()", 5000);
        };
        window.onblur = function () {
            controlIdle = true;
        };
    } else {    
        document.onfocus = function () {
            controlIdle = false;
            setTimeout("setIdle()", 5000);
        };
        document.onblur = function () {
            controlIdle = true;
        };
    }
    
    ControlRefresc.init();
}

window.onload = initialize;
////////////////////// FI CONTROL REFRESC ///////////////////////////////////
