// In die Zwischenablage kopieren
function Copy(feld) {
	var markfeld=eval("document."+feld);
	markfeld.focus();
	markfeld.select();
	therange=markfeld.createTextRange();
	therange.execCommand("Copy");
	alert("Inhalt wurde erfolgreich kopiert");
}

// Frame-Zerstörer
function frames() {
	if (window!= top) top.location.href = location.href;
}

// Glossar
var selection='';
function storeSelection () {
	if (window.getSelection) {
		selection = parent.getSelection().toString();
	} else if (document.getSelection) {
		selection = parent.document.getSelection();
	} else if (document.selection) {
		selection = parent.document.selection.createRange().text;
	}
}

function checkSelection () {
	if (selection=='') {
		alert('So funktioniert yKnow:\nMarkiere ein Wort, dessen Bedeutung du nicht weisst. Klicke darauf auf den iKnow-Button. Es öffnet sich ein Fenster, das dir -sofern in der Datenbank- das Wort erklärt.');
	} else {
		window.open('glossar.php?wort='+ selection +'','OK','height=270,width=300,dependent=no,location=no,menubar=no,resizable=no,status=no,toolbar=no');
	}
}

// Artikel schreiben bzw. bb-codes
function test() {
	if(this.document.document.eintr.name.value == '') {
		alert('Ein Name muss schon sein!');
		return false;
	}
	if(this.document.document.eintr.mail.value == '') {
		alert('Eine Mailadresse muss schon sein!');
		return false;
	}
	if(this.document.document.eintr.mail.value == '@') {
		alert('Eine Mailadresse muss schon sein!');
		return false;
	}
	if(this.document.document.eintr.eintrag.value == '') {
		alert('Ein Eintrag muss schon sein!');
		return false;
	}
}

function bb_pic() {
	var url=prompt("Bitte gebe die URL des Bildes ein","http://");
	if((url!=null) && (url!="") && (url!="http://")) {
		document.eintr.eintrag.value=document.eintr.eintrag.value+"[IMG]"+url+"[/IMG]";
	}
	document.eintr.eintrag.focus();
}

function bb_italic() {
	text=prompt("Bitte gebe den Text ein, der kursiv erscheinen soll","");
	if((text!=null) && (text!="")) {
		document.eintr.eintrag.value=document.eintr.eintrag.value + "[I]" + text + "[/I]";
	}
	document.eintr.eintrag.focus();
}

function bb_mail() {
	mail=prompt("Bitte gebe die Mailadresse ein","");
	if((mail!=null) && (mail!="")) {
		document.eintr.eintrag.value=document.eintr.eintrag.value + "[EMAIL]" + mail + "[/EMAIL]";
	}
	document.eintr.eintrag.focus();
}

function bb_under() {
	text=prompt("Bitte gebe den Text ein, der unterstrichen erscheinen soll","");
	if((text!=null) && (text!="")) {
		document.eintr.eintrag.value=document.eintr.eintrag.value + "[U]" + text + "[/U]";
	}
	document.eintr.eintrag.focus();
}

function bb_url() {
        desc=prompt("Bitte gib ggf. eine Linkbeschreibung ein", "");
	url=prompt("Bitte gebe die URL ein","http://");
	if((url!="") && (url!=null) && (url!="http://") && (desc==""||desc==null)) {
		document.eintr.eintrag.value=document.eintr.eintrag.value + "[URL]" + url + "[/URL]";
	}
	else if((url!="") && (url!=null) && (url!="http://") && (desc!="")) {
		document.eintr.eintrag.value=document.eintr.eintrag.value + "[URL=" + url + "]" + desc + "[/URL]";
	}
	document.eintr.eintrag.focus();
}

function bb_b() {
	text=prompt("Bitte gebe den Text ein, der fett erscheinen soll","");
	if((text!=null) && (text!="")) {
		document.eintr.eintrag.value=document.eintr.eintrag.value + "[B]" + text + "[/B]";
	}
	document.eintr.eintrag.focus();
}

function bb_code() {
	var datei=prompt("Bitte füge den Dateinamen ein (optional)","");
	var text=prompt("Bitte gebe den Code ein","");
	if((text!=null) && (text!="") && (datei==null || datei=="")) {
		document.eintr.eintrag.value=document.eintr.eintrag.value + "[CODE]" + text + "[/CODE]";
	} else if((text!=null) && (text!="") && (datei!=null || datei!="")) {
		document.eintr.eintrag.value=document.eintr.eintrag.value + "[CODE=" + datei +"]" + text + "[/CODE]";
	}
	document.eintr.eintrag.focus();
}


function bb_php() {
	datei=prompt("Bitte gib den Dateinamen ein (optional)","");
	text=prompt("Bitte gebe den PHP-Code ein","");
	if((text!=null) && (text!="") && (datei==null || datei=="")) {
		document.eintr.eintrag.value=document.eintr.eintrag.value + "[PHP]" + text + "[/PHP]";
	} else if((text!=null) && (text!="") && (datei!=null || datei!="")) {
		document.eintr.eintrag.value=document.eintr.eintrag.value + "[PHP=" + datei +"]" + text + "[/PHP]";
	}
	document.eintr.eintrag.focus();
}

function bb_line() {
	document.eintr.eintrag.value=document.eintr.eintrag.value + "[HR]";
	document.eintr.eintrag.focus();
}

// Bild ersetzen
function pic_replace() {
		var text;
		if(document.eintr.section.value==1) text='internet.gif';
		if(document.eintr.section.value==2) text='sonstiges.gif';
		if(document.eintr.section.value==3) text='software.gif';
		if(document.eintr.section.value==4) text='google.gif';
		if(document.eintr.section.value==5) text='firmen.gif';
		if(document.eintr.section.value==6) text='yubb.gif';
		if(document.eintr.section.value==7) text='navigation.gif';
		if(document.eintr.section.value==8) text='fenster.gif';
		if(document.eintr.section.value==9) text='text.gif';
		if(document.eintr.section.value==10) text='sonstiges.gif';
		if(document.eintr.section.value==11) text='schnipsel.gif';
		if(document.eintr.section.value==12) text='html.gif';
		if(document.eintr.section.value==13) text='css.gif';
		if(document.eintr.section.value==14) text='htaccess.gif';
		if(document.eintr.section.value==15) text='allgemeines.gif';
		if(document.eintr.section.value==16) text='php.gif';
        document.images.vorschau.src='images/'+text;
}

function ShowHide(id) {
	var itm = null;
	if (document.getElementById) {
		itm = document.getElementById(id);
	} else if (document.all) {
		itm = document.all[id];
	} else if (document.layers) {
		itm = document.layers[id];
	}

	if (!itm) {
		// do nothing
	} else if (itm.style) {
		if (itm.style.display == "none") {
			itm.style.display = "";
		} else {
			itm.style.display = "none";
		}
	} else {
		itm.visibility = "show";
	}
}

/* http://www.kryogenix.org/code/browser/searchhi/ */
/* Modified 20021006 to fix query string parsing and add case insensitivity */
function highlightWord(node,word) {
	// Iterate into this nodes childNodes
	if (node.hasChildNodes) {
		var hi_cn;
		for (hi_cn=0;hi_cn<node.childNodes.length;hi_cn++) {
			highlightWord(node.childNodes[hi_cn],word);
		}
	}
	
	// And do this node itself
	if (node.nodeType == 3) { // text node
		tempNodeVal = node.nodeValue.toLowerCase();
		tempWordVal = word.toLowerCase();
		if (tempNodeVal.indexOf(tempWordVal) != -1) {
			pn = node.parentNode;
			if (pn.className != "searchword") {
				// word has not already been highlighted!
				nv = node.nodeValue;
				ni = tempNodeVal.indexOf(tempWordVal);
				// Create a load of replacement nodes
				before = document.createTextNode(nv.substr(0,ni));
				docWordVal = nv.substr(ni,word.length);
				after = document.createTextNode(nv.substr(ni+word.length));
				hiwordtext = document.createTextNode(docWordVal);
				hiword = document.createElement("span");
				hiword.className = "searchword";
				hiword.appendChild(hiwordtext);
				pn.insertBefore(before,node);
				pn.insertBefore(hiword,node);
				pn.insertBefore(after,node);
				pn.removeChild(node);
			}
		}
	}
}

function googleSearchHighlight() {
	if (!document.createElement) return;
	ref = document.referrer;
	if (ref.indexOf('?') == -1) return;
	qs = ref.substr(ref.indexOf('?')+1);
	qsa = qs.split('&');
	for (i=0;i<qsa.length;i++) {
		qsip = qsa[i].split('=');
	        if (qsip.length == 1) continue;
        	if (qsip[0] == 'q' || qsip[0] == 'p') { // q= for Google, p= for Yahoo
			words = unescape(qsip[1].replace(/\+/g,' ')).split(/\s+/);
	                for (w=0;w<words.length;w++) {
				highlightWord(document.getElementsByTagName("body")[0],words[w]);
                	}
	        }
	}
}

window.onload = googleSearchHighlight;