/**
* @author     Balam-Webdesign <webdesign@balam.de>
* @copyright  2006 Balam-Webdesign
* @link       http://www.balam.de
* @version    0.1
* @changelog  2006-12-12 Erste Verion
*/

// Funktion zum Einfügen von BBCodes
function insertBBCode(form,field,tag) {

	var start_tag = "[" + tag + "]";
	var end_tag = "[/" + tag + "]";

  	var input = document.forms[form].elements[field];
  	input.focus();

  	/* für Internet Explorer */
  	if(typeof document.selection != 'undefined') {

    		/* Einfügen des Formatierungscodes */
    		var range = document.selection.createRange();
    		var str = range.text;
    		var txtstr = start_tag + str + end_tag;
	     range.text = txtstr;

    		/* Anpassen der Cursorposition */
    		if (str.length == 0) {
      	     range.move('character', -end_tag.length);
    		}
    		range.select();
  	}

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

	     var selLength = input.textLength;
	     var selStart = input.selectionStart;
	     var selEnd = input.selectionEnd;
	     var oldScrollTop = input.scrollTop;

          /* Einfügen des Formatierungscodes */
	     var s1 = (input.value).substring(0,selStart);
	     var s2 = (input.value).substring(selStart, selEnd)
	     var s3 = (input.value).substring(selEnd, selLength);
	     input.value = s1 + start_tag + s2 + end_tag + s3;
          
		/* Anpassen der Cursorposition */
    		if (s2.length == 0) {
	          input.selectionStart = s1.length + start_tag.length;
	     	input.selectionEnd = s1.length + start_tag.length;
    		}
		else {
		     input.selectionStart = s1.length + start_tag.length + s2.length + end_tag.length;
		     input.selectionEnd = s1.length + start_tag.length + s2.length + end_tag.length;
    		}
	     input.scrollTop = oldScrollTop;
	     input.focus();
  	}
  
  	/* für die übrigen Browser */
  	else {
    
    		/* Abfrage der Einfügeposition */
		var pos = input.value.length;

    		/* Einfügen des Formatierungscodes */
    		var str = prompt("Bitte geben Sie den zu formatierenden Text ein:");
    		input.value = input.value.substr(0, pos) + start_tag + str + end_tag + input.value.substr(pos);
    		return;
  	}
}

// Funktion zum Einfügen von Smilies oder anderen Inhalten
function insertContent(form,field,txtstr) {

  	var input = document.forms[form].elements[field];
	input.focus();

  	/* für Internet Explorer */
  	if(typeof document.selection != 'undefined') {

		/* Einfügen des Formatierungscode*/
    		var range = document.selection.createRange();
    		var str = range.text;
	     range.text = txtstr;

		/* Anpassen der Corsurposition */
		range.select();
  	}

  	/* für neuere auf Gecko basierende Browser */
  	else if(typeof input.selectionStart != 'undefined') {
		
	    	var selEnd = input.selectionEnd;
	    	var txtLen = input.value.length;
	    	var txtbefore = input.value.substring(0,selEnd);
	    	var txtafter =  input.value.substring(selEnd, txtLen);
	    	var oldScrollTop = input.scrollTop;
	    	input.value = txtbefore + txtstr + txtafter;
	    	input.selectionStart = txtbefore.length + txtstr.length;
	    	input.selectionEnd = txtbefore.length + txtstr.length;
	    	input.scrollTop = oldScrollTop;
	    	input.focus();
  	}
  
  	/* für die übrigen Browser */
  	else {
    
    		input.value += txtstr;
    		input.focus();
  	}
}

// Funktion zum Einfügen von Links
function insertLink(form,field) {

	var link_text='Link text (optional):';
	var link_target='Link target (URL):';

  	var input = document.forms[form].elements[field];
  	input.focus();

  	/* für Internet Explorer */
  	if(typeof document.selection != 'undefined') {

    		/* Einfügen des Formatierungscodes */
    	    var range = document.selection.createRange();
    		var str = range.text;
    		var insert_link = prompt(link_target,'http://');
    		if(range.text=='' && insert_link!='' && insert_link!=null) str = prompt(link_text,'');

    		if(insert_link && str!=null) {

      		if(str!='') {
				link = "[link=" + insert_link + "]" + str + "[/link]";
        			range.text = link;
       		}
      		else {
				link = "[link]" + insert_link + "[/link]";
        			range.text = link;
       		}
     	}

    		/* Anpassen der Cursorposition */
    		range.select();
    		return;
  	}

  	/* für neuere auf Gecko basierende Browser */
  	else if(typeof input.selectionStart != 'undefined') {
          
		/* Einfügen des Formatierungscodes */
    		var selLength = input.textLength;
    		var selStart = input.selectionStart;
    		var selEnd = input.selectionEnd;
    		var oldScrollTop = input.scrollTop;
    		var s1 = (input.value).substring(0,selStart);
    		var s2 = (input.value).substring(selStart, selEnd);
    		var s3 = (input.value).substring(selEnd, selLength);

    		var insert_link = prompt(link_target,'http://');
    		if(selEnd-selStart==0 && insert_link!='' && insert_link!=null) s2 = prompt(link_text,'');
    		
		if(insert_link && s2!=null) {

      		if(s2!='') {
				link = s1 + '[link=' + insert_link + ']' + s2 + '[/link]' + s3;
        			input.value = link;
       		}
    			else {
				link = s1 + '[link]' + insert_link + '[/link]' + s3;
        			input.value = link;
       		}
               
			/* Anpassen der Cursorposition */
      		input.selectionStart = link.length;
      		input.selectionEnd = link.length;
      		input.scrollTop = oldScrollTop;
      		input.focus();
      		return;
     	}
     }


  	/* für die übrigen Browser */
  	else {
    
    		/* Abfrage der Einfügeposition */
		var pos = input.value.length;

    		/* Einfügen des Formatierungscodes */
    		var insert_link = prompt(link_target,'http://');
    		var insert_text = prompt(link_text,'');

		if(insert_link && insert_text!=null) {

      		if(insert_text!='') {
				link = '[link=' + insert_link + ']' + insert_text + '[/link]';
       		}
    			else {
				link = '[link]' + insert_link + '[/link]';
       		}
               
			input.value = input.value.substr(0, pos) + link + input.value.substr(pos);
    			return;
     	}

  	}

}

// Funktion zum Einfügen von Keywords
function addKeyword(form,field,select) {

	var selection = document.forms[form].elements[select];
  	var input = document.forms[form].elements[field];
  	var currentindex = selection.selectedIndex;
  	var txtstr = selection.options[currentindex].value;
	
	input.focus();

	if (input.value == "") {
	     input.value += txtstr;
	}
 	else {
	     input.value += "," + txtstr;
 	}
    	
	selection.focus();

}
