// set links

String.prototype.spacelist2arr = function() {
  var arr = new Array();
  arr = this.replace(/\s+|,\s*/g," ").split(" ");
  return arr;
  }

function arrayIndex(arr,val) {
  var arr_index = -1;
  for ( var key in arr ) {
    if ( arr[key] == val ) { 
      arr_index = key;
      }
    }
  return arr_index;
  }


function setListUpdateLinks() {
  var inputs = document.getElementsByTagName("input");
  for ( var key in inputs ) {
    if ( inputs[key].className == "listupdate-input" ) {
      var liElements = getLI_arr(inputs[key]);
      var input_v = inputs[key].value;
      replaceLIdata(liElements,input_v);
      }
    }
  } 


function updateInput(input_obj) {
  var liElements = getLI_arr(input_obj);
  var input_v = input_obj.value;
  for (var i=0;i<liElements.length;i++) {                                                                  /*for ( keyVar in array ) {*/
    listdata = liElements[i].getElementsByTagName("a")[0].firstChild.data;                                  /*ist firstChild.data immer der textnode?*/
    if ( arrayIndex(input_v.spacelist2arr(),listdata) != -1 ) var linkclass = "color_neutral_black"; else var linkclass = "color_neutral";
    liElements[i].getElementsByTagName("a")[0].setAttribute("class",linkclass);
  }
}

// get li elements array 
function getLI_arr(obj) {
  while ( obj.nodeName.toLowerCase() != "ul" ) { obj = obj.nextSibling; }                             /*verbessern iteration autostop*/
  var liElements = obj.getElementsByTagName('li');
  return liElements;
}

// replace li elements data                                                                           /*array rausnehmen ????*/
function replaceLIdata(liElements,input_v){
  for (var i=0;i<liElements.length;i++) {

    var liTextnode = liElements[i].firstChild;
    var liTextnode_l = liTextnode.length;
    var liTextnode_d = liTextnode.data.replace(/[^\d\w]/g,"");

    var newLinkElement = document.createElement("span");
    var newLinkText = document.createTextNode(liTextnode_d);

    var jsfunction = "updatePrevInput(this);";

    liElements[i].removeChild(liTextnode);
//     liElements[i].firstChild.replaceData(0,textnode_l,"XXX"); 

    liElements[i].appendChild(newLinkElement);
    liElements[i].firstChild.appendChild(newLinkText);
//     liElements[i].firstChild.setAttribute("href","#");
    liElements[i].firstChild.setAttribute("onClick",jsfunction);

    if ( arrayIndex(input_v.spacelist2arr(),liTextnode_d) != -1 ) var linkclass = "color_neutral"; else var linkclass = "color_neutral_black";
    liElements[i].firstChild.setAttribute("class",linkclass);
    }
  }



function updatePrevInput(obj) {
  var InputObj = obj;
  while ( InputObj.nodeName.toLowerCase() != "ul" ) { InputObj = InputObj.parentNode; }
  while ( InputObj.nodeName.toLowerCase() != "input" ) { InputObj = InputObj.previousSibling; }

  var InputValue_arr=InputObj.value.spacelist2arr();
  var ListValue = obj.firstChild.nodeValue;                                                                     /*ist das sicher ? */


  var ListValueIndex = arrayIndex(InputValue_arr,ListValue);

  if ( ListValueIndex != -1 ) {
    InputValue_arr.splice(ListValueIndex,1)
    obj.className="color_neutral_black";
    }
  else
    {
    InputValue_arr.push(ListValue)
    obj.className="color_neutral";
    }

  InputValue_arr.toString();
  InputObj.value = InputValue_arr.toString().replace(/,+/g," ").replace( /^\s*/,"")+" ";
  }




