var FensterX = screen.width-50;
var FensterY = screen.height-100;
var parameter = "resizable=yes,width="+FensterX+",height="+FensterY+",left=50,top=50,scrollbars=yes";

var BilderFenster = false;
function ZeigeBilder() {
	if (false == BilderFenster || BilderFenster.closed) {
		BilderFenster = window.open("bilder.php", "Bilder", parameter);
	}
	BilderFenster.focus();
}

var PdfFenster = false;
function ZeigePdf() {
	if (false == PdfFenster || PdfFenster.closed) {
		PdfFenster = window.open("pdf.php", "PDF", parameter);
	}
	PdfFenster.focus();
}

function Trennzeichen(){
	with (document.editform) {
		var Trenner = prompt("Trennzeichen für Tabellen-Eingabe", trennz.value);
		if ("" < Trenner) trennz.value = Trenner;
		textfeld.focus();
	}
}

function remove() {
	var input = document.forms[0].elements['textfeld'];
	var text = input.value;

	input.focus();
	/* für Internet Explorer */
	if (typeof document.selection != 'undefined') {
		var range = document.selection.createRange();
		var insText = range.text;
		if ("" == insText ) {
	  	  var marker = "~×~×~";
		  range.text = marker;
		  var start = input.value.search(/~×~×~/);
		  range.moveStart('character', -marker.length);
	     range.text = "";
		  start = findTag(input,text,start);
		  range.moveStart('character', start);
		  range.moveEnd('character', start+1 - input.value.length);
	     range.select();
		}
	}
	/* für neuere auf Gecko basierende Browser */
	else if(typeof input.selectionStart != 'undefined') 	{
		var start = input.selectionStart;
		if (start == input.selectionEnd) {
			start = findTag(input,text,start);
			input.selectionStart = start;
			input.selectionEnd = start;
		}
	}
  return false;
}

function findTag(input,text,start) {
	var vorne = text.substr(0, start);
	var klammerauf = vorne.lastIndexOf("[");
	var klammerzu = vorne.lastIndexOf("]")
	if (klammerauf > klammerzu) {
		var hinten = text.substr(start);
		klammerzu = hinten.indexOf("]");
		var tag = text.substring(klammerauf+1,start+klammerzu);
		start += klammerzu + 1;
		if (0 == tag.indexOf("/")) {
			tag = tag.substring(1);
			start = vorne.lastIndexOf("["+tag+"]") + tag.length + 2;
		}
     start = removeTag(input,start,"["+tag+"]","[/"+tag+"]");
	}
	return start;
}

function insert(Tag) {
	var aTag = "["+Tag+"]";
	var eTag = "[/"+Tag+"]";
	var input = document.forms[0].elements['textfeld'];
	input.focus();

	/* für Internet Explorer */
	if(typeof document.selection != 'undefined') {
		/* Einfügen des Formatierungscodes */
		var range = document.selection.createRange();
		var insText = range.text;
		if (insText > "" ) {
			range.text = aTag + insText + eTag;
			/* Anpassen der Cursorposition */
		} else {
	  	  var marker = "~×~×~";
		  range.text = marker;
		  var start = input.value.search(/~×~×~/);
		  range.moveStart('character', -marker.length);
	     range.text = "";
	     start = removeTag(input,start,aTag,eTag);
	     //alert(start+"\n"+(start-input.value.length));
		  range.moveStart('character', start);
		  range.moveEnd('character', start+1 - input.value.length);
		}
		if (insText.length == 0) {
			//range.move('character', -eTag.length);
		} else {
   		range = document.selection.createRange();
			range.moveStart('character', aTag.length);
			range.moveEnd('character', -eTag.length);
		}
		range.select();

	}
	/* für neuere auf Gecko basierende Browser */
	else if(typeof input.selectionStart != 'undefined')
	{
		var start = input.selectionStart;
		var end = input.selectionEnd;
		var text = input.value;
		var insText = text.substring(start, end);
		if (insText.length > 0) {
			input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);
			start = start + aTag.length;
		} else {
	      start = removeTag(input,start,aTag,eTag);
		}
		end   = start + insText.length;
		input.selectionStart = start;
		input.selectionEnd = end;
	}
	return false;
}

function trim(text) {
	text =  text.replace(/\u00A0/g,' ');
	return text.replace(/^\s{0,}/g,'');
}

function insert_link(tag,id,link) {
	var aTag = "["+tag+"]";
	var eTag = "[/"+tag+"]";
	var input = document.forms[0].elements['textfeld'];
	input.focus();
	link = trim(link);
	if ("" == link) return false;
	var seite = link;
	var abfrage= "An der aktuellen Cursor-Position einen Link auf die Seite "+seite+ " setzen?";
	if (0 == id){
		id = link;
		abfrage= "An der aktuellen Cursor-Position das Bild "+seite+ " einsetzen?";
	}

	if(typeof document.selection != 'undefined') {
		/* für Internet Explorer */
		var range = document.selection.createRange();
		var insText = range.text;
		if (insText > "" ) {
			link = insText;
		} else {
	  	  var marker = "~×~×~";
		  range.text = marker;
		  var start = input.value.search(/~×~×~/);
		  range.moveStart('character', -marker.length);
		  range.text = ""; //marker gelöscht
		}
		link = prompt(abfrage,link);
		if (link) {
			range.text = aTag + id + " " + link + eTag;
			if (insText.length == 0) {
				range.moveStart('character',  - link.length -eTag.length);
				range.moveEnd('character',    -eTag.length);
			} else {
				range.moveStart('character', aTag.length + id.length + 1);
				range.moveEnd('character', -eTag.length);
			}
			range.select();
		}
	} else if(typeof input.selectionStart != 'undefined') 	{
		/* für neuere auf Gecko basierende Browser */
		var start = input.selectionStart;
		var end = input.selectionEnd;
		var text = input.value;
		var insText = text.substring(start, end);
		if (insText.length > 0) {
			link = insText;
		}
		link = prompt(abfrage,link);
		if (link) {
			input.value = input.value.substr(0, start) + aTag + id + " " + link + eTag + input.value.substr(end);
			start = start + aTag.length + id.length +1;
			end   = start + link.length;
			input.selectionStart = start;
			input.selectionEnd = end;
		}
	}
	return false;
}

function removeTag(input,start,aTag,eTag) {
	var vorne = input.value.substr(0, start);
	var hinten = input.value.substr(start);
	var aSuche = vorne.lastIndexOf(aTag);
	var eSuche = vorne.lastIndexOf(eTag);
	if (eSuche < aSuche) {
		eSuche = hinten.indexOf(eTag);
		//alert ("Letztendlich:\n\naSuche: " + aSuche+"\neSuche: "+eSuche+"\nStart:"+start+"\nvorne: "+vorne+"\nhinten: "+hinten);
		if (aSuche != -1 && eSuche != -1) {
			var neu = vorne.substr(0,aSuche);
			var mitte = aSuche + aTag.length;
			neu += input.value.substr(mitte,start+eSuche-mitte);
			neu += input.value.substr(start + eSuche+eTag.length)
			input.value = neu;
			start = start-aTag.length;
		}
	}
	return start;
}

var ausgabe_id = "";
function ajax_post(ziel,xml,daten) {

	ausgabe_id = ziel;
    var url= xml;
    http_request = false;

    if (window.XMLHttpRequest) { // Mozilla, Safari, IE7...
        http_request = new XMLHttpRequest();
    } else if (window.ActiveXObject) { // IE
            http_request = new ActiveXObject("Microsoft.XMLHTTP");
    }

    if (!http_request) {
        alert('Ich gebe auf :( Ich kann keine XMLHTTP Instanz erstellen)');
        return false;
    }

    http_request.open('POST', url);
    http_request.onreadystatechange = ajax_ausgabe;
    http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    http_request.send(encodeURI(daten));

}

function ajax_get(ziel,xml) {

	ausgabe_id = ziel;
    var url= xml;
    http_request = false;

    if (window.XMLHttpRequest) { // Mozilla, Safari, IE7...
        http_request = new XMLHttpRequest();
    } else if (window.ActiveXObject) { // IE
            http_request = new ActiveXObject("Microsoft.XMLHTTP");
    }

    if (!http_request) {
        alert('Ich gebe auf :( Ich kann keine XMLHTTP Instanz erstellen)');
        return false;
    }

    http_request.open('GET', url);
    http_request.onreadystatechange = ajax_ausgabe;
    http_request.send(null);

}

function ajax_ausgabe() {

    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
        		var text = http_request.responseText;
	    		var Ausgabe = document.getElementById(ausgabe_id);
				Ausgabe.innerHTML = text;
        } else {
            alert(http_request.status + ': Es gab ein Problem mit dem AJAX-Request.');
        }
    }

}

