// Allgeneine Funktionen
// Erstellt: 21.11.2000 by JW
// Geändert: 05.04.2001 by JW
// Geändert: 22.06.2001 by AP (Fenster drucken)
// Geändert: 24.09.2001 by JW (opera)
// Geändert: 13.11.2001 by JW (linkOn/Off entfernt)
// Geändert: 18.03.2003 by JW (opera7)
// Geändert: 06.05.2003 by JW (docEl/winSize)

// some known objects
var nc    =  !!(document.captureEvents  && !document.getElementById);
var nc6   =  !!(document.captureEvents  && document.documentElement);
var op6   =  !!(document.getElementById && !document.documentElement);
var op7   =  !!(window.opera && /Opera( |\/)7/i.exec(navigator.userAgent));
var ie    =  !!document.all;
var ie4   =  !!(document.all           && !document.documentElement);
var ie5   =  !!(document.all           && document.documentElement);
var dom   =  !!document.getElementById;
var mac   =  !!(navigator.userAgent.indexOf("Mac")!=-1);
var docEl =  (document.documentElement && document.all && typeof document.compatMode != "undefined" && document.compatMode !=  "BackCompat")? "documentElement" : "body";

// Div-Layer Style referenzieren
function dRefS()
{
    var obj;
    if(nc)
	{
        obj											=	document.layers[arguments[0]];
        for(k = 1; k < arguments.length; k++) obj	=	obj.document.layers[arguments[k]];
    }
    else if(ie4)	obj								=	document.all[arguments[arguments.length-1]].style;
    else if(dom)	obj								=	document.getElementById(arguments[arguments.length-1]).style;
	else			obj								=	null;
    return obj;
}

// Div-Layer referenzieren
function dRef()
{
    var obj;
    if(nc)
	{
        obj											=	document.layers[arguments[0]];
        for(k = 1; k < arguments.length; k++) obj	=	obj.document.layers[arguments[k]];
    }
    else if(ie4)	obj								=	document.all[arguments[arguments.length-1]];
    else if(dom)	obj								=	document.getElementById(arguments[arguments.length-1]);
	else			obj								=	null;
    return obj;
}

// Imagereferenz
function imgRef(obj,img) {
    if(nc)         return obj.document.images[img];
    if(dom || ie4) return document.images[img];
}

//Div-Breite
function divBreit(obj) {
    if(dom)        obj.style.width = "auto";              // fuer NC 6 width auf auto setzen
    if(nc)         return obj.document.width;
    if(ie4 || dom) return obj.offsetWidth;
}

//Div-Hoehe
function divHoch(obj) {
    if(dom)        obj.style.height = "auto";              // fuer NC 6 width auf auto setzen
    if(nc)         return obj.document.height;
    if(ie4 || dom) return obj.offsetHeight;
}

// verschachtelte, geklippte Div-Layer Breite
function clDivBreit(obj) {
  if(nc)    return obj.document.width;
  if(ie)    return obj.offsetWidth;
  if(nc6)   return obj.firstChild.offsetWidth;             //setzt child voraus, z. B.: <nobr>, <p>
}

// div-groesse veraendern
function divSize(obj,br,ho) {
    if(nc) obj.resizeTo(br,ho);
    if(ie4 || dom) {
        obj.style.height = ho;
        obj.style.width  = br;
    }
}

// Groesse Browserfenster / Dokument
function winSize() {
	if (window.innerWidth) {
		breit   =  self.innerWidth;
		hoch    =  self.innerHeight;
		fbreit  =  self.document.width;
		fhoch   =  self.document.height;
	} else {
		breit   =  document[docEl].clientWidth;
		hoch    =  document[docEl].clientHeight;
		fbreit  =  document[docEl].scrollWidth;
		fhoch   =  document[docEl].scrollHeight;	
	}
}

// Position eines Elementes
function findPos() {

    var el      = arguments[0];
    var xPos    = 0;
    var yPos    = 0;

    if(nc) {
        for(i = 0; i < arguments.length; i++) {
            xPos += arguments[i].x;
            yPos += arguments[i].y;
        }
    }
    else {
        while(el){
            xPos += el.offsetLeft;
            yPos += el.offsetTop;
            if(!(ie4 && mac))   el  = el.offsetParent;  // alle anderen machens falsch...
            else el = el.parentElement; // nur ie4 am mac nicht ;-)
        }
    }
    return {xPos: xPos, yPos: yPos};
}

//  Fenster zentriert oeffnen
//  Parameter: "url",breite (number),hoehe (number),[optional scrollbalken, default = "yes"]
var neufenster		=	false;
function neuWin(page, br, ho) 
{
	var scr			=	(typeof arguments[3] != "undefined")? arguments[3]  : "yes";	
	var breit   	=	screen.availWidth;
    var hoch		=	screen.availHeight;
    var winPosX		=	(breit/2) - br/2;
    var winPosY		=	(hoch/2) - ho/2;
	neufenster		=	open(page,"","resizable=yes,scrollbars="+scr+",width="+br+",height="+ho+",left="+winPosX+",top="+winPosY);
	neufenster.focus();
}


function newWin(page, br, ho, scroll, status, tool, resize) 
{
	var breit   	=	screen.availWidth;
    var hoch		=	screen.availHeight;
    var winPosX		=	(breit/2) - br/2;
    var winPosY		=	(hoch/2) - ho/2;
	neufenster		=	open(page,"","width="+br+",height="+ho+",left="+winPosX+",top="+winPosY+",resizable="+resize+",toolbar="+tool+", status="+status+",scrollbars="+scroll);
	neufenster.focus();
}



// makes sure that browser does not take "page" from the cache
var jatofenster = "";
    function jatoWin(page, br, ho) {
        var ran     =   Math.floor((Math.random() * 10000) + 1); // Zufallsquery
        var url     =   page + "?" + ran;
        jatofenster =   window.open(url,"","resizable=yes,scrollbars=yes,width=" + br + ",height=" + ho);
        setTimeout('jatofenster.focus()',200);
  }

// layer schreiben
function writeDiv(obj,text) {
  if(nc) {
    with (obj.document) {
      open();
      write(text);
      close();
    }
  }
  if(ie || dom)obj.innerHTML = text;
}

//fenster drucken
function drucken() {
	if(self.print) self.print();
	else alert("Die automatische Druckfunktion steht bei ihrem Browser leider nicht zur Verfuegung");
}

//onerror = function(){alert("böse");return true;}