/* ---- common ---- */
/*
Filename: common.js
Created:
  2008/01/14 - HM

Description:
  JavaScript functions generally useful for EVERY application
  
Revisions:
*/

// add a function to a loadevent
function addLoadEvent(func)
{	var oldonload = window.onload;
    if (typeof window.onload != 'function')
    {   window.onload = func;
    }
    else
    {	window.onload = function()
    	{	if (oldonload)
    		{   oldonload();
            }
            func();
        }
    }
}

// force a redraw of the page
function redrawPage()
{	var newBodyClass = " abcdefghijklm ";
	document.body.className += newBodyClass;
	document.body.className = document.body.className.replace(newBodyClass,'');
}

/****************************
	BROWSER DETECTION
****************************/
function isIE()
{	return navigator.appName=="Microsoft Internet Explorer" && !window.opera;
}
function isIELess7()
{	return isIE() && !window.XMLHttpRequest;
}
function isIE7()
{	return isIE() && window.XMLHttpRequest;
}

/***************************
	COOKIE MANAGMENT
****************************/
// function setCookie
function setCookie(c_name, value, expiredays, path)
{	var exdate= new Date();
	if (expiredays!=null)
    	exdate.setDate(exdate.getDate()+ expiredays);
	var expires = (expiredays==null) ? "" : ";expires=" + exdate.toGMTString();
	if (path==null)
		path = '/';
	document.cookie = c_name + "=" + escape(value) + expires  + "; path=" + path;
}

// function getCookie
function getCookie(c_name, defaultValue)
{	//alert(document.cookie);
	if (document.cookie.length > 0)
  	{	c_start = document.cookie.indexOf(c_name + "=");
  		if (c_start != -1)
    	{	c_start=c_start + c_name.length + 1; 
    		c_end=document.cookie.indexOf(";",c_start);
    		if (c_end == -1)
    			c_end = document.cookie.length;
    		return unescape(document.cookie.substring(c_start,c_end));
    	} 
  	}
  	if (defaultValue)
  		return defaultValue;
	return "";
}

/***************************
	DOM MANAGMENT
****************************/
function dump(obj)
{	var alertString = "";
	for (var x in obj)
	{	alertString += x + ": " + typeof x + "\r\n";
	}
	alert(alertString);
}

function getIFrameDocument(iFrame)
{	var ret = null;
	try
	{	if (iFrame.contentWindow && iFrame.contentWindow.document)
			ret = iFrame.contentWindow.document;
		else if (iFrame.contentDocument)
			ret = iFrame.contentDocument;
	}
	catch(e)
	{
	}
	
	return ret;
}

// tag "*" may result in problems if scripts are on other server than the html-page (fragment-interface, IE, Opera) 
function getElementsByClassName(clsName, domObject, tag)
{	var retVal = new Array();
    var elements = null;
    var useTag = "*";
    
    if (tag)
    	useTag = tag;
    try
    {	elements = domObject.getElementsByTagName(useTag);
    }
    catch(e)
    {	elements = document.body.getElementsByTagName(useTag);
    }

    try
	{
	    var then = (new Date()).getTime();
        for (var i = 0;i < elements.length; i++)
	    {	
	    	if(elements[i].className.indexOf(" ") >= 0)
	    	{	var classes = elements[i].className.split(" ");
	            for (var j = 0;j < classes.length;j++)
	            {	if(classes[j] == clsName)
	                    retVal.push(elements[i]);
            	    // check 500ms timeout
            	    var duration = (new Date()).getTime() - then;
        	        if(duration > 500)
        	           throw("timeout:"+duration);
	            }
	        }
	        else if(elements[i].className == clsName)
	            retVal.push(elements[i]);
	    }
	}
	catch(e)
	{	// should not happen but for strange reasons it happens on firefox 3 sometimes
		// in that case some things will not work properly there
	}

    return retVal;
}

function scrollElementInView(obj)
{	try 
	{	if (!obj)
			return;
		
		var top = 0;
		if (isIE()) // IE scrolling
		{	if (document.all.detail)
				top = document.all.detail.offsetTop;
		}
		else // other browsers 
		{	top = 0;
			if (obj)
			do
			{	top += obj.offsetTop;
			} while (obj = obj.offsetParent);
		}
		window.scroll(0, top );
	}
	catch(e){}
}

/***************************
	STRING MANAGMENT
****************************/
function trim(stringToTrim)
{   return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function ltrim(stringToTrim)
{   return stringToTrim.replace(/^\s+/,"");
}
function rtrim(stringToTrim)
{   return stringToTrim.replace(/\s+$/,"");
}



function locationEndsWith(s) {
    return document.location.href.substr(document.location.href.length - s.length) == s;
}

// appends a parameter to a url
function appendUrlParameter( url, parameter, value )
{
	if( !url )
	{
		url = "";
	}
	if( url.indexOf("?") == -1 )
	{
		url += "?";
	}
	else
	{
		url += "&";
	}
	
	return url + parameter + "=" + value;
}

/***************************
	SHOW/HIDE HTML TAGS
****************************/
// toggles an element between display=block and display=none
function toggleElementDisplay(objectID)
{	try
	{	var object = document.getElementById(objectID);
		if (!object.style.display || object.style.display=='block')
		{	object.style.display = 'none';
		}
		else
		{	object.style.display = 'block';
		}
	}
	catch(e)
	{	//alert(e);
	}
}

/***************************
	IS VALID EMAIL
****************************/
// old function for historical reasons
function checkEmail(emailAddress)
{	return isValidEmail(emailAddress);
	
	/*var at = "@";
    var dot = ".";
    var lat = emailAddress.indexOf(at);
    var lstr = emailAddress.length;
    var ldot = emailAddress.indexOf(dot);

    if (emailAddress.indexOf(at) == -1) return false;
    if (emailAddress.indexOf(at) == -1 || emailAddress.indexOf(at) == 0 || emailAddress.indexOf(at) == lstr) return false;
    if (emailAddress.indexOf(dot) == -1 || emailAddress.indexOf(dot) == 0 || emailAddress.indexOf(dot) == lstr) return false;
    if (emailAddress.indexOf(at, (lat + 1)) != -1) return false;
    if (emailAddress.substring(lat - 1, lat) == dot || emailAddress.substring(lat + 1, lat + 2) == dot) return false;
    if (emailAddress.indexOf(dot, (lat + 2)) == -1) return false;
    if (emailAddress.indexOf(" ") != -1) return false;

    return true;*/
}
function isValidEmail(address)
{	try
	{	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		return filter.test(address);
	}
	catch(e)
	{	return false;
	}
} 

/* ---- normal BM ---- */
/*
JavaScript functions used on most pages in THIS application
*/

/**************************
    Menu-hover for IE (http://www.htmldog.com/articles/suckerfish/dropdowns/)
**************************/
sfHover = function()
{   try
	{	var i, j;
		//allSubMenus = new Array();
		var allSubMenus = getElementsByClassName("submenu");
		var mainSubMenu = document.getElementById("submenu");
		
		if (mainSubMenu)
			allSubMenus.push(mainSubMenu);
		
		sfEls = new Array();
		
		for (i=0; i<allSubMenus.length; i++)
		{	//sfEls = sfEls.concat(allSubMenus[i].getElementsByTagName("li"));
			var liElems = allSubMenus[i].getElementsByTagName("li");
			for (j=0; j<liElems.length; j++)
				sfEls.push(liElems[j]);
		}
				
		// var sfEls = document.getElementById("submenu").getElementsByTagName("li");
		
	    for (i=0; i<sfEls.length; i++)
	    {   sfEls[i].onmouseover = function()
	        {   this.className += " sfhover";
	        	// drawing error on IE7 if other javascripts change something somewhere
	        	if (isIE7())
	        	{	//redrawPage();
	        		var hoverMenu = this.getElementsByTagName("ul");
					if (hoverMenu && hoverMenu[0])
						hoverMenu[0].style.left = "auto";
				}
	        }
	        sfEls[i].onmouseout = function()
	        {   this.className = this.className.replace(new RegExp(" sfhover\\b"), "");
				// drawing error on IE7 if other javascripts change something somewhere
	        	if (isIE7())
	        	{	//redrawPage();
	        		var hoverMenu = this.getElementsByTagName("ul");
					if (hoverMenu && hoverMenu[0])
						hoverMenu[0].style.left = "-999em";
				}
	        }
	    }
	 }
	 catch(e) {}
}
if (window.attachEvent) // MS event handling
    window.attachEvent("onload", sfHover);
    
/**************************
 MIN-HEIGHT/WIDTH FOR IE 6
***************************/
function checkSubMenuForIE(submenu)
{	var hoverMenus;
    var currentHoverMenu;

	if (submenu)
	{	if (!submenu.style)
			submenu.style = "";
		// sub menu min width
		if (submenu.offsetHeight < 29)
	       submenu.style.height = "29px";
	    // hover menu min width
		hoverMenus = getElementsByClassName("hoverMenu", submenu);
        for (var i=0; i<hoverMenus.length; i++)
        {   currentHoverMenu = hoverMenus[i];
        	if (currentHoverMenu.offsetWidth < 130)
        		currentHoverMenu.style.width = "130px";
        }
    }
}

function checkMinHeightAndWidth()
{	checkSubMenuForIE(document.getElementById("submenu"));
	
	var subMenuClasses = getElementsByClassName("submenu");
	for (i=0; i<subMenuClasses.length; i++)
		checkSubMenuForIE(subMenuClasses[i]);

	/*var submenu = document.getElementById("submenu");
    var hoverMenus;
    var currentHoverMenu;
    
	if (submenu)
	{	// sub menu min width
		if (submenu.offsetHeight < 28)
	       submenu.style.height = "28px";
	    // hover menu min width
		hoverMenus = getElementsByClassName("hoverMenu", submenu);
        for (var i=0; i<hoverMenus.length; i++)
        {   currentHoverMenu = hoverMenus[i];
        	if (currentHoverMenu.offsetWidth < 130)
        		currentHoverMenu.style.width = "130px";
        }
    }*/
}
if (window.attachEvent && isIELess7())
   window.attachEvent("onload", checkMinHeightAndWidth);
    
/******************************************
    switch images on and off for print mode
*******************************************/
var display_img_print = false;
function switchDisplayImages()
{
	try
	{
		//go through the domtree of article and set display to none
	    divs = document.getElementById("content").getElementsByTagName("div");
	    for (i=0; i<divs.length; i++)
	    {
	        switch (divs[i].className)
	        {
	            case "imageCenter":
	            case "imageContainer":
	            case "imageGallery":
	            case "imageHeadline":
	            case "imageLeft":
	            case "imageRight":
	            case "inlineGallery":
	                divs[i].style.display = (display_img_print ? "block" : "none");
	
	            default: break;
	        }
	    }
	}
	catch(e){}
    display_img_print = !display_img_print;
}

/***************************
	TAB MANAGMENT
****************************/
function switchTab(tabArray, activeTab)
{	switchTab_getCounters();
	try
	{	for (var i=0; i<tabArray.length; i++)
		{	var element = document.getElementById(tabArray[i]);
			if (!element)
				continue;
			setElementVisible( element, element.id == activeTab );
		}
	}
	catch(e){}
}
// onclick="switchTab(new Array('prio1TabPanelsContent_8','prio1TabPanelsContent_15'),'prio1TabPanelsContent_15')"

function switchTab_getCounters()
{
	try
	{
		getCounters();
	}
	catch(e){}
}

function switchOneTab( currentId, nextId )
{
	var currentEl = document.getElementById( currentId );
	var nextEl = document.getElementById( nextId );

	setElementVisible( currentEl, false );
	setElementVisible( nextEl, true );
  
} // switchOneTab


function setElementVisible( element, visible )
{
	if( element )
	{
		var classes = element.className;
		classes = classes.replace("hidden","");
		if( visible === false )
			classes += " hidden";
		classes = trim(classes);
		element.className = classes;
	} // if
} // setElementVisible


/************* SCALE FONTS ***************/
function startScaleFonts()
{	var newCSSClass = getCookie("scaledSize", "scaledNormal");
//alert(newCSSClass);
	checkReplaceFonts(newCSSClass, "scaledNormal");
}

function scaleElements(objects2Scale, oldClass, newClass)
{	for (i=0; i<objects2Scale.length; i++)
	{	var className = objects2Scale[i].className;
		className = className.replace(oldClass, newClass);
		className = trim(className);
		objects2Scale[i].className = className;
	}
}

function checkReplaceFonts(newClass, oldClass)
{	try
	{	
        var scaler = document.getElementById("scaler");
		var activeScalerItem = null;

		if (scaler!=null)
		{	scaler.style.visibility = "visible";
			// reset all subclasses - no active class
			scaler.innerHTML = scaler.innerHTML.replace("active",""); 
			activeScalerItem = document.getElementById(newClass);
			if (activeScalerItem != null)
				activeScalerItem.className += " " + "active";
		}

    	// change only if font size changed, especcialy on startup
	    if(newClass != oldClass)
	    {
    		var objects2Scale = getElementsByClassName(oldClass, null, "div");
    		var iFramesToScale = document.getElementsByTagName("iframe");
    		
    		//alert(objects2Scale.length);
    		//alert(iFramesToScale.length);
    		
    		// scale within this document
    		scaleElements(objects2Scale, oldClass, newClass);
    		
    		// scale within iframes
    		for (i=0; i<iFramesToScale.length; i++)
    		{	var iFrameDoc = getIFrameDocument(iFramesToScale[i]);
    
    			if (iFrameDoc)
    			{	objects2Scale = getElementsByClassName(oldClass, iFrameDoc);
    				scaleElements(objects2Scale, oldClass, newClass);
    			}
    		}
    
    		// drawing error on Opera - force redraw
    		if (window.opera)
    			redrawPage();
        }
	}
	catch(e)
	{	//alert(e);
	}
}

// the cookie value for cookie "scaledSize" is always the CSS class name
// the id of the scaler elements is always the CSS class name
function setScaleSize(newClass)
{	var oldClass = getCookie("scaledSize", "scaledNormal");
	setCookie("scaledSize", newClass, 365);
	//alert(newClass);
	checkReplaceFonts(newClass, oldClass);
}

function generateSectionList(list)
{	if (!list)
		return;
		
	var sectionsAnker = getElementsByClassName("sectionAnkerName");
	var sectionsDisplay = getElementsByClassName("sectionHeadline");
	var ankerName;
	var newHTML = "";
	
	for (var i=0; i<sectionsDisplay.length; i++)
	{	if (sectionsAnker.length > i)
			newHTML += '<li><a href="#' + sectionsAnker[i].name + '">' + sectionsDisplay[i].innerHTML + "</a></li>";
	}
	
	list.innerHTML = newHTML;
}


// check for empty advertisement places
function checkAdvertisements()
{
	checkAdvertisementPlace( "advertisementHeaderTop" );
	checkAdvertisementPlace( "advertisementHeaderRight" );
	checkAdvertisementPlace( "advertisementPrio2" );
	// right column
	for( var index = 0; index < 10; index++ )
	{
		checkAdvertisementPlace( "advertisementRightcolumn"+index );
	}
} // checkAdvertisements

function checkAdvertisementPlace( id )
{
	var el = document.getElementById( id );
	if( el && el.innerHTML && el.innerHTML.indexOf("leer2.gif") > -1 )
	{
		el.className += " hidden";
	}
} // checkAdvertisementPlace


// open print version page
function openPrintWindow( url )
{
	url = appendUrlParameter( url, "print", "yes" );
	
	// add slideshow image page parameter
	if( slideshowPage != null )
	{
		url = appendUrlParameter( url, "slideshowpage", slideshowPage );
	}

	window.open( 
		url,
		'printversion',
		'menubar=no,toolbar=no,status=no,width=870,height=500,scrollbars=yes,resizable=yes'
		);
		
	return false;
} // openPrintWindow



// 3-minuten popup window

function drei_minuten( url )
{
//	if (window.open){
		popupWindow = window.open(url, 'popup', 'width=600,height=417,location=no' );
			
	//}
	//return false;
}// 3-minuten ends here

//3-minuten popup link opens article in parent window
function loadinparent(url){
	self.opener.location = url;
}//loadinparent ends here


// article message functions
function showArticleMessage( id, message )
{
	var object = document.getElementById( id );
	object.style.display = 'block';
	object.innerHTML = message;
}


// opens any popup window as programmed below
// the url is the only important parameter
// used for instance online in article ID 1092871
// could be generalized by giving the height and with as parameter
function openGeneralPopup(objectId)
{	var url= objectId + "&amp;rand=" + Math.random();
	var wname = "";
	var wheight=570;
	var wwidth=808;
	
	var windowtop = ((screen.height - wheight) /2) -20;
	var windowleft = (screen.width - wwidth) /2;
	
	var browserName=navigator.appName;
	var browserVer=parseInt(navigator.appVersion);
	
	if (browserName=="Netscape")
	{	if (browserVer>4)
		{	wwidth = wwidth+15;
	      	wheight = wheight+5;
	    }
	}
	
	// create unique window name from the given url -> IE does not like all characters from an url as window name
	try
	{	wname = "";
		
		for (i=0; i<objectId.length; i++)
		{	var ch = objectId.charAt(i); 
			var charCode = objectId.charCodeAt(i);
			
			// only numbers and simple characters are accepted
			if ((charCode>=48 && charCode<=57) // digits
				|| (charCode>=65 && charCode<=90) // capital letters
				|| (charCode>=97 && charCode<=122) // small letters
				)
			{	wname += ch;
			}
		}
	}
	catch (e)
	{	wname = "";
		//alert(e);
	}
	
	openwin = window.open(url,wname,"toolbar=0,width=" + wwidth + ",height=" + wheight + ",location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=1,copyhistory=0,left=" + windowleft + ",top=" + windowtop);
	openwin.focus();
}


/* ---- ajax ---- */
/* AJAX */

/*
Run an Ajax request.
dstdiv: the div-id to place result in. if it starts with "js_"-prefix, only the given JavaScript is processed
url: the request url.
script: the script to run after result, default: none
method: GET or POST, default: GET
*/ 
function runRequest( dstdiv, url, script, method )
{
  if( typeof(xmlHttp[dstdiv]) != "undefined" && xmlHttp[dstdiv] !== null )
    return;
  if( requestScheduled[dstdiv] === true )
  {
    requestScheduled[dstdiv] = false;
    script = requestScheduledScript[dstdiv];
  }

  xmlHttp[dstdiv] = GetXmlHttpObject();
  if( xmlHttp[dstdiv] == null )
    return;
  xmlHttpScript[dstdiv] = script;
  
  if( url.indexOf('service=') == -1 )
	url = url + (url.indexOf('?') == -1 ? "?" : "&") + "service=Ajax";

  var params = null;
  if( method && method.search(/post/i) != -1 )
  {
    params = url.split('?',2);
    if( params )
    {
      url = params[0];
      params = params.length > 1 ? params[1] : "";
    }
  }
	
  xmlHttp[dstdiv].onreadystatechange = function(){showRequest(dstdiv)};
  xmlHttp[dstdiv].open( (method ? method : "GET"), url, true );

  if( params !== null )
  {
    xmlHttp[dstdiv].setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp[dstdiv].setRequestHeader("Content-length", params.length);
    xmlHttp[dstdiv].setRequestHeader("Connection", "close");
  }
  
  xmlHttp[dstdiv].send( params !== null ? params : null );
} // runRequest



/*
Run an Ajax request after a duration and automatically start again
dstdiv: see runRequest()
url: see runRequest()
duration: time in millsec
*/
function runRefresh( dstdiv, url, duration )
{
	scheduleRequest( dstdiv, url, duration, "runRefresh('"+dstdiv+"','"+url+"',"+duration+")" );
} // runRefresh



/*
Run an Ajax request after a duration
dstdiv: see runRequest()
url: see runRequest()
duration: time in millsec
script: see runRequest()
*/
function scheduleRequest( dstdiv, url, duration, script )
{
  if( requestScheduled[dstdiv] === true )
    return;
  requestScheduled[dstdiv] = true;
  requestScheduledScript[dstdiv] = script;
  requestScheduledId[dstdiv] = setTimeout( "runRequest('"+dstdiv+"','"+url+"')", duration );
} // scheduleRequest



/*
Stop a scheduled Ajax request
dstdiv: see runRequest()
script: set the script to run if a request has already been sent, default: no script is run
*/
function stopRequest( dstdiv, script )
{
  if( requestScheduled[dstdiv] === true )
    requestScheduledScript[dstdiv] = script;
  if( xmlHttp[dstdiv] )
    xmlHttpScript[dstdiv] = script;
} // scheduleRequest



/*
Post a form via Ajax
dstdiv: see runRequest()
formEl: the element of the form
script: see runRequest()
*/
function runFormRequest( dstdiv, formEl, script )
{
	var urlAttr = formEl.attributes.getNamedItem('action');
	var methodAttr = formEl.attributes.getNamedItem('method');
	var url = (urlAttr ? urlAttr.value : "");
	var method = (methodAttr ? methodAttr.value : "");
	var params = "";
	for( var childElNo = 0; childElNo < formEl.elements.length; childElNo++ )
	{
		childEl = formEl.elements[childElNo];
		if( childEl.name )
		{
			var value = "";
			if( childEl.type == 'radio' )
			{
				if( childEl.checked )
					value = childEl.value;
				else
					value = null;
			}
			else
			if( childEl.type == 'checkbox' )
			{
				if( childEl.checked )
					value = childEl.value;
			}
			else
			{
				value = childEl.value;
			}
			
			if( value !== null )
			{
				params += (params.length == 0 ? "?" : "&");
				params += encodeURIComponent( childEl.name ) + "=" + encodeURIComponent( value );
			}
		}
	}
	url += params;
	runRequest( dstdiv, url, script, method );
} // runFormRequest



var xmlHttp = new Array();
var xmlHttpScript = new Array();
var requestScheduledId = new Array();
var requestScheduledScript = new Array();
var requestScheduled = new Array();

/* processes the result of an Ajax request */
function showRequest( dstdiv )
{
  if( xmlHttp[dstdiv] == null )
    return;
    
  if( xmlHttp[dstdiv].readyState==4 || xmlHttp[dstdiv].readyState=="complete" )
  {
	if( xmlHttp[dstdiv].status == 200 )
  	{
	  	var responseText = xmlHttp[dstdiv].responseText;
	  	if( responseText !== null && dstdiv.indexOf("js_") !== 0 && !xmlHttp[dstdiv].responseIsFailure )
	    	document.getElementById( dstdiv ).innerHTML = xmlHttp[dstdiv].responseText;
	    script = xmlHttpScript[dstdiv];
	    if( typeof(script) != "undefined" && script != null )
	      eval( script );
	}
    xmlHttp[dstdiv] = null;
  }
} // showRequest



/* creates an Ajax request object */
function GetXmlHttpObject()
{
  var objXMLHttp=null
  
  if (window.XMLHttpRequest)
  {
    objXMLHttp=new XMLHttpRequest()
  }
  else if (window.ActiveXObject)
  {
    objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
  }
  return objXMLHttp
}




/* BBW-Ajax, do not touch! */
if (!ajaxPrototype) {
    var ajaxPrototype = new Object();

    ajaxPrototype.Ajax = function() {
        this.http = null;
        this.targetElementId = null;
        this.onLoadFunction = null;
    }

    ajaxPrototype.Ajax.prototype = {
        setOnLoadFunction: function(onLoadFunction) {
            this.onLoadFunction = onLoadFunction;
        },
        load: function(url, targetElementId, method, data) {
            var requestMethod = "GET";
            if (method != null) requestMethod = method;

            this.targetElementId = targetElementId;
            this.postHTTP(url, this.delegate(this, this.onAjaxLoad), requestMethod, data);
        },
        onAjaxLoad: function() {
            if (this.http.readyState == 4) {
                if (this.http.status == 200) {
                    if (this.targetElementId != null) {
                        var element = document.getElementById(this.targetElementId);
                        if (element != null) {
                            element.innerHTML = this.http.responseText;
                        }
                    }
                    if (this.onLoadFunction != null) {
                        this.onLoadFunction();
                    }
                }
            }
        },
        postHTTP: function(url, callbackFunction, method, data) {
            this.http = this.getHTTPObject();
            this.http.open(method, url, true);
            this.http.onreadystatechange = callbackFunction;
            if (method == "POST") {
                this.http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            }
            this.http.send(data);
        },
        getHTTPObject: function() {
            var http = false;
            if (window.ActiveXObject) {
                var names = ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP"];
                for (var key in names) {
                    try {
                        return new ActiveXObject(names[key]);
                    } catch (e) {}
                }
            } else if (XMLHttpRequest) {
                try {
                    http = new XMLHttpRequest();
                } catch (e) {}
            }
            return http;
        },
        delegate: function(obj, objMethod) {
            return function() {
                return objMethod.call(obj, arguments);
            }
        }
    }
}

var Ajax = ajaxPrototype.Ajax;

function ajaxLoad(url, targetElementId, method, data, onLoadFunction) {
    var ajaxObj = new Ajax();
    if (onLoadFunction != null) ajaxObj.setOnLoadFunction(onLoadFunction);
    ajaxObj.load(url, targetElementId, method, data);
}
/* ---- flash swfobject ---- */
/**
 * SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
 *
 * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 */
if(typeof deconcept=="undefined"){var deconcept=new Object();}if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return;}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id",id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height",h);}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=true;}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true);},setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15];},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key];}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\"";_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";var _1a=this.getParams();for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}var _1c=this.getVariablePairs().join("&");if(_1c.length>0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\">";_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";var _1d=this.getParams();for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}_19+="</object>";}return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.major<fv.major){return false;}if(this.major>fv.major){return true;}if(this.minor<fv.minor){return false;}if(this.minor>fv.minor){return true;}if(this.rev<fv.rev){return false;}return true;};deconcept.util={getRequestParameter:function(_2b){var q=document.location.search||document.location.hash;if(_2b==null){return q;}if(q){var _2d=q.substring(1).split("&");for(var i=0;i<_2d.length;i++){if(_2d[i].substring(0,_2d[i].indexOf("="))==_2b){return _2d[i].substring((_2d[i].indexOf("=")+1));}}}return "";}};deconcept.SWFObjectUtil.cleanupSWFs=function(){var _2f=document.getElementsByTagName("OBJECT");for(var i=_2f.length-1;i>=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(deconcept.SWFObject.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);deconcept.unloadSet=true;}}if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all[id];};}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject;
/* ---- video ---- */
if (!videoPrototype) {
    var videoPrototype = new Object();

    videoPrototype.TeaserViewer = function() {
        this.teaserWidth = null;
        this.teasersVisible = null;
        this.teasersTotal = null;
        this.teaserListId = null;
        this.teasersLeftButtonId = null;
        this.teasersRightButtonId = null;
        this.scrollFactor = null;
        this.videoPlayerId = null;
        this.teaserPosition = 0;
        this.teaserOffset = 0;
        this.teaserTargetOffset = 0;
    }

    videoPrototype.TeaserViewer.prototype = {
        setTeaserWidth: function(teaserWidth) {
            this.teaserWidth = teaserWidth;
        },
        setTeasersVisible: function(teasersVisible) {
            this.teasersVisible = teasersVisible;
        },
        setTeasersTotal: function(teasersTotal) {
            this.teasersTotal = teasersTotal;
        },
        setTeaserListId: function(teaserListId) {
            this.teaserListId = teaserListId;
        },
        setTeasersLeftButtonId: function(teasersLeftButtonId) {
            this.teasersLeftButtonId = teasersLeftButtonId;
        },
        setTeasersRightButtonId: function(teasersRightButtonId) {
            this.teasersRightButtonId = teasersRightButtonId;
        },
        setScrollFactor: function(scrollFactor) {
            this.scrollFactor = scrollFactor;
        },
        setVideoPlayerId: function(videoPlayerId) {
            this.videoPlayerId = videoPlayerId;
        },
        init: function() {
            this.updateButtons();
        },
        next: function() {
            if (this.teaserPosition < this.teasersTotal - this.teasersVisible) {
                this.teaserPosition++;
                this.teaserTargetOffset += this.teaserWidth;
                this.startScroll();
                this.updateButtons();
            }
        },
        previous: function() {
            if (this.teaserPosition > 0) {
                this.teaserPosition--;
                this.teaserTargetOffset -= this.teaserWidth;
                this.startScroll();
                this.updateButtons();
            }
        },
        playVideo: function(videoClipUrl, videoArticleUrl, channelName, sectionName, sectionUniqueName) {
            var playerElement = document.getElementById(this.videoPlayerId);
            if (playerElement) {
                if (playerElement.setAutoPlay) playerElement.setAutoPlay(true);
                if (playerElement.playClip) playerElement.playClip(videoClipUrl, videoArticleUrl, channelName, sectionName, sectionUniqueName);
            }
        },
        startScroll: function() {
            setTimeout(this.delegate(this, this.step), 40);
        },
        step: function() {
            var doNextStep = false;

            if (Math.abs(this.teaserTargetOffset - this.teaserOffset) > 1) {
                this.teaserOffset += (this.teaserTargetOffset - this.teaserOffset) * this.scrollFactor;
                doNextStep = true;
            } else {
                this.teaserOffset = this.teaserTargetOffset;
            }

            var teaserListElement = document.getElementById(this.teaserListId);
            teaserListElement.style.marginLeft = "" + (0 - Math.round(this.teaserOffset)) + "px";

            if (doNextStep) {
                setTimeout(this.delegate(this, this.step), 40);
            }
        },
        updateButtons: function() {
            var leftButtonElement = document.getElementById(this.teasersLeftButtonId);
            if (this.teaserPosition > 0) {
                leftButtonElement.className = "videoTeaserButtonActive";
            } else {
                leftButtonElement.className = "videoTeaserButtonInactive";
            }

            var rightButtonElement = document.getElementById(this.teasersRightButtonId);
            if (this.teaserPosition < this.teasersTotal - this.teasersVisible) {
                rightButtonElement.className = "videoTeaserButtonActive";
            } else {
                rightButtonElement.className = "videoTeaserButtonInactive";
            }
        },
        delegate: function(obj, objMethod) {
            return function() {
                return objMethod.call(obj, arguments);
            }
        }
    }

    videoPrototype.SectionBox = function() {
        this.sectionBoxItems = new Array();
        this.selectedSectionId = null;
        this.targetElementId = null;
    }

    videoPrototype.SectionBox.prototype = {
        setTargetElementId: function(targetElementId) {
            this.targetElementId = targetElementId;
        },
        addItem: function(elementId, sectionId, sectionUrl, sectionElementId, isSelectedSection) {
            var sectionBoxItem = new videoPrototype.SectionBoxItem(elementId, sectionId, sectionUrl, sectionElementId);
            this.sectionBoxItems.push(sectionBoxItem);
            if (isSelectedSection) this.selectedSectionId = sectionId;
        },
        openSection: function(sectionId) {
            if (sectionId != this.selectedSectionId) {
                for (var i = 0; i < this.sectionBoxItems.length; i++) {
                    var sectionBoxItem = this.sectionBoxItems[i];
                    var element = document.getElementById(sectionBoxItem.elementId);
                    element.className = element.className.replace(" videoSectionBoxItemSelected", "");

                    var sectionElement = document.getElementById(sectionBoxItem.sectionElementId);
                    sectionElement.className = sectionElement.className.replace(" videoSectionBoxItemOpen", "");
                }

                for (var i = 0; i < this.sectionBoxItems.length; i++) {
                    var sectionBoxItem = this.sectionBoxItems[i];
                    var element = document.getElementById(sectionBoxItem.elementId);

                    if (sectionBoxItem.sectionId == sectionId) {
                        element.className += " videoSectionBoxItemSelected";
                        ajaxLoad(sectionBoxItem.sectionUrl + '?service=Ajax&type=videoSectionBrowse', this.targetElementId);
                    }

                    var sectionElement = document.getElementById(sectionBoxItem.sectionElementId);

                    if (sectionBoxItem.sectionId == sectionId) {
                        sectionElement.className += " videoSectionBoxItemOpen";
                    }
                }
                this.selectedSectionId = sectionId;
            }
        }
    }

    videoPrototype.SectionBoxItem = function(elementId, sectionId, sectionUrl, sectionElementId) {
        this.elementId = elementId;
        this.sectionId = sectionId;
        this.sectionUrl = sectionUrl;
        this.sectionElementId = sectionElementId;
    }

    videoPrototype.TabController = function() {
        this.tabs = new Object();
        this.activeTab = null;
        this.dropDownBoxElementId = null;
        this.dropDownAreaElementId = null;
        this.dropDownContentElementId = null;
        this.contentHeight = null;
        this.scrollFactor = null;
        this.contentOffset = null;
        this.targetOffset = null;
        this.notifiedElementIds = new Array();
    }

    videoPrototype.TabController.prototype = {
        setTab: function(name, elementId) {
            if (this.tabs[name] == null) {
                var tabItem = new videoPrototype.TabItem(name);
                tabItem.tabElementId = elementId;
                this.tabs[name] = tabItem;
            } else {
                this.tabs[name].tabElementId = elementId;
            }
        },
        setTabExtension: function(name, elementId) {
            if (this.tabs[name] == null) {
                var tabItem = new videoPrototype.TabItem(name);
                tabItem.tabExtensionElementId = elementId;
                this.tabs[name] = tabItem;
            } else {
                this.tabs[name].tabExtensionElementId = elementId;
            }
        },
        setTabContent: function(name, elementId) {
            if (this.tabs[name] == null) {
                var tabItem = new videoPrototype.TabItem(name);
                tabItem.tabContentElementId = elementId;
                this.tabs[name] = tabItem;
            } else {
                this.tabs[name].tabContentElementId = elementId;
            }
            document.getElementById(elementId).style.display = "none";
        },
        setTabOnOpenFunction: function(name, onOpenFunction) {
            if (this.tabs[name] == null) {
                var tabItem = new videoPrototype.TabItem(name);
                tabItem.tabOnOpenFunction = onOpenFunction;
                this.tabs[name] = tabItem;
            } else {
                this.tabs[name].tabOnOpenFunction = onOpenFunction;
            }
        },
        setTabOnCloseFunction: function(name, onCloseFunction) {
            if (this.tabs[name] == null) {
                var tabItem = new videoPrototype.TabItem(name);
                tabItem.tabOnCloseFunction = onCloseFunction;
                this.tabs[name] = tabItem;
            } else {
                this.tabs[name].tabOnCloseFunction = onCloseFunction;
            }
        },
        setDropDownBox: function(elementId) {
            this.dropDownBoxElementId = elementId;
        },
        setDropDownArea: function(elementId) {
            this.dropDownAreaElementId = elementId;
        },
        setDropDownContent: function(elementId) {
            this.dropDownContentElementId = elementId;
        },
        setContentHeight: function(contentHeight) {
            this.contentHeight = contentHeight;
            this.contentOffset = 0;
        },
        setScrollFactor: function(scrollFactor) {
            this.scrollFactor = scrollFactor;
        },
        addNotifiedElementId: function(elementId) {
            this.notifiedElementIds.push(elementId);
        },
        open: function(name) {
            var targetTab = this.tabs[name];
            if (targetTab != null) {
                if (targetTab != this.activeTab) {

                    if (this.activeTab != null) {
                        this.deactivateTabs();
                    }

                    var tabElement = document.getElementById(targetTab.tabElementId);
                    if (tabElement != null) {
                        tabElement.className = tabElement.className.replace(" videoLinkTabInactive", " videoLinkTabActive");
                    }

                    var tabExtensionElement = document.getElementById(targetTab.tabExtensionElementId);
                    if (tabExtensionElement != null) {
                        tabExtensionElement.className = tabExtensionElement.className.replace(" videoDropDownTabInactive", " videoDropDownTabActive");
                    }

                    var tabContentElement = document.getElementById(targetTab.tabContentElementId);
                    if (tabContentElement != null) {
                        tabContentElement.style.display = "block";
                    }

                    if (targetTab.tabOnOpenFunction != null) {
                        targetTab.tabOnOpenFunction();
                    }

                    this.targetOffset = this.contentHeight;
                    this.startScroll();

                    this.activeTab = targetTab;
                } else {
                    this.close();
                }
            }
        },
        close: function() {
            this.activeTab = null;

            this.targetOffset = 0;
            this.startScroll();
        },
        deactivateTabs: function() {
            for (var tabName in this.tabs) {
                var tab = this.tabs[tabName];

                var tabElement = document.getElementById(tab.tabElementId);
                if (tabElement != null) {
                    tabElement.className = tabElement.className.replace(" videoLinkTabActive", " videoLinkTabInactive");
                }

                var tabExtensionElement = document.getElementById(tab.tabExtensionElementId);
                if (tabExtensionElement != null) {
                    tabExtensionElement.className = tabExtensionElement.className.replace(" videoDropDownTabActive", " videoDropDownTabInactive");
                }

                var tabContentElement = document.getElementById(tab.tabContentElementId);
                if (tabContentElement != null) {
                    tabContentElement.style.display = "none";
                }

                if (tab.tabOnCloseFunction != null) {
                    tab.tabOnCloseFunction();
                }
            }
        },
        startScroll: function() {
            for (var i = 0; i < this.notifiedElementIds.length; i++) {
                var notifiedElementId = this.notifiedElementIds[i];
                var notifiedElement = document.getElementById(notifiedElementId);
                if (notifiedElement != null) {
                    notifiedElement.className += " videoDropDownScroll";
                }
            }

            setTimeout(this.delegate(this, this.step), 40);
        },
        step: function() {
            var doNextStep = false;

            if (Math.abs((this.targetOffset - this.contentOffset) * this.scrollFactor) > 1) {
                this.contentOffset += (this.targetOffset - this.contentOffset) * this.scrollFactor;
                doNextStep = true;
            } else {
                for (var i = 0; i < this.notifiedElementIds.length; i++) {
                    var notifiedElementId = this.notifiedElementIds[i];
                    var notifiedElement = document.getElementById(notifiedElementId);
                    if (notifiedElement != null) {
                        notifiedElement.className = notifiedElement.className.replace(" videoDropDownScroll", "");
                    }
                }

                this.contentOffset = this.targetOffset;
            }

            var dropDownBoxElement = document.getElementById(this.dropDownBoxElementId);
            if (this.contentOffset == 0) {
                dropDownBoxElement.style.display = "none";
                this.deactivateTabs();
            } else {
                dropDownBoxElement.style.display = "block";
            }

            var dropDownContentElement = document.getElementById(this.dropDownContentElementId);
            dropDownContentElement.style.marginTop = "" + (Math.round(this.contentOffset) - this.contentHeight) + "px";

            var dropDownAreaElement = document.getElementById(this.dropDownAreaElementId);
            dropDownAreaElement.style.height = "" + (Math.round(this.contentOffset)) + "px";

            if (doNextStep) {
                setTimeout(this.delegate(this, this.step), 40);
            }
        },
        delegate: function(obj, objMethod) {
            return function() {
                return objMethod.call(obj, arguments);
            }
        }
    }

    videoPrototype.TabItem = function(name) {
        this.name = name;
        this.tabElementId = null;
        this.tabExtensionElementId = null;
        this.tabContentElementId = null;
        this.tabOnOpenFunction = null;
        this.tabOnCloseFunction = null;
    }

    videoPrototype.VideoComment = function() {
        this.formElementId = null;
        this.boxElementId = null;
        this.messageElementId = null;
        this.bodyElementId = null;
        this.nameElementId = null;
        this.emailElementId = null;
        this.captchaElementId = null;
        this.targetElementId = null;
    }

    videoPrototype.VideoComment.prototype = {
        setFormElementId: function(formElementId) {
            this.formElementId = formElementId;
        },
        setBoxElementId: function(boxElementId) {
            this.boxElementId = boxElementId;
        },
        setMessageElementId: function(messageElementId) {
            this.messageElementId = messageElementId;
        },
        setBodyElementId: function(bodyElementId) {
            this.bodyElementId = bodyElementId;
        },
        setNameElementId: function(nameElementId) {
            this.nameElementId = nameElementId;
        },
        setEmailElementId: function(emailElementId) {
            this.emailElementId = emailElementId;
        },
        setCaptchaElementId: function(captchaElementId) {
            this.captchaElementId = captchaElementId;
        },
        setTargetElementId: function(targetElementId) {
            this.targetElementId = targetElementId;
        },
        sendCommentForm: function() {
            var result = true;

            this.clearErrors();

            try
            {
                var errorMessageActive = false;

                if (document.getElementById(this.bodyElementId).value == "") {
                    document.getElementById(this.bodyElementId).className += " videoFormError";
                    document.getElementById(this.messageElementId).innerHTML += "F&uuml;llen Sie bitte das Feld 'Ihr Kommentar' aus.<br />";
                    errorMessageActive = true;
                    result = false;
                } else {
                    this.setCookie("commentBody", document.getElementById(this.bodyElementId).value);
                }

                if (document.getElementById(this.nameElementId).value == "") {
                    document.getElementById(this.nameElementId).className += " videoFormError";
                    document.getElementById(this.messageElementId).innerHTML += "F&uuml;llen Sie bitte das Feld 'Ihr Name' aus.<br />";
                    errorMessageActive = true;
                    result = false;
                } else {
                    this.setCookie("commentName", document.getElementById(this.nameElementId).value);
                }

                if (document.getElementById(this.emailElementId).value == "") {
                    document.getElementById(this.emailElementId).className += " videoFormError";
                    document.getElementById(this.messageElementId).innerHTML += "F&uuml;llen Sie bitte das Feld 'Ihre E-mail' aus.<br />";
                    errorMessageActive = true;
                    result = false;
                }
                else if (!checkEmail(document.getElementById(this.emailElementId).value)) {
                    document.getElementById(this.emailElementId).className += " videoFormError";
                    document.getElementById(this.messageElementId).innerHTML += "Ihre E-mail is nicht g&uuml;ltig.<br />";
                    errorMessageActive = true;
                    result = false;
                } else {
                    this.setCookie("commentEmail", document.getElementById(this.emailElementId).value);
                }

                if (document.getElementById(this.captchaElementId).value == "") {
                    document.getElementById(this.captchaElementId).className += " videoFormError";
                    document.getElementById(this.messageElementId).innerHTML += "F&uuml;llen Sie bitte das Feld 'Code' aus.<br />";
                    errorMessageActive = true;
                    result = false;
                }

                if (errorMessageActive) {
                    document.getElementById(this.messageElementId).className += " videoPostMessagesError";
                    document.getElementById(this.boxElementId).className += " videoFormShowMessage";
                }
            }
            catch(e) {}

            if (result) {
                var data = "";

                var formElement = document.getElementById(this.formElementId);
                for (var i = 0; i < formElement.elements.length; i++) {
                    var field = formElement.elements[i];
                    if (i > 0) data += "&";
                    data += field.name + "=" + encodeURIComponent(field.value);
                }

                var postUrl = formElement.action;

                ajaxLoad(postUrl, this.targetElementId, "POST", data, this.delegate(this, this.checkResult));
            }
        },
        checkResult: function() {
            var showMessage = false;
            var isError = false;
            var captchaError = false;
            var resultMessage = "";

            var result = document.getElementById(this.messageElementId).innerHTML;
            if (result == "kommentarSuccess") {
                showMessage = true;
                resultMessage = "Vielen Dank f&uuml;r Ihren Kommentar. Er wird in wenigen Minuten unter dem Artikel erscheinen.";
            } else if (result == "kommentarError") {
                showMessage = true;
                isError = true;
                resultMessage = "Leider konnte Ihr Kommentar nicht verarbeitet werden.";
            } else if (result == "kommentarCodeExpired") {
                showMessage = true;
                isError = true;
                captchaError = true;
                resultMessage = "Der Code ist nicht mehr gŸltig. Bitte geben Sie den Code erneut ein.";
            } else if (result == "kommentarCodeFalsch") {
                showMessage = true;
                isError = true;
                captchaError = true;
                resultMessage = "Der eingegebene Code ist falsch. Bitte geben Sie den Code erneut ein.";
            }

            this.clearErrors();
            document.getElementById(this.messageElementId).innerHTML = resultMessage;
            if (showMessage) document.getElementById(this.boxElementId).className += " videoFormShowMessage";
            if (isError) document.getElementById(this.messageElementId).className += " videoPostMessagesError";
            if (captchaError) document.getElementById(this.captchaElementId).className += " videoFormError";

            if (isError) this.restoreFields();
            else this.clearFields();
        },
        clearErrors: function() {
            document.getElementById(this.boxElementId).className = document.getElementById(this.boxElementId).className.replace(" videoFormShowMessage", "");
            document.getElementById(this.messageElementId).innerHTML = "";
            document.getElementById(this.messageElementId).className = document.getElementById(this.messageElementId).className.replace(" videoPostMessagesError", "");
            document.getElementById(this.bodyElementId).className = document.getElementById(this.bodyElementId).className.replace(" videoFormError", "");
            document.getElementById(this.nameElementId).className = document.getElementById(this.nameElementId).className.replace(" videoFormError", "");
            document.getElementById(this.emailElementId).className = document.getElementById(this.emailElementId).className.replace(" videoFormError", "");
            document.getElementById(this.captchaElementId).className = document.getElementById(this.captchaElementId).className.replace(" videoFormError", "");
        },
        restoreFields: function() {
            document.getElementById(this.bodyElementId).value = this.getCookie("commentBody");
            document.getElementById(this.nameElementId).value = this.getCookie("commentName");
            document.getElementById(this.emailElementId).value = this.getCookie("commentEmail");
        },
        clearFields: function() {
            document.getElementById(this.bodyElementId).value = "";
            document.getElementById(this.nameElementId).value = "";
            document.getElementById(this.emailElementId).value = "";
            this.setCookie("commentBody", "");
            this.setCookie("commentName", "");
            this.setCookie("commentEmail", "");
        },
        clearForm: function() {
            this.clearFields();
            this.clearErrors();
        },
        delegate: function(obj, objMethod) {
            return function() {
                return objMethod.call(obj, arguments);
            }
        },
        setCookie: function(cookieName, value) {
            document.cookie = cookieName + "=" + encodeURIComponent(value);
        },
        getCookie: function(cookieName) {
            if (document.cookie.length > 0) {
                var cookieStart = document.cookie.indexOf(cookieName + "=");
                if (cookieStart != -1) {
                    cookieStart = cookieStart + cookieName.length + 1;
                    var cookieEnd = document.cookie.indexOf(";", cookieStart);
                    if (cookieEnd == -1) cookieEnd = document.cookie.length;
                    return decodeURIComponent(document.cookie.substring(cookieStart, cookieEnd));
                }
            }
            return "";
        }
    }

    videoPrototype.VideoSend = function() {
        this.formElementId = null;
        this.boxElementId = null;
        this.previewElementId = null;
        this.messageElementId = null;
        this.addressesElementId = null;
        this.nameElementId = null;
        this.emailElementId = null;
        this.captchaElementId = null;
        this.targetElementId = null;
        this.topic = null;
        this.title = null;
        this.intro = null;
        this.permaLink = null;
    }

    videoPrototype.VideoSend.prototype = {
        setFormElementId: function(formElementId) {
            this.formElementId = formElementId;
        },
        setBoxElementId: function(boxElementId) {
            this.boxElementId = boxElementId;
        },
        setPreviewElementId: function(previewElementId) {
            this.previewElementId = previewElementId;
        },
        setMessageElementId: function(messageElementId) {
            this.messageElementId = messageElementId;
        },
        setAddressesElementId: function(addressesElementId) {
            this.addressesElementId = addressesElementId;
        },
        setNameElementId: function(nameElementId) {
            this.nameElementId = nameElementId;
        },
        setEmailElementId: function(emailElementId) {
            this.emailElementId = emailElementId;
        },
        setCaptchaElementId: function(captchaElementId) {
            this.captchaElementId = captchaElementId;
        },
        setTargetElementId: function(targetElementId) {
            this.targetElementId = targetElementId;
        },
        setTopic: function(topic) {
            this.topic = topic;
        },
        setTitle: function(title) {
            this.title = title;
        },
        setIntro: function(intro) {
            this.intro = intro;
        },
        setPermaLink: function(permaLink) {
            this.permaLink = permaLink;
        },
        sendForm: function() {
            var result = true;

            this.clearErrors();

            try
            {
                var errorMessageActive = false;

                if (document.getElementById(this.addressesElementId).value == "") {
                    document.getElementById(this.addressesElementId).className += " videoFormError";
                    document.getElementById(this.messageElementId).innerHTML += "F&uuml;llen Sie bitte das Feld 'Dieses Video senden an' aus.<br />";
                    errorMessageActive = true;
                    result = false;
                } else {
                    var addressesError = false;
                    var addresses = document.getElementById(this.addressesElementId).value.split(",");
                    for (var i = 0; i < addresses.length; i++) {
                        var address = addresses[i].replace(/^\s+|\s+$/g, "");
                        if (!checkEmail(address)) {
                            document.getElementById(this.addressesElementId).className += " videoFormError";
                            document.getElementById(this.messageElementId).innerHTML += "Die Empf&auml;nger-Email ist nicht g&uuml;ltig.<br />";
                            errorMessageActive = true;
                            break;
                        }
                    }

                    if (!addressesError) {
                        this.setCookie("sendAddresses", document.getElementById(this.addressesElementId).value);
                    }
                }

                if (document.getElementById(this.nameElementId).value == "") {
                    document.getElementById(this.nameElementId).className += " videoFormError";
                    document.getElementById(this.messageElementId).innerHTML += "F&uuml;llen Sie bitte das Feld 'Ihr Name' aus.<br />";
                    errorMessageActive = true;
                    result = false;
                } else {
                    this.setCookie("sendName", document.getElementById(this.nameElementId).value);
                }

                if (document.getElementById(this.emailElementId).value == "") {
                    document.getElementById(this.emailElementId).className += " videoFormError";
                    document.getElementById(this.messageElementId).innerHTML += "F&uuml;llen Sie bitte das Feld 'Ihre E-mail' aus.<br />";
                    errorMessageActive = true;
                    result = false;
                }
                else if (!checkEmail(document.getElementById(this.emailElementId).value)) {
                    document.getElementById(this.emailElementId).className += " videoFormError";
                    document.getElementById(this.messageElementId).innerHTML += "Ihre E-mail is nicht g&uuml;ltig.<br />";
                    errorMessageActive = true;
                    result = false;
                } else {
                    this.setCookie("sendEmail", document.getElementById(this.emailElementId).value);
                }

                if (document.getElementById(this.captchaElementId).value == "") {
                    document.getElementById(this.captchaElementId).className += " videoFormError";
                    document.getElementById(this.messageElementId).innerHTML += "F&uuml;llen Sie bitte das Feld 'Code' aus.<br />";
                    errorMessageActive = true;
                    result = false;
                }

                if (errorMessageActive) {
                    document.getElementById(this.messageElementId).className += " videoPostMessagesError";
                    document.getElementById(this.boxElementId).className += " videoFormShowMessage";
                }
            }
            catch(e) {}

            if (result) {
                var data = "";

                var formElement = document.getElementById(this.formElementId);
                for (var i = 0; i < formElement.elements.length; i++) {
                    var field = formElement.elements[i];
                    if (i > 0) data += "&";
                    data += field.name + "=" + encodeURIComponent(field.value);
                }

                var postUrl = formElement.action;

                ajaxLoad(postUrl, this.targetElementId, "POST", data, this.delegate(this, this.checkResult));
            }
        },
        checkResult: function() {
            var showMessage = false;
            var isError = false;
            var captchaError = false;
            var resultMessage = "";

            var result = document.getElementById(this.messageElementId).innerHTML;
            if (result == "recommendation_success") {
                showMessage = true;
                resultMessage = "Dieses Video wurde erfolgreich verschickt!";
            } else if (result == "recommendation_failure") {
                showMessage = true;
                isError = true;
                resultMessage = "Leider konnte dieses Video nicht versendet werden.";
            } else if (result == "recommendationCodeExpired") {
                showMessage = true;
                isError = true;
                captchaError = true;
                resultMessage = "Der Code ist nicht mehr g&uuml;ltig. Bitte geben Sie den Code erneut ein.";
            } else if (result == "recommendationCodeFalsch") {
                showMessage = true;
                isError = true;
                captchaError = true;
                resultMessage = "Der eingegebene Code ist falsch. Bitte geben Sie den Code erneut ein.";
            }

            this.clearErrors();
            document.getElementById(this.messageElementId).innerHTML = resultMessage;
            if (showMessage) document.getElementById(this.boxElementId).className += " videoFormShowMessage";
            if (isError) document.getElementById(this.messageElementId).className += " videoPostMessagesError";
            if (captchaError) document.getElementById(this.captchaElementId).className += " videoFormError";

            if (isError) this.restoreFields();
            else this.clearFields();

            this.updatePreview();
        },
        clearErrors: function() {
            document.getElementById(this.boxElementId).className = document.getElementById(this.boxElementId).className.replace(" videoFormShowMessage", "");
            document.getElementById(this.messageElementId).innerHTML = "";
            document.getElementById(this.messageElementId).className = document.getElementById(this.messageElementId).className.replace(" videoPostMessagesError", "");
            document.getElementById(this.addressesElementId).className = document.getElementById(this.addressesElementId).className.replace(" videoFormError", "");
            document.getElementById(this.nameElementId).className = document.getElementById(this.nameElementId).className.replace(" videoFormError", "");
            document.getElementById(this.emailElementId).className = document.getElementById(this.emailElementId).className.replace(" videoFormError", "");
            document.getElementById(this.captchaElementId).className = document.getElementById(this.captchaElementId).className.replace(" videoFormError", "");
        },
        restoreFields: function() {
            document.getElementById(this.addressesElementId).value = this.getCookie("sendAddresses");
            document.getElementById(this.nameElementId).value = this.getCookie("sendName");
            document.getElementById(this.emailElementId).value = this.getCookie("sendEmail");
        },
        clearFields: function() {
            document.getElementById(this.addressesElementId).value = "";
            document.getElementById(this.nameElementId).value = "";
            document.getElementById(this.emailElementId).value = "";
            this.setCookie("sendAddresses", "");
            this.setCookie("sendName", "");
            this.setCookie("sendEmail", "");
        },
        clearForm: function() {
            this.clearFields();
            this.clearErrors();
        },
        updatePreview: function() {
            var name = document.getElementById(this.nameElementId).value;
            if (name == "") name = "[Ihr Name]";

            var email = document.getElementById(this.emailElementId).value;
            if (email == "") email = "[Ihre E-mail]";

            var preview = name + " (" + email + ") hat Ihnen ein Video von &quot;Berliner Morgenpost&quot; empfohlen.<br />";
            preview += "------------------------------------------------<br />";
            if (this.topic != "") preview += this.topic + "<br /><br />";
            if (this.title != "") preview += this.title + "<br /><br />";
            if (this.intro != "") preview += this.intro + "<br /><br />";
            preview += "Das Video k&ouml;nnen Sie hier sehen:<br />";

            var permaLinkChunk = this.permaLink;
            while (permaLinkChunk.length > 38) {
                var index = permaLinkChunk.lastIndexOf("/", 38);
                if (index == -1) {
                    break;
                } else {
                    preview += permaLinkChunk.substr(0, index + 1) + "<br />";
                    permaLinkChunk = permaLinkChunk.substr(index + 1);
                }
            }
            preview += permaLinkChunk + "<br />";

            preview += "<br />";
            preview += "Ihre Daten wurden nicht gespeichert und wurden ausschlie&szlig;lich zum Versenden dieser Mail verwendet.<br/>";
            preview += "------------------------------------------------<br />";
            preview += "Wenn der Service missbraucht wurde, schicken Sie bitte diese Mail an leserbriefe@morgenpost.de";

            document.getElementById(this.previewElementId).innerHTML = preview;
        },
        wrapAddresses: function() {
            document.getElementById(this.addressesElementId).value = document.getElementById(this.addressesElementId).value.replace(/,\s*/g, ", ");
        },
        delegate: function(obj, objMethod) {
            return function() {
                return objMethod.call(obj, arguments);
            }
        },
        setCookie: function(cookieName, value) {
            document.cookie = cookieName + "=" + encodeURIComponent(value);
        },
        getCookie: function(cookieName) {
            if (document.cookie.length > 0) {
                var cookieStart = document.cookie.indexOf(cookieName + "=");
                if (cookieStart != -1) {
                    cookieStart = cookieStart + cookieName.length + 1;
                    var cookieEnd = document.cookie.indexOf(";", cookieStart);
                    if (cookieEnd == -1) cookieEnd = document.cookie.length;
                    return decodeURIComponent(document.cookie.substring(cookieStart, cookieEnd));
                }
            }
            return "";
        }
    }

    videoPrototype.VideoStats = function() {
    }

    videoPrototype.VideoStats.prototype = {
        logStats: function(parameters) {
            var ivwUrl = "http://morgpo2.ivwbox.de/cgi-bin/ivw/CP/" + parameters.sectionUniqueName;
            ivwUrl += "?r=" + escape(location.href) + "&d=" + (Math.random() * 100000);

            var videoIVWStats = document.getElementById("videoIVWStats");
            if (videoIVWStats != null) {
                videoIVWStats.src = ivwUrl;
            }

            var subChannel = "";
            if (parameters.sectionName != parameters.channelName) subChannel = parameters.sectionName;

            var dateString = "";
            if (parameters.pubdate != null) {
                dateString = parameters.pubdate.substr(8, 2);
                dateString += "." + parameters.pubdate.substr(5, 2);
                dateString += "." + parameters.pubdate.substr(0, 4);
            }

            s.pageName = escape(parameters.sectionName) + ":" + parameters.id + ":" + escape(parameters.title);
            s.server = "";
            s.pageURL = escape(parameters.deeplinkUrl);
            s.referrer = escape(location.href);
            s.channel = escape(parameters.channelName);
            s.pageType = "";
            s.prop1 = subChannel;
            s.prop2 = "bm";
            s.prop3 = parameters.id;
            s.prop4 = dateString;
            s.prop5 = "story";
            s.prop6 = "";
            s.prop7 = "image";
            s.prop8 = "";
            s.prop9 = "";
            s.campaign = "";
            s.state = "";
            s.zip = "";
            s.events = "";
            s.products = "";
            s.purchaseID = "";
            s.eVar1 = "";
            s.eVar2 = "";
            s.eVar3 = "";
            s.eVar4 = "";
            s.eVar5 = "";
            var s_code=s.t();
            if (s_code) document.write(s_code);
        }
    }

}

var TeaserViewer = videoPrototype.TeaserViewer;
var SectionBox = videoPrototype.SectionBox;
var TabController = videoPrototype.TabController;
var VideoComment = videoPrototype.VideoComment;
var VideoSend = videoPrototype.VideoSend;
var VideoStats = videoPrototype.VideoStats;

function videoLogStats(parameters) {
    var videoStats = new VideoStats();
    videoStats.logStats(parameters);
}
/* ---- poll ---- */
/*
JavaScript functions for poll module
- uses: ajax.js
*/

function Poll()
{
}

Poll.isVoteConfirm = function( id )
{
	if (document.URL.indexOf("#vote_")>0) {
		var voteId = document.URL.substr(document.URL.lastIndexOf("_")+1);
		if (voteId == id) {
			return true;
		}
	}
	return false;
}

Poll.voteShowHide = function( id, confirm )
{
  try{
	var hideId = "vote-"+id;
	var showId = "voted-"+id;
	var confId = "cnfrm-"+id;
	var hideElm = document.getElementById( hideId);
	var showElm = document.getElementById( showId);
	var confElm = document.getElementById( confId);

	if ( hideElm != null) {
		hideElm.style.display = "none";
		if (!confirm && confElm!=null) {
			confElm.style.display = "none";
		}
	}
	if (confirm && confElm!=null) {
		confElm.style.display = "block";
	} else
	if ( showElm != null) {
		showElm.style.display = "block";
	}
	var hideId = "vote-"+id+"-art";
	var showId = "voted-"+id+"-art";

	var hideElm = document.getElementById( hideId);
	var showElm = document.getElementById( showId);

	if ( hideElm != null && showElm != null) {
		hideElm.style.display = "none";
		showElm.style.display = "block";
	}

  }catch (erm){
	//alert("peiling.ShowHide()"+erm);
  }
}

Poll.voteInitialHide = function( id, divId )
{
  try
  {
	//hide poll Q&A and show Results
	var mentometer = getCookie("mentometer");
	if ( mentometer != null )
	{
	  var mentometer_array = mentometer.split("M");
	  for ( i = 0; i < mentometer_array.length; i++ )
	  {
		if ( mentometer_array[i] != 'null' )
		{
		  if ( mentometer_array[i].match(id) )
		  {
			  Poll.voteShowHide( divId, Poll.isVoteConfirm(id) );
		  }
		}
	  }
	}
  }
  catch ( erm )
  {
	//alert("displayPoll" + erm);
  }
}

Poll.voteSubmit = function( divId, formEl, type, articleIndex )
{
	var redirectUrl = formEl.elements['redirectTo'].value;
	if( !redirectUrl )
		redirectUrl = window.location.href;
	formEl.elements['redirectTo'].value = 
		redirectUrl + 
		"?service=Ajax&ajax=module&s=" + Math.random() + 
		(type ? "&polltype=" + type : "") +
		(articleIndex ? "&articleIndex=" + articleIndex : "");
	runFormRequest( divId, formEl );
	return false;
}


/* ---- notepad ---- */
/*	BMO: store articles for users to be retrieved later on
*/
function Notepad(){}

Notepad.prototype =
{
	cookieName: "notepad",
	cookieDuration: 365,
	savedArticleListId: "savedArticleList",
	notepadSelectAllId: "notepadSelectAll",
	notepadArticleId: "notepadArticle",
	maxArticles: 100,
	sectionSelect: "",
	sortType: 1,
	sortOrder: "false",
	page: 0,
	articleMessageId: "articleMessage",
	textNoteSaved: "Article added.",
	textNoteAlreadySaved: "Already on notepad.",
	textMaxArticles: "Notepad full.",
	textCookiesDisabled: "Cookies are disabled.",

	// store article ID in cookie
	// return: false - if the article was not added (already exists) or true, if the article was added
	_addArticle:function( articleId )
	{
		var cookieSavedArticles = this._getArticles();
		var savedArticles = cookieSavedArticles.split(",");
		var alreadyExists = false;
		
		// check if the article already exists
		for( i=0; i < savedArticles.length; i++ )
        {
            savedArticleData = savedArticles[i].split("@");
            savedArticleId = savedArticleData[0];
			if( savedArticleId == articleId )
			{
                alreadyExists = true;
				break;
			}
		}
		
		if( alreadyExists == false )
		{
			if( savedArticles.length >= this.maxArticles )
			{
				return 2;
			}
			var date = new Date;
			articleId = articleId + "@" + date.getTime();
			cookieSavedArticles = cookieSavedArticles.length == 0 ? articleId : cookieSavedArticles + ',' + articleId;
			setCookie( this.cookieName, cookieSavedArticles, this.cookieDuration );
			cookieSavedArticles = this._getArticles();
			if( cookieSavedArticles == null || cookieSavedArticles.length == 0 )
				return 3;
			return 1;
		}
		else
		{
			return 0;
		}

		return 0;
	},
	
	// delete a stored article from cookie
	_removeArticle:function( articleId )
	{
        var cookieSavedArticles = this._getArticles();
		var savedArticles = cookieSavedArticles.split(",");
		var newCookie = "";
		var isArray = articleId.constructor == Array;
		
		// iterate through array to find the id
		for( i = 0; i < savedArticles.length; i++ )
		{
            savedArticleData = savedArticles[i].split("@");
            savedArticleId = savedArticleData[0];
            var keep = true;
            if( isArray )
            {
            	for( var aid in articleId )
            	{
            		if( savedArticleId == articleId[aid] )
            		{
            			keep = false;
            			break;
            		}
            	}
            }
            else
            {
            	keep = savedArticleId != articleId;
            }
			if( keep )
			{
                newCookie = newCookie.length == 0 ? savedArticles[i] : newCookie + ',' + savedArticles[i];
			}
		}
		setCookie( this.cookieName, newCookie, this.cookieDuration );
	},
	
	_getArticles:function()
	{
		return getCookie( this.cookieName, "" );
	},
	
	saveArticle:function( articleId )
	{
		var error = this._addArticle( articleId );
		if( error == 0 )
		{
			this.showMessage( this.textNoteAlreadySaved );
		}
		else
		if( error == 1 )
		{
			this.showMessage( this.textNoteSaved );
		}
		else
		if( error == 2 )
		{
			this.showMessage( this.textMaxArticles );
		}
		else
		if( error == 3 )
		{
			this.showMessage( this.textCookiesDisabled );
		}
		return false;
	},

	update:function()
	{
		var parameterList = "";
		var articleIdList = this._getArticles();
		parameterList = appendUrlParameter( parameterList, "ajax", "notepad" );
		parameterList = appendUrlParameter( parameterList, "sectionSelect", this.sectionSelect );
		parameterList = appendUrlParameter( parameterList, "sortType", this.sortType );
		parameterList = appendUrlParameter( parameterList, "sortOrder", this.sortOrder );
		parameterList = appendUrlParameter( parameterList, "page", this.page );
		parameterList = appendUrlParameter( parameterList, "articleIdList", articleIdList );

		runRequest( this.savedArticleListId, parameterList );
	},
	
	// select all articles
	selectAll:function()
	{
		var selected = document.getElementById(this.notepadSelectAllId).checked;
	    var listEl = document.getElementsByName(this.notepadArticleId);
		for( var childElNo = 0; childElNo < listEl.length; childElNo++ )
		{
			listEl[childElNo].checked = selected;
		}
	},
	
	deleteArticle:function( articleId )
	{
		this._removeArticle( articleId );
		this.update();
	},
	
	// delete all selected articles
	deleteAll:function()
	{
		var articleIdList = new Array();
	    var listEl = document.getElementsByName(this.notepadArticleId);
		for( var childElNo = 0; childElNo < listEl.length; childElNo++ )
		{
			if( listEl[childElNo].checked )
			{
				var articleId = listEl[childElNo].id.substr(14);
				articleIdList[articleIdList.length] = articleId;
			}
		}
		if( articleIdList.length > 0 )
		{
			this.deleteArticle( articleIdList );
		}
	},
	
	// select a section to display
	selectSection:function( sectionId )
	{
		this.sectionSelect = sectionId;
		this.update();
	},
	
	setSortMethod:function( type, order )
	{
		this.sortType = type;
		this.sortOrder = order;
		this.update();
	},
	
	setPage:function( page )
	{
		this.page = page;
		this.update();
	},
	
	showMessage:function( message )
	{
		showArticleMessage( this.articleMessageId, message );
	}
	
};

/* ---- imagegallery ---- */

// image gallery popup
function openSlideshow( url )
{
  window.open( 
    url,
    'slideshow',
    'menubar=no, toolbar=no, status=no, width=520,height=660, scrollbars=yes, resizable=no' 
    );
	
} // openSlideshow


var slideshowPage = null;
function switchSlideshow( boxId, page, pageSwitch )
{
	switchOneImage( boxId + "_" + page, boxId + "_" + pageSwitch );
	slideshowPage = pageSwitch;
	try
	{
		getCounters();
	}
	catch(e){}
	return false;
} // switchSlideshow


function switchOneImage( currentId, nextId )
{
	var currentEl = document.getElementById( currentId );
	var nextEl = document.getElementById( nextId );

	setImageVisible( currentEl, false );
	setImageVisible( nextEl, true );
  
} // switchOneImage


function setImageVisible( element, visible )
{
	if( element )
	{
		var classes = element.className;
		classes = classes.replace("hidden","");
		if( visible === false )
			classes += " hidden";
		classes = trim(classes);
		element.className = classes;
	} // if
} // setImageVisible



/*
JavaScript functions for text gallery module
*/

function TextGallery(galleryId, messages, displayRandom)
{
    if(arguments.length)
    {
        this.initialize(galleryId, messages, displayRandom);
    } 
}

TextGallery.prototype =
{
    galleryId: 0,
    sprueche: null,
    positiontextgall: -1,
    
    initialize:function(galleryId, messages, displayRandom)
    {
        if(displayRandom)
        {
            messages = this.randomize_array(messages);
        }
        
        this.galleryId = galleryId;
        this.sprueche = messages;

        var url =location.search;
        var i;
        for ( i=0; i<url.length; i++ ) {
          var buchstabe = url.charAt( i );
          if ( url.substr( i, 13 ) == '?Seitenindex=' ) {
            this.positiontextgall = parseInt( url.charAt( i+13 ) );
            if(url.charAt(i+14)!='&' ) {
              this.positiontextgall=this.positiontextgall+""+url.charAt(i+14)-2;
            }
            break;
          }
        }
        
        this.next();
    },
   
    GetRandom:function( min, max ) {
      if( min > max ) {
        return( -1 );
      }
      if( min == max ) {
        return( min );
      }
      var r = parseInt( Math.random() * ( max+1 ) );
      return( r + min <= max ? r + min : r );
    },
    
    randomize_array:function(randarray) {
      var maximus=randarray.length-1;
    
      for (i=0;i<maximus;i++){
        d=i;
        rando=this.GetRandom(1,maximus);
        zwi=randarray[rando];
        randarray[rando]=randarray[i];
        randarray[i]=zwi;
      }
      return randarray;
    },
    
    next:function()
    {
        this.spruechewahl(1);
    },
    
    back:function()
    {
        this.spruechewahl(-1);
    },
    
    spruechewahl:function(type) {
        this.positiontextgall += type;
        if(this.positiontextgall<0) {
            this.positiontextgall=this.sprueche.length-1;
        }
        if(this.positiontextgall>(this.sprueche.length-1)) {
            this.positiontextgall=0;
        }
        document.getElementById('fullimage_indextextgall'+this.galleryId).innerHTML =(this.positiontextgall+1)+" von " +this.sprueche.length;
        document.getElementById('sprucharea'+this.galleryId).innerHTML=this.sprueche[this.positiontextgall]+'<br>&nbsp;';
        
        try
        {
            getCounters();
        }
        catch(e){}
        return false;
    }
}

