var xPos = 0, yPos = 0, goPos = 0; 
var showTabRowDelay, cTTObj, cTitle, tooltipFlag, xPosOffset, yPosOffset;

if(top.frames.length > 0 && self.name!="fileMngPreview" && self.name!="specProjFrame")
{top.location.href=self.location;}

// ---------------------------------- Projekt ----------------------------------

function initAll(){
}

function exitAll(){
}

// ---------------------------------- Events ----------------------------------

document.onmousedown = getPos;
document.onmousemove = setShowDivPos;

function checkScrollPos(){
	if(window.name.indexOf('pos')!=-1){
		window.scrollBy(0,parseInt(window.name.slice(3)));
		window.name='cont';
	}
}

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 ? goPos = document.body.scrollTop : goPos = window.pageYOffset;
	if(goPos==null) goPos=0;
}

function clPos(){window.name="pos" + goPos;}

function setShowDivPos(e){
if(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 openCal(target,obj){var openCal = window.open (target, 'topCal', 'width=200,height=280,dependent=yes,resizable=yes,scrollbars=no,top='+(yPos-150)+',left='+(xPos-100)); openCal.focus();}

// ----------------------------------- Tooltip --------------------------------

function hideTooltip(){
	clearTimeout(showTabRowDelay);
	document.getElementById("tooltipDiv").style.display = "none";
	tooltipFlag = false;
}

function uncoverTooltip(){
	document.getElementById("tooltipDiv").style.display = "block";
}

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 = 30; yPosOffset = -10;
	showTabRowDelay = setTimeout("uncoverTooltip()",500);
}

function hideTabRowShowDiv(){
	hideTooltip();
}

// -------------------------------- 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);
	window.scrollTo(0,0);
	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 e = document.getElementById("pageOverlayCont");
   var x = document.getElementById("pageOverlayBody");
   // Hoehe
   var bH = (c.offsetHeight > b.offsetHeight) ? c.offsetHeight +20 : b.offsetHeight +20;
   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("pageOverlay").className = 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
   d.style.display = "block";
   e.style.display = "block";
}

function closeOverlay(){
   document.getElementById("pageOverlay").style.display = "none";
   document.getElementById("pageOverlayCont").style.display = "none";
   if(document.all){ 
   	ds = document.getElementsByTagName("select");
   	for(var i = 0; i < ds.length; i++){ ds[i].style.visibility = "visible"; }
   }
   if(typeof cOverlay.closeOverlayEvent == "function") cOverlay.closeOverlayEvent();
}

// --------------------------------- Special ----------------------------------

var cMsgObj, msgObjArr = new Array(); 	// 0 = msgNumb fuer lastMsgObj

function setMsg(obj,msgNumb){
	if(document.getElementById("checkCSS").offsetHeight > 0) return false;
	if(msgObjArr[0]!=undefined){ if(msgNumb==msgObjArr[0]) return false; }
	if(typeof msgObjArr[msgNumb] != "object") msgObjArr[msgNumb] = new msgObj(obj,msgNumb);
	if(msgNumb != cMsgObj){
		if(cMsgObj!=undefined) msgObjArr[cMsgObj].clrZoom();
		msgObjArr[msgNumb].zoomCall();
	}
	cMsgObj = msgNumb;
}

function resetMsg(msgNumb){}

function msgObj(obj,msgNumb){
	var delayTimer = 600; if(document.all) delayTimer = 400;
	this.obj = obj;
	this.imgObj = document.getElementById("mcMsgImg" + msgNumb);
	this.zoomObj = undefined;	
	var callDelay;
	this.zoomCall = function(){ callDelay = setTimeout("msgZoomCaller(" + msgNumb + ")", delayTimer); };
	this.clrZoom = function(){	clearTimeout(callDelay); };
}

function msgZoomCaller(msgNumb){
	var c = msgObjArr[msgNumb];
	if(msgObjArr[0]!=undefined){
		var l = msgObjArr[msgObjArr[0]];
		if(c.obj==l.obj) return false;
		l.zoomObj = new msgAniObj(msgObjArr[0],49,"mcMsgRolloverOff");
		l.zoomObj.msgZoom();
	}
	c.zoomObj = new msgAniObj(msgNumb,77,"mcMsgRolloverOn");
	c.zoomObj.msgZoom();
	msgObjArr[0] = msgNumb;
}

function msgAniZoom(msgNumb){ 
	var o = msgObjArr[msgNumb].zoomObj;
	if(typeof o == "object") o.msgZoom(); 
}

function msgAniObj(msgNumb,imgTargetWidth,targetClass){	
	var n=0, i=1, zoomSteps = 5;
	var o = msgObjArr[msgNumb].obj; var os = o.style;
	var io = msgObjArr[msgNumb].imgObj;	var ios = io.style;

	// Zielgroessen ermitteln	
	var emH = document.getElementById("emHeightHlp").offsetHeight;
	var oCH = o.offsetHeight;
	var iCW = io.offsetWidth;
	os.visibility = "hidden";
	os.height = "auto";
	ios.width = eval(Math.round(40000*imgTargetWidth/emH)/10000) + "em";
	o.className = targetClass;
	var oTH = o.offsetHeight;
	ios.width = eval(Math.round(40000*iCW/emH)/10000) + "em";
	os.overflow = "hidden";
	os.visibility = "visible";		

	var oDelta = oTH - oCH;
	var iDelta = imgTargetWidth - iCW;
	
	// Zoom
	this.msgZoom = function(){
		n = i*i*(oDelta/(zoomSteps*zoomSteps)); i++;
		if((oCH < oTH && oCH + n < oTH) || (oCH > oTH && oCH + n > oTH)){
			os.height = eval(Math.round(40000*(oCH + Math.round(n))/emH)/10000) + "em";
			ios.width = eval(Math.round(40000*(iCW + Math.round(i*(iDelta/zoomSteps)))/emH)/10000) + "em";
			window.setTimeout("msgAniZoom(" + msgNumb + ");", 2);
		}else{
			os.height = eval(Math.round(40000*oTH/emH)/10000) + "em";
			o.className = targetClass;
			ios.width = eval(Math.round(40000*imgTargetWidth/emH)/10000) + "em";
			msgObjArr[msgNumb].zoomObj = null;
		}
	};
}
