var xPos = 0, yPos = 0, goPos = 0, loadDelay = false, pageInit = false;
var showTabRowDelay, tooltipFlag, xPosOffset, yPosOffset;

if(top.frames.length > 0 && self.name!="fileMngPreview" && self.name!="specProjFrame"){top.location.href=self.location;}

// ---------------------------------- Events ----------------------------------

document.onmousedown = getPos;
document.onmousemove = setShowDivPos;

function initAll(){
	// checkScrollPos
	if(window.name.indexOf('pos')!=-1){
		window.scrollBy(0,parseInt(window.name.slice(3)));
		window.name='cont';
	}
	pageInit = true;
}

function exitAll(){
	
}

function getPos(e){
	if(document.all){
		xPos = (document.compatMode=='CSS1Compat') ? window.event.clientX + document.documentElement.scrollLeft : window.event.clientX + document.body.scrollLeft;
		yPos = (document.compatMode=='CSS1Compat') ? window.event.clientY + document.documentElement.scrollTop : window.event.clientY + document.body.scrollTop;
	}else{	/* pageXY = Fensterrelativ / screenXY = Bildschirmabsolut */
		xPos = e.pageX;
		yPos = e.pageY;
	}
	// document.body.scrollTop fuer nicht Standardkonforme Seiten
	goPos = (document.documentElement.scrollTop) ? document.documentElement.scrollTop : window.pageYOffset;
	if(goPos==null) goPos=0;
}

function clPos(){window.name="pos" + goPos;}

function setShowDivPos(e){
if(pageInit && tooltipFlag){
	getPos(e);
	var sD = document.getElementById("tooltipDiv");
	sD.style.left = (xPos + xPosOffset) + "px";
	sD.style.top = (yPos + yPosOffset) + "px";
}}

// --------------------------------- Standard ---------------------------------

function topInfo(cont,target,w,h)
{var topInf = window.open(cont,target,'width='+w+',height='+h+',dependent=yes,resizable=yes,scrollbars=yes,menubar=yes,status=yes'); topInf.focus(); return false;}

function hideTooltip(){
	clearTimeout(showTabRowDelay);
	document.getElementById("tooltipDiv").style.display = "none";
	tooltipFlag = false;
}

function uncoverTooltip(){
	document.getElementById("tooltipDiv").style.display = "block";
}

// ----------------------------------- Tooltip --------------------------------

var cTTObj, cTitle

function showTT(obj,x){
	if(x!="") var ttNode = document.getElementById(x).firstChild;
	var ttTxt; 
	ttNode ? ttTxt = ttNode.nodeValue : ttTxt = obj.title;
	
	cTTObj = obj; cTitle = obj.title; obj.title = ""; 
	var sD = document.getElementById("tooltipDiv");
	var sDf = sD.firstChild;
	while (sDf!=null){
		sD.removeChild(sDf); 
		sDf = sD.firstChild;}
	if(ttTxt!=null && ttTxt!=""){
		var newEntry = document.createTextNode(ttTxt);
		sD.appendChild(newEntry);
		tooltipFlag = true; xPosOffset = 15; yPosOffset = 20;
		showTabRowDelay = setTimeout("uncoverTooltip()",500);}
}

function hideTT(){
	if(cTTObj!=null) {cTTObj.title = cTitle; cTTObj = null; cTitle = "";}
	hideTooltip(); 
}

function showTabRow(xy){ 
	clearTimeout(showTabRowDelay);
	var sD = document.getElementById("tooltipDiv");
	var sDf = sD.firstChild;
	var xNode = xy.firstChild;
	while (sDf!=null){
		sD.removeChild(sDf);
		sDf = sD.firstChild;}
	var counter = 0; 
	while (xNode!=null){
		if(xNode.nodeType==1 && xNode.childNodes[0].nodeValue!=null){
			counter+=1; 
			var xNV = xNode.childNodes[0].nodeValue
			var newEntry = document.createTextNode(counter + ": " + xNV);
			var newBr = document.createElement("br");
			// ggf. Bild einfuegen
			xNV = xNV.replace(/\s/,"");
			if(xNV.search(/.jpg$/) != -1 || xNV.search(/.jpeg$/) != -1){
				xNV = xNV.replace(/^images\//,"");
				var newImg = document.createElement("img");
			var newImgAlt = document.createAttribute("class");
			newImgAlt.nodeValue = "showTabRowImgPreview";
			newImg.setAttributeNode(newImgAlt);
			var newImgSrc = document.createAttribute("src");
			newImgSrc.nodeValue = "images/minSize/" + xNV;
			newImg.setAttributeNode(newImgSrc);
			sD.appendChild(newImg);
			}
			sD.appendChild(newEntry);
			sD.appendChild(newBr); 
		}
		xNode = xNode.nextSibling; }
	/* var x = 0, p = 40;
		if(document.all){p = p + document.body.scrollTop;}
		else if(document.getElementById){p = p + window.pageYOffset;}
		if(p<80) p = 80; 
		sD.style.top = p + "px";
		sD.style.right = "20px"; */
	tooltipFlag = true; xPosOffset = 50; yPosOffset = -60;
	showTabRowDelay = setTimeout("uncoverTooltip()",500);
}

function hideTabRowShowDiv(){
	hideTooltip();
}

// ------------------------------- Such-Formular ------------------------------

function cFocus(x,txt){if(x.value==txt)x.value = "";}

function cBlur(x,txt){if(x.value=="")x.value = txt;}

// ----------------------------- Kontakt-Formulare ----------------------------

function checkContactInp(){
	var df = document.contactForm
	if(df.contactTel.value == "" && df.contactMail.value == "")
	{var sX = confirm("|%|pcItem|%|lang:cformConfirm|%|"); if(sX==false) return false;} 
	return true;
}

// -------------------------------- Schnellkontakt ---------------------------- //

function cFocus(x,txt){
x.className = x.className.replace(/On/, "") + "On";
if(x.value==txt)x.value = "";
}

function cBlur(x,txt){
if(x.value==""){
	x.value = txt; 
	x.className = x.className.replace(/On/, "");
}}

function checkCallback(){
var cN = document.callbackForm.callbackName.value;
var cT = document.callbackForm.callbackNumb.value;
if(cN == "" || cT == "" || cN == "Ihr Name" || cT == "Telefon-Nummer")
{alert("Bitte geben Sie Name und Telefon-Nummer ein"); return false;} else {return true;}
}

// -------------------------------- flying Objects ----------------------------

var foObj;

// Preload Warte-Animationen
preloadImg = new Image(); preloadImg.src = "pix/hourglass.gif";

function flyingUserSel(cDiv, cDivClass){
	flyObj(cDiv, cDivClass, "userSelectionDiv", 26, 20, 0, 0, 20, 60, "11px");
	document.getElementById("userSelectionDivTitle").style.backgroundImage = "url(pix/hourglass.gif)";
	return true;
}

function flyObj(sourceDiv, sourceDivClass, targetDiv, steps, stepTime, topOffset, topOffsetIE, endXOffset, endTopOffset, startFontSize){
	var al = arguments.length;
	if(al<6) topOffset = 0;
	if(al<7) topOffsetIE = 0;
	if(al<8) endXOffset = 0;
	if(al<9) endTopOffset = 0;
	if(al<10) startFontSize = "10px";
	var tOffset = (document.all) ? topOffsetIE : topOffset;
	// Objekte auswerten	
	var flyer = document.getElementById("flyingDiv");
	var startDiv = document.getElementById(sourceDiv);
	var endDiv = document.getElementById(targetDiv);
	var endX = getObjPosById(endDiv).left + endXOffset;
	var endT = getObjPosById(endDiv).top + endTopOffset + tOffset;
	// Flyer bauen
	flyer.innerHTML = startDiv.innerHTML;
	flyer.className = sourceDivClass;
	with(flyer.style){
		fontSize = startFontSize;
		top = getObjPosById(startDiv).top + tOffset + "px";
		left = getObjPosById(startDiv).left + "px";
		height = startDiv.offsetHeight + "px";
		width = startDiv.offsetWidth + "px";
		overflow = "hidden";
		display = "block";
	}
	// Select-Felder fuer IE ausblenden
	if(document.all){ 
		ds = document.getElementsByTagName("select");
		for(var i = 0; i < ds.length; i++){ ds[i].style.visibility = "hidden"; }
   }
	// Fly-Out
	foObj = new flyOutObj(flyer,steps,stepTime,endX,endT);
	foObj.flyOut();
	return true;
}

function flyOutFoObj(){
	if(typeof foObj == "object") foObj.flyOut();
}

function flyOutObj(obj,steps,stepTime,x,t){
	var os = obj.style;
	this.flyOut = function(){
		var xCurve = 0, tCurve = 5, out = "";
		if(steps<=1){
			// Select-Felder fuer IE einblenden
			if(document.all){ 
				ds = document.getElementsByTagName("select");
				for(var i = 0; i < ds.length; i++){ ds[i].style.visibility = "visible"; }
   		}
			os.display = "none";
			foObj = null;
		} else {
			var hlp = os.left; hlp = hlp.replace(/px/,""); hlp = Math.round(hlp);
			os.left = Math.round(hlp + (((x-hlp)/steps)/(steps/4)) + xCurve) + "px";
			
			var hlp = os.top; hlp = hlp.replace(/px/,""); hlp = Math.round(hlp);
			var hlpH = os.height; hlpH = hlpH.replace(/px/,""); hlpH = Math.round(hlpH/2);
			os.top = Math.round(hlp + ((((t-hlpH)-hlp)/steps)/(steps/4)) - tCurve) + "px";
			
			var hlp = os.width; hlp = hlp.replace(/px/,""); hlp = Math.round(hlp);
			os.width = Math.round(hlp-((hlp/steps)/(steps/3))) + "px";
			
			var hlp = os.height; hlp = hlp.replace(/px/,""); hlp = Math.round(hlp);
			os.height = Math.round(hlp-((hlp/steps)/(steps/3))) + "px";
			
			var hlp = os.fontSize; hlp = hlp.replace(/px/,""); hlp = Math.round(hlp);
			if (hlp>0) os.fontSize = Math.round(hlp-((hlp/steps)/(steps/4))) + "px";
			
			steps--;
			window.setTimeout("flyOutFoObj();", stepTime);
		}		
	}
}



// ----------------------------------------------------------------------------

function getInfoOverlayByID(x){
	ov = getOverlay(document.getElementById(x).innerHTML,"",false); 
	ov.closeOverlayEvent = function(){
      document.getElementById("pageOverlayBody").innerHTML = "";
   }
}

// -------------------------------- pageOverlay -------------------------------

var cOverlay;

function getOverlay(overlayHTML, stlyeClass, useMaxH, overlayCloseHTML){
	if(arguments.length<1) overlayHTML = "";
	if(arguments.length<2) stlyeClass = "";
   if(arguments.length<3) useMaxH = true;
   if(arguments.length==4)
		cOverlay = new overlayObj(overlayHTML, stlyeClass, useMaxH, overlayCloseHTML);
	else
		cOverlay = new overlayObj(overlayHTML, stlyeClass, useMaxH);
	return cOverlay;
}

function overlayObj(overlayHTML, stlyeClass, useMaxH, overlayCloseHTML){
   if(arguments.length<1) overlayHTML = "";
   if(arguments.length<2) stlyeClass = "";
   if(arguments.length<3) useMaxH = true;
   if(arguments.length==4) document.getElementById("pageOverlayClose").innerHTML = overlayCloseHTML;
   var b = document.getElementsByTagName("body")[0];
   var c = document.getElementById("specWrapper");
   var d = document.getElementById("pageOverlay");
   var x = document.getElementById("pageOverlayBody");
   // Hoehe
   var bH = (c.offsetHeight > b.offsetHeight) ? c.offsetHeight +50 : b.offsetHeight +120;
   if(window.innerHeight > bH) bH = window.innerHeight;
   d.style.height = bH + "px";
   // Inhalte
   if(overlayHTML!="") x.innerHTML = overlayHTML;
   var innerH = (document.all) ? document.documentElement.clientHeight : window.innerHeight;
   if(innerH>0 && useMaxH)	x.style.height = Math.round(innerH*0.9) + "px";
   if(stlyeClass!="") document.getElementById("pageOverlayBodyWrapper").className = stlyeClass;
   // Select-Felder fuer IE ausblenden
   if(document.all){ 
   	ds = document.getElementsByTagName("select");
   	for(var i = 0; i < ds.length; i++){ ds[i].style.visibility = "hidden"; }
   }
   // anzeigen + ggf. Hoehe anpassen
   d.style.display = "block";
   window.scrollTo(0,0);
   if(x.offsetHeight>bH){ 
   	bH = x.offsetHeight + x.offsetTop + 50; 
   	d.style.height  = bH + "px" 
   };
   // css-class setzen fuer Aenderungen im Seitenaufbau
   document.getElementById("bodyWrapper").className = "overlayActivated"
}

function closeOverlay(){
   if(document.all){ 
   	ds = document.getElementsByTagName("select");
   	for(var i = 0; i < ds.length; i++){ ds[i].style.visibility = "visible"; }
   }
   document.getElementById("pageOverlay").style.display = "none";
   document.getElementById("bodyWrapper").className = ""
   if(typeof cOverlay.closeOverlayEvent == "function") cOverlay.closeOverlayEvent();
}


// ----------------------------- Preview-Overlay ------------------------------

var overlayFlag = 0, cOpacity = 1, fadeAction, hideDelay

/* Einblenden */
function showOverlay(){
	var ovl = document.getElementById("imgPreviewImgOverlay").style;
	clearTimeout(hideDelay); 
	if(overlayFlag!=1 && overlayFlag!=2){
		clearTimeout(fadeAction);
		overlayFlag = 1;
		// ovl.visibility = 'visible';
		overlayFade(cOpacity, 71, 6, 1);
	}
}

/* Ausblenden */
function hideOverlay(){hideDelay = setTimeout('hideOverlayFadeOut()', 100);}

function hideOverlayFadeOut(){
	if(overlayFlag==1){
	var ovl = document.getElementById("imgPreviewImgOverlay").style;
	clearTimeout(fadeAction);
	overlayFlag = 0;
	overlayFade(cOpacity, 1, -6, 2);
	}
}

/* Reset Overlay */
function resetOverlay(){
	clearTimeout(fadeAction);
	clearTimeout(hideDelay); 
	overlayFlag = 0
	cOpacity = 1
}

// Fading
// Achtung! Bug bei opacity = 100 in einigen Browsern. Deshalb Maximal-Wert = 99.999
function overlayFade(cStart, cEnd, cStep, cSpeed){
	var ovl = document.getElementById("imgPreviewImgOverlay").style;
	var speedX = 0, hlp = 1; 
	if(cStep<0){ speedX = 3; hlp=-1};
	if((hlp * cStart) < (hlp * cEnd)){
		if(cStart < 1) cStart = 1;
		ovl.opacity = cStart/100;
		// ovl.MozOpacity = cStart/100; //
		// ovl.KHTMLOpacity = cStart/100; //
		ovl.filter = 'alpha(opacity:' + cStart + ')';
		cOpacity = cStart
		var fadeAction = setTimeout('overlayFade(' + (cStart + cStep) + ',' + cEnd + ',' + cStep + ',' + (cSpeed + speedX) + ')', cSpeed);
	}
	/* if(cOpacity <= 1 + Math.abs(cStep))
		{cOpacity=1; ovl.visibility = 'hidden';}
	else
		{ovl.visibility = 'visible';} */
	if(cOpacity <= 1 + Math.abs(cStep)){cOpacity=1; ovl.opacity = '0'; ovl.filter = 'alpha(opacity:0)';}
}

// ------------------------------- Inhalte ersetzen ---------------------------

/* Preview */
function getNewPreview(cHref, cImgHref, cTargetID){
	document.getElementById("imgPreviewLoadWaiting").style.display = "block"; 
	if(navigator.appVersion.indexOf("IE 5.5")>0){window.location.href = cHref; return false;}
	try{ con = new XMLHttpRequest();													// Firefox
			}catch(eX){ try{ con = new ActiveXObject("Msxml2.XMLHTTP");			// IE 1
				}catch(eY){ try{ con = new ActiveXObject("Microsoft.XMLHTTP");	// IE 2
				}catch(eZ){ con = false; }}}
	if(!con){window.location.href = cHref; return false;}
	// Bild laden
	con.onreadystatechange = function(){ loadPreviewHtml(cHref, cImgHref, cTargetID); }
	var cB = document.getElementsByTagName("base")[0].getAttribute("href");
	con.open("GET", cB + cImgHref, true);
	con.send(null);
}

function loadPreviewHtml(cHref, cImgHref, cTargetID){
if(con.readyState == 4){ 
	if(con.status == 200){
		try{ con = new XMLHttpRequest();													// Firefox
				}catch(eX){ try{ con = new ActiveXObject("Msxml2.XMLHTTP");			// IE 1
					}catch(eY){ try{ con = new ActiveXObject("Microsoft.XMLHTTP");	// IE 2
					}catch(eZ){ con = false; }}}
		if(!con){window.location.href = cHref; return false;}
		con.onreadystatechange = function(){ writeResponseAsNewPreview(cHref,cImgHref,cTargetID); }
		var qHlp = (window.location.search != "") ? "&" : "?";
		con.open("GET", cHref + qHlp + "extractData=1", true);
		con.send(null);
	}else{
		window.location.href = cHref;
	}
}}

/* Serverdaten auswerten */
function writeResponseAsNewPreview(cHref,cImgHref,cTargetID){
if(con.readyState == 4){ 
	if(con.status == 200){
		var cData = con.responseText;
		if(cData!="") {
			if(typeof newPreviewResponseEvent == "function") cData = newPreviewResponseEvent(cData);
			document.getElementById(cTargetID).innerHTML = cData;
			document.getElementById("imgPrevievAutoControlDiv").style.visibility = "visible";
			resetOverlay();
			if(autoCTime > 0) setAutoControl(autoCTime);
			// Ladeanzeige
			document.getElementById("imgPreviewLoadWaiting").style.display = "none";
			if(typeof newPreviewReadyEvent == "function") newPreviewReadyEvent();
			// ggf. Analytics-Tracker aufrufen
			if(typeof urchinTracker == "function") urchinTracker(cHref.replace(trackerBaseUrl,""));
		}else{
			window.location.href = cHref;
		}
	}else{
		window.location.href = cHref;
   }
}}

/* liefert XMLHttpReq-Objekt */
function getHiddenConn(){
	try{ con = new XMLHttpRequest();													// Firefox
		}catch(eX){ try{ con = new ActiveXObject("Msxml2.XMLHTTP");			// IE 1
			}catch(eY){ try{ con = new ActiveXObject("Microsoft.XMLHTTP");	// IE 2
				}catch(eZ){ con = false; }}}
	return con;
}


// -------------------------------- AutoControl -------------------------------

var autoCTime, nPage;

function setAutoControl(ct){
var df = document.autoControl.time;
window.clearTimeout(nPage);
if(ct!="" && ct>0){
	autoCTime = ct;
	df.options[ct/2].selected = true; 
	nPage = window.setTimeout("reloadPage(document.autoControl.time.value);", ct * 1000);
}else{
	autoCTime = 0;
	if(df.value!="" && df.value!="0"){
		autoCTime = df.selectedIndex * 2;
		reloadPage(df.value);
	}
}}

function reloadPage(target){
var cB = document.getElementsByTagName("base")[0].getAttribute("href");
var cF = document.autoControl;
window.clearTimeout(nPage);

if(overlayFlag != 0) nPage = window.setTimeout("reloadPage(document.autoControl.time.value);", autoCTime * 1000);

if(target != "" && overlayFlag == 0) getNewPreview(cB + target, cF.nextImg.value, cF.targetElementID.value);
}

// --------------------------------- Tab-Steuerung ----------------------------
// Konventionen zur ID-Verwendung: 
// Tab-Navigation: idBasis_tabnav_tabkennung || Tabs: idBasis_tab_tabkennung

var tabRestoreExpires = 0;

// Tab-Initialisierung: vList und hList sind kommaseparierte tabkennungen;
// expDays = Tage, bis Cookies verfallen
function initTab(base,vList,hList,expDays){
	tabRestoreExpires = expDays;
	var vc = getCookie(base + "_vList"); if(expDays > 0 && vc!="") vList = vc;
	var hc = getCookie(base + "_hList"); if(expDays > 0 && hc!="") hList = hc;
	vList = vList.replace(/_/,","); hList = hList.replace(/_/,",");
	tabVisible(base,vList); tabHidden(base,hList);
}

function tabVisible(base,vList){
	if(tabRestoreExpires>0) setCookie(base + "_vList",vList.replace(/,/,"_"),tabRestoreExpires);
	var v = vList.split(","); for(var i = 0; i < v.length; ++i){
	document.getElementById(base + "_tab_" + v[i]).style.display = "block";
	document.getElementById(base + "_tabnav_" + v[i]).className = base + "_tabnav_on";
}}

function tabHidden(base,hList){
	if(tabRestoreExpires>0) setCookie(base + "_hList",hList.replace(/,/,"_"),tabRestoreExpires);
	var h = hList.split(","); for(var i = 0; i < h.length; ++i){
	document.getElementById(base + "_tab_" + h[i]).style.display = "none";
	document.getElementById(base + "_tabnav_" + h[i]).className = base + "_tabnav_off";
}}

// ------------------------------- Kleine Helferlein --------------------------

// Cookies holen
function getCookie(x){
	var k = document.cookie.split(";");
	for (var i = 0; i < k.length; ++i){
		k[i] = k[i].replace(/\s/,"");
		if(x==k[i].substr(0,k[i].search('='))) return k[i].substr(k[i].search('=')+1,k[i].length);
	}
	return "";
}

function setCookie(xName,xValue,expDays){
	var d = new Date(); d = new Date(d.getTime() + (expDays * 24 * 60 * 60 * 1000));
	document.cookie = xName + "=" + xValue + "; expires=" + d.toGMTString(); 
}

function killCookie(xName){
	document.cookie = xName + "=; ; expires=Thu, 01-Jan-70 00:00:01 GMT;";
}

// Objekt-Position

function getObjPosById(o){
	var p = {left:0, top:0};
	if(typeof o != "object") return p;

	if(typeof o.offsetLeft != 'undefined'){
		while(o) {
			 p.left += o.offsetLeft;
			 p.top += o.offsetTop;
			 o = o.offsetParent;
		}
	} else {
		p.left = o.left ;
		p.top = o.top ;
	}
	return p;
}

