function toggleFormFieldHelp(ob,state) {
  // ob is the label element
  var field = findWidgetDiv(ob);
  if (field) {
    field.style.visibility = state && 'hidden' || 'visible';
    var help = document.getElementById("field-help-for-" + ob.htmlFor);
    if (help) {
      help.style.visibility = state && 'visible' || 'hidden';
    }
  }
}

function findWidgetDiv(label) {
  var element = findFormField(label);
  while (element) {
    element = element.parentNode;
    if (element.tagName == 'DIV' && element.getAttribute('class') == 'widget')
      return element;
  }
}

function findFormField(label) {
  var name = label.htmlFor;
  var field = label.form[name];
  // Multiple fields with the same name, such as radiobuttons
  if (field) {
    if (field.length)
      field = field[0];
    return field;
  }
  // No field with the exact name; find one that starts with the name
  for (var i = 0; field = label.form[i++];) {
    if (field.name.substr(0, name.length) == name)
      return field;
  }
} 




function moveItems(from, to)
  {
  // shortcuts for selection fields
  var src = document.getElementById(from);
  var tgt = document.getElementById(to);

  if (src.selectedIndex == -1) selectionError();
  else
    {
    // iterate over all selected items
    // --> attribute "selectedIndex" doesn't support multiple selection.
    // Anyway, it works here, as a moved item isn't selected anymore,
    // thus "selectedIndex" indicating the "next" selected item :)
    while (src.selectedIndex > -1)
      if (src.options[src.selectedIndex].selected)
        {
        // create a new virtal object with values of item to copy
        temp = new Option(src.options[src.selectedIndex].text,
                      src.options[src.selectedIndex].value);
        // append virtual object to targe
        tgt.options[tgt.length] = temp;
        // want to select newly created item
        temp.selected = true;
        // delete moved item in source
        src.options[src.selectedIndex] = null;
      }
    }
  }

// move item from "from" selection to "to" selection
function from2to(name)
  {
  moveItems(name+".from", name+".to");
  copyDataForSubmit(name);
  }

// move item from "to" selection back to "from" selection
function to2from(name)
  {
  moveItems(name+".to", name+".from");
  copyDataForSubmit(name);
  }

function swapFields(a, b)
  {
  // swap text
  var temp = a.text;
  a.text = b.text;
  b.text = temp;
  // swap value
  temp = a.value;
  a.value = b.value;
  b.value = temp;
  // swap selection
  temp = a.selected;
  a.selected = b.selected;
  b.selected = temp;
  }

// move selected item in "to" selection one up
function moveUp(name)
  {
  // shortcuts for selection field
  var toSel = document.getElementById(name+".to");

  if (toSel.selectedIndex == -1)
      selectionError();
  else if (toSel.options[0].selected)
      alert("Cannot move further up!");
  else for (var i = 0; toSel.length > i; i++)
    if (toSel.options[i].selected)
      {
      swapFields(toSel.options[i-1], toSel.options[i]);
      copyDataForSubmit(name);
      }
  }

// move selected item in "to" selection one down
function moveDown(name)
  {
    // shortcuts for selection field
    var toSel = document.getElementById(name+".to");

    if (toSel.selectedIndex == -1) {
        selectionError();
    } else if (toSel.options[toSel.length-1].selected) {
        alert("Cannot move further down!");
    } else {
      for (var i = toSel.length-1; i >= 0; i--) {
        if (toSel.options[i].selected) {
          swapFields(toSel.options[i+1], toSel.options[i]);
        }
      }
      copyDataForSubmit(name);
    }
  }

// copy each item of "toSel" into one hidden input field
function copyDataForSubmit(name)
  {
  // shortcuts for selection field and hidden data field
  var toSel = document.getElementById(name+".to");
  var toDataContainer = document.getElementById(name+".toDataContainer");

  // delete all child nodes (--> complete content) of "toDataContainer" span
  while (toDataContainer.hasChildNodes())
      toDataContainer.removeChild(toDataContainer.firstChild);

  // create new hidden input fields - one for each selection item of
  // "to" selection
  for (var i = 0; toSel.options.length > i; i++)
    {
    // create virtual node with suitable attributes
    var newNode = document.createElement("input");
    var newAttr = document.createAttribute("name");
    newAttr.nodeValue = name;
    newNode.setAttributeNode(newAttr);

    newAttr = document.createAttribute("type");
    newAttr.nodeValue = "hidden";
    newNode.setAttributeNode(newAttr);

    newAttr = document.createAttribute("value");
    newAttr.nodeValue = toSel.options[i].value;
    newNode.setAttributeNode(newAttr);

    // actually append virtual node to DOM tree
    toDataContainer.appendChild(newNode);
    }
  }

// error message for missing selection
function selectionError()
  {alert("Must select something!")}







function ajaxUriDiv(url, z)
       {
           try{$(z).innerHTML="Wait please! Bitte warten!";}catch(e){}
	   var pars = '';
           var myAjax = new Ajax.Updater( {success: z}, url, { method: 'get', parameters: pars, onFailure: reportError });   

	}

function ajaxUriDivJava(url, z)
       {
           try{$(z).innerHTML="<centrer><img src='http://static.mymir.org/wait30trans.gif'></centrer>";}catch(e){}
	   var pars = '';
/*
           var myAjax = new Ajax.Updater( {success: z, evalScripts:true}, url,  { method: 'get', parameters: pars, onFailure: reportError });   

 */

var myAjax = new Ajax.Updater(z, url, { method: 'get', onComplete:function(){ new Effect.Highlight(z);},asynchronous:true, evalScripts:true});

          return false;
	}





function changeIcon(z, trId) {


if($(trId).style.visibility == "hidden")
{$(trId).style.visibility = "visible";
$(z).src="/img/close.gif";
}
 else
{
$(z).src = "/img/yes.gif";
$(trId).style.visibility = "hidden";
$(trId).parentNode.deleteCell(0);
}

}


function reportError() {
alert("sorry error")
}

	function formularLesen(z, uri, formid)
	{
		var url = uri;
		var pars = Form.serialize(formid); 
		var myAjax = new Ajax.Updater( {success: z}, url, { method: 'post', parameters: pars, onFailure: reportError});
	}





   function sFm(mes)
    {
      document.getElementById("formsubmit").value=mes;



    }




function VersteckenParam(ID)
{
    if(document.getElementById(ID).style.visibility == "visible")

    {
        document.getElementById(ID).style.visibility = "hidden";
        document.getElementById(ID).style.zIndex="-1";

        document.getElementById("bgDiv").style.visibility = "hidden";
        document.getElementById("bgDiv").style.zIndex="0";
        document.getElementById('bgDiv').style.backgroundColor="white";

    }
    else
    {
        document.getElementById(ID).style.visibility = "visible";
        document.getElementById(ID).style.zIndex="100";

        document.getElementById("bgDiv").style.visibility = "visible";
        document.getElementById("bgDiv").style.zIndex="99";
        document.getElementById('bgDiv').style.backgroundColor="black";

    }
 
           return false;


}


 
