// JavaScript Document
function checkEmail(theForm,meldung)
{
	 var str=theForm.email.value
   var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
   if (filter.test(str)){
     return (true);
		}
		else
		{	alert(unescape(meldung));
				theForm.email.focus();
				return (false);
		}
  return true
}
function checkEmail2(theField,meldung)
{
	 var str=theField.value
   var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
   if (filter.test(str)){
     return (true);
		}
		else
		{	alert(unescape(meldung));
				theField.focus();
				return (false);
		}
  return true
}
String.prototype.trim = function() {

 // skip leading and trailing whitespace
 // and return everything in between
  var x=this;
  x=x.replace(/^\s*(.*)/, "$1");
  x=x.replace(/(.*?)\s*$/, "$1");
  return x;
}

var STR_PAD_LEFT = 1;
var STR_PAD_RIGHT = 2;
var STR_PAD_BOTH = 3;
 
function pad(str, len, pad, dir) {
 
	if (typeof(len) == "undefined") { var len = 0; }
	if (typeof(pad) == "undefined") { var pad = ' '; }
	if (typeof(dir) == "undefined") { var dir = STR_PAD_RIGHT; }

	if (len + 1 >= str.length) {
		switch (dir){
 
			case STR_PAD_LEFT:
				str = Array(len + 1 - str.length).join(pad) + str;

			break;
 
			case STR_PAD_BOTH:
				var right = Math.ceil((padlen = len - str.length) / 2);
				var left = padlen - right;
				str = Array(left+1).join(pad) + str + Array(right+1).join(pad);
			break;
 
			default:
				str = str + Array(len + 1 - str.length).join(pad);
			break;
 
		} // switch
 
	}
 
	return str;
 
}
function checkFloaty(obj,meldung) {
	var floaty = obj.value;
	if (floaty != "") {
		if (floaty.indexOf(".") != -1) {	 // wenn Punkt vorhanden		 	// && floaty.charAt(floaty.length-3) != "." //u. dieser Dezimaltrennzeichen ist. 
			var hackStr = floaty.split(".");		 // String nach Punkten zerhacken 
			var anzTokens = hackStr.length;			 // Anzahl der entstandenen Tokens 
			var tokenLeng = 0;									 // Länge des aktuellen Tokens
			floaty = "";												 // Variable f. zusammensetzen der Tokens. 

			for (i = 0; i < anzTokens; i++) {
				tokenLeng = hackStr[i].length;
				if ((i != (anzTokens-1) && tokenLeng > 3) || tokenLeng == 0) { 						  // wenn Token gösser als 3 Zeichen u. nicht das hinterste Stck o. Tokenlänge ist nicht 0 
					hackStr[i] = "flase";
				}
				if (anzTokens > 2 && i != (anzTokens-1) && i > 0 && tokenLeng != 3) { 	 // mehr als 2 Tokens (d.h. mind. 2 Punkte) u. nicht der letzte Token u. Länge des Tokens ist nicht 3 
					hackStr[i] = "flase";
				}

				if (i == (anzTokens-1)) {	 // letzer Token mit evtl. Komma  
					if (hackStr[i].indexOf(",") != -1 && tokenLeng != 6) { 	  // wenn Komma im gesamt Str nicht vorhanden u. nicht 6 Zeichen 
						hackStr[i] = "flase";
					}
					if (hackStr[i].indexOf(",") == -1 && tokenLeng != 3) { 	  // wenn Komma im gesamt Str  vorhanden u. nicht 3 Zeichen 
						hackStr[i] = "flase";
					}
				}

				floaty = floaty + hackStr[i];		  // Zahl für JS-Prüfung zusammensetzen 

				if (hackStr[i] == "flase")	{		  // wenn Fehler dann aus Schleife rauss! 
					break;
				}
			}
		}

		if (floaty.indexOf(",") != -1) {	  // wenn Komma vorhanden u. es als Dezimaltrennzeichen verwendet wird. 
			floaty = floaty.replace(/,/,".");																			   // Sonst nicht filtern -> d.h. Fehler wird von JS geschmissen. 
		}

		if (isNaN(floaty) || floaty <= 0) {					 // wenn JS keine Zahl erkennt o. diese <= 0 ist  // #34730 
			alert(meldung);
			obj.select();
			return false;
		} else {
      return true;
    }
	}
}
//Punkt, als trennzeichen für Tausender
function checkInt(value,meldung) {
  if((parseFloat(value.replace(".","")) == parseInt(value.replace(".",""))) && !isNaN(value.replace(".","")) && value.lastIndexOf(".") == value.indexOf(".") ){
        return true;
    } else {
        alert (meldung);
        return false;
    }
}
/*function trim(s) {
  while (s.substring(0,1) == ' ') {
    s = s.substring(1,s.length);
  }
  while (s.substring(s.length-1,s.length) == ' ') {
    s = s.substring(0,s.length-1);
  }
  return s;
}   */
function trim(str, chars ) {
  if (chars == null){
     chars = ' ';
  }
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}
function getFullYear(date)
{
    if(!date) date = new Date();
    if(typeof date.getFullYear != 'undefined') return date.getFullYear();
    var year = date.getYear();
    if(year < 1000) year += 2000;
    return year;
}

function checkDatum (string)

{
    if(!string) return false;
    string += '';

    string = string.replace(/[^0-9^\.]/g, '');

    var split = string.split(".");
    var day = parseInt(split[0], 10);
    var month = parseInt(split[1] || 0, 10);
    var year = parseInt(split[2] || 0, 10);

    if(isNaN(year)) year = getFullYear();;

    var check = new Date(year, month - 1, day);
    var day2 = check.getDate();
    var year2 = getFullYear(check);
    var month2 = check.getMonth() + 1;

    if ( year2 == year && month == month2 && day == day2 ) return true;
    return false;
}


 function in_array (needle, haystack, argStrict) {

    var key = '', strict = !!argStrict; 
    if (strict) {
        for (key in haystack) {
            if (haystack[key] === needle) {
                return true;            }
        }
    } else {
        for (key in haystack) {
            if (haystack[key] == needle) {                return true;
            }
        }
    }
     return false;
}
 function decodeEntitiesSymbol(str){
      var matches = str.match(/&#\d+;?/g); 
      if  (matches){    
      for(var i = 0; i < matches.length; i++)
      {
            // line wraps here -- be careful copy/pasting
            var replacement = String.fromCharCode((matches[i]).replace(/\D/g,""));
            
            str = str.replace(/&#\d+;?/,replacement);
      } 
      }         
      return str; 
 }
