var tzc={
  tFmt:'dd/MM HH:mm',
  initialized:false,
  init:function(sFormat,sFuso)
  {
    if(sFormat!==undefined&&sFormat!=null&&sFormat!='') tzc.tFmt=sFormat;
    tzc.initialized=true;
    var c = Cookie.get('TZC');
    if (c!==undefined&&c!=null&&c=='1')
      tzc.clientTime(sFuso);
    else
      tzc.localTime();
  },
  refreshAfterAjax: function ()
  {
    if (tzc.initialized!=true) return;
    var c=Cookie.get('TZC');
    if (c!==undefined&&c!=null&&c=='1')
      tzc.clientTime(); 
    else
      tzc.localTime();
  },
  localTime:function()
  {
    $('tzcLocal').show();
    $('tzcClient').hide();
    var mts=document.getElementsByClassName ('timeConvertible');
    mts.each(function(mt){
      if (mt.readAttribute('title')!=null&&mt.readAttribute('title').length>0)
      {
        var s=mt.readAttribute('title').split(',')
        if (s.length>0)
        {
        //var t2=tzc.formatDate(tzc.decodeUTC(s[1]));
        mt.update(s[0].toLowerCase());
        
        //mt.update(t2);
        mt.removeClassName ('TZCclient');
        }
      }   
    });    
    Cookie.set('TZC','0',365,'/','');
  },
  clientTime:function(sFuso)
  {
    $('tzcClient').show();
    $('tzcLocal').hide();
    
    var mts=document.getElementsByClassName ('timeConvertible');
    mts.each(function(mt){
      if (mt.readAttribute('title')!=null&&mt.readAttribute('title').length>0)
      {
        var s=mt.readAttribute('title').split(',')
        if (s.length>0)
        {
        var t=tzc.formatDate(tzc.decodeUTC(s[1],sFuso));
        
        mt.update(t);
        mt.addClassName ('TZCclient');
        //alert(s[1]+' | '+tzc.decodeUTC(s[1])+' | '+t);
        }
      }   
    });    
    Cookie.set('TZC','1',365,'/','');
},
  padString:function(s,l,pc){while(s.length<l){s=pc+s};return s;},
  formatDate:function(d){
    var _d=tzc.padString(d.getDate().toString(),2,'0'),_M=tzc.padString((d.getMonth()+1).toString(),2,'0'),_y=tzc.padString((d.getFullYear()%1000).toString(),2,'0'),_h=tzc.padString(d.getHours().toString(),2,'0'),_m=tzc.padString(d.getMinutes().toString(),2,'0');
    //american format date
    var _a
    
     //_h = (_h==0) ? "12" : _h;
    //_a = (_h >= 12) ? "pm" : "am"
    // _h = (_h > 12) ? _h - 12 : _h;
    //if (_h < 10) _h="0"+_h;
    //if(tzc.tFmt=='dd/MM/yy HH:mm') return _d+'/'+_M+'/'+_y+' '+_h+':'+_m;
    //if(tzc.tFmt=='dd/MM HH:mm aa') return _M+'/'+_d+' '+_h+':'+_m+_a;
    //if(tzc.tFmt=='HH:mm') return _h+':'+_m;
    //if(tzc.tFmt=='dd/MM HH:mm') return  _d+'/'+_M+' '+_h+':'+_m;
    
    return  _d+'/'+_M+' '+_h+':'+_m;
  },
  decodeUTC:function(n,sFuso)
  {
    var _m=n%100,_h=Math.floor(n/100)%100,_d=Math.floor(n/10000)%100,_M=(Math.floor(n/1000000)%100) -1,_y=Math.floor(n/100000000),_dt=new Date();
    var localTime=new Date();
    var locFuso = localTime.getTimezoneOffset()/60;
    var msutc= Date.UTC(_y,_M,_d,_h,_m);
    _dt.setTime(msutc - (sFuso * 3600000) + (locFuso * 3600000)); // ---------->>>> - 8 is Beijing GMT * -1
    //_dt.setTime(Date.UTC(_y,_M,_d,_h,_m));
    return _dt
  }
  
}


