/**
 * @copyright Mirko Witzmann und Christoph Wittstock 2007
 * @file /js/BBCode.js
 */

function bbcode (action, tform, field) {

	var form = $F(tform).elements[field];

	if(action == "url") {

		var urlBBCode = "";

		thisURL = prompt("Bitte gib den Link zu der Homepage an", "http://");
		thisTitle = prompt("Bitte gib den Namen des Links an", "Linkname");
		urlBBCode = "[URL=" + thisURL  + "]" + thisTitle + "[/URL]";

		if(thisURL == "" || thisURL == null || thisURL == "http://") {

			form.value = form.value;

		} else {

			form.value = form.value + urlBBCode;

		}

	}

	if(action == "email") {

		var emailBBCode = "";

		thisEMail = prompt("Bitte gib die E-Mail Adresse an", "max.mustermann@provider.de");
		emailBBCode = "[EMAIL]" + thisEMail + "[/EMAIL]";

		if(thisEMail == "" || thisEMail == null || thisEMail == "max.mustermann@provider.de") {

			form.value = form.value;

		} else {

			form.value = form.value + emailBBCOde;

		}

	}

	if(action == "underline") {

		var underlinedBBCode = "";

		thisUnderlined = prompt("Bitte gib den Text an, der unterstrichen werden soll", "");
		underlinedBBCode = "[U]" + thisUnderlined + "[/U]";

		if(thisUnderlined == "" || thisUnderlined == null) {

			form.value = form.value;

		} else {

			form.value = form.value + underlinedBBCode;

		}

	}

	if(action == "bold") {

		var boldBBCode = "";

		thisBold = prompt("Bitte gib den Text an, der fett geschrieben werden soll", "");
		boldBBCode = "[B]" + thisBold + "[/B]";

		if(thisBold == "" || thisBold == null) {

			form.value = form.value;

		} else {

			//form.value = insert("[B]" + thisBold, "[/B]", tform, field);

			form.value = form.value + boldBBCode;

		}

	}

	if(action == "italic") {

		var italicBBCode = "";

		thisItalic = prompt("Bitte gib den Text an, der kursiv geschrieben werden soll", "");
		italicBBCode = "[I]" + thisItalic + "[/I]";

		if(thisItalic == "" || thisItalic == null) {

			form.value = form.value;

		} else {

			form.value = form.value + italicBBCode;

		}

	}

	if(action == "center") {

		var centerBBCode = "";

		thisCenter = prompt("Bitte gib den Text an, der zentriert werden soll", "");
		centerBBCode = "[CENTER]" + thisCenter + "[/CENTER]";

		if(thisCenter == "" || thisCenter == null) {

			form.value = form.value;

		} else {

			form.value = form.value + centerBBCode;

		}

	}

	if(action == "right") {

		var rightBBCode = "";

		thisRight = prompt("Bitte gib den Text an, der rechtsbündig werden soll", "");
		rightBBCode = "[RIGHT]" + thisRight + "[/RIGHT]";

		if(thisRight == "" || thisRight == null) {

			form.value = form.value;

		} else {

			form.value = form.value + rightBBCode;

		}

	}

	if(action == "list") {

		var listBBCode = "";

		thisIntList = prompt("Bitte gib die Anzahl der Listenfelder an", "");

		if(thisIntList == "" || thisIntList == 0) {

			alert("Du musst angeben, wieviele Listenfelder erstellen werden sollen!");

			return bbcode();

		}

		var thisListOption = new Array(thisIntList);

		for(var i = 1; i <= thisIntList; i++) {

			thisListOption[i] = prompt("Bitte gib den Namen des Listenfelds an", "Name");

		}

		listBBCode = "[LIST]";
		for(var i = 1; i <= thisIntList; i++) {

			listBBCode += "[*]"+thisListOption[i];

		}
		listBBCode += "[/LIST]";

		form.value = form.value + listBBCode;

	}

	if(action == "image") {

		var imgBBCode = "";

		thisImg = prompt("Bitte gib den Link zu dem Bild an", "http://");
		imgBBCode = "[IMG]" + thisImg + "[/IMG]";

		if(thisImg == "" || thisImg == null || thisImg == "http://") {

			form.value = form.value;

		} else {

			form.value = form.value + imgBBCode;

		}

	}

	function isInt(elm) {

		if (elm == "" || elm == 0) {

			return false;

		}

		for (var i = 0; i < elm.length; i++) {

			if (elm.charAt(i) < "0" || elmcharAt(i) > "9") {

				return false;

			}

		}

		return true;
	}

}

function smiley (smiley, tform, field) {

	var form = $F(tform).elements[field];

	form.value = form.value + smiley;

}

function insert(aTag, eTag, tform, field) {

  var input = $F(tform).elements[field];
  input.focus();

  /* für Internet Explorer */

  if(typeof document.selection != 'undefined') {

    /* Einfügen des Formatierungscodes */

    var range = document.selection.createRange();
    var insText = range.text;

    range.text = aTag + insText + eTag;

    /* Anpassen der Cursorposition */

    range = document.selection.createRange();

    if (insText.length == 0) {

      range.move('character', -eTag.length);

    } else {

      range.moveStart('character', aTag.length + insText.length + eTag.length);

    }

    range.select();

  } else if(typeof input.selectionStart != 'undefined') {  /* für neuere auf Gecko basierende Browser */

    /* Einfügen des Formatierungscodes */

    var start = input.selectionStart;
    var end = input.selectionEnd;
    var insText = input.value.substring(start, end);

    input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);

	/* Anpassen der Cursorposition */
    var pos;

    if (insText.length == 0) {

      pos = start + aTag.length;

    } else {

      pos = start + aTag.length + insText.length + eTag.length;

    }
    input.selectionStart = pos;
    input.selectionEnd = pos;

  } else { /* für die übrigen Browser */

    /* Abfrage der Einfügeposition */

    var pos;
    var re = new RegExp('^[0-9]{0,3}$');

    while(!re.test(pos)) {

      pos = prompt("Einfügen an Position (0.." + input.value.length + "):", "0");

    }

    if(pos > input.value.length) {

      pos = input.value.length;

    }

    /* Einfügen des Formatierungscodes */

    var insText = prompt("Bitte geben Sie den zu formatierenden Text ein:");
    input.value = input.value.substr(0, pos) + aTag + insText + eTag + input.value.substr(pos);

  }

}
