function urlDecode(str) {
  return unescape(str.replace(/\+/g," "));
}

function getQueryField(str, key) {
  if (str.charAt(0) == '?') str = str.substring(1);
  var qtemp = new Array();
  qtemp = str.split("&");
  var hash = new Array();
  for (i=0; i<qtemp.length; i++) {
    hash = qtemp[i].split("=");
    if (hash[0] == key) {
     return urlDecode(hash[1]);
    }
  }
  return null;
}


// transforms the querystring from the url to applet parameter html tags
// call inside of applet tags that are document.written, too.
// used for "itemlist" & "treepath"

function fillAdditionalParams(str) {
  if (str == null || str == "") return;
  str = str.replace(/\?/,"");
  var qtemp = new Array();
  qtemp = str.split("&");
  var hash = new Array();
  var ret = "";
  for (i=0; i<qtemp.length; i++) {
    hash = qtemp[i].split("=");
    if (hash[0] != "") {
      // reawake potential querystring
      var value = hash[1];
      value = value.replace(/%3f/g,"?");
      value = value.replace(/%26/g,"&");
      value = value.replace(/%3d/g,"=");
      value = value.replace(/%2e/g,".");
      value = value.replace(/%3a/g,":");
      value = value.replace(/%2f/g,"/");
      if (i > 0) ret += "\n";
      ret += '<PARAM NAME="'+hash[0]+'" VALUE="'+value+'">';
    }
  }
  return ret;
}

// puts the defaultLanguage in front of the others
function getLanguagesCurrentFirst(dataOrGUI) {
  if(dataOrGUI == "GUI") { 
    var languages = availableGUILanguages.split(',');
    var useThisLanguage = false;
    for(i in languages) {
      if(currentLanguage == languages[i]) useThisLanguage = true;
    }
    var sorted = (useThisLanguage) ? currentLanguage : "";
  } else {
    var languages = availableDataLanguages.split(',');
    var useThisLanguage = false;
    for(i in languages) {
      if(currentDataLanguage == languages[i]) useThisLanguage = true;
    }    
    var sorted = (useThisLanguage) ? currentDataLanguage : "";
  }
	
	for (i = 0; i < languages.length; i++) {
    if(dataOrGUI == "GUI") {
		  if (languages[i] != currentLanguage) sorted += ',' + languages[i];
    } else {
      if (languages[i] != currentDataLanguage ) sorted += ',' + languages[i];
    }
	}
  if(sorted.charAt(0) == ",") sorted = sorted.substring(1, sorted.length);
	return sorted;
}

function getGUIFallbackLanguage() {
  var languages = availableGUILanguages.split(',');
  return languages[0];
}

function getDataFallbackLanguage() {
  var languages = availableDataLanguages.split(',');
  return languages[0];
}

function checkValue(value) {
  var undef;
  if(value == undef) return "";
  else return value; 
}

function belSearchForSingleIDInTree() {
  belenusHome.document.getElementById('InvisibleFrame').setAttribute("src","search_for_single_id_in_tree.html");
}

function belInitStandaloneSearch4(fieldName, searchTerm, startPoint) {
  var queryStr = "startSearchImmediately=true&searchFieldName="+fieldName+"&searchQuery="+searchTerm+"&searchId="+startPoint;
  belenusHome.WM.openWindow("search", queryStr, "true");
}

function getPrintLabel() {
  var str = "";
  var tmpCurrentTreePath = belenusHome.currentTreePath;
  if(tmpCurrentTreePath.charAt(tmpCurrentTreePath.length-1) == "/") tmpCurrentTreePath = tmpCurrentTreePath.substring(0,tmpCurrentTreePath.length-2);
  for(var i = 0; i < maxShownParentLabels; i++) {
    var tmp = belenusHome.TreeFrame.getLabel(tmpCurrentTreePath);
    if(tmp == null) break;
    else {
      if(tmp.length > maxLengthOfStr && i != 0) {
        tmp = tmp.substring(0, (maxLengthOfStr-shownDots));
        for(var j = 0; j < shownDots; j++) {
          tmp += ".";
        }
      }
      if (i == 0) str = tmp; else str = tmp + "/" + str;
    }
    tmpCurrentTreePath = tmpCurrentTreePath.substring(0, tmpCurrentTreePath.lastIndexOf('/'));
  }
  return str;
}


function startCloseTabAnimationNow() {
  var mFSProp =  belenusHome.document.getElementById("MainFrameSet").getAttribute("rows");
  var a = mFSProp.split(",");
  mFSProp = "";
  for(b in a) {
    if(b < a.length-1) mFSProp += a[b]+","; 
  }
  belenusHome.document.getElementById("MainFrameSet").setAttribute("rows",mFSProp+"0");
}

function startOpenTabAnimationNow(cu) {
  if(cu == undef) cu =1;
  var mFSProp =  belenusHome.document.getElementById("MainFrameSet").getAttribute("rows");
  var a = mFSProp.split(",");
  mFSProp = "";
  for(b in a) {
    if(b < a.length-1) mFSProp += a[b]+","; 
  }
  cu = parseInt(cu);
  if(cu >= belenusHome.tabManagerFrameHeight) belenusHome.document.getElementById("MainFrameSet").setAttribute("rows",mFSProp+belenusHome.tabManagerFrameHeight);
  else {
    cu = parseInt(cu*2);
    if(cu >= belenusHome.tabManagerFrameHeight) cu = belenusHome.tabManagerFrameHeight;
//    belenusHome.document.getElementById("MainFrameSet").setAttribute("rows",mFSProp+cu);
//    setTimeout("startOpenTabAnimation("+cu+")",25);
    belenusHome.document.getElementById("MainFrameSet").setAttribute("rows",mFSProp+belenusHome.tabManagerFrameHeight);
  }  
}

var orgFrameSize =null;
function resizeMainFramesetForBasketConfirmation(switcher) {
  if(orgFrameSize == null) belenusHome.document.getElementById("MainFrameSet").getAttribute("rows");
  var mFSProp =  belenusHome.document.getElementById("MainFrameSet").getAttribute("rows");
  var a = mFSProp.split(",");
  mFSProp = "";
  for(b in a) {
    if(b < a.length-1) mFSProp += a[b]+","; 
  }
  var nullSized=a[0]+",";
  for(var c = 1; c < a.length-1;c++)  nullSized += "0,";
  alert(nullSized);
  if(switcher == "off")  belenusHome.document.getElementById("MainFrameSet").setAttribute("rows",orgFrameSize);
  else belenusHome.document.getElementById("MainFrameSet").setAttribute("rows",nullSized+"*");
}

