// allgemeine Javascript Library für Websites / cr / v1.3 / 2001-01-30
// allgemeine Javascript Library für Websites / up / v2.0 / 2002-07-19  - modified


//1. tB_PopupWindowCenter(popWinURL,popWinName,popWinFeatures,popWinWidth,popWinHeight)
//2. tB_PopupWindowPosition(popWinURL,popWinName,popWinFeatures,popWinWidth,popWinHeight,popWinLeft,popWinTop)
//3. tB_W3Cbg(obj, tBbgColor)
//4. CheckEmailObbl(sEmail)
//5. CheckEmailNotObbl(sEmail)

//Macromedia functions
//6. MM_swapImgRestore()
//7. MM_preloadImages()
//8. MM_findObj(n, d)
//9. MM_swapImage()
//10. MM_openBrWindow(theURL,winName,features)
//11. MM_displayStatusMsg(msgStr)
//12. MM_popupMsg(msg) 


//13. CheckNurAlphaNumerisch(n)
//14. tb_WriteEmailAddress(sEmail,sText)
//15. tb_CheckDatum(sDatum)

// Stylesheet for Netscape 4.x Browsers / cr / v1.1 / 2001-01-30
// (c) teamBLAU new media agency, http://www.teamBLAU.com
// Achtung: Pfad muss stimmen sonst stürzt NS 4.x ab!
   ns4x = (document.layers)? true:false;
   if (ns4x) document.write("<link rel='stylesheet' href='/all/style_ns4.css' type='text/css'>");


// Centered top Popup Windows / cr / v1.1 / 2001-01-30
// (c) teamBLAU new media agency, http://www.teamBLAU.com
// Aufruf mit: <a href="/html-xml-css/template_webprojekt/home.html" onClick="tB_PopupWindow(this.href,'name','toolbar=yes,location=no,status=no,menubar=yes,scrollbars=yes,resizable=yes','600','400') ;return false; " target="name">Link</a>
// 'name' und Eigenschaften ('toolbar=yes,ecc.) anpassen!

var tB_Window = null;
// hoeherstellen (Toolbar 28 und Browsertopleiste ca. 24 ) - Achtung! abhaengig von Features und Browser...
var popWinHigher = 28 + 24;

function tB_PopupWindowCenter(popWinURL,popWinName,popWinFeatures,popWinWidth,popWinHeight)
 {
 	//popWinName darf nur aus Zeichen bestehen - keine Leerschritte oder Sonderzeichen 
  popWinx = (((window.screen.height - popWinHigher) / 2) - (popWinHeight / 2));
   popWiny = ((window.screen.width / 2) - (popWinWidth / 2));

   popWinAttributes = popWinFeatures + ',width='+popWinWidth+',height='+popWinHeight+',top='+popWinx+',left='+popWiny;
  
	tB_Popup = window.open(popWinURL,popWinName,popWinAttributes);   
	//extra flasche Zuweisung, weil es sonst beim Weiternavigieren zum Fehler kommt
	//nicht anwenden da es Probleme macht - dafür aber	
	// beim document selbst den JavaScript self.focus(); ausführen
	//tB_Window.window.focus(); 
 }

function tB_PopupWindowPosition(popWinURL,popWinName,popWinFeatures,popWinWidth,popWinHeight,popWinLeft,popWinTop)
 {
   popWinAttributes = popWinFeatures + ',width='+popWinWidth+',height='+popWinHeight+',top='+popWinLeft+',left='+popWinTop;
   	//popWinName darf nur aus Zeichen bestehen - keine Leerschritte oder Sonderzeichen 
	tB_Popup= window.open(popWinURL,popWinName,popWinAttributes);   
	//nicht anwenden da es Probleme macht - dafür aber	
	// beim document selbst den JavaScript self.focus(); ausführen
	//tB_Window.window.focus(); 
 }

// W3C compatible CSS Background Color Changer / cr / v1.0 / 2001-02-04
// <td onMouseOver="tB_W3Cbg(this, '#99CCCC')" onMouseOut="tB_W3Cbg(this, '')">

function tB_W3Cbg(obj, tBbgColor)
 {
	obj.style.backgroundColor=tBbgColor;
 }


// check ob der übergebene String eine gültige Emailadresse ist
// es darf auch kein leerer string sein

function CheckEmailObbl(sEmail)
	{
		var txt_muster = /.+@.+\..+/;
		if (sEmail != "")
			{
				if (txt_muster.exec(sEmail))
						return (true)
				else
						return (false)
			}
		 else 
				return (false)	
	}

// check ob der übergebene String eine gültige Emailadresse ist
// es darf ein leerer string sein

function CheckEmailNotObbl(sEmail)
	{
		var txt_muster = /.+@.+\..+/;
		if (sEmail != "")
			{
				if (txt_muster.exec(sEmail))
						return (true)
				else
						return (false)
			}
		 else 
				return (true)	
	
	}


// most used Macromedia Dreamweaver 4 Functions / cr / v1.1 / 2001-01-30

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MM_displayStatusMsg(msgStr) { //v1.0
  status=msgStr;
  document.MM_returnValue = true;
}

function MM_popupMsg(msg) { //v1.0
  alert(msg);
}

	function CheckNurAlphaNumerisch(n){
	var txt_NurText = /^[a-zA-Z0-9]*$/;
	if (txt_NurText.exec(n))
		return true;
	else
		return false;
	}

function tb_WriteEmailAddress(sEmail,sText){
	document.write ("<a href='m" + "ail" + "to:" + sEmail + "'>")
	document.write (unescape(sText));
	document.write ("</a>");
}

function tbCheckDatum(sWert)
{
	//alert(sWert)
	var txt_muster = "";
	
	//alert ( sWert.length)
	iLenWert = sWert.length;
	
		switch (iLenWert)
		{
		case 8:
			txt_muster =/\d.\d.\d\d\d\d/;
			break
		case 9:
			iPunktEins = sWert.indexOf(".")
			iPunktZwei = sWert.lastIndexOf(".")
			
			//alert(iPunktEins);
			switch (iPunktEins)
				{
				case 1:
					txt_muster =/\d.\d\d.\d\d\d\d/;
					break
				case 2:
					txt_muster =/\d\d.\d.\d\d\d\d/;
					break
				}
			
			break;
		case 10:
			txt_muster =/\d\d.\d\d.\d\d\d\d/;
			break
		}
	
	if (txt_muster != "") {
	
		if (txt_muster.exec(sWert)) 
			{
			switch (iLenWert)
				{
				case 8:
					txt_muster =/\d.\d.\d\d\d\d/;
					sTag = sWert.substring(0,1)	
					sMonat = sWert.substring(2,3)
					sJahr = sWert.substring(4,8)
					break
				case 9:
					switch (iPunktEins)
						{
						case 1:
							sTag = sWert.substring(0,1)	
							sMonat = sWert.substring(2,4)
							break;
						case 2:
							sTag = sWert.substring(0,2)	
							sMonat = sWert.substring(3,4)
							break;
						}
					sJahr = sWert.substring(5,9)
					
					break;
				case 10:
					sTag = sWert.substring(0,2)	
					sMonat = sWert.substring(3,5)
					sJahr = sWert.substring(6,10)
					break
				}
			

			//alert (sTag)
			//alert (sMonat)
			//alert (sJahr)
			if (sTag >= 1 && sTag <= 31)
				{
				if (sMonat >= 1 && sMonat <= 12)
					{
						if (sMonat == 1 || sMonat == 3 || sMonat == 5 || sMonat == 7 || sMonat == 8 || sMonat == 10 || sMonat == 12)
							//alert ("Werte ok")
							return true
						else
							{
							if (sMonat == 4 || sMonat == 6 || sMonat == 9 || sMonat == 11)
								{
									if (sTag <= 30)
										//alert ("werte ok")
										return true
									else
										//alert ("monat hat nur 30 tage")
										return false
								}
							else
								{
								if (sTag <= 28)
									//alert ("werte ok")
									return true
								else
									{
									if (sJahr % 4 == 0 )
										{ 
											if (sJahr % 100 == 0 )
												{
												if (sJahr % 400 == 0)
													{
													if (sTag <= 29)
														//alert ("werte ok")
														return true
													else
														//alert ("schaltjahr - monat hat 29 Tage")
														return false
													}
												else
													{
													if (sTag <= 28)
														//alert ("werte ok")
														return true
													else
														//alert ("kein schaltjahr - monat hat 28 Tage")
														return false
													}
												}
											else
												{
												if (sTag <= 29)
													//alert ("werte ok")
													return true
												else
													//alert ("schaltjahr - monat hat 29 Tage")
													return false
												}
											
										}
									else
										{
										if (sTag <= 28)
											//alert ("werte ok")
											return true
										else
											//alert ("kein schaltjahr - monat hat 28 Tage")
											return false
										}
									}
								}
							}
						}
				else
					//alert ("Falsches Monat")
					return false
				}
			else
				//alert ("Falscher tag")
				return false
			}
		else
			//falsches Format
			return false
		}
	else
		//falsche String Länge
		return false
}
