/*
  Banner-Verwaltung
*/

/*
  banner
  .id
  .link
*/
var banner = new Array();
var sbanner = new Array();
var bannerTargets  = new Array();
var sbannerTargets  = new Array();

function banner_readAll()
{
 /*
   banner - typ - id - imgTyp - owner - unused 
 */
  var re=/banner\-(\d*)\-(\d*)\-(\d*)\-(\d*)/gi;
  var alp = document.getElementsByTagName("div");
  for (var i=0; i < alp.length; i++)
  {
    var node = alp[i];
    var nid = node.id;
    re.lastIndex=0;
    var gto = re.exec(nid);
    if (gto != null)
    {
      var typ = parseInt(gto[1]);
      var id = parseInt(gto[2]);
      var imgTyp = parseInt(gto[3]);
      var owner = parseInt(gto[4]);
      link = "";
      if (node.firstChild != null) link = node.firstChild.data;

      var tn = new Object();
      tn.id = id;
      tn.link = link;
      tn.imgTyp = imgTyp;
      tn.owner = owner;
      tn.shown = false;
      if (typ == 1 || typ == 2) banner.push(tn);
      if (typ == 3 || typ == 4 || typ == 5) sbanner.push(tn);
    }
  }
}

function banner_addTarget(target)
{
  bannerTargets.push(target)
}

function banner_readTargets()
{
  /* Die Ziffern bedeuten
    S = Seite
    T = Zwischen den Tabellen
    id
    amount
    style
  */
  var re=/banner(T|S)(\d*)\-(\d*)\-(\d*)/gi;
  var alp = document.getElementsByTagName("div");
  for (var i=0; i < alp.length; i++)
  {
    var node = alp[i];
    var nid = node.id;
    re.lastIndex=0;
    var gto = re.exec(nid);
    if (gto != null)
    {
      var typ = gto[1];
      var id = parseInt(gto[2]);
      var amount = parseInt(gto[3]);
      var style = parseInt(gto[4]);
      //link = "";
      //if (node.firstChild != null) link = node.firstChild.data;

      var tn = new Object();
      tn.id = id;
      tn.amount = amount;
      tn.target = node;
      tn.style = style;
      //tn.link = link;
      if (typ == 'T') bannerTargets.push(tn);
      if (typ == 'S') sbannerTargets.push(tn);
    }
  }
}

function banner_distribute()
{
  jscmdWrite("banner_distribute (start) ",1,0);
  var loc = "./";
  var re=/(http:\/\/[^\/]+\/)/gi;
  re.lastIndex=0;
  var gto = re.exec(document.location);
  if (gto != null)
  {
    loc = gto[1];
  }

  // random mixing 1
  for (var i1 = 0; i1 < 3; i1++)
  {
    for (var i2 = 0; i2 < banner.length; i2++)
    {
      var r = Math.floor(Math.random() * banner.length);
      if (r != i2)
      {
        var h = banner[i2];
        banner[i2] = banner[r];
        banner[r] = h;
      }
    }
  }

  // random mixing 2
  for (var i1 = 0; i1 < 3; i1++)
  {
    for (var i2 = 0; i2 < sbanner.length; i2++)
    {
      var r = Math.floor(Math.random() * sbanner.length);
      if (r != i2)
      {
        var h = sbanner[i2];
        sbanner[i2] = sbanner[r];
        sbanner[r] = h;
      }
    }
  }

  // i = index des Banners
  // j = interner Bannerzähler
  // i1 = index des Bannertargets
  
  // Textbanner
  if (0 < bannerTargets.length && 0 < banner.length)
  {
    var i = 0;
    var j = 0;
    for (i1 = 0; i1 < bannerTargets.length; i1++)
    {
      var bt = bannerTargets[i1].target;
      removeAllChildren(bt);
      if (bannerTargets[i1].style == 0)
      {
        //bt.style.textAlign = "center";
      }
      for (i2 = 0; i2 < bannerTargets[i1].amount; i2++)
      {
        j = (j+1) % 5;
        btc = domFDiv(bt);
        //btc.style.width = "80%";
        //btc.style.paddingLeft = "80%";
        btf = domFDiv(btc);
        btf.className = "adv-text";
        if (j == 0 || j == 2 || j == 3) {
        	var eBanner = getExternalBanner(0);
        	//btf.style.paddingLeft = "16%";
        	//alert (eBanner);
        	btf.innerHTML = eBanner;
        	
        } else {
          ii = i++ % banner.length;
          var nr = String(banner[ii].id);
          while (nr.length < 8) nr = "0" + nr;
          imgTyp = (banner[ii].imgTyp==0)?"gif":"jpg";
          loca = loc.concat("banner/banner",nr,".",imgTyp);

          if (6 < banner[ii].link.length)
            reda = loc.concat("redirect.php?id=",banner[ii].id,"&url=",escape(banner[ii].link));
          else
          {
            b = true;
            if (banner[ii].link == "hot" || banner[ii].link == "hotpopup")
            {
               b = false;
               reda = loc.concat("hotornotUser2.php?", "userID=", getUserID(), "&sessionID=", getSessionID(), "&gstyle=", getGstyle());
            }
            if (b)
               reda = loc.concat("profil.php?", "userID=", getUserID(), "&sessionID=", getSessionID(), "&gstyle=", getGstyle(), "&userTo=", banner[ii].owner,"&bannerUd=",banner[ii].id);
          }
          var ai = domImg(loca);
          var a = null;
          if (6 < banner[ii].link.length)
          {
            a = domRef(ai,"JavaScript:window.open('" + reda + "');",btf);
          }
          else
          {
            a = domRef(ai,reda,btf);
          }
          ai.style.padding = "1pt";
          ai.style.border = "0pt solid black";
        }
      }
    }
  }

  // Seitenbanner
  if (0 < sbannerTargets.length && 0 < sbanner.length)
  {
    var i = 0;
    var ii;
    var reda;
    var bmax = sbanner.length;
    bmax = 3;
    for (i1 = 0; i1 < sbannerTargets.length; i1++)
    {
      var bt = sbannerTargets[i1].target;
      removeAllChildren(bt);
      bt.style.textAlign = "center";
      var amount = sbannerTargets[i1].amount;
      for (i2 = 0; i2 < amount; i2++)
      {
        ii = i++ % sbanner.length;
        if (i < bmax) {
          if (0 < i2) domBreak (bt);
          jscmdWrite("Seitenbanner: " + i2 + " (" + sbannerTargets[i1].amount + ") - " + ii,0,1);
          var nr = String(sbanner[ii].id);
          while (nr.length < 8) nr = "0" + nr;
          var imgTyp = (sbanner[ii].imgTyp==0)?"gif":"jpg";
          var loca = loc.concat("banner/banner",nr,".",imgTyp);
          if (6 < sbanner[ii].link.length)
            reda = loc.concat("redirect.php?id=",sbanner[ii].id,"&url=",escape(sbanner[ii].link));
          else
            reda = loc.concat("profil.php?","userID=",getUserID(),"&sessionID=",getSessionID(),"&gstyle=",getGstyle(),"&userTo=", sbanner[ii].owner,"&bannerUd=",sbanner[ii].id);
          var ai = domImg(loca);
          var a = null;
          if (6 < sbanner[ii].link.length)
          {
            a = domRef(ai,"JavaScript:bannerOpen('" + reda + "');",bt);
            //a = domRef(ai,".",bt);

          }
          else
          {
            a = domRef(ai,reda,bt);
          }
          ai.style.padding = "1pt";
          ai.style.border = "0pt solid black";
        }
        else {
          var itr = getnextThread_inline();
          bt.appendChild(itr);
        }
      }
    }
  }
  jscmdWrite("banner_distribute (ende) ",1,0);
}

function getExternalBanner(mode) {
 var erg = "<div>Hallo<br>Das ist ein externer Banner</div>";
 
 if (1 < window.parent.frames.length) {
 	erg = window.parent.frames[0].getBanner(mode);
 }
 return erg;
}

function bannerOpen(ref)
{
  ownwindow(0,ref , 0);
}
