if (location.pathname=='/') location='/index.htm';

function $(e) {if(typeof e=='string')return document.getElementById(e);else return e}

var menu={
	STEPS:10,
	opened:null,
	start:function(a) {
		var m=a.parentNode;
		if (m.opened) return;
		m.openTimer=self.setTimeout('menu.open($("'+m.id+'"))',300);
	},
	stop:function(a) {
		var m=a.parentNode;
		if (m.opened) return;
		if (!!m.openTimer) {
			self.clearTimeout(m.openTimer);
			m.openTimer=0;
		}
	},
	toggle:function(a) {
		menu.stop(a);
		var m=a.parentNode;
		if (m.opened) menu.close(m);
		else menu.open(m);
	},
	openDirectly:function(m) {
		if (m.opened) return;
		var ul=m.getElementsByTagName('UL')[0];
		ul.style.cssText='position:static;display:block';
		menu.opened=m;
		m.opened=true;
	},
	open:function(m, phase, steps, base) {
		if (m.opened) return;
		var ul=m.getElementsByTagName('UL')[0];
		if (phase==undefined) {
			if (!!menu.opened && m.id!=menu.opened.id) try {menu.close(menu.opened)}catch(e){}
			ul.style.cssText='position:absolute;top:-9999px;display:block';
			phase=menu.STEPS;
			steps=menu.STEPS;
			base=ul.clientHeight;
			ul.style.cssText='position:static;display:block;overflow:hidden';
		} else {
			phase--;
		}
		var h=Math.min(base,Math.floor(base*(Math.sin(((base-phase*base/steps)/base*180-90)*Math.PI/180)+1)/2));
		ul.style.height=h+'px';
		if (phase > 0) {
			self.setTimeout('menu.open($("'+m.id+'"), '+phase+', '+steps+', '+base+')', 30);
		}
		if (phase==0) {
			menu.opened=m;
			m.opened=true;
		}
	},
	close:function(m, phase, steps, base) {
		if (!m.opened) return;
		var ul=m.getElementsByTagName('UL')[0];
		if (phase==undefined) {
			ul.style.cssText='position:absolute;display:block';
			phase=menu.STEPS;
			steps=menu.STEPS;
			base=ul.clientHeight;
			ul.style.cssText='position:static;display:block;overflow:hidden';
		} else {
			phase--;
		}
		var h=base-Math.min(base,Math.floor(base*(Math.sin(((base-phase*base/steps)/base*180-90)*Math.PI/180)+1)/2));
		ul.style.height=h+'px';
		if (phase >= 0) {
			self.setTimeout('menu.close($("'+m.id+'"), '+phase+', '+steps+', '+base+')', 30);
		}
		if (phase==0) {
			ul.style.cssText='display:none;height:auto';
			m.opened=false;
		}
	},
	activate:function() {
		var a=$('navigation').getElementsByTagName('A');
		for (var i=0;i<a.length;i++) {
			if (a[i].href=='') {
				a[i].onmouseover=function(){menu.start(this)};
				a[i].onmouseout=function(){menu.stop(this)};
				a[i].onclick=function(){menu.toggle(this)};
			} else 
			if (a[i].href.lastIndexOf(location.pathname) > -1) {
				a[i].className='active';
				try {menu.openDirectly(a[i].parentNode.parentNode.parentNode);} catch(e) {}
			}
		}
	}
}

MAILTO='mail' + 'to:';
AT='@'; DOT='.';
DOMAIN='ferdinandea' + DOT + 'de';
function composeMail(elem) {
	if (!elem) return false;
	var mailAddr=elem.getAttribute('mailAddr');
	var mailDomain=elem.getAttribute('mailDomain');
	if (!mailDomain) mailDomain=DOMAIN;
	if (mailAddr && mailAddr!='') elem.setAttribute('href', MAILTO + mailAddr + AT + mailDomain, 'false');
	return true;
}



function alternateCells() {
	try {
		var cells=document.getElementsByTagName('td');
		var lastTable=null;
		var lastRow=null;
		var t=0;
		for (var i=0; i < cells.length; i++) {
			var table=cells[i].parentNode.parentNode.parentNode;
			var row=cells[i].parentNode;
			if (table != lastTable) {
				lastTable=table;
				t=0;
			}
			if (row != lastRow) {
				lastRow=row;
				t++;
			}
			if (table.className.indexOf('box') > -1 && table.className.indexOf('alternating') > -1) {
					cells[i].className=(t%2==1?'boxContent':'boxContent alternating');
			}
		}
	} catch(e) {}
}


function transformSemProg() {
	var prog=$('semprog');
	if (!prog) return;
	var dls=prog.getElementsByTagName('dl');
	var html=[]; 
	var nextProg=[];
	var threeNext=3;
	var link='';
	try {
		for (var l=0; l < dls.length; l++) {
			var dts=dls[l].getElementsByTagName('dt');
			var dds=dls[l].getElementsByTagName('dd');
			
			var jahr=parseInt(dls[l].getAttribute('Jahr'));
			var monat=parseInt(dls[l].getAttribute('Monat'));
			var monat2='&nbsp;';
			switch (monat) {
				case 01:monat2='Januar'; break;
				case 02:monat2='Februar'; break;
				case 03:monat2='März'; break;
				case 04:monat2='April'; break;
				case 05:monat2='Mai'; break;
				case 06:monat2='Juni'; break;
				case 07:monat2='Juli'; break;
				case 08:monat2='August'; break;
				case 09:monat2='September'; break;
				case 10:monat2='Oktober'; break;
				case 11:monat2='November'; break;
				case 12:monat2='Dezember'; break;
				case 0102:monat2='Januar/Februar'; break;
				case 0203:monat2='Februar/März'; break;
				case 0304:monat2='März/April'; break;
				case 0405:monat2='April/Mai'; break;
				case 0506:monat2='Mai/Juni'; break;
				case 0607:monat2='Juni/Juli'; break;
				case 0708:monat2='Juli/August'; break;
				case 0809:monat2='August/September'; break;
				case 0910:monat2='September/Oktober'; break;
				case 1011:monat2='Oktober/November'; break;
				case 1112:monat2='November/Dezember'; break;
				case 1201:monat2='Dezember/Januar'; break;
				case 99:monat2=dls[l].getAttribute('title'); break;
			}
			link+='<a href="#'+monat2+'">'+monat2+'</a>';
			
			var s='';
			s+='<div id="'+monat2+'" class="shadow" style="margin:10px 0px; width:100%">';
			s+='<table class="box alternating" cellspacing="0" cellpadding="0" width="100%" border="0">';
			s+='<thead><tr><th colspan="2">'+monat2+'</th></tr></thead><tbody>';
			for (var d=0; d < dts.length; d++) {
				if (monat > 100) monat = parseInt(monat / 100);
				var tag = parseInt(dts[d].getAttribute('Tag'));
				var datum = new Date();
				datum.setFullYear(jahr,monat-1,tag);
				var jetzt = new Date();
				if (jetzt <= datum && threeNext > 0 && monat != 99) {
					nextProg[nextProg.length] = {date:datum, when:dts[d].innerHTML, what:dds[d].innerHTML};
					threeNext--;
				}
				s+='<tr><td class="boxContent" width="25%">'+dts[d].innerHTML+'</td><td class="boxContent" width="75%">'+dds[d].innerHTML+'</td></tr>';
			}
			s+='</tbody></table></div>';
			html[html.length]=s;
		}
	} catch(e) {alert(e);}
	var buf=[];
	for (var h=0; h < html.length; h++) {
		buf.push('<p class="buttons">'+link+'</p>');
		buf.push(html[h]);
	}
	prog.innerHTML=buf.join('');
	top.nextProg=nextProg;
}

ABBR=[
	/c\.t\./g, 'cum tempore: mit Akademischer Viertelstunde, d.h. (ca.) eine Viertelstunde später als angegeben', 'c.t.',
	/s\.t\./g, 'sine tempore: ohne Akademischer Viertelstunde, d.h. pünktlich', 's.t.',
	/e\.v\./g, 'eine verehrliche: Ehrenbezeichnung für Verbindungen. Es entspricht in etwa dem &raquo;sehr geehrt&laquo; für Personen.', 'e.v.',
	/e\.s\.v\./g, 'eine sehr verehrliche: Ehrenbezeichnung für sehr alte Verbindungen. Es entspricht in etwa dem &raquo;sehr geehrt&laquo; für Personen.', 'e.s.v.',
	/\bBbr\b/g, 'Bundesbruder: ein Mitglied unserer Verbindung. So bezeichnen wir uns untereinander.', 'Bbr',
	/\bAH\b/g, 'Alter Herr: ein nicht mehr studierendes, im Beruf stehendes Mitglied', 'AH',
	/\bAHAH\b/g, 'Alte Herren: nicht mehr studierende, im Beruf stehende Mitglieder, Plural von AH', 'AHAH',
	/K\.D\.St\.V\./g, 'Katholische deutsche Studentenverbindung', 'K.D.St.V.',
	/convent/g, 'Mitgliederversammlung', 'convent',
	/Convent/g, 'Mitgliederversammlung', 'Convent',
	/kneipe/g, 'trad. studentische Feier', 'kneipe',
	/\(at\)/g, 'at', '@'
];

var doAbbreviate = true;

function addAbbrTooltips() {
	if (!doAbbreviate) return;
	var c=$('content');
	var s=c.innerHTML, i=0, IE=!!(window.attachEvent&&!window.opera);
	var tag=[IE?'<span class="abbr"':'<abbr', IE?'</span>':'</abbr>']
	while (i < ABBR.length) {
		s=s.replace(ABBR[i], tag[0]+' title="'+ABBR[i+1]+'">'+ABBR[i+2]+tag[1]);
		i+=3;
	}
	c.innerHTML=s;
}

function init() {
	menu.activate();
	try{document.title=document.getElementsByTagName('h1')[0].innerHTML;}catch(e){}
	addAbbrTooltips();
	transformSemProg();
	alternateCells();
}