$(document).ready(function() {
	
	//
	//	Bestellformular: Autofill
	//
	
	// Prüfen des Vorname-Eingabefeldes
	$('#Form_Vorname').blur(function()
	{		
		// Falls die Autofill-Funktion aktiviert wurde
		if($(this).val()=='handytest')
		{
			// Formular-Werte setzen
			$('#Form_Anrede_Herr').attr('checked', true);
			$('#Form_Name').val('TEST');
			$('#Form_Strasse').val('Musterstraße');
			$('#Form_Hausnummer').val('123');
			$('#Form_PLZ').val('12345');
			$('#Form_Ort').val('Musterstadt');
			$('#Form_Nationalitaet_Auswahl_deutsch').attr('checked', true);
			$('#Form_Geburtsdatum_Tag').val('1');
			$('#Form_Geburtsdatum_Monat').val('1');
			$('#Form_Geburtsdatum_Jahr').val('1994');
			$('#Form_Telefon-Vorwahl').val('01234');
			$('#Form_Telefon-Nummer').val('567890123');
			$('#Form_E-Mail').val('p.quadt@fs-dialogmarketing.de');
			$('#Form_E-Mail-Wiederholung').val('p.quadt@fs-dialogmarketing.de');
		}
	});
	
	
	//
	// Bestellformular: Hinweis Datenflat
	//
	
	var datenflatRadioButtons=$('#bestellformular input[name=Datenflat]');
	var hinweisElement=datenflatRadioButtons.parents('p').find('.hinweis');

	// Change-Handle
	datenflatRadioButtons.change(function() {
		toggleHinweisDatenFlat();
	});
	
	// Hinweis Ein- / Ausblenden
	function toggleHinweisDatenFlat()
	{
		var radioValue=$('#bestellformular input[name=Datenflat]:checked').val();

		if(radioValue=='nein') hinweisElement.slideDown();
		else hinweisElement.slideUp();
	}
	
	// Setzen des Hinweises beim Aufruf der Seite
	toggleHinweisDatenFlat();
	
	
	//
	// Bestellformular: Overlay Upgrade-Optin
	//
	
	var overlayUpgrade=$('#upgrade_overlay');
	if(overlayUpgrade.length)
	{
		// Overlay im DOM verschieben
		$('body').append(overlayUpgrade);
	
		// Overlay aktivieren
		var overlayUpgradeTrigger=$('#bestellformular label.UpgradeOptin2_nein');
		overlayUpgradeTrigger.overlay(
		{
			target: '#upgrade_overlay',
			mask: {
				color: '#ffffff',
				loadSpeed: 200,
				opacity: 0.5
			},
			speed: 200,
			closeOnClick: false,
			onLoad: function() {
				$('#bestellformular p.UpgradeOptin2 input').removeClass('validate[required]');
			},
			onClose: function() {
				$('#bestellformular p.UpgradeOptin2 input').addClass('validate[required]');
			}
		});
	
		// Overlay-API initialisieren
		var overlayUpgradeAPI=overlayUpgradeTrigger.data("overlay");
	
		// Klick-Handle Overlay-Buttons
		var overlayUpgradeButtons=overlayUpgrade.find('.selection a');
		var upgradeRadiobuttonJa=$('#Form_UpgradeOptin2_ja');
		var upgradeRadiobuttonNein=$('#Form_UpgradeOptin2_nein');
	
		overlayUpgradeButtons.click(function(event)
		{
			event.preventDefault();			
			var clickedButton=$(this);
		
			// Radio-Button setzen
			if(clickedButton.hasClass('ja')) upgradeRadiobuttonJa.attr('checked', true);
			else upgradeRadiobuttonNein.attr('checked', true);
		
			// Overlay Schließen
			overlayUpgradeAPI.close();		
		});
	}
	
	//
	//	Formlar-Validierung
	//
	
	// CSS-Klassen setzen
	$('form.validate .mandatory').each(function(index) {
		// Leere Felder passend kennzeichnen
		if($(this).hasClass('text')) $(this).addClass('validate[required]');
		else if($(this).hasClass('radio')) $(this).addClass('validate[required]');
		else if($(this).tagName()=='select') $(this).addClass('validate[required]');
		else if($(this).tagName()=='textarea') $(this).addClass('validate[required]');
	});

	// Formular-Validierung aktivieren
	var form=$('form.validate');
	if(form.length) form.validationEngine({
		validationEventTriggers: 'blur',
		inlineValidation: true,
		success: false,
		scroll: true,
		promptPosition: 'topRight',
		failure: function() { checkForm() }
	});
	
	// Formular-Validierung und Funktionen aktivieren: handyhandy.de Code
	if($('#code_form').length)
	{		
		// Eingabefeld fokusieren
		$(window).load(function() {
			$('#code_input').focus();
		});
		
		// Submit per Enter abfangen
		$('#code_form').submit(function() {
			
			// Formular-Aktion ändern auf die mögliche Landingpage
			$('#code_form').attr('action', window.location.protocol+'//'+window.location.host+'/'+$('#code_input').val()+'?form_code=1')

			// Google Analytics Link-Tagging berücksichtigen
			_gaq.push(['_linkByPost', document.forms['code_form']]);
			
		});
	}

	// Funktionen beim Verlassen der Pflichtformularfelder
	$('form.validate input.text.mandatory, form.validate select.mandatory, form.validate textarea.mandatory').each(function(index) {
		$(this).blur(function()
		{
			// Aktionen bei einem Fehler
			if($.validationEngine.isError)
			{
				// Error-Klassen hinzufügen
				$(this).addClass('error');
				$(this).parents('p.form_input').addClass('error');

				// Error-Position merken
				globalVars[this.id]=true;

				// Prompt verzögert ausblenden
				setTimeout('$.validationEngine.closePrompt("#'+this.id+'")', 2000);
			}
			else if(globalVars[this.id]==true)
			{
				// Error-Klassen entfernen
				$(this).removeClass('error');
				$(this).parents('p.form_input').removeClass('error');

				// Error-Position löschen
				globalVars[this.id]=true;
			}
		});
	});
});


//
// Formular-Funktionen
//

// Bestellseite: Funktion die beim Senden des Formulars ausgeführt wird
function checkForm()
{
	// Alle Felder prüfen
	$('#bestellformular .mandatory').each(function(index) {
		
		// Leere Felder kennzeichnen
		if($.validationEngine.loadValidation($(this))) $(this).parents('p.form_input').addClass('error');
	});
	
	// Prompt(s) verzögert ausblenden
	setTimeout('$.validationEngine.closePrompt(".formError", true)', 3000);
}

// Bestellseite: Formular-Funktionen: weiter
function weiter()
{
	// Prüfen ob die Reisepassnummer eingegeben wurde
	if($('#Form_Reisepassnummer').val())
	{
		// Pflichtfelder Personalausweisnummer deaktivieren
		$('#Form_Personalausweisnummer').removeClass('validate[required]');
	}
	
	// Formular senden
	$('#bestellformular').submit();
}

// Bestellseite: Formular-Funktionen: zurück
function zurueck(page)
{
	// Seite setzen
	$('#page').val(page);
	
	// Pflichtfelder deaktivieren
	$('#bestellformular .mandatory').removeClass('validate[required]');

	// Formular senden
	$('#bestellformular').submit();
}

// Formulare versenden
function sendForm(id)
{	
	// Formular senden
	$('#'+id).submit();
}
