var currentState, currentDisplayState;

function setVisibility(objId,visibility,display,initialSet) {
  if (typeof objId != 'object') {
    objId = document.getElementById(objId);
  }
  if (objId) {
    if (typeof visibility == 'undefined' && typeof display == 'undefined') {
      currentState        = getDivInformation(objId,'visibility');
      currentDisplayState = getDivInformation(objId,'display');
      if (currentState == '') {
        if (initialSet) {
          currentState = 'visible';
        } else {
          currentState = 'hidden';
        }
      }
      if (currentDisplayState == '') {
        if (initialSet) {
          currentDisplayState = initialSet;
        } else {
          currentDisplayState = 'none';
        }
      }
      if (currentState == 'hidden') {
        objId.style.visibility = 'visible';
      } else if (currentState == 'visible'){
        objId.style.visibility = 'hidden';
      }
      if (currentDisplayState == 'none') {
        objId.style.display = 'block';
        objId.style.visibility = 'visible';
      } else if (currentDisplayState == 'block' || currentDisplayState == 'inline') {
        objId.style.display = 'none';
      }
    } else if(visibility == 1) {
        objId.style.visibility = 'visible';
    } else if(visibility == 0) {
      objId.style.visibility = 'hidden';
    }
    if(display) {
      objId.style.display = display;
    }
  }
}

function writeIntoLayer(objId,content) {
  if (typeof objId != 'object') {
    objId = document.getElementById(objId);
  }
  if (objId){
    objId.innerHTML = content;
  }
}

function getDivInformation(objId,attribute) {
  divInformation = new Array();
  if (typeof objId != 'object') {
    objId = document.getElementById(objId);
  }
  if (objId){
    divInformation['offsetLeft']  = objId.offsetLeft;
    divInformation['offsetTop']   = objId.offsetTop;
    divInformation['styleLeft']   = parseInt(objId.style.left);
    divInformation['styleTop']    = parseInt(objId.style.top);
    divInformation['width']       = objId.offsetWidth;
    divInformation['height']      = objId.offsetHeight;
    divInformation['visibility']  = objId.style.visibility;
    divInformation['display']     = objId.style.display;
    divInformation['zIndex']      = objId.style.zIndex;
    return divInformation[attribute];
  }
}







  var selectBoxes = new Array();
  var directOrder = new Array();

  function selectBoxNotify(formField) {
   //dummy function, has to be overwritten in individual page if needed
  }

  function setOption(text, value, formField, notify, index) {
    formFieldValue = value;
    activeText = text;
    setVisibility('selectBoxContent'+formField,0,'none');
    writeIntoLayer('selectedValue'+formField, "&nbsp; " + text);
    if (formField == "slocale" && formFieldValue > 0) {
  		document.getElementById("selectLocaleForm").locale.value=formFieldValue;
  		document.getElementById("selectLocaleForm").action="http://marmelada/metalac?locale="+formFieldValue;
  	}
  	/*
    if(document.forms.length > 0) {
      document.forms[0][formField].value = formFieldValue;
    }
    if(notify) {
      selectBoxNotify(formField,formFieldValue,index);
    }
    */
  }

  function writeSelectBox(formField, keyValueArray, zIndex, elementWidth, visibleEntries, selectedValue, notify, error, readonly, direction) {
    var formValue = "";
    entryFound = false;
    var bgcolorBorder = "#a5acb2";
    var bgcolorBorder1 = "#a5acb2";
    var borderGif = borderImg;
    var pulldownImage = pulldownImg;
    if(error == true) {
      bgcolorBorder = "#ff0000";
      pulldownImage = pulldownImg;
      borderGif     = borderImg;
    }
    for(i=0;i<keyValueArray.length;i++) {
      if(keyValueArray[i+1] == selectedValue) {
        selectText = keyValueArray[i];
        formValue  = keyValueArray[i+1];
        entryFound = true;
        break;
      }
      i++;
    }
    if(!entryFound) {
      selectText = keyValueArray[0];
      formValue  = keyValueArray[1];
    }
    selectBoxes[selectBoxes.length]=formField;
    directOrder[formField]=false;
    tdWidth = elementWidth-20;
    if(visibleEntries > (keyValueArray.length / 2)) {
      visibleEntries = (keyValueArray.length / 2);
    }
    deep = (visibleEntries * 16) + 14;
    selectBox = '';
    if (readonly == true) {
      selectBox += '<input type="text" class="defaultReadonly" readonly="readonly" value="' + selectText + '">';
      selectBox += '<input type="hidden" name="' + formField + '" value="' + formValue + '">';
    } else {
      selectBox += '<div style="position:relative;z-index:' + zIndex +';">';
      selectBox += '<table width="' + elementWidth + '" cellspacing="0" cellpadding="0" border="0" bgcolor="#ffffff">';
      selectBox += '<colgroup><col width="1"><col width="' + tdWidth + '"><col width="18"><col width="1"></colgroup>';
      selectBox += '<tr><td colspan="4" bgcolor="' + bgcolorBorder + '"><img src="' + borderGif + '" width="' + elementWidth +'" height="1"></td></tr>';
      selectBox += '<tr>';
      selectBox += '<td bgcolor="' + bgcolorBorder + '"><img src="' + borderGif + '" width="1" height="16"></td>';
      selectBox += '<td valign="middle" onClick="setVisibility(\'selectBoxContent' + formField + '\');" onMouseover="directOrder[\'' + formField + '\']=true;" onMouseout="directOrder[\'' + formField + '\']=false;" style="cursor:pointer;"><span id="selectedValue' + formField + '">&nbsp;<img src="' + arrowsImg + '" width="5" height="5" border="0">&nbsp;' + selectText + '</span></td>';
      selectBox += '<td><a href="javascript:setVisibility(\'selectBoxContent' + formField + '\');" onMouseover="directOrder[\'' + formField + '\']=true;" onMouseout="directOrder[\'' + formField + '\']=false;"><img src="' + pulldownImage + '" width="18" height="16" border="0"></a></td>';
      selectBox += '<td  bgcolor="' + bgcolorBorder + '"><img src="' + borderGif + '" width="1" height="16"></td>';
      selectBox += '</tr>';
      selectBox += '<tr><td colspan="4" bgcolor="' + bgcolorBorder + '"><img src="' + borderGif + '" width="' + elementWidth + '" height="1"></td></tr>';
      selectBox += '</table>';
		if(direction == "above"){
			selectBox += '<div id="selectBoxContent' + formField + '" class="selectBoxContent" style="top:' + -(deep+1) + 'px;" >';
    }else{
    	selectBox += '<div id="selectBoxContent' + formField + '" class="selectBoxContent">';
    }
      selectBox += '<table width="' + elementWidth + '" cellspacing="0" cellpadding="0" border="0">';
    if(direction == "above"){
      selectBox += '<tr><td colspan="3" bgcolor="' + bgcolorBorder + '"><img src="' + borderGif + '" width="' + elementWidth + '" height="1"></td></tr>';
    }
      selectBox += '<tr>';
      selectBox += '<td width="1" bgcolor="' + bgcolorBorder + '"><img src="' + transGif + '" width="1" height="1"></td>';
      selectBox += '<td width="' + (tdWidth-2) + '" valign="top">';
      selectBox += '<div style="width:' + (elementWidth-2) + 'px; height:' + deep + 'px; background-color:#ffffff; overflow:auto;">';
      selectBox += '<span id="vSpace" style="padding-bottom:7px;"></span>';
      for(i=0;i<keyValueArray.length;i++) {
        //keyValueArray[i]   = keyValueArray[i].replace(/'/,"\\\'");
        //keyValueArray[i+1] = keyValueArray[i+1].replace(/'/,"\\\'");
        //selectBox += '<a href="javascript://" onClick="setOption(\'' + keyValueArray[i] + '\',\'' + keyValueArray[i+1] + '\',\'' + formField + '\',' + notify + ',' + zIndex +');" class="selectboxEntry"><img src="http://marmelada/metalac/pribi/images/common/arrows_more.gif" width="5" height="5" border="0">&nbsp; ' + keyValueArray[i] + '</a>';
        selectBox += '<a href="javascript:selectBoxNotify(\'' + formField + '\',\'' + keyValueArray[i+1] + '\');" class="selectboxEntry">&nbsp;<img src="' + arrowsImg + '" width="5" height="5" border="0">&nbsp;' + keyValueArray[i] + '</a>';
        i++;
      }
      selectBox += '</div>';
      selectBox += '</td>';
      selectBox += '<td width="1" bgcolor="' + bgcolorBorder + '"><img src="' + transGif + '" width="1" height="1"></td>';
      selectBox += '</tr>';
      selectBox += '<tr><td colspan="3" bgcolor="' + bgcolorBorder + '"><img src="' + borderGif + '" width="' + elementWidth + '" height="1"></td></tr>';
      selectBox += '</table>';
      selectBox += '</div>';
      selectBox += '</div>';
      selectBox += '<div style="width:2px;height:2px;overflow:hidden;"></div>';
      selectBox += '<input type="hidden" name="' + formField + '" value="' + formValue + '">';
    }
    return selectBox;
  }

  function checkSelectBoxStatus() {
    for(j=0;j<selectBoxes.length;j++) {
      if(!directOrder[selectBoxes[j]]) {
        setVisibility('selectBoxContent'+selectBoxes[j],0,'none');
      }
    }
  }
