$(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.
    var uri1 = document.location.href.toLowerCase();
    if (uri1.indexOf("registration") != -1)
    {
	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 ()
    {
	var uri1 = document.location.href.toLowerCase();
	if (uri1.indexOf("registration") != -1)
	{
	    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);
	    }
	}
    });

});

// 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;
		    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);
	    }
    });
}

// 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";
	}
	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();
	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['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("setRabatt "+xhr.status);
				alert("setRabatt "+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();
    // Bestimmen des Preises durch die angeklickten Felder
    $("#participant_nr").html(participant_label+" "+participant_nr_current);
    $("#price").html(amount_label+": 0");
    pathToConf = $("#path_to_conf").val();
    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=getPriceFromPaysettingsEmbedded&path="+pathToConf;
	    $.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("inner "+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)
{
    selectionArr 			= new Object();
    conflictArr 			= new Object();
    selectionArr['day_selection'] 	= new Object();
    selectionArr['selected_session'] 		= new Object();
    selectionArr['selected_workshop'] 		= new Object();
    selectionArr['rabatt'] 		= new Object();
    conflictArr['session'] 		= new Object();
    conflictArr['workshop'] 		= 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;
	}
    });

    // alle entfärben
    $("input[group='session']").each ( function () {
	sessionClassDay = ($(this).attr('dayDate'));
	sessionClassTimeSpan = ($(this).attr('timeSpan'));
	$("td[marker='"+sessionClassDay+sessionClassTimeSpan+"']").attr('style','');
    });
    // welche Session,Classes wurden ausgewaehlt (step1)
    $("input[group='session']:checked").each ( function () {
	if ($(this).attr('checked') == 'checked')
	{
	    selectionArr['selected_session'][$(this).attr('subeventid')] = 1;

	    // Setzen des ConflictArrays für Sessions
	    conflictArr['session'][$(this).attr('dayDate')] = new Object();
	    if ($(this).attr('timeSpan') == "amPm")
	    {
		conflictArr['session_'+$(this).attr('dayDate')+'am'] = 1;
		conflictArr['session_'+$(this).attr('dayDate')+'pm'] = 1;
	    }
	    conflictArr['session_'+$(this).attr('dayDate')+$(this).attr('timeSpan')] = 1;
	}
	sessionClassDay = ($(this).attr('dayDate'));
	sessionClassTimeSpan = ($(this).attr('timeSpan'));
	$("td[marker='"+sessionClassDay+sessionClassTimeSpan+"']").attr('style','');
    });
    
    

    // welche Workshops/Tutorials wurden ausgewaehlt  (step1)
    $("input[group='workshop']:checked").each ( function () {
	sessionClassId = ($(this).attr('id'));
	sessionClassDay = ($(this).attr('dayDate'));
	sessionClassTimeSpan = ($(this).attr('timeSpan'));
	$("td[marker='"+sessionClassDay+sessionClassTimeSpan+"']").attr('style','');
	
    });

    
    message = "";
    
    // zweite Schleife über die Classes
    // entfärben
    $("input[group='workshop']").each ( function () {
	    sessionClassDay = ($(this).attr('dayDate'));
    sessionClassTimeSpan = ($(this).attr('timeSpan'));
    $("td[marker='"+sessionClassDay+sessionClassTimeSpan+"']").attr('style','');
    });
    
    $("input[group='workshop']:checked").each ( function () {
	
	sessionClassId = ($(this).attr('id'));
	sessionClassDay = ($(this).attr('dayDate'));
	sessionClassTimeSpan = ($(this).attr('timeSpan'));
	color = "#"+$("#colorWarning").val();

	if ($(this).attr('checked') == 'checked')
	{
	    selectionArr['selected_workshop'][$(this).attr('subeventid')] = 1;
	    // Zeitüberlappung
	    conflictArr['workshop'][$(this).attr('dayDate')] = new Object();
	    if ($(this).attr('timeSpan') == "amPm")
	    {
		
		if (conflictArr['workshop_'+$(this).attr('dayDate')+'am'] == 1 || conflictArr['workshop_'+$(this).attr('dayDate')+'pm'] == 1 || conflictArr['session_'+$(this).attr('dayDate')+'am'] == 1 || conflictArr['session_'+$(this).attr('dayDate')+'pm'] == 1)
		{
		    message = "yes";
		    // farbliche Markierung des Fehlers
		    $("td[marker='"+sessionClassDay+"am']").each ( function () {
			if ($(this).find('input').attr('checked') == 'checked')
			    $(this).attr('style','background-color:'+color);
		    });
		    $("td[marker='"+sessionClassDay+"pm']").each ( function () {
			if ($(this).find('input').attr('checked') == 'checked')
			    $(this).attr('style','background-color:'+color);
		    });
		    $("td[marker='"+sessionClassDay+"amPm']").each ( function () {
			if ($(this).find('input').attr('checked') == 'checked')
			    $(this).attr('style','background-color:'+color);
		    });

		}
		conflictArr['workshop_'+$(this).attr('dayDate')+'am'] = 1;
		conflictArr['workshop_'+$(this).attr('dayDate')+'pm'] = 1;
		
	    } else
	    {
		if (conflictArr['workshop_'+$(this).attr('dayDate')+$(this).attr('timeSpan')] == 1 || conflictArr['session_'+$(this).attr('dayDate')+$(this).attr('timeSpan')] == 1)
		{
		    message = "yes";
		    // farbliche Markierung des Fehlers
		    $("td[marker='"+sessionClassDay+sessionClassTimeSpan+"']").each ( function () {
			if ($(this).find('input').attr('checked') == 'checked')
			    $(this).attr('style','background-color:'+color);
		    });
		    $("td[marker='"+sessionClassDay+"amPm']").each ( function () {
			if ($(this).find('input').attr('checked') == 'checked')
			    $(this).attr('style','background-color:'+color);
		    });
		}
	    }
	    conflictArr['workshop_'+$(this).attr('dayDate')+$(this).attr('timeSpan')] = 1;
	}
    });

    //     einmaliges Anzeigen der Fehlermeldung
    var eventId = $("#eventId").val();
    var language = $("#language").val();
    pathToConf = $("#path_to_conf").val();
    path 	= "misc/error_message.php?path="+pathToConf+"&eventId="+eventId+"&language="+language;
    if (message != "") {
//  	$lb.launch({ url: "misc/error_message.php?path="+pathToConf+"&eventId="+eventId+"&language="+language, options: "showPrint:false, width:200px; height:220px", 'title': "Warning" });
	$("#submitbuttonStep1").attr('style', 'display:none');
	$.fancybox({
	    'type'		: 	'iframe',
	    'autoDimensions'	:	false,
	    'width'		: 	250,
	    'height'		:	250,
	    'href'		: 	path,
	});
    } else
	$("#submitbuttonStep1").removeAttr("style", "display:none");

    // welcher Rabatt wurden ausgewaehlt  (step2)
    $("input[group='rabatt']:checked").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') == 'checked')
	    {
		// 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 ()
	{
	    // 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;
	    // 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);
		});
	    }

	});

    }
