var relogio = {

  maxerr: 0.2, // see value in NTP.js 	error = Math.round(Math.sqrt(sigma2/i)/10)/100;
  
  
    jsDevolveTimePlataforma : function(){
       var setD = 1
       var temp = ""
       var leap = 0.
    
       var off = NTP.getCookie("NTPClockOffset")
       var err = NTP.getCookie("NTPClockError")
       var syn = NTP.getCookie("NTPClockSync")

       if(!err){
              NTP.sync()
              if(!err){
                    err=10000000.
                    NTP.setCookie("NTPClockOffset",0);
                    NTP.setCookie("NTPClockError",err)
              }
       } else {
              var time = new Date();
              var gmtMS = NTP.getNow(); 
              if(err < relogio.maxerr){
                  gmtMS = NTP.fixTime(gmtMS) //adjust with NTP
                  var offdst = time.getTimezoneOffset() * 60000 * 1
                  gmtMS = gmtMS + (time.getTimezoneOffset() * 60000 * 1) // remove Time Zone offsets  
              }

          return new Date(gmtMS+ (3600000*gmtConfig));
      }
    },  

  jsClockGMT : function(){

     // Copyright 1999 - 2001 by Ray Stott
     // Modified 071205 - Carlos
     // Added leap second support 081216 - Carlos
     // Several additions like Sync cookie & beating on the second,... 090201 - Carlos
     


     
   if (!document.getElementById('clock0')) {
      return
   }
   var setD = 1
   var temp = ""
   var leap = 0.

   var off = NTP.getCookie("NTPClockOffset")
   var err = NTP.getCookie("NTPClockError")
   var syn = NTP.getCookie("NTPClockSync")
  // var lastT = NTP.getCookie("NTPClockLastT")



   if(!err){
          NTP.sync()
          if(!err){
                err=10000000.
	        NTP.setCookie("NTPClockOffset",0);
                NTP.setCookie("NTPClockError",err)
          }
   } else {
	  var time = new Date();
          var gmtMS = NTP.getNow(); 
          if(err < relogio.maxerr){
              gmtMS = NTP.fixTime(gmtMS) //adjust with NTP
	      var offdst = time.getTimezoneOffset() * 60000 * 1
              gmtMS = gmtMS + (time.getTimezoneOffset() * 60000 * 1) // remove Time Zone offsets  
          }
          

          
          var gmtTime =  new Date(gmtMS+ (3600000*gmtConfig))
          var timeOAL= new Date(gmtMS+ (3600000*gmtOAL));
          
          var diff = gmtTime.getTimezoneOffset() / 60;
          
          var hour = gmtTime.getHours()
          var minute = gmtTime.getMinutes()
   	      var second = gmtTime.getSeconds()
	      var mils = 1000 - gmtTime.getMilliseconds()
          
          
          var hour2 = timeOAL.getHours()
          var minute2 = timeOAL.getMinutes()
   	      var second2 = timeOAL.getSeconds()
	      var mils2 = 1000 - timeOAL.getMilliseconds()
          
          
            var year = gmtTime.getUTCFullYear();
      //      var month = monthNames[gmtTime.getUTCMonth()];
            var day = gmtTime.getUTCDate();
          
//	  if(Math.abs(time.valueOf()-lastT)>100){NTP.sync()}
//	  NTP.setCookie("NTPClockLastT",time.valueOf()+mils)
	  
   	 // temp =" | "+((hour < 10) ? "0" : "") + hour
   	 // temp += ((minute < 10) ? ":0" : ":") + minute
   	//  temp += ((second < 10) ? ":0" : ":") + second
         
         temp=gmtTime.toLocaleString()+" GMT "+gmtConfig;
         
         
          var temp2="";
          temp2 =((hour2 < 10) ? "0" : "") + hour2
		  temp2 += ((minute2 < 10) ? ":0" : ":") + minute2
		  temp2 += ((second2 < 10) ? ":0" : ":") + second2
          
           document.getElementById('offset').title=timeOAL.toLocaleString();

    //     document.getElementById('dia').innerHTML=day;
    //     document.getElementById('mes').innerHTML=meses[gmtTime.getUTCMonth()+1];
    //      document.getElementById('ano').innerHTML=year;
   //        temp2+=" GMT "+gmtConfig
         
   }

   if (err < relogio.maxerr){

	document.getElementById('clock0').innerHTML = temp;
        document.getElementById('offset').innerHTML =temp2;
	var desf= Math.abs(((parseFloat(off)+parseFloat(offdst))/1000)).toFixed(2)
	var delf= parseFloat(err).toFixed(2)
   } else {
        document.getElementById('clock0').innerHTML =temp.fontcolor("Red")
        document.getElementById('offset').innerHTML =temp2;
   }
 
 
 
   	 //codigo para fim entrega propostas
	 //falta fazer calculo do GMT
	 //******************************************************************************************
	 if($('contadorRegressivoPropostas') && $('dataLimiteProposta') ){
	   var labels = labelsPrazoRestante.split("|");
  
	   var dataLimitePropostaAux=$('dataLimiteProposta').innerHTML;
      
           if(dataLimitePropostaAux.blank()){
           //
           }else{
                var dataLimiteProposta=dataLimitePropostaAux.split(" ");
                var YY = dataLimiteProposta[0].substring(6,10);
                var MM = dataLimiteProposta[0].substring(3,5);
                var DD = dataLimiteProposta[0].substring(0,2);
                var HH = dataLimiteProposta[1].substring(0,2);
                var MI = dataLimiteProposta[1].substring(3,5);
                var SS = 00; 
                
                var hoje = timeOAL;
                var futuro = new Date(YY,MM-1,DD,HH,MI,SS);
                
                var ss = parseInt((futuro - hoje) / 1000);
                var mm = parseInt(ss / 60);
                var hh = parseInt(mm / 60);
                var dd = parseInt(hh / 24);
                
                ss = ss - (mm * 60);
                mm = mm - (hh * 60);
                hh = hh - (dd * 24);
                
                var faltam = '';
                faltam +=labels[0];
                faltam += (dd && dd > 1) ? dd+labels[1]+', ' : (dd==1 ? '1 '+labels[1]+', ' : '');
                faltam += (toString(hh).length) ? hh+' '+labels[2]+', ' : '';
                faltam += (toString(mm).length) ? mm+' '+labels[3]+' ' : '';
                faltam += ss+' '+labels[4]+'';
                
                if (dd+hh+mm+ss > 0) {
                 $('contadorRegressivoPropostas').show();
                $('contadorRegressivoPropostas').innerHTML = faltam;
                } else {
                $('contadorRegressivoPropostas').removeClassName('prazoRestante');
                }

           }
     }

	 
	 //fim codigo para entrega propostas
     //***************************************************************
 
 

   if(leap == 1. && gmtTime){
	var day = gmtTime.getDate()
	var month = gmtTime.getMonth()
	var year = gmtTime.getFullYear()
   	if(day == 31 && month == 11 && year == 2008 && hour == 23 && minute == 59 && second == 59){
		off = off - 1000.
		NTP.setCookie("NTPClockOffset",off)
		setTimeout("relogio.leapsecond()",mils)
   	} else {
		setTimeout("relogio.jsClockGMT()",mils)
	}
    }else{   
		setTimeout("relogio.jsClockGMT()",mils)
   }
  },
// leapsecond function outdated.. extensive chages in the original code...
  leapsecond : function(){

     // Copyright 1999 - 2001 by Ray Stott
     // Modified 071205 - Carlos
     // Added leap second support 081216 - Carlos
   if (!document.getElementById('clock0')) {
      return
   }
   var temp = ""

   var off = NTP.getCookie("NTPClockOffset")
   var sig2 = NTP.getCookie("NTPClockSigma2")

   if(!sig2){
          NTP.sync()
          if(!sig2){
                sig2=10000000.
	        NTP.setCookie("NTPClockOffset",0);
                NTP.setCookie("NTPClockSigma2",sig2)
          }
   } else {
	  var time = new Date();
          var gmtMS = NTP.getNow(); 
          if(sig2 < 300000.){
              gmtMS = NTP.fixTime(gmtMS) //adjust with NTP
              gmtMS = gmtMS + (time.getTimezoneOffset() * 60000 * 1) // remove Time Zone offsets
          }
   	  var gmtTime =  new Date(gmtMS+ (3600000*gmtConfig))
      var hour = gmtTime.getHours()
      var minute = gmtTime.getMinutes()
   	  var second = gmtTime.getSeconds()
	  var day = gmtTime.getDate()
	  var month = gmtTime.getMonth()
	  var year = gmtTime.getFullYear()
          
	  
   	  temp = " " + ((hour < 10) ? "0" : "") + hour
   	  temp += ((minute < 10) ? ":0" : ":") + minute
	  if(day == 31 && month == 11 && year == 2008 && hour == 23 && minute == 59 && second == 59){
	  	temp += ":60".fontcolor("Darkorange")
	  } else {
		temp += ((second < 10) ? ":0" : ":") + second
	  }
   }
   if (sig2 < 300000.){
	document.getElementById('clock0').innerHTML = temp+" GMT "+gmtConfig;
        document.getElementById('offset').innerHTML =temp2;
   } else {
        document.getElementById('clock0').innerHTML = temp.fontcolor("Red")+" GMT "+gmtConfig
        document.getElementById('offset').innerHTML =temp2;
   }

   setTimeout("relogio.jsClockGMT()",1000)

  }
}

