startStack=function()
{
	/* setzt _target von externen Links auf "_blank" */
	linkTargetSetter('landwirtschaftsmuseum.at',new Array('javascript'),new Array('.pdf'));
	
	/* Menü bekommt Javascriptfunktionen */
	try
	{
	var Container = document.getElementById('topnav');
	var index = 0;
	for(var i = 0; i < Container.childNodes.length; i++)
	{
		if(Container.childNodes[i].nodeName.toLowerCase() == 'a')
		{
			addEvent(Container.childNodes[i], 'mouseover', mainmenuover);
			addEvent(Container.childNodes[i], 'mouseout', mainmenuout);
			try
			{
				addEvent(document.getElementById('subnav_'+index), 'mouseover', submenuover);
				addEvent(document.getElementById('subnav_'+index), 'mouseout', submenuout);
			}catch(e){null;}
			index ++;
		}
	}
	}catch(e){null;}
};
registerOnLoad = function(func)
{
	var orgOnLoad = startStack;
	startStack = function ()
	{
		orgOnLoad();
		func();
		return;
	}
}
var ranOnload=false; // Flag to determine if we've ran the starting stack already.
if(document.addEventListener)
{ 
	// Mozilla actually has a DOM READY event.
	document.addEventListener
	(
	 	"DOMContentLoaded",
		function(){if (!ranOnload) {ranOnload=true; startStack();}},
		false
	);
} 
else if(document.all && !window.opera)
{
	// This is the IE style which exploits a property of the (standards defined) defer attribute
	document.write("<scr" + "ipt id='DOMReady' defer=true " + "src=//:><\/scr" + "ipt>");
	document.getElementById("DOMReady").onreadystatechange=function()
	{
		if(this.readyState=="complete"&&(!ranOnload))
		{
			ranOnload=true;
			startStack();
		}
	}
}
var orgOnLoad=window.onload;
window.onload=function()
{
	if (typeof(orgOnLoad)=='function')
	{
		orgOnLoad();
	}
	if(!ranOnload)
	{
		ranOnload=true;
		startStack();
	}
}

/* Panoramapopup */
function open_panorama(file)
{
	var popup = self.open('flash/panorama/popup_panorama.php?file='+file, 'panorama', ' width=800,height=600');
	newx = (screen.width - 800)/2;
	newy = (screen.height - 600)/2;
	popup.moveTo(newx, newy);
	popup.focus();
}

/* DHTML Navigation */
function mainmenuover()
{
	var Obj = this;
	try
	{
		window.clearTimeout(mainmenuoutInterval);
		mainmenuoutInterval = false;
		mainMenuOutObj = false;
	}catch(e){null;}
	var Container = Obj.parentNode;
	//pos = return_absolute_pos(Obj);
	var index = 0;
	for(var i = 0; i < Container.childNodes.length; i++)
	{
		if(Container.childNodes[i].nodeName.toLowerCase() == 'a')
		{
			if(Container.childNodes[i].innerHTML == Obj.innerHTML)
			{
				try
				{
					var element = document.getElementById('subnav_'+index);
					element.style.left = (Container.offsetLeft+Container.childNodes[i].offsetLeft)+'px';
					element.style.display = 'block';
				}catch(e){null}
			}
			else
			{
				try
				{
					var element = document.getElementById('subnav_'+index);
					element.style.display = 'none';
				}catch(e){null}
			}
			index++;
		}
	}
}
var mainmenuoutInterval = false;
var mainMenuOutObj = false;
var submenuOver = false;
function mainmenuout()
{
	var Obj = this;
	if(mainmenuoutInterval === false)
	{
		mainMenuOutObj = Obj;
		mainmenuoutInterval = window.setTimeout('Mainmenuout()',1000);
	}
}
function Mainmenuout()
{
	if(mainMenuOutObj !== false)
	{
		mainmenuoutInterval = false;
		var Container = mainMenuOutObj.parentNode;
		var index = 0;
		for(var i = 0; i < Container.childNodes.length; i++)
		{
			if(Container.childNodes[i].nodeName.toLowerCase() == 'a')
			{
				try
				{
					var element = document.getElementById('subnav_'+index);
					element.style.display = 'none';
				}catch(e){null}
				index++;
			}
		}
		mainMenuOutObj = false;
	}
}
function submenuover()
{
	try
	{
		window.clearTimeout(mainmenuoutInterval);
		mainmenuoutInterval = false;
	}catch(e){null;}

}
function submenuout()
{
	mainMenuOutObj.mainmenuout = mainmenuout;
	mainMenuOutObj.mainmenuout();
}

function return_absolute_pos(obj)
{
	var pos = new Object();
	pos.top = 0;
	pos.left = 0;
	while(obj && obj.nodeName.toLowerCase() != 'body')
	{
		pos.top += obj.offsetTop;
		pos.left += obj.offsetLeft;
		obj = obj.offsetParent;
	}
	return pos;
}

/* Linktargetsetter */
function linkTargetSetter(domain,forbiddenBlank,allowedBlank)
{
	domain = domain.toLowerCase();
	var doclinks = document.getElementsByTagName("a");
	for (var i = 0; i < doclinks.length; i++)
	{
		var url = doclinks[i].href.toLowerCase();
		if((url.indexOf(domain) == -1 && isInTargetSetterArray(forbiddenBlank, url) === false) || (isInTargetSetterArray(allowedBlank, url) === true))
		{
			doclinks[i].target = "_blank";
		}
	}
}
function isInTargetSetterArray(array, value)
{
	for(var i = 0; i < array.length; i++)
	{
		if(value.indexOf(array[i]) != -1)
		{
			return true;	
		}
	}
	return false;	
}

/* Eventhandler */
function addEvent( obj, type, fn )
{
   obj.fn = fn;
   if (obj.addEventListener) {
      obj.addEventListener( type, fn, false );
   } else if (obj.attachEvent) {
      obj["e"+type+fn] = fn;
      obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
      obj.attachEvent( "on"+type, obj[type+fn] );
   }
}
function removeEvent( obj, type, fn )
{
   if (obj.removeEventListener) {
      obj.removeEventListener( type, fn, false );
   } else if (obj.detachEvent) {
      obj.detachEvent( "on"+type, obj[type+fn] );
      obj[type+fn] = null;
      obj["e"+type+fn] = null;
   }
}

/* Flackern von Hintergrundbildern im IE6 bei abgeschaltetem Cache verhindern*/
try{document.execCommand("BackgroundImageCache",false,true);}catch(err){}

/* Flashintegration */
function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}
function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '<object ';
  for (var i in objAttrs)
    str += i + '="' + objAttrs[i] + '" ';
  str += '>';
  for (var i in params)
    str += '<param name="' + i + '" value="' + params[i] + '" /> ';
  str += '<embed ';
  for (var i in embedAttrs)
    str += i + '="' + embedAttrs[i] + '" ';
  str += ' ></embed></object>';
  AC_FL_RunContent_GET = '';
  return str;
}
//fusi extension Set_AC_FL_RunContent_GET(?get=xx); is to use, before calling AC_FL_RunContent
var AC_FL_RunContent_GET = '';
function Set_AC_FL_RunContent_GET(get){AC_FL_RunContent_GET = get;}
function AC_SW_GetSWFObjectForMoz(name)
{
	var embeds = document.getElementsByTagName("embed");
	for(var i = 0; i < embeds.length; i++)
	{
		if(embeds[i].name == name){return embeds[i];}
	}
	return false;
}
//end fusi extension
function AC_FL_RunContent()
{
	var ret = 
	AC_GetArgs
	(
	 	arguments, ".swf"+AC_FL_RunContent_GET, "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000", "application/x-shockwave-flash"
	);
	return AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_SW_RunContent()
{
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_GetArgs(args, ext, srcParamName, classid, mimeType)
{
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    
    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
	  	ret.embedAttrs[args[i]] = args[i+1];//mozilla bug - cant catche the Element - have to use AC_SW_GetSWFObjectForMoz(name) if you need the Object
      case "id":
	  	ret.objAttrs[args[i]] = args[i+1];
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}
function flash_detection(required, max)
{
	var required_version = required;
	var max_version = max;
	var available_version = 0;

	if(typeof(navigator.plugins["Shockwave Flash"]) == "object")
	{
		var description = navigator.plugins["Shockwave Flash"].description;
		available_version = description.substr(16, (description.indexOf(".", 16) - 16));
	}
	else if(typeof(ActiveXObject) == "function")
	{
		for(var i = 2; i < (max_version + 1); i ++)
		{
			try
			{
				if(typeof(new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + i)) == "object")
				{
					available_version = i;
				}
		   }
		   catch(error)
		   {
		   }
		}
	}
	return [available_version, required_version];
}