// JavaScript Document

function openWin(url,winname,width,height,posx,posy,scrollbars) {
  /* Oeffnet ein neues PopUp-Fenster mit den entsprechenden Parametern. Falls jene nicht
     gesetzt sind, werden sie mit Standardwerten belegt. */
  if((typeof winname)=='undefined') winname='merkmalPopup';
  if((typeof width)=='undefined') width=660;
  if((typeof height)=='undefined') height=500;
  if((typeof posx)=='undefined') posx=screen.availWidth/2-width/2;
  if((typeof posy)=='undefined') posy=screen.availHeight/2-height/2;

  if(navigator.platform.toLowerCase().indexOf("win")>-1) {
    objekt = window.open('', winname); // objekt.close();
  }
  
  if(url) {
    if((typeof objekt) != 'undefined') {
      /* Falls das Fenster schon geoeffnet ist, wird es geschlossen */
      if(!objekt.closed) objekt.close();
    }

    objekt = window.open(url,winname,'width='+width+',height='+height+',left='+posx+',top='+posy+',dependent=yes,hotkeys=no,location=no,menubar=no,resizable=yes,status=yes,scrollbars=auto,toolbar=no');

    objekt.focus
  } else {
    alert('Fehler openwin.1 - Keine URL fuer das PopUp uebergeben!');
    return false;
  }
}

function makeScrollbar(content,scrollbar,handle,horizontal,ignoreMouse){
  // var size = element.getSize().size.y;
  // var scrollSize = element.getSize().scrollSize.y;
  // content.getSize().scrollSize.y
//	var steps = (horizontal?(content.getScrollSize().x - content.getSize().x):(content.getScrollSize().y - content.getSize().y))
	var steps = (horizontal?(content.getSize().scrollSize.x - content.getSize().size.x):(content.getSize().scrollSize.y - content.getSize().size.y+40))
	var slider = new Slider(scrollbar, handle, {	
		steps: steps,
		mode: (horizontal?'horizontal':'vertical'),
		onChange: function(step){
			// Scrolls the content element in x or y direction.
			var x = (horizontal?step:0);
			var y = (horizontal?0:step);
			content.scrollTo(x,y);
		}
	}).set(0);
	
  document.getElementById('movedown').onclick = function() {
  	var step = slider.step + 40;	
		slider.set(step);
  };
  
  document.getElementById('moveup').onclick = function() {
  	var step = slider.step - 40;	
		slider.set(step);
  };

	// alert(slider)
	if( !(ignoreMouse) ){
		// Scroll the content element when the mousewheel is used within the 
		// content or the scrollbar element.
		$$(content, scrollbar).addEvent('mousewheel', function(e){	
			e = new Event(e).stop();
			var step = slider.step - e.wheel * 30;	
			slider.set(step);					
		});
	}
	// Stops the handle dragging process when the mouse leaves the document body.
//	$(document.body).addEvent('mouseleave',function(){slider.drag.stop()});
}

function addScrollbar()
{
  if(document.getElementById('contentscrollertext')!= null)
  {
    objheight = document.getElementById('contentscrollertext').offsetHeight;
    sclheight = document.getElementById('contentscrollertext').scrollHeight;
    if(sclheight>objheight)
    {
      scrollbar = document.createElement("div");
      scrollbar.id = 'scrollbar';
      scrollbar.innerHTML = '<div id="slider" class="scrollbar-vert"><div id="handle" class="handle-vert"></div></div><a href="javascript:void(0)" id="moveup"></a><a href="javascript:void(0)" id="movedown"></a>';
    
      document.getElementById('contentscroller').appendChild(scrollbar);
      
      makeScrollbar( $('contentscrollertext'), $('slider'), $('handle'), false, true );
    }
  }
}

function hide_bgmenu(alpha)
{
  if(alpha>0)
  {
    for(i=0; i<bgmenu_items.length; i++)
    {
      if(document.getElementsByTagName('body')[0].className!=bgmenu_items[i].id)
      {
        bgmenu_items[i].style.opacity = ''+(alpha/100);
        bgmenu_items[i].style.filter = 'alpha(opacity='+alpha+')';
      }
    }
    window.setTimeout('hide_bgmenu('+(alpha-5)+')',10);
  }
  else
  {
    for(i=0; i<bgmenu_items.length; i++)
    {
      bgmenu_items[i].className = 'bgmenu';
      bgmenu_items[i].style.opacity = '1';
      bgmenu_items[i].style.filter = 'alpha(opacity=100)';
    }
  }
}

function highlight_bgmenu()
{
  
  for(i=0; i<bgmenu_items.length; i++)
    bgmenu_items[i].className = 'bgmenu_highlight';

  window.setTimeout('hide_bgmenu(90)',1000);
}



/* TOOLTIP-CODE */
var moveInterval;
var ua = navigator.userAgent.toLowerCase();
var layername = 'tooltiplayer';

function myrex_showTooltip(text) {
  myrex_hideTooltip(); // deletes an image which is already shown

  if(text!=undefined)
  {
    text = unescape(text);
     // creates a new DIV-Element...
    var newDIV = document.createElement("div");
        newDIV.setAttribute("id",layername); 

    newDIV.style.visibility = "hidden";
          
    // creates the text to be shown in the DIV-Element
    // var newDIVText = document.createTextNode(text);

    // Sets the new elements onto the page
    document.getElementsByTagName("body")[0].appendChild(newDIV);
    // document.getElementById(layername).appendChild(newDIVText);
    document.getElementById(layername).innerHTML = text;
  
    // starts the function which lets the image follow the mouse-cursor
    moveInterval = window.setInterval("myrex_moveTooltip()", 10);
  }
}

function myrex_hideTooltip() {
  window.clearInterval(moveInterval); // stops the interval which lets the image follow the mouse-cursor
  
  if(document.getElementById(layername)!=undefined) {
    // deletes the image-div
    document.getElementById(layername).parentNode.removeChild(document.getElementById(layername));
  }
}

function myrex_moveTooltip() {
  // gets the image-size
/*
  width = document.getElementById(layername).style.width;
  width = width.substring(0,width.length-2); width = parseInt(width);
  height= document.getElementById(layername).style.height;
  height = height.substring(0,height.length-2); height = parseInt(height);
*/    
  width = document.getElementById(layername).offsetWidth;
  height = document.getElementById(layername).offsetHeight;

  // gets the window-size
  docwidth=document.all? myrex_truebody().scrollLeft+myrex_truebody().clientWidth : pageXOffset+window.innerWidth-15
  docheight=document.all? Math.min(myrex_truebody().scrollHeight, myrex_truebody().clientHeight) : Math.min(document.body.offsetHeight, window.innerHeight)

  // if the image would be shown outside of the viewable area of the page, it will stuck to the borders
  if(docwidth < 18+xmouse-myrex_truebody().scrollLeft+width+12)
    xpos =myrex_truebody().scrollLeft+xmouse-width-16;
  else
    xpos = xmouse+18;

//    alert(docwidth+" / "+(xmouse-myrex_truebody().scrollLeft+width+12));
  if(docheight < 18+ymouse-myrex_truebody().scrollTop+height+12)
    ypos = myrex_truebody().scrollTop+ymouse-Math.max(0,(height+12 + ymouse - docheight));
  else
    ypos = ymouse+18;

  xpos = xpos+"px";
  ypos = ypos+"px";
  
  if(document.all && ua.indexOf("msie")>-1) {
    // different syntax for MSIE
    document.getElementById(layername).style.setAttribute("top",ypos,false);
    document.getElementById(layername).style.setAttribute("left",xpos,false);
  } else {
    document.getElementById(layername).setAttribute("style","top: "+ypos+"; left: "+xpos+"; display: block;");

  }

  // show the image-DIV
  document.getElementById(layername).style.visibility = "visible";
}

function myrex_truebody()	{
  // right syntax for any browser (needed in "moveTooltip")
	return (!window.opera && document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}


/* Zum Speichern der Mausposition */
  var xmouse=0; var ymouse=0;  // Speichern die Mausposition
  navigator.appName ? 'Netscape' : document.captureEvents(Event.MOUSEMOVE);  // Mausposition erkennen fuer Netscape
  document.onmousemove = myrex_mauspos; // Die Mausposition wird bei jeder Mausbewegung neu geschrieben

function myrex_mauspos(e) {
/* Zum Abfragen der Mausposition - je nach Browser wird das anders erledigt. Am Ende werden die Daten fuer
   xmouse und ymouse in den globalen Variablen gespeichert. */
  if (navigator.appName == 'Netscape') {
     xmouse = e.pageX;
     ymouse = e.pageY;
  } else {
     xmouse = window.event.clientX;
     ymouse = window.event.clientY;
  }
  
  if(!(navigator.appName == 'Netscape')) {  
    if(document.documentElement && document.documentElement.scrollTop) {
      xmouse = xmouse + document.documentElement.scrollLeft;
      ymouse = ymouse + document.documentElement.scrollTop;
    } else if(document.body) {
      xmouse = xmouse + document.body.scrollLeft;
      ymouse = ymouse + document.body.scrollTop;
    }
  }
}

function attachTooltips() {
  for(i=0; i<bgmenu_items.length; i++)
  {
    bgmenu_items[i].rel = bgmenu_items[i].title;
    bgmenu_items[i].title = '';
    bgmenu_items[i].onmouseover = function() { myrex_showTooltip(this.rel) };
    bgmenu_items[i].onmouseout = function() { myrex_hideTooltip(); };
  }
}

function injectHtml(id,text)
{
  if(document.getElementById(id)!=null && typeof(document.getElementById(id))!='undefined')
    document.getElementById(id).innerHTML=decodeURIComponent(text);
}

var bgmenu_items;

window.addEvent('domready', function(){
  addScrollbar();
//  bgmenu_items = $('pagecontent').getElements('.bgmenu');
//  highlight_bgmenu();
});

function myrex_slideshow(dir) {
  if(parseInt(dir)>0)
  {
    show.options.direction='right';
    show.next();
  }
  else if(parseInt(dir)<0)
  {
    show.options.direction='left';
    show.previous();
  }
}
