Event.observe(window, 'load', function() {
  if(!$('subnavi')) { return; }
	// $('subnavi').getElementsByClassName('current_page_parent').each(function(el) {
 $$('#subnavi li.current_page_parent').each(function(el) { 	
	 el.parentNode.parentNode.className = 'current_page_parent'; 
	});
});

/*******************************************************************************************************
 * shadower.js
 * Author: Erik Rasmussen
 * Email: erikwordpressplugins -at- gmail
 * Info: http://www.erik-rasmussen.com/blog/2006/12/04/the-shadower-realistic-drop-shadows-in-javascript/
 *******************************************************************************************************/
var Shadower =
{
	shadow: function(element)
	{
		element = $(element);
		var options = Object.extend(
		{
			distance: 8,
			angle: 130,
			opacity: 0.7,
			nestedShadows: 4,
			color: '#000000'
		}, arguments[1] || {});
		var parent = element.parentNode;
		if (!element.shadowZIndex)
		{
			if (element.style.position != 'absolute')
			{
				var placeHolder = element.cloneNode(true);
				placeHolder.id = null;
				parent.insertBefore(placeHolder, element);
				Position.absolutize(element);
				Position.clone(placeHolder, element);
				element.style.margin = '0';
				placeHolder.style.visibility = 'hidden';
			}
			element.shadowZIndex = new Number(element.style.zIndex ? element.style.zIndex : 1);
			element.style.zIndex = element.shadowZIndex + options.nestedShadows;
		}
		if (arguments[2])  // force recreate
			this.deshadow(element);
		// create shadows
		if (!element.shadows)
		{
			element.shadows = new Array(options.nestedShadows);
			for (var i = 0; i < options.nestedShadows; i++)
			{
				var shadow = document.createElement('div');
				Element.hide(shadow);
				shadow.appendChild(document.createTextNode(' '));
				parent.appendChild(shadow);
				shadow.style.position = 'absolute';
				shadow.style.backgroundColor = options.color;
				Element.setOpacity(shadow, options.opacity / options.nestedShadows);
				shadow.style.zIndex = element.shadowZIndex + i;
				element.shadows[i] = shadow;
			}
		}
		// position shadows
		Position.prepare();
		var dimensions = element.getDimensions();
		var offsets = Position.positionedOffset(element);
		var topOffset = -Math.cos(-options.angle * Math.PI / 180) * options.distance;
		var leftOffset = -Math.sin(-options.angle * Math.PI / 180) * options.distance;
		element.shadows.each(function(shadow, i)
		{
			shadow.style.top = (offsets[1] + topOffset + i) + 'px';
			shadow.style.left = (offsets[0] + leftOffset + i) + 'px';
			shadow.style.width = (element.offsetWidth - (2 * i)) + 'px';
			sh = element.offsetHeight - (2 * i);
			if(sh < 0) { sh = 0; }
			shadow.style.height = sh  + 'px';        
			Element.show(shadow);
		});
	},

	deshadow: function(element)
	{
		element = $(element);
		if (element.shadows)
		{
			element.shadows.each(Element.remove);
			element.shadows = null;
		}
	},

	shadowWithClass: function(cssClass, options)
	{
		$$('.' + cssClass).each(function(element)
		{
			this.shadow(element, options);
		}.bind(this));
	}
}

// check for prototype.js
if ((typeof Prototype == 'undefined') ||
    (typeof Element == 'undefined') ||
    (typeof Element.Methods == 'undefined') ||
    parseFloat(Prototype.Version.split(".")[0] + "." +
               Prototype.Version.split(".")[1]) < 1.5)
	throw("Shadower requires the Prototype JavaScript framework >= 1.5.0");

// the cross-browser opacity code below is borrowed from script.aculo.us
Element.getOpacity = function(element)
{
	var opacity;
	if (opacity = Element.getStyle(element, 'opacity'))
		return parseFloat(opacity);
	if (opacity = (Element.getStyle(element, 'filter') || '').match(/alpha\(opacity=(.*)\)/))
		if (opacity[1]) return parseFloat(opacity[1]) / 100;
	return 1.0;
}

Element.setOpacity = function(element, value)
{
	element = $(element);
	if (value == 1)
	{
		Element.setStyle(element, { opacity:
				(/Gecko/.test(navigator.userAgent) && !/Konqueror|Safari|KHTML/.test(navigator.userAgent)) ?
				0.999999 : null });
		if (/MSIE/.test(navigator.userAgent))
			Element.setStyle(element, {filter: Element.getStyle(element, 'filter').replace(/alpha\([^\)]*\)/gi, '')});
	}
	else
	{
		if (value < 0.00001) value = 0;
		Element.setStyle(element, {opacity: value});
		if (/MSIE/.test(navigator.userAgent))
			Element.setStyle(element,
			{ filter: Element.getStyle(element, 'filter').replace(/alpha\([^\)]*\)/gi, '') +
			          'alpha(opacity=' + value * 100 + ')' });
	}
}



Event.observe(window, 'load', function() {
  Shadower.shadowWithClass('homebox-shadow',{
  distance: 1,
  angle: 100,
  opacity: 0.7,
  nestedShadows: 4,
  color: '#000'
	}), 	
	
Shadower.shadowWithClass('profileh2',{
  distance: 4,
  angle: 150,
  opacity: 0.2,
  nestedShadows: 4,
  color: '#000'
	})
	
  Shadower.shadowWithClass('textbox-inner',{
  distance: 4,
  angle: 100,
  opacity: 0.9,
  nestedShadows: 4,
  color: '#ccc'
	}); 
});

/*****************************
 Layers f�r Informationen �ber den Image Maps 
********************************/

/*
 eike pierstorff july 2007
 eike@diebesteallerzeiten.de
*/

var infopops = {
 
 init:function(oHolder,iMap) {
	if(!$(oHolder) || !$(iMap)) { return; }	 	
	oH = $(oHolder);
	infopops.assignPops();
 },
 
 movePop:function(e) {
  var tempX = 0;
  var tempY = 0;
  var offset = 5;
	var iefix = 0;
	
	if (document.all) {
    tempX = event.clientX + document.body.scrollLeft;
    tempY = event.clientY + document.body.scrollTop;
		iefix = 330;
  } else {
    tempX = e.pageX;
    tempY = e.pageY;
  }

  if (tempX < 0){tempX = 0}
  if (tempY < 0){tempY = 0}

  oH.style.top  = (tempY + offset + iefix) + 'px';
  oH.style.left = (tempX + offset - 340) + 'px';
  infopops.displayPop( true );
 },

 displayPop:function( show ) {
  oH.style.display = show ? 'block' : 'none';
  oH.style.visibility = show ? 'visible' : 'hidden';
	return;
 },
 
 assignPops:function() {
	$$('area').each(function(ar) {
	 
	  $(ar).onmouseout = function() {
	   infopops.displayPop(  false );
	  }, 
	  $(ar).onclick = function(e) {
	   infopops.movePop(e);
	   infopops.makeinfoPop(this);
		 return false;
    },
	  $(ar).onmouseover = function(e) {
     infopops.movePop(e);
     infopops.makeinfoPop(this);
     return false;
    }			
	 });
	}, 
 
 makeinfoPop:function(obj) {
  if(!obj.href) { return; }
  htmlcode = '<iframe allowtransparency="true" src="' + obj.href + '" frameborder="0">';
  oH.innerHTML = htmlcode;
  infopops.displayPop( true );
  return false; 
 }
}

Event.observe(window, 'load', function() {
 infopops.init('info','infographik');
});

/**************************
 Other
******************************* */

// JavaScript for the bvk history module

/*
 containers:
 history-navi - holds an unordered list with the navigation for the history module
 history-content holds an unordered list with the history items as list items
 
 - first we assign ids to the history list items 
 - then we assign onclick events to the navigation items (so we need a matching number of links)
 */ 

 
var historymodule = {
 init:function() {
  // if history module isn't there don't bother
  if(!document.getElementById('history-navi')) { return; }
  if(!document.getElementById('history-content')) { return; }
    
  // n for navi
  n = document.getElementById('history-navi');
  // c for content
  c = document.getElementById('history-content');
  
  // loop through content elements to assign ids
  cElems = c.getElementsByTagName('li');
  hElems = n.getElementsByTagName('a');
  for(i=0;i<cElems.length;i++) {
   cElems[i].id = "pane"+i;
   if(i>0) { Element.hide(cElems[i]); }
   hElems[i].id = "lnk"+i;   
   Event.observe(hElems[i], 'click', historymodule.showhide.bindAsEventListener(hElems[i]));
  }
 } ,
 
 showhide:function() {
  // content element that should be shown
  currentpane = this.id.replace('lnk','pane');
  for(i=0;i<cElems.length;i++) {
  // hide unless it's the current id, then show
   if(cElems[i].id != currentpane) {	   
    Element.hide(cElems[i]);
	hElems[i].className="";
   } else {
    Element.show(cElems[i]);
	hElems[i].className = "active-history";	
   }
  }
 }
}

Event.observe(window, 'load', function() {
 historymodule.init();
});



/*
 Highlights a Post in the Q and A -Section
 09/27/07 rewritten with prototype
*/

var QandAmodule = {
 init:function() {
	if(!$('faqdiv')) { return; }
	// posts = $('faqdiv').getElementsByClassName('post');
	posts = $$('#faqdiv div.post');
	if(posts.size(posts) == 1) { 
	 return QandAmodule.showFirst(posts[0].id.replace('post-','')); 
	}
	posts.each(function(post) {
 	 Event.observe($(post.id.replace('post','h')), 'click', function() { QandAmodule.hideall(); $(post.id).addClassName('clickedpost'); Effect.Appear($(post.id.replace('post','storycontent')));  } );
   Event.observe($(post.id), 'mouseover', function(event) { $(post.id).addClassName('activepost');});  
   Event.observe($(post.id), 'mouseout', function(event) { $(post.id).removeClassName('activepost')}  );				 		 
	})
 },
 
 hideall:function() {
  posts.each(function(post) {
		 Element.hide($(post.id.replace('post','storycontent')));
		$(post.id).removeClassName('clickedpost');
		$(post.id).removeClassName('activepost');
  })
 },
 
 showFirst:function(postid) {
	$('post-'+postid).addClassName('clickedpost');
	Element.show($('storycontent-'+postid));	  
 }
}

Event.observe(window, 'load', function() {
 QandAmodule.init();
});

/*
 Private Equity:Select Box in Top Navi
*/ 

function client_redir(container, select) {
  $(container).innerHTML = client_redir_select();
	Event.observe($(select), 'change', function() {
   if($F(select)!="") {window.location.href = $F(select);}
  });
}

Event.observe(window, 'load', function() {
  client_redir('clientselect','clientselect-select');
});

function client_redir_select() {
  // Yeah right, I _could_ iterate through an array and fiddle around with the DOM
  str  = '<form action="index.html" method="post">';
  str += '<label for="clientselect-select">Private Equity:&nbsp;</label>';
  str += '<select id="clientselect-select" name="clientselect">';
  str += '<option value="">f&uuml;r ...</option>';	
  str += '<option value="/private-equity-und-ich/private-equity-und-sie/">f&uuml;r Sie</option>';	
  str += '<option value="/private-equity-und-ich/infos-fur-arbeitnehmer/">f&uuml;r Arbeitnehmer</option>';
  str += '<option value="/private-equity-und-ich/infos-fur-betriebsraete/">f&uuml;r Betriebsr&auml;te</option>';
  str += '<option value="/private-equity-und-ich/infos-fur-unternehmer/">f&uuml;r Unternehmer</option>';
  str += '<option value="/private-equity-und-ich/infos-fur-politiker/">f&uuml;r Politiker</option>';	
  str += '<option value="/private-equity-und-ich/private-equity-fur-anleger/">f&uuml;r Anleger</option>';
  str += '<option value="/private-equity-und-ich/private-equity-fur-wissenschaftler/">f&uuml;r Wissenschaftler</option>'; 
  str += '</select>';
  str += '</form>';
	return str;
}




/*
 This colors the Portfolio Tables
*/
/*
function alternatecolors() {
 if(!$('portfolio')) { return; }
 rows = $$('#portfolio tr');
 l = rows.length;
 for(i=1;i<l;i=i+2) {
	$(rows[i]).setStyle( {backgroundColor:'#FBFBF9'})
 }
 cells = $$('#portfolio td');
 l2 = cells.length;
 for(i=0;i<l2;i=i+5) {
	$(cells[i]).setStyle( {borderLeft:'5px solid #D4E4EB'})
 } 
}
*/

function alternatecolors() {
 if(!$('portfolio')) { return; }
 rows = $$('#portfolio tr');
 i = 0;
 rows.each(function(e) {
  if(!$(e).hasClassName('no-format')) {
	 if((i%2) == 0) { $(e).setStyle( {backgroundColor:'#FBFBF9'}) }
	 cells = $(e).getElementsByTagName('td');
   $(cells[0]).setStyle( {borderLeft:'5px solid #D4E4EB'})
	 i++;
	}
 }); 
}


Event.observe(window, 'load', function() {
 alternatecolors();
});



/*
 this assigns a class to a list item depending on the title attrib  of the contained href
 this is called from inside the page
*/ 

function stoopidhighlight(mytitle,isparent) {
if(!document.getElementById('subnavi')) { return; }	
sn = document.getElementById('subnavi');
hrefAr = sn.getElementsByTagName('a');
for(i=0;i<hrefAr.length;i++) {
  if(hrefAr[i].title==mytitle) {
   if(isparent) {
	  hrefAr[i].parentNode.className = "page_item current_page_parent";
	 } else {
	  hrefAr[i].parentNode.className = "page_item current_page_item";
	 }  
  }
 }	
}
 



