
function checkMail(x)
{
	//var x = document.forms[0].email.value;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(x))
	 {
	//alert('YES! Correct email address');
	return true;
	}
	else 
	{
	//alert('NO! Incorrect email address');
	return false;
	}
}

function checkURL (x)
{
//var x = document.forms[0].email.value;
	var filter  = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
	if (filter.test(x))
	 {
	//alert('YES! Correct email address');
	return true;
	}
	else 
	{
	//alert('NO! Incorrect email address');
	return false;
	}
}

function chkForm(formID,callObj)
{
	
	theForm=document.getElementById(formID);
	var groups = new Array();
	var errors = new Array();
	var j=0;
	var message="";
	for (var i = 0; i < theForm.length; i++)
	{
		var el=theForm.elements[i];
		if(el.type=="radio" || el.type=="select-multiple" || el.type=="select-one" || el.type=="checkbox" || el.type=="text" || el.type=="textarea"  || el.type=="password")
		{
			var theVal = trim(el.value);
			if (el.type=="password" && el.getAttribute('lp_type')!="passcontrol")
			{
				var passCompare = theVal;
			}
			if (el.type=="checkbox" || el.type=="radio")
			{
				theVal=Number(el.checked);
				if(theVal==0) theVal="";
				else theVal="1";
			}
			if (el.getAttribute('lp_grp'))
			{
				grpNr = Number(el.getAttribute('lp_grp'));
				
				if (groups.length<grpNr)
				{
					//alert (grpNr);
					groups[grpNr-1] = new Object();
					groups[grpNr-1]["members"]= new Array();
					groups[grpNr-1]["values"]= new Array();
				}
				groups[grpNr-1]["members"].push(el);
				groups[grpNr-1]["values"].push(theVal);
			}
			if (el.getAttribute('pflicht') && theVal=="")
			{
			
				errors[j]= new Object();
				errors[j]["element"]=el;
				
				if (el.getAttribute('message'))
					message = el.getAttribute('message');
				else
				{
					switch(el.type)
					{
					case "radio":
						message = "Bitte wählen Sie einen Wert aus!";
						break;
					case "select":
						message = "Bitte wählen Sie einen Wert aus!";
						break;
					case "checkbox":
						message = "Bitte kreuzen Sie das Feld an!";
						break;
					default:
						message = "Feld darf nicht leer sein!";
						break;
					}
				}
				errors[j]["message"]=message;
				j++;
			}
			else if (el.getAttribute('lp_type')=="email" && (el.getAttribute('pflicht') || theVal!="") && !checkMail(theVal))
			{
				errors[j]= new Object();
				errors[j]["element"]=el;
				errors[j]["message"]="Keine gültige Mailadresse!";
				j++;
			}
			else if (el.getAttribute('lp_type')=="url" && (el.getAttribute('pflicht') || theVal!="") && !checkURL(theVal))
			{
				errors[j]= new Object();
				errors[j]["element"]=el;
				errors[j]["message"]="Kein gültiger URL!";
				j++;
			}
			else if (el.getAttribute('minlength') && theVal.length < Number(el.getAttribute('minlength')))
			{
				errors[j]= new Object();
				errors[j]["element"]=el;
				errors[j]["message"]="Muss mindestens " + el.getAttribute('minlength') + " Zeichen lang sein!";
				j++;
			}
			if (el.getAttribute('lp_type')=="passcontrol" && theVal != passCompare)
			{
				errors[j]= new Object();
				errors[j]["element"]=el;
				errors[j]["message"]="Passworte stimmen nicht überein!";
				j++;
			}
		}
	}
	for (var i = 0; i < groups.length; i++)
	{
		//alert(groups[i]["values"][0];
		//alert(groups.length);
		var theGRP = groups[i];
		var checkGroup = 0;
		for (var k = 0; k < theGRP["members"].length; k++)
		{
			if (theGRP["values"][k].length)
			{
				checkGroup = 1;
				break;
			}
		}
		if (checkGroup==0)
		{
		errors[j]= new Object();
		errors[j]["element"]=theGRP["members"][0];
		errors[j]["message"]="Mindestens eine Option muss ausgewählt sein!";
		j++;
		}
	}
	alertText = "";
	for (var i = 0; i < errors.length; i++)
	{
	if (errors[i]["element"].getAttribute('lp_name'))
		alertText = alertText + "Feld "+ errors[i]["element"].getAttribute('lp_name') + ": " + errors[i]["message"]+"\n";
	else
		alertText = alertText + "Feld "+ errors[i]["element"].name + ": " + errors[i]["message"]+"\n";
	}
	if (alertText!="")
	{
		alertText = "Folgende Fehler sind aufgetreten:\n" + alertText;
		alert (alertText);
		errors[0]["element"].focus();
		return false;
	}
	if ((callObj.type)) return true; //ist button
	theForm.submit();
}

function trim(sString,side)
{
	if (side!="right")
	{
		while (sString.substring(0,1) == ' ')
		{
			sString = sString.substring(1, sString.length);
		}
	}
	if (side!="left")
	{
		while (sString.substring(sString.length-1, sString.length) == ' ')
		{
			sString = sString.substring(0,sString.length-1);
		}
	}
	return sString;
}
	
function limitField(myfield, e, kind, addChars)
{
	var dec = 0;
	var key;
	var keychar;
	var teststr;
	if(!addChars) addChars="";
	if (window.event)
	   key = window.event.keyCode;
	else if (e)
	   key = e.which;
	else
	   return true;
	   switch (key)
	   {
	   case 223:
	   keychar ="s";
	   break;
	   case 246:
	   keychar ="o";
	   break;
	    case 228:
	   keychar ="a";
	   break;
	    case 252:
	   keychar ="u";
	   break;
	    case 214:
	   keychar ="O";
	   break;
	   case 196:
	   keychar ="A";
	   break;
	   case 220:
	   keychar ="U";
	   break;
	   default:
	   keychar = String.fromCharCode(key);
	   }
	
	switch (kind)
	{
	case "int":
		teststr = "0123456789";
		break;
	case "float":
		teststr = "0123456789";
		dec = 1;
		break;
	case "tel":
		teststr = "()-0123456789+/ ";
		break;
	case "mail":
		teststr = "-abcdefghijklmnopqrstuvwxyz_@.0123456789";
		break;
	case "url":
		teststr = "-abcdefghijklmnopqrstuvwxyz_@.:0123456789/";
		break;
	case "name":
		teststr = "ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜabcdefghijklmnopqrstuvwxyzßäöü -"+addChars;
		//alert (teststr);
		break;
	case "alpha":
		teststr = "ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜabcdefghijklmnopqrstuvwxyzßäöü"+addChars;
		break;
	}
	//alert (key);
	// control keys
	if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) )
	   return true;
	// allowed characters
	else if (((teststr).indexOf(keychar) > -1))
	{
	   return true;
	}
	// decimal point jump
	else if (dec && (keychar == "."))
   {
	   if (myfield.value.length) return true;
	   else myfield.value="0.";
	   return false;
	   /*myfield.form.elements[dec].focus();
	   return false;*/
   }
	else
	   return false;
}


function makePflicht(callerEl)
{
	var callerName = callerEl.name;
	var callerID = callerEl.Id;
	var callerType = callerEl.type;
	var verpflichte = 1;
	switch (callerType)
	{
	case "checkbox":
		if (!callerEl.checked) verpflichte = 0;
		break; 
	default:
		return true;
	}
	for (i=1;i<makePflicht.arguments.length;i++)
	{
		if (verpflichte)
		{
			document.getElementById(makePflicht.arguments[i]).setAttribute("pflicht",1);
			if (document.getElementById("BEZ_"+makePflicht.arguments[i]))
			{
				document.getElementById("BEZ_"+makePflicht.arguments[i]).innerHTML = document.getElementById("BEZ_"+makePflicht.arguments[i]).innerHTML+" *";
			}
		}
		else
		{
			document.getElementById(makePflicht.arguments[i]).removeAttribute("pflicht");
			if (document.getElementById("BEZ_"+makePflicht.arguments[i]))
			{
				document.getElementById("BEZ_"+makePflicht.arguments[i]).innerHTML = document.getElementById("BEZ_"+makePflicht.arguments[i]).innerHTML.replace(" *","");
			}
		}
	}
}

function CB2Emptyfld(caller,fldID)
{
if (caller.checked) document.getElementById(fldID).value="";
}

function NewsletterWin () {
  NL = window.open("", "Newsletter", "height=400,width=420");
  NL.focus();
}

function ImageWin () {
  NI = window.open("", "Bild", "height=440,width=400");
  NI.focus();
}

function InseratWin () {
  INS = window.open("", "Login", "height=550,width=560");
  INS.focus();
}
function BigWin () {
  BiG = window.open("", "BigWin", "height=800,width=600");
  BiG.focus();
}

function PlanWin () {
  planWin = window.open("map.html", "planWin", "height=800,width=800");
  planWin.focus();
}

function PlanWin2 () {
  planWin2 = window.open("map2.html", "planWin2", "height=800,width=800");
  planWin2.focus();
}

function reloadPgFromSel(baseURL,bez,caller)
{
	//alert ("immerhin");
	if (baseURL.indexOf("?")>-1)
	cc = "&";
	else cc = "?";
	theVal = caller.value;
	theURL = baseURL + cc + bez + "=" + theVal;
	window.location.href = theURL;
}

function eliminateZeroSel(el)
{
	if (el.options[0].value=='')
	el.options[0]=null;
}
