function checkPAYBACKNr(strNr)
{
	strNr = "308342" + strNr;
	if(isNumeric(strNr) == false) { return false; } 
	if(strNr.length != 16) { return false; }	

	var iErg = 0;
	var iZwErg = 0;
	
	//Nr von hinten abarbeiten, aber ohne letzte ziffer, diese ist prüfziffer:
	for(i = 14; i >= 0; i--) {
		//Gerade?? --> x 2 und dann Quersumme bilden:
		if( (i & 1) == 0 ) {
			iZwErg = (strNr.substring(i,i+1) * 2);	
			//Quersumme berechnen:
			if(iZwErg == 10) {
				iZwErg = 1;
			} else if(iZwErg == 12) {
				iZwErg = 3;
			} else if(iZwErg == 14) {
				iZwErg = 5;
			} else if(iZwErg == 16) {
				iZwErg = 7;
			} else if(iZwErg == 18) {
				iZwErg = 9;
			}
			iErg = iErg + iZwErg; 
		//Ungerade?? einfach dazu addieren:
		} else {
			iErg = iErg + (strNr.substring(i,i+1) * 1); 
		}
	}
	//Das Ergebnis von der nächsthöheren ganzzahlig durch 10 teilbaren Zahl (10, 20, ..., 90) abziehen
	if(iErg % 10 != 0) {
		iErg = ((iErg.toString().substring(0,1) * 1 + 1) * 10) - iErg;
	} else {
		iErg = 0;
	}

	if(iErg != strNr.substring(15,16)) { return false; }	
	return true;
}
//================================================================
function checkBSWNr(strNr)
{

	var z = strNr.length;
	var k = 0;
	var j = 2;
	var pz = "";
	var i = 0;	

	do {
		
		i = j * parseInt(strNr.substring(z,1));
		if (i >= 0) {
			if (i >= 10) {
				i = i - 9;
			}
	
			k = k+i;
	
			if (j = 2) {
				j = 1;
			}
			else if (j = 1) {
				j = 2;
			}
		}
		z--;
	} while (z > 0);

	k = 10 - (10 * ((k/10) - parseInt(k/10)));

	if (k == 10) {
		pz = "0";
	}
	else {
		pz = k;
	}

	return pz;
}
//================================================================

function checkADACNr(strNr)
{
	if(isNumeric(strNr) == false) { return false; } 
	if(strNr.length != 9) { return false; }
	
	var iGewicht = 2;
	var iErg = 0;
	
	//Nr von hinten abarbeiten, aber ohne letzte ziffer, diese ist pr?fziffer:
	for(i = 7; i >= 0; i--) {
		//Einzelne Zahlen gewichten: 2, 3, 4, 5, 6, 7, 2, 3
		if(iGewicht == 8) { iGewicht = 2; }				
		iErg = iErg + (strNr.substring(i,i+1) * iGewicht);
		iGewicht++;
	}	
	//11 - Modulo 11 muss gleich der Pr?fziffer sein:	
	iErg = 11 - iErg % 11;	
	if(iErg >= 10) {
		iErg = 0;
	}
	if(iErg != strNr.substring(8,9)) { return false; }	
	return true;
}
//================================================================

function checkSum(cardnumber) 
{
    var gewicht = "121212121212121212";
    var len = cardnumber.length;      
    if(len != 19) return false;
    
    var i = 0;   
    var sum = 0;
    var singleval = 0;
    var rest = 0;
    var pruef = 0;
    while (i < 18) {
    	singleval = cardnumber.substring(i, i+1) * gewicht.substring(i, i+1);
    	sum = sum + singleval;
    	if(singleval > 9) {
    		sum = sum -9;
    	}
    	i = i + 1;
    }
    rest = sum % 10;
    if(rest == 0) {
    	rest = 10;
    }
    pruef = 10-rest;    
    return (pruef == cardnumber.substring(18, 19)); 
}

//================================================================
/** Ermittelt die Value eines Radio-Feldes */

function getRadioWert(rObj)
{
    if(isNaN(rObj.length)) 
      if (rObj.checked) return rObj.value;
      else              return "";
    for (var i=0; i<rObj.length; i++) if (rObj[i].checked) return rObj[i].value;
    return "";
}

/** oeffnet ein Popup-Fesnter */


  function popup(strUrl, strName, nWidth, nHeight, strFeature)
  {
    // Korrekturfaktor Fensterraender
    dX = 5;
    dY = 30;

    if (-1 == nWidth)
       nWidth = screen.availWidth;

    if (-1 == nHeight)
       nHeight = screen.availHeight;

    if ("" != strFeature)
       strFeature += ", ";

    strFeature += "width=" + nWidth + ", height=" + nHeight;

    wnd = window.open(strUrl, strName, strFeature);
    wnd.moveTo( ((screen.availWidth - nWidth) / 2) - dX, ((screen.availHeight - nHeight) / 2) - dY );
    //if (arguments.length == 6)
    //   wnd.scrollbars.visible = arguments[5];


    wnd.focus();
  }

//================================================================
/** Prueft ob das Datum korrekt ist, FormatMode ist optional */
function isDate(sDatum,FormatMode)
{
   if (FormatMode!=0) {FormatMode=1}
   if (sDatum.indexOf(".")==-1) {return false};
   var ArrayDate = sDatum.split(".");
   if ((ArrayDate.length!=3) || (isNaN(ArrayDate[0])) || (ArrayDate[0]=="") || (isNaN(ArrayDate[1])) || (ArrayDate[1]=="") || (isNaN(ArrayDate[2])) || (ArrayDate[2]=="")) {return false};
   var daysInMonth = new Array(0,31,29,31,30,31,30,31,31,30,31,30,31);
   if ((parseInt(ArrayDate[1 - FormatMode],10)<1) || (parseInt(ArrayDate[1 - FormatMode],10)>daysInMonth[parseInt(ArrayDate[0 + FormatMode],10)])) {return false};
   if ((parseInt(ArrayDate[0 + FormatMode],10)==2) && (parseInt(ArrayDate[1 - FormatMode],10)>GetDaysInFebruary(parseInt(ArrayDate[2],10)))) {return false};
   if ((parseInt(ArrayDate[0 + FormatMode],10)<1) || (parseInt(ArrayDate[0 + FormatMode],10)>12)) {return false};
   //Jahreszahl muss > 1900 sein:
   if (parseInt(ArrayDate[2], 10) < 1900) {return false};
   return true;
}
//================================================================
/** Liefert die Anzahl der Tage im Februar */
function GetDaysInFebruary(year) {return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 )}

//================================================================
/** Selektiert aus einer Radiogroup den angegebenen Value */
function selectRadioByValue(radio, value)
{
   i = 0;
   while(i < radio.length)
   {
      if(radio[i].value == value)
      {
         radio[i].checked = true;
         return true;
      }
      i++;
   }
   return false;
}

//================================================================
/** Selektiert aus einer ComboBox den angegebenen Value */
function selectCboByValue(cbo, value)
{
   i = 0;
   while(i < cbo.options.length)
   {
      if(cbo.options[i].value == value)
      {
         cbo.options[i].selected = true;
         return true;
      }
      i++;
   }
   return false;
}
//================================================================
/** Selektiert aus einer ComboBox den angegebenen Value */
function selectCboByText(cbo, txt)
{
   i = 0;
   while(i < cbo.options.length)
   {
      if(cbo.options[i].text == txt)
      {
         cbo.options[i].selected = true;
         return true;
      }
      i++;
   }
   return false;
}

//================================================================
function checkSonderzeichen( strSonderzeichen, strCheck)
{
  //pr?ft, ob in String strCheck eines der Sonderzeichen aus strSonderzeichen vorkommt:
  var b = true;
  var i = 0;
  while(i<strCheck.length) {
     var c = strCheck.charAt(i);
     if(strSonderzeichen.indexOf(c) != -1) {
       b = false;
     }
     i++;
  }
  return b;
}
//================================================================
function isEMail(str)
{
	var a = false;
	var res = false;
	
	if(typeof(RegExp) == 'function')
	{
		// RegEx funktionieren erst ab JS 1.2
		var b = new RegExp('abc');
		if(b.test('abc') == true){a = true;}
	}

	if(a == true)
	{
		reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_&]+)'+
			'(\\@)([a-zA-Z0-9\\-\\.&]+)([a-zA-Z0-9\\-&]{1})'+ // letztes Zeichen vor der TLD darf kein Punkt sein.
			'(\\.)([a-zA-Z]{2,4})$');
		res = (reg.test(str));
	}
	else
	{
		res = (str.search('@') >= 1 &&
			str.lastIndexOf('.') > str.search('@') &&
			str.lastIndexOf('.') >= str.length-5)
	}
	return(res);
}
//================================================================
function isTelefonNr(str) // by [SD]
{
 
 var a = false;
 var res = false;
 if(typeof(RegExp) == 'function')
 {
  var b = new RegExp('abc');
  if(b.test('abc') == true){a = true;}
 }
 if(a == true)
 {
  reg = new RegExp('^[0-9]+[-/0-9]?[0-9]+$');
  res = (reg.test(str));
 }
 else
 {
   //res = (str.search('@') >= 1 &&
   //      str.lastIndexOf('.') > str.search('@') &&
   //      str.lastIndexOf('.') >= str.length-5)
   res = true;
 }
 return(res);
}
//================================================================
function isNumeric(str) // by [SD]
{
  var str2 = String(str).replace(/^\s*|\s*$/g,"");
  if(str2.length == 0) return false;
  return (Number(str)==str);
}
//================================================================
function isTooShort(str,minimum) // by [SD]
{
  return (str.length<minimum);
}
//================================================================
function NumandCharOnly(a_oEvent)
{
    var iKeyCode;
    if (!document.all) {
        iKeyCode = a_oEvent.which; //Firefox
    } else {
        iKeyCode = a_oEvent.keyCode; //IE
    }

  // nur Steuerzeichen und Zahlen zulassen
  if (iKeyCode == 0					//alle möglichen Tasten zur Navigation (Tab, Pfeiltasten,...) 
      ||   iKeyCode == 8                                 // BackSpace
      ||   iKeyCode == 9                                 // TAB
      ||   iKeyCode == 13                                // ENTER
      ||   iKeyCode == 37                                // Left
      ||   iKeyCode == 39                                // Right
      ||   iKeyCode == 46                                // Entf
      ||   iKeyCode == 109                               // Num -
      ||   iKeyCode == 189                               // -
      || ( iKeyCode > 47 && iKeyCode < 58 )      // 0..9 Tastatur
      || ( iKeyCode > 64 && iKeyCode < 91 )      // Buchstaben
      || ( iKeyCode > 95 && iKeyCode < 106 ) )   // 0..9 NumBlock
  {
       // auch die nicht zulassen, wenn mit shift, alt, ctrl
       if ( !iKeyCode.shiftKey && !iKeyCode.altKey && !iKeyCode.ctrlKey ) {
         return true;
       }
  }
  return false;   // Eingabe ignorieren
}
//================================================================
function NumOnly(a_oEvent)
{
    var iKeyCode;
    if (!document.all) {
        iKeyCode = a_oEvent.which; //Firefox
    } else {
        iKeyCode = a_oEvent.keyCode; //IE
    }

  if (iKeyCode == 0					//alle möglichen Tasten zur Navigation (Tab, Pfeiltasten,...) 
    ||   iKeyCode == 8                                 // BackSpace
    ||   iKeyCode == 9                                     // TAB
    ||   iKeyCode == 13                                    // ENTER
    //||   iKeyCode == 37                                  // Left
    //||   iKeyCode == 39                                  // Right
    //||   iKeyCode == 46                                  // Entf
    || ( iKeyCode > 47 && iKeyCode < 58 )      // 0..9 Tastatur
    //|| ( iKeyCode > 95 && iKeyCode < 106 )    // 0..9 NumBlock
    )
    {
       // auch die nicht zulassen, wenn mit shift, alt, ctrl
       if ( !iKeyCode.shiftKey && !iKeyCode.altKey && !iKeyCode.ctrlKey ) {
         return true;
       }
    }

    return false; // Eingabe ignorieren
}
//================================================================
function NumOnlyNoZero(a_oEvent)
{
    var iKeyCode;
    if (!document.all) {
        iKeyCode = a_oEvent.which; //Firefox
    } else {
        iKeyCode = a_oEvent.keyCode; //IE
    }

  if (iKeyCode == 0					//alle möglichen Tasten zur Navigation (Tab, Pfeiltasten,...) 
    ||   iKeyCode == 8                                 // BackSpace
    ||   iKeyCode == 9                                     // TAB
    ||   iKeyCode == 13                                    // ENTER
    //||   iKeyCode == 37                                  // Left
    //||   iKeyCode == 39                                  // Right
    //||   iKeyCode == 46                                  // Entf
    || ( iKeyCode > 48 && iKeyCode < 58 )      // 0..9 Tastatur
    //|| ( iKeyCode > 95 && iKeyCode < 106 )    // 0..9 NumBlock
    )
    {
       // auch die nicht zulassen, wenn mit shift, alt, ctrl
       if ( !iKeyCode.shiftKey && !iKeyCode.altKey && !iKeyCode.ctrlKey ) {
         return true;
       }
    }

    return false; // Eingabe ignorieren
}
//================================================================

function Trim(TRIM_VALUE)
{
  if(TRIM_VALUE.length < 1) 
    return"";

  TRIM_VALUE = RTrim(TRIM_VALUE);
  TRIM_VALUE = LTrim(TRIM_VALUE);
  return TRIM_VALUE;
}

//================================================================

function RTrim(VALUE)
{
  var w_space = String.fromCharCode(32);
  var v_length = VALUE.length;
  var strTemp = "";
  if(v_length < 0){
    return"";
  }
  var iTemp = v_length -1;

  while(iTemp > -1){
    if(VALUE.charAt(iTemp) == w_space){}
    else{
      strTemp = VALUE.substring(0,iTemp +1);
      break;
    }
    iTemp = iTemp-1;
  }

  return strTemp;

}

//================================================================

function LTrim(VALUE)
{
  var w_space = String.fromCharCode(32);
  if(v_length < 1){
    return"";
  }
  var v_length = VALUE.length;
  var strTemp = "";

  var iTemp = 0;

  while(iTemp < v_length){
    if(VALUE.charAt(iTemp) == w_space){}
    else{
      strTemp = VALUE.substring(iTemp,v_length);
      break;
    }
    iTemp = iTemp + 1;
  }

  return strTemp;
} 

//================================================================

function TelefonOnly(a_oEvent)
{
  var iKeyCode;
  if (!document.all)
      iKeyCode = a_oEvent.which;
  else iKeyCode = a_oEvent.keyCode;
  //alert(window.event.keyCode);
  // nur Steuerzeichen und Zahlen zulassen
  if ( iKeyCode == 8                                     // BackSpace
      ||   iKeyCode == 9                                     // TAB
      ||   iKeyCode == 45                                    // -
      ||   iKeyCode == 47                                    // /
      ||   iKeyCode == 40                                    // (
      ||   iKeyCode == 41                                    // )
      ||   iKeyCode == 43                                    // +
      ||   iKeyCode == 13                                    // ENTER
      ||   iKeyCode == 37                                    // Left
      ||   iKeyCode == 39                                    // Right
      ||   iKeyCode == 46                                    // Entf
      || ( iKeyCode > 47 && iKeyCode < 58 )      // 0..9 Tastatur
      //|| ( iKeyCode > 95 && iKeyCode < 106 )    // 0..9 NumBlock
      )
  {
     // auch die nicht zulassen, wenn mit shift, alt, ctrl
     if ( !a_oEvent.shiftKey && !a_oEvent.altKey && !a_oEvent.ctrlKey || a_oEvent.keyCode == 47
          || iKeyCode == 40 || iKeyCode == 41)
          return true;
  }

  return false;   // eingabe ignorieren
}

//================================================================

function lpad(s, n, c)
{
  while (s.length < n)
    s = c + s;
  return s;
}

//================================================================

function rand( min, max ) 
{ // Liefert eine Zufallszahl zwischen Min und Max

    if( max ) {
        return Math.floor(Math.random() * (max - min + 1)) + min;
    } else {
        return Math.floor(Math.random() * (min + 1));
    }
}

//================================================================
function isEMailRFC(str)
{
	var vLocalPart   = "";
	var vDomain      = "";
	var vPosAt       = 0;
	var vRegExpOK    = false;
	var vLocalPartOK = false;
	var vDomainOK    = false;
	var vDomainIsIP  = false;
	
	str = Trim(str);
	
	if(str.search('@') == -1) {
		return false;
	} else {
		PosAt = str.lastIndexOf('@');
		vLocalPart = str.substring(0, PosAt);
	    	vDomain    = str.substring(PosAt + 1, str.length);
	    
            if(vDomain.indexOf('.') == -1) return false;
	    
            if(vLocalPart.length > 64) return false;
	    if(vLocalPart.indexOf('.') == 0 || vLocalPart.lastIndexOf('.') == (vLocalPart.length - 1)) return false;
	    if(vDomain.length > 255) { 
	    	return false;
	    } else {
	    	var vLabels = vDomain.split('.');
	    	for(var i = 0; i < vLabels.length; i++) {
	    		if(vLabels[i].length < 1 || vLabels[i].length > 63) return false;
	    	}
	    }
		if(vDomain.indexOf('[') != -1 && vDomain.indexOf(']') != -1) vDomainIsIP = true;  
			
		if(typeof(RegExp) == 'function') {
			var vRegExp = new RegExp('abc');
			if(vRegExp.test('abc') == true) { vRegExpOK = true; }
		}    
	    
	    if(vRegExpOK == true) {
			regLocalPart = new RegExp("^([a-zA-Z0-9\\!\\#\\$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\.])+$");
			vLocalPartOK = (regLocalPart.test(vLocalPart));
			
			if(!vLocalPartOK) { 
				if(vLocalPart.indexOf('"') == 0 && vLocalPart.lastIndexOf('"') == (vLocalPart.length - 1)) vLocalPartOK = true;
			} else { 
				if(vLocalPart.indexOf('..') != -1) vLocalPartOK = false; 
			}
			
			if(vDomainIsIP == false) {
				regDomain = new RegExp("^([a-z0-9\\-\\.])+$");
				vDomainOK = (regDomain.test(vDomain));
			} else {
				vDomainOK = true;
			}
		}
	    
	    if(vLocalPartOK && vDomainOK) return true; else	return false;
	}
}
//================================================================
function check_personalausweis(p1, p2, p3, p4, p5, bdate) {
	var retVal = 0;
	if ((p1.length==10) && (p2.length==1) && (p3.length==7) && (p4.length==7) && (p5.length==1) && (bdate.length==10)) {
		var c1 = checksum_personalausweis(p1.substring(0,p1.length-1));
		var c3 = checksum_personalausweis(p3.substring(0,p3.length-1));
		var c4 = checksum_personalausweis(p4.substring(0,p4.length-1));
		var ca = checksum_personalausweis(p1+p3+p4);
		var bd = check_bdate_personalausweis(p3.substring(0,p3.length-1), bdate);
		var ex = check_expiration_date_personalausweis(p4.substring(0,p4.length-1));
		 
		if ((c1 == p1.substring(p1.length-1,p1.length)) &&
		    (p2.toUpperCase() == 'D') &&
			(c3 == p3.substring(p3.length-1,p3.length)) &&
			(c4 == p4.substring(p4.length-1,p4.length)) && 
			(ca == p5) &&
			(bd == true) &&
			(ex == true)) {
			retVal = 1;
		}
	}
	return retVal;
}

function checksum_personalausweis(inp) {
	var i = 1;
	var cs = 0;
	for (var j=0;j<inp.length;j++) {
		switch (i) {
			case 1: cs += inp.substring(j,j+1)*7; i++; break;
			case 2: cs += inp.substring(j,j+1)*3; i++; break;
			case 3: cs += inp.substring(j,j+1)*1; i = 1; break;
		}
	}
	cs = cs % 10;
	return cs;
}

function check_bdate_personalausweis(inp, bdate) {
	var vRetVal = false;
	
	var vArrDate = bdate.split(".");
	var vDay = vArrDate[0];
	var vMonth = vArrDate[1];
	var vYear = vArrDate[2];
	
	if((inp.substring(0,2) == vYear.substring(2,4)) &&
	   (inp.substring(2,4) == vMonth) &&
	   (inp.substring(4,6) == vDay))
	   vRetVal = true;
	
	return vRetVal;
}

function check_expiration_date_personalausweis(exdate) {
	var vRetVal = false;
	
	var vYear = "20" + exdate.substring(0, 2);
	var vMonth = exdate.substring(2, 4);
	var vDay = exdate.substring(4, 6)	
	if(isDateInFuture(vDay + "." + vMonth + "." + vYear)) vRetVal = true;
	
	return vRetVal;
}

function check_personalausweis_neu(p1, p2, p3, p4, bdate) {
	var retVal = 0;
	if ((p1.length==3) && (p2.length==10) && (p3.length==7) && (p4.length==8) && (bdate.length==10)) {
		var c2 = checksum_personalausweis_neu(p2.substring(0,p2.length-1));
		var c3 = checksum_personalausweis_neu(p3.substring(0,p3.length-1));
		var c4 = checksum_personalausweis_neu(p4.substring(0,p4.length-2));
		var bd = check_bdate_personalausweis(p3.substring(0,p3.length-1), bdate);
		var ex = check_expiration_date_personalausweis(p4.substring(0,p4.length-2));
		 
		if ((c2 == p2.substring(p2.length-1,p2.length)) &&
		    (p4.substring(p4.length-1,p4.length).toUpperCase() == 'D') &&
			(c3 == p3.substring(p3.length-1,p3.length)) &&
			(c4 == p4.substring(p4.length-2,p4.length-1)) && 
			(p1 == 'IDD' || p1 == 'ITD') &&
			(bd == true) &&
			(ex == true)) {
			retVal = 1;
		}
	}
	return retVal;
}

function checksum_personalausweis_neu(inp) {
	var i = 1;
	var cs = 0;
	for (var j=0;j<inp.length;j++) {
		switch (i) {
			case 1:
				cs += parsePersonalausweisDigitToNum(inp.substring(j,j+1)) * 7;
				i++;
				break;
			case 2:
				cs += parsePersonalausweisDigitToNum(inp.substring(j,j+1)) * 3;
				i++;
				break;
			case 3:
				cs += parsePersonalausweisDigitToNum(inp.substring(j,j+1)) * 1;
				i = 1;
				break;
		}
	}
	cs = cs % 10;
	return cs;
}

function parsePersonalausweisDigitToNum(inp) {
	var ret = 0;
	switch(inp) {
		case 'A':
			ret = 10;
			break;
		case 'B':
			ret = 11;
			break;
		case 'C':
			ret = 12;
			break;
		case 'D':
			ret = 13;
			break;
		case 'E':
			ret = 14;
			break;
		case 'F':
			ret = 15;
			break;
		case 'G':
			ret = 16;
			break;
		case 'H':
			ret = 17;
			break;
		case 'I':
			ret = 18;
			break;
		case 'J':
			ret = 19;
			break;
		case 'K':
			ret = 20;
			break;
		case 'L':
			ret = 21;
			break;
		case 'M':
			ret = 22;
			break;
		case 'N':
			ret = 23;
			break;
		case 'P':
			ret = 25;
			break;
		case 'Q':
			ret = 26;
			break;
		case 'R':
			ret = 27;
			break;
		case 'S':
			ret = 28;
			break;
		case 'T':
			ret = 29;
			break;
		case 'U':
			ret = 30;
			break;
		case 'V':
			ret = 31;
			break;
		case 'W':
			ret = 32;
			break;
		case 'X':
			ret = 33;
			break;
		case 'Y':
			ret = 34;
			break;
		case 'Z':
			ret = 35;
			break;
		default:
			ret = inp;
			break;
	}
	
	return ret;
}

//================================================================
function check_reisepass_old(p1, p2, p3, p4, p5, p6, bdate) {
	var retVal = 0;
	if ((p1.length==10) && (p2.length==1) && (p3.length==7) && (p4.length==1) && (p5.length==7) && (p6.length==1) && (bdate.length==10)) {
		var c1 = checksum_reisepass_old(p1.substring(0,p1.length-1));
		var c3 = checksum_reisepass_old(p3.substring(0,p3.length-1));
		var c5 = checksum_reisepass_old(p5.substring(0,p5.length-1));
		var ca = checksum_reisepass_old(p1+p3+p5);
		var bd = check_bdate_reisepass_old(p3.substring(0,p3.length-1), bdate);
		var ex = check_expiration_date_reisepass_old(p5.substring(0,p5.length-1));
		 
		if ((c1 == p1.substring(p1.length-1,p1.length)) &&
			(c3 == p3.substring(p3.length-1,p3.length)) &&
			(c5 == p5.substring(p5.length-1,p5.length)) && 
			(ca == p6) &&
			(bd == true) &&
			(ex == true)) {
			retVal = 1;
		}
	}
	return retVal;
}

function checksum_reisepass_old(inp) {
	var i = 1;
	var cs = 0;
	for (var j=0;j<inp.length;j++) {
		switch (i) {
			case 1: cs += inp.substring(j,j+1)*7; i++; break;
			case 2: cs += inp.substring(j,j+1)*3; i++; break;
			case 3: cs += inp.substring(j,j+1)*1; i = 1; break;
		}
	}
	cs = cs % 10;
	return cs;
}

function check_bdate_reisepass_old(inp, bdate) {
	var vRetVal = false;
	
	var vArrDate = bdate.split(".");
	var vDay = vArrDate[0];
	var vMonth = vArrDate[1];
	var vYear = vArrDate[2];
	
	if((inp.substring(0,2) == vYear.substring(2,4)) &&
	   (inp.substring(2,4) == vMonth) &&
	   (inp.substring(4,6) == vDay))
	   vRetVal = true;
	
	return vRetVal;
}

function check_expiration_date_reisepass_old(exdate) {
	var vRetVal = false;
	
	var vYear = "20" + exdate.substring(0, 2);
	var vMonth = exdate.substring(2, 4);
	var vDay = exdate.substring(4, 6)	
	if(isDateInFuture(vDay + "." + vMonth + "." + vYear)) vRetVal = true;
	
	return vRetVal;
}
//================================================================
function check_reisepass(p, bdate) {
	var retVal = 0;
	if ((p.length==44) && (bdate.length==10)) {
		var c1 = checksum_resepass(p.substring(13,19));
		var c2 = checksum_resepass(p.substring(0,9));
		var ca = checksum_resepass(p.substring(0,10)+p.substring(13,20)+p.substring(21,24)+p.substring(24,34)+p.substring(34,43));
		var bd = check_bdate_reisepass(p.substring(13,19), bdate);
		var ex = check_expiration_date_reisepass(p.substring(21,27));
		 
		if((c1 == p.substring(19, 20)) &&
		   (c2 == p.substring(9, 10)) &&
		   (ca == p.substring(43, 44)) &&
		   (bd == true) &&
		   (ex == true)) {
			retVal = 1;
		}		
	}
	return retVal;
}

function checksum_resepass(inp) {
	var i = 1;
	var cs = 0;
	for (var j=0;j<inp.length;j++) {
		switch (i) {
			case 1: cs += decodeCharacters(inp.substring(j,j+1))*7; i++; break;
			case 2: cs += decodeCharacters(inp.substring(j,j+1))*3; i++; break;
			case 3: cs += decodeCharacters(inp.substring(j,j+1))*1; i = 1; break;
		}
	}
	cs = cs % 10;
	return cs;
}

function check_bdate_reisepass(inp, bdate) {
	var vRetVal = false;
	
	var vArrDate = bdate.split(".");
	var vDay = vArrDate[0];
	var vMonth = vArrDate[1];
	var vYear = vArrDate[2];
	
	if((inp.substring(0,2) == vYear.substring(2,4)) &&
	   (inp.substring(2,4) == vMonth) &&
	   (inp.substring(4,6) == vDay))
	   vRetVal = true;
	
	return vRetVal;
}

function check_expiration_date_reisepass(exdate) {
	var vRetVal = false;
	
	var vYear = "20" + exdate.substring(0, 2);
	var vMonth = exdate.substring(2, 4);
	var vDay = exdate.substring(4, 6)	
	if(isDateInFuture(vDay + "." + vMonth + "." + vYear)) vRetVal = true;
	
	return vRetVal;
}

function decodeCharacters(char) {
	var vRetVal = 0;
	switch (char) {
    	case "A": vRetVal = 10; break;
    	case "B": vRetVal = 11; break;
    	case "C": vRetVal = 12; break;
    	case "D": vRetVal = 13; break;
    	case "E": vRetVal = 14; break;
    	case "F": vRetVal = 15; break;
    	case "G": vRetVal = 16; break;
    	case "H": vRetVal = 17; break;
    	case "I": vRetVal = 18; break;
    	case "J": vRetVal = 19; break;
    	case "K": vRetVal = 20; break;
    	case "L": vRetVal = 21; break;
    	case "M": vRetVal = 22; break;
    	case "N": vRetVal = 23; break;
    	case "O": vRetVal = 24; break;
    	case "P": vRetVal = 25; break;
    	case "Q": vRetVal = 26; break;
    	case "R": vRetVal = 27; break;
    	case "S": vRetVal = 28; break;
    	case "T": vRetVal = 29; break;
    	case "U": vRetVal = 30; break;
    	case "V": vRetVal = 31; break;
    	case "W": vRetVal = 32; break;
    	case "X": vRetVal = 33; break;
    	case "Y": vRetVal = 34; break;
    	case "Z": vRetVal = 35; break;
    	case "<": vRetVal = 0; break; 		
    	default: vRetVal = char; 
  	}
	
	return vRetVal;
}
//================================================================
function check_bdate_range(bday, start_range, end_range) {
	var vRetVal = false;
	
	var vToday = new Date();
	var vArrDate = bday.split(".");
	var vDay = vArrDate[0];
	var vMonth = vArrDate[1];
	var vYear = vArrDate[2];
		
	vMonth = vMonth - 1;
	var vBDate = new Date(vYear, vMonth, vDay);
	var vDiff = vToday - vBDate;
	
	var vYears = (vDiff - (vDiff % 31557600000)) / 31557600000;
    	vDiff = vDiff - (vYears * 31557600000);
	var vMonths = (vDiff - (vDiff % 2628000000)) / 2628000000;
    	vDiff = vDiff - (vMonths * 2628000000);
    	var vDays = (vDiff - (vDiff % 86400000)) / 86400000;
	
	if(vYears >= start_range && vYears <= end_range)
		vRetVal = true;
		
	return vRetVal;
}
//================================================================
function check_date_range(date, range) {
	var vRetVal = false;
	
	var vToday = new Date();
	var vArrDate = date.split(".");
	var vDay = vArrDate[0];
	var vMonth = vArrDate[1];
	var vYear = vArrDate[2];
		
	vMonth = vMonth - 1;
	var vDate = new Date(vYear, vMonth, vDay);
	var vDiff = vToday - vDate;
	
	var vYears = (vDiff - (vDiff % 31557600000)) / 31557600000;
    	vDiff = vDiff - (vYears * 31557600000);
	var vMonths = (vDiff - (vDiff % 2628000000)) / 2628000000;
    	vDiff = vDiff - (vMonths * 2628000000);
    	var vDays = (vDiff - (vDiff % 86400000)) / 86400000;
	
	if(vYears == range) {
		if(vMonths <= 0 && vDays <= 0) {
			vRetVal = true;
		}
	} else if(vYears < range) {
		vRetVal = true;		
	}
		
	return vRetVal;
}
//================================================================
function isDateInFuture(date) {
	var vRetVal = false;
	var isSameDate = false;
	var vToday = new Date();
	var vArrDate = date.split(".");
	var vDay = vArrDate[0];
	var vMonth = vArrDate[1];
	var vYear = vArrDate[2];
		
	vMonth = vMonth - 1;
	var vDate = new Date(vYear, vMonth, vDay);
	var vDiff = vToday - vDate;
	
	var vYears = (vDiff - (vDiff % 31557600000)) / 31557600000;
    	vDiff = vDiff - (vYears * 31557600000);
	var vMonths = (vDiff - (vDiff % 2628000000)) / 2628000000;
    	vDiff = vDiff - (vMonths * 2628000000);
    	var vDays = (vDiff - (vDiff % 86400000)) / 86400000;
	
	if(vToday.getYear() == vDate.getYear() && 
	   vToday.getMonth() == vDate.getMonth() &&
	   vToday.getDay() == vDate.getDay()) {
		isSameDate = true;
	}
	
	if(vYears < 0 || vMonths < 0 || vDays < 0) vRetVal = true;	
	if(vYears == 0 && vMonths == 0 && vDays == 0) vRetVal = true;
	if(isSameDate == true) vRetVal = false;
		
	return vRetVal;
}
//================================================================
function getDaysBetween(date) {
	var vToday = new Date();
	var vArrDate = date.split(".");
	var vDay = vArrDate[0];
	var vMonth = vArrDate[1];
	var vYear = vArrDate[2];
	
	vMonth = vMonth - 1;
	var vDate = new Date(vYear, vMonth, vDay);
       
    var iTime_1 = vToday.getTime();
    var iTime_2 = vDate.getTime();
       
    var iDiff = Math.abs(iTime_1 - iTime_2);
    var iDaysBetween = iDiff / 86400000;
    return iDaysBetween;
}
//================================================================    

document.createElement('header');
document.createElement('nav');
document.createElement('footer');

$( document ).ready( headerinit );

function headerinit() {
	quicksearch();
	$('input[placeholder], textarea[placeholder]').placeholder();
}

function quicksearch() {
	var qs_field = $(".quicksearch input.text");
	var qs_but = $(".quicksearch input.submit");
	qs_field.focus(function() {
		qs_but.fadeIn();
	});
	qs_field.blur(function() {
		qs_but.fadeOut();
	});
}

/*
* Placeholder plugin for jQuery
* ---
* Copyright 2010, Daniel Stocks (http://webcloud.se)
* Released under the MIT, BSD, and GPL Licenses.
*/
(function(b){function d(a){this.input=a;a.attr("type")=="password"&&this.handlePassword();b(a[0].form).submit(function(){if(a.hasClass("placeholder")&&a[0].value==a.attr("placeholder"))a[0].value=""})}d.prototype={show:function(a){if(this.input[0].value===""||a&&this.valueIsPlaceholder()){if(this.isPassword)try{this.input[0].setAttribute("type","text")}catch(b){this.input.before(this.fakePassword.show()).hide()}this.input.addClass("placeholder");this.input[0].value=this.input.attr("placeholder")}},
hide:function(){if(this.valueIsPlaceholder()&&this.input.hasClass("placeholder")&&(this.input.removeClass("placeholder"),this.input[0].value="",this.isPassword)){try{this.input[0].setAttribute("type","password")}catch(a){}this.input.show();this.input[0].focus()}},valueIsPlaceholder:function(){return this.input[0].value==this.input.attr("placeholder")},handlePassword:function(){var a=this.input;a.attr("realType","password");this.isPassword=!0;if(b.browser.msie&&a[0].outerHTML){var c=b(a[0].outerHTML.replace(/type=(['"])?password\1/gi,
"type=$1text$1"));this.fakePassword=c.val(a.attr("placeholder")).addClass("placeholder").focus(function(){a.trigger("focus");b(this).hide()});b(a[0].form).submit(function(){c.remove();a.show()})}}};var e=!!("placeholder"in document.createElement("input"));b.fn.placeholder=function(){return e?this:this.each(function(){var a=b(this),c=new d(a);c.show(!0);a.focus(function(){c.hide()});a.blur(function(){c.show(!1)});b.browser.msie&&(b(window).load(function(){a.val()&&a.removeClass("placeholder");c.show(!0)}),
a.focus(function(){if(this.value==""){var a=this.createTextRange();a.collapse(!0);a.moveStart("character",0);a.select()}}))})}})(jQuery);
