// - Basis-Funktionen fuer tinyEdit 1.0 ----

// - BG-Position body fixen ---
function initTextResize()  {
   var iBase = TextResizeDetector.addEventListener(onFontResize,null);
   setBodyBgPosition();
}
function onFontResize(e,args) {
	setBodyBgPosition();
}
function setBodyBgPosition() {
	//var bgPos = getElementHeight('quick_nav') + getElementHeight('nav_level_1');
	var bgPos = findPosY(document.getElementById('head'));
	document.getElementsByTagName('body')[0].style.backgroundPosition = '0 ' + bgPos + 'px';
}
 function findPosX(obj) {
    var curleft = 0;
    if(obj.offsetParent)
        while(1) 
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
  }
  function findPosY(obj) {
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
  }
  
// - Basisfunktionen laden ----
function initBasics() {
	changeElmClass(document.getElementById('column_content'),'p','effects');
	changeRowClass(document.getElementById('column_content'),'effects','tabtitle');
	initZebraTable(document.getElementById('column_content'),'zebra','dark-light');
	activateElms('activate','activated');
}

// - Link-Title nach Popup uebergeben ----
function appendImgTitle() {
	var holdTitles = document.getElementsByTagName('a');
	for (var ct=0;ct<holdTitles.length;ct++) {
		if (holdTitles[ct].href.search(/popup\.asp\?f=/) != -1 && holdTitles[ct].getAttribute('title')) {
			holdTitles[ct].href = holdTitles[ct].href + '&t=' + encodeURIComponent(holdTitles[ct].getAttribute('title'));
		} 
	}
}

// - Unsichtbare Elemente aktivieren ----
function activateElms(oldClass,newClass) {
	var activateElms = document.getElementsByTagName('*');
	var testElm = new RegExp('(^|\\s)'+oldClass+'(\\s|$)');
	for (var ct1=0;ct1<activateElms.length;ct1++) {
		if (testElm.test(activateElms[ct1].className)) {
			activateElms[ct1].className = activateElms[ct1].className.replace(oldClass,newClass);
		}
	}
}

// - Element-Breite ermitteln ----
function getElementWidth(elmID) {
	if(document.getElementById && document.getElementById(elmID)) {
		var xPos = document.getElementById(elmID).offsetWidth;
	}
	return xPos;
}

// - Element-Hoehe ermitteln ----
function getElementHeight(elmID) {
	if(document.getElementById && document.getElementById(elmID)) {
		var yPos = document.getElementById(elmID).offsetHeight;
	}
	return yPos;
}

// - Browser-Breite ----
function getBrowserWidth() { 
	if (window.innerWidth) {
		return window.innerWidth; 
	} else if (document.documentElement && document.documentElement.clientWidth != 0) {
		return document.documentElement.clientWidth; 
	} else if (document.body) {
		return document.body.clientWidth; 
	}
	return 0; 
}

// - Browser-Hoehe ----
function getBrowserHeight() { 
	if (window.innerHeight) {
		return window.innerHeight; 
	} else if (document.documentElement && document.documentElement.clientHeight != 0) {
		return document.documentElement.clientHeight; 
	} else if (document.body) {
		return document.body.clientHeight; 
	}
	return 0; 
}

// - Element nach Container, Klasse und Tagname ermitteln ----
function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];      
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }   
    }
    return (arrReturnElements)
}

// - Abfrage der Klasse eines Elements ----
function elementHasClass(elmPath,elmClass) {
	return (elmPath.className && elmPath.className.search(new RegExp(elmClass))>-1);
}

// - Zufallszahlen generieren ----
function getRandomNum() {
    var rndNum = Math.random()
    rndNum = parseInt(rndNum * 1000);
    rndNum = (rndNum % 94) + 33;
    return rndNum;
}

// - Auslesen von Werten von Formularfeldern und selektierten Eintraegen in Selects ----
function getFldValue(fldName) {
	if (document.getElementById(fldName)) {
		if (document.getElementById(fldName).nodeName == 'SELECT') {
			return document.getElementById(fldName)[document.getElementById(fldName).selectedIndex].value;
		} else {
			return document.getElementById(fldName).value;
		}
	} else {
		return '';
	}
}

// - Auslesen von Werten aus Tags ----
function getTagValue(tagPath) {
	if (tagPath) {
		if (tagPath.hasChildNodes) {
			var tagValue = '';
			for (var ct1=0;ct1<tagPath.childNodes.length;ct1++) {
				tagValue += tagPath.childNodes[ct1].data;
			}
			return tagValue;
		} else {
			return ' ';
		}
	} else {
		return ' ';
	}
}

// - Setzen von Werten in Formularfeldern ----
function setFldValue(fldName,fldValue) {
	if (document.getElementById(fldName)) {
		document.getElementById(fldName).value = fldValue;
	}
}

// - Element loeschen ----
function deleteElm(elmID) {
	if (document.getElementById(elmID)) {
		document.getElementById(elmID).parentNode.removeChild(document.getElementById(elmID));
	}
}

// - Strings trimmen ----
function trimAll(sString) {
	while (sString.substring(0,1) == ' ') {
		sString = sString.substring(1, sString.length);
	}
	while (sString.substring(sString.length-1, sString.length) == ' ') {
		sString = sString.substring(0,sString.length-1);
	}
	return sString;
}

// - Bild erzeugen ----
function createImg(imgSrc,imgTitle) {
	var newElm	= document.createElement('img');
 	newElm.src = imgSrc;
 	newElm.setAttribute('alt',imgTitle);
	newElm.setAttribute('title',imgTitle);
	return newElm;
}

// - Statusbar-Position setzen ----
function setStatusBar(actElm,maxValue,actValue,statUnit) {
	var statPerc = parseInt((100*actValue)/maxValue);
	var statPos	= parseInt(statPerc * statUnit) - 300;
	actElm.style.backgroundPosition = statPos + 'px 100%';
}

// - Popup-Opener ----
var sUserAgent = navigator.userAgent.toLowerCase();
var isIE = document.all?true:false;
var isNS4 = document.layers?true:false;
var isOp = (sUserAgent.indexOf('opera')!=-1)?true:false;
var isMoz = (sUserAgent.indexOf('mozilla/5')!=-1 && sUserAgent.indexOf('opera')==-1 && sUserAgent.indexOf('msie')==-1)?true:false;

function pop(oAnchor,sWindow,sProps){
	var sUrl = '';
	if(oAnchor.getAttribute) sUrl = oAnchor.getAttribute('href');
	if(sUrl=='' && isIE) sUrl = window.event.srcElement.getAttribute('href');
	if(sUrl=='') sUrl = oAnchor.href;
	var sWindowName = sWindow?sWindow:'_blank';
	if(!sProps) sProps = 'width=640,height=480,scrollbars,resizable,toolbar,status,menubar,location,top=20,left=20';
	if(sUrl) var oPopup = window.open(sUrl,sWindowName,sProps);
	if(oPopup && !isOp) oPopup.focus();
	return (oPopup)?false:true;
}
