// ########### functions IFA

// ########### browser detection

var nn4 = (document.layers) ? 1 : 0;

// ########### no div-layer to hide (critical content)

var contentLayerToHide = false;

// ########### macromedia scripts

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

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;
}

function MM_showHideLayers() { //v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

// ########### custom scripts

// displays alert, if not DOM

if(nn4 || !document.getElementById) {
  alert("Der von Ihnen verwendete Browser ist entweder veraltet oder unterstützt DOM (document object model) nicht im erforderlichen Umfang, \nBitte verwenden Sie zur Darstellung dieser Site einen aktuellen, DOM-fähigen Browser wie Internet Explorer ab 5.0 oder Netscape ab 6.1\n\nYour browser is not up to date or does not entirely support DOM (document object model). \nTo view this site, please use the a suitable browser e.g. Internet Explorer 5.0 and higher or Netscape 6.1 and higher");
}


// avoids rectangular outline around link in IE

function noBorder(thisObj) {
  if(!nn4) 
  {
    thisObj.blur();
  }
}


/*reloads page if window is being resized with Netscape 4

window.onresize = reloadPage;

function reloadPage() {
  if(nn4) 
  {
    window.history.go(0);
  }
}*/


// scripts to be called onLoad, depending on setting of var loadScriptNum

function loadScriptCheck() {
	//if(loadScriptNum==0) {loadScript0();}
	if(loadScriptNum==1) {loadScript1();}
	if(loadScriptNum==2) {loadScript2();}
}

/*function loadScript0() { //starts changing banners.
	startBanner();
}*/

function loadScript1() { //for ordinary content pages (except in cases where direct jumps to anchors are required
  window.scrollTo(0,0);
  //startBanner();
}

function loadScript2() { //for pages without onLoad-functionality
  //do nothing
}

// scroll functions for iframe

function scrollNewsFrameUp() {
  if(!nn4) 
  {
    scrollDir = -1;
	startScrollNewsFrame(); 
  }
}


function scrollNewsFrameDown() {
  if(!nn4) { 
    scrollDir = 1;
    startScrollNewsFrame(); 
  }
}


function startScrollNewsFrame() {
doScrolling = setInterval("scrollNewsFrame()",scrollSpeed);
}


function scrollNewsFrame() {
  window.newsFrame.scrollBy(0,scrollHeightStep*scrollDir);
}


function stopScrollNewsFrame() {
  clearInterval(doScrolling);
}


function speedScrollOn() {
  scrollHeightStep = fastScrollHeightStep;
}


function speedScrollOff() {
  scrollHeightStep = rememberedScrollHeightStep;
}


// functions to create and handle menu

function switchToStatus(menuLevel,menuItem,overOut) { //overOut: 1=Over 0:Out
  changeStyles(menuLevel,menuItem,overOut);
  showHideLevel2(menuItem,overOut);
  storeCursorLevel(menuLevel,overOut);
}

function switchToSubStatusLevel2(parentItem,menuItem,overOut) { //overOut: 1=Over 0:Out
  changeLevel2Styles(parentItem,menuItem,overOut);
  showHideLevel3(parentItem,menuItem,overOut);
  storeCursorLevel(2,overOut);
}


function switchToSubStatusLevel3(parentItem1,parentItem2,menuItem,overOut) { //overOut: 1=Over 0:Out
  changeLevel3Styles(parentItem1,parentItem2,menuItem,overOut);
  storeCursorLevel(3,overOut);
}


function clearStatus(myReferenz,myPrefix) {
 setStyleDefinitions(myReferenz,myPrefix); 
}


function clearSub(oldLevel2Displayed) {
 MM_showHideLayers(oldLevel2Displayed,'','hide'); 
}


function myTimer() {
  timeElapsed = 0;
  var startTime = new Date();
  startTime = startTime.getTime();
  var currentTime = new Date();
  currentTime = currentTime.getTime();
  while(currentTime<startTime+disappearDelay)
  {
    currentTime = new Date();
    currentTime = currentTime.getTime();
  }
  timeElapsed = 1;
}


function executeWithDelay(myFunction) {
  myTimer();
  while(timeElapsed == 0)
  {
  //do nothing
  }
  eval(myFunction);
}


function resetStyleLevel2() {
  if(oldMenuReferenzLevel2!=null)
	{
	  setStyleDefinitions(oldMenuReferenzLevel2,oldStylePrefixLevel2);
	  //oldMenuReferenzLevel2 = null;
	  //oldStylePrefixLevel2 = null;
	}
}


function resetStyleLevel3() {
  if(oldMenuReferenzLevel3!=null)
	{
	  setStyleDefinitions(oldMenuReferenzLevel3,oldStylePrefixLevel3);
	  //oldMenuReferenzLevel3 = null;
	  //oldStylePrefixLevel2 = null;
	}
}


function changeStyles(menuLevel,menuItem,overOut) {
  var overOut = (overOut==1) ? "Over" : "Out";
  var stylePrefix = "level" + menuLevel + "_" + overOut + "_";
  var menuReferenz = "level" + menuLevel + "_item" + menuItem;
  //document.forms[0].elements[0].value = 'menuReferenz: ' + menuReferenz; //debugger line!!!!
  if(overOut=="Over")
  {
    if((oldMenuReferenzLevel1!=menuReferenz)&&(oldMenuReferenzLevel1!=null))
	{
	  setStyleDefinitions(oldMenuReferenzLevel1,oldStylePrefixLevel1);
	}
	resetStyleLevel2();
	resetStyleLevel3();
	setStyleDefinitions(menuReferenz,stylePrefix);
  } 
  else 
  {
    oldMenuReferenzLevel1 = menuReferenz;
	oldStylePrefixLevel1 = stylePrefix;
	resetStyleLevel2();
	resetStyleLevel3();
  }
}

function changeLevel2Styles(parentItem,menuItem,overOut) {
  var overOut = (overOut==1) ? "Over" : "Out";
  var stylePrefix = "level2_" + overOut + "_";
  var menuReferenz = "level2_a" + parentItem + '_b' + menuItem;
  //document.forms[0].elements[0].value = 'menuReferenz: ' + menuReferenz; //debugger line!!!!
  if(overOut=="Over")
  {
    if((oldMenuReferenzLevel2!=menuReferenz)&&(oldMenuReferenzLevel2!=null))
	{
	  resetStyleLevel2();
	}
	resetStyleLevel3();
	setStyleDefinitions(menuReferenz,stylePrefix);
  } 
  else 
  {
    oldMenuReferenzLevel2 = menuReferenz;
	oldStylePrefixLevel2 = stylePrefix;
	resetStyleLevel3();
  }
}

function changeLevel3Styles(parentItem1,parentItem2,menuItem,overOut) {
  var overOut = (overOut==1) ? "Over" : "Out";
  var stylePrefix = "level3_" + overOut + "_";
  var menuReferenz = "level3_a" + parentItem1 + '_b' + parentItem2 + '_c' + menuItem;
  //document.forms[0].elements[0].value = 'menuReferenz: ' + menuReferenz; //debugger line!!!!
  if(overOut=="Over")
  {
    if((oldMenuReferenzLevel3!=menuReferenz)&&(oldMenuReferenzLevel3!=null))
	{
	  resetStyleLevel3();
	}
	setStyleDefinitions(menuReferenz,stylePrefix);
  } 
  else 
  {
    oldMenuReferenzLevel3 = menuReferenz;
	oldStylePrefixLevel3 = stylePrefix;
  }
}


function defineStyles(levelNum) {
  level_backgroundColor = eval("level" + levelNum + "_Out_backgroundColor");
  level_color = eval("level" + levelNum + "_Out_color");
  level_fontFamily = eval("level" + levelNum + "_Out_fontFamily");
  level_fontWeight = eval("level" + levelNum + "_Out_fontWeight");
  level_fontSize = eval("level" + levelNum + "_Out_fontSize");
  level_letterSpacing = eval("level" + levelNum + "_Out_letterSpacing");
  level_paddingLeft = eval("level" + levelNum + "_Out_paddingLeft");
}


function setStyleDefinitions(myReferenz,myPrefix) {
  document.getElementById(myReferenz).style.backgroundColor = eval(myPrefix + "backgroundColor");
  document.getElementById(myReferenz).style.color = eval(myPrefix + "color");
  document.getElementById(myReferenz).style.fontWeight = eval(myPrefix + "fontWeight");
  document.getElementById(myReferenz).style.letterSpacing = eval(myPrefix + "letterSpacing");
}


function hideLevel3() {
  if(oldLevel3Displayed != null)
  {
    MM_showHideLayers(oldLevel3Displayed,'','hide');
	MM_showHideLayers(oldOutLevel3Displayed,'','hide');
	oldLevel3Displayed = null; 
  }
}

function hideLevel2() {
  if(oldLevel2Displayed != null)
  {
    MM_showHideLayers(oldLevel2Displayed,'','hide');
	MM_showHideLayers(oldOutLevel2Displayed,'','hide');
	oldLevel2Displayed = null; 
  }
}


function showHideLevel2(menuItem,show) {
  var subLayer = 'level2a' + menuItem;
  var outLayer = 'outlayerlevel2a' + menuItem;
  if(show)
  {
  	//part to HIDE content-layer with critical content e.g. iframes, select-lists - (var "contentLayerToHide" has to be set "true" in concerning page body)
    if(contentLayerToHide==true)
	{
		MM_showHideLayers('criticalContentLayer','','hide');
	}
	//end of part
	if((oldLevel2Displayed!=subLayer)&&(oldLevel2Displayed!=null))
	{
	  MM_showHideLayers(oldLevel2Displayed,'','hide');
	  MM_showHideLayers(oldOutLevel2Displayed,'','hide');
	}
    MM_showHideLayers(subLayer,'','show');
	MM_showHideLayers(outLayer,'','show');
	hideLevel3()
  }
  else 
  {
    oldLevel2Displayed = subLayer;
	oldOutLevel2Displayed = outLayer;
	hideLevel3()
  }
}


function showHideLevel3(parentItem,menuItem,show) {
  var subLayer = 'level3a' + parentItem + 'b' + menuItem;
  var outLayer = 'outlayerlevel3a' + parentItem + 'b' + menuItem;
  if(show)
  {
    if((oldLevel3Displayed!=subLayer)&&(oldLevel3Displayed!=null))
	{
	  MM_showHideLayers(oldLevel3Displayed,'','hide');
	  MM_showHideLayers(oldOutLevel3Displayed,'','hide');
	}
    MM_showHideLayers(subLayer,'','show');
	MM_showHideLayers(outLayer,'','show');
  }
  else 
  {
    oldLevel3Displayed = subLayer;
	oldOutLevel3Displayed = outLayer;
  }
}


function storeCursorLevel(menuLevel,withinLevel) {
  switch(menuLevel) 
  {
  case 1:
    cursorWithinLevel1 = (withinLevel) ? 1 : 0;
    break;
  case 2:
    cursorWithinLevel2 = (withinLevel) ? 1 : 0;
    break;
  case 3:
    cursorWithinLevel3 = (withinLevel) ? 1 : 0;
    break;
  }
}


function doMenuClickAction(menuArray,menuItem) {
	if(menuArray[menuItem][1]==0) //if no sublevel
	{
		var contentUrl = menuArray[menuItem][2];
		if(fsetType == 'home')
		{
			//parent.location.href = 'http://www.ifa-berlin.de/fset_content_' + langType + '.html' + '?url=' + contentUrl;
			parent.location.href = 'http://www1.messe-berlin.de/vip8_1/website/MesseBerlin/htdocs/www.ifa-berlin.de/fset_content_' + langType + '.html' + '?url=' + contentUrl;
		}
		else if(fsetType == 'content')
		{
			//parent.contentFrame.location.href =  contentUrl.replace(/vip8prod.messe-berlin.de\/vip8_1\/website\/MesseBerlin/htdocs\/www.ifa-berlin.de\//,"www.ifa-berlin.de/");
			//parent.pathFrame.location.href = 'http://www.ifa-berlin.de/path_' + langType + '.jsp' + '?url=' + contentUrl;
			parent.contentFrame.location.href =  contentUrl;
			parent.pathFrame.location.href = 'http://www1.messe-berlin.de/vip8_1/website/MesseBerlin/htdocs/www.ifa-berlin.de/path_' + langType + '.jsp' + '?url=' + contentUrl;
		}
		else
		{
			alert('VARIABLE fsetType NOT DEFINED! MUST BE A STRING, home OR content');
		}
	}
}


function displayMenuText(levelNum,i) {
  return eval('level' + levelNum + '_texte[' + i + ']');
}


function itemNumberLevel1() {
  var itemNumberLevel1 = ((level1.length-1)<=maximumItemsLevel1) ? level1.length-1 : maximumItemsLevel1;
  return itemNumberLevel1;
}


function createMenu() {
  createLevel1(1);
}


function createLevel1(levelNum) {
  defineStyles(1);
  var itemNumber = itemNumberLevel1() + 0;
  var loopString = '<table width="' + width_level1 + '" border="0" cellspacing="0" cellpadding="0">';
  for(var i=1; i<=itemNumber; i++) 
  {
    loopString += '<tr><td height="' + height_separator + '" class="separatorLevel1"><a href="#" class="arrow" onMouseOver="storeCursorLevel(1,1)" onMouseOut="storeCursorLevel(1,0)"><img class="arrow" src="../img/trans1.gif" width="' + width_level1 + '" height="' + height_separator + '" border="0" alt=""></a></td></tr>';
	loopString += '<tr><td id="level' + levelNum + '_item' + i + '" height="' + height_menuCell + '" ';
	loopString += 'style="background-color:' + level_backgroundColor + '; ';
	loopString += 'color:' + level_color + '; ';
	loopString += 'font-family:' + level_fontFamily + '; ';
	loopString += 'font-size:' + level_fontSize + '; ';
	loopString += 'font-weight:' + level_fontWeight + '; ';
	loopString += 'letter-spacing:' + level_letterSpacing + '; ';
	loopString += 'padding-left:' + level_paddingLeft + ';" ';
	loopString += 'onMouseOver="switchToStatus(' + levelNum + ',' + i + ',1)" ';
	loopString += 'onMouseOut="switchToStatus(' + levelNum + ',' + i + ',0)" ';
	loopString += 'onClick="doMenuClickAction(level1,' + i + ')" ';
	loopString += '><span class="arrow" ';
	loopString += '>' + displayMenuText(levelNum,i) + '</span></td></tr>';
  }
  loopString += '<tr><td height="' + height_separator + '" class="separatorLevel1"><a href="#" class="arrow" onMouseOver="storeCursorLevel(1,1)" onMouseOut="storeCursorLevel(1,0)"><img class="arrow" src="../img/trans1.gif" width="' + width_level1 + '" height="' + height_separator + '" border="0" alt=""></a></td></tr>';
  loopString += '</table>';
  document.write(loopString);
}


function calculateTotalHeight(itemNum) {
  var calcHeight = itemNum * (height_menuCell+height_separator) + height_separator;
  return calcHeight;
}


function calculatePartialHeight(itemNum) {
  var calcHeight = (itemNum-1) * (height_menuCell+height_separator);
  return calcHeight;
}


function calculateY(theHeight) {
  var calcY = theHeight + zero_y;
  return calcY;
}


function findPosYDiv(yMax,parentItemNum,thisLevelItemsNum) {
  var foundPosYDiv = calculateY(calculatePartialHeight(parentItemNum)) + calculateTotalHeight(thisLevelItemsNum);
  if(foundPosYDiv>yMax)
  {
    foundPosYDiv = yMax - calculateTotalHeight(thisLevelItemsNum);
  }
  else 
  {
    foundPosYDiv -= calculateTotalHeight(thisLevelItemsNum);
  }
  return foundPosYDiv;
}


function findPosYDivLevel3(yMax,posYDiv,parentItemNum,thisLevelItemsNum) {
  var posYDivLevel2 = posYDiv + calculatePartialHeight(parentItemNum);
  var foundPosYDivLevel3 = posYDivLevel2 + calculateTotalHeight(thisLevelItemsNum);
  if(foundPosYDivLevel3>yMax)
  {
    foundPosYDivLevel3 = yMax - calculateTotalHeight(thisLevelItemsNum);
  }
  else 
  {
    foundPosYDivLevel3 -= calculateTotalHeight(thisLevelItemsNum);
  }
  return foundPosYDivLevel3;
}


function createSubLevels() {
  for (i=1;i<=maximumItemsLevel1;i++) // i = item number of level 1 (=a)
  { 
    defineStyles(2);
    if(eval('level2a' + i)!=null) //checks whether level2 exists
    {
      var levelItemsNum = (eval('level2a' + i + '.length - 1')<maximumItemsLevel1)? eval('level2a' + i + '.length - 1') : maximumItemsLevel1;
	  var h = calculateTotalHeight(levelItemsNum);
	  var posYDiv = findPosYDiv(calculateY(height_level1),i,levelItemsNum);
	  var level2DivString  = '<div id="level2a' + i + '" style="position:absolute; width:' + width_level2 + 'px; height:' + h + 'px; z-index:2; left:' + x_level2 + 'px; top:' + posYDiv + 'px; visibility: hidden">';
	  level2DivString += '<table width="' + width_level2 + '" border="0" cellspacing="0" cellpadding="0"><tr><td class="separatorLevel2" onMouseOver="storeCursorLevel(2,1)" onMouseOut="storeCursorLevel(2,0)">';
	  level2DivString += '<table width="' + width_level2 + '" border="0" cellspacing="1" cellpadding="0">';
	  for(j=1;j<=levelItemsNum;j++) // j = row number of level 2
      {
	    //alert('levelItemsNum: ' + levelItemsNum + ', Zähler level2: ' + j); //debugger line!!!
	    level2DivString += '<tr><td id="level2_a' + i + '_b'+ j + '" height="' + height_menuCell + '" ';
		level2DivString += 'style="background-color:' + level_backgroundColor + '; ';
	    level2DivString += 'color:' + level_color + '; ';
	    level2DivString += 'font-family:' + level_fontFamily + '; ';
	    level2DivString += 'font-size:' + level_fontSize + '; ';
	    level2DivString += 'font-weight:' + level_fontWeight + '; ';
	    level2DivString += 'letter-spacing:' + level_letterSpacing + '; ';
	    level2DivString += 'padding-left:' + level_paddingLeft + ';" ';
	    level2DivString += 'onMouseOver="switchToSubStatusLevel2(' + i + ',' + j + ',1)" ';
	    level2DivString += 'onMouseOut="switchToSubStatusLevel2(' + i + ',' + j + ',0)" ';
	    level2DivString += 'onClick="doMenuClickAction(level2a' + i + ',' + j + ')" ';
		level2DivString += '><span class="arrow" ';
	    level2DivString += '>' + eval('level2a' + i + '[' + j + '][0]') + '</span></td></tr>';
	  }
	  level2DivString += '</table></td></tr></table></div>';
	  document.write(level2DivString);
	  //construction of level2 detection layers
	  createOutLayersLevel(2,width_level2,h,x_level2,posYDiv,i,j);
	  //construction of level3 menu layers
	  for(k=1;k<=maximumItemsLevel1;k++) // k = item number of level 2 (=b)
	  {
	    defineStyles(3);
	    if(eval('level3a' + i + 'b' + k)!=null) //checks whether level3 exists
	    {
	   	  levelItemsNum = (eval('level3a' + i + 'b' + k + '.length - 1')<maximumItemsLevel1)? eval('level3a' + i + 'b' + k + '.length - 1') : maximumItemsLevel1;
		  //var posYDivNew = posYDiv + calculatePartialHeight(k);
		  h = calculateTotalHeight(levelItemsNum);
		  var posYDivLevel3 = findPosYDivLevel3(calculateY(height_level1),posYDiv,k,eval('level3a'+ i + 'b' + k + '.length-1'));
		  var level3DivString  = '<div id="level3a' + i + 'b' + k + '" style="position:absolute; width:' + width_level3 + 'px; height:' + h + 'px; z-index:4; left:' + (x_level3-1) + 'px; top:' + posYDivLevel3 + 'px; visibility: hidden">';
	      level3DivString += '<table width="' + width_level3 + '" border="0" cellspacing="0" cellpadding="0"><tr><td class="separatorLevel3" onMouseOver="storeCursorLevel(3,1)" onMouseOut="storeCursorLevel(3,0)">';
	      level3DivString += '<table width="' + width_level3 + '" border="0" cellspacing="1" cellpadding="0">';
	      for(m=1;m<=levelItemsNum;m++) // m = row number of level 3
          {
		    //alert('levelItemsNum: ' + levelItemsNum + ', Zähler level3: ' + m); //debugger line!!!
	        level3DivString += '<tr><td id="level3_a' + i + '_b'+ k + '_c' + m + '" height="' + height_menuCell + '" ';
			level3DivString += 'style="background-color:' + level_backgroundColor + '; ';
	        level3DivString += 'color:' + level_color + '; ';
	        level3DivString += 'font-family:' + level_fontFamily + '; ';
	        level3DivString += 'font-size:' + level_fontSize + '; ';
	        level3DivString += 'font-weight:' + level_fontWeight + '; ';
	        level3DivString += 'letter-spacing:' + level_letterSpacing + '; ';
	        level3DivString += 'padding-left:' + level_paddingLeft + ';" ';
	        level3DivString += 'onMouseOver="switchToSubStatusLevel3(' + i + ',' + k + ',' + m + ',1)" ';
	        level3DivString += 'onMouseOut="switchToSubStatusLevel3(' + i + ',' + k + ',' + m + ',0)" ';
	        level3DivString += 'onClick="doMenuClickAction(level3a' + i + 'b' + k + ',' + m + ')" ';
			level3DivString += '><span class="arrow" ';
	        level3DivString += '>' + eval('level3a' + i + 'b' + k + '[' + m + '][0]') + '</span></td></tr>';
	      }
	      level3DivString += '</table></td></tr></table></div>';
	      document.write(level3DivString);
		  //construction of level3 detection layers
		  createOutLayersLevel(3,width_level3,h,(x_level3)-1,posYDivLevel3,i,k);
	    }
      }
    }
  }
}

function createOutLayersLevel1() {
	var outLayerLevel1String = '';
	var b = width_level1;
	var h = height_level1;
	var s = sensitiveOutArea;
	var x0 = zero_x;
	var y0 = zero_y;
	//detector layer (left)
	outLayerLevel1String += '<div id="outlayerlevel1left" style="position:absolute; width:' + s + 'px; height:' + h + 'px; z-index:1; left:' + (x0-s) + '; top:' + y0 + '; visibility: visible">';
	outLayerLevel1String += '<a class="arrow" href="#" onMouseOver="clearDisplayedLevels()" onMouseOut="clearDisplayedLevels()">';
	outLayerLevel1String += '<img class="arrow" src="' + imgTrans + '" width="' + s + '" height="' + h + '" border="0" alt="">';
	outLayerLevel1String += '</a></div>';
	//detector layer (right)
	outLayerLevel1String += '<div id="outlayerlevel1right" style="position:absolute; width:' + s + 'px; height:' + h + 'px; z-index:1; left:' + (x0+b) + '; top:' + y0 + '; visibility: visible">';
	outLayerLevel1String += '<a class="arrow" href="#" onMouseOver="clearDisplayedLevels()" onMouseOut="clearDisplayedLevels()">';
	outLayerLevel1String += '<img class="arrow" src="' + imgTrans + '" width="' + s + '" height="' + h + '" border="0" alt="">';
	outLayerLevel1String += '</a></div>';
	//detector layer (top)
	outLayerLevel1String += '<div id="outlayerlevel1top" style="position:absolute; width:' + (b+2*s) + 'px; height:' + s + 'px; z-index:1; left:' + (x0-s) + '; top:' + (y0-s) + '; visibility: visible">';
	outLayerLevel1String += '<a class="arrow" href="#" onMouseOver="clearDisplayedLevels()" onMouseOut="clearDisplayedLevels()">';
	outLayerLevel1String += '<img class="arrow" src="' + imgTrans + '" width="' + (b+2*s) + '" height="' + s + '" border="0" alt="">';
	outLayerLevel1String += '</a></div>';
	//detector layer (bottom)
	outLayerLevel1String += '<div id="outlayerlevel1bottom" style="position:absolute; width:' + (b+2*s) + 'px; height:' + s + 'px; z-index:1; left:' + (x0-s) + '; top:' + (y0+h) + '; visibility: visible">';
	outLayerLevel1String += '<a class="arrow" href="#" onMouseOver="clearDisplayedLevels()" onMouseOut="clearDisplayedLevels()">';
	outLayerLevel1String += '<img class="arrow" src="' + imgTrans + '" width="' + (b+2*s) + '" height="' + s + '" border="0" alt="">';
	outLayerLevel1String += '</a></div>';
	//
	document.write(outLayerLevel1String);
}

function createOutLayersLevel(level,b,h,x0,y0,aValue,bValue) {
	var s = sensitiveOutArea;
	var outLayerLevelString = '';
	if(level==2)
	{
		outLayerLevelString += '<div id="outlayerlevel2a' + aValue + '" ';
		outLayerLevelString += 'style="position:absolute; width:' + (b+s) + 'px; height:' + (h+2*s) + 'px; z-index:1; left:' + x0 + '; top:' + (y0-s) + '; visibility:hidden">';
		outLayerLevelString += '<a class="arrow" href="#" onMouseOver="clearDisplayedLevels()" onMouseOut="clearDisplayedLevels()">';
		outLayerLevelString += '<img class="arrow" src="' + imgTrans + '" width="' + (b+s) + '" height="' + (h+2*s) + '" border="0" alt="">';
		outLayerLevelString += '</a></div>';
	}
	else if (level==3)
	{
		outLayerLevelString += '<div id="outlayerlevel3a' + aValue + 'b' + bValue + '" ';
		outLayerLevelString += 'style="position:absolute; width:' + (b+2*s) + 'px; height:' + (h+2*s) + 'px; z-index:1; left:' + (x0-s) + '; top:' + (y0-s) + '; visibility:hidden">';
		outLayerLevelString += '<a class="arrow" href="#" onMouseOver="clearDisplayedLevels()" onMouseOut="clearDisplayedLevels()">';
		outLayerLevelString += '<img class="arrow" src="' + imgTrans + '" width="' + (b+2*s) + '" height="' + (h+2*s) + '" border="0" alt="">';
		outLayerLevelString += '</a></div>';
	}
	document.write(outLayerLevelString);
}

function triggerDebugger(status) {
	if(status)
	{
		document.forms[0].elements[0].value = '1';
	}
	else
	{
		document.forms[0].elements[0].value = '0';
	}
}

function clearDisplayedLevels() {
	//part to SHOW AGAIN content-layer with critical content e.g. iframes, select-lists - (var "contentLayerToHide" has to be set "true" in concerning page body)
    if(contentLayerToHide==true)
	{
		MM_showHideLayers('criticalContentLayer','','show');
	}
	//end of part
	hideLevel3();
	hideLevel2();
	if(oldMenuReferenzLevel1!=null && oldStylePrefixLevel1!=null)
	{
		setStyleDefinitions(oldMenuReferenzLevel1,oldStylePrefixLevel1);
	}
}

function detectCursorOut() {
	if(cursorWithinLevel1==0 && cursorWithinLevel2==0 && cursorWithinLevel3==0)
	{
		clearDisplayedLevels()
	}
}

// ########### begin of chrono-scripts

var clickedItemChrono = "";
var oldClickedItemChrono = "";
var newImageName = "";

function chronoOver(itemChronoId) {
  if(clickedItemChrono!=itemChronoId)
  {
  document.getElementById(itemChronoId).style.color='#FF3333';
  document.getElementById(itemChronoId).style.cursor='hand';
  }
}

function chronoOut(itemChronoId) {
  if(clickedItemChrono!=itemChronoId)
  {
  document.getElementById(itemChronoId).style.color='#333333';
  document.getElementById(itemChronoId).style.cursor='hand';
  }
}

//funktion mit Initialwert aufrufen 21.01.05
//alert(itemChronoId);
//if(!itemChronoId){
//chronoClick('y1924');
//}
//--------------------------------------

function chronoClick(itemChronoId) {
  if(oldClickedItemChrono!='')
  {
    oldClickedItemChrono = clickedItemChrono;
    document.getElementById(oldClickedItemChrono).style.color='#333333';
    document.getElementById(oldClickedItemChrono).style.cursor='hand';
	MM_swapImgRestore();
  } 
  else
  {
  oldClickedItemChrono = itemChronoId;
  }
  clickedItemChrono = itemChronoId;
  var newImageName = 'img_' + itemChronoId;
  document.getElementById(itemChronoId).style.color='#FF3333';
  document.getElementById(itemChronoId).style.cursor='default';
  MM_swapImage(newImageName,'',newImageSrc,1);
  parent.chronikcontent.location.href = chronoDocPath + itemChronoId + '.jsp';
}

// ########### end of chrono-scripts

// ########### BANNER - begin

//deutsche banner rechte seite

/*var banner_d_01_right = new Array(1,'http://www.messe-zeitungen.de/new/index.php?include_file=det_messe.php&id=9','gif','_blank'); // (aktiviert,'link','dateiname','dateiendung','neuesFenster oder selbes oder keinLink')
var banner_d_02_right = new Array(1,'http://www.messe-zeitungen.de/new/index.php?include_file=det_messe.php&id=9','gif','_blank');
var banner_d_03_right = new Array(1,'http://www.messe-zeitungen.com/new/index.php?include_file=det_messe.php&id=23','gif','_blank');
var banner_d_04_right = new Array(1,'http://www.ceatec.com','gif','_blank');
var banner_d_05_right = new Array(1,'http://www.superaudio-cd.com/','gif','_blank');
var banner_d_06_right = new Array(0,'http://www.google.de','gif','_blank');
var banner_d_07_right = new Array(0,'http://www.google.de','gif','_blank');
var banner_d_08_right = new Array(0,'http://www.google.de','gif','_blank');
var banner_d_09_right = new Array(0,'http://www.google.de','gif','kein Link');
var banner_d_10_right = new Array(0,'http://www.google.de','gif','_top');

//englische banner rechte seite

var banner_e_01_right = new Array(1,'http://www.messe-zeitungen.de/new/engl/index.php?include_file=det_messe.php&id=9','gif','_blank');
var banner_e_02_right = new Array(1,'http://www.messe-zeitungen.com/new/engl/index.php?include_file=det_messe.php&id=23','gif','_blank');
var banner_e_03_right = new Array(1,'http://www.ceatec.com','gif','_blank');
var banner_e_04_right = new Array(1,'http://www.superaudio-cd.com/','gif','_blank');
var banner_e_05_right = new Array(0,'http://www.google.de','gif','_blank');
var banner_e_06_right = new Array(0,'http://www.google.de','gif','_blank');
var banner_e_07_right = new Array(0,'http://www.google.de','gif','_blank');
var banner_e_08_right = new Array(0,'http://www.google.de','gif','_blank');
var banner_e_09_right = new Array(0,'http://www.google.de','gif','_blank');
var banner_e_10_right = new Array(0,'http://www.google.de','gif','_blank');

//deutsche banner linke seite

var banner_d_01_left = new Array(0,'http://www.google.de','gif','_blank');
var banner_d_02_left = new Array(0,'http://www.google.de','gif','_blank');
var banner_d_03_left = new Array(0,'http://www.google.de','gif','_blank');
var banner_d_04_left = new Array(0,'http://www.google.de','gif','_blank');
var banner_d_05_left = new Array(0,'http://www.google.de','gif','_blank');
var banner_d_06_left = new Array(0,'http://www.google.de','gif','_blank');
var banner_d_07_left = new Array(0,'http://www.google.de','gif','_blank');
var banner_d_08_left = new Array(0,'http://www.google.de','gif','_blank');
var banner_d_09_left = new Array(0,'http://www.google.de','gif','_blank');
var banner_d_10_left = new Array(0,'http://www.google.de','gif','_blank');

//englische banner linke seite

var banner_e_01_left = new Array(0,'http://www.google.de','gif','_blank');
var banner_e_02_left = new Array(0,'http://www.google.de','gif','_blank');
var banner_e_03_left = new Array(0,'http://www.google.de','gif','_blank');
var banner_e_04_left = new Array(0,'http://www.google.de','gif','_blank');
var banner_e_05_left = new Array(0,'http://www.google.de','gif','_blank');
var banner_e_06_left = new Array(0,'http://www.google.de','gif','_blank');
var banner_e_07_left = new Array(0,'http://www.google.de','gif','_blank');
var banner_e_08_left = new Array(0,'http://www.google.de','gif','_blank');
var banner_e_09_left = new Array(0,'http://www.google.de','gif','_blank');
var banner_e_10_left = new Array(0,'http://www.google.de','gif','_blank');

//steuerungsparameter

var changeInterval = 5000; //Wechselintervall in ms
var enableLeftBanner = false; //Aktivierung des linken Wechsel-Banners
var enableRightBanner = true; //Aktivierung des rechten Wechsel-Banners
var enableLeftFixed = true; //Aktivierung des linken Platzes für Fix-Banner
var enableRightFixed = false; //Aktivierung des rechten Platzes für Fix-Banner
if(enableLeftBanner && enableLeftFixed){alert("Fehler in functions.js, Steuerungsparameter falsch gesetzt! enableLeftBanner oder enableLeftFixed auf false setzen!");}
if(enableRightBanner && enableRightFixed){alert("Fehler in functions.js, Steuerungsparameter falsch gesetzt! enableRightBanner oder enableRightFixed auf false setzen!");}

//programmvariablen


var imagePrefix = "banner_"; //Namenskonvention für Dateinamen
var imagePath = "http://www1.messe-berlin.de/vip8_1/website/MesseBerlin/htdocs/www.ifa-berlin.de/Images/banners/"; //Pfad der Banner
var startBannerActive = null; //für setInterval
var nextBannerNum = 1; //zähler für schleife
var nextBannerString = null; //korrekte bildnummer aktivierter banner im array
var bannerListLeft = new Array(); //aktivierte banner links
var bannerListRight = new Array(); //aktivierte banner rechts
var windowParameters = 'toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=700,height=500';
var maxImagesPerBanner = 10;
var clickEnabled = false;

//fixed banners: BEACHTE, DASS DER FIXED BANNER NUR BEI enableLeftBanner=false (bzw Right) eingesetzt wird!!!!!

var fixedBannerLeft_d = new Array(1,'http://www.samsung.com/ifa/','2003_samsung_1.gif','_blank'); //arraySTRUKTUR nicht ändern
var fixedBannerLeft_e = new Array(1,'http://www.samsung.com/ifa/','2003_samsung_1.gif','_blank'); //arraySTRUKTUR nicht ändern
var fixedBannerRight_d = new Array(0,'#','banner_d_00.gif','_self'); //arraySTRUKTUR nicht ändern
var fixedBannerRight_e = new Array(0,'#','banner_e_00.gif','_self'); //arraySTRUKTUR nicht ändern

//funktionen

function initBannerVars() {  //legt die initialwerte fest
if(langType == "d"){ //erzeugt die sprachabhängigen img-prefixes
	imagePrefix = imagePrefix + "d_"; 
} 
else
{
	imagePrefix = imagePrefix + "e_";
}

if(enableRightBanner){
	for(i=1;i<=maxImagesPerBanner;i++){
		var iString = makeTwoDigitString(i);
		var xString = imagePrefix + iString + "_right";
		eval(xString)[eval(xString).length] = i;
		if(eval(xString)[0]==1){bannerListRight[bannerListRight.length] = eval(xString);}
	}
}
if(enableLeftBanner){
	for(i=1;i<=maxImagesPerBanner;i++){
		var iString = makeTwoDigitString(i);
		var xString = imagePrefix + iString + "_left";
		eval(xString)[eval(xString).length] = i;
		if(eval(xString)[0]==1){bannerListLeft[bannerListLeft.length] = eval(xString);}
	}
}
}

function startBanner() { //start der banneranimation
	initBannerVars();
	if(enableRightBanner){
		animateBanner('_right');
		startBannerActive = window.setInterval("animateBanner('_right')",changeInterval);
	}
	if(enableLeftBanner){
		animateBanner('_left');
		startBannerActive = window.setInterval("animateBanner('_left')",changeInterval);
	}
	if(enableRightFixed){
		document.images["banner_right"].src = imagePath + eval('fixedBannerRight_' + langType)[2];
	}
	if(enableLeftFixed){
		document.images["banner_left"].src = imagePath + eval('fixedBannerLeft_' + langType)[2];
	}
}

function animateBanner(bannerPosition) { //animiert den banner mit vorgegebener intervallzeit
	nextBannerString = makeTwoDigitString(bannerListRight[nextBannerNum-1][4]);
	document.images["banner_right"].src = imagePath + imagePrefix + nextBannerString + bannerPosition + "." + bannerListRight[nextBannerNum-1][2];
	if(nextBannerNum < bannerListRight.length) {nextBannerNum++;} else {nextBannerNum=1;}
	if(!clickEnabled){clickEnabled = true;}
}

function makeTwoDigitString(x) { //erzeugt aus einstelligen integer-zahlen einen zweistelligen string mit führender null
	var y = x + '';
	if(x<10){y = "0" + y;}
	return y;
}

function callRightBannerLink() { //ruft den bannerlink RECHTS auf
	if(enableRightBanner && clickEnabled){
		var imgString = document.images["banner_right"].src;
		var posNumberString = imgString.indexOf(imagePrefix) + imagePrefix.length;
		var displayedBanner = imgString.substr(posNumberString,2);
		var displayedBannerName = imagePrefix + displayedBanner + "_right";
		var bannerLink = eval(displayedBannerName)[1];
		openBannerWindow(displayedBannerName,bannerLink);
	}
	if(enableRightFixed){
		var displayedBannerName = 'fixedBannerRight_' + langType;
		var bannerLink = eval(displayedBannerName)[1];
		openBannerWindow(displayedBannerName,bannerLink);
	}
}

function callLeftBannerLink() { //ruft den bannerlink LINKS auf
	if(enableLeftBanner && clickEnabled){
		var imgString = document.images["banner_left"].src;
		var posNumberString = imgString.indexOf(imagePrefix) + imagePrefix.length;
		var displayedBanner = imgString.substr(posNumberString,2);
		var displayedBannerName = imagePrefix + displayedBanner + "_left";
		var bannerLink = eval(displayedBannerName)[1];
		openBannerWindow(displayedBannerName,bannerLink);
	}
	if(enableLeftFixed){
		var displayedBannerName = 'fixedBannerLeft_' + langType;
		var bannerLink = eval(displayedBannerName)[1];
		openBannerWindow(displayedBannerName,bannerLink);
	}
}

function openBannerWindow(displayedBannerName,bannerLink) { //öffnet das fenster für den link
	if(eval(displayedBannerName)[3] == "_blank"){
		var f1 = window.open(bannerLink,'Window1',windowParameters);
		if(window.focus){f1.focus();}
	}
	else if(eval(displayedBannerName)[3] == "_top")
	{
		top.location.href = bannerLink;
	}
	else 
	{
		//do nothing
	}
}*/

// ########### WECHSELBANNER - end
