function MM_timelinePlay(tmLnName, myID) { //v1.2
  //Copyright 1997 Macromedia, Inc. All rights reserved.
  //Pixelreparatur c) 2008 by mist
  var i,j,tmLn,props,keyFrm,sprite,numKeyFr,firstKeyFr,propNum,theObj,firstTime=false;
  if (document.MM_Time == null) MM_initTimelines(); //if *very* 1st time
  tmLn = document.MM_Time[tmLnName];
  if (myID == null) { myID = ++tmLn.ID; firstTime=true;}//if new call, incr ID
  if (myID == tmLn.ID) { //if Im newest
    setTimeout('MM_timelinePlay("'+tmLnName+'",'+myID+')',tmLn.delay);
    fNew = ++tmLn.curFrame;
    for (i=0; i<tmLn.length; i++) {
      sprite = tmLn[i];
      if (sprite.charAt(0) == 's') {
        if (sprite.obj) {
          numKeyFr = sprite.keyFrames.length; firstKeyFr = sprite.keyFrames[0];
          if (fNew >= firstKeyFr && fNew <= sprite.keyFrames[numKeyFr-1]) {//in range
            keyFrm=1;
            for (j=0; j<sprite.values.length; j++) {
              props = sprite.values[j];
							if (numKeyFr != props.length) {
                if (props.prop2 == null) sprite.obj[props.prop] = props[fNew-firstKeyFr];
                else {
                	(props.prop == 'left' || props.prop == 'top')? einheit = "px" : einheit = "";
                	sprite.obj[props.prop2][props.prop] = props[fNew-firstKeyFr] + einheit;
                }
              } else {
                while (keyFrm<numKeyFr && fNew>=sprite.keyFrames[keyFrm]) keyFrm++;
                if (firstTime || fNew==sprite.keyFrames[keyFrm-1]) {
                  if (props.prop2 == null) sprite.obj[props.prop] = props[keyFrm-1];
                  else
                          sprite.obj[props.prop2][props.prop] = props[keyFrm-1];
        } } } } }
      } else if (sprite.charAt(0)=='b' && fNew == sprite.frame) eval(sprite.value);
      if (fNew > tmLn.lastFrame) tmLn.ID = 0;
  } }
}

function MM_dragLayer(obj,hL,hT,hW,hH,toFront,dropBack,cU,cD,cL,cR,targL,targT,tol,dropJS,et,dragJS) { //v2.0
  //Copyright 1998 Macromedia, Inc. All rights reserved.
	///21st century script c) 2008 by mist
  var i,j,aLayer,retVal,curDrag=null,NS=(navigator.appName=='Netscape'), curLeft, curTop;
  retVal = true; ///if(document.all && event) event.returnValue = true;
  if (MM_dragLayer.arguments.length > 1) {
    curDrag = eval(obj); if (!curDrag) return false;
    if (!document.allLayers) {
      document.allLayers = new Array();
      with (document) {
				for (i=0; i<getElementsByTagName("div").length; i++)
          if (getElementsByTagName("div")[i].style != null && getElementsByTagName("div")[i].style.position) allLayers[allLayers.length] = getElementsByTagName("div")[i];
		}}
    curDrag.MM_dragOk=true; curDrag.MM_targL=targL; curDrag.MM_targT=targT;
    curDrag.MM_tol=Math.pow(tol,2); curDrag.MM_hLeft=hL; curDrag.MM_hTop=hT;
    curDrag.MM_hWidth=hW; curDrag.MM_hHeight=hH; curDrag.MM_toFront=toFront;
    curDrag.MM_dropBack=dropBack; curDrag.MM_dropJS=dropJS;
    curDrag.MM_everyTime=et; curDrag.MM_dragJS=dragJS;
    curDrag.MM_oldZ = curDrag.style.zIndex;
		curLeft= parseInt(curDrag.style.left); curDrag.MM_startL = curLeft;
    curTop = parseInt(curDrag.style.top); curDrag.MM_startT = curTop;
    curDrag.MM_bL=(cL<0)?null:curLeft-cL; curDrag.MM_bT=(cU<0)?null:curTop -cU;
    curDrag.MM_bR=(cR<0)?null:curLeft+cR; curDrag.MM_bB=(cD<0)?null:curTop +cD;
    curDrag.MM_LEFTRIGHT=0; curDrag.MM_UPDOWN=0; curDrag.MM_SNAPPED=false; //use in your JS!
    document.onmousedown = MM_dragLayer; document.onmouseup = MM_dragLayer;
  } else {
    var theEvent = ((!document.all)?obj.type:event.type);
    if (theEvent == 'mousedown') {
      var aLayer, maxDragZ=null;
      var mouseX = (!document.all)?obj.pageX : event.clientX + document.body.scrollLeft;
      var mouseY = (!document.all)?obj.pageY : event.clientY + document.body.scrollTop;
      document.MM_maxZ = 0;
      for (i=0; i<document.allLayers.length; i++) {
        aLayer = document.allLayers[i];
        var aLayerZ = aLayer.style.zIndex;
        if (aLayerZ > document.MM_maxZ) document.MM_maxZ = aLayerZ;
        var isVisible = (aLayer.style.visibility.indexOf('hid') == -1);
        if (aLayer.MM_dragOk != null && isVisible) with (aLayer) {
          var parentL=0; var parentT=0;
          if (document.all) {
            parentLayer = aLayer.parentElement;
            while (parentLayer != null && parentLayer.style.position) {
              parentL += parentLayer.offsetLeft;
              parentT += parentLayer.offsetTop;
              parentLayer = parentLayer.parentElement;
          } }
					var tmpX=mouseX-((parseInt(style.left)+parentL)+MM_hLeft);
          var tmpY=mouseY-((parseInt(style.top) +parentT)+MM_hTop);
					var tmpW = MM_hWidth; if (tmpW <= 0) tmpW += parseInt(style.width);
          var tmpH = MM_hHeight; if (tmpH <= 0) tmpH += parseInt(style.height);
          if ((0 <= tmpX && tmpX < tmpW && 0 <= tmpY && tmpY < tmpH) &&
             (maxDragZ == null || maxDragZ <= aLayerZ)) {
            curDrag = aLayer; maxDragZ = aLayerZ;
      } } }
      if (curDrag) {
        document.onmousemove = MM_dragLayer;
				curLeft = parseInt(curDrag.style.left);
        curTop =  parseInt(curDrag.style.top);
        MM_oldX = mouseX - curLeft; MM_oldY = mouseY - curTop;
        document.MM_curDrag = curDrag;  curDrag.MM_SNAPPED=false;
        if(curDrag.MM_toFront) {
          curDrag.style.zIndex = document.MM_maxZ+1;
          if (!curDrag.MM_dropBack) document.MM_maxZ++;
        }
        retVal = false; ///if(document.all) event.returnValue = false;
    } } else if (theEvent == 'mousemove') {
    	if (document.MM_curDrag) with (document.MM_curDrag) {
				var mouseX = (!document.all)?obj.pageX : event.clientX + document.body.scrollLeft;
        var mouseY = (!document.all)?obj.pageY : event.clientY + document.body.scrollTop;
        newLeft = mouseX-MM_oldX; newTop  = mouseY-MM_oldY;
        if (MM_bL!=null) newLeft = Math.max(newLeft,MM_bL);
        if (MM_bR!=null) newLeft = Math.min(newLeft,MM_bR);
        if (MM_bT!=null) newTop  = Math.max(newTop ,MM_bT);
        if (MM_bB!=null) newTop  = Math.min(newTop ,MM_bB);
        MM_LEFTRIGHT = newLeft-MM_startL; MM_UPDOWN = newTop-MM_startT;
        style.left = newLeft + "px"; style.top = newTop + "px";
        if (MM_dragJS) eval(MM_dragJS);
        retVal = false; ///if(document.all) event.returnValue = false;
    } } else if (theEvent == 'mouseup') {
      document.onmousemove = null;
      if (document.MM_curDrag) with (document.MM_curDrag) {
        if (typeof MM_targL =='number' && typeof MM_targT == 'number' &&
					(Math.pow(MM_targL-(parseInt(style.left)),2)+
          Math.pow(MM_targT-(parseInt(style.top)),2))<=MM_tol) {
          style.left = MM_targL + "px"; style.top = MM_targT + "px";
          MM_SNAPPED = true; MM_LEFTRIGHT = MM_startL-MM_targL;
          MM_UPDOWN = MM_startT-MM_targT;
        }
        if (MM_everyTime || MM_SNAPPED) eval(MM_dropJS);
				if(MM_dropBack) {style.zIndex = MM_oldZ;}
        retVal = false; ///if(document.all) event.returnValue = false;
      }
      document.MM_curDrag = null;
    }
  }
  return retVal;
}

function MM_showHideLayers() { //v2.0
	/// 21st century script c) 2008 by mist
  var i, visStr, args, theObj;
  args = MM_showHideLayers.arguments;
  for (i=0; i<(args.length-1); i+=2) { //with args (theObj,visStr)
    visStr = args[i+1];
    theObj = eval(args[i]);
	  if (theObj) theObj.style.visibility = visStr;
  }
}

function MM_preloadImages() { //v2.0
  if (document.images) {
    var imgFiles = MM_preloadImages.arguments;
    if (document.preloadArray==null) document.preloadArray = new Array();
    var i = document.preloadArray.length;
    with (document) for (var j=0; j<imgFiles.length; j++) if (imgFiles[j].charAt(0)!="#"){
      preloadArray[i] = new Image;
      preloadArray[i++].src = imgFiles[j];
  } }
}

function MM_swapImgRestore() { //v2.0
  if (document.MM_swapImgData != null)
    for (var i=0; i<(document.MM_swapImgData.length-1); i+=2)
      document.MM_swapImgData[i].src = document.MM_swapImgData[i+1];
}

function MM_swapImage() { //v2.0
  var i,j=0,objStr,obj,swapArray=new Array,oldArray=document.MM_swapImgData;
  for (i=0; i < (MM_swapImage.arguments.length-1); i+=2) {
    objStr = MM_swapImage.arguments[i];
    if (objStr.indexOf('document.getElementBy')==0)
    	objStr = 'document'+objStr.substring(objStr.lastIndexOf('.'),objStr.length);
    obj = eval(objStr);
    if (obj != null) {
      swapArray[j++] = obj;
      swapArray[j++] = (oldArray==null || oldArray[j-1]!=obj)?obj.src:oldArray[j];
      obj.src = MM_swapImage.arguments[i+1];
  } }
  document.MM_swapImgData = swapArray; //used for restore
}