var byid = false;
var scadenze = null;
var scadenzabig = null;

var gg = "";
var mm = "";
var yy = "";
var totaletime =0;
var tcounterminuti = 0; // caunter minuti
var countsecondi=0;
var countvariazione=0;
var coutsimulatore=0;
var pausasimulatore=0;
var simulatore=0;
var boolVariaIncorso=false;
var tabvariazioni = null;
var pag = null;
var totalmillisecondo = 0;
var reloadtime = 0;

function GetObjectByIdName(name){
	
	if(byid)return document.getElementById(name);
	else return document.all[name];
}

function motore(pagina){
	 byid = false;
	 scadenze = null;
	 scadenzabig = null;
	 gg = "";
	 mm = "";
	 yy = "";
	 totaletime =0;
	 tcounterminuti = 0; // caunter minuti
	 countsecondi=0;
	 countvariazione=0;
	 coutsimulatore=0;
	 pausasimulatore=0;
	 simulatore=0;
	 boolVariaIncorso=false;
	 tabvariazioni = null;
	 totalmillisecondo = 0;
	 reloadtime = 0;
	 
	// carica valori generali
	if(document.getElementById){byid=true;}
	// carico data dal server
	var response;
	if(pagina == "MyBIDorBID"){
		response = MyBIDorBID.GetScadenzeProdotti();
	}
	if(pagina == "RimborsoRevolving"){
		response = RimborsoRevolving.GetScadenzeProdotti();
	}
	if(pagina == "DettaglioAsteTerminate"){
		response = DettaglioAsteTerminate.GetScadenzeProdotti();
	}
	
	if(pagina == "RicaricaPortfolio"){
		response = RicaricaPortfolio.GetScadenzeProdotti();
	}
	if(pagina == "Invita"){
		response = Invita.GetScadenzeProdotti();
	}
	if(pagina == "AsteConcluse"){
		response = AsteConcluse.GetScadenzeProdotti();
	}
	if(pagina == "Blog"){
		response = Blog.GetScadenzeProdotti();
	}
	if(pagina == "TamTamInvito"){
		response = TamTamInvito.GetScadenzeProdotti();
	}
	if(pagina == "Login"){
		response = Login.GetScadenzeProdotti();
	}
	
	scadenze = response.value;
	SetScadenze(scadenze);

	response=null;
	if(pagina == "MyBIDorBID"){
		response = MyBIDorBID.GetDateTimeServer();
	}
	if(pagina == "RimborsoRevolving"){
		response = RimborsoRevolving.GetDateTimeServer();
	}
	if(pagina == "DettaglioAsteTerminate"){
		response = DettaglioAsteTerminate.GetDateTimeServer();
	}
	if(pagina == "RicaricaPortfolio"){
		response = RicaricaPortfolio.GetDateTimeServer();
	}
	if(pagina == "Invita"){
		response = Invita.GetDateTimeServer();
	}
	if(pagina == "AsteConcluse"){
		response = AsteConcluse.GetDateTimeServer();
	}
	if(pagina == "Blog"){
		response = Blog.GetDateTimeServer();
	}
	if(pagina == "TamTamInvito"){
		response = TamTamInvito.GetDateTimeServer();
	}
	if(pagina == "Login"){
		response = Login.GetDateTimeServer();
	}
	
	GestioneDataServer(response);
	pag = pagina;
	var dataattuale = new Date();
	totalmillisecondo = dataattuale.getTime();
	
	setTimeout(function(){GestioneMotore()}, 1000);
}

function GestioneMotore()
{
	var dta = new Date(); 
	var mils = dta.getTime();
	var diff = mils - totalmillisecondo;
	var step;
	if( diff < 1000){
	 step =  diff;
	 }else{
		var df = diff -1000;
		step = 1000 - df;
	 }
	totalmillisecondo = dta.getTime();
	
	GestioneStepSecondo();
	countsecondi +=1;
	tcounterminuti +=1;
	if(tcounterminuti == 60)
	{
		GestioneStepMinuto();
		tcounterminuti=0;
		reloadtime +=1;
	}
	if(reloadtime == 3){
		reloadtime=0;
		motore(pag);
		return;
	}
	setTimeout(function(){GestioneMotore()}, 998);

}
function GestioneStepSecondo()
{
	// gestione dei time a 1 secondo
	SetScadenze(scadenze);
	
}

function GestioneStepMinuto()
{
	// gestione time server
	var obj1 =  GetObjectByIdName("cpcontainer");
	totaletime += 1;
	var giorno = Math.floor((totaletime / 1440));
	var subG = totaletime - (giorno * 1440);
	var ore = Math.floor((subG / 60));
	var subH = subG - (ore *60);
	
	var minuti = subH;
	
	obj1.innerHTML = yy+ "-" + mm + "-" + gg + " " + ore + "." + minuti; // +1 ogni 60 sec
}
function GestioneDataServer(response)
{
	var data = response.value;
	var minuti = data.getMinutes();
	var ore = data.getHours();
	gg = data.getDate();
	mm = data.getMonth() + 1;
	yy = data.getFullYear();
	var giorno = 1;	
	var totale = (giorno * 24) * 60;
	totale += ore * 60;
	totale += minuti;
	totaletime = totale;
	
	var dateconteiner = GetObjectByIdName("cpcontainer");
	dateconteiner.innerHTML = yy + "-" + mm + "-" + gg + " " + ore + "." + minuti; // +1 ogni 60 sec
	
}
function SetScadenze(scadenze)
{
	var dt = scadenze;
	if(dt != null && typeof(dt) == "object")
	{
		for(var i=0; i< dt.Rows.length; i++)
		{
				var name_giorni = dt.Rows[i].giorni;
				var name_ore = dt.Rows[i].ore;
				var name_minuti = dt.Rows[i].minuti;
				var name_secondi = dt.Rows[i].secondi;
				
				var diff = dt.Rows[i].TotalSecods;
				var LabelPrezzo = dt.Rows[i].PrezzoAsta;
				diff = diff-countsecondi;
				
				// calcolo giorni ore minuti e secondi
				var giorni = Math.floor((diff / 86400));
				var subG = diff - (giorni * 86400);
				
				var ore = Math.floor((subG / 3600));
				var subM = subG - (ore * 3600);
				
				var minuti = Math.floor(subM / 60);
				var subS = subM -(minuti * 60);
				
				var secondi = Math.floor(subS/1);
				
				
				var classe= null;
				if(giorni > 0){classe = "indicatorescadenza";}else{classe = "indicatorescadenzazero";}
				
				if((giorni == 0 && ore == 0 && minuti == 0 && secondi == 0)
					|| (giorni < 0 || ore < 0 || minuti < 0 || secondi < 0)
				){
					var guid = dt.Rows[i].GUID;
					if(pag == "MyBIDorBID"){
						MyBIDorBID.ClosedAsta(guid)
					}
					
					classe = "Closed"; 
					document.getElementById(name_giorni).className = classe;
					document.getElementById(name_giorni).innerText = "Asta Terminata";
					document.getElementById(name_ore).style.visibility ='hidden';
					document.getElementById(name_minuti).style.visibility ='hidden';
					document.getElementById(name_secondi).style.visibility ='hidden';
				}else{
					
					document.getElementById(name_giorni).className = classe;
					document.getElementById(name_giorni).innerText = giorni;
					
					document.getElementById(name_ore).className = classe;
					document.getElementById(name_ore).innerText = ore;
					
					document.getElementById(name_minuti).className = classe;
					document.getElementById(name_minuti).innerText = minuti;
					
					document.getElementById(name_secondi).className = classe;
					document.getElementById(name_secondi).innerText = secondi;
					
				}
			
		}
		
	}
}
