// Pflichtfelder definieren:
var zuPruefen   = "";
var pruefInhalte  = "Email";
var pruefFeldTyp  = "Email";

// Allgemeine Variablen:
var fehlercount;
var g_PopupIFrame;

//Formular-Überprüfung - allgemeine Überprüfung:
function form_check() {
	var testEmail   = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var testTelefon = /^([0+]?[0-9]+)([ +-\.\/ ]*[0-9])+$/;
	var testPlz     = /^[0-9]{5}/;
	var testTag     = /^([1-2][0-9])|(30|31)/;
	var testMonat   = /^((0[1-9])|(1[0-2]))/;
	var testJahr    = /^[19|20][0-9]{2}/;
	var testNummer  = /^[0-9]+/;
	var radioGroups = "";
	var fehler      = "";
	var fehlercount = 0;
	var pruefe      = zuPruefen.split(",");
	var pruefDas    = pruefInhalte.split(",");
	var pruefSo     = pruefFeldTyp.split(",");

	pruefe.each(function(item)
	{
		if ($(item))
		{
			meinTyp = $(item).type;
			meinTitle = $(item).title;
			if (meinTyp && meinTitle.length)
			{
				$$('label[for="' + $(item).id + '"]')[0].setStyle({ color: '#000' })
				/*
				Felder deren Inhalt auf korrekte Form überprüft werden:
				Felder kommen aus globaler Variable       --> pruefInhalte
				Prüf-Formate kommen aus globaler Variable --> pruefFeldTyp
				*/
				if (pruefDas.indexOf($(item).id) != -1)
				{
					filterSo = eval("test" + pruefSo[pruefDas.indexOf($(item).id)]);
					if ($F(item).length && !filterSo.test($F(item)))
					{
						if (meinTitle.match(/(\w+) (eine|Ihre|die) (\w+)/)) fehler += '<li>' + meinTitle.replace(/(\w+) (eine|Ihre|die) (\w+)/, "$1 eine korrekte $3") + '</li>';
						if (meinTitle.match(/(\w+) (ein|Ihr|das) (\w+)/)) fehler += '<li>' + meinTitle.replace(/(\w+) (ein|Ihr|das) (\w+)/, "$1 ein korrektes $3") + '</li>';
						if (meinTitle.match(/(\w+) (einen|Ihren|den) (\w+)/)) fehler += '<li>' + meinTitle.replace(/(\w+) (einen|Ihren|den) (\w+)/, "$1 einen korrekten $3") + '</li>';
						$$('label[for="' + $(item).id + '"]')[0].setStyle({ color: '#F00' });
					}
				}
				/*
				generelle Pflichtfelder:
				Felder kommen aus globaler Variable --> zuPruefen
				*/
				if (pruefe.indexOf($(item).id) != -1)
				{
					if ($F(item) == '')
					{
						fehler += '<li>' + meinTitle + '</li>';
						fehlercount += 1;
						$$('label[for="' + $(item).id + '"]')[0].setStyle({ color: '#F00' });
					}
					if (meinTyp == 'checkbox')
					{
						if ($(item).checked == '')
						{
							fehler += '<li>' + meinTitle + '</li>';
							fehlercount += 1;
							$$('label[for="' + $(item).id + '"]')[0].setStyle({ color: '#F00' });
						}
					}
					if (meinTyp == 'radio')
					{
						var thisRadioChecked = false;
						$A(meinName).each(function(radio)
						{
							if (radio.checked)
							{
								thisRadioChecked = true;
								fehlercount += 1;
								$$('label[for="' + $(item).id + '"]')[0].setStyle({ color: '#F00' });
							}
						});
						if (!thisRadioChecked && radioGroups.indexOf(meinName) == -1)
						{
							fehler += '<li>' + meinTitle + '</li>';
							radioGroups += meinName;
							fehlercount += 1;
							$$('label[for="' + $(item).id + '"]')[0].setStyle({ color: '#F00' });
						}
					}
				}
			}
		}
	});
	if (fehler != '') {
		var fehlertext = '<div id="msgwrap"><div id="msgtop" style="text-align:right;padding:2px 24px 0 0;"><a href="#" onclick="return hide_msg_box()" title="sluiten">sluiten</a></div><div id="msgcont"><h4>De volgende velden werden niet (correct) ingevuld:</h4>';
		fehlertext += '<ul>' + fehler + '</ul></div><div id="msgbottom"></div></div>';
		$('msg_box').innerHTML = fehlertext;
		var msgtoph = $('msgtop').getStyle('height').replace(/px/,'');
		var msgtopw = $('msgbottom').getStyle('height').replace(/px/,'');
		var hoehe = Number(msgtoph) + Number(msgtopw) + (fehlercount*18);
		show_msg_box(1);
		return false;
 	}
	return true;
}


//Formular-Überprüfung - Funktionen zur Infobox - IE-Check:
function IsIE6() {
	return ( Prototype.Browser.IE && (typeof window.XMLHttpRequest == "undefined"));
}

//Formular-Überprüfung - Funktionen zur Infobox - Infobox verstecken:
function hide_msg_box() {
	$('msg_box').hide();
	HidePopupDiv('msg_box');
	$('formcontent').stopObserving('click',hide_msg_box);
	$('formcontent').scrollTo();
	return false;
}

//Formular-Überprüfung - Funktionen zur Infobox - Infobox anzeigen:
function show_msg_box(height) {
	if($('addData') && $('addData').visible())$('msg_box').setStyle({bottom:'-50px'});
	else $('msg_box').setStyle({bottom:'150px'});	
	$('msg_box').show();
	ShowPopupDiv('msg_box', height);
	$('formcontent').observe('click', hide_msg_box);
}

//Formular-Überprüfung - Funktionen zur Infobox - Infobox verstecken - IE6-Hack:
function HidePopupDiv(divID) {
	var divPopup;
	divPopup=$(divID);
	divPopup.style.visibility = "hidden";
	if (IsIE6()) {
		document.body.removeChild(g_PopupIFrame);
		g_PopupIFrame = null;
	}
}

//Formular-Überprüfung - Funktionen zur Infobox - Infobox anzeigen - IE6-Hack:
function ShowPopupDiv(divID, hoehe) {
	var divPopup=$(divID);
	if (!IsIE6()) {
			divPopup.style.visibility ="visible";
			return;
	}
	divPopup.style.zIndex=divPopup.style.zIndex+1;
	var iFrame = new Element('iframe',{'src':'','frameborder':'0'});
	$(iFrame).setStyle({
		position:'absolute',
		filter:'alpha(opacity=0)',
		left: (divPopup.offsetLeft + 8) + 'px',
		top: $(divID).offsetTop + 2 + 'px',
		width: '390px',
		height: hoehe + 'px',
		border: 'none',
		outline: 'none'
	});
	document.body.appendChild(iFrame);
	g_PopupIFrame = iFrame;
	divPopup.style.visibility ="visible";
}

function newsletterReg() {
	//$('Redirect').value = 'Default.aspx?ID=281';
	new Ajax.Request('/Tools/proxy.ashx', {
		method: 'post',
		parameters: {
			//sendtourl: 'http://ase.emv3.com/D2UTF8',
			emv_tag: '800056BD05879000',
			emv_ref: 'BdX7CqkdFh_wyRANAJd5mb7XLUR9Fa3D,gxt',
			TITLE_FIELD: $F('Aanhef'),
			FIRSTNAME_FIELD: $F('Voornaam'),
			LASTNAME_FIELD: $F('Achternaam'),
			EMAIL_FIELD: $F('E_Mail'),
			SOURCE_FIELD: '',
			PLZ_FIELD: $F('Postcode'),
			STADT_FIELD: $F('Woonplaats'),
			EMVADMIN3_FIELD: $F('Uw_geboortejaar')
		}
	});
}
