function mc_submit_form($fields, $categories, $locations, $category, $location, $location_fields)
{
    $fields = apply_filters('mcs_submit_fields', $fields);
    $location_fields = apply_filters('mcs_submit_location_fields', $location_fields);
    // the big function. This creates the form.
    wp_enqueue_script('pickadate', plugins_url('my-calendar/js/pickadate/picker.js'));
    wp_enqueue_script('pickadate.date', plugins_url('my-calendar/js/pickadate/picker.date.js'));
    wp_enqueue_script('pickadate.time', plugins_url('my-calendar/js/pickadate/picker.time.js'));
    wp_localize_script('pickadate.date', 'mc_months', array(date_i18n('F', strtotime('January 1')), date_i18n('F', strtotime('February 1')), date_i18n('F', strtotime('March 1')), date_i18n('F', strtotime('April 1')), date_i18n('F', strtotime('May 1')), date_i18n('F', strtotime('June 1')), date_i18n('F', strtotime('July 1')), date_i18n('F', strtotime('August 1')), date_i18n('F', strtotime('September 1')), date_i18n('F', strtotime('October 1')), date_i18n('F', strtotime('November 1')), date_i18n('F', strtotime('December 1'))));
    wp_localize_script('pickadate.date', 'mc_days', array(date_i18n('D', strtotime('Sunday')), date_i18n('D', strtotime('Monday')), date_i18n('D', strtotime('Tuesday')), date_i18n('D', strtotime('Wednesday')), date_i18n('D', strtotime('Thursday')), date_i18n('D', strtotime('Friday')), date_i18n('D', strtotime('Saturday'))));
    wp_register_script('mcs-submit-form', plugins_url('/js/jquery.mcs-submit.js', __FILE__), array('jquery'));
    wp_enqueue_script('mcs-submit-form');
    $format = get_option('mcs_date_format');
    switch ($format) {
        case "m/d/Y":
            $js_format = 'mm/dd/yyyy';
            break;
        case "d-m-Y":
            $js_format = 'dd-mm-yyyy';
            break;
        case "Y-m-d":
            $js_format = 'yy-mm-dd';
            break;
        case "j F Y":
            $js_format = 'd mmmm yyyy';
            break;
        case "M j, Y":
            $js_format = 'mmm d, yyyy';
            break;
        default:
            $js_format = 'yy-mm-dd';
    }
    $time = get_option('mcs_time_format');
    switch ($time) {
        case "H:i":
            $js_time_format = 'HH:i';
            break;
        default:
            $js_time_format = 'h:i a';
    }
    $script = "\n<script>\n(function (\$) {\n\t\$(function() {\n\t\t\$( 'input.mc-date' ).pickadate({\n\t\t\tmonthsFull: mc_months,\n\t\t\tformat: '{$js_format}',\n\t\t\tweekdaysShort: mc_days,\n\t\t\tselectYears: true,\n\t\t\tselectMonths: true,\n\t\t\teditable: true\n\t\t});\n\t\t\$( 'input.mc-time' ).pickatime({\n\t\t\tinterval: 15,\n\t\t\tformat: '{$js_time_format}',\n\t\t\teditable: true\t\t\n\t\t});\n\t})\n})(jQuery);\n</script>";
    global $user_ID;
    if (is_user_logged_in()) {
        $auth = $user_ID;
    } else {
        $auth = 0;
    }
    $nonce = "<input type='hidden' name='event_nonce_name' value='" . wp_create_nonce('event_nonce') . "' />";
    $response = mcs_processor_response();
    $event = false;
    if (empty($response[1]) && isset($_GET['mcs_id']) && is_user_logged_in()) {
        $mc_id = intval($_GET['mcs_id']);
        $event = mc_form_data($mc_id);
        if (!mc_can_edit_event($event->event_id)) {
            $event = false;
        }
    }
    if (isset($_GET['mcs_id']) && !is_user_logged_in()) {
        $message = "<div class='updated'><p>" . __("You'll need to log-in to edit this event.", 'my-calendar-submissions') . "</p></div>";
    } else {
        $message = '';
    }
    $data = !empty($response[1]) ? $response[1] : $event;
    $has_data = empty($data) ? false : true;
    $title = !empty($data) ? esc_attr($data->event_title) : '';
    $desc = !empty($data) ? esc_attr($data->event_desc) : '';
    $tickets = !empty($data) ? esc_attr($data->event_tickets) : '';
    $registration = !empty($data) ? esc_attr($data->event_registration) : '';
    $begin = !empty($data) ? esc_attr($data->event_begin) : '';
    $format = date(get_option('mcs_date_format'), current_time('timestamp'));
    $format2 = date(get_option('mcs_time_format'), current_time('timestamp'));
    $endformat2 = date(get_option('mcs_time_format'), current_time('timestamp') + 3600);
    $end = !empty($data) ? esc_attr($data->event_end) : '';
    $time = !empty($data) ? esc_attr($data->event_time) : $format2;
    $endtime = !empty($data) ? esc_attr($data->event_endtime) : $endformat2;
    $recur = !empty($data) ? esc_attr($data->event_recur) : 'S';
    $recurs = str_split($recur, 1);
    $recur = $recurs[0];
    $every = isset($recurs[1]) ? $recurs[1] : 1;
    if ($every == 1 && $recur == 'B') {
        $every = 2;
    }
    $repeats = !empty($data) ? esc_attr($data->event_repeats) : 0;
    $selected_category = !empty($data) ? esc_attr($data->event_category) : $category;
    $event_host = !empty($data) ? esc_attr($data->event_host) : $user_ID;
    $link = !empty($data) ? esc_attr($data->event_link) : '';
    $label = !empty($data) ? esc_attr($data->event_label) : '';
    $street = !empty($data) ? esc_attr($data->event_street) : '';
    $street2 = !empty($data) ? esc_attr($data->event_street2) : '';
    $city = !empty($data) ? esc_attr($data->event_city) : '';
    $state = !empty($data) ? esc_attr($data->event_state) : '';
    $postcode = !empty($data) ? esc_attr($data->event_postcode) : '';
    $country = !empty($data) ? esc_attr($data->event_country) : '';
    $region = !empty($data) ? esc_attr($data->event_region) : '';
    $url = !empty($data) ? esc_attr($data->event_url) : '';
    $longitude = !empty($data) ? esc_attr($data->event_longitude) : '';
    $latitude = !empty($data) ? esc_attr($data->event_latitude) : '';
    $phone = !empty($data) ? esc_attr($data->event_phone) : '';
    $short = !empty($data) ? esc_attr($data->event_short) : '';
    $image = !empty($data) ? esc_attr($data->event_image) : '';
    $name = isset($_POST['event_name']) ? esc_attr($_POST['event_name']) : '';
    $email = isset($_POST['event_email']) ? esc_attr($_POST['event_email']) : '';
    $key = isset($_POST['event_key']) ? esc_attr($_POST['event_key']) : '';
    $key = isset($_GET['event_key']) ? esc_attr($_GET['event_key']) : '';
    if ($event) {
        $link_expires = $event->event_link_expires;
        $event_holiday = $event->event_holiday;
        $event_fifth_week = $event->event_fifth_week;
        $edit = "<input type='hidden' name='event_edit' value='{$mc_id}' />";
        $edit .= "\n\t\t\t<input type='hidden' name='prev_event_begin' value='{$begin}' />\n\t\t\t<input type='hidden' name='prev_event_repeats' value='{$repeats}' />\n\t\t\t<input type='hidden' name='prev_event_recur' value='{$recur}' />\n\t\t\t<input type='hidden' name='prev_event_status' value='{$event->event_approved}' />\n\t\t\t<input type='hidden' name='event_post' value='{$event->event_post}' />";
    } else {
        $link_expires = get_option('mc_event_link_expires') == 'false' ? 1 : 0;
        $event_holiday = get_option('mc_skip_holidays') == 'true' ? 'on' : 'false';
        $event_fifth_week = get_option('mc_no_fifth_week') == 'true' ? 1 : '';
        $edit = '';
    }
    $selected_location = array('label' => $label, 'street' => $street, 'street2' => $street2, 'city' => $city, 'state' => $state, 'postcode' => $postcode, 'country' => $country, 'region' => $region, 'url' => $url, 'longitude' => $longitude, 'latitude' => $latitude, 'phone' => $phone);
    $payment_form = mcs_payment_required() ? mcs_payment_form() : '';
    $check_conflicts = get_option('mcs_check_conflicts') == 'true' ? '<input type="hidden" name="mcs_check_conflicts" value="true" />' : '';
    $approved = get_option('mcs_automatic_approval') == 'true' || current_user_can('mc_manage_events') ? 1 : 0;
    // need to set hidden inputs to default values.
    $enctype = get_option('mcs_upload_images') == 'true' ? ' enctype="multipart/form-data"' : '';
    $return = "{$script}\n\t<div class='mc-submissions'>\n\t\t{$message}\n\t\t{$response['0']}\n\t\t{$payment_form}\n\t\t<form action='' method='post' class='mcs-submission'{$enctype}>\n\t\t<div>\n\t\t{$nonce}\n\t\t<input type='hidden' name='mcs_submission' value='on' />\n\t\t<input type='hidden' name='event_approved' value='{$approved}' /> \n\t\t<input type='hidden' name='event_author' value='{$auth}' />\n\t\t<input type='hidden' name='event_link_expires' value='" . $link_expires . "' />\n\t\t<input type='hidden' name='event_holiday' value='" . $event_holiday . "' />\n\t\t<input type='hidden' name='event_fifth_week' value='" . $event_fifth_week . "' />\n\t\t<input type='hidden' name='event_group_id' value='" . mc_group_id() . "' />\n\t\t<div style='display: none;'>\n\t\t\t<label for='your_name'>" . __('Do not complete this field.', 'my-calendar-submissions') . "</label>\n\t\t\t<input type='text' name='your_name' id='your_name' value='' />\n\t\t</div>\n\t\t{$edit}";
    if (apply_filters('mcs_event_allday', 0) == true) {
        $return .= "<input type='hidden' name='event_allday' value='1' />";
    }
    if (apply_filters('mcs_event_hide_end', 0) == true) {
        $return .= "<input type='hidden' name='event_hide_end' value='1' />";
    }
    $return .= "{$check_conflicts}\n\t\t</div>";
    if (mcs_payment_required()) {
        $return .= "<p><label for='mcs_key'>" . __('Payment Key', 'my-calendar-submissions') . ' <span>' . __('(required)', 'my-calendar-submissions') . "</span></label> <input type='text' name='mcs_key' id='mcs_key' value='{$key}' required='required' aria-required='true' /></p>";
    }
    $flabel = isset($fields['event_title']) ? $fields['event_title'] : __('Event Title', 'my-calendar-submissions');
    $dlabel = isset($fields['event_date']) ? $fields['event_date'] : __('Date', 'my-calendar-submissions');
    $tlabel = isset($fields['event_time']) ? $fields['event_time'] : __('Time', 'my-calendar-submissions');
    $return .= "\n\t\t<p>\n\t\t<label for='mc_event_title'>{$flabel} <span>" . __('(required)', 'my-calendar-submissions') . "</span></label> <input type='text' name='event_title' id='mc_event_title' value='{$title}' required='required' aria-required='true' />\n\t\t</p>\n\t\t<div class='mc_begin_container'>\n\t\t<p>\n\t\t<label for='mc_event_date'>{$dlabel} <span>" . __('(required)', 'my-calendar-submissions') . "</span></label> <input type='text' class='mc-date' name='event_begin[]' id='mc_event_date' value='{$begin}' required='required' aria-required='true' />\n\t\t</p>\n\t\t<p>\n\t\t<label for='mc_event_time'>{$tlabel}</label> <input type='time' name='event_time[]' id='mc_event_time' class='mc-time' value='{$time}' />\n\t\t</p>\n\t\t</div>";
    if (isset($fields['end_date']) || isset($fields['end_time'])) {
        $return .= "<div class='mc_end_container'>";
    }
    if (isset($fields['end_date'])) {
        $flabel = $fields['end_date'] != 'true' && $fields['end_date'] != 'End date' ? $fields['end_date'] : __('End date', 'my-calendar-submissions');
        $return .= "<p>\n\t\t\t<label for='mc_event_enddate'>{$flabel}</label> <input type='text' class='mc-date' name='event_end[]' id='mc_event_enddate' value='{$end}' />\n\t\t\t</p>";
    } else {
        $return .= "<input type='hidden' name='event_end[]' value='' />";
    }
    if (isset($fields['end_time'])) {
        $flabel = $fields['end_time'] != 'true' && $fields['end_time'] != 'End time' ? $fields['end_time'] : __('End time', 'my-calendar-submissions');
        $return .= "<p>\n\t\t\t<label for='mc_event_endtime'>{$flabel}</label> <input type='time' name='event_endtime[]' id='mc_event_endtime' class='mc-time' value='{$endtime}'/>\n\t\t\t</p>";
    }
    if (isset($fields['end_date']) || isset($fields['end_time'])) {
        $return .= "</div>";
    }
    if (is_user_logged_in()) {
        $current_user = wp_get_current_user();
        $name = $current_user->display_name;
        $email = $current_user->user_email;
    }
    $disallow_user_changes = apply_filters('mcs_disallow_user_changes', false);
    $required = apply_filters('mcs_require_name_and_email', 'required="required"');
    if ($disallow_user_changes && is_user_logged_in()) {
        $return .= "<input name='mcs_name' value='{$name}' type='hidden' /><input name='mcs_email' value='{$email}' type='hidden' />";
    } else {
        $flabel = isset($fields['mcs_name']) && $fields['mcs_name'] != 'true' && $fields['mcs_name'] != 'Your Name' ? $fields['mcs_name'] : __('Your Name', 'my-calendar-submissions');
        $return .= "<p>\n\t\t\t\t<label for='mcs_name'>{$flabel}</label> <input type='text' name='mcs_name' id='mcs_name' value='{$name}' {$required} />\n\t\t\t\t</p>";
        $flabel = isset($fields['mcs_email']) && $fields['mcs_email'] != 'true' && $fields['mcs_email'] != 'Your Email' ? $fields['mcs_email'] : __('Your Email', 'my-calendar-submissions');
        $return .= "<p>\n\t\t\t\t<label for='mcs_email'>{$flabel}</label> <input type='email' name='mcs_email' id='mcs_email' value='{$email}' {$required} />\n\t\t\t\t</p>";
    }
    if (isset($fields['event_host'])) {
        $host_select = '<select id="e_host" name="event_host">';
        // Grab all the users and list them
        $users = my_calendar_getUsers();
        $num = 0;
        foreach ($users as $u) {
            $display_name = $u->display_name == '' ? $u->user_nicename : $u->display_name;
            if ($event_host == $u->ID) {
                $selected = ' selected="selected"';
            } else {
                $selected = '';
            }
            if (user_can($u->ID, apply_filters('mcs_eligible_hosts', 'mc_add_events'))) {
                $host_select .= "<option value='{$u->ID}'{$selected}>{$display_name}</option>\n";
                $num++;
                $single_host = $u->ID;
            }
        }
        $host_select .= '</select>';
        $flabel = isset($fields['event_host']) && $fields['event_host'] != 'true' && $fields['event_host'] != 'Event Host' ? $fields['event_host'] : __('Event Host', 'my-calendar-submissions');
        if ($num <= 1) {
            $return .= "<input type='hidden' name='event_host' value='{$single_host}' />";
        } else {
            $return .= "\n\t\t\t\t<p class='event_host'>\n\t\t\t\t\t<label for='e_host'>" . $flabel . "</label>\n\t\t\t\t\t{$host_select}\n\t\t\t\t</p>";
        }
    }
    if (isset($fields['event_recurring'])) {
        $return .= "\n\t\t\t<p class='recurring'>\n\t\t\t<label for='event_repeats'>" . __('Repeats', 'my-calendar-submissions') . "</label> <input type='number' name='event_repeats' id='event_repeats' class='input' size='1' min='0' max='999' value='{$repeats}' /> \n\t\t\t<label for='event_every'>" . __('every', 'my-calendar') . "</label> <input type='number' name='event_every' id='event_every' class='input' size='1' min='1' max='9' maxlength='1' value='{$every}' /> \n\t\t\t<label for='event_recur' class='screen-reader-text'>" . __('Units', 'my-calendar-submissions') . "</label> <select name='event_recur' class='input' id='event_recur'>" . mc_recur_options($recur) . "\n\t\t\t</select> \n\t\t\t</p>";
        // event_repeats, event_recur
    } else {
        $return .= "<div>\n\t\t\t\t\t<input type='hidden' name='event_repeats' value='0' />\n\t\t\t\t\t<input type='hidden' name='event_recur' value='S' />\n\t\t\t\t\t<input type='hidden' name='event_every' value='1' />\n\t\t\t\t\t</div>";
    }
    // event_open, event_group
    if (isset($fields['description'])) {
        $flabel = $fields['description'] != 'true' && !($fields['description'] == 'Description' || $fields['description'] == 'Event Description') ? $fields['description'] : __('Description', 'my-calendar-submissions');
        $return .= "<p><label for='mc_event_description'>{$flabel}</label> <textarea name='content' id='mc_event_description' class='full_description'>{$desc}</textarea></p>";
    }
    if (isset($fields['short_description'])) {
        $flabel = $fields['short_description'] != 'true' && !($fields['short_description'] == 'Summary' || $fields['short_description'] == 'Short Description') ? $fields['short_description'] : __('Summary', 'my-calendar-submissions');
        $return .= "<p><label for='mc_event_short_description'>{$flabel}</label> <textarea name='event_short' id='mc_event_short_description' class='short_description'>{$short}</textarea></p>";
    }
    $return .= apply_filters('mc_event_details', '', $has_data, $data, 'public');
    if (isset($fields['access']) && function_exists('mc_event_accessibility')) {
        $flabel = $fields['access'] != 'true' && $fields['access'] != 'Event Access' ? $fields['access'] : __('Event Access', 'my-calendar-submissions');
        $return .= mc_event_accessibility('', $data, $flabel);
    }
    if (isset($fields['event_link'])) {
        $flabel = $fields['event_link'] != 'true' && !($fields['event_link'] == 'Link' || $fields['event_link'] == 'Event Link') ? $fields['event_link'] : __('Link', 'my-calendar-submissions');
        $return .= "<p>\n\t\t\t\t<label for='mc_event_link'>{$flabel}</label> <input type='url' name='event_link' id='mc_event_link' value='{$link}' placeholder='http://' />\n\t\t\t\t</p>";
    }
    if (isset($fields['event_image'])) {
        $flabel = $fields['event_image'] != 'true' && !($fields['event_image'] == 'Image (URL)' || $fields['event_image'] == 'Event image') ? $fields['event_image'] : __('Image (URL)', 'my-calendar-submissions');
        if (get_option('mcs_upload_images') == 'true' && $image == '') {
            $input_type = 'file';
        } else {
            $input_type = 'url';
        }
        $return .= "<p>\n\t\t\t\t<label for='mc_event_image'>{$flabel}</label> <input type='{$input_type}' name='event_image' id='mc_event_image' value='{$image}' />\n\t\t\t\t</p>";
    }
    $return .= mcs_submit_category($selected_category, $categories);
    if (isset($fields['registration'])) {
        $flabel = $fields['registration'] != 'true' && $fields['registration'] != 'Ticketing Information' ? $fields['registration'] : __('Ticketing Information', 'my-calendar-submissions');
        $return .= "<fieldset>\n\t\t\t<legend>{$flabel}</legend>";
        $return .= apply_filters('mc_event_registration', '', $has_data, $data, 'public');
        $return .= "</fieldset>";
    }
    $return .= mcs_submit_location($location, $locations, $location_fields, $selected_location);
    $return .= "<p><input type='submit' name='save' value='" . __('Submit your event', 'my-calendar-submissions') . "' /></p>";
    $return .= "\n\t\t</form>\t\n\t</div>";
    $return = apply_filters('mcs_after_submissions', $return, $response);
    return $return;
}
function mc_edit_event_form($mode = 'add', $event_id = false)
{
    global $users_entries;
    if ($event_id && !mc_can_edit_event($event_id)) {
        echo "<div class='error'><p>";
        _e('You do not have permission to edit this event.', 'my-calendar');
        echo "</p></div>";
        return;
    }
    if ($event_id != false) {
        $data = mc_form_data($event_id);
    } else {
        $data = $users_entries;
    }
    if (is_object($data) && $data->event_approved != 1 && $mode == 'edit') {
        $message = __('This event must be approved in order for it to appear on the calendar.', 'my-calendar');
    } else {
        $message = "";
    }
    echo $message != '' ? "<div class='error'><p>{$message}</p></div>" : '';
    mc_form_fields($data, $mode, $event_id);
}
function mc_edit_event_form($mode = 'add', $event_id = false)
{
    global $wpdb, $users_entries, $output;
    $mcdb = $wpdb;
    if ($event_id != false) {
        $data = mc_form_data($event_id);
    } else {
        $data = $users_entries;
    }
    if (is_object($data) && $data->event_approved != 1 && $mode == 'edit') {
        $message = __('This event must be approved in order for it to appear on the calendar.', 'my-calendar');
    } else {
        $message = "";
    }
    echo $message != '' ? "<div class='error'><p>{$message}</p></div>" : '';
    mc_form_fields($data, $mode, $event_id);
}