
function bkGetFreq()
 {
  var dc = document.cookie;
  var prefix = this.name + "=";
  var begin = dc.indexOf("; " + prefix);

  if (begin == -1) 
   {
    begin = dc.indexOf(prefix);

    if (begin != 0)
     { 
      return 0;
     }
   }
  else
   {
    begin += 2;
   }

  var end = document.cookie.indexOf(";", begin);

  if (end == -1)
   {
    end = dc.length;
   }

  this.freq = parseInt(unescape(dc.substring(begin + prefix.length, end))); 

  return this.freq;
 }

function bkIncFreq()
 {
  this.freq = this.bkGetFreq() + 1;

  document.cookie = this.name + "=" + escape(this.freq) + ";expires=" + this.expire.toGMTString();

  return this.freq;
 }

function bkFreq(name, expire_min)
 {
  var now = new Date();
  var base = new Date(0);
  var skew = base.getTime();

  if (skew > 0)
   {
    now.setTime(now.getTime() - skew); 
   }

  if (expire_min > 0)
   {
    this.expire = new Date(now.getTime() + expire_min * 60 * 1000);
   }

  this.name = name;
  this.freq = 0;
  this.bkGetFreq = bkGetFreq;
  this.bkIncFreq = bkIncFreq;
 }

function bkSwitch(big_name, small_name, show_big)
 {
  document.getElementById(big_name).style.display = show_big ? 'inline' : 'none';
  document.getElementById(small_name).style.display = show_big ? 'none' : 'inline';
 }

function bkFlipper(name, big_name, small_name, timeout, frequency, frequency_timeout)
 {
  var f = new bkFreq(name, frequency_timeout);

  if (f.bkIncFreq() <= frequency)
   {
    bkSwitch(big_name, small_name, true);

    if (timeout > 0)
     {
      window.setTimeout('bkSwitch("' + big_name + '","' + small_name + '",false);', timeout * 1000);
     }
   }
  else
   {
    bkSwitch(big_name, small_name, false);
   }
 }

