/* DHTML-Bibliothek */
/* Bibliothek Grundlage z.T. aus www.selfhtml.org */

var winH = 0, winW =0;
var moveContainer = new Object;

var DHTML = false, DOM = false, MSIE4 = false, NS4 = false, OP = false;

if (document.getElementById) {
  DHTML = true;
  DOM = true;
} else {
  if (document.all) {
    DHTML = true;
    MSIE4 = true;
  } else {
    if (document.layers) {
      DHTML = true;
      NS4 = true;
    }
  }
}

if (window.opera) {
  OP = true;
}

function getElement (Mode, Identifier, ElementNumber) {
  var Element;
  if (DOM) {
    if (Mode.toLowerCase() == "id") {
      if (typeof document.getElementById(Identifier) == "object") {
        Element = document.getElementById(Identifier);
      } else {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "name") {
      var ElementList = document.getElementsByName(Identifier);
      if (typeof ElementList == "object" || (OP && typeof ElementList == "function")) {
        Element = ElementList[ElementNumber];
      } else {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "tagname") {
      var ElementList = document.getElementsByTagName(Identifier);
      if (typeof ElementList == "object" || (OP && typeof ElementList == "function")) {
        Element = ElementList[ElementNumber];
      } else {
        Element = false;
      }
      return Element;
    }
    return null;
  }
  if (MSIE4) {
    if (Mode.toLowerCase() == "id") {
      if (typeof document.all[Identifier] == "object") {
        Element = document.all[Identifier];
      } else {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "tagname") {
      if (typeof document.all.tags(Identifier) == "object") {
        Element = document.all.tags(Identifier)[ElementNumber];
      } else {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "name") {
      if (typeof document[Identifier] == "object") {
        Element = document[Identifier];
      } else {
        Element = false;
      }
      return Element;
    }
    return false;
  }
  if (NS4) {
    if (Mode.toLowerCase() == "id" || Mode.toLowerCase() == "name") {
      if (typeof document[Identifier] == "object") {
        Element = document[Identifier];
      } else {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "index") {
      if (typeof document.layers[Identifier] == "object") {
        Element = document.layers[Identifier];
      } else {
        Element = false;
      }
      return Element;
    }
    return false;
  }
  return false;
}

function getContent (Mode, Identifier, ElementNumber) {
  var Content;
  var Element = getElement(Mode, Identifier, ElementNumber);
  if (!Element) {
    return false;
  }
  if (DOM && Element.firstChild) {
    if (Element.firstChild.nodeType == 3) {
      Content = Element.firstChild.nodeValue;
    } else {
      Content = "";
    }
    return Content;
  }
  if (MSIE4) {
    Content = Element.innerText;
    return Content;
  }
  return false;
}

function getAttribute (Mode, Identifier, ElementNumber, AttributeName) {
  var Attribute;
  var Element = getElement(Mode, Identifier, ElementNumber);
  if (!Element) {
    return false;
  }
  if (DOM || MSIE4) {
    Attribute = Element.getAttribute(AttributeName);
    return Attribute;
  }
  if (NS4) {
    if (typeof Element[ElementNumber] == "object") {
      Attribute = Element[ElementNumber][AttributeName];
    } else {
      Attribute = Element[AttributeName]
    }
    return Attribute;
  }
  return false;
}

function setContent (Mode, Identifier, ElementNumber, Text) {
  var Element = getElement(Mode, Identifier, ElementNumber);
  if (!Element) {
    return false;
  }
  if (DOM && Element.firstChild) {
    Element.firstChild.nodeValue = Text;
    return true;
  }
  if (MSIE4) {
    Element.innerText = Text;
    return true;
  }
  if (NS4) {
    Element.document.open();
    Element.document.write(Text);
    Element.document.close();
    return true;
  }
}


function resize_init() {
	winW = PW_getBrowserWidth();
	winH = PW_getBrowserHeight();
}

function do_resize() {
	// scrollbar: document.body.offsetHeight - 120 - 34 < document.all.container.offsetHeight || document.all.inhalt.offsetHeight 
	//if( document.all ) {
//		if( eval(winH - 120 - 30 ) < document.all.inhalt_top.offsetHeight ) {
			//alert ( "SCROLLBAR " +  document.body.offsetHeight + " " + document.all.inhalt_top.offsetHeight );
			//alert( winH + " " +  document.body.offsetHeight + " " + document.all.inhalt_top.offsetHeight );
//			ly1 = MM_findObj("header", document);
//			ly2 = MM_findObj("footer", document);
//			ly1.style.width = eval(winW-18);
//			ly2.style.width = eval(winW-18);		
//		} else {
//				ly1 = MM_findObj("header", document);
//				ly2 = MM_findObj("footer", document);
//				ly1.style.width = eval(winW);
//				ly2.style.width = eval(winW);				
//		}
//	}
	
	//alert( window.height + " :: " + window.innerHeight  + " :: " + document.body.offsetHeight  + " :: " + document.body.innerHeight + " :: " + document.all.bodyid.offsetHeight + " :: "  + document.all.container.offsetHeight + " :: " + document.all.inhalt.offsetHeight + document.all.bodyid.height + " :: "  + document.all.container.height + " :: " + document.all.inhalt.height );
}


//
// Objekt finden
//

function MM_findObj(n, d) { //v4.0
  var p,i,x;  
  if(!d) d=document; 
  if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; 
    n=n.substring(0,p);
  }
  if(!(x=d[n])&&d.all) 
    x=d.all[n]; 
  for (i=0;!x&&i<d.forms.length;i++) 
    x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) 
    x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) 
    x=document.getElementById(n);
  return x;
}

//
// Browsergrößenbestimmung
// nach Oli Bär
// http://www.vampirehost.de/gruft/coding/
// cybaer@vampirehost.de
//
function PW_getBrowserWidth() {
  if(top.window.innerWidth) {
    winW = top.window.innerWidth;
  } else if(top.document.body && top.document.body.clientWidth) {
    winW = top.document.body.clientWidth;
  }

  return winW;
}

function PW_getBrowserHeight() {
    if(top.window.innerHeight) {
      winH = top.window.innerHeight;
    } else if(top.document.body && top.document.body.clientHeight) {
      winH = top.document.body.clientHeight;
    }

  return winH;
}


//
// Positionsbestimmung eines Layers im IE
//
function PW_lyAbsLeft(el) {
   return (el.offsetParent)?el.offsetLeft+PW_lyAbsLeft(el.offsetParent) : el.offsetLeft;
}

function PW_lyAbsTop(el) {
  return (el.offsetParent)?el.offsetTop+PW_lyAbsTop(el.offsetParent) : el.offsetTop;
}

//
// Layer Movement
//

function SlideObject(iEndX,iEndY,sObjectName) {
	giEndX = iEndX
	giEndY = iEndY
	gsObjectName = sObjectName
	TimedSlide()
}


function TimedSlide() {
	var RetVal
	RetVal = MoveStep(giEndX,giEndY,gsObjectName)
	RetVal = !RetVal
	
	if (RetVal) {
		setTimeout('TimedSlide()',speed)
	}
}

function MoveStep(iEndX,iEndY,sObjectName) {
	//alert('MoveStep: Move '+sObjectName+ 'To ('+iEndX+','+iEndY+')')
	var NewX, NewY
	var XGap, YGap
	var XDest, YDest
	var CurX, CurY
	//get current position
	
	
	if (is_NS4) {
		eval('CurX = '+Lq+sObjectName+Sq+'.left');
		eval('CurX = '+Lq+sObjectName+Sq+'.top');
	} else {
		CurX = document.getElementById(sObjectName).style.left
		CurY = document.getElementById(sObjectName).style.top
	}
	CurX = parseInt(CurX)
	CurY = parseInt(CurY)
	//work out direction & step size
	// select case of gap:
	// "0" - end
	// "< increment" move to end
	// "> increment" - move by increment
	XGap = iEndX - CurX
	YGap = iEndY - CurY
	//step size X
	if (XGap > 0) { //check sign of Gap
		if (XGap > increment) { //check if increment would overstep final position
		XDest = CurX + increment
		
		
		} else {
			XDest = CurX + XGap
		}
	} else {
		if ( (-XGap) > increment) { //check if increment would overstep final position
		XDest = CurX - increment
		
		
		} else {
			XDest = CurX + XGap
		}
	}
	//step size Y
	if (YGap > 0) { //check sign of Gap
		if (YGap > increment) { //check if increment would overstep final position
			YDest = CurY + increment
		} else {
			YDest = CurY + YGap
		}
	} else {
		if ( (-YGap) > increment) { //check if increment would overstep final position
			YDest = CurY - increment
		} else {
			YDest = CurY + YGap
		}
	}
	//take the step
	
	if (is_NS4) {
		eval(Lq+sObjectName+Sq+'.left=XDest');
		eval(Lq+sObjectName+Sq+'.top=YDest');
	} else {
		document.getElementById(sObjectName).style.left = XDest+"px";
		document.getElementById(sObjectName).style.top = YDest+"px";
	}
	return ((XGap==0)&&(YGap==0)) //return whether at final destination
} //MoveStep

//
//
//



/*

WM_moveTo()

Moves an object from its current location to a new location and optionally fires a function when it's done.

Source: Webmonkey Code Library
(http://www.hotwired.com/webmonkey/javascript/code_library/)

Author: Nadav Savio
Author Email: nadav@wired.com

Usage: WM_moveTo('objectName', endingLeft, endingTop, numberOfSteps, delayBetweenSteps, 'functionToFire()'); 

*/

function doMove( mobjid ) {
	//alert("doMove: start moving " + mobjid);

	var m = self["moveContainer"][mobjid];
	
	//alert( "2: links: > styleobj " + m.styleobj.left + "< >obj links: " + m.obj.left + "< > endfunction: " + m.endfunction + " <" );
	//alert( typeof(m.styleobj) );

	//var delta_x = ( m.endX - m.obj.left ) / m.stepsize;

	//var leftInc = (endLeft - parseInt(daObj.left)) / numSteps;
    //var topInc = (endTop - parseInt(daObj.top)) / numSteps;

	// Bewegen
	
	//m.obj.style.left = m.obj.style.left +1;
	//alert( m.styleobj.left + "<>" + parseInt(m.styleobj.left) );
	m.styleobj.left = (parseInt(m.styleobj.left) + 1 ) + "px";
	//m.styleobj.left = m.styleobj.left + 1;
    //m.styleobj.top = m.styleobj.top + 1;
	
	// Ende ?
	if( parseInt(m.styleobj.left) >= m.toX && true ) {
		eval(m.endfunction);
	} else {
		setTimeout ('doMove(\'' + mobjid + '\')', m.speed);
	}
}

function moveTo( mobjid, toX, toY, stepsize, speed, whenDone ) {
	var mobj = getElement( "id", mobjid, 0 );
	//var mobj = MM_findObj( mobjid );
	
	if( typeof(mobj) == 'undefined' ) {
		alert("1: nicht gefunden!" + mobjid);
		return;
	}
	
	if( toX == -1 ) {
		toX = winW;
	}
	if( toY == -1 ) {
		toY = winH;
	}
	
	m = new Object;
	m.obj = mobj;
	if( NS4 ) {
		alert ("NS4 JA");
		m.styleobj = mobj.style;
	} else {
		alert("NS4 NEIN");
		m.styleobj = mobj.style;
	}
	m.toX = toX;
	m.toY = toY;
	m.stepsize = stepsize;
	m.speed = speed;
	m.endfunction = whenDone;

	alert("moveTo: gesetzt");
	// globale Container Variabel für move objekte
	self["moveContainer"][mobjid] = m;
	
	doMove(mobjid);
}

function oldFunction() {
// Declare variables.
  var leftInc, topInc, daObj = new Object;
  // The first time through, create document.WM.WM_moveTo
  if (typeof document.WM == 'undefined'){
    document.WM = new Object;
    document.WM.WM_moveTo = new Object;
  } else if (typeof document.WM.WM_moveTo == 'undefined') {
    document.WM.WM_moveTo = new Object;
  }
  // Store endFunction to execute when the move is finished.
  if(endFunction) document.WM.WM_moveTo.endFunction = endFunction;
  // Get a good object reference (call it daObj) from WM_checkIn().
  // But if we've already done so, don't check it in again.
    if (daObject == "sameObj") {
      daObj = document.WM.WM_moveTo.daObj;
    } else {
      daObj = WM_checkIn(daObject);
      document.WM.WM_moveTo.daObj = daObj;
    }
  // If this is the last step, go to the end point and run endFunction.
  if (numSteps == 1) {
    daObj.left = endLeft;
    daObj.top = endTop;
    // If an endFunction was set, execute it and then delete it.
    if(document.WM.WM_moveTo.endFunction) {
      daFunction = document.WM.WM_moveTo.endFunction;
      document.WM.WM_moveTo.endFunction = '';
      eval(daFunction);
    }
  } else {
    // Otherwise, figure out how far to move.
    leftInc = (endLeft - parseInt(daObj.left)) / numSteps;
    topInc = (endTop - parseInt(daObj.top)) / numSteps;
    // Then move, decrement numSteps, and do it all again.
    daObj.left = parseInt(daObj.left) + leftInc;
    daObj.top = parseInt(daObj.top) + topInc;
    numSteps--;
    setTimeout ('WM_moveTo(\'sameObj\', ' + endLeft + ', ' + endTop + ', ' + numSteps + ', ' + delay + ')', delay);
  }
}


//
// Detail Page
//

function showOrHideDetailPicture( lyid, picid, picfile ) {
	o = MM_findObj(lyid);
	p = MM_findObj(picid);
	if( o ) {
		if( o.picture  && o.picture == picfile ) {
			o.picture = 'bilder/loader.gif';
			if( p ) { p.src = 'bilder/loader.gif'; }
			o.style.display = 'none';
		} else {
			o.picture = 'bilder/loader.gif';
			if( p ) { p.src = 'bilder/loader.gif'; }
			o.picture = picfile;
			if( p ) { p.src = picfile; }
			o.style.display = 'block';
		}
	}
}

function hideDetailPicture( lyid, picid, picfile ) {
	o = MM_findObj(lyid);
	p = MM_findObj(picid);
	if( p && picfile ) { p.src=picfile; }
	if( o ) { 
		o.picture = 'bilder/loader.gif';
		if( p ) { p.src = 'bilder/loader.gif'; }
		o.style.display = 'none';
	}
}


//
// rechte Maustaste deaktivieren (ich will das ja nicht, aber was kann ich für :/)
//


//
// Init Funktionen
//

//DHTML_init();
resize_init();

do_resize();

//alert("ende");

