<!-- Hide me from old browsers
function GetXmlHttpObject(){
    var xmlHttp=null;
    try {
        xmlHttp=new XMLHttpRequest();
    } catch (e){
        try {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return xmlHttp;
}
function getByID(whichLayer)
{
    var elem;
    if(document.getElementById) elem = document.getElementById(whichLayer);
    else if(document.all) elem = document.all[whichLayer];
    else if(document.layers) elem = document.layers[whichLayer];
    return elem;
}
function getViewport(){
    var viewport = {width:0,height:0};
    if (typeof(window.innerHeight)=='number'){
        viewport.height=window.innerHeight;
        viewport.width=window.innerWidth;       
    }else{
        if (document.documentElement&&document.documentElement.clientHeight){
            viewport.height=document.documentElement.clientHeight;
            viewport.width=document.documentElement.clientWidth;
        }else{
            if (document.body&&document.body.clientHeight){
                viewport.height=document.body.clientHeight;
                viewport.width=document.body.clientWidth;
            }
        }
    }
    return viewport;
}
// Show/Hide layers
var displayProp='block';
function toggleLayer( whichLayer ){
  var elem, vis;
  elem=getByID(whichLayer);
  vis=elem.style;
  // if the style.display value is blank we try to figure it out here
  if(vis.display==''&&elem.offsetWidth!='undefined'&&elem.offsetHeight!='undefined') {
      vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?displayProp:'none';
  }
  vis.display = (vis.display==''||vis.display==displayProp)?'none':displayProp;
}

function rowOverEffect(object) {
   if (object.className == 'dataTableRow') object.className = 'dataTableRowOver';
}
function rowOutEffect(object) {
   if (object.className == 'dataTableRowOver') object.className = 'dataTableRow';
}

// Countdown timer
var timer = new Array();
var secsRemaining = new Array();
function displayTimer(styleid, extended){
  if (secsRemaining[styleid] <= 0){
    document.getElementById(styleid).innerHTML = '<b>'+TEXT_TIMER_EXPIRED+'.</b>';
    clearInterval(timer[styleid]);
    return;  
  }
  var oneMin = 60;
  var oneHour = 60 * oneMin;
  var oneDay = 24 * oneHour;
  var days = Math.floor(secsRemaining/oneDay);
  var secsLeft = secsRemaining[styleid] - days * oneDay;
  var hours = Math.floor(secsLeft/oneHour);
  secsLeft = secsLeft - hours * oneHour;
  var mins = Math.floor(secsLeft/60);
  var secs = secsLeft - mins * 60;
  var out = '';
  if (extended) {
    out = days >= 2 ? days+' '+TEXT_TIMER_DAYS+' ' : (days == 1 ? TEXT_TIMER_1_DAY+' ' : '');
	out = out + hours >= 2 ? hours + ' '+TEXT_TIMER_HOURS+' ' : (hours == 1 ? TEXT_TIMER_HOUR+' ' : '');
	out = out + mins + ' '+TEXT_TIMER_MINUTES+' ';
	out = out + secs + ' '+TEXT_TIMER_SECONDS;  		
  } else {
  	out = days >= 2 ? days+' '+TEXT_TIMER_DAYS+' ' : (days == 1 ? TEXT_TIMER_1_DAY+' ' : '') + ' ';
  	out = out + padZero(hours)+':'+padZero(mins)+':'+padZero(secs);
  }  
  document.getElementById(styleid).innerHTML = out;
  secsRemaining[styleid] = secsRemaining[styleid] - 1;
}
function padZero(num){
  return ((num<10?'0':'') + num);
}
function showRemainingTime(styleid, extended){
  displayTimer(styleid, extended);
  var func = "displayTimer('"+styleid+"', "+extended+")";
  timer[styleid] = setInterval(func, 1000);
}
<!-- stop hiding -->
