// Bubbling verhindern
if (window.Node && Node.prototype && !Node.prototype.contains) {
	Node.prototype.contains = function (arg) {
		return !!(this.compareDocumentPosition(arg) & 16);
	};
}

// Formular focussiert?
function formfocus() {
	if ($('input').is(':focus') || $('textarea').is(':focus') || $('select').is(':focus')) {
		return true;
	}
	return false;
}


function randomString(i, numbers, limit) {
	if (numbers) {
		var chars = "";
		if (limit) {
			for (var x = 0; x <= limit; x++) {
				chars+= x;
			}
		} else {
			chars = "0123456789";
		}
	} else {
		var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
	}
	var string_length = i;
	var randomstring = '';
	for (var i=0; i<string_length; i++) {
		var rnum = Math.floor(Math.random() * chars.length);
		randomstring += chars.substring(rnum,rnum+1);
	}
	return(randomstring);
}

sitzung = cookie_lesen('sitzung');
if (!sitzung) {
	sitzung = randomString(20, true);
	cookie_schreiben('sitzung', sitzung, 60*60*24*1000, "04:00:00");
}

if (window.location.hostname == 'rechtsnetz.dejure.org') {
	window.location.hostname = 'dejure.org'
}
ie = (document.all)? true:false
ie = (navigator.appName.indexOf('Internet Explorer') >- 1)? true:false
ie6 = false;
ie7 = false;
ie8 = false;
if (ie == true && navigator.appVersion.indexOf('MSIE 7.0') > -1) {
	ie7 = true;
} else if (ie == true && navigator.appVersion.indexOf('MSIE 6') > -1) {
	ie6 = true;
} else if (ie == true && navigator.appVersion.indexOf('MSIE 8') > -1) {
	ie8 = true;
}
moz = (document.getElementById && !ie)
StrgShift = false

function vr2(a1, a2, gesetz) {
	var tip = ''
	if (a2 != 0) {
		tip = '<div class="tooltip_oben">'+pa[a2]+'</div>'
	}
	if (typeof gesetz == 'string') {
		var gesetzbuch = '<b>'+gesetz+'</b>'
	}
	else {
		var gesetzbuch = gb
	}
	var gliederung = gl[a1].replace(/>/,"&gt;")
	tip += '<div class="tooltip_unten">'+gesetzbuch+' &gt; '+gliederung+'</div>'
	Tip(tip)
}

function ttip(text, verzoegerung) {
	if (text == '') {
		return
	}
	Tip('<div class="tooltip_oben">'+text)
}

function TasteGedrueckt(Ereignis,taste) {
	if (formfocus()) {
		return;
	}
	e = Ereignis || self.event;
	if (e.keyCode == 16 || e.keyCode == 17) {
		StrgShift = true;
	} else {
		StrgShift = false;
	}
	var paragraph = document.getElementById('aufschlagenp');
	var suchfeld = document.getElementById('suchfeld');
	if (document.URL.indexOf("0BGB010801")>-1 || document.suchoptionen_belegt) return true
	tasteMac = 0
	zusatzMac = 0
	if (ie) {
		taste=event.keyCode
		Umschalttaste = event.shiftKey;
	}
	else if (moz) {
		taste=Ereignis.keyCode
		Umschalttaste = Ereignis.shiftKey
		ctrl = Ereignis.ctrlKey
		if (navigator.platform.indexOf("Mac") > -1) {
			tasteMac=Ereignis.charCode
			zusatzMac = Ereignis.keyCode
			taste = 0;
		}
	}
	else {
		return
	}
	ZPO850c = (window.gb && gb=="ZPO" && window.nach && nach=="850d")
	if (!window.tastenschutz && !ZPO850c) { // Tastaturnavigation zulässig
		if (!window.nach && window.norm_hier && norm_hier == 0) {
			nach = "/gesetze/" + gb + "/1"
		}
		if ((ie || moz) && ((taste>47 && taste<58) || (tasteMac>47 && tasteMac<58) || (taste>95 && taste<106) || taste == 107 || taste == 61 || taste==189 || taste==109 || tasteMac == 43 || tasteMac == 45) && !Umschalttaste && zusatzMac != 99) {
			if (paragraph) {
				paragraph.focus();
			} else if (suchfeld) {
				return;
				//suchfeld.focus();
			}
		}
		if (taste==13 && window.norm_hier) {
			if ((!document.parafeld || document.parafeld == 0) && window.nach && Gehezu()) {
				location.href=nach+".html"
			}
			else if (Gehezu()) {
				document.Paragraph.submit()
			}
		}
		else if (window.nach) {
			if ((taste==187 || taste==107 || taste==61 || tasteMac == 43) && (!moz || !ctrl)) location.href=nach+".html" // 61:Mozilla
			else if (window.vor && vor != 0 && (!moz || !ctrl) && (taste==189 || taste==109 || tasteMac == 45)) location.href=vor+".html"
		}
	}
}

function TastenichtGedrueckt(e) {
	e = e || self.event;
	StrgShift = false;
}

Array.prototype.inArray = function (value) {
	var i;
	for (i=0; i < this.length; i++) {
		if (this[i] === value) {
			return true;
		}
	}
	return false;
};

function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}

var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();
addEvent(window,'unload',EventCache.flush);

document.onkeydown = TasteGedrueckt
if (navigator.platform.indexOf("Mac") > -1) {
	document.onkeypress = TasteGedrueckt
}
document.onkeyup = TastenichtGedrueckt;

function httpr() {
	var http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			// zu dieser Zeile siehe weiter unten
		}
	}
	else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!http_request) {
		// Kann keine XMLHTTP-Instanz erzeugen
		return false;
	}
	else {
		return http_request
	}
}

function zgl(gb, bereich, r) {
	var hoehe = document.getElementById('neues_scroll').offsetHeight
	document.getElementById('neues_scroll').style.height = 'auto';
	if (ie && hoehe >= 250) {
		document.getElementById('neues_scroll').style.height = '250px';
	}
	laden_verzoegerung = window.setTimeout("document.getElementById('neues_scroll').innerHTML = '<div style=\"text-align:center; padding: "+parseInt(hoehe/2-8)+"px 0px; \"><img src=\"/jcg/laden.gif\"></div>'",500)
	nav_richtung=r

	http_request = httpr()
	http_request.onreadystatechange = gl_neu
	http_request.open('GET', '/cgi-bin/normennavigation?gb='+gb+'&bereich='+bereich+'&r='+r, true)
	http_request.send(null)
}

function gl_neu() {
	if (http_request.readyState == 4 && http_request.status == 200) {
		if (window.laden_verzoegerung) {
			window.clearTimeout(laden_verzoegerung)
		}
		document.getElementById('neues_scroll').innerHTML = http_request.responseText;
		document.getElementById('neues_scroll').scrollTop = (nav_richtung == 1 ? 0 : document.getElementById('weiter_unten').offsetTop)
		abschnittstitel();
	}
}

titel_anzeige = 0;
function abschnittstitel()
{
	if (document.getElementById('abschnittstitel')) {
		if (!document.getElementById('abschnittstitel_div')) {
			var titeldiv = document.createElement("div");
			titeldiv.setAttribute("id", "abschnittstitel_div");
			document.getElementById('aktuell').appendChild(titeldiv);
		}
		clearTimeout(titel_anzeige);
		var titel_elem = document.getElementById('abschnittstitel');
		var titel_div = document.getElementById('abschnittstitel_div');
		titel_div.innerHTML = titel_elem.innerHTML;
		titel_div.className = 'tooltip';
		titel_div.style.backgroundColor = '#fff';
		titel_div.style.fontWeight = 'bold';
		titel_div.style.position = 'absolute';
		titel_div.style.left = '0px';
		titel_div.style.width = '223px';
		titel_div.style.padding = '3px';
		titel_div.style.display = 'block';
		var posi = absTop(document.getElementById('neues'))-titel_div.offsetHeight-absTop(document.getElementById('aktuell'))+12;
		titel_div.style.top = posi+'px';
		titel_anzeige = window.setTimeout(function() {titel_div.style.display = 'none';}, 3000);
	}
}

function Suchoptionen(gesetz, im_gesetz) {
	if (document.getElementById("suchoptionen") && !document.suchoptionen_belegt && document.getElementById('suchoptionen').innerHTML == '') {
		document.getElementById("suchoptionen").innerHTML = '<br>&nbsp;&nbsp;<input type=radio name="Bereich" id="ueberall" checked value=""><label for="ueberall">überall<\/label>&nbsp;&nbsp;<span title="Suche auf aktuelles Gesetz beschränken"><input type=radio name="Bereich" id="aktuellesgesetz" value="'+gesetz+'"><label for="aktuellesgesetz">'+im_gesetz+'<\/label><\/span><\/span>'
	}
	document.suchoptionen_belegt = 1
}

if (typeof sitzung == "undefined") {
	sitzung = 1
}

function verlauf(link, normanzeige) {
	if (window.bez) bez = bez.replace(/§/g, "p")
	if (document.getElementById('verlauf')) {
		var verlauf = cookie_lesen("verlauf")
		if (verlauf == "-") {
			document.getElementById('verlauf').style.display = 'none';
			return
		}
		if (verlauf == '') {
			document.getElementById('verlauf').style.display = 'none';
		}
		if (sitzung == 1) {
			sitzung = cookie_lesen('sitzung');
		}
		var verlauf_neu = ""
		if (verlauf.indexOf("|") > -1) {
			var liste = new Array()
			var liste_i = new Array()
			if (window.gb && gb != '') {
				liste_i[bez + "|" + norm_hier + "|" + gb] = 1
			}
			var normen = verlauf.split(/\//)
			for (var i = 0; i < normen.length; i++) {
				var t = normen[i].split(/\|/)
				if (!liste_i[normen[i]] && t[2] != "0" && t[2] != "") {
					link = "<a href=\"/gesetze/" + t[2] + "/" + t[1] + ".html\">"
					if (t[1] == "0") {
						link = "<a href=\"/gesetze/" + t[2] + "\">"
						normanzeige = "Übersicht"
					}
					else if (t[1].match(/(Anhang|Anlage)/)) {
						t[1] = t[1].replace(/(Anhang|Anlage)([0-9]+)/, "$1&nbsp;$2")
						normanzeige = t[1]
					}
					else if (t[1].match(/Erwaegungsgruende/)) {
						t[1] = t[1].replace(/Erwaegungsgruende/, "Erwägungsgründe")
						normanzeige = t[1]
					}
					else {
						normanzeige = t[0].replace(/p/g, "§") + "&nbsp;" + t[1]
					}
					if (window.gb && t[2] == gb && t[1] != "0") {
						liste[liste.length] = link + normanzeige.replace(/_/g, '&nbsp;') + "</a>"
					}
					else {
						liste[liste.length] = link + normanzeige.replace(/_/g, '&nbsp;') + "&nbsp;" + gn(t[2]) + "</a>"
					}
					if (i > normen.length-10) {
						verlauf_neu += normen[i] + "/"
						liste_i[normen[i]] = 1
					}
				}
			}
			var ausgabe = "<a href=\"#\" class=\"close\" onclick=\"umschaltVerlauf(-1); return false;\" title=\"Verlauf deaktivieren\"></a><b>Bisher aufgeschlagen:</b><br />";
			ziel = (!document.getElementById('neues_scroll'))
			ausgabe = '<a href="#" class="plus" onclick="umschaltVerlauf('+ziel+'); return false;" title="Erweiterten Verlauf anzeigen"></a>' + ausgabe;
			liste.reverse()
			var ausgabe_l = liste.join("&nbsp;&middot; ")
			if (ausgabe_l != "") {
				document.getElementById('verlauf_inner').innerHTML = ausgabe+ausgabe_l
				document.getElementById('verlauf').style.display = 'block'
			}
			if (window.hoehe_alt) {
				document.getElementById('gesetzestext').style.height = hoehe_alt + 'px';
				document.getElementById('gesetzestext').style.minHeight = hoehe_alt + 'px';
			}
		}
		if (window.gb && gb != '') {
			verlauf_neu += bez + "|" + norm_hier + "|" + gb
			cookie_schreiben("verlauf", verlauf_neu, 60*60*24*1000, "02:00:00")
		}
	}
}

function gn(temp) {
	if (temp=="EuGVUE") temp="EuGVÜ"
	if (temp=="0BGB010901") temp="BGB (31.8.01)"
	if (temp=="0BGB010801") temp="BGB (31.7.01)"
	if (temp=="0BGB010102") temp="BGB (31.12.01)"
	if (temp=="0ZPO010102") temp="ZPO (31.12.01)"
	if (temp=="VOB-A") temp="VOB/A"
	if (temp=="VOB-B") temp="VOB/B"
	if (temp=="BoersG") temp="BörsG"
	if (temp=="LadOEG") temp="LadÖG"
	if (temp=="EWaermeG") temp="EWärmeG"
	if (temp=="EEWaermeG") temp="EEWärmeG"
	if (temp=="0VVG311207") temp="VVG a.F."
	if (temp=="0BNatSchG28022010") temp="BNatSchG a.F."
	if (temp=="0WHG28022010") temp="WHG a.F."
	if (temp=="0StVO310809") temp="StVO a.F."
	if (temp=="AUEG") temp="AÜG"
	if (temp=="VStaettVO") temp="VStättVO"
	if (temp=="BauPruefVO") temp="BauPrüfVO"
	if (temp=="KrW-AbfG") temp="KrW-/AbfG"
	temp = temp.replace(/_$/, "").replace(/_/, " ")
	return temp
}

function cookie_lesen(cookie_name) {
	var cook = unescape(document.cookie)
	if (cook && cook.indexOf(cookie_name+"=")>-1) {
		return cook.substr(cook.indexOf(cookie_name+"=")+cookie_name.length+1).replace(/;.*/,"")
	}
	else {
		return ""
	}
}

function cookie_schreiben(cookie_name, cookie_wert, zeitversatz, zeitkorrektur) {
	var d = new Date();
	var jetzt = d.getTime();
	var verschiebung = d.getTimezoneOffset();
	var rechnung = jetzt - verschiebung + zeitversatz;
	var verfall = new Date(rechnung);
	if (zeitkorrektur) {
		verfallszeit = verfall.toGMTString().replace(/ [0-9:]{8} /," "+zeitkorrektur+" ");
	} else {
		verfallszeit = verfall.toGMTString();
	}
	document.cookie = cookie_name+"="+cookie_wert+"; expires="+verfallszeit+"; path=/;";
}


function absTop(el) {
	if (!el) {
		return false;
	}
	return (el.offsetParent)? el.offsetTop+absTop(el.offsetParent) : el.offsetTop;
}

datev_zaehler = 0;
function top_iphone() {
	if (typeof(window['jQuery']) != 'undefined') {
		if (typeof norm_hier != 'undefined' && norm_hier != '') {
			var zahl=(String(Math.random()).substr(2)+"72"+String(Math.random()).substr(2)+"000").substr(0,32)
			if (!document.getElementById('top')) {
				var randomstring = "";
				if (gb == 'AO' || gb == 'BewG' || gb == 'EStG' || gb == 'KStG' || gb == 'UStG' || gb == 'GewStG' || gb == 'ErbStG' || gb == 'GrStG' || gb == 'FGO' || gb == 'EStDV' || gb == 'UStDV' || gb == 'GewStDV' || gb == 'ErbStDV') {
					randomstring = 1;
				} else {
					randomstring = randomString(1, true);
				}
				if (randomstring == 1) {
					var text = '<a href="http://www.advolux.haufe.de/haufe-advolux/?chorid=02827054&campaign=banner/CCP/Consultants/41249/02827054/12-01-30/advolux" onclick="link(this.href); return false;"><span>Haufe Advolux - die Kanzleisoftware für nur &euro; 39,80 (brutto) monatlich</span></a>';
					$('#content').before('<div id="top"><div class="schatten schatten_top_oben"><div class="schatten schatten_top_unten"><div class="top_inner_iphone"><div id="iphone_top">'+text+'</div></div></div></div></div>');
					if (datev_zaehler == 0) {
						$.get('http://dejure.org/cgi-bin/zaehler.fcgi?haufe_top&'+sitzung+'&x'+zahl.substr(0,6));
						datev_zaehler = 1;
					}
				} else {
					//$.get('http://dejure.org/cgi-bin/zaehler.fcgi?kein_datev_top&'+sitzung+'&x'+zahl.substr(0,6));
				}
			} else {
				//$.get('http://dejure.org/cgi-bin/zaehler.fcgi?kein_datev_top&'+sitzung+'&x'+zahl.substr(0,6));
			}
		}
	}
}

function top_aktuell(click, top_plus, top_minus) {

	top_iphone();

	if (!document.getElementById('aktuell')) {
		return;
	}
	if (document.getElementById('neues_scroll')) {
		var hoehe = document.getElementById('neues_scroll').offsetHeight
		document.getElementById('neues_scroll').style.height = 'auto';
		if (ie && hoehe >= 250) {
			document.getElementById('neues_scroll').style.height = '250px';
		}
	}
	if (document.getElementById("ersterkasten")) {
		document.getElementById('aktuell').style.top = absTop(document.getElementById("ersterkasten")) + 20 + 'px';
	} else {
		var top_height = 0;
		var zusatz = 5;
		if (!document.getElementById('google_oben') && !top_minus) {
			var zusatz = -25;
		}
		if (document.getElementById('top2') || document.getElementById('top')) {
			if (document.getElementById('top2')) {
				var top_height = document.getElementById('top2').offsetHeight;
				if (top_height < 1) {
					top_height = document.getElementById('aufklappen').offsetHeight + 75;
				}
				zusatz+= 10;
			} else {
				var top_height = document.getElementById('top').offsetHeight;
			}
			if (document.getElementById('admin')) {
				top_height+= document.getElementById('admin').offsetHeight + 20;
			}
			if (click > 0) {
				zusatz+= top_plus - top_minus;
				var top_height = 0;
			}
			if (click == -1) {
				zusatz+= top_plus - top_minus - 30;
				var top_height = 0;
			}
		}
		if (zusatz) {
			if (document.getElementById('google_oben') && !top_minus && !click) {
				zusatz = 0;
			}
			var aktuell_pos = absTop(document.getElementById('aktuell')) + top_height + zusatz;
			document.getElementById('aktuell').style.top = aktuell_pos + 'px';
		}
	}
	loseZettel();
}

if (document.getElementById('loginlink') && cookie_lesen('benutzerid') < 1) {
	document.getElementById('loginlink').style.display = 'block';
	document.getElementById('registerlink').style.display = 'block';
} else if (document.getElementById('logoutlink') && cookie_lesen('benutzerid') > 0) {
	document.getElementById('menulink').style.display = 'block';
	document.getElementById('logoutlink').style.display = 'block';
}

function dyncontent(x, ohne_verlauf) {
	var arrScreen = getScreenInfo();
	if (document.getElementById('containercontent') || !document.getElementById('aktuell')) {
		return;
	}
	var hoehe = 0;
	if (x) {
		var hoehe = x;
	}
	var hoehe2 = 0;
	var hoehe3 = 0;
	if (!ohne_verlauf && document.getElementById('verlauf')) {
		verlauf();
	}
	if (document.getElementById('extra_werbung')) {
		document.getElementById('extra_werbung').style.display = 'none';
	}
	hoehe = hoehe + document.getElementById('aktuell').offsetHeight;
	if (document.getElementById('extra_werbung')) {
		document.getElementById('extra_werbung').style.display = 'block';
	}
	if (document.getElementById('neues') && !document.getElementById('allesauf')) {
		neues_hoehe = document.getElementById('neues').offsetHeight;
		if (neues_hoehe < 251 || (ie && neues_hoehe > 280)) {
			hoehe = hoehe - neues_hoehe + 280;
		} else {
			hoehe = hoehe - 10;
		}
	}
	if (document.getElementById('headgesetz')) {
		hoehe2 = document.getElementById('headgesetz').offsetHeight;
	}
	if (document.getElementById('googlecontent')) {
		if (document.getElementById('googlecontent').offsetHeight > 30) {
			hoehe3 = hoehe3 + document.getElementById('googlecontent').offsetHeight;
		} else {
			hoehe3 = hoehe3 + 30;
		}
	} else if (document.getElementById('googlecontent1')) {
		hoehe3 = hoehe3 + document.getElementById('googlecontent1').offsetHeight;
	} else if (document.getElementById('tgramedia_oben')) {
		hoehe3 = hoehe3 + document.getElementById('tgramedia_oben').offsetHeight;
	} else {
		hoehe3 = hoehe3 - 80;
	}
	if (document.getElementById('pfeileoben') && document.getElementById('pfeileoben').style.display == 'none') {
		hoehe3 = hoehe3 - 60;
	}
	if (document.getElementById('fusszeile')) {
		hoehe3 = hoehe3 + document.getElementById('fusszeile').offsetHeight + 110;
	} else {
		hoehe3 = hoehe3 + 80;
	}
	if (!document.getElementById('verlauf')) {
		hoehe3 = hoehe3 + 110;
	}
	hoehe4 = hoehe - hoehe2 - hoehe3;
	if (document.getElementById('gesetzestext')) {
		if (document.getElementById('gesetzestext').offsetHeight < hoehe4) {
			if (ie == true && ie6 == true) {
				document.getElementById('gesetzestext').style.height = (hoehe4)+'px';
			} else {
				document.getElementById('gesetzestext').style.minHeight = (hoehe4)+'px';
			}
		} else {
			document.getElementById('gesetzestext').style.height = 'auto';
		}
	} else if (!document.getElementById('gesetzestext')) {
		var alpha_autoheight = false;
		if (document.getElementById('alpha').offsetHeight < hoehe - hoehe3) {
			if (ie6) {
				document.getElementById('alpha').style.height = (hoehe - hoehe3)+'px';
			} else {
				document.getElementById('alpha').style.minHeight = (hoehe - hoehe3)+'px';
			}
		} else {
			alpha_autoheight = true;
			document.getElementById('alpha').style.height = 'auto';
			document.getElementById('alpha').style.minHeight = 'auto';
		}
	}
	if (document.getElementById('googlecontent')) {
		document.getElementById('googlecontent').style.visibility = 'visible';
	}
	if (document.getElementById('googlecontent1')) {
		document.getElementById('googlecontent1').style.visibility = 'visible';
	}
	if (document.getElementById('pfeileunten')) {
		document.getElementById('pfeileunten').style.visibility = 'visible';
	}
	if (document.getElementById('fusszeile')) {
		document.getElementById('fusszeile').style.visibility = 'visible';
	}
	if (typeof(window["jQuery"]) != "undefined") {
		if (!alpha_autoheight) {
			var alpha_height = $('#alpha').height();
			var google_height = $('#alpha').next('.googlecontent').height();
			var alpha_heightnew = alpha_height - google_height;
			if (!$('#gesetzestext').length) {
				alpha_heightnew = alpha_heightnew+30;
			}
			$('#alpha').css('min-height', alpha_heightnew+'px');
		}
		$('.googlecontent').show();
		$('.googlecontent_rechtsprechung').show();
		if ($('#werbungrechtsfloat').length) {
			if (arrScreen['client']['width'] > 1350 && $('#werbungrechtsfloat').hasClass('linksfloat')) {
				var offset = $('#ersterkasten').offset();
				$('#werbungrechtsfloat').css('top', offset.top+10+'px').css('left', -170+'px');
			} else {
				var offset = $('#aktuell').offset();
				$('#werbungrechtsfloat').css('top', document.getElementById('aktuell').offsetHeight+offset.top+20+'px');
			}
			$('#werbungrechtsfloat').show();
		}
	}
	if (document.getElementById('werbung')) {
		document.getElementById('werbung').style.visibility = 'hidden';
		document.getElementById('werbung').style.display = 'block';
		if (document.getElementById('werbung').className.indexOf('werbungrechtsfloat') != -1) {
			document.getElementById('werbung').style.marginTop = 20+'px';
			// if #werbung offset + height > #optionen_zettel offset
			document.getElementById('werbung').style.display = 'block';
		}
		if (typeof(window["jQuery"]) != "undefined" && $('#h4_zitiert_von-1').length) {
			if ($('#werbung').length && $('#h4_zitiert_von-1').length && (absTop(document.getElementById('werbung')) + document.getElementById('werbung').offsetHeight) < $('#h4_zitiert_von-1').offset().top) {
				document.getElementById('werbung').style.visibility = 'visible';
			} else {
				document.getElementById('werbung').style.visibility = 'hidden';
			}
		} else {
			document.getElementById('werbung').style.visibility = 'visible';
		}
	}
	if (document.getElementById('aktuell').style.visibility != 'visible') {
		top_aktuell();
		document.getElementById('aktuell').style.visibility = 'visible';
	}
}

function unten() {
	if(document.getElementById('scrollp')){
		position = document.getElementById('scrollp').offsetTop;
		if (typeof(document.getElementById('neues_scroll').scrollTop) != 'undefined') {
			document.getElementById('neues_scroll').scrollTop = position-120;
		}
	}
}

function Pruefe() {
	if (document.Suchfeldform.Suchenach && document.Suchfeldform.Suchenach.value.length < 2) {
		alert( "Es müssen mindestens zwei Zeichen eingegeben werden.")
		document.Suchfeldform.Suchenach.focus()
		return false
	}
	else {
		return true
	}
}

function Gehezu() {
	if (document.getElementById('aufschlageng').value == '') {
		alert('Bitte geben Sie ein Gesetz an');
		return false;
	}
	var form_p = document.getElementById('aufschlagenp').value;
	var form_g = document.getElementById('aufschlageng').value;
	if (vorhandene_gesetze[form_g] && form_p > 0) {
		if (form_g.match(/^(GKG|RVG)$/) && form_p > 999) {
			location.href = '/gesetze/' + sz(form_g) + '/Anlage1.html#' + form_p
			window.setTimeout("document.getElementById('aufschlagenp').value = ''; document.getElementById('aufschlagenp').blur()", 1000)
			return false
		}

		if (form_g == 'StVO' && form_p.length > 2) {
			var aufschlagenp = 'Anlage3';
			if (form_p.substr(0, 1) == '1') {
				aufschlagenp = 'Anlage1';
			} else if (form_p.substr(0, 1) == '2') {
				aufschlagenp = 'Anlage2';
			} else if (form_p.substr(0, 1) == '6') {
				aufschlagenp = 'Anlage4';
			}
			location.href = '/gesetze/' + sz(form_g) + '/'+aufschlagenp+'.html#Zeichen' + form_p
			window.setTimeout("document.getElementById('aufschlagenp').value = ''; document.getElementById('aufschlagenp').blur()", 1000)
			return false
		}
		location.href = '/gesetze/' + sz(form_g) + '/' + form_p +'.html'
		return false
	}
	return true
}

function umschaltVerlauf(x) {
	var verlaufdiv = document.getElementById('verlauf');
	var neues = document.getElementById('neues_scroll');
	var minus = document.getElementById('minus');
	if (document.getElementById('gesetzestext') && (x == -1 || minus.style.display != 'block')) {
		hoehe_alt = document.getElementById('gesetzestext').offsetHeight;
	}
	// Verlauf deaktivieren
	if (x == -1) {
		document.getElementById('verlauf_inner').innerHTML = 'Sie haben die Möglichkeit, Ihren pers&ouml;nlichen Verlauf zu leeren oder ganz auszuschalten:<br /><a href="#" class="marker" onclick="umschaltVerlauf(-2); return false;">Leeren</a><a href="#" class="marker" onclick="umschaltVerlauf(-3); return false;">Ausschalten</a><a href="#" class="marker" onclick="verlauf(); return false;">Fortfahren</a>';
		dyncontent(0,1);
		loseZettel();
	}
	else if (x == -2 || x == -3) {
		if (x == -3) {
			cookie_schreiben("verlauf", "-", 365*60*60*24*1000, "04:00:00")
			cookie_schreiben("sitzung", 0, 365*60*60*24*1000, "04:00:00")
			sitzung = 0
		}
		else {
			cookie_schreiben("verlauf", "", 60*60*24*1000, "04:00:00")
		}
		// auf Server loeschen
		http_verlauf_loeschen = httpr()
		http_verlauf_loeschen.onreadystatechange = function () {
			if (http_verlauf_loeschen.readyState == 4 && http_verlauf_loeschen.status == 200) {
				document.getElementById('verlauf_inner').innerHTML = http_verlauf_loeschen.responseText
			}
		}
		http_verlauf_loeschen.open('GET', '/cgi-bin/verlauf?sitzung=' + sitzung + '&aktion=' + x, true)
		http_verlauf_loeschen.send(null)
	}
	else if (x == -3) {
		cookie_schreiben("verlauf", "-", 60*60*24*1000, "04:00:00")
		verlaufdiv.style.display = 'none';
	}
	else if (minus.style.display != 'block') {
		erweiterter_verlauf(1);
		if (verlaufdiv.getAttribute('name')) {
			var elemname = verlaufdiv.getAttribute('name');
			if (elemname && typeof(elemname) != 'undefined') {
				top_height = document.getElementById('aufklappen').offsetHeight - 20;
				document.getElementById('verlauf_inner').style.height = top_height + 'px';
				document.getElementById('verlauf_inner').style.maxHeight = top_height + 'px';
			}
		}
		if (!ie) {
			minus.style.right = 18 + 'px';
		}
		minus.style.display = 'block';
	}
	else if (verlaufdiv.style.display == 'block' && x == 1) {
	// Verlauf schliessen und "neues" vergroessern
		verlauf_hoehe = verlaufdiv.offsetHeight;
		if (x == 1) {
			elemname = verlaufdiv.getAttribute('name');
			if (typeof(elemname) != 'undefined') {
				top_height = document.getElementById('aufklappen').offsetHeight - 20;
				document.getElementById('verlauf_inner').style.height = top_height + 'px';
				document.getElementById('verlauf_inner').style.maxHeight = top_height + 'px';
			} else {
				dyncontent();
			}
			erweiterter_verlauf(x);
			minus.style.right = 18 + 'px';
			minus.style.display = 'block';
		}
	}
	else {
		// Verlauf wieder zeigen und Auswahl wieder verkleinern
		//if (!document.getElementById('neues_scroll')) {
			document.getElementById('verlauf_inner').style.height = 'auto';
			verlauf();
			minus.style.display = 'none';
			//dyncontent(0, 1);
			loseZettel();
			return false;
		//}
		if (ie) {
			neues.style.height = neues_hoehe;
		}
		else {
			neues.style.height = 'auto';
		}
		neues.style.maxHeight = 250 + 'px';
		verlaufdiv.style.display = 'block';
		minus.style.display = 'none';
		document.getElementById('neues_scroll').innerHTML = neues_scroll_
	}
}

function erweiterter_verlauf(x) {
	if (x == 1) {
		div_erweiterter_verlauf = document.getElementById('verlauf_inner');
	} else {
		div_erweiterter_verlauf = document.getElementById('neues_scroll');
		neues_scroll_ = div_erweiterter_verlauf.innerHTML
	}
	if (sitzung == '') {
		sitzung = cookie_lesen('sitzung');
	}
	http_verlauf = httpr();
	laden_verzoegerung = window.setTimeout("div_erweiterter_verlauf.innerHTML = '<div style=\"text-align:center; padding: "+parseInt(div_erweiterter_verlauf.offsetHeight/2-8)+"px 0px; \"><img src=\"/jcg/laden.gif\"></div>'",500)
	http_verlauf.onreadystatechange = function () {
		if (http_verlauf.readyState == 4 && http_verlauf.status == 200) {
			if (window.laden_verzoegerung) {
				window.clearTimeout(laden_verzoegerung);
			}
			div_erweiterter_verlauf.innerHTML = http_verlauf.responseText;
			div_erweiterter_verlauf.scrollTop = 0;
			if (x == 1 && ie && div_erweiterter_verlauf.offsetHeight >= 250) {
				div_erweiterter_verlauf.style.height = '250px';
			}
			verlauf_scrollpos = absTop(div_erweiterter_verlauf)+div_erweiterter_verlauf.offsetHeight;
			var arrScreen = getScreenInfo();
			inner_height = arrScreen['client']['height'];
			if (document.documentElement.scrollTop + inner_height < verlauf_scrollpos) {
				window.scrollBy(0,verlauf_scrollpos-inner_height+15);
			}
			dyncontent(0, 1);
			loseZettel();
		}
	}
	if (!window.gb) {
		gb = '';
		norm_hier = '';
	}
	http_verlauf.open('GET', '/cgi-bin/verlauf?sitzung=' + sitzung + '&aktuell=' + gb + '/' + norm_hier, true)
	http_verlauf.send(null)
}

function aufklappzustand() {
	if (typeof(gb) != "undefined") {
		offene_ebenen_liste = cookie_lesen("ue_"+gb)
		offene_ebenen = offene_ebenen_liste.replace(/^,/, "").split(",")
		for (var i = 0; i < offene_ebenen.length; i++) {
			if (offene_ebenen[i] == "*") {
				umschaltAlles(1, 1)
			}
			else if (offene_ebenen[i].indexOf("s:") == 0) {
				schnellzugriff(offene_ebenen[i].substr(2), 1, 1)
			}
			else if (offene_ebenen[i].indexOf("-") == 0) {
				document.getElementById(offene_ebenen[i].substr(1)).style.display="none"
			}
			else if (document.getElementById(offene_ebenen[i])) {
				document.getElementById(offene_ebenen[i]).style.display="block"
			}
		}
	}
}

function umschaltAlles(x, ohne_speicherung) {
	var display = "block";
	if (x == -1) {
		var display = "none";
		cookie_schreiben('ue_'+gb, '', -1);
		ohne_speicherung = true;
	}
	ebenen = document.getElementsByTagName("div");
	for (var i = 0; i < ebenen.length; i++) {
		if (typeof(ebenen[i].className) != "undefined") {
			if (ebenen[i].className.indexOf("ebenentiefe") != -1) {
				ebenen[i].style.display = display;
			}
		}
	}
	if (!ohne_speicherung) {
		cookie_speicherung(0, x == 1);
	}
}

function cookie_speicherung(id, wechsel, cookie_name, dauer) {
	if (isNaN(id)) {
		id = id.replace(/,/g, "");
	}
	if (!cookie_name) {
		var cookie_name = "ue_"+gb;
	}
	offene_ebenen_liste = cookie_lesen(cookie_name)
	if (cookie_name == "mehr_klapp") {
		if (offene_ebenen_liste == "") {
			offene_ebenen_liste = ",";
		}
		arr_mehr = id.split("|");
		if (offene_ebenen_liste.indexOf(arr_mehr[0]+"|") != -1) {
			arr_ebenen = offene_ebenen_liste.split(",");
			for (var i = 0; i < arr_ebenen.length; i++) {
				if (arr_ebenen[i].indexOf(arr_mehr[0]) != -1) {
					if (arr_ebenen[i].indexOf(":"+arr_mehr[1]+":") != -1) {
						arr_ebenen[i] = arr_ebenen[i].replace(":"+arr_mehr[1], "");
						if (arr_ebenen[i] == arr_mehr[0]+"|" || arr_ebenen[i] == arr_mehr[0]+"|:") {
							arr_ebenen[i] = "";
						}
					} else {
						arr_ebenen[i]+= arr_mehr[1]+":";
					}
				}
			}
			offene_ebenen_liste = arr_ebenen.join(",");
			offene_ebenen_liste = offene_ebenen_liste.replace(",,", ",");
		} else {
			offene_ebenen_liste+= arr_mehr[0]+"|:"+arr_mehr[1]+":,";
		}
	}

	if (offene_ebenen_liste == "") {
		offene_ebenen_liste = ","
	}
	if (id == 0) {
		if (wechsel == 1) {
			offene_ebenen_liste = ",*,"
		}
		else {
			offene_ebenen_liste = ","
		}
	}
	// zur Liste hinzufuegen
	else if (wechsel == 1) {
		if (offene_ebenen_liste.indexOf(',' + id + ',') == -1 && cookie_name != 'mehr_klapp') {
			offene_ebenen_liste += id + ","
		}
	}
	// loeschen aus der Liste
	else {
		offene_ebenen_liste = offene_ebenen_liste.replace("," + id + ",", ",")
		if (isNaN(id) && id.indexOf('-') == -1 && id.indexOf('mehr') == -1 && id.indexOf('_x_') == -1 && cookie_name != 'mehr_klapp') {
			offene_ebenen_liste += "-" + id + ","
		}
	}
	if (offene_ebenen_liste == ",") {
		cookie_schreiben(cookie_name, "", -1);
	} else {
		if (!dauer || isNaN(dauer)) {
			dauer = 60*60*24*1000;
		}
		cookie_schreiben(cookie_name, offene_ebenen_liste, dauer);
	}
}


// schnellzugriff('eb4-1-6', 1)
function schnellzugriff(id, untere_oeffnen, ohne_speicherung) { // 3. Param 1 bei onload
	if (!document.aktuelle_markierung) document.aktuelle_markierung = "null"
	else if (!ohne_speicherung) {
		schnellzugriff_markierung(document.aktuelle_markierung, 0)
	}
	schnellzugriff_markierung(id, 1, ohne_speicherung)
	document.aktuelle_markierung = id
	return ebenen_oeffnen(id, untere_oeffnen)
}

function schnellzugriff_markierung(id, zustand, ohne_speicherung, i) {
	if (!ohne_speicherung) {
		cookie_speicherung("s:" + id.replace(/,/g, ";"), zustand)
	}
	ida = id.split(",")
	for (i = 0; i < ida.length; i++) {
		id =ida[i]
		if (!document.getElementById(id)) {
			continue
		}
		if (zustand == 1) {
			document.getElementById(id).className += ' gliederung_ziel'
		}
		else {
			with (document.getElementById(id)) {
				className = className.replace(/ gliederung_ziel/, "")
			}
		}
	}
}

function ebenen_oeffnen(id, untere_oeffnen, i, j, x, ida) {
	ida = id.split(",")
	for (i = 0; i < ida.length; i++) {
		var id = ida[i]
		if (!document.getElementById(id)) {
			continue
		}
		if (untere_oeffnen > 0) {
			x = 1
			while (document.getElementById(id + "-" + x)) {
				document.getElementById(id + "-" + x).style.display = 'block'
				ebenen_oeffnen(id + "-" + x, 2)
				x++
			}
		}
		if (!untere_oeffnen || untere_oeffnen < 2) { // Normalfall
			while (document.getElementById(id) && id.match(/\-[0-9]+$/)) {
				document.getElementById(id).style.display = 'block'
				id = id.replace(/\-[0-9]+$/, "")
			}
			document.getElementById(id).style.display = 'block'
		}
	}
}

function klick(element) {
	var e = document.getElementById(element).style
	cookie_speicherung(element, e.display != "block")
	with (e) {
		if (display == "block") {
			display = "none"
		}
		else {
			display = "block"
		}
	}
}

function switchMehr(x, prev) {
	var params;
	var paramsexist = false;
	for (var i = 0; i < document.getElementsByTagName('meta').length; i++) {
		if (document.getElementsByTagName('meta')[i].getAttribute('name') == 'generator') {
			params = document.getElementsByTagName('meta')[i].getAttribute('content');
			paramsexist = true;
		}
	}
	if (paramsexist == true) {
		params = params.replace("%20", "+");
	}
	if (x == "cookie") {
		c_id = cookie_lesen("mehr_klapp").split(",");
		for (var i = 0; i < c_id.length; i++) {
			if (c_id[i] != "") {
				var data_tmp = c_id[i].split("|");
				if (data_tmp[0] == params) {
					if (data_tmp[1].indexOf(":") != -1) {
						divs = data_tmp[1].split(":");
						for (var j = 0; j < divs.length; j++) {
							if (divs[j] != "") {
								switchMehr(divs[j], -3);
							}
						}
					} else {
						var id_tmp = data_tmp[1].substr(7);
						switchMehr(id_tmp, -3);
					}
				}
			}
		}
		return false;
	}
	if (prev == -1) {
		id = x.previousSibling.id
		elem = x.previousSibling;
	} else if (prev == -2) {
		id = x;
		elem = document.getElementById(x);
	} else if (prev == -3) {
		id = x;
		elem = document.getElementById("mehrdiv"+x);
		x = document.getElementById("mehr"+x);
	} else {
		elem = x.nextSibling;
		id = x.nextSibling.id
	}
	if (elem && elem.className == "versteckt") {
		elem.className = "";
		if (prev != -4) {
			x.innerHTML = "zuklappen";
			x.className = "down rechtsprechung up";
		}
		if (prev == -5) {
			x.className = "versteckt";
		}
		if (id.indexOf("mehr") != -1) {
			id = id.replace(/mehrdiv/g, "");
			cookie_speicherung(params+"|"+id, 1, "mehr_klapp", 10*60*1000); // 10 Minuten
		}
	} else if (elem && elem.className != "versteckt") {
		elem.className = "versteckt";
		if (prev != -4) {
			x.innerHTML = "mehr";
			x.className = "down rechtsprechung";
		}
		if (id.indexOf("mehr") != -1) {
			id = id.replace(/mehrdiv/g, "");
			cookie_speicherung(params+"|"+id, 0, "mehr_klapp", 10*60*1000); // 10 Minuten
		}
	}
	loseZettel();
	return false;
}

function link(url, param) {
	var url2 = "/dienste/internet3?" + url
	if (link.arguments.length > 1) {
		if (url.indexOf("&") > - 1) {
			url2 += "&" + param
		}
		else {
			url2 += "?" + param
		}
	}
	if (!StrgShift) {
		location.href = url2;
	}
}

function loseZettel() {
	if (!document.getElementById('aktuell')) {
		return;
	}
	elems = document.getElementsByTagName("div");
	for (var i = 0; i < elems.length; i++) {
		elem = elems[i];
		cls = elem.className;
		if (typeof(cls) != 'undefined' && cls) {
			// Lose Zettel am oberen Rand der Kaesten heften
			if (cls.indexOf('zettel_lose') > -1 && elem.getAttribute('name')) {
				divid = elem.getAttribute('name').substring(7,elem.getAttribute('name').length);
				contentdiv = document.getElementById(divid);
				if (contentdiv) {
					// Lose Zettel an unteren Rand
					if (cls.indexOf('zettel_lose_unten') != -1) {
						divpos = Number(absTop(contentdiv)) + Number(contentdiv.offsetHeight) - Number(elem.offsetHeight) - Number(25);
					} else {
						divpos = absTop(contentdiv) + 30;
					}
					if ((elem.offsetHeight + 40) > contentdiv.offsetHeight) {
						child = contentdiv.childNodes;
						for (var j = 0; j < child.length; j++) {
							if (typeof(child[j].className) == 'undefined') {
								continue;
							}
							if (child[j].className == 'content_inner') {
								child[j].style.height = Number(elem.offsetHeight) + Number(25) + 'px';
							}
						}
					}
					elem.style.top = divpos + 'px';
					elem.style.visibility = 'visible';
				} else {
					//elem.style.display = 'none';
				}
			}
		}
	}
}

// Javascript fuer Login
function swapLoginForm() {
	if (document.getElementById('passwordform').style.display != 'block') {
		document.getElementById('passwordform').style.display = 'block';
		document.getElementById('loginform').style.display = 'none';
	} else {
		document.getElementById('passwordform').style.display = 'none';
		document.getElementById('loginform').style.display = 'block';
	}
}

function checkEmail(formname, mail_input, mail_value) {
	if (formname == 'passwordform') {
		var x = document.passwordform;
	} else if (formname == 'registerform') {
		var x = document.registerform;
	}
	if (mail_value) {
	} else if (mail_input) {
		mail_value = mail_input.value;
	} else if (!mail_input) {
		mail_input = x.email;
		mail_value = x.email.value;
	}
	arr_mail_value = mail_value.split(',');
	emailcheck = true;
	var Kontrolle = /^[_\.0-9A-Za-z-]+@([0-9A-Za-z\-]+\.)+[a-z]{2,4}$/;
	for (var i = 0; i < arr_mail_value.length; i++) {
		mail_value = jQuery.trim(arr_mail_value[i]);
		if (mail_value == ''|| !Kontrolle.exec(mail_value)) {
			alert("Bitte eine korrekte Email-Adresse eingeben.");
			mail_input.focus();
			emailcheck = false;
		}
	}
	return emailcheck;
}

function comparePasswords(datachange) {
	passwordcheck = true;
	var neuespasswort = document.getElementById('neuespasswort').value;
	var neuespasswortcheck = document.getElementById('neuespasswortcheck').value;
	if (!datachange && neuespasswort == '' || neuespasswort.length < 5 || neuespasswort != neuespasswortcheck) {
		alert("Bitte in beide Felder das gleiche Passwort eingeben,\nkein leeres Passwort benutzen,\nund beachten Sie die Mindestanzahl an Zeichen.");
		document.getElementById('neuespasswort').focus();
		passwordcheck = false;
	}
	return passwordcheck;
}

function check_login(form) {
	loginname		= $('#form_loginname').val();
	loginpassword	= $('#form_loginpassword').val();
	var var_return = true;
	if (!loginname || !loginpassword) {
		alert('Bitte füllen Sie beide Felder aus.');
		var_return = false;
	} else if (!validateEmail('','',loginname)) {
		var_return = false;
	} else if (loginpassword.length < 5) {
		alert('Das eingegebene Passwort ist zu kurz.');
		var_return = false;
	}
	return var_return;
}

function checkregister(datachange, elem, x) {
	var check1 = comparePasswords(datachange);
	var check2 = validateEmail(elem, x);
	if (check1 == false || check2 == false) {
		return false;
	} else {
		return true;
	}
}

function getScreenInfo() {
	if (self.innerHeight) { // all except Explorer
		var t_c = window.screenY;
		var l_c = window.screenX;
		var w_c = self.innerWidth;
		var h_c = self.innerHeight;
		var ie = false;
		var w_d = document.documentElement.offsetWidth;
		var h_d = document.documentElement.offsetHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		var t_c = window.screenTop;
		var l_c = window.screenLeft;
		var w_c = document.documentElement.clientWidth;
		var h_c = document.documentElement.clientHeight;
		var ie = true;
		var w_d = document.documentElement.offsetWidth;
		var h_d = document.body.scrollHeight;
	} else if (document.body) { // other Explorers
		var t_c = window.screenTop;
		var l_c = window.screenLeft;
		var w_c = document.body.clientWidth;
		var h_c = document.body.clientHeight;
		var ie = true;
		var w_d = document.body.offsetWidth;
		var h_d = document.body.scrollHeight;
	}
	retVal = {'screen':{'width':screen.width, 'height':screen.height, 'availWidth':screen.availWidth, 'availHeight':screen.availHeight}, 'client':{'width':w_c, 'height':h_c, 'left':l_c, 'top':t_c}, 'document':{'width':w_d, 'height':h_d}, 'ie':ie};
	return retVal;
}

function sz(temp) {
	temp = temp.replace(/Ä/g, "AE")
	temp = temp.replace(/ä/g, "ae")
	temp = temp.replace(/Ö/g, "OE")
	temp = temp.replace(/ö/g, "oe")
	temp = temp.replace(/Ü/g, "UE")
	temp = temp.replace(/ü/g, "ue")
	temp = temp.replace(/ß/g, "ss")
	temp = temp.replace(/\-?\//g, "-")
	return temp
}


function mouseoverHandler() {
	if (window.mausover == '') {
		window.mausover = 1;
		hg = document.getElementById('headgesetz');
		hg.innerHTML+= '<a id="gesamtgliederung_ein" href="#" onclick="Gesamtgliederung(1); GliederungZeigen(\'gliederung\', \''+gb+'\', \''+norm_hier+'\'); return false;" title="Gesetzesgliederung einblenden">Gliederung</a>';
		hg.innerHTML+= '<a id="gesamtgliederung_aus" href="#" onclick="Gesamtgliederung(0); return false;" title="Gesetzesgliederung ausblenden"></a>';
		hg.innerHTML+= '<div id="ajax_div"></div>';
	} else {
		ge = document.getElementById('gesamtgliederung_ein');
		if (ge) {
			ge.style.display = 'block';
		}
	}
}

function mouseoutHandler() {
	ge = document.getElementById('gesamtgliederung_ein');
	if (ge) {
		ge.style.display = 'none';
	}
}

function Gesamtgliederung(x) {
	hg = document.getElementById('headgesetz');
	ga = document.getElementById('gesamtgliederung_aus');
	ge = document.getElementById('gesamtgliederung_ein');
	ad = document.getElementById('ajax_div');
	if (x == 1) {
		hg.style.height = '400px';
		ge.style.display = 'none';
		ga.style.display = 'block';
		ad.style.display = 'block';
	}
	else {
		hg.style.overflow = 'hidden';
		hg.style.height = 'auto';
		ge.style.display = 'block';
		ga.style.display = 'none';
		ad.style.display = 'none';
	}
}

var http_request = false;

function GliederungZeigen(modus, gesetz) {
	if (document.getElementById('ajax_div').innerHTML == '') {
		laden_verzoegerung = window.setTimeout("document.getElementById('ajax_div').innerHTML = '<div style=\"text-align:center; padding: 180px 0px; \"><img src=\"/jcg/laden.gif\"></div>'",500)
		macheRequest(modus, gesetz);
	}
	window.setTimeout('myScrollTop()', 0);
}

var fea_start = false;
function fea_blaettern(gesetz, norm, start, auto) {
	if (!auto) {
		var auto = '';
	}
	if (document.getElementById('fea_div')) {
		if (auto == 1 && start != '') {
			cookie_vars = start.split('|');
			if (gesetz == cookie_vars[0] && norm == cookie_vars[1]) {
				start = cookie_vars[2];
			} else {
				start = 0;
			}
		} else {
			if (start > 0) {
				cookie_schreiben("fea_navi", gesetz+"|"+norm+"|"+start, 60*60*24*1000, "04:00:00");
			}
		}
		window.fea_start = start;
		if (auto == 1 && start == 0) {
		} else {
			laden_verzoegerung = window.setTimeout("document.getElementById('fea_weiter').innerHTML = '<div style=\"text-align:center; padding: 80px 0px; \"><img src=\"/jcg/laden.gif\"></div>'",500)
			macheRequest('fea', gesetz, norm, start, auto);
		}
	}
	return false;
}

if (window.gb) {
	addLoadEvent(function() {
		fea_blaettern(gb, norm_hier, cookie_lesen('fea_navi'), 1);
	});
}

function macheRequest(modus, gesetz, norm, start, auto) {
	http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			// zu dieser Zeile siehe weiter unten
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!http_request) {
		alert('Ende :( Kann keine XMLHTTP-Instanz erzeugen');
		return false;
	}
	if (modus == 'gliederung') {
		http_request.onreadystatechange = GliederungLaden;
		request_url = '/cgi-bin/gliederung/' + gesetz;
	}
	else if (modus == 'fea') {
		http_request.onreadystatechange = feaLaden;
		request_url = '/cgi-bin/fea.pl?gesetz='+ gesetz +'&norm='+ norm +'&start='+ start +'&auto='+ auto;
	}
	else if (modus == 'tooltip') {
		http_request.onreadystatechange = GesetzesCacheLaden;
		request_url = '/cgi-bin/ajax_tooltip.fcgi?gesetz='+ gesetz +'&norm='+ norm;
	}
	else if (modus == 'tooltipreload') {
		http_request.onreadystatechange = GesetzesCacheNachLaden;
		request_url = '/cgi-bin/ajax_tooltip.fcgi?reload=1&gesetz='+ gesetz +'&norm='+ norm;
	}
	http_request.open('GET', request_url, true);
	http_request.send(null);
}

function GliederungLaden() {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			if (window.laden_verzoegerung) {
				window.clearTimeout(laden_verzoegerung)
			}
			document.getElementById('ajax_div').innerHTML = '<h2>'+document.getElementById('gesetzesname').innerHTML+'</h2>\n'+http_request.responseText;
			document.getElementById('pg_'+norm_hier).className+= ' gliederung_set';
			umschaltAlles(1,1);
			window.setTimeout('myScrollTop()', 0);
		} else {
			alert('Bei dem Request ist ein Problem aufgetreten.');
		}
	}

}

function feaLaden() {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			if (window.laden_verzoegerung) {
				window.clearTimeout(laden_verzoegerung)
			}
			request_answer = http_request.responseText.split('{}');
			document.getElementById('fea_div').innerHTML+= request_answer[1];
			//scrollpos = absTop(document.getElementById('fea_'+window.fea_start));
			//window.scrollTo(0, scrollpos-50);
			fea_set_start = (parseInt(window.fea_start)+1);
			if ((parseInt(window.fea_start)*50) >= request_answer[0]) {
				document.getElementById('fea_weiter').innerHTML = '';
			} else {
				step = 50;
				step_max = request_answer[0]-(window.fea_start*step);
				if (step_max < step) {
					step = (step_max-5);
				}
				document.getElementById('fea_weiter').innerHTML = '<a class="mehr fea_mehr" href="#Weitere" title="weitere '+step+' anzeigen" onclick="return fea_blaettern(\''+gb+'\', \''+norm_hier+'\', '+fea_set_start+');"><span>Mehr...</span></a>';
			}
		} else {
			alert('Bei dem Request ist ein Problem aufgetreten.');
		}
	}

}

function GesetzesCacheLaden() {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			if (window.laden_verzoegerung) {
				window.clearTimeout(laden_verzoegerung)
			}
			request_answer = http_request.responseText;
			document.getElementById("TTBody"+Tooltips.TTCount).innerHTML = request_answer;
		} else {
			alert('Bei dem Request ist ein Problem aufgetreten.');
		}
	}

}

var tooltipid = "";
function GesetzesCacheNachLaden(elem, arg_gesetz, arg_norm) {
	if (arg_gesetz && arg_norm) {
		while (elem.id.indexOf("Tooltip") == -1) {
			elem = elem.parentNode;
		}
		tooltipid = elem.id.substring(7);
		macheRequest('tooltipreload', arg_gesetz, arg_norm);
	} else {
		if (http_request.readyState == 4) {
			if (http_request.status == 200) {
				if (window.laden_verzoegerung) {
					window.clearTimeout(laden_verzoegerung)
				}
				var TThead = document.getElementById("TTHead"+tooltipid);
				var TTbody = document.getElementById("TTBody"+tooltipid);

				request_answer = http_request.responseText.split('{}');
				headheight1 = TThead.offsetHeight;
				TTbody.innerHTML = request_answer[1];
				TThead.innerHTML = request_answer[0];
				headheight2 = TThead.offsetHeight;
				headheight = parseInt(headheight1-headheight2);
				TTbody.style.height = parseInt(document.getElementById("TTBody"+tooltipid).offsetHeight+headheight-30)+"px";
				TTbody.scrollTop = 0;
			} else {
				alert('Bei dem Request ist ein Problem aufgetreten.');
			}
		}
	}

}

function myScrollTop() {
	scrollpos = absTop(document.getElementById('pg_'+norm_hier)) - 300;
	document.getElementById('ajax_div').scrollTop = scrollpos;
}


// Alternatives Mouseover fuer Gliederung
var mm = new Object();
var mouse_x, mouse_y;

function absLeft(i) {
	return (i.offsetParent) ? i.offsetLeft+absLeft(i.offsetParent) : i.offsetLeft;
}


function showhide(x, y) {
	var theelement = document.getElementById(x);
	if (y) {
		document.getElementById(y).style.display = 'none';
	}
	if (theelement) {
		if (theelement.style.display == 'block') {
			theelement.style.display = 'none';
		} else {
			theelement.style.display = 'block';
		}
	}
	return false;
}

function getScroll() {
	var scrOfX = 0, scrOfY = 0;

	if( typeof( window.pageYOffset ) == 'number' ) {
		//Netscape compliant
		scrOfY = window.pageYOffset;
		scrOfX = window.pageXOffset;
	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
		//DOM compliant
		scrOfY = document.body.scrollTop;
		scrOfX = document.body.scrollLeft;
	} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		//IE6 standards compliant mode
		scrOfY = document.documentElement.scrollTop;
		scrOfX = document.documentElement.scrollLeft;
	}
	return [ scrOfX, scrOfY ];
}



function KlebeHinweis(v) {
	var klebediv = document.createElement("div");
	var schliessen = document.createElement("a");
	schliessen.setAttribute("class", "close");
	schliessen.setAttribute("title", "Hinweis ausblenden");
	schliessen.setAttribute("style", "top:5px; right:5px;");
	schliessen.setAttribute("onclick", "cookie_schreiben('klebehinweis', 1, 60*60*24*1000, '02:00:00'); return showhide('', 'klebehinweis');");
	klebediv.setAttribute("id", "klebehinweis");
	klebediv.appendChild(schliessen);
	var Ausgabebereich = document.getElementById("dejure");
	Ausgabebereich.appendChild(klebediv);
	if (v == 'verkehr') {
		var hinweis = '<p><b>Tipp:</b></p><p><a onclick="link(this.href); return false" href="http://www.verkehrssuche.de/"><b>Verkehrssuche</b></a></p><p>die Suchmaschine für das gesamte Verkehrsrecht - kostenlos!</p>';
	}
	else {
		var hinweis = '<p><b>Tipp:</b></p><p><a onclick="link(this.href); return false" href="http://medien-internet-und-recht.de/" title="Internetfachzeitschrift zum Medienrecht und Internetrecht - MEDIEN INTERNET und RECHT" class="o_u"><img src="http://j.dejure.org/jcg/mir_logo.gif" /></a><br /><a onclick="link(this.href); return false" href="http://medien-internet-und-recht.de/" title="Internetfachzeitschrift zum Medienrecht und Internetrecht - MEDIEN INTERNET und RECHT">Medien Internet und Recht</a></p><p>Kostenlose Onlinezeitschrift</p>';
	}
	document.getElementById('klebehinweis').innerHTML+= hinweis;
}


function Randhinweise() {
	var a = document.getElementById('alpha');
	var alttop = 0;
	var abstand = 0
	var id_tmp = '';
	zaehler = new Array()

	for (x = 0; x < a.getElementsByTagName('span').length; x++) {
		var akt_span = a.getElementsByTagName('span')[x];
		if (akt_span.getAttribute('title')) {
			akt_span.id = 'span' + x;
			this.randhinweis = document.createElement("a");
			this.randhinweis.id = 'rand' + x;
			this.randhinweis.className = "randhinweis";
			var top = (akt_span.offsetTop + absTop(a));
			alttop = top + abstand;
			alttop = absTop(akt_span);
			if (id_tmp != '') {
				var prev_pos_top = absTop(document.getElementById(id_tmp));
				var prev_height = document.getElementById(id_tmp).offsetHeight;
				var new_pos = prev_pos_top + prev_height;
				if (new_pos >= alttop-10) {
					alttop = new_pos+10;
				}
			}
			if (ie6) {
				this.randhinweis.style.top = absTop(akt_span) - absTop(a) + 1 + 'px'
			} else {
				this.randhinweis.style.top = akt_span.offsetTop + 1 + 'px'
			}
			document.getElementById('alpha').appendChild(this.randhinweis);
			id_tmp = 'rand' + x;
		}
	}
}


addLoadEvent(function() {
	if (document.getElementById('headgesetz') && window.norm_hier && norm_hier != 0) {
		var headgesetz = document.getElementById('headgesetz');
		if (document.addEventListener) {
			headgesetz.addEventListener('mouseover', mouseoverHandler, false);
			headgesetz.addEventListener('mouseout', mouseoutHandler, false);
		} else if (document.attachEvent) {
			headgesetz.attachEvent('onmouseover', mouseoverHandler);
			headgesetz.attachEvent('onmouseout', mouseoutHandler);
		}
	}
	if (document.cookie.indexOf("mehr_klapp=") >- 1) {
		switchMehr("cookie");
	}
});

function bereichsmarkierung_entfernen() {
	var i = 1
	while (document.getElementById('g' + i)) {
		var e = document.getElementById('g' + i)
		e.innerHTML = e.innerHTML.replace(/<span class="?blue"?>/i, '').replace(/<\/span><!-- :: -->/i, '')
		i++
	}
}

function bereichsmarkierung(anker) {
	if (window.bereichmarkiert) {
		bereichsmarkierung_entfernen()
	}
	else {
		bereichmarkiert = 1;
	}
	showhide('Absatz');
	var i = 1
	var aktiv = 0
	anker = anker.replace(/^#/, '')
	if (anker.match(/(?:Abs|Nr|S|B)[0-9]/) && !anker.match(/Zeichen/) && !document.getElementById(anker)) {
		var vorschlag = plausibilitaetspruefung_bereich(anker)
		if (vorschlag != '') {
			var hinweis = '<b>' + id_a(anker) + '</b> ist in der vorliegenden - aktuellen - Fassung von ' + bez.replace(/^p$/, '&sect;') + ' ' + norm_hier + ' ' + gb + ' nicht vorhanden. Gemeint ist möglicherweise <b style="white-space:nowrap;">' + id_a(vorschlag) + '</b>, der stattdessen markiert wurde.'
			anker = vorschlag
		}
		else {
			var hinweis = id_a(anker) + ' ist in der vorliegenden - aktuellen - Fassung von ' + bez.replace(/^p$/, '&sect;') + ' ' + norm_hier + ' ' + gb + ' nicht vorhanden. Nutzen Sie die Funktion "Abs./Nr./Satz hervorheben" auf der rechten Seite, um alle Bereiche der Norm, die gemeint sein können, zu sehen.'
		}
		var Absatzhinweis = document.createElement("div");
		with (Absatzhinweis) {
			id = "Absatzhinweis";
			className = "rechtsprechung_hinweis";
			style.width = "680px";
			style.borderColor = "#b00";
			innerHTML = hinweis;
		}
		if ($('#top').length) {
			$('#top').before(Absatzhinweis);
		} else {
			$('#ersterkasten').before(Absatzhinweis);
		}
		var extraoffset = 10;
		var offset = $('#ersterkasten').offset();
		$('#aktuell').css('top', offset.top+extraoffset+'px');
		dyncontent();
		if (vorschlag == '') {
			return;
		}
	}
	while (document.getElementById('g' + i)) {
		var e = document.getElementById('g' + i)
		var r = new RegExp('<a [^>]*id="?' + anker + '["> ]', 'i')
		if (e.innerHTML.match(r)) {
			aktiv = 1
		}
		if (aktiv) {
			var r = new RegExp('((?:<span class="?n"?>|)<a [^>]*id="?' + anker + '["> ])', 'i')
			if (e.innerHTML.match(r)) {
				e.innerHTML = e.innerHTML.replace(r, '<span class="blue">' + RegExp.$1)
			}
			else{
				e.innerHTML = '<span class="blue">' + e.innerHTML
			}
			if (e.innerHTML.match('<!-- :/' + anker + ': -->')) {
				e.innerHTML = e.innerHTML.replace('<!-- :/' + anker + ': -->', '</span><!-- :: -->')
				break
			}
			else{
				e.innerHTML = e.innerHTML + '</span><!-- :: -->'
			}
		}
		if (e.innerHTML.indexOf('<!-- :/' + anker + ': ') > -1) {
			break
		}
		i++
	}
}

function plausibilitaetspruefung_bereich(anker) {
	if (document.getElementById(anker.replace(/^((?:Abs|Nr)[^:]*):/, "$1:S1:"))) {
		return anker.replace(/^((?:Abs|Nr)[^:]*):/, "$1:S1:")
	}
	else if (document.getElementById(anker.replace(/^((?:Abs|Nr)[^:]*):S1/, "$1"))) {
		return anker.replace(/^((?:Abs|Nr)[^:]*):S1/, "$1")
	}
	else {
		return ''
	}
}

function sprungfunktion(show) {
	var r = new Array;
	if (!document.getElementById('alpha')) {
		return;
	}
	var a = document.getElementById('alpha').getElementsByTagName("a");
	for (var i = 0; i < a.length; i++) {
		if (a[i].id != '') {
			r.push('<p onclick="bereichsmarkierung(\''+a[i].id+'\');">' + id_a(a[i].id).link('#' + a[i].id)+'</p>');
		}
	}
	if (!document.getElementById("Absatz")) {
		var Absatz = document.createElement("div");
		with (Absatz) {
			className = "BTooltip";
			id = "Absatz";
			style.display = "none";
			style.position = "absolute";
			style.right = "0";
			style.top = "-50px";
			if (ie6) {
				style.right = "20px";
			}
			style.width = "200px";
		}
		var Absatztext = document.createElement("div");
		with (Absatztext) {
			className = "BTooltipText";
			id = "Absatztext";
		}
		var Absatzclose = "<a class=\"close o_u\" style=\"right:10px; top:5px;\"  onclick=\"showhide('Absatz');\"></a>";
		var Absatzhead = document.createElement("div");
		with (Absatzhead) {
			className = "BTooltipHead";
			innerHTML = "Zu Vorschriftenteil springen und hervorheben";
		}
		var Absatzbody = document.createElement("div");
		with (Absatzbody) {
			style.padding = "10px";
			style.height = "250px";
			style.overflow = "auto";
			innerHTML = r.join("\n");
		}
		Absatztext.innerHTML = Absatzclose;
		Absatztext.appendChild(Absatzhead);
		Absatztext.appendChild(Absatzbody);
		Absatz.appendChild(Absatztext);
		document.getElementById('alpha').appendChild(Absatz);
	}
	if (show) {
		showhide("Absatz");
	}
}

function id_a(id) {
	var r = new Array
	var t = id.split(':')
	for (var i = 0; i < t.length; i++) {
		if (t[i].match(/(.*?)([0-9]+[a-z]*)/)) {
			r.push(RegExp.$1 + '. ' + RegExp.$2)
		}
		if (t[i].match(/^(.*?B)([a-z]+)/)) {
			r.push(RegExp.$2 + ')')
		}
	}
	return r.join(' ')
}

function validateEmail(form_id,email, email_string) {
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	if (email_string) {
		var address = email_string;
	} else {
		var address = document.forms[form_id].elements[email].value;
	}
	if (reg.test(address) == false) {
		alert('Ungültige E-Mail-Adresse');
		return false;
	}
	return true;
}

function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			func();
			oldonload();
		}
	}
}

