// nodomws.js
/**
 * http://www.mozilla.org/docs/dom/technote/whitespace/nodomws.js
 * Throughout, whitespace is defined as one of the characters
 *  "\t" TAB \u0009
 *  "\n" LF  \u000A
 *  "\r" CR  \u000D
 *  " "  SPC \u0020
 *
 * This does not use Javascript's "\s" because that includes non-breaking
 * spaces (and also some other characters).
 */


/**
 * Determine whether a node's text content is entirely whitespace.
 *
 * @param nod  A node implementing the |CharacterData| interface (i.e.,
 *             a |Text|, |Comment|, or |CDATASection| node
 * @return     True if all of the text content of |nod| is whitespace,
 *             otherwise false.
 */
function is_all_ws( nod )
{
  // Use ECMA-262 Edition 3 String and RegExp features
  return !(/[^\t\n\r ]/.test(nod.data));
}


/**
 * Determine if a node should be ignored by the iterator functions.
 *
 * @param nod  An object implementing the DOM1 |Node| interface.
 * @return     true if the node is:
 *                1) A |Text| node that is all whitespace
 *                2) A |Comment| node
 *             and otherwise false.
 */

function is_ignorable( nod )
{
  return ( nod.nodeType == 8) || // A comment node
         ( (nod.nodeType == 3) && is_all_ws(nod) ); // a text node, all ws
}

/**
 * Version of |previousSibling| that skips nodes that are entirely
 * whitespace or comments.  (Normally |previousSibling| is a property
 * of all DOM nodes that gives the sibling node, the node that is
 * a child of the same parent, that occurs immediately before the
 * reference node.)
 *
 * @param sib  The reference node.
 * @return     Either:
 *               1) The closest previous sibling to |sib| that is not
 *                  ignorable according to |is_ignorable|, or
 *               2) null if no such node exists.
 */
function node_before( sib )
{
  while ((sib = sib.previousSibling)) {
    if (!is_ignorable(sib)) return sib;
  }
  return null;
}

/**
 * Version of |nextSibling| that skips nodes that are entirely
 * whitespace or comments.
 *
 * @param sib  The reference node.
 * @return     Either:
 *               1) The closest next sibling to |sib| that is not
 *                  ignorable according to |is_ignorable|, or
 *               2) null if no such node exists.
 */
function node_after( sib )
{
  while ((sib = sib.nextSibling)) {
    if (!is_ignorable(sib)) return sib;
  }
  return null;
}

/**
 * Version of |lastChild| that skips nodes that are entirely
 * whitespace or comments.  (Normally |lastChild| is a property
 * of all DOM nodes that gives the last of the nodes contained
 * directly in the reference node.)
 *
 * @param sib  The reference node.
 * @return     Either:
 *               1) The last child of |sib| that is not
 *                  ignorable according to |is_ignorable|, or
 *               2) null if no such node exists.
 */
function last_child( par )
{
  var res=par.lastChild;
  while (res) {
    if (!is_ignorable(res)) return res;
    res = res.previousSibling;
  }
  return null;
}

/**
 * Version of |firstChild| that skips nodes that are entirely
 * whitespace and comments.
 *
 * @param sib  The reference node.
 * @return     Either:
 *               1) The first child of |sib| that is not
 *                  ignorable according to |is_ignorable|, or
 *               2) null if no such node exists.
 */
function first_child( par )
{
  var res=par.firstChild;
  while (res) {
    if (!is_ignorable(res)) return res;
    res = res.nextSibling;
  }
  return null;
}

/**
 * Version of |data| that doesn't include whitespace at the beginning
 * and end and normalizes all whitespace to a single space.  (Normally
 * |data| is a property of text nodes that gives the text of the node.)
 *
 * @param txt  The text node whose data should be returned
 * @return     A string giving the contents of the text node with
 *             whitespace collapsed.
 */
function data_of( txt )
{
  var data = txt.data;
  // Use ECMA-262 Edition 3 String and RegExp features
  data = data.replace(/[\t\n\r ]+/g, " ");
  if (data.charAt(0) == " ")
    data = data.substring(1, data.length);
  if (data.charAt(data.length - 1) == " ")
    data = data.substring(0, data.length - 1);
  return data;
}


// common.js
function decryptlink(){
	var url='';
	for (i=0; i<arguments.length; i++){
		url = url + arguments[i];
	}
	window.open( url, '_blank' );	
}

/* cookie scripts */
function GetCookieParam(param){
	var p='';
	p=document.cookie;
	i=p.indexOf(param+'=');
	if (i>=0) {
		p=p.substr(i);
		i=p.indexOf(';');
		if (i>=0) p=p.substr(0,i);
		i=p.indexOf('=');
		if (i>=0) p=p.substr(i+1);
		return p;
	}
	else return '';
}

//if (!document.cookie) {
if (document.cookie.indexOf('source=') < 0){
	var ref=document.referrer;
	if (ref=="") {
		ref=window.location.href;
	}
	window.document.cookie = "source=" + ref + "; path=/; domain="+window.location.host+";";
}

function isDocOpinionSet(documentID) {
	return (GetCookieParam( "opDocs" ).indexOf(documentID)>=0);
}

/* img script */

function img_act(imgName,obj) {
	if (obj.src) {
		obj.src=eval(imgName+".src");
	} else if (document[obj]) {
		document[obj].src=eval(imgName+".src");
	}
}

/* navigation scripts START */
function foldNav(obj){
	if (is_ignorable( obj ) )
		obj = obj.parentNode
	if ( obj.className.substr(obj.className.length-1, 1) == "R" ) {
		obj.className = obj.className.substr(0, obj.className.length-1);
		try {
			if (node_after(obj.parentNode).id.indexOf("_container") > -1){
				node_after(obj.parentNode).style.display = "none";
			}
		} catch (ex) {
			// nothing
		}
	} else {
		obj.className += "R";
		try {
			if (node_after(obj.parentNode).id.indexOf("_container") > -1){
				node_after(obj.parentNode).style.display = "block";
			}
		} catch (ex) {
			// nothing
		}
	}
}



function setNav(navID){
	refLayer = document.getElementById(navID);
	if (refLayer.firstChild.className.substr(refLayer.firstChild.className.length-1, 1) != "R"){
		refLayer.firstChild.className += "R";
		refLayer.firstChild.style.display = "block";
	}
	if ( refLayer.parentNode.id.indexOf("_container") > -1 ){
		refLayer.parentNode.style.display = "block";
		var prevSib = node_before(refLayer.parentNode);
		if (prevSib.firstChild.className.substr(prevSib.firstChild.className.length-1, 1) != "R"){
			prevSib.firstChild.className += "R";
		}
		foldNav(refLayer.parentNode.firstChild, 1);
	}
	try{
		if (node_after(refLayer).id.indexOf("_container") > -1 && node_after(refLayer).style.display == "none") {
			node_after(refLayer).style.display = "block"
		}
	} catch (ex){
		// nothing
	}
	if (refLayer.parentNode.parentNode.id != "dvContent"){
		setNav(node_before(refLayer.parentNode).id);
	}
}

/* navigation scripts END */


/* event scripts START */

function addEvent(elm, evType, fn, useCapture) {
	if (elm.addEventListener) {
		elm.addEventListener(evType, fn, useCapture);
		return true;
	}
	else if (elm.attachEvent) {
		var r = elm.attachEvent('on' + evType, fn);
		return r;
	}
	else {
		elm['on' + evType] = fn;
	}
}

function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	}
	else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

/* event scripts END */




/* teaserimage link */

function teaserImageLink(url){
	if (ie){
		window.open(url, "_self");
	}
}

// find position x and y
function findPosX(obj){
	var curleft = 0;
	if (obj.offsetParent){
		while (obj.offsetParent){
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}
function findPosY(obj){
	var curtop = 0;
	if (obj.offsetParent){
		while (obj.offsetParent){
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}



function printIt(){
	if (window.print) {
		window.print();
	} else {
		var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
		document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
		WebBrowser1.ExecWB(6, 2);	//Use a 1 vs. a 2 for a prompting dialog box WebBrowser1.outerHTML = "";
	}
}


// sticky navigation scripts START
var menu, pos, temp;
var theTop = 0;
var old = theTop;

function initMoveMenu() {
	if( document.getElementById("dvToolsInner") ){
		menu = $('dvToolsInner');
		movemenu();
	}
}

function movemenu(){
	if (window.innerHeight){
		pos = window.pageYOffset;
	}else if (document.documentElement && document.documentElement.scrollTop){
		pos = document.documentElement.scrollTop;
	}else if (document.body){
		pos = document.body.scrollTop;
	}

	if (pos < theTop){
		pos = theTop;
	}else{
		pos += theTop;
	}
	menu.style.top = pos + "px";
	temp = setTimeout('movemenu()',500);
}
// sticky navigation scripts END


addLoadEvent( initMoveMenu );


function trim(s) {
	return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
}


/* default value des suchfeldes setzen / ausblenden */
function clearSearchInput( defaultText, obj ) {
	if ( obj.value == defaultText )
		obj.value = "";
}
function setSearchInput( defaultText, obj ) {
	if ( obj.value == "")
		obj.value = defaultText;
}

function GetParam(param){
	var p='';
	p=window.location.search;
	i=p.indexOf('&'+param);
	if (i>0) {
		p=p.substr(i+1);
		i=p.indexOf('&');
		if (i>0) p=p.substr(0,i);
		i=p.indexOf('=');
		if (i>0) p=p.substr(i+1);
		i=p.indexOf('#');
		if (i>0) p=p.substr(0,i);
		return decodeURIComponent(p);
	}
	else return '';
}


/* validierung der einfachen suche */
function chkFOsearch( defaultText, param ){
	if ( $F("Tsearch") == defaultText || checkText ($("Tsearch"), 'Please enter a search term!') == false ){
		alert('Please enter a search term!')
		$("Tsearch").focus();
		return false;
	} else {
		var db = param;
		if (param != '' && param != null ){
			db = param;
		} else {
			db = dbPath;
		}
		window.location.href = '/' + dbPath + '/search?SearchView&Query=' + encodeURIComponent( document.FOsearch.Tsearch.value ) + '&Count=10&Start=1&SearchFuzzy=1&SearchMax=0&SearchWv=1&SearchOrder=3';
	}
}


/* validierung - hilfsfunktionen */

function checkText(FOfield, ERRtext){
	if (!FOfield.value){
		alert(ERRtext);
		FOfield.focus();
		return false;
	} else {
		return true;
	}
}

function checkTextarea(FOfield, ERRtext, FOfieldlength){
	if (FOfield.value.length > FOfieldlength){
		alert(ERRtext + FOfieldlength);
		FOfield.focus();
		return false;
	} else {
		return true;
	}
}

function checkList(fname,ftext){
	if (!fname.options[fname.selectedIndex].value || fname.options[fname.selectedIndex].value=="#"){
		alert(ftext);
		fname.focus();
		return false;
	} else {
		return true;
	}
}

function checkCheckbox(FOfield, ERRtext){
	if (!FOfield.checked == true){
		alert(ERRtext);
		FOfield.focus();
		return false;
	} else {
		return true;
	}
}

function checkRadio(FOfield, ERRtext){
	retVal = false;
	for (var i=0;i<FOfield.length;i++){
		if (FOfield[i].checked==true)
			retVal = true
	}
	if (retVal == false){
		alert(ERRtext);
		FOfield[0].focus();
	}
	return retVal;
}

function checkEmail(FOfield, ERRtext){
	var x = FOfield.value;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (!filter.test(x)){
		alert(ERRtext);
		FOfield.focus();
		return false;
	} else {
		return true;
	}
}

function checkEmailList(FOfield, arrayValue, ERRtext){
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (!filter.test(arrayValue)){
		alert(ERRtext);
		FOfield.focus();
		return false;
	} else {
		return true;
	}
}

function checkEmailSemicolon(FOfield, ERRtext){
	if (FOfield.value.indexOf(";") != -1){
		alert(ERRtext);
		FOfield.focus();
		return false;
	} else {
		return true;
	}
}

function checkUrl(FOfield, ERRtext){
	var x = FOfield.value;
	var filter  = /^http(s)?:\/\//;
	if (!filter.test(x)){
		alert(ERRtext);
		FOfield.focus();
		return false;
	} else {
		return true;
	}
}

function chkDate(FOfield, ERRtext){
	if (checkValidDate(FOfield.value) == false){
		alert(ERRtext);
		FOfield.focus();
		return false;
	} else {
		return true;
	}
}

function isDigit(theDigit){
	var digitArray = new Array('0','1','2','3','4','5','6','7','8','9'),j;
	for (j = 0; j < digitArray.length; j++)
		if (theDigit == digitArray[j])
			return true
	return false 
}

function isPositiveInteger(theString){
	var theData = new String(theString);
	if (!isDigit(theData.charAt(0)))
		if (!(theData.charAt(0)== '+'))
			return false
	
	for (var i = 1; i < theData.length; i++)
		if (!isDigit(theData.charAt(i)))
			return false
	return true 
}

function isDate(s){
	// datum in tag, monat, jahr zerlegen
	var a1=s.split(".");
	var e=true;
	// test auf tag UND monat UND jahr
	if (a1.length!=3)
		e=false
	else{
		if (isPositiveInteger(a1[0]) && isPositiveInteger(a1[1]) && isPositiveInteger(a1[2])){
			var d=a1[0];
			var m=a1[1];
			var y=a1[2];
			if (((e) && (y<1800)||y.length>4))
				e=false
			
			if (e){
				v=new Date(m+"/"+d+"/"+y);
				if (v.getMonth()!=m-1)
					e=false
			}
		}else
			e=false
	}
	return e;
}

function checkValidDate(v){
	if (!isDate(v))
		return false
	else
		return true
}





// XHR.js
/***************************************/
/*                                     */
/* scripts using AJAX                  */
/* (XMLHttpRequest)                    */
/*                                     */
/***************************************/


/* submit form */
function submitForm(p,f,l){
	$("dvPopupWait").style.display = "block";
	$("dvBtnSubmit").innerHTML = "<img src=\"/benecom/files_p.nsf/Lookup/waiting/$file/waiting.gif\" alt=\"\">";
//	var url = "/"+p+"/form.html?OpenForm&Seq=1&form="+f+"&ie="+ie+"&src="+encodeURIComponent(GetCookieParam('source'));
	var url = "/"+mainPath+"/form.html?OpenForm&Seq=1&form="+f+"&ie="+ie+"&src="+encodeURIComponent(GetCookieParam('source'));
	var postBdy = Form.serialize(f);
	var ajax = new Ajax.Request(
		url,
		{
			  method:"post"
			, postBody: postBdy
			, contentType: "application/x-www-form-urlencoded"
			, onComplete: showFormResponse
		}
	);
	function showFormResponse(originalRequest){
		if ( f=="FOApplication" && originalRequest.responseText.indexOf("inputError") > -1 ) {
			$("dvApplicationWindow").innerHTML = originalRequest.responseText;

		} else if ( f=="FOApplication" && originalRequest.responseText.indexOf("save application") > -1 ) {
//			$("dvCover").style.display = "none";
//			setOpacity();
			document.FOApplication.submit();
			pageTracker._trackPageview("/forms/success/" + f + "/" + l);

		} else if ( f=="FOApplication" ) {
			$("dvCover").style.display = "none";
			$("dvPopup").innerHTML = originalRequest.responseText;
			setOpacity();
			openApplication("/"+p,l);

		} else if ( f=="FOPostings" && originalRequest.responseText.indexOf("inputError") > 0 ) {
			$("dvPopup").innerHTML = originalRequest.responseText;
			Recaptcha.create("6LfzXgIAAAAAAH_opGwDcbpmTyFzPv8eLOR-vC3v", "recaptcha", {
				theme: "custom",
				lang: l,
				tabindex: 5
			});

		
 		} else {
			$("dvPopup").innerHTML = originalRequest.responseText;		 
		}

		window.setTimeout(
			function(){
		 		 if ( document.getElementsByClassName("inputError").length > 0 ) {
		 		 		document.getElementsByClassName("inputError")[0].focus();
		 		 } else {
						pageTracker._trackPageview("/forms/success/" + f + "/" + l);
				}
			}, 
		200)
	}
}

/* confirmation */
function confirmation(db,id,lang){
	$("dvPopupWait").style.display = "block";
	$("dvErrorTxt").innerHTML = $("dvErrorTxt").innerHTML + "<br><br><img src=\"/benecom/files_p.nsf/Lookup/waiting/$file/waiting.gif\" alt=\"\">";
	var targetContainer = $("dvPopup");
	var url = "/" + mainPath + "/confirm?OpenAgent&type=ajax";
	var pars = new Array();
	pars[0] = "id="+id;
	pars[1] = "ie="+ie;
	pars[2] = "src="+encodeURIComponent(GetCookieParam('source'));
	var params = pars.join("&");
	var ajax = new Ajax.Updater(
		targetContainer,
		url,
		{
			  method:"get"
			, parameters:params
			, onComplete:function(){
		 		pageTracker._trackPageview("/forms/confirmation/" + lang);
				}
		}
	);
}

// kontakt formular
function openKontakt(db,id,urlmod,lang,comment){
	waitingScreen();
	var targetContainer = $("dvPopup");
	var url = "/" + mainPath + "/AJAX?OpenAgent&code=0820";
	var pars = new Array();
	pars[0] = "id="+id;
	pars[1] = "mod="+urlmod;
	pars[2] = "ie="+ie;
	pars[3] = "src="+encodeURIComponent(GetCookieParam('source'));
	pars[4] = "comment="+encodeURIComponent(comment);
	var params = pars.join("&");
	var ajax = new Ajax.Updater(
		targetContainer,
		url,
		{
			  method:"get"
			, parameters:params
			, onComplete:function(){
				$("dvWaiting").style.display = "none";
		 		pageTracker._trackPageview("/forms/contact/" + lang);
				}
		}
	);
}

/* send this */
function openSendthis(id,urlmod,lang){
	waitingScreen();
	var targetContainer = $("dvPopup");
	var url = "/" + mainPath + "/AJAX?OpenAgent&code=0812";
	var pars = new Array();
	pars[0] = "id="+id;
	pars[1] = "mod="+urlmod;
	pars[2] = "ie="+ie;
	pars[3] = "src="+encodeURIComponent(GetCookieParam('source'));
	var params = pars.join("&");
	var ajax = new Ajax.Updater(
		targetContainer,
		url,
		{
			  method:"get"
			, parameters:params
			, onComplete:function(){
	 			$("dvWaiting").style.display = "none";
		 		pageTracker._trackPageview("/forms/sendthis/" + lang);
				}
		}
	);
}


/* postings */
function openPostings(id,urlmod,lang){
	waitingScreen();
	var targetContainer = $("dvPopup");
	var url = "/" + mainPath + "/AJAX?OpenAgent&code=3617";
	var pars = new Array();
	pars[0] = "id="+id;
	pars[1] = "mod="+urlmod;
	pars[2] = "ie="+ie;
	pars[3] = "src="+encodeURIComponent(GetCookieParam('source'));
	var params = pars.join("&");
	var ajax = new Ajax.Updater(
		targetContainer,
		url,
		{
			  method:"get"
			, parameters:params
			, onComplete:function(){
				Recaptcha.create("6LfzXgIAAAAAAH_opGwDcbpmTyFzPv8eLOR-vC3v", "recaptcha", {
					theme: "custom",
					lang: lang,
					tabindex: 5
				});
	 			$("dvWaiting").style.display = "none";
		 		pageTracker._trackPageview("/forms/comment/" + lang);
				}
		}
	);
}

function openModulePostings(id,urlmod,lang){
	var targetContainer = $("dvPostings");
	var url = "/" + mainPath + "/AJAX?OpenAgent&code=4557";
	var pars = new Array();
	pars[0] = "id="+id;
	pars[1] = "mod="+urlmod;
	pars[2] = "ie="+ie;
	pars[3] = "src="+encodeURIComponent(GetCookieParam('source'));
	var params = pars.join("&");
	var ajax = new Ajax.Updater(
		targetContainer,
		url,
		{
			  method:"get"
			, parameters:params
			, onComplete:function(){
				$("dvPostings").style.display = "block";
				}
		}
	);
}


/* subscribe newsletter */
function openSubscribe(db,list,lang,email){
	waitingScreen();
	var targetContainer = $("dvPopup");
	var url = "/" + mainPath + "/AJAX?OpenAgent&code=7879";
	var pars = new Array();
	pars[0] = "email="+email;
	pars[1] = "ie="+ie;
	pars[2] = "list="+list;
	pars[3] = "src="+encodeURIComponent(GetCookieParam('source'));
	var params = pars.join("&");
	var ajax = new Ajax.Updater(
		targetContainer,
		url,
		{
			  method:"get"
			, parameters:params
			, onComplete:function(){
	 			$("dvWaiting").style.display = "none";
		 		pageTracker._trackPageview("/forms/subscribe/" + list + "/" + lang );
				}
		}
	);
}



/* zoom article image */
function zoomArticleImg(img,obj){
	waitingScreen();
	pic = new Image();
	pic.onload = function(){
		zoomArticleImg2(img,obj);
	}
	pic.src = img;
}

function zoomArticleImg2(img,obj){
	pic = new Image();
	pic.src = img;
	
	if (window.innerHeight){
		winHeight = parseInt(window.innerHeight);
		winWidth = parseInt(window.innerWidth);
	} else {
		winHeight = parseInt(document.documentElement.clientHeight);
		winWidth = parseInt(document.documentElement.clientWidth);
	}

	if (window.innerHeight){
		posY = window.pageYOffset;
		posX = window.pageXOffset;
	} else if (document.documentElement && document.documentElement.scrollTop) {
		posY = document.documentElement.scrollTop;
		posX = document.documentElement.scrollLeft;
	} else if (document.body) {
		posY = document.body.scrollTop;
		posX = document.body.scrollLeft;
	}

	var offsetY = 38;
	var offsetX = 14;
	
	if (pic.height > 0) {
		winHeight -= (pic.height + offsetY);
		winWidth -= (pic.width + offsetX);
	} else {
		winHeight -= 300;
		winWidth -= 600;
	}
	
	winHeight = (winHeight - (winHeight%2))/2;
	winWidth = (winWidth - (winWidth%2))/2;
	if (winHeight < 10) winHeight = 10;
	if (winWidth < 10) winWidth = 10;
	posY += winHeight;
	posX += winWidth;


	$("dvPopup").innerHTML = "<div id=\"dvZoomArticleImg\"></div>";
	$("dvZoomArticleImg").style.left = posX + "px";
	$("dvZoomArticleImg").style.top = posY + "px";
	var targetContainer = $("dvZoomArticleImg");
	var url = "/" + mainPath + "/AJAX?OpenAgent&code=1620";
	var params = "img="+img;
	var ajax = new Ajax.Updater(
		targetContainer,
		url,
		{
			  method:"get"
			, parameters:params
			, onComplete:function(){
	 			$("dvWaiting").style.display = "none";
		 		pageTracker._trackPageview("/forms/zoom/" + img );
				}
		}
	);
}

/* Doc opinion */
function setDocOpinion(articleID,rating){
	if (document.cookie){
		var ExpiresOn = new Date();
		ExpiresOn.setTime(ExpiresOn.getTime() + 10000000000);
		document.cookie = "opDocs=" + articleID + GetCookieParam( "opDocs" ) + "; path=/; domain="+window.location.host+"; expires=" + ExpiresOn.toGMTString();

		$("dvCover").style.display = "none";
		var targetContainer = $("dvPopup");
		var url = "/" + mainPath + "/AJAX?OpenAgent&code=1208";
		var pars = new Array();
		pars[0] = "articleID="+articleID;
		pars[1] = "rating="+rating;
		var params = pars.join("&");
		var ajax = new Ajax.Updater(
			targetContainer,
			url,
			{
				  method:"get"
				, parameters:params
				, onComplete:closeDocOpinion
			}
		);
	} else {
		alert("You have to activate Cookies to rate articles.");
	}

	function closeDocOpinion(){
		setOpacity();
		$("dvToolsOpinionMeasure").style.display = "none"; // buttons ausblenden => kein erneutes voting
		window.setTimeout(
			function()
				{
					var targetContainer = $("dvToolsOpinionChart");
					var url = "/" + mainPath +"/AJAX?OpenAgent&code=1220";
					var pars = new Array();
					var params = "articleID="+articleID;
					var ajax = new Ajax.Updater(
						targetContainer,
						url,
						{
							  method:"get"
							, parameters:params
							, onComplete:clearOpacity
						}
					);
				},
				5000
		);
	}
}



/* AJAX windows */
function waitingScreen(){
	if (window.innerHeight){
		winHeight = parseInt(window.innerHeight);
		winWidth = parseInt(window.innerWidth);
	} else {
		winHeight = parseInt(document.documentElement.clientHeight);
		winWidth = parseInt(document.documentElement.clientWidth);
	}

	if (window.innerHeight){
		posY = window.pageYOffset;
		posX = window.pageXOffset;
	} else if (document.documentElement && document.documentElement.scrollTop) {
		posY = document.documentElement.scrollTop;
		posX = document.documentElement.scrollLeft;
	} else if (document.body) {
		posY = document.body.scrollTop;
		posX = document.body.scrollLeft;
	}

	winHeight -= 19;
	winWidth -= 220;
	winHeight = (winHeight - (winHeight%2))/2;
	winWidth = (winWidth - (winWidth%2))/2;
	if (winHeight < 10) winHeight = 10;
	if (winWidth < 10) winWidth = 10;
	posY += winHeight;
	posX += winWidth;


	$("dvWaiting").style.left = posX + "px";
	$("dvWaiting").style.top = posY + "px";
	$("dvWaiting").innerHTML = "<img src=\"/benecom/files_p.nsf/Lookup/waiting/$file/waiting.gif\" alt=\"\">";
	$("dvWaiting").style.display = "block";
	
	$("dvCover").style.display = "none";
	setOpacity();
}

function setOpacity() {
	var winHeight = 0;
	if (window.innerHeight)
		winHeight = parseInt(window.innerHeight);
	else
		winHeight = parseInt(document.documentElement.clientHeight);
	var cHeight = parseInt(findPosY($("dvFooter"))) + 40;
	if (cHeight < winHeight)
		cHeight = winHeight;
	$("dvCover").style.height = cHeight + "px";
	$("dvCover").style.display = "block";
	$("dvPopup").style.display = "block";

	window.setTimeout(
		 function(){
		 		 if ( document.getElementsByClassName("input").length > 0 ) {
		 		 	document.getElementsByClassName("input")[0].focus();
		 		 }
		 }, 
		 500
	)
}

function clearOpacity() {
	window.setTimeout
		(
			function()
				{
					$("dvPopup").style.display = "none";
					$("dvCover").style.display = "none";
					$("dvPopup").innerHTML = "";
				},
				500
		);
}


// DropDown.js
var ToggleImage = {

	create: function( imgElement, initialActiveState, activeImagePath, inactiveImagePath ) 
	{
		imgElement = $(imgElement);

		imgElement = Object.extend( imgElement, 
																{
																	srcActive: activeImagePath,
																	srcInactive: inactiveImagePath,
																	
																	setActive: function(active) 
																	{
																		this.src = (active) ? this.srcActive : this.srcInactive;
																	},
																	
																	isActive: function() 
																	{ 
																		return (this.src == this.srcActive); 
																	},
																	
																	toggleActive: function() 
																	{
																		this.setActive( !this.active );
																	}
																}
															);
			
		imgElement.setActive( initialActiveState );
	}
}


var DropDownList = {

	create: function( containerElement, options ) 
	{
		options = options || {};
		containerElement = $(containerElement);
		
		var newOptions = containerElement.options || {};
		newOptions.valueElement = $(options.valueElement) || $(containerElement.id + '.Value');
		newOptions.textElement = $(options.textElement) || $(containerElement.id + '.Text');
		newOptions.listElement = $(options.listElement) || $(containerElement.id + '.List');
		newOptions.toggleImageElement = $(options.toggleImageElement) || $(containerElement.id + '.ToggleImage');
		newOptions.toggleImageActivePath = options.toggleImageActivePath || newOptions.toggleImageActivePath || 'shim.gif';
		newOptions.toggleImageInactivePath = options.toggleImageInactivePath || newOptions.toggleImageInactivePath || 'shim.gif';
		newOptions.positionAbove = options.positionAbove || newOptions.positionAbove || false;
		
		// as a convenience, switch active/inactive src if positionAbove is true and no src are specified
		if (newOptions.positionAbove && (!options.toggleImageActivePath) && (!options.toggleImageInactivePath) )
		{
			var tmpSrc = newOptions.toggleImageActivePath;
			newOptions.toggleImageActivePath = newOptions.toggleImageInactivePath;
			newOptions.toggleImageInactivePath = tmpSrc;
		}
		
		var obj = Object.extend( containerElement, this );
		obj.options = newOptions;
		obj.collapse();
		return obj;
	},
	
	select: function( text, value, collapse )
	{
		this.options.valueElement.value = value;
		this.options.textElement.value = text;
		if (collapse) this.collapse();
	},
	
	expand: function()
	{
		this.options.toggleImageElement.src = this.options.toggleImageActivePath;
	
		this.options.listElement.show();
		Position.absolutize(this.options.listElement);
		
		var textElementDimensions = this.options.textElement.getDimensions();
		var listElementDimensions = this.options.listElement.getDimensions();

		var pos = Position.positionedOffset(this.options.textElement);

		if (this.options.positionAbove)
			this.options.listElement.style.top = (pos[1] - listElementDimensions.height) + "px";
		else
			this.options.listElement.style.top = (pos[1] + textElementDimensions.height) + "px";
			
		this.options.listElement.style.left = (pos[0]) + "px";
//		this.options.textElement.style.backgroundColor = "#fff";
	},
	
	collapse: function()
	{
		this.options.toggleImageElement.src = this.options.toggleImageInactivePath;	
		this.options.listElement.hide();		
//		this.options.textElement.style.backgroundColor = "#fff";
	},
	
	toggleExpansionState: function()
	{
		if (this.options.listElement.visible())
		{
			this.collapse();
		}
		else
		{
			this.expand();
		}
	}
}


//imgGallery.js

picScrollLefton = new Image();
picScrollLefton.src = "/loose-furniture/btnGalleryPreviousR.gif";
picScrollLeftoff = new Image();
picScrollLeftoff.src = "/loose-furniture/btnGalleryPrevious.gif";
picScrollRighton = new Image();
picScrollRighton.src = "/loose-furniture/btnGalleryNextR.gif";
picScrollRightoff = new Image();
picScrollRightoff.src = "/loose-furniture/btnGalleryNext.gif";
var mainHTML = "";
var lastIndexInnerHTML = "";
var lastIndex;

function showGalleryImage(obj, picGallery, docBU){
	if(lastIndexInnerHTML==""){
		lastIndexInnerHTML = $("GalleryThumb0").innerHTML;
	}
	
	if( $(obj).id=="GalleryThumb0" ){
		$("imgSource").innerHTML = mainHTML;
	} else {
		$("imgSource").innerHTML = "<img src=\"" + picGallery + "\" alt=\"" + docBU + "\">";
	}
	
	$("imgCaption").innerHTML = docBU + "&nbsp;"

	if($(lastIndex)==null){
		$("GalleryThumb0").innerHTML = lastIndexInnerHTML;
	} else {
		$(lastIndex).innerHTML = lastIndexInnerHTML;
	}

	lastIndexInnerHTML = $(obj).innerHTML;
	lastIndex = obj;
	
	$(obj).innerHTML = "<img src=\"/b-loose/files.nsf/Lookup/white/$file/white.gif\" height=\"21\" alt=\"\">"
}


function galleryScrollLeft() {
	var thumbsInnerLeft = $("dvGalleryThumbsInner").offsetLeft;
	var galleryLength = $("GalleryEnd").offsetLeft*-1;

	if ( thumbsInnerLeft > (galleryLength + 200) )
		$("dvGalleryThumbsInner").style.left = (thumbsInnerLeft - 34) + "px";
}


function galleryScrollRight() {
	var thumbsInnerLeft = $("dvGalleryThumbsInner").offsetLeft;
	if ( thumbsInnerLeft < 0 )
		$("dvGalleryThumbsInner").style.left = (thumbsInnerLeft + 34) + "px";
}

function showGalleryPreview (obj, picName, objName) {
	try {
		if (objName != ""){
			$("dvGalleryPreviewPic").innerHTML = "<img class=\"imgPreviewPic\" src=\"/benecom/files_p.nsf/Lookup/previewPlaceholder/$file/previewPlaceholder.gif\" height=\"120\" alt=\"" + objName + "\"><span id=\"spPreviewPic\">" + objName + "</span>";
		} else {
			$("dvGalleryPreviewPic").innerHTML = "<img class=\"imgPreviewPic\" src=\"/benecom/files_p.nsf/Lookup/previewPlaceholder/$file/previewPlaceholder.gif\" height=\"120\" alt=\"\">";
		}
		$("dvGalleryPreviewPic").firstChild.src = picName;
		var divX = findPosX(obj);
		var divY = findPosY(obj);
		var offsetX;
		var offsetY;

		var imgWidth = $("dvGalleryPreviewPic").firstChild.width;
		var imgHeight = $("dvGalleryPreviewPic").firstChild.height;

		// safari liefert andere werte fuer die bildbreite:
		// breite des originalbilds statt breite des gestauchten bildes
		if (safari){
			if (imgHeight > 120 ) {
				imgWidth = imgWidth * 120 / imgHeight;
				imgHeight = 120;
			}
		}

		$("dvGalleryPreviewPic").style.width = imgWidth + "px";
		$("dvGalleryPreviewPic").firstChild.style.left = "0px";
		$("dvGalleryPreviewPic").style.left = "0px";
		
		offsetY = imgHeight + 14;
		offsetX = ( imgWidth - ( imgWidth % 2 ) ) / 2 - 10;
				
		if (ie && navigator.userAgent.indexOf("MSIE 6")!=-1)
			offsetX -= parseInt(galleryDX);

		$("dvGalleryPreview").style.width = (imgWidth+6) + "px";
		$("dvGalleryPreview").style.top = (divY-offsetY) + "px";
		$("dvGalleryPreview").style.left = (divX-offsetX) + "px";
	} catch(ex) {
		// ignore
	}
}

function clearGalleryPreview() {
	$("dvGalleryPreview").style.left = "-5000px";
	$("dvGalleryPreview").style.top = "-2000px";
}


function initGallery(){
	mainHTML = $("imgSource").innerHTML;
	lastIndexInnerHTML = $("GalleryThumb0").innerHTML;
	$("GalleryThumb0").innerHTML = "<img src=\"/b-loose/files.nsf/Lookup/white/$file/white.gif\" height=\"21\" alt=\"\">";

	var defaultImg = GetParam( "img" );
	if (defaultImg != "" ) {
		var html = $(defaultImg).innerHTML;
		html = html.substring(html.indexOf('src=\"')+5, html.indexOf('>'));
		html = html.substring(0, html.indexOf('\"'));
		showGalleryImage( $(defaultImg), html, '');
	}
}


/* functins.js */
var $j = jQuery.noConflict();

$j(document).ready(function(){

/*add/remove navi*/
$j("ul li.main a").click(function () {
if ($j(this).parent().hasClass("active"))
{
$j(this).parent().removeClass("active");
}
else {
$j(this).parent().addClass("active"); 
}
if ($j(this).attr("href")=="#") {
return false;	
}
});
	

});
