/**
 * Menüfunktionen
 *
 * $URL: svn://localhost/RBL-dev/tags/rbl_2009_11_27/js/menu.js $
 * $Rev: 990 $
 * $Author: jk $
 * $Date: 2009-11-18 18:45:38 +0100 (Mi, 18 Nov 2009) $
 */
 
var DHTML = false, DOM = false, MS = false, NS = false, OP = false;
var NS4 , NS6, NS61, MAC, MAC45, IE4, IE55, KONQ;
var BROWSER = new cBrowser();

//var browserOK=NS4 || NS6 || MS; // Menüfreigabe für Browser
var browserOK=true; // Test : alle Browser frei

var mitem = new Array();
var mitemop = new Array();
var menu = new Array();
var actmenuname;
var actmenuitemcnt;
var submenu="";
var mwidth=0;
var defaultMenu="";
var obj = null;
var tmpLayer = null;
var debugLayer = null;
var hoverstyle="color: #FFB000; text-decoration: none; font-size: 12px; font-weight: bold; font-family: Arial;";
var linkstyle= "color: #000000; text-decoration: none; font-size: 12px; font-weight: bold; font-family: Arial;";
var oldLoad = null;
var actlayername="m";
var actlayerx=0;
var actlayery=0;
var menutext='';
var menuready=false;
var mousex;
var mousey;
var menu_pattern;

DHTML_init();

if ((DOM) && (!MS)) document.onmouseover = MousePos; //

function MousePos(Ereignis)
{
    mousex = Ereignis.pageX;
    mousey = Ereignis.pageY;
}

function CM(mname) // Create Menu
{
  if (DOM) CM_DOM(mname);
  if ((IE4) || (NS4)) CM_OLD(mname);
}

function CM_DOM(mname) // Create Menu DOM-fähige Browser
{
var link="";
var linksubid="";
var top = 102;

var i=0;
  
  pleft=104;
  menutext='';
//  if (NS6) top+=2;

  menu[mname] = document.createElement("div");
  menu[mname].className = "jsmenu";
//  menu[mname].style.position = "absolute";
  menu[mname].style.left = pleft+"px";
  menu[mname].style.top = top+"px";
//  menu[mname].style.visibility = "hidden";
  menu[mname].onmouseover=clearclosetimer;
  menu[mname].onmouseout=setclosetimer;
  if (MS) {
//    menu[mname].style.filter = "blendTrans(Duration=0.5)";
//    menu[mname].style.filter = "revealTrans(Duration=0.5,Transition=12)";
  }

  itemnr=0;
  menu[mname].height = 0;
  for (var subid in mitem[mname])
  {
    if (mitem[mname][subid].rubrik)
    {
      var H = document.createElement("h4");
      var Htext = document.createTextNode(mitem[mname][subid].caption);
      H.appendChild(Htext);
      menu[mname].appendChild(H);
      menu[mname].height += 16;
    }
    else
    {
      var H = document.createElement("h5");
      var A = document.createElement("a");
      A.href = mitem[mname][subid].link;
      A.target = "_top";
      var Atext = document.createTextNode(mitem[mname][subid].caption);
      A.appendChild(Atext);
      H.appendChild(A);
      menu[mname].appendChild(H);
      menu[mname].height += 18;
    }
    itemnr++;
  }
  //menu[mname].height=itemnr*20;
  
  var topnode = document.getElementById('main');
  if ((topnode) && (topnode.nodeName == 'DIV'))
    topnode.appendChild(menu[mname]);
  else  
    document.getElementsByTagName("body")[0].appendChild(menu[mname]);
}

function CM_OLD(mname) // Create Menu alte Browser
{
var link="";
var linksubid="";
var top = 102;

var i=0;

  pleft=104;
  menutext='';
//  if (NS6) top+=2;
  if(IE4)
  {
    menutext+="<div id="+mname+" ";
    menutext+='style="position:absolute;left:'+pleft+'px;top:'+top+'px;width:120px;';
//    menutext+='background-color:#FAF7F0;visibility:hidden;filter:blendTrans(Duration=0.5);"';
    menutext+='background-color:#FAF7F0;visibility:hidden;"';
    menutext+=' onMouseover="clearclosetimer();" onMouseout="setclosetimer()">';
  }
  else if (NS4)
  {
    menu[mname] = new Layer(1);
    menu[mname].bgColor = "#FAF7F0";
    menu[mname].left = pleft;
    menu[mname].top  = top;
    menu[mname].visibility = 'hide';
    menu[mname].onmouseover=clearclosetimer;
    menu[mname].onmouseout=setclosetimer;
  }

  if (IE4)
  {
    menutext+='<table border=0 cellspacing=0 cellpadding=0 width=100% class="menuboxjs">';
  }
  else if (NS4)
  {
    menutext+='<table border=0 cellspacing=1 cellpadding=1 bgcolor=#B48860>';
    menutext+="<tr><td valign=top><table border=0 cellspacing=0 cellpadding=0 bgcolor=#FAF7F0 width=100%>";
  }

  itemnr=0;
  rubrik='';
  newrubrik='';
  for (var subid in mitem[mname])
  {
    if (mitem[mname][subid].rubrik)
      newrubrik=mitem[mname][subid].caption;
    else {
      if (rubrik!=newrubrik)
      {
        if (IE4)
        {
          if (rubrik!='')
            menutext+='</td></tr>';
          rubrik=newrubrik;
          menutext+='<tr><td class="colhead" bgcolor=#F4D8B0>'
          menutext+=rubrik+'</td></tr>';
          menutext+='<tr><td class="homebox">';
        }
        else if (NS4)
        {
          if (rubrik!='')
          {
            menutext+='</table>';
            menutext+='</td></tr>';
          }
          rubrik=newrubrik;
          menutext+='<tr><td class="colhead" bgcolor=#F4D8B0>'
          menutext+='<img src="/pic/pix.gif" align="left" border="0" width="4" height="14" alt="">';
          menutext+=rubrik+'</td></tr>';
          menutext+='<tr><td class="colhline"><img src="/pic/pix.gif" border="0" width="100" height="1" alt=""></td></tr>';
          menutext+='<tr><td class="homebox">';
          menutext+='<table border=0 cellpadding=0 cellspacing=0>';
        }
      }
//alert(mname+','+subid);
      if (IE4 || NS4)
        menutext += menuitem(mname,subid);
    }
    itemnr++;
  }

  if (rubrik!='')
  {
    menutext+='</table>';
    menutext+='</td></tr>';
  }


  if (IE4)
  {
    menutext+="</table>";
  }
  else if (NS4)
  {
    menutext+="</table>";
    menutext+="</td></tr>";
    menutext+="</table>";
  }

  if(IE4)
  {
    menutext+='</div>';
    document.all.tags("body")[0].insertAdjacentHTML("BeforeEnd",menutext);
  }
  else if (NS4)
  {
    menu[mname].document.open();
    menu[mname].document.write(menutext);
    menu[mname].document.close();
  }

}

function menuitem(mname,subid) // nur für CM_OLD
{
var icon,link,linksubid,lnk,caption;

  //if (icon[0]=='s')
  //  document.write('<td background="/flat/static/path_'+icon[1]+'.gif"><img src="/flat/static/path_s.gif" border=0></td>');

  caption=mitem[mname][subid].caption;
  if (caption=='') caption='&nbsp;';

  if (mitem[mname][subid].link.charAt(0)=='#')
  {
    link=mitem[mname][subid].link;
    link=link.substr(link.indexOf(";")+1,link.length);
    if (link.charAt(0)=='#')
    {
      linksubid=link.substr(1,link.length);
      link=mitem[subid][linksubid].link;
    }

    lnk='<a href="'+link+'" target=_top>'+caption+'</a>';
  }
  else
  {
    link=mitem[mname][subid].link;
    lnk='<a href="'+link+'" target=_top>'+caption+'</a>';
  }

  if (NS4)
    return '<tr><td><img src="/pic/menubullet_NS4.gif"></td><td class="menu"><nobr>'+lnk+'</nobr></td></tr>';
  else if (IE4)
    return '<nobr><img src="/pic/menubullet.gif"> '+lnk+'</nobr><br>';
}

function NM(mname) // New Menu
{
  mitem[mname] = new Array();
  mitemop[mname] = new Array();
  actmenuname = mname;
  actmenuitemcnt = 0;
}

function MI(iname,caption,link) // Menu Item
{
  mitem[actmenuname][iname]=new CMI(caption,link,false);
  mitemop[actmenuname][actmenuitemcnt]=iname;
  actmenuitemcnt++;
}

function MP(itemid, caption) // Menu Item: Link aus menu_pattern und itemid erzeugen
{
  link = menu_pattern.replace(/##/g, itemid);
  MI(itemid, caption, link);
}

function SP(pattern)
{
  menu_pattern = pattern;
}

function MR(iname,caption) // Menu Rubrik
{
  mitem[actmenuname][iname]=new CMI(caption,'',true);
  mitemop[actmenuname][actmenuitemcnt]=iname;
  actmenuitemcnt++;
}

function CMI(caption,link,rubrik)
{
  // evtl eine PHP Sessionid anhängen
  if (SESSID)
    if (link.indexOf(SESSID) == -1)
      if (link.search(/\?/) >= 0)
        link = link.concat('&'+SESSID);
      else
        link = link.concat('?'+SESSID);

  this.caption = caption;
  this.link    = link;
  this.rubrik  = rubrik;
}

function SM(mname,lnk)
{
  var t = -20;
  var h=0;
  var sh=0;

  if (menuready)
  {
    clear_menu();

    if(IE4)
    {
      t += window.event.y - document.body.scrollTop;
      h=document.all[mname].offsetHeight;
      sh=screen.availHeight-140;
//alert(window.event.y+','+document.body.scrollTop+','+document.body.clientHeight);
      if (t+h>sh) t=sh-h;
      document.all[mname].style.top = t;
//      document.all[mname].filters.blendTrans.Apply();  // einblenden
      document.all[mname].style.visibility = "visible";
//      document.all[mname].filters.blendTrans.Play();   // einblenden
    }
    else if(DOM)
    {
    	/*
      var topnode = document.getElementById('top');
      if ((topnode) && (topnode.nodeName == 'DIV')) {
        t -= 34;
      }
      if (MS)
      {
        t += window.event.y;
        h=menu[mname].offsetHeight;
        sh=document.documentElement.clientHeight;
        if (t+h>sh) t=sh-h;
        t+=document.body.scrollTop;
//alert('window.event.y:'+window.event.y+
//      '; menu[mname].offsetHeight:'+menu[mname].offsetHeight+
//      '; document.documentElement.clientHeight:'+document.documentElement.clientHeight+
//      '; document.body.scrollTop:'+document.body.scrollTop+
//      '; document.body.clientHeight:'+document.body.clientHeight);
      }
      else
      {
        t += mousey - 90;//+window.pageYOffset;
        h=menu[mname].height;
        sh=window.innerHeight;
        if (t+h>sh+window.pageYOffset) t -= t+h-(sh+window.pageYOffset);
      }
      */
      var pos = getPosition(document.getElementById('main'));
      t = - (2 + pos.y);
      pos = getPosition(lnk);
      t += pos.y;
      menu[mname].style.top = t+"px";
//      if (MS) menu[mname].filters.blendTrans.Apply();  // einblenden
//      if (MS) menu[mname].filters.revealTrans.Apply();  // einblenden
      menu[mname].style.visibility = "visible";
//      if (MS) menu[mname].filters.blendTrans.Play();   // einblenden
//      if (MS) menu[mname].filters.revealTrans.Play();   // einblenden
    }
    submenu = mname;
  }
}

function RM()
{
  if (menuready)
    setclosetimer();
}

function initmenu()
{
  init_menu();
  menuready=true;
}

function clear_menu()
{
  clearclosetimer();
  if (submenu!="")
  {
    if(IE4)
    {
//      document.all[submenu].filters.blendTrans.Apply();  // ausblenden
      document.all[submenu].style.visibility = "hidden";
//      document.all[submenu].filters.blendTrans.Play();   // ausblenden
    }
    else if(DOM)
    {
//      if (MS) menu[submenu].filters.revealTrans.Apply();  // ausblenden
      menu[submenu].style.visibility = "hidden";
//      if (MS) menu[submenu].filters.revealTrans.Play();   // ausblenden
    }
    else if(NS4)
      menu[submenu].visibility = "hide";
    submenu="";
  }
}

function setclosetimer()
{
  if (window.closetimer)
    window.clearTimeout(closetimer);
  closetimer=setTimeout("clear_menu()",1000);
}

function clearclosetimer()
{
  if (window.closetimer)
    window.clearTimeout(closetimer);
}

function unpacklink(link)
{
var p;
var f='';
  p=link.indexOf('~l');
  if (p>=0)
  {
    if(p>0) f=link.substring(0,p);
    switch (link.charAt(p+2))
    {
      case 't': return f+'/tabelle.php?ligaid='+link.substring(p+3,link.length); break;
      case 'e': return f+'/ergebnisse.php?ligaid='+link.substring(p+3,link.length); break;
      case 'p': return f+'/pokal.php?ligaid='+link.substring(p+3,link.length); break;
      case 's': return f+'/torschuetzen.php?ligaid='+link.substring(p+3,link.length); break;
      case 'h': return f+'/history.php?sel='+link.substring(p+3,link.length); break;
      case 'a': return f+'/az.php?saison='+link.substring(p+3,link.length); break;
    }
  }
  return link;
}

function cBrowser()
{
	this.OP = false;
    this.DHTML = false;
    this.DOM = false;
    this.IE = false;
    this.Version = 0;
    
	if (window.opera) this.OP = true;
	if(document.getElementById) {
		this.DHTML = true;
		this.DOM = true;
	}
	if(document.all && !OP) {
		this.DHTML = true;
		this.IE = true;
		var arVersion = navigator.appVersion.split("MSIE");
		this.Version = parseFloat(arVersion[1]);
	}
}


function getPosition(element)
/* der Aufruf dieser Funktion ermittelt die absoluten Koordinaten
   des Objekts element */
{
	var pos = {x:0, y:0};
	var o = element;
	while (o) {
		pos.y += o.offsetTop;
		pos.x += o.offsetLeft;
		o = o.offsetParent;
	}
	return pos;
}

function DHTML_init()
{
  if (window.opera)
    OP = true;
  if(document.getElementById)
  {
    DHTML = true;
    DOM = true;
  }
  if(document.all && !OP)
  {
    DHTML = true;
    MS = true;
  }
//alert('DOM='+DOM+'; MS='+MS);  
  NS4=(document.layers)?true:false
  NS6=(navigator.userAgent.indexOf("Gecko")!=-1)?true:false
  MAC=(navigator.appVersion.indexOf("Mac")!=-1)?true:false
  MAC45=(navigator.appVersion.indexOf("MSIE 4.5")!=-1)?true:false
  if(NS6||NS4) MAC=false
  NS61=(parseInt(navigator.productSub)>=20010726)?true:false
  IE4=(!document.getElementById&&document.all)?true:false;
  IE55=((navigator.appVersion.indexOf("MSIE 6.0")!=-1||navigator.appVersion.indexOf("MSIE 5.5")!=-1))?true:false;
  KONQ=(navigator.userAgent.indexOf("Konqueror")!=-1)?true:false;

//alert("UA:"+navigator.userAgent+"\nOP:"+OP+"\nDHTML:"+DHTML+"\nDOM:"+DOM+"\nMS:"+MS+"\nNS:"+NS+"\nNS4:"+NS4+"\nNS6:"+NS6+"\nMAC:"+MAC+"\nMAC45:"+MAC45+"\nNS61:"+NS61+"\nIE4:"+IE4+"\nIE55:"+IE55+"\nKONQ:"+KONQ+"\nBROWSER:"+BROWSER);
}
