// standard.js
//
// 29.04.2011  S.Kienzle   Fehlerhandling
// 21.03.2011  S.Kienzle   Bugfix bei parseJSON
// 26.10.2010  S.Kienzle   _processErrorsFocus - bestehende CSS-Klassen an Fehlerelement anhängen
// 22.06.2010  M.Baldauf   Aufruf von checkIframeSize in setTableRowsDisplay
// 21.06.2010  M.Baldauf   checkIframeSize neu; Aufruf in wechsleInfo rein
// 19.04.2010  S.Kienzle   parseJSON erweitert, handleMultiTag, handleStyleTag, handleInputTag
// 22.02.2010  S.Kienzle   Neue Func. parseJSON, handleSelectTag, handleInputTag
// 16.12.2008  mab         - Neue Version der Fehleranzeigefunktionen _processErrorsFocus etc.
//                         - neue Func. setTableRowsDisplay, wechsleInfo
// 21.10.2008  F.Barnowski Neue Funktion open_beratung_zu_prd, neuwin.focus nun innerhalb try/catch, da 
//                         sonts Fehlermeldung im IE - bei Einstellung "Script- Fehlermeldungen anzeigen"
// Aenderung : 12.06.2008 F.Barnowski Neue Funktionen: getElementByName, toolTipEvent, processErrors
// Aenderung : 22.05.2007 F.Barnowski DialogModal nach hier (aus modal_dialog.js) 
//                                    kopiert,um sonst erforderliche Aenderung  
//                                    aller Stored Procedures zu vermeiden
// 

// One object tracks the current modal dialog opened from this window.
var dialogWin = new Object()

// iFrame-Size des Parents anpassen
function checkIframeSize(){
  if (parent.pruefeIframeSize) {
    parent.pruefeIframeSize();
  }
}

// Für neue GUI
function setTableRowsDisplay(pSelf, pIdRange){
  var DisplayValue = 'none';
  var collection = document.getElementsByTagName('tr');
  var i;
  if (pSelf.checked) {
    DisplayValue = '';
  }
  for (i = 0; i < collection.length; i++){
    if (collection[i].id == pIdRange){
      collection[i].style.display = DisplayValue;
    }
  }
  
  // 21.06.2010 mab
  checkIframeSize(); 
}
function setTableRowsDisplayAll(pSelf){
  var str;
  var d_num;
  for(i=1;i<=8;i++){
    d_num=i.toString();
    str = 'EM'+d_num;
    setTableRowsDisplay(pSelf,str);
  }
}
function hideTableRowsDisplayAll(){
  var str;
  var d_num;
  for(i=1;i<=8;i++){
    d_num=i.toString();
    str = 'EM'+d_num;
    document.getElementById(str).style.display='none';
  }
}
// Für neue GUI
function wechsleInfo(pId){
  var myElement = document.getElementById(pId);
  if (myElement.style.display == 'none'){
    myElement.style.display = '';
  } 
  else {
    myElement.style.display = 'none';
  } 
  
  // 21.06.2010 mab
  checkIframeSize(); 
}
function set_focus(){
  self.focus();
  for ( y = 0 ; y < document.forms.length; y++ ){
    for ( x = 0 ; x < document.forms[y].elements.length; x++ ){
      if (  (document.forms[y].elements[x].value == "") && (document.forms[y].elements[x].type == "text" || document.forms[y].elements[x].type == "checkbox" )  || document.forms[y].elements[x].type == "select-one" ){
        document.forms[y].elements[x].focus();
        x = document.forms[y].elements.length; 
      }
    }
  }
}
function handleSelectTag(data,elem){
  var len = elem.length;
  var selectedValue = elem[elem.selectedIndex].value;
  for (var j = 1; j <= len; j++) {
    elem.options[len-j] = null;
  }
  for (var i = 0; i < data.length-1; i++) {
    elem.options[i] = new Option(data[i].text, data[i].value, false, (selectedValue == data[i].value && selectedValue != '') ? true : (data[i].selected == 'J' && selectedValue == '')?true : false);
  }
}
function handleInputTag(data,elem){
  elem.value=data[0].value;
}
function handleStyleTag(data,elem){
  elem.style[data[0].attribute]=data[0].value;
}
function handleMultiTag(data){
  for (var i = 0; i < data.length; i++){
    if ((data[i][data[i].length-1].tag).substr(6) == 'input'){
      handleInputTag(data[i],(document.getElementById(data[i][1].id)));
    }
    if ((data[i][data[i].length-1].tag).substr(6) == 'style'){
      handleStyleTag(data[i],(document.getElementById(data[i][1].id)));
    }
  }
}
function parseJSON(data){
  var elem = document.getElementById(data[data.length-1].id);
  if (data[data.length-1].tag == 'select')
    handleSelectTag(data,elem);
  if (data[data.length-1].tag == 'input')
    handleInputTag(data,elem);
  try{
    if ((data[data.length-1][1].tag).substr(0,5) == 'multi')
      handleMultiTag(data);
  } catch (e) {}
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_openBrWindow(theURL,winName,features) { //v2.0
  neuwin = window.open(theURL,winName,features);
  try
  {
    neuwin.focus(); // 08.10.2008 F.Barnowski
  }
  catch (ex)
  {
  }
}
function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}
function MM_changeProp(objName,x,theProp,theValue) { //v3.0
  var obj = MM_findObj(objName);
  if (obj && (theProp.indexOf("style.")==-1 || obj.style)) eval("obj."+theProp+"='"+theValue+"'");
}
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}
// Funktion für das setzen des Fokus in ein Feld
function SetFokus(formname,feldname) {
  document.forms[formname].elements[feldname].focus();
}
// Funktion prüft, ob ein String nur aus Ziffern besteht
function IstZahl(str) {
  for (i = 0; i < str.length; i++) {
    a = str.substring(i,i+1);
    if ((a == 1)||(a == 2)||(a == 3)||(a == 4)||(a == 5)||(a == 6)||(a == 7)||(a == 8)||(a == 9)||(a == 0)) {;}
    else {window.alert('Bitte nur Ziffern eingeben!'); return false;}
  }
  return true;
}
// Funktion prüft das eingegebene Datumsformat im Textfeld auf: DD.MM.YYYY
// Parameter "mussfeld" ist 1 für ja und 0 für nein
function PruefeDatum(feldname,formname,mussfeld) {
  var pruefen = 0;
  str = document.forms[formname].elements[feldname].value;
  // wenn Mussfeld oder Eingabe vorhanden, dann prüfen
  if (mussfeld == 1) {pruefen = 1;} 
  else {if (str == '') {pruefen = 0;} else {pruefen = 1}}
  if (pruefen == 1) {
    // prüfen, ob Punkte eingegeben wurde
    p1 = str.indexOf('.');
    p2 = str.indexOf('.', p1+1);
    p3 = str.indexOf('.', p2+1);
    // sind beide Punkte und nur diese im Datum vorhanden?
    if ((p1 == -1)||(p2 == -1)||(p3 != -1)) {
      window.alert('Bitte Datum im Format "TT.MM.JJJJ" eingeben!'); SetFokus(formname,feldname); return;
    }
    tag = str.substring(0,p1);
    monat = str.substring(p1+1,p2);
    jahr = str.substring(p2+1);
    if ((tag.length > 2)||(tag.length < 1)||(tag > 31)) {
      window.alert('Der Tag im Datum ist falsch!'); SetFokus(formname,feldname); return;
    }
    if ((monat.length > 2)||(monat.length < 1)||(monat > 12)) {
      window.alert('Der Monat im Datum ist falsch!'); SetFokus(formname,feldname); return;
    }
    if (jahr.length != 4) {
      window.alert('Das Jahr im Datum muss vierstellig sein!'); SetFokus(formname,feldname); return;
    }
    if (true != IstZahl(tag)) {SetFokus(formname,feldname); return;}
    if (true != IstZahl(monat)) {SetFokus(formname,feldname); return;}
    if (true != IstZahl(jahr)) {SetFokus(formname,feldname); return;}
  }
}
//Dynamische Poupfenster
function windowAdd() {
popup = window.open("","newWin","location=0,menubar=0,personalbar=0,status=0");
popup.document.open();
//popup.document.write(text);
popup.document.location = "http://llbsntze0041/wgv/owa/wwwutil.meldung?P_TEXT=112";
popup.document.close();
setTimeout("windowClose()", 5000); // delay 10 seconds before closing
}

//Schliesen der Fenster
function windowClose() {
popup.close();
//top.close(); //if you want to close the top window too
}

// Füllt das ein Formular-Feld (ziel) mit einem Wert (wert), wenn Checkbox aktiviert ist und löscht das Feld bei Deaktivierung
function WertSetzen_CBox_Feld (checkbox, ziel, wert)
{
 if(checkbox.checked == true)
   ziel.value=wert;
 else 
   ziel.value='';
}
// Wählt den Wert (wert) in der Select-Liste (Ziel), wenn Checkbox aktiviert ist und löscht die Select-Liste bei Deaktivierung
function WertSetzen_CBox_Sel (checkbox, ziel, wert)
{
 if(checkbox.checked == true)
  for(i=0;i<ziel.length;++i)
  {
   if(ziel.options[i].value == wert)
   ziel.selectedIndex=i;
  }
 else 
  ziel.selectedIndex=0;
}
// Wählt den Wert (wert) in der Select-Liste (Ziel), wenn Checkbox aktiviert ist und löscht die Select-Liste bei Deaktivierung
function WertSetzen_CBox_Sel (checkbox, ziel, wert)
{
 if(checkbox.checked == true)
  for(i=0;i<ziel.length;++i)
  {
   if(ziel.options[i].value == wert)
   ziel.selectedIndex=i;
  }
 else 
  ziel.selectedIndex=0;
}
// Wählt den Wert (wert) in der Radio-Gruppe (Ziel), wenn Checkbox aktiviert ist und löscht die Radio-Gruppe bei Deaktivierung
function WertSetzen_CBox_Rad (checkbox, ziel, wert)
{
 if(checkbox.checked == true)
  if(isNaN(ziel.length))
   ziel.checked = true;

  else  // isNaN(ziel.length)
  {
   for(i=0;i<ziel.length;++i)
   {
    if(ziel[i].value == wert)
     ziel[i].checked = true;
   }
  }
 else  // checkbox.checked
  if(isNaN(ziel.length))
   ziel.checked = false;
  else
   for(i=0;i<ziel.length;++i)
   {
    ziel[i].checked = false;
   }
}
// Wählt den Wert (wert) in der Select-Liste (Ziel), wenn das Formularfeld (feld) mit dem übergebenen Wert (feld_wert) übereinstimmt
function WertSetzen_Feld_Sel (feld, feld_wert, ziel, wert)
{
 if(feld.value == feld_wert)
  for(i=0;i<ziel.length;++i)
  {
   if(ziel.options[i].value == wert)
   ziel.selectedIndex=i;
  }
 else 
  ziel.selectedIndex=0;
}
//---------------------- jg KFZ-Templates ------------------------------------------------------------

  //######################################################
  function summe(p_form) {

  var wert_hf = new Array();
  var wert_kk = new Array();
  var wert_sb = new Array();
  var wert_iu = new Array();
  var summe = new Array();
  
  // Ermitteln und ausumieren der Felder
  if (p_form == null ){
    p_form  =""; 
  }
  
  wert_hf[1] = get_rb_val("KH" ,1 ,p_form);
  wert_hf[2] = get_rb_val("KH" ,2 ,p_form);
  wert_hf[4] = get_rb_val("KH" ,4 ,p_form);
  wert_hf[12] = get_rb_val("KH",12,p_form);
  wert_hf["1_NAB"] = get_rb_val("KH","1_NAB",p_form);
  wert_hf["2_NAB"] = get_rb_val("KH","2_NAB",p_form);
  wert_hf["4_NAB"] = get_rb_val("KH","4_NAB",p_form);
  wert_hf["12_NAB"] = get_rb_val("KH","12_NAB",p_form);
  //
  wert_kk[1] = get_rb_val("KK" ,1 ,p_form);
  wert_kk[2] = get_rb_val("KK" ,2 ,p_form);
  wert_kk[4] = get_rb_val("KK" ,4 ,p_form);
  wert_kk[12] = get_rb_val("KK",12,p_form);
  wert_kk["1_NAB"] = get_rb_val("KK","1_NAB",p_form);
  wert_kk["2_NAB"] = get_rb_val("KK","2_NAB",p_form);
  wert_kk["4_NAB"] = get_rb_val("KK","4_NAB",p_form);
  wert_kk["12_NAB"] = get_rb_val("KK","12_NAB",p_form);
  //
  wert_iu[1] = get_rb_val("IU" ,1 ,p_form);
  wert_iu[2] = get_rb_val("IU" ,2 ,p_form);
  wert_iu[4] = get_rb_val("IU" ,4 ,p_form);
  wert_iu[12] = get_rb_val("IU",12,p_form);
  wert_iu["1_NAB"] = get_rb_val("IU","1_NAB",p_form);
  wert_iu["2_NAB"] = get_rb_val("IU","2_NAB",p_form);
  wert_iu["4_NAB"] = get_rb_val("IU","4_NAB",p_form);
  wert_iu["12_NAB"] = get_rb_val("IU","12_NAB",p_form);    
  //
  summe[1]        = wert_zahl(wert_hf[1], wert_kk[1], wert_iu[1]);
  summe[2]        = wert_zahl(wert_hf[2] , wert_kk[2] , wert_iu[2]);
  summe[4]        = wert_zahl(wert_hf[4] , wert_kk[4] , wert_iu[4]);
  summe[12]       = wert_zahl(wert_hf[12] , wert_kk[12] , wert_iu[12]);
  summe["1_NAB"]  = wert_zahl(wert_hf["1_NAB"] , wert_kk["1_NAB"] , wert_iu["1_NAB"]);
  summe["2_NAB"]  = wert_zahl(wert_hf["2_NAB"] , wert_kk["2_NAB"] , wert_iu["2_NAB"]);
  summe["4_NAB"]  = wert_zahl(wert_hf["4_NAB"] , wert_kk["4_NAB"] , wert_iu["4_NAB"]);
  summe["12_NAB"] = wert_zahl(wert_hf["12_NAB"] , wert_kk["12_NAB"] , wert_iu["12_NAB"]);

  // Befüllen der Summenfelder
  eval('document.frm' + p_form +'.P_SUMME_1.value      =  summe[1]'  )     ;
  eval('document.frm' + p_form +'.P_SUMME_2.value      =  summe[2]'  )     ;
  eval('document.frm' + p_form +'.P_SUMME_4.value      =  summe[4]'  )     ;
  //document.frm.P_SUMME_12.value     =  summe[12]      ;
  //document.frm.P_SUMME_1_NAB.value  =  summe["1_NAB"] ;
  //document.frm.P_SUMME_2_NAB.value  =  summe["2_NAB"] ;
  //document.frm.P_SUMME_4_NAB.value  =  summe["4_NAB"] ;
  //document.frm.P_SUMME_12_NAB.value =  summe["12_NAB"];
 
  }
  //######################################################
  function get_rb_val(obj,zahlugsweise,form) {
  // gibt die Werte-arrays (8 Zahlungsweisen zurück)
    var auswahl;
    var wert;
    var hindex; 
    //index des Hiddenfelds
  
  wert = 0;
  try {

    if (isNaN(eval("document.frm" + form + ".P_ANG_RB_"+obj+".length"))) {
    
       hindex = eval("document.frm" + form + ".P_ANG_RB_"+ obj +".value");
       wert   = eval("document.frm" + form + "." + obj + "_" + zahlugsweise + "_"+hindex+".value");
       
    }
    else
     {
        for (var i = 0; i < eval("document.frm" + form + ".P_ANG_RB_"+obj+".length"); i++) {
          if (eval("document.frm" + form + ".P_ANG_RB_"+obj+"[i].checked")) {
          hindex = eval("document.frm" + form + ".P_ANG_RB_"+obj+"[i].value");
          wert  =  eval("document.frm" + form + "." + obj + "_" + zahlugsweise + "_"+hindex+".value");
          }
        }  
    }
   }             
   catch(e){
       //alert("ErrorJG: " + e.message);
   }
   return(wert);
  
 }
 //#####################################################
 function get_rb_index(obj) {
  // gibt die Werte-arrays (8 Zahlungsweisen zurück)
  var hindex; 
    //index des Hiddenfelds
  try {

    if (isNaN(eval("document.frm.P_ANG_RB_"+obj+".length"))) {
        hindex = eval("document.frm.P_ANG_RB_"+ obj +".value");
    }
    else
    {
      for (var i = 0; i < eval("document.frm.P_ANG_RB_"+obj+".length"); i++) {
        if (eval("document.frm.P_ANG_RB_"+obj+"[i].checked")) {
        hindex = eval("document.frm.P_ANG_RB_"+obj+"[i].value");
        }
      }  
    }
   }             
   catch(e){
       //alert("ErrorJG: " + e.message);
   }
   return(hindex);
 }
 //######################################################
 function rund_1(wert_s,punkt)
 
 {
     var string_length;
     var vor_komma;
     var vor_komma_lenght;
     var nach_komma;
     var wert_nach_punkt;
     var wert;
 
 
     wert = new String(wert_s);                          
     if  ( punkt == -1)
        {
          wert = wert + ".00";
          punkt =   wert.indexOf(".");
        }
     string_length = wert.length;                                                          
     vor_komma = wert.substring(0,punkt);
     vor_komma_lenght = vor_komma.length;
     nach_komma = wert.substring(punkt+1,string_length);
   
 
     if (vor_komma_lenght > 3     )
       {
        wert = vor_komma.substring(0,vor_komma.length-3) + "." + vor_komma.substring(vor_komma.length-3,vor_komma.length) + "," + nach_komma;
       }
     else
     {
                   wert =  vor_komma + ","  + nach_komma ;
     }
    return(wert);
 } 
 //######################################################
 function wert_zahl(wert_hf,wert_kk,wert_iu)
 {  
  // Liefert Summe als gerundete zahl zurück
  var wert;
  var wert_s;
  var punkt;
  
  wert_hf  = new String(wert_hf); 
  wert_kk  = new String(wert_kk);
  wert_iu  = new String(wert_iu);
  
  //wg Zahlen mit 1000-punkt
  wert_hf = wert_hf.replace(".","");
  wert_kk = wert_kk.replace(".","");
  wert_iu = wert_iu.replace(".","");
  // Kommas mit "." ersetzen
  wert = parseFloat(wert_hf.replace(",",".")) + parseFloat(wert_kk.replace(",","."))+ parseFloat(wert_iu.replace(",",".")); 
  
  wert = eval(Math.round(wert * 100)/100);
  
  wert_s = new String(wert);                                            
  punkt = wert_s.indexOf(".");                                          
  // nur eine Stelle nach komma                                         
  if (punkt == wert_s.length - 2)                                       
  { wert_s = wert_s + "0"}                                              
  wert_s = rund_1(wert_s,punkt);                                        
  
  return(wert_s);
 }
//------------------------------------------------------------------------------------  
  function f_submit(p_zahlungsweise)
  {                                
      document.frm.p_zahlungsweise.value = p_zahlungsweise ;                          
      document.frm.submit();       
  }                                
//------------------------------------------------------------------------------------
  // wird eingesetzt um Doppelklick zu vermeiden
  function check_submit_1()         
  { 
      return true;     
  }
  function check_submit() {                        
    if (document.forms.length > 0 ) {
       if (document.submit_check.submit_zaehler.value == "0") {
          document.submit_check.submit_zaehler.value = "1"                           
          return true;
       }
       else {
        if (document.submit_check.submit_zaehler.value == "2"){
          window.alert('Bitte zuerst die Daten des Fahrzeugs holen  ');
        }
        else {
          window.alert('Die Daten wurden bereits übermittelt!\n\nBitte nutzen Sie NICHT den "Zurück"-Button des Browsers zur Navigation (ggfs.\nnavigieren Sie mit der "Vor"-Taste des Browser soweit es geht nach vorne,\ndann können Sie mit der Anwendung weiterarbeiten).\nBitte keine Doppelklicks in der Anwendung ausführen.\nBitte keinen Button drücken, während eine Seite übertragen wird.');
        }
        return false;
       }
    }
  } 

// Generate a modal dialog.
// Parameters:
//    url -- URL of the page/frameset to be loaded into dialog
//    name -- Name des Fensters
//    attr -- Attribute des Fensters (wie für window.open)
//    returnFunc -- reference to the function (on this page)
//                  that is to act on the data returned from the dialog
//    args -- [optional] any data you need to pass to the dialog
function DialogModal(url, name, attr, returnFunc, args) {
	if (!dialogWin.win || (dialogWin.win && dialogWin.win.closed)) {
		// Initialize properties of the modal dialog object.
		dialogWin.returnFunc = returnFunc
		dialogWin.returnedValue = ""
		dialogWin.args = args
		dialogWin.url = url
		dialogWin.name = name
		dialogWin.attr = attr
		// Generate the dialog and make sure it has focus.
		dialogWin.win=window.open(dialogWin.url, dialogWin.name, dialogWin.attr)
		dialogWin.win.focus()
	} else {
		dialogWin.win.focus()
	}
}

function myGetElementByName(name) 
{
  //var len=document.getElementsByName(name).length;
  
  /* Die folgende Prüfung sollte wegen der Mehrdeutigkeit bei Checkboxen - Name kommt manchmal mehr als 1 mal vor -  nicht ausgeführt werden
  if (len != 1)
  {
   alert ("myGetElementByName:Element nicht gefunden oder mehrdeutig; name:"+name+ " len :"+len);
   return null;
  }
  */
  // return document.getElementsByName(name)[len-1];
  return document.getElementsByName(name)[0];
} // myGetElementByName

function markAllElementsInErrorByName(name) 
{
  var len= document.getElementsByName(name).length;
  for (i=0; i < len-1; i++)
  {
    document.getElementsByName(name)[i].className="fehler";
  }
} // markAllElementsInErrorByName

function toolTipEvent (evt){
  try
  {
    fehlertext   = generierteFehlermeldung.firstChild.nodeValue;
    if (fehlertext==null) return;

    if (gv_whichToolTipLib == "OVERLIB")
    {
      //alert ("fehlertext.length:"+fehlertext.length);
      ol_width=fehlertext.length*6+6 ; //180;
      ol_offsetx=-50;
      ol_offsety=-50;
      overlib(fehlertext);
    }
    else if (gv_whichToolTipLib == "WZ_TOOLTIP")
      Tip(fehlertext, FADEIN, 0, FADEOUT, 0);
    // else / Nichts
      
  }
  catch (exc)
  {
  } 
} // toolTipEvent

function toolTipEventExit(evt){
  try
  {
    if (gv_whichToolTipLib == "OVERLIB")
      nd();
    // else if (gv_whichToolTipLib == "WZ_TOOLTIP")
    // else / Nichts
  }
  catch (exc)
  {
  } 
} // toolTipEventExit

// Cross-browser implementation of element.addEventListener()
// Use: listen("event name", elem, func);
function listen(evnt, elem, func) {
  if (elem.addEventListener) // W3C DOM
    elem.addEventListener(evnt,func,false);
  else if (elem.attachEvent) { // IE DOM
    var r = elem.attachEvent("on"+evnt, func);
    return r;
  }
  else window.alert('I\'m sorry Dave, I\'m afraid I can\'t do that.');
}
      
// whichToolTipLib == "WZ_TOOLTIP" oder "OVERLIB")
// Die wz_tooltip.js Library machte schon beim Laden (tt_Init) auf bestimmten Seiten Probleme:
// Hängenbleiben des Browsers war die Folge (Eventhandling- Konflikt?)
// Betroffene Seiten sind alle diejenigen, auf denen die Berufe- Selectliste dynamisch aufgebaut wird.
// Abhilfe: Auf bestimmten Seiten wird die overlib.js verwendet; das muß beim Aufruf der folgenden Funktion (und aller
// davon abhängigen) angegeben werden.
function _processErrorsFocus(focusElement, whichToolTipLib) {
  var fehlertext = null;
  self.focus();
  gv_whichToolTipLib = whichToolTipLib;
  try
  {
    generierteFehlermeldung=document.getElementById("wdbdoc.GenerierteFehlermeldung");		
    if (generierteFehlermeldung==null) throw ("Keine Fehlermeldung gefunden!");
    fehlertext   = generierteFehlermeldung.firstChild.nodeValue;		
  }
  catch (exc)
  {
    fehlertext = null;
  } 
  if (fehlertext==null) 
  {
    if (focusElement!=null)
    {
      // Keine Fehlermeldung gefunden -> Focus auf angegebenes Element "focusElement" setzen
      currentElement = myGetElementByName(focusElement);
      try { // S.Kienzle, 29.04.2011
        currentElement.focus();
      } catch(e){};
    }
  }
  else
  {
    errorelement = generierteFehlermeldung.getAttribute("errorelement");   
    if (errorelement==null || errorelement=="") return;

    currentElement = myGetElementByName (errorelement);
    if (currentElement==null) return;
    
    try { // S.Kienzle, 29.04.2011
      currentElement.focus();
    } catch(e){};
    
    /* SK 26.10.2010 */
    currentClassName=currentElement.className;
    if (currentClassName == '' || currentClassName == 'undefined') {
      currentElement.className='fehler';
    } else {
      currentElement.className=currentClassName+' fehler';  
    }
    
    var fehlergrafikknoten = document.createElement("img");
    fehlergrafikknoten.src=fehlerimgsrc; // Grafik für das Fehlersymbol 
    if (gv_whichToolTipLib != "OVERLIB") // kein doppelter title
      fehlergrafikknoten.title = fehlertext;

    // Event-Listener registrieren (Anzeige des Tool-Tips)
    listen("mouseover", fehlergrafikknoten, toolTipEvent);
    listen("mouseout", fehlergrafikknoten, toolTipEventExit);

    currentElement.parentNode.insertBefore(fehlergrafikknoten, currentElement.nextSibling);
  }
} // processErrorsFocus

function processErrorsFocus(focusElement) {
  _processErrorsFocus(focusElement, "WZ_TOOLTIP");
}

function processErrorsFocusLib(focusElement, whichLib) {
  _processErrorsFocus(focusElement, whichLib);
}

function processErrors() {
  processErrorsFocus (null);
}

function open_beratung_zu_prd(liste,winName,features)
{
  proz = "akq.beratung_zu_prd";
  theURL    = new String(liste);
  trenner   = theURL.indexOf("?");
  parameter = theURL.substring(trenner);
  if (parameter != "")
  {
    theURL    = proz + parameter;
    MM_openBrWindow(theURL,winName,features);
  }
}

