/********************************************************************/
/*START: Fix IE 6 Text Selection Bug & Flickering Background Images */
if (window.createPopup && document.compatMode && document.compatMode == "CSS1Compat") {
	document.onreadystatechange = function fixIE6AbsPos()
	{
		if( !document.body ) {
			return;
		}
		if( document.readyState == "complete" ) {
			document.body.style.height = document.documentElement.scrollHeight + 'px';
		}
	}

	try {
	document.execCommand('BackgroundImageCache', false, true);
	} catch(e) {}
}
/*END: Fix IE 6 Text Selection Bug & Flickering Background Images */
/********************************************************************/
/**************************************************/
/*START: functions Additional Information */
var sAdditionalInfoTabs = "tab-nav-additional-info";
var sAdditionalInfoContactsId = "additional-info-contacts";
var sAdditionalInfoDownloadsId = "additional-info-downloads";
var sAdditionalInfoLinksId = "additional-info-links";
var	activeDiv = null;

function initAdditionalInfo()
{
	if(getElement(sAdditionalInfoTabs) != null)
	{
		if(typeof initialAdditionalInfo == 'undefined') initialAdditionalInfo = "";
		switch(initialAdditionalInfo){
			case "links":
				hide(getElement(sAdditionalInfoDownloadsId));
				hide(getElement(sAdditionalInfoContactsId));
				showTab(initialAdditionalInfo);
				break;
			case "downloads":
				hide(getElement(sAdditionalInfoContactsId));
				hide(getElement(sAdditionalInfoLinksId));
				showTab(initialAdditionalInfo);
				break;
			case "contacts":
			default:
				hide(getElement(sAdditionalInfoDownloadsId));
				hide(getElement(sAdditionalInfoLinksId));
				showTab("contacts");
		}
	}
}

function showTab(sId)
{
	if(activeDiv != null) hide(activeDiv);
	removeClassNameContaining(getNavigation(sAdditionalInfoTabs), "active-");
	addClassName(getNavigation(sAdditionalInfoTabs), "active-"+sId);
	activeDiv = getElement("additional-info-"+sId);
	show(activeDiv);
	initLayout();
}

function getNavigation(sId)
{
	return getElement(sId);
}

function addClassName(obj, str)
{
	if(obj.className.indexOf(str) == -1)
	{
		if(obj.className != "") obj.className = obj.className+" "+str;
		else obj.className = str;
	}
}

function removeClassNameContaining(obj, str)
{
	if(obj.className.indexOf(str) != -1)
	{
		var re = new RegExp(str);
		var newClassName = "";
		var separator = "";
		var arr = obj.className.split(" ");
		for(var i = 0 ; i < arr.length ; i++)
		{
			if(!re.test(arr[i])) newClassName += separator+arr[i];
			separator = " ";
		}
		obj.className = newClassName;
	}
}
/*END: functions AdditionalInfo */
/**************************************************/
/**************************************************/
/*START: functions Toggle Collapsable List */
var state_a = "collapsed";
var state_b = "expanded";
var title_a = "expand";
var title_b = "collapse";
var icon_class_to_check = "toggle-icon";

function initCollapsableLists()
{
	var iconTags = document.getElementsByTagName("a");
	for (var i = 0; i < iconTags.length ; i++)
	{
		if(iconTags[i].className == icon_class_to_check)
		{
			iconTags[i].title = title_a;
		}
	}
}

function closeCollapsable(obj, force_closing) {
	if (window.expanded_item) {
		if (force_closing==1) {
			var collapsable_obj = getParentCollapsable(window.expanded_item);
			var re = new RegExp(state_b);
			collapsable_obj.className = collapsable_obj.className.replace(re, state_a);
			window.expanded_item.title = title_a;			
		} else if (window.expanded_item.getAttribute('country_uid')!=obj.getAttribute('country_uid')) {
			var collapsable_obj = getParentCollapsable(window.expanded_item);
			var re = new RegExp(state_b);
			collapsable_obj.className = collapsable_obj.className.replace(re, state_a);
			window.expanded_item.title = title_a;
		}
	}
//	dl_arr=document.getElementsByTagName('dl');
//	for(k=0;k<dl_arr.length;k++) {
//		var collapsable_obj = dl_arr[k];
//				var re = new RegExp(state_b);
//				collapsable_obj.className = collapsable_obj.className.replace(re, state_a);
//	}
//
//	for (i=0;i<total_items;i++) {
//		if (i!=current && document.getElementById(prefix+i)) {
//				obj=document.getElementById(prefix+i);
//
//				var collapsable_obj = getParentCollapsable(obj);
//	
//				var re = new RegExp(state_b);
//				collapsable_obj.className = collapsable_obj.className.replace(re, state_a);
//				obj.title = title_a;
//
//				obj.blur();
//				initLayout();
//		}
//	}
}

function toggleCollapsable(obj)
{
	var collapsable_obj = getParentCollapsable(obj);
	if(collapsable_obj.className.indexOf(state_b) != -1)
	{
		var re = new RegExp(state_b);
		collapsable_obj.className = collapsable_obj.className.replace(re, state_a);
		obj.title = title_a;
	}
	else
	{
		var re = new RegExp(state_a);
		collapsable_obj.className = collapsable_obj.className.replace(re, state_b);
		collapsable_obj.style.display='block';
		obj.title = title_b;
		window.expanded_item=obj;
	}
	obj.blur();
	initLayout();
}

function hideCollapsable(obj)
{
	var collapsable_obj = getParentCollapsable(obj);

	collapsable_obj.style.display='none';

}

function showCollapsable(obj)
{
	var collapsable_obj = getParentCollapsable(obj);

	collapsable_obj.style.display='block';

}

function getParentCollapsable(obj)
{
	var collapsable_obj = getParentElement(obj);
	while (collapsable_obj.nodeName != 'DL' && collapsable_obj.nodeName != 'BODY')
		collapsable_obj = getParentElement(collapsable_obj);
	return collapsable_obj;
}
/*END: functions Toggle Collapsable List */
/**************************************************/
/**************************************************/
/*START: functions Toggle Collapsable Sitemap */
var link_state_a = "collapsed";
var link_state_b = "expanded";
var class_to_check = "toggle-icon";
var link_title_a = "expand";
var link_title_b = "collapse";

function initCollapsableSitemap()
{
	var iconTags = document.getElementsByTagName("p");
	for (var i = 0; i < iconTags.length ; i++)
	{
		if(iconTags[i].className.indexOf(class_to_check) != -1)
		{
			iconTags[i].onclick = toggleCollapsableSitemap;
			addClassName(iconTags[i], link_state_b);
			iconTags[i].title = link_title_b;
		}
	}
}

function collapseAll(obj)
{
	var re = new RegExp(link_state_b);
	var iconTags = document.getElementsByTagName("ul");
	for (var i = 0; i < iconTags.length ; i++)
	{
		iconTags[i].className = iconTags[i].className.replace(re, link_state_a);
	}
	var re2 = new RegExp(link_title_b);
	iconTags = document.getElementsByTagName("p");
	for (var i = 0; i < iconTags.length ; i++)
	{
		iconTags[i].className = iconTags[i].className.replace(re, link_state_a);
		iconTags[i].title = iconTags[i].title.replace(re2, link_title_a);
	}
	if(obj != null)
	{
		parent_obj = getParentElement(obj);
		parent_obj.className = parent_obj.className.replace(re, link_state_a);
		obj.blur();
	}
	initLayout();
}

function expandAll(obj)
{
	var re = new RegExp(link_state_a);
	var iconTags = document.getElementsByTagName("ul");
	for (var i = 0; i < iconTags.length ; i++)
	{
		iconTags[i].className = iconTags[i].className.replace(re, link_state_b);
	}
	var re2 = new RegExp(link_title_a);
	iconTags = document.getElementsByTagName("p");
	for (var i = 0; i < iconTags.length ; i++)
	{
		iconTags[i].className = iconTags[i].className.replace(re, link_state_b);
		iconTags[i].title = iconTags[i].title.replace(re2, link_title_b);
	}
	if(obj != null)
	{
		parent_obj = getParentElement(obj);
		parent_obj.className = parent_obj.className.replace(re, link_state_b);
		obj.blur();
	}
	initLayout();
}

function toggleCollapsableSitemap(e)
{
	if (!e) var e = window.event;
	var tg = (window.event) ? e.srcElement : e.target;
	if (tg.nodeName != "P") return;
	var sibling_obj = getNextSibling(tg);
	if (sibling_obj == null) return;
	var re = "";
	var collapsable_obj = sibling_obj;
	
	if(collapsable_obj.className.indexOf(link_state_b) != -1)
	{
		re = new RegExp(link_state_b);
		collapsable_obj.className = collapsable_obj.className.replace(re, link_state_a);
		collapsable_obj.title = link_title_a;
	}
	else
	{
		re = new RegExp(link_state_a);
		collapsable_obj.className = collapsable_obj.className.replace(re, link_state_b);
		collapsable_obj.title = link_title_b;
	}
	if(tg.className.indexOf(link_state_b) != -1)
	{
		re = new RegExp(link_state_b);
		tg.className = tg.className.replace(re, link_state_a);
		tg.title = link_title_a;
	}
	else
	{
		re = new RegExp(link_state_a);
		tg.className = tg.className.replace(re, link_state_b);
		tg.title = link_title_b;
	}
	initLayout();
	tg.blur();
}

function getNextSibling(obj)
{
	var sibling_obj = obj.nextSibling;
	while (sibling_obj != null && sibling_obj.nodeName != 'UL')
		sibling_obj = sibling_obj.nextSibling;
	return sibling_obj;
}
/*END: functions Toggle Collapsable Sitemap */
/**************************************************/
/**************************************************/
/*START: helper functions */
function getPos(id)
{
	var obj = document.getElementById(id);
	var pos = {left:0, top:0};

	if(typeof obj.offsetLeft != 'undefined') {

		while (obj) {
			pos.left += obj.offsetLeft;
			pos.top += obj.offsetTop;
			obj = obj.offsetParent;
		}
	} else {
		pos.left = obj.left;
		pos.top = obj.top;
	}

	return pos;
}


function setObjectHeight(id, height)
{
	var obj = document.getElementById(id);
	obj.style.height = height + "px";
}

function getObjectHeight(id)
{
	var obj = document.getElementById(id);
	var iObjectHeight = 0;
	iObjectHeight = obj.offsetHeight;
	return parseInt(iObjectHeight);
}

function getWindowInnerSize(win)
{
	if(!win) win = window;
		var objWin = new Object();
		if(typeof win.innerWidth != 'undefined') {
			objWin.width = win.innerWidth;
			objWin.height = win.innerHeight;
		} else {
			var obj = getBody(win);
			objWin.width = parseInt(obj.clientWidth);
			objWin.height = parseInt(obj.clientHeight);
		}
		return objWin;
}

function getBody(w)
{
	return (w.document.compatMode && w.document.compatMode == "CSS1Compat") ? w.document.documentElement : w.document.body || null;
}

function getElement(id)
{
	var retval;
	var obj;
	obj = document.getElementById(id);
	if (obj) {
		retval = obj;
	} else {
		retval = null;
	}
	return retval;
}

function show(obj)
{
	if (obj) {
		obj.style.display = "block";
	}
}

function hide(obj)
{
	if (obj) {
		obj.style.display = "none";
	}
}

function getParentElement(obj)
{
	if (obj.parentElement) {
		return obj.parentElement;
	} else if (obj.parentNode) {
		return obj.parentNode;
	}
}
/*END: helper functions */
/**************************************************/
/**************************************************/
/*START: browser detection*/
function BrowserDetection()
{
	var sUserAgent = navigator.userAgent.toLowerCase();

	// browser name
	this.isIE = (sUserAgent.indexOf('msie') != -1);
	this.isOpera = (sUserAgent.indexOf('opera') != -1 || window.opera);
	this.isFirefoxEinsNull =(sUserAgent.indexOf('firefox\/1.0') != -1);
}

var oBrowser = new BrowserDetection();
/*END: browser detection*/
/**************************************************/
/**************************************************/
/*START: flash functions */
function writeFlash()
{
	var ret = getArgs(arguments);
	generateObj(ret.src, ret.params, ret.styles);
}

function generateObj(src, params, styles)
{
	var str = '<object type="application/x-shockwave-flash"' ;
	str += getStyles(styles);
	if (oBrowser.isIE && !oBrowser.isOpera) {
		str += '>';
		str += '<param name="movie" value="'+ src +'" \/>';
	} else {
		str += ' data="'+ src +'">';
	}

	//write param tags
	for (var i in params) {
		str += '<param name="' + i + '" value="' + params[i] + '" />';
	}

	//write embed tag, needed for transparency in safari
	str += '<embed src="'+ src +'"';
	for (var j in params) {
		str += ' ' + j + '="' + params[j] + '"';
		//alert (j);
	}
	str += '></embed>';
	str += '</object>';
	if (document.getElementById('powerarea-zone')){
		document.getElementById('powerarea-zone').innerHTML = str;
	} else {
		document.write (str);
	}
	//document.write (str);
	
	
}

function getStyles(styles)
{

	str = ' style="';
	str_id = '';
	for (var i in styles){
		if (i == "id" || i == "name")
		{
			str_id += ' ' + i + '="' + styles[i] + '"';
		} else {
			str += i + ': ' + styles[i] + 'px;';
		}
		
	}
	str += '"';
	return str+str_id;
}

function getArgs(args)
{
	var ret = new Array();
	ret.src = new Object();
	ret.params = new Object();
	ret.styles = new Object();
	
	for (var i=0; i < args.length; i=i+2)
	{
		var currArg = args[i].toLowerCase();
		switch (currArg)
		{
			case "src":
			ret.src = args[i+1];
			break;
			case "width":
			case "height":
			case "id":
			case "name":
			ret.styles[args[i]] = args[i+1];
			break;
			case "allowScriptAccess":
			case "wmode":
			
			case "divId":
			ret.params[args[i]] = args[i+1];
			break;
			default:
			ret.params[args[i]] = args[i+1];
		}
	}
	return ret;
}


var isInternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
// Handle all the FSCommand messages in a Flash movie.
function powerarea_DoFSCommand(command, args) {
	var powerarea = isInternetExplorer ? document.all.powerarea : document.powerarea;
	// alert (command);
	if (command == "openGeo") {
		openGeo(args);
	} 
	if (command == "openRef") {
		openRef(args);
	} 
}
function ieFlashBridge() {
	if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1 && navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows 3.1") == -1) {
		//alert('ie');
		var out = '';
		//out +=' <script type="text/javascript">';
		out += '<script language=\"VBScript\"\>\n';
		out += 'On Error Resume Next\n';
		out += 'Sub powerarea_FSCommand(ByVal command, ByVal args)\n';
		out += '	Call powerarea_DoFSCommand(command, args)\n';
		out += 'End Sub\n';
		out += '</script\>\n';
		// out +=' </script>';
		// alert (out);
		document.write(out);
	}
}


/*END: flash functions */
/**************************************************/
/**************************************************/
/*START: position footer */
var placeholder_id = "footer-position-placeholder";
var footer_id = "footer-zone";

function positionFooter()
{
	if(document.getElementById(placeholder_id) == null) return;
	var iFooterPos = getPos(footer_id).top;
	var iWindowInnerHeight = getWindowInnerSize().height;

	var iWindowMinPos = iWindowInnerHeight - getObjectHeight(footer_id);

	var iFooterPlaceholderHeight = 0;
	var newHeight = 0;

	if ( iWindowMinPos > iFooterPos ) {
		iFooterPlaceholderHeight = iWindowMinPos - iFooterPos;
		newHeight = iFooterPlaceholderHeight + getObjectHeight(placeholder_id);
	} else {
		newHeight = getObjectHeight(placeholder_id) - (iFooterPos - iWindowMinPos);
	}

	if(newHeight < 0) newHeight = 0;
	if(oBrowser.isFirefoxEinsNull) newHeight += 1; // forcing scrollbar;
	setObjectHeight(placeholder_id, newHeight);
}
/*END: position footer */
/**************************************************/
/**************************************************/
/*START: init functions on load */
function initLayout()
{
	positionFooter();
	if(oBrowser.isFirefoxEinsNull) document.getElementById("main-zone").style.height = (window.innerHeight + 1) +"px"; // forcing scrollbar;
}

function addEvent( obj, type, 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] );
	}
}

addEvent(window, 'load', initLayout);
addEvent(window, 'load', initAdditionalInfo);
addEvent(window, 'load', initCollapsableLists);
addEvent(window, 'load', initCollapsableSitemap);

addEvent(window, 'resize', initLayout);
/*END: init functions on load */
/**************************************************/

/*sitemap*/
function openCloseSitemap (e) {
	//alert (e.className);
	if (e.parentNode.className == ''){
		e.parentNode.className = 'opened';
		e.src = "/fileadmin/css/import/img/icon-close.gif";
	} else {
		e.src = "/fileadmin/css/import/img/icon-open.gif";
		e.parentNode.className = '';
	}
}
/*sitemap*/

