// -----------------------------------------------------------------------------
// dbxForm
// v20090217
// -----------------------------------------------------------------------------



function dbxFormInit()
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
{
    dbxFormData = new Array();
    dbxFormData['bgColOK']   = "#FFFFFF";
    dbxFormData['bgColER']   = "#FF0000";
    
    dbxFormData['errorText']          = "Es sind Fehler aufgetreten\nAn error occured";
    dbxFormData['errorPflichtfelder'] = "Es sind nicht alle Pflichtfelder ausgefüllt\nPlease fill out all mandatory fields ";
}


function dbxFormReset(pForm)
{
    pForm.reset();
}

function alertForm(pForm) 
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
{
    dbxFormShowData(pForm);
}



function dbxFormShowData(pForm) 
// -----------------------------------------------------------------------------
// Gibt Felder eines Formulars aus
// <span onClick="alertForm(document.formname);">Felder</span>
// -----------------------------------------------------------------------------
{  

  var strMessage      = "";
  var cntFormElements = pForm.elements.length; 
  
  strMessage = "dbxFormShowData: " + pForm.name + "\n\n";
  // alert(strMessage); return;
  
  for(var cnt = 0; cnt < cntFormElements; cnt++)
  {
  strMessage = strMessage + "-";
  strMessage = strMessage + " "   + pForm.elements[cnt].name;
  strMessage = strMessage + " : " + pForm.elements[cnt].value;

  if(pForm.elements[cnt].type == "select-one")
  strMessage = strMessage + " - " + pForm.elements[cnt].options[pForm.elements[cnt].selectedIndex].text;

  strMessage = strMessage + " (" + pForm.elements[cnt].type + ")";
  strMessage = strMessage + "\n";  
  }
  
  alert(strMessage);
  
  return;
}


function dbxFormSelectGetLength(pElement)
// -----------------------------------------------------------------------------
{
    return pElement.length

}

function dbxFormSelectGetSelected(pSelElement,pRet)
// -----------------------------------------------------------------------------
// pSelElement -> Select Element
// pRet (t)ext, (v)alue, ()index
// -----------------------------------------------------------------------------
{
    var iIndex = pSelElement.selectedIndex;
    
    if(pRet == "t") {
      return pSelElement.options[iIndex].text; }
    
    if(pRet == "v") {
      return pSelElement.options[iIndex].value; }
    
      return iIndex;
}


function dbxFormSelectGetArr(pSelElement)
// -----------------------------------------------------------------------------
// pSelElement -> Select Element
// -----------------------------------------------------------------------------
{
  var cntEntries = dbxFormSelectGetLength(pSelElement);
  if(cntEntries < 1) return false;
  
  var arrEntries = new Array();
  
  for(var i=0;i<cntEntries;i++)
  {
  arrEntries[pSelElement.options[i].value] = pSelElement.options[i].text;
  }
  
  return arrEntries;
}


function dbxFormSelectSetSelect(pSelElement,pPos)
// -----------------------------------------------------------------------------
// pSelElement -> Select Element
// -----------------------------------------------------------------------------
{
    pSelElement.options[pPos].selected = true;
}

function dbxFormSelectSetArr(pSelElement,pArr,pSet)
// -----------------------------------------------------------------------------
// pSelElement -> Select Element
// -----------------------------------------------------------------------------
{
  var setKey = "";
  var setVal = "";
  
  // alertArray(pArr);
  
  dbxFormSelectReset(pSelElement);
    
  for(var strAttribut in pArr)
  {
    setKey = strAttribut;
    setVal = pArr[strAttribut];    
    
    if(pSet == "kk")
    {
    setVal = strAttribut
    }

    if(pSet == "kk0")
    {
      if(strAttribut == 0) {
        setVal = ""; }
      else {
        setVal = strAttribut; }
    }    
    
    if(pSet == "kk1")
    {
    setVal = (setKey*1)+1;
    }    
    
    if(pSet == "vv")
    {
    setKey = pArr[strAttribut];
    }
    
    elemNewOption = new Option(setVal, setKey, false, false);
    pSelElement.options[pSelElement.length] = elemNewOption;  
  }
  
}


function dbxFormSelectAddNew(pSelElement)
// ----------------------------------------------------------------
// ----------------------------------------------------------------
{
  var strVal = "";
  strVal = prompt("Neuer Wert|Text","");
  if(!strVal) { return false; }
  
  if(strVal.indexOf("|") > 0)
  {
  arrVal = strVal.split("|");
  dbxFormSelectAddVal(pSelElement,arrVal[0],arrVal[1],false,true);
  }
}


function dbxFormSelectAddVal(pSelElement,pVal,pTxt,pDefault,pSelect)
// ----------------------------------------------------------------
// ----------------------------------------------------------------
{
  elemNewOption = new Option(pTxt, pVal, pDefault, pSelect);
  pSelElement.options[pSelElement.length] = elemNewOption;  
}


function dbxFormSelectReset(pSelElement)
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
{
  var cntEntries = dbxFormSelectGetLength(pSelElement);
  if(cntEntries < 1) return false;
  
  for(var i=0; i<cntEntries; i++)
  {
  pSelElement.options[0] = null;
  }    
  
}




function dbxFormSetBG(objFrm,pCol)
// ----------------------------------------------------------------
// ----------------------------------------------------------------
{
  objFrm.style.backgroundColor = pCol;
}
  
  
function dbxFormCheck(objForm,pFields,pNoAlert)
// ----------------------------------------------------------------
// requires objForm.dbxform_setfields
// requires function dxbValueList(
// ----------------------------------------------------------------
{
  var errorCt    = 0;  
  var errorFocus = "";
  var csvFields  = ""; 
  var noAlert    = pNoAlert;

  
  if(pFields)
  {
    csvFields = pFields;
  }
  else
  {
    if(objForm.dbxcheckfields)
    {
    csvFields = objForm.dbxcheckfields.value;
    }
  }
   
    
  if(csvFields == "") 
  {
    return true;
  }
  
  // .................................
  
  arrCheckFields = dbxValueList(csvFields);
      
  for(var strAttribut in arrCheckFields)
  {
      if(strAttribut)
      {
      
      if(!objForm.elements[strAttribut])
      {
      alert(strAttribut + " kann nicht geprüft werden");
      }
      
      if(objForm.elements[strAttribut].value == "")
      {
          dbxFormSetBG(objForm.elements[strAttribut],dbxFormData['bgColER']);
          // objForm.elements[Eigenschaft].style.backgroundColor = '#F00'; // bgColorFormError;
          errorCt++;
          
          if(errorFocus == "") 
          { errorFocus = objForm.elements[strAttribut];}
      
      } // if
      else
      {
          dbxFormSetBG(objForm.elements[strAttribut],dbxFormData['bgColOK']);
      }
      
      } // if
  } // for
  
  // .................................  
  
  if(errorCt > 0)
  {  
      if(noAlert == 1)
      return false; 
      
      alert(dbxFormData['errorPflichtfelder']);
      errorFocus.focus();
      return false;
  }
  else
  {
    return true;
  }

}

dbxFormInit();