<!-- OS-IGNORE -->

// Datei:       NumUtils.js
// Inhalt:      Funktionen fuer die Oberflaechenprogrammierung mit JavaScript
// Copyright:   © APS delta (Schweiz) GmbH 2004
// History:
//     13.02.2004 SR Erstellt mit der Funktion checkIfNum
//		 13.02.2004 SR Erstellt mit der Funktion checkIfNumKeyPress
//		 13.02.2004 SR Erstellt mit der Funktion checkIfCurrency
//		 13.02.2004 SR Erstellt mit der Funktion checkWeight
//		 13.02.2004 SR Erstellt mit der Funktion checkIfCurrency

// ---------------------------------------------------
//    Funktion checkIfNum
//    Eingesetzt zur Kontrolle ob der eingegebene Wert, 
//    vollständig numerisch ist.   
//   
//    Parameter:
//    strEingabe:  - Der zu überprüfende Wert
//    Return:      ein boolscher Wert zur Weiterverarbeitung.
// ------------------------------------------------
	function checkIfNum(strEingabe)
  {
      var nur_das ="0123456789.,";
      var bReturn = true;
      for (var i = 0; i < strEingabe.length; i++)
      {   
          if (nur_das.indexOf(strEingabe.charAt(i))<0 )
          {
              bReturn = false;
              break;
          }           
      }
      if(!bReturn)
      {
          alert('Eingabe ist keine Zahl.');
      }
      return bReturn;
  }
// ---------------------------------------------------
//    Funktion checkIfNumKeyPress
//    Eingesetzt zur Kontrolle ob der eingegebene Wert, 
//    vollständig numerisch ist.   
//   
//		Beispiel: onKeyPress="return checkIfNumKeyPress(this);"
//
//    Parameter:
//    obj:  	- Das input Objekt (this)
//    Return:      ein boolscher Wert zur Weiterverarbeitung.
// ------------------------------------------------
function checkIfNumKeyPress(obj)
    {
    	//alert(window.event.keyCode);
    	if((window.event.keyCode > 58 || window.event.keyCode < 47) && window.event.keyCode !=46 && window.event.keyCode !=8 && window.event.keyCode !=9 && window.event.keyCode !=13 && window.event.keyCode !=44)
		  {		  	
		    return false;    
		  }
		  // Bereits ein , oder . da
		  if((window.event.keyCode ==44 || window.event.keyCode ==46 )&& (obj.value.indexOf(",") > -1 || obj.value.indexOf(".") > -1))
	  	{
	  		return false;
	  	}        
	  	
    }
// ---------------------------------------------------
//    Funktion checkIfCurrency
//    Eingesetzt zur Kontrolle ob der eingegebene Wert, 
//    dem Muster eines Preises entspricht.   
//   
//    Parameter:
//    strPreis:  - Der zu überprüfende Wert
//    Return:      ein boolscher Wert zur Weiterverarbeitung.
// ------------------------------------------------
function checkIfCurrency(strPreis)
  {
    var fehler = 'Währungsformattierung nicht korrekt!';
    var anzahlPunkte = 0;
    var bReturn = false;
    var nachKomma = "";
    var temp = strPreis;
    strPreis = ReplaceStr(strPreis,",",".");
    if(checkIfNum(strPreis))
    {
        if(strPreis.indexOf('.') > -1)
        {
            nachKomma = strPreis.substring(strPreis.indexOf('.')+1,strPreis.length);
        }
        while(temp.indexOf('.') > -1)
        {
            temp = temp.substring(temp.indexOf('.')+1,temp.length);
            anzahlPunkte++;
        }
        if(anzahlPunkte > 1){
            alert(fehler);
            bReturn = false;
        }
        else
        {
            bReturn = true;
        }
        if(nachKomma.length > 2)
        {
            alert(fehler);
            bReturn = false;
        }
        if(strPreis.indexOf('.') == 0)
        {
            strPreis = "0" + strPreis;
        }
        if(strPreis.indexOf('.') == strPreis.length-1)
        {
            strPreis = strPreis + "00";
        }
        if(nachKomma.length == 1)
        {
            strPreis = strPreis + "0";
        }
    }
    //Man kann auch den korrigierten Preis zurückgeben. 
    return bReturn;
  }

// ---------------------------------------------------
//    Funktion checkWeight
//    Diese Funktion überprüft den übergebenen Parameter
//    ob dieser als Gewichtsangabe zulässig ist. Ein boolscher Wert
//    gibt an ob in Kilo oder in Gramm geprüft wird (Punkte und Nachkommaszellen).
//    Die Kiloprüfung ist auf drei Nachkommastellen genau.
//   
//    Parameter:
//    nWeight:  als Wert der zu überprüfen ist
//    bKilo:    als boolscher Wert ob Kilo erlaubt sind.
// ------------------------------------------------ 
function checkWeight(nWeight, isKilo)
  {
    var nur_das;
    var bReturn = false;
    var nachKomma = " ";
    var trennzeichen = -1;
    if(isKilo)
    {
        nur_das ="0123456789.,";
    }
    else
    {
        nur_das ="0123456789";    
    }
    for (var i = 0; i < nWeight.length; i++)
    {   
        if (nur_das.indexOf(nWeight.charAt(i))<0 )
        {
            bReturn = false;
            break;
        }
        else
        {
            bReturn = true;
        }
    }
    if(isKilo && bReturn)
    {
        if((nWeight.indexOf('.') > -1))
        {
            nachKomma = nWeight.substring(nWeight.indexOf('.')+1,nWeight.length);
            trennzeichen = nWeight.indexOf('.');
        } 
        if((nWeight.indexOf(',') > -1))
        {
            nachKomma = nWeight.substring(nWeight.indexOf(',')+1,nWeight.length);
            trennzeichen = nWeight.indexOf(',');
        }    
        if(nachKomma.length > 3 || nachKomma.length < 0 || nWeight.lastIndexOf('.') > trennzeichen || nWeight.lastIndexOf(',') > trennzeichen ||
            nWeight.lastIndexOf('.') == nWeight.length)
        {
            bReturn = false;  
        }
    }
    if(!bReturn)
    {
        alert('Gewichtsangabe überprüfen!');
    }
    return bReturn;
  }

<!-- /OS-IGNORE -->
