// show/hide html-element
function show (my_id)
{
  if(document.getElementById) {
    mystate = document.getElementById(my_id).style.display;
    if (mystate=="block") {
      document.getElementById(my_id).style.display = "none";
    } else {
      document.getElementById(my_id).style.display = "block";
    }
  }
}

// check/uncheck all
function checkAllSelectitems ()
{
  for (var i = 0; i < document.selectItems.elements.length; i++)
    {
      if(document.selectItems.elements[i].type == 'checkbox') {
	document.selectItems.elements[i].checked = !(document.selectItems.elements[i].checked);
      }
    }
}

// highlight by class
// @todo Rework: make more efficient

var x = new Array();
function initHighlightElements (praefix)
{
	var y = document.getElementsByTagName('div');
	if (y) {
		for (var i = 0; i < y.length; i++) {
			if (y[i].className.indexOf(praefix) > 0) {
				x.push(y[i]);
			}
		}
	}
}

function highlight (my_class, on_off)
{
  if (x) {
    for (var i = 0; i < x.length; i++) {
      if (x[i].className.indexOf(my_class) > 0) {
	// x[i].setAttribute('style', new_css); // @todo doesn't work in ie
	if (on_off == 'on') {
	  x[i].style.border = '1px solid orange';
	  x[i].style.cursor = 'pointer';
	} else {
	  x[i].style.border = '1px solid #fff';
	  x[i].style.cursor = 'auto';
	}
      }
    }
  }
}





// *** set/unset checkbox-values depending on null-value ***
// -- onclick null-value -> uncheck values --
function uncheckValues (nameioel)
{
  my_elements = document.getElementsByName(nameioel + '[]');
  for (var i = 0; i < my_elements.length; i++) {
    if (my_elements[i].value != 'nope') {
      my_elements[i].checked = false;
    } else {
      my_elements[i].checked = true;
    }
  }
}

// -- onlclick values -> uncheck null-value --
function uncheckNullValue (nameioel)
{
  var valueschecked = false;
  my_elements = document.getElementsByName(nameioel + '[]');

  for (var i = 0; i < my_elements.length; i++) {
    if (my_elements[i].value == 'nope') {
      my_elements[i].checked = false;
    } else {
      if (my_elements[i].checked && !valueschecked) {
	valueschecked = true;
      }
    }
  }
  if (!valueschecked) {
	nameioel2 = nameioel.replace(/(\[|\])/g, '');
	document.getElementById('io_' + nameioel2 + '_nope').checked = true;
  }
}



// *** text-edit functions ***

function insertContent (nameForm, nameElement, aTag, eTag)
{
  aTag = '\n\n' + document.getElementById('w_helper_content').innerHTML + '\n\n';
  eTag = '';
  var input = document.forms[nameForm].elements[nameElement];

  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();
  }

  /* für neuere auf Gecko basierende Browser */
  else if (typeof input.selectionStart != 'undefined')
  {

	/* 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;

    /* @todo Firefox: after insert, textarea scrolls to start - cursor may be hidden at long texts */
  }

  /* für die übrigen Browser */
  else {

	/* 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);
  }

}


function setPageidAddr4HelperContent ()
{
  var ioPageidAddr = document.forms['edititem'].elements['pageid_addr[]'];
  var ioHelperContentInput = document.forms['edititem'].elements['helper_content'];
  var ioHelperContentSpan  = document.getElementById('w_helper_content');
  newContent = '{adressen:' + ioPageidAddr.value + ':}';
  ioHelperContentInput.value = newContent;
  ioHelperContentSpan.innerHTML = newContent;
}


function setPageidPubl4HelperContent ()
{
  var ioPageidPubl = document.forms['edititem'].elements['pageid_publ[]'];
  var ioHelperContentInput = document.forms['edititem'].elements['helper_content'];
  var ioHelperContentSpan  = document.getElementById('w_helper_content');
  newContent = '{publikationen:' + ioPageidPubl.value + ':}';
  ioHelperContentInput.value = newContent;
  ioHelperContentSpan.innerHTML = newContent;
}

