/*
 * Created on 28.03.2008
 * 
 * Author : Tom Schmieder
 * Company: Jasotec GbR
 */
  
//*****************************************************************************
function jtec_error_clear()
//*****************************************************************************
// loescht alle beisher gespeicherten Errors 
  {
  this.a_error = Array();
  this.a_thema = '';
  this.a_erroranzahl = 0;
  }
  
//*****************************************************************************
function jtec_error_errorAufgetreten()
//*****************************************************************************
// Gibt true zurueck, wenn in diesem Errorobjekt ein Error vermerkt wurde
// false, wenn kein Error vermerkt wurde
  {
  return this.a_erroranzahl;
  }
  
//*****************************************************************************
function jtec_error_setThema(p_thema)
//*****************************************************************************
  {
  this.a_thema = p_thema; 
  }
  
//*****************************************************************************
function jtec_error_getThema()
//*****************************************************************************
  {
  return this.a_thema; 
  }
  
//*****************************************************************************
function jtec_error_setError(p_errorstri)
//*****************************************************************************
// fuegt eine neue Fehlermeldung unter dem aktuellen Thema zum Errorobjekt hinzu
  {
//  if (!func_is_array(this.a_error[this.a_thema]))
//     this.a_error[this.a_thema] = Array();
//  this.a_error[this.a_thema].push(p_errorstri);
//  this.a_erroranzahl++;
  }
  
//*****************************************************************************
function jtec_error_kopiereErrors(p_error)
//*****************************************************************************
// kopiert die Errors aus einem uebergebenen errorobjekt in das eigene
  {
  for (var key in p_error.a_error)
     {
     if (!func_is_array(this.a_error[key]))
        this.a_error[key] = Array();
          
     for (var keyf in p_error.a_error[key])
        {
        this.a_error[key].push(p_error.a_error[key][keyf]);
        this.a_erroranzahl++;
        }
     }
  }
  
//*****************************************************************************
function jtec_error_getErrors()
//*****************************************************************************
// gibt eine Kopie des Arrays mit den Errors zurueck
  {
  var erg = Array();
  for (var key in this.a_error)
     {
     if (!func_is_array(erg[key]))
        erg[key] = Array();
           
     for (var keyf in this.a_error[key])
        {
        erg[key].push(this.a_error[key][keyf]);
        }
     }
  return (erg);
  }
    
//*****************************************************************************
function jtec_error_getErstenError()
//*****************************************************************************
// gibt den ersten Error zum aktuellen Thema als Lesbaren Fehlertext zuruck
  {
  if (!func_isset(this.a_error[this.a_thema]) || 
      !func_isset(this.a_error[this.a_thema][0]))
     return('');
     
  return (this.a_error[this.a_thema][0]);
  }
    
//*****************************************************************************
function jtec_error_getErstenErrorAlsText()
//*****************************************************************************
// gibt den ersten Error zum aktuellen Thema als Lesbaren Fehlertext zuruck
  {
  if (!func_isset(this.a_error[this.a_thema]) || 
      !func_isset(this.a_error[this.a_thema][0]))
     return('');
     
  var error = this.a_error[this.a_thema][0].split(',');
  switch (error[0])
    {
    case "NoPermissionForBigLettersInString": 
         return("Bitte nur Kleinbuchstaben verwenden.");
    //,urlencode(string)= In einem String wurden Gro�buchstaben gefunden, obwohl nur Klienbuchstaben erlaubt sind
    break;
    case "NoPermissionForSmallLettersInString": 
         return("Bitte nur Gro�buchstaben verwenden.");
    //,urlencode(string)= In einem String wurden Kleinbuchstaben gefunden, obwohl nur Gro�buchstaben erlaubt sind
    break;
    case "NumberIsToSmall": 
         return("Mindestwert ist "+error[1]);
    //,min,zahl= Die Zahl ist zu klein
    break;
    case "NumberIsToBig": 
         return("H�chstwert ist "+error[1]);
    //,max,zahl= Die Zahl ist zu gro�
    break;
    case "StringDidNotContainANumericValue": 
         return("Bitte eine Zahl eingeben.");
    //,string= der String enth�lt keine Zeichenkette, die sich als Zahlinterpretieren l��t
    break;
    case "StringIsToShort": 
         return("Mindestl�nge "+error[1]+" Zeichen.");
    //,minlaenge= der String ist zu kurz
    break;
    case "StringIsToLong": 
         return("Maxmall�nge "+error[1]+" Zeichen.");
    //,maxlaenge= der String ist zu lang
    break;
    case "ToManyLinebreaksInString": 
         return("Es sind nur "+error[1]+" Zeilenumbr�che erlaubt.");
    //,maxzeilenanzahl,zeilenanzahl= in einem String wurden zu viele Zeilenumbr�chegefunden
    break;
    case "WrongCharachtersInString": 
         return("Bitte geben sie nur '"+error[1]+"' ein.");
    //,erlaubtezeichen= Im string sind unerlaubte Zeichen gefunden worden
    break;
    case "NoTimeInDatetimestring":
         return("Bitte eine Urzeit eingeben.");
    break;
    case "IncorrectDate":
         return("Ung�ltiges Datum.");
    //,datestring
    break;
    case "IncorrectTime":
         return("Ung�ltige Urzeit.");
    //,timestring
    break;
    case "WrongDateslot":
         error[1] = jtec_convertDateSchnell(error[1],'european','');
         error[2] = jtec_convertDateSchnell(error[2],'european','');
         return("Bitte Datum zwischen dem "+error[1]+" und dem "+error[2]+" eingeben.");
    //,mindate,maxdate
    break;
    case "WrongDateMin":
         error[1] = jtec_convertDateSchnell(error[1],'european','');
         return("Mindestdatum "+error[1]+".");
    //,mindate
    break;
    case "WrongDateMax":
         error[1] = jtec_convertDateSchnell(error[1],'european','');
         return("Maximaldatum "+error[1]+".");
    //,miaxdate
    break;
    case "TimestringToShort":
         return("Zu ungenaue Uhrzeitangabe");
    //,timestring
    break;
    case "WrongTimeslot":
         return("Bitte Uhrzeit zwischen "+error[1]+" Uhr und "+error[2]+" Uhr eingeben.");
    //,mintime,maxtime
    break;
    case "WrongTimeMin":
         return("Mindestuhrzeit "+error[1]+".");
    //,mintime
    break;
    case "WrongTimeMax":
         return("H�chstuhrzeit "+error[1]+".");
    //,mintime
    break;
    case "NoDateInDatestring":
         return("Bitte Datum angeben.");
    //,datetimestring
    break;
    default: 
         return("Unbekannter Fehler! ["+this.a_error[this.a_thema][0]+"]");
    break;
    }
  }

//*****************************************************************************
function jtec_error_init()
//*****************************************************************************
  {
  this.a_error = Array();  // zweidimensionaler Array mit folgendem Schema Array[thema][n] = 'FEHLERMELDUNG';
  this.a_thema = '';       // thema, unter dem die neuen Fehlermeldungen gespeichert werden
  this.a_erroranzahl = 0; 
  
  this.clear                 = jtec_error_clear;
  this.errorAufgetreten      = jtec_error_errorAufgetreten;
  this.setThema              = jtec_error_setThema;
  this.getThema              = jtec_error_getThema;
  this.setError              = jtec_error_setError;
  this.kopiereErrors         = jtec_error_kopiereErrors;
  this.getErrors             = jtec_error_getErrors;
  this.getErstenError        = jtec_error_getErstenError;
  this.getErstenErrorAlsText = jtec_error_getErstenErrorAlsText;
  }

//CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
function c_jtec_error()
//CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  {
  this.init = jtec_error_init;
  this.init();
  }
  
