//
// Checks/unchecks a group of checkboxes
//
function setCheckBoxes(setForm, setElement, setStatus)
{
    setObject       = document.forms[setForm].elements[setElement];
    setObjectLength = setObject.length;
    
    if(typeof(setObjectLength) == "undefined")
    {
        setObject.checked = setStatus;
    }
    else
    {
        for(i = 0; i < setObjectLength; i++)
        {
            setObject[i].checked = setStatus;
        }
    }
}

//
// Checks/unchecks a checkbox by its id.
//
function toggleCheckBox(boxId)
{
	document.getElementById(boxId).checked = document.getElementById(boxId).checked ? false : true;
}

//
// Displays/Hides a box
//
function toggleBox(id)
{
    if (document.getElementById(id).style.display == "")
    {
        display = "none";
    }
    else
    {
        display = "";
    }
    document.getElementById(id).style.display = display;
}

//
// Disables/Enables a checkbox or radio button
//
function toggleFormBox(id)
{
    if (document.getElementById(id).disabled)
    {
        disabled = false;
    }
    else
    {
        disabled = true;
    }
    document.getElementById(id).disabled = disabled;
}

//
// Lets an admin test a wikistyle before saving it
//
function testWikiStyle()
{
	var nw = window.open('about:blank', 'styletest', 'height=200,width=400,location=no,menubar=no,resizable=yes,scrollbars=yes,status=no,toolbar=no');
	
	nw.document.write("<html>\n<head>\n<title>Test</title>\n<body>\n<span style=\"");
	
	var styleString  = document.editstyle.style_attribs.value;
	var styleAttribs = styleString.split("\n");
	
	for(i = 0; i < styleAttribs.length; i++)
	{
		var styleAttrib = styleAttribs[i].split(':');
		nw.document.write(styleAttrib[0] + ':' + styleAttrib[1] + ';');
	}
	
	nw.document.write("\">" + document.editstyle.style_name.value + "</span>\n</body>\n</html>");
}

//
// Code for switching a style sheet
//
var xfelement = new Array()	

function xfFetchElement(id)
{
	if(xfelement[id]) {
		return xfelement[id]
	}
	
	if (document.getElementById) {
		xfelement[id] = document.getElementById(id)
	} else if (document.all) {
		xfelement[id] = document.all[id]
	} else if (document.layers) {
		xfelement[id] = document.layers[id]
	}
	
	return xfelement[id]
}

function switchCSS(newCSS) {
	xfFetchElement('cssswitch').href = newCSS;
}
function abc_insert(aTag,eTag, name) {

	//http://aktuell.de.selfhtml.org/tippstricks/javascript/bbcode/ modified
  var input = document.getElementById(name);
  input.focus();
  /* fuer Internet Explorer */
  
  if(typeof document.selection != 'undefined') {
    /* Einfuegen 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();
  }
  /* fuer neuere auf Gecko basierende Browser */
  else if(typeof input.selectionStart != 'undefined')
  {
    /* Einfuegen 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;
  }
  /* fuer die uebrigen Browser */
  else
  {
    /* Abfrage der Einfuegeposition */
    var pos;
    var re = new RegExp('^[0-9]{0,3}$');
    while(!re.test(pos)) {
      pos = prompt("Einfuegen an Position (0.." + input.value.length + "):", "0");
    }
    if(pos > input.value.length) {
      pos = input.value.length;
    }
    /* Einfuegen 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);
  }
}