/**
 * @param Sabre\VObject\Component\VEvent $component
 * @param wdcal_local $localization
 * @param string $summary
 * @param int $dtstart
 */
function wdcal_set_component_alerts(&$component, &$localization, $summary, $dtstart)
{
    $a = get_app();
    $prev_alarms = $component->select("VALARM");
    $component->__unset("VALARM");
    foreach ($prev_alarms as $al) {
        /** @var Sabre\VObject\Component\VAlarm $al */
        // @TODO Parse notifications that have been there before; e.g. from Lightning
    }
    foreach (array_keys($_REQUEST["noti_type"]) as $key) {
        if (is_numeric($key) || $key == "new" && $_REQUEST["new_alarm"] == 1) {
            $alarm = new Sabre\VObject\Component\VAlarm("VALARM");
            switch ($_REQUEST["noti_type"][$key]) {
                case "email":
                    $mailtext = str_replace(array("#date#", "#name"), array($localization->date_timestamp2local($dtstart), $summary), t("The event #name# will start at #date"));
                    $alarm->add(new Sabre\VObject\Property("ACTION", "EMAIL"));
                    $alarm->add(new Sabre\VObject\Property("SUMMARY", $summary));
                    $alarm->add(new Sabre\VObject\Property("DESCRIPTION", $mailtext));
                    $alarm->add(new Sabre\VObject\Property("ATTENDEE", "MAILTO:" . $a->user["email"]));
                    break;
                case "display":
                    $alarm->add(new Sabre\VObject\Property("ACTION", "DISPLAY"));
                    $text = str_replace("#name#", $summary, t("#name# is about to begin."));
                    $alarm->add(new Sabre\VObject\Property("DESCRIPTION", $text));
                    break;
                default:
                    continue;
            }
            $trigger_name = "TRIGGER";
            $trigger_val = "";
            // @TODO Bugfix : und ; sind evtl. vertauscht vgl. http://www.kanzaki.com/docs/ical/trigger.html
            if ($_REQUEST["noti_ref"][$key] == "end") {
                $trigger_name .= ";RELATED=END";
            }
            $trigger_val .= "-P";
            if (in_array($_REQUEST["noti_unit"][$key], array("H", "M", "S"))) {
                $trigger_val .= "T";
            }
            $trigger_val .= IntVal($_REQUEST["noti_value"][$key]) . $_REQUEST["noti_unit"][$key];
            $alarm->add(new Sabre\VObject\Property($trigger_name, $trigger_val));
            $component->add($alarm);
        }
    }
}