$(document).ready(function() {
    var eventId = $("#eventId").val();
    var language = $("#language").val();
    var step = $("input[name='step']").val();
    var step2 = $("input[name='step2']").val();

    // Beim Laden muss geprüft werden, was schon angeklickt ist und danach der Preis berechnet werden (step1) oder es wird der Startpreis angezeigt

    // Bei jedem Start der Seit muss gecheckt werden, was angeklickt wurde.
    selectionArr = getCheckButtons(eventId);

    if (step == 1)
    {
	// Ausschalten der Checkboxen, je nachdem, welcher Tag angeklickt wurde
	disableSessions();

    // 	Preis fuer die Statusbox
	setPriceStatusboxRight (eventId,selectionArr,language);
    }

    if (step == 2)
    {
	    // 	Preis fuer die Statusbox
	    setRabatt (eventId,language);
    }

    if (step == 3)
    {
	// 	Preis fuer die Statusbox
	setStatusBoxRight(eventId,language);
    }

    // bei jedem Click wird ausgewertet, was angeklickt wurde
    $("input").click ( function ()	{
	selectionArr = "";
	if (step == 1)
	{
	    disableSessions();
	}

	selectionArr = getCheckButtons(eventId);
	    if (step == 1)
		setPriceStatusboxRight (eventId,selectionArr, language);
	    if (step == 2)
	    {
		// Der "Next-Button" soll nichts auslösen, nur absenden
		if ($(this).attr("id") !=  "next")
		    setRabatt (eventId, language);
	    }
    });

});



// Rabatt fuer Step 2 berechnen
function setRabatt (eventId,language)
{
	var participant_label 	= "";
	var amount_label	= "";
	if (language == "en")
	{
	    participant_label	= "Participant";
	    amount_label	= "Amount";
	} else {
	    participant_label	= "Teilnehmer";
	    amount_label	= "Summe";
	}
// 	alert(paymodel);
	var participant_nr_current = $("#participant_nr_current").val();
	rabattAvailable = false;
	rabatt = new Object();
	$("input[action='rabatt']:checked").each ( function () {
	    if ($(this).attr('checked') == 'checked')
	    {
			rabatt[$(this).attr('id')] = 1;
			rabattAvailable = true;
	    }
	});

	// Die Preisbasis kommt aus einem Hidden-Feld
	price_normal = $("#price_normal").val();
// 	alert(price_normal);
	if (rabattAvailable == false)
	{
	    $("#participant_nr").html(participant_label+" "+participant_nr_current);
	    $("#price").html(amount_label+": "+parseFloat(price_normal).toFixed(2));
	} else
	{
	    var ajaxBaseURL = "/db/db_queryAjaxNew.php?eventId="+eventId+"&target=rabatt&price_normal="+price_normal;
	    $.ajax (
	    {
		    dataType: "json",
		    url: ajaxBaseURL,
			type: "POST",
		    data: rabatt,
		    success: function (ajaxData)
		    {
			    var anzahlDatensaetze = ajaxData.length;
			    var day = [];
    // 			day = [];
			    day['id'] = ajaxData[0].id;
			    day['paysettingid'] = ajaxData[0].paysettingid;
			    day['eventId'] = ajaxData[0].eventId;
			    day['priceEarly'] = ajaxData[0].priceEarly;
			    day['priceNormal'] = ajaxData[0].Price;

			    //Uebergabe der Werte an die Box zur Darstellung
			    // hier wird die id des angeklickten Radio-Buttons verwendet
			    $("#participant_nr").html(participant_label+" "+participant_nr_current);
			    $("#price").html(amount_label+": "+parseFloat(day['priceNormal']).toFixed(2));
		    },
		    error: function (xhr, ajaxOptions, thrownError)
			{
				alert(xhr.status);
				alert(thrownError);
			}
	    });
	}
}

// in step3 muss nur die Box gefuellt werden
function setStatusBoxRight (eventId,language)
{
    var participant_label 	= "";
    var amount_label		= "";
    if (language == "en")
    {
		participant_label 	= "Participant";
		amount_label		= "Amount";
    } else {
		participant_label 	= "Teilnehmer";
		amount_label		= "Summe";
    }
    var participant_nr_current = $("#participant_nr_current").val();
    price_normal = $("#price_normal[name='price_normal']").val();

    rabatt = new Object();
    rabatt[$("#rabatt_name").val()] = 1;
    var ajaxBaseURL = "/db/db_queryAjaxNew.php?eventId="+eventId+"&target=rabatt&price_normal="+price_normal;
    $.ajax (
    {
	    dataType: "json",
	    url: ajaxBaseURL,
		type: "POST",
	    data: rabatt,
	    success: function (ajaxData)
	    {
		    var anzahlDatensaetze = ajaxData.length;
// 			    alert(anzahlDatensaetze);
		    var day = [];
		    day['id'] = ajaxData[0].id;
		    day['paysettingid'] = ajaxData[0].paysettingid;
		    day['eventId'] = ajaxData[0].eventId;
		    day['priceEarly'] = ajaxData[0].priceEarly;
		    day['priceNormal'] = ajaxData[0].Price;

		    //Uebergabe der Werte an die Box zur Darstellung
		    // hier wird die id des angeklickten Radio-Buttons verwendet
		    $("#participant_nr").html(participant_label+" "+participant_nr_current);
		    $("#price").html(amount_label+": "+parseFloat(day['priceNormal']).toFixed(2));
	    },
	    error: function (xhr, ajaxOptions, thrownError)
	    {
			alert(xhr.status);
			alert(thrownError);
	    }
    });
}

// Preis fuer Step 1
function setPriceStatusboxRight (eventId, selectionArr, language)
{
    var participant_label 	= "";
    var amount_label		= "";
    if (language == "en")
    {
	participant_label 	= "Participant";
	amount_label		= "Amount";
    } else {
	participant_label 	= "Teilnehmer";
	amount_label		= "Summe";
    }

    // Participant Nummer
    var participant_nr_current = $("#participant_nr_current").val();
    // erstes Setzen der Werte für die Satusbox (Teilnehmer + Nr.)
    $("#participant_nr").html(participant_label+" "+participant_nr_current);
    // erstes Setzen der Werte für die Satusbox (Amount)
    $("#price").html("Amount: 0");

    // Frühbucher oder Normalpreis
    var ajaxBaseURL = "/db/db_queryAjaxNew.php?eventId="+eventId+"&target=getEarlyNormalDate";
    $.ajax (
    {
	dataType: "json",
	url: ajaxBaseURL,
	success: function (ajaxData)
	{
	    var anzahlDatensaetze1 = ajaxData.length;
	    current = ajaxData[0].current;

	    // welche Preise gibt es überhaupt
	    var ajaxBaseURL = "/db/db_queryAjaxNew.php?eventId="+eventId+"&target=getPriceFromPaysettings";
	    $.ajax (
	    {
		dataType: "json",
		url: ajaxBaseURL,
		data: selectionArr,
		success: function (ajaxData1)
		{
		    var anzahlDatensaetze2 = ajaxData1.length;

		    var price = 0;
		    for (var i = 0; i < anzahlDatensaetze2; i++)
		    {
			if (current == "priceEarly")
			    price = (price+parseFloat(ajaxData1[i].priceEarly));
			else
			    price = (price+parseFloat(ajaxData1[i].priceNormal));
		    }
		    $("#participant_nr").html(participant_label+" "+participant_nr_current);
		    $("#price").html(amount_label+": "+parseFloat(price).toFixed(2));

		},
		error: function (xhr, ajaxOptions, thrownError)
		{
                    alert(xhr.status);
                    alert(thrownError);
		}
	    });
	}
    });
    // wenn im Step > 1 keine Felder vorhanden sind, wird der Preis und der Part aus den Hidden-Feldern ausgelesen
    if (selectionArr == null)
    {
	$("#participant_nr").html(participant_label+" "+participant_nr_current);
	$("#price").html(amount_label+": "+parseFloat($("#price_normal").val()).toFixed(2));
    }
}

// welcher Button ist angeklickt
function getCheckButtons(eventId)
{
//     alert(payModel);
    selectionArr 			= new Object();
    selectionArr['day_selection'] 	= new Object();
    selectionArr['selected_session']	= new Object();
    selectionArr['selected_workshop'] 	= new Object();
    selectionArr['rabatt'] 		= new Object();
    // welche Tage wurden ausgewaehlt (step1)
    $("input[group='day_selection']:checked").each ( function () {
	if ($(this).attr('checked') == 'checked')
	{
	    selectionArr['day_selection'][$(this).attr('id')] = 1;
	}
    });

    // welche Session,Classes wurden ausgewaehlt (step1)
    $("input[group='session']:checked").each ( function () {
	if ($(this).attr('checked') == 'checked')
	{
	    selectionArr['selected_session'][$(this).attr('id')] = 1;
	}
    });

    // welche Workshops/Tutorials wurden ausgewaehlt  (step1)
    $("input[group='workshop']:checked").each ( function () {
	if ($(this).attr('checked') == 'checked')
	{
	    selectionArr['selected_workshop'][$(this).attr('subeventid')] = 1;
	}
    });

    // welcher Rabatt wurden ausgewaehlt  (step2)
    $("input[group='rabatt']").each ( function () {
	if ($(this).attr('checked') == 'checked')
	{
	    selectionArr['rabatt'][$(this).attr('id')] = 1;
	}
    });
    return selectionArr;
}

// je nachdem welcher Tag angeklickt wird, muessen die Sessions/Classes/WS der anderen Tage ausgegraut werden
    function disableSessions ()
    {


	// erster Teil wird mit dem Start der Seite aufgerufen und disabled alle Boxen, anschließend werden die wieder angeschaltet, wo der entsprechende Tag vorgewaehlt wurde
	$("input[name='day_selection']").each( function ()
	{
	    if ($(this).attr('checked') == true)
	    {
		// alle Session Checkboxen disable
		$("input[name='day_selection']").each( function ()
		{
		    $("input[descr='"+$(this).attr('dayID')+"']").each( function()
		    {
			$(this).attr('disabled', true);
		    });
		});
		// wenn auf "alle Tage" geklickt wurde, wird alles enabled
		if ($(this).attr('dayID') == "beide Tage")
		{
		    $("input[name='day_selection']").each( function ()
		    {
			$("input[descr='"+$(this).attr('dayID')+"']").each( function()
			{
			    $(this).attr('disabled', false);
			});
		    });
		} else // es werden nur die Session-Checkboxen enabled, wo der entsprechende Tag gerade angeklickt wurde
		{
		    $("input[descr='"+$(this).attr('dayID')+"']").each( function()
		    {
			$(this).attr('disabled', false);
		    });
		}
	    }
	});

	// zweiter Teil wird bei Klick auf einen bestimmten Tag ausgefuehrt
	$("input[name='day_selection']").click( function ()
	{
// 	    alert("dreck");
	    // wenn auf "alle Tage" geklickt wurde, sollen die Checkboxen nicht deselektiert werden, deswegen ein Flag
	    var flag_alle_tage = 0;
	    // auf welchen Tag wurde geklickt?
	    var day_value = $(this).attr('dayID');
	    if ($(this).attr('dayID') == "beide Tage")
		flag_alle_tage = 1;
// 	    alert($(this).attr('dayID'));
	    // alle Session Checkboxen disable und unchecked
	    $("input[name='day_selection']").each( function ()
	    {

		// uebergabe des aktuellen Tages fuer die innere schleife
		day_value2 = $(this).attr('dayID');
		$("input[descr='"+$(this).attr('dayID')+"']").each( function()
		{
		    $(this).attr('disabled', true);
		    // wenn auf "alle Tage" geklickt wurde, sollen die Checkboxen nicht deselektiert werden
		    // wenn auf den gleichen Tag wie die angecheckten Boxen geklickt wird, soll nicht deselektiert werden

		    if ((flag_alle_tage == 0) && (day_value2 != day_value)) {
			$(this).attr('checked', false);
		    }

		});
	    });
	    // wenn auf "alle Tage" geklickt wurde, wird alles enabled
	    if ($(this).attr('dayID') == "beide Tage")
	    {
		$("input[name='day_selection']").each( function ()
		{
		    $("input[descr='"+$(this).attr('dayID')+"']").each( function()
		    {
			$(this).attr('disabled', false);
		    });
		});
	    } else // es werden nur die Session-Checkboxen enabled, wo der entsprechende Tag gerade angeklickt wurde
	    {
		$("input[descr='"+$(this).attr('dayID')+"']").each( function()
		{
		    $(this).attr('disabled', false);
		});
	    }

	});

    }
