/* Copyright Bayerische Hypo- und Vereinsbank AG 1999 */
	
	/* Konvertiert, falls nötig Zahlenwerteingaben der Benutzer in Zahlenwerte deutscher Notation */

	function FormatNumberForField(field,decimals){
	
	if (CheckNumber(field)){
		start=0;				
		var sign="";
		var dot=0;
		var x=0;
		
		if (decimals==0){
		  
		 field.value=Math.round(field.value); 

		}
		
		var numb=field.value+"";
		
		if (numb.substring(0,1)=="-"){
			start=1;
			sign="-";
			numb=numb.substring(1,numb.length);
		}
		
		
		// Behandlung Sonderfall: Nur ein Punkt und kein Komma, dann Punkt als Komma interpretieren 
		for (var i1 = 0;i1 < numb.length;i1++){
			if (dot>=1){
			x+=1;
			}
			if(numb.substring(i1,i1+1) == "."){
				dot+=1
			}
		}
		
		//so wär´s eigentlich richtig, macht aber Probleme wenn einige Felder nicht 
		//mit dieser Funktion im Formular gespeichert wurden.
		// if (dot==1 && numb.indexOf(",")<=0 && x<3)
		if (dot==1 && numb.indexOf(",")<=0){
		numb=ReplaceCharacter(numb,".",",")
		}
		
		
		numb=RemoveDots(numb);
		numb=ReplaceCharacter(numb,",",".");
		numb=round_aic(numb);
		numb=ReplaceCharacter(numb,".",",");

		var comma=numb.indexOf(",");
		numb_right=numb.substring(comma,numb.length);
		numb_left=numb.substring(0,comma);
		numb_middle="";
		while (numb_left.length>3){
		
			numb_middle="."+numb_left.substring(numb_left.length-3,numb_left.length)+numb_middle;
			numb_left=numb_left.substring(0,numb_left.length-3);
		
			} /*Ende von while */
			
			if(decimals==1){
			     numb=sign+numb_left+numb_middle+numb_right;}
			else{
			     numb=sign+numb_left+numb_middle;}
			   
			field.value=numb
		}
		else	{
		alert ("Bitte geben Sie einen gültigen Zahlenwert ein.\nSie können Punkte als Tausender Trennzeichen und ein Komma als Dezimalzeichen verwenden.");
		field.value = "";
		field.focus();
		}
	}
	
	
	/**
	no rounding parameter stipulates that the passed number of decimalplaces is maintained.  If this isn't set, and the
	decimals parameter is set, then the number is rounded to 2.
	**/
	function FormatNumberForFieldNoRounding(field,decimals,norounding){

	if (CheckNumber(field)){
		start=0;
		var sign="";
		var dot=0;
		var x=0;
      var decimalcount = 2;

		if (decimals==0){
		 field.value=Math.round(field.value);
		}

		numb=field.value+"";

		if (numb.substring(0,1)=="-"){
			start=1;
			sign="-";
			numb=numb.substring(1,numb.length);
		}

		if (norounding == 1) {
		   // check if we have any decimals in this number.  If so, count the
		   // decimals so that it's used later in the rounding
		   var lastdot = numb.lastIndexOf(".");
		   if (lastdot >=0) {
		      decimalcount = numb.length - lastdot - 1;  // 1 is for the lastdot itself
		   }
		}

		// Behandlung Sonderfall: Nur ein Punkt und kein Komma, dann Punkt als Komma interpretieren
		for (var i1 = 0;i1 < numb.length;i1++){
			if (dot>=1){
			x+=1;
			}
			if(numb.substring(i1,i1+1) == "."){
				dot+=1
			}
		}


		if (dot==1 && numb.indexOf(",")<=0 && x<=decimalcount){
		numb=ReplaceCharacter(numb,".",",")
		}


		numb=RemoveDots(numb);
		numb=ReplaceCharacter(numb,",",".");
		numb=round_aic_todecimalpoint(numb,decimalcount);
		
		numb=ReplaceCharacter(numb,".",",");

		var comma=numb.indexOf(",");
		numb_right=numb.substring(comma,numb.length);
		numb_left=numb.substring(0,comma);
		numb_middle="";
		while (numb_left.length>3){

			numb_middle="."+numb_left.substring(numb_left.length-3,numb_left.length)+numb_middle;
			numb_left=numb_left.substring(0,numb_left.length-3);

			} /*Ende von while */

			if(decimals==1){
			     numb=sign+numb_left+numb_middle+numb_right;}
			else{
			     numb=sign+numb_left+numb_middle;}

			field.value=numb
		}
		else	{
		alert ("Bitte geben Sie einen gültigen Zahlenwert ein.\nSie können Punkte als Tausender Trennzeichen und ein Komma als Dezimalzeichen verwenden.");
		field.value = "";
		field.focus();
		}
	}

	
	/* Funktion zur Überprüfung von Nutzereingaben für allgemeine numerische Felder    */
	
	
	function CheckNumber(field){
		var comma = 0;
		var numb=field.value
		
		if (field.value.length==0||field.value==" "){field.value=0;}
						
		for (var i1 = 0;i1 < numb.length;i1++){
			if(numb.substring(i1,i1+1) == ","){
				comma+=1;
				if (comma>1){return false}}
			else
			if(numb.substring(i1,i1+1) != "." && isNaN(numb.substring(i1,i1+1))){
			
				if(numb.substring(i1,i1+1)=="-"){
					if(i1!=0){return false}}
				else {return false;}
								
			
			}
				
		}
		
		return true;
	}

	
	/* Funktion zur Umwandlung von numerischen Feldinhalten in deutscher Notation */
	/* in gültige Zahlenwerte für Javascript Berechnungen.                         */
	
	function ReadValue(field){
	var wert=field.value;
	if(wert.indexOf(",")>0){
		wert=RemoveDots(wert);
	} else {
	   wert=RemoveThousandDots(wert);
	}
	wert=ReplaceCharacter(wert,",",".");
	return wert
	}
	
	function RemoveDots(wert){
		wert=wert+"";
		for (var i1 = 0;i1 < wert.length;i1++){
			if(wert.substring(i1,i1+1) == "."){
			var dot=wert.indexOf(".")
				while (dot >= 0){
				var wert_left = wert.substring(0,dot);
				var wert_right = wert.substring(dot+1,wert.length);
				wert = wert_left + wert_right;
				dot=wert.indexOf(".")
				}
			}
		
		}
		return wert
	}
	

	function RemoveThousandDots(wert){
		wert=wert+"";
		var returnWert="";

         var splitDot = wert.split(".");
         if(splitDot.length>1)
         {
            if ( (splitDot[splitDot.length-1].length <3))
               lastDot=splitDot.length-2
            else
               lastDot=splitDot.length-1

            for(var iCounter=0;iCounter<=lastDot;iCounter++)
            {
               returnWert=returnWert+splitDot[iCounter];
            }
            if(lastDot==splitDot.length-2)
               returnWert=returnWert+","+splitDot[splitDot.length-1];
         } else {
            returnWert=wert;
         }

		return returnWert
	}

	function ReplaceCharacter(wert,character1, character2){
	/* Ersetzt in String wert alle character1 durch character 2 */
		wert=wert+"";
		var indx=wert.indexOf(character1)
		while (indx >= 0){
			var wert_left = wert.substring(0,indx);
			var wert_right = wert.substring(indx+1,wert.length);
			wert = wert_left + character2 + wert_right;
			indx=wert.indexOf(character1)
			}
	return wert
	}
	
	
	
	
	
		
	
	function CheckYear(year){
		
	if(year.length!=4){return false}
	for (var i1 = 0;i1 < 4;i1++){
		if(isNaN(year.substring(i1,i1+1))){
		return false
		}
		
	 }
	 return true
	}
	
	
	
	
	
	function checkdate(field) {
		var err=0
		a=field.value;
		if (a.length != 10) err=1
		b = a.substring(0, 2)// day
		c = a.substring(2, 3)// '.'
		d = a.substring(3, 5)// month
		e = a.substring(5, 6)// '.'
		f = a.substring(6, 10)// year
		if (d<1 || d>12) err = 1
		if (c != '.') err = 1
		if (b<1 || b>31) err = 1
		if (e != '.') err = 1
		if (f<0 || f>99) err = 1
		if (d==4 || d==6 || d==9 || d==11){
		if (b==31) err=1
		}
		if (d==2){
			var g=parseInt(f/4)
		if (isNaN(g)) {
			err=1
		}
		if (b>29) err=1
		if (b==29 && ((f/4)!=parseInt(f/4))) err=1
		}
		if (err==1) {
		alert ("Bitte geben Sie ein gültiges Datum im Format tt.mm.jj ein!");
		field.focus;
		return false;
		}
		else {
		return true;
   		  }
		}
	
		function isUndefined(_var) {
			return (null == _var || "undefined" == typeof(_var));
		}