////////////////////////////////////////////////////////////////////////////////////////////////
//
// jsbannrs.js, 2000-09-07 by pinne
//
// A function for randomly select and display banners. 
//
////////////////////////////////////////////////////////////////////////////////////////////////


// Cut'n paste browsercheck.
var agt=navigator.userAgent.toLowerCase();

var is_major = parseInt(navigator.appVersion);
var is_minor = parseFloat(navigator.appVersion);

var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
            && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
            && (agt.indexOf('webtv')==-1));
var is_nav2 = (is_nav && (is_major == 2));
var is_nav3 = (is_nav && (is_major == 3));
var is_nav4 = (is_nav && (is_major == 4));
var is_nav4up = (is_nav && (is_major >= 4));
var is_navonly      = (is_nav && ((agt.indexOf(";nav") != -1) ||
                          (agt.indexOf("; nav") != -1)) );
var is_nav5 = (is_nav && (is_major == 5));
var is_nav5up = (is_nav && (is_major >= 5));

var is_ie   = (agt.indexOf("msie") != -1);
var is_ie3  = (is_ie && (is_major < 4));
var is_ie4  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")==-1) );
var is_ie4up  = (is_ie  && (is_major >= 4));
var is_ie5  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) );
var is_ie5up  = (is_ie  && !is_ie3 && !is_ie4);

var is_aol   = (agt.indexOf("aol") != -1);
var is_aol3  = (is_aol && is_ie3);
var is_aol4  = (is_aol && is_ie4);

var is_opera = (agt.indexOf("opera") != -1);
var is_webtv = (agt.indexOf("webtv") != -1);

// Either I'm just plain stoopid or Netscape's lying like hell.
var add19cen = (is_nav && !is_nav5up) ? 1900 : 0;

//
// A helper
//
function BannerDate(ds) {
   var bd = new Date();
   var yearparts = ds.split('-');
   var ylen = yearparts[0] != '' ? yearparts.length : 0;

   var year =  ((ylen > 0 && yearparts[0] != '*')  ? yearparts[0] : bd.getYear() + add19cen);
   var month = ((ylen > 1 && yearparts[1] != '*') ? yearparts[1] : bd.getMonth() + 1);
   var date =  ((ylen > 2 && yearparts[2] != '*') ? yearparts[2] : bd.getDate());
   this.utc = Date.UTC(year - 1900, month -1, date);
}

//
// A helper
//
function DspBanner(doc, burl, bimg, target) {
   if(is_ie3) // I hope nobody is still using this ole bugger
      doc.open();

   target = (target != '' ? 'TARGET="' + target + '"' : '');

   doc.writeln('<A HREF="' + burl + '"' + target + '><IMG SRC="' + bimg + '" BORDER="0"></A>');

   if(is_ie3)
      doc.close();
}

var nextbbannerz = null;

//
// Another helper
//
function SemiRandom() {
   var t;
   var dd = new Date();
   if(typeof Math.random == "function") {
      t = Math.random();
      if(t < 0.0001)
         t = dd.getTime();
      else
         t = parseInt(t * 199919);
   } else
      t = dd.getTime();
   return t;
}


//
// Display a lil banner.
//
// Call with the document variable and a number => 0.
// If the number = 0 then a banner is picked randomly.
// If the number = 1,2,3... then in turn the 1'st, 2'nd resp 3'rd and so forth 
// banner after the randomly picked one is displayed.
//
function Banner(doc, dspnext) {
   if(dspnext > 0 && nextbbannerz != null) {
      dspnext--;
      DspBanner(doc, nextbbannerz[dspnext*3], nextbbannerz[dspnext*3+1], nextbbannerz[dspnext*3+2]);
      return;
   }
   if(typeof banners == "object") { // Just make sure someone included that other file, bannrlst.js
      var d = new BannerDate('');
      var bbanners = new Array();
      var i;

      for(i = 0; i < banners.length; i += 5) { // Check for unexpired banners
         var d0 = new BannerDate(banners[i+3]);
         var d1 = (banners[i+4] != '') ? new BannerDate(banners[i+4]) : d0;
         if(d0.utc <= d.utc && d.utc <= d1.utc) {
            bbanners[bbanners.length] = banners[i];
            bbanners[bbanners.length] = banners[i+1];
            bbanners[bbanners.length] = banners[i+2];
         }
      
      }
      nextbbannerz = null;
      if(bbanners.length > 1) { // If there were any unexpired
         var t = SemiRandom();
         t = t % (bbanners.length / 3); // Pick one allmost randomly;
         t *= 3;
         DspBanner(doc, bbanners[t], bbanners[t+1], bbanners[t+2]);

         if(bbanners.length > 4) { // Set the "next" banner if there are any more
            nextbbannerz = new Array(bbanners.length);
            for(i = 0; i < bbanners.length; i += 3) {
               nextbbannerz[i] = bbanners[(t+3+i) % bbanners.length];
               nextbbannerz[i+1] = bbanners[(t+4+i) % bbanners.length];
               nextbbannerz[i+2] = bbanners[(t+5+i) % bbanners.length];
            }
         }
      }
   } else
      alert('Could not find the banners! Is bannrlst.js included?');
}

function Probabil(probabil) {
   var oriprobabil = probabil;

   var d = new BannerDate('');
   var bbanners = new Array();
   var i;

   for(i = 0; i < banners.length; i += 5) { // Check for unexpired banners
      var d0 = new BannerDate(banners[i+3]);
      var d1 = (banners[i+4] != '') ? new BannerDate(banners[i+4]) : d0;
      if(d0.utc <= d.utc && d.utc <= d1.utc) {
         bbanners[bbanners.length] = banners[i];
         bbanners[bbanners.length] = banners[i+1];
      }     
   }

   var prober = new Array(bbanners.length / 2);
   var probeqnt = probabil;
   for(var q = 0; q < prober.length; q++)
      prober[q] = 0;
   probe = true;
   while(probabil > 0) {
      t = SemiRandom();

      t = t % (bbanners.length / 2); // Pick one allmost randomly;

      if(probe) {
         prober[t] = parseInt(prober[t]) + 1;
      }

      t *= 2;
      probabil--;
   }
var wind = window.open('', 'probability', 'width=400,height=450,resizable=yes,scrollbars=yes,toolbar=yes');
      var w;
wind.document.open();
wind.document.writeln('<HTML><BODY><CENTER><TABLE BORDER="1" WIDTH="100%"><TR><TH>BANNER PROBABILITY ' + probeqnt + ' POLLS.</TH></TR>');
      for(var q = 0; q < prober.length; q++) {
         w = parseInt(100.00 * prober[q] / probeqnt);
wind.document.writeln('<TR><TD><TABLE BORDER="0" BGCOLOR="#0000FF" WIDTH="' +  5 * w + '%"><TR><TD><FONT COLOR="FFFF00">' + q + ' / ' + w + '%</FONT></TD></TR></TABLE></TD></TR>');
      }
wind.document.writeln('</TABLE><A HREF="" onClick="window.opener.Probabil(' + oriprobabil + ')"><B>POLL AGAIN!</B></A>  or <A HREF="" onClick="window.close()"><B>CLOSE</B></A></CENTER></BODY></HTML>');
wind.document.close();
}

