function loadSettings (type) {
    if (type != 'eigen' && type != 'fremd') {
        return;
    }
    new Ajax.Request('/portfolio/include/portfolioData.php', {
        onComplete : function(response) {
            settings = document.getElementById('portfolioSettings');
            settings.innerHTML = response.responseText;
            Sortable.create('selectedSettings'+type, {tag:'div'});
        },
        method: 'get',
        parameters: {
            'settings': 1,
            'pTyp': type,
            'SESSID': SESS_VALUE
        }
    });
}

function selectSetting(type, setting, key) {
    checkbox = document.getElementById(setting);
    if (checkbox.checked == false) {
        removeItem(type,setting, key);
    } else {
        addItem(type,setting, key);
    }
}

function addItem(type, item, key) {
    divElement = document.getElementById('selectedSettings'+type);
    var newdiv = document.createElement('div');
    sSVisibility = document.getElementById('selectedSettings').style.visibility;	
    if (sSVisibility == "hidden") {
    	 document.getElementById('selectedSettings').style.visibility = "visible";
    }
    
    newdiv.setAttribute('id',item+'Span_'+key);
    newdiv.innerHTML = item + 
        ' <a class="settingsUp" onclick="moveElementUpforList(\'selectedSettings' +type+'\', \''+key+'\')">&nbsp;</a>&nbsp;<a class="settingsDown" onclick="moveElementDownforList(\'selectedSettings' +type+'\', \''+key+'\')">&nbsp;</a>';
    divElement.appendChild(newdiv);

    Sortable.create('selectedSettings'+type, {tag:'div'});
}

function removeItem(type, item, key) {
    divElement = document.getElementById(item+"Span_"+key);
    d          = document.getElementById('selectedSettings'+type);

    d.removeChild(divElement);
    if (d.childNodes.length>0) {
    	Sortable.create('selectedSettings'+type, {tag:'div'});
    } else {
    	document.getElementById('selectedSettings').style.visibility = "hidden";	
    }
}

function saveSettings(type, container) {
    params = Sortable.serialize(container,{ name:"settings"});
    new Ajax.Request('/portfolio/include/portfolioSettings.php?'+params, {
        onComplete: function(responce) {
            if (type != "umlaut") {
                loadPortfolioData(1, '', type);
            } else {
                location.reload(true);
            }
            hideShowSettings(type);//funktion entfernen und jQuery().getBoxStatus(this) verwenden
        },
        method: 'get',
        parameters: {
            'type': type,
            'SESSID': SESS_VALUE
        }
    });
}

function savePageLimit(type, page_limit) {
    new Ajax.Request('/portfolio/include/portfolioSettings.php', {
        onComplete : function(responce) {
            if (type != "umlaut") {
                loadPortfolioData(1, '', type);
            } else {
                location.reload(true);
            }
            hideShowSettings(type);//funktion entfernen und jQuery().getBoxStatus(this) verwenden
        },
        method: 'get',
        parameters: {
            'type': type,
            'page_limit': page_limit,
            'SESSID': SESS_VALUE
        }
    });
}

//funktion entfernen und jQuery().getBoxStatus(this) verwenden

function hideShowSettings(type) {
    divElement  = document.getElementById('settings'+type);
    linkElement = document.getElementById('closeOpenLink');
    if (divElement.style.display == "none") {
        divElement.style.display = "block";
        linkElement.className = "sClose";
    } else {
        divElement.style.display = "none";
        linkElement.className = "sOpen";
    }
}

/*
moves an element in a drag and drop list
one position up
*/

function moveElementUpforList(list, key) {
  var sequence=Sortable.sequence(list);
  var newsequence=[];
  var reordered=false;

  //move only, if there is more than one element in the list
  if (sequence.length>1) for (var j=0; j<sequence.length; j++) {

    //move, if not already first element, the element is not null
    if (j>0 &&
      sequence[j].length>0 &&
      sequence[j]==key) {

      var temp=newsequence[j-1];
      newsequence[j-1]=key;
      newsequence[j]=temp;
      reordered=true;
    }

    //if element not found, just copy array
    else {
      newsequence[j]=sequence[j];
    }
  }

  if (reordered) Sortable.setSequence(list,newsequence);
  return reordered;
}

/*
moves an element in a drag and drop list
one position down
*/

function moveElementDownforList(list, key) {
  var sequence=Sortable.sequence(list);
  var newsequence=[];
  var reordered=false;

  //move, if not already last element, the element is not null
  if (sequence.length>1) for (var j=0; j<sequence.length; j++) {

    //move, if not already first element, the element is not null
    if (j<(sequence.length-1) &&
      sequence[j].length>0 &&
      sequence[j]==key) {

      newsequence[j+1]=key;
      newsequence[j]=sequence[j+1];
      reordered=true;
      j++;
    }

    //if element not found, just copy array
    else {
      newsequence[j]=sequence[j];
    }
  }

  if (reordered) Sortable.setSequence(list,newsequence);
  return reordered;
}

