function qem_create_css_file($update)
{
    if (function_exists('file_put_contents')) {
        $css_dir = plugin_dir_path(__FILE__) . '/quick-event-manager-custom.css';
        $filename = plugin_dir_path(__FILE__);
        if (is_writable($filename) && !file_exists($css_dir) || !empty($update)) {
            $data = qem_generate_css();
            file_put_contents($css_dir, $data, LOCK_EX);
        }
    } else {
        add_action('wp_head', 'qem_head_css');
    }
}
function qem_calendar()
{
    if (isset($_POST['Submit']) && check_admin_referer("save_qem")) {
        $options = array('calday', 'caldaytext', 'day', 'eventday', 'oldday', 'eventhover', 'eventdaytext', 'eventlink', 'connect', 'calendar_text', 'calendar_url', 'eventlist_text', 'eventlist_url', 'startday', 'eventlength', 'archive', 'archivelinks', 'smallicon', 'unicode', 'eventbold', 'eventitalic', 'eventbackground', 'eventtext', 'eventborder', 'showmultiple', 'keycaption', 'showkeyabove', 'showkeybelow', 'prevmonth', 'nextmonth', 'navicon', 'leftunicode', 'rightunicode', 'linktocategories', 'showuncategorised', 'cellspacing', 'tdborder', 'header', 'headerstyle', 'eventimage', 'imagewidth', 'usetooltip', 'event_corner', 'fixeventborder', 'showmonthsabove', 'showmonthsbelow', 'monthscaption', 'hidenavigation', 'jumpto');
        foreach ($options as $item) {
            $cal[$item] = stripslashes($_POST[$item]);
            $cal[$item] = filter_var($cal[$item], FILTER_SANITIZE_STRING);
        }
        $arr = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j');
        foreach ($arr as $i) {
            $cal['cat' . $i] = $_POST['cat' . $i];
            $cal['cat' . $i . 'back'] = $_POST['cat' . $i . 'back'];
            $cal['cat' . $i . 'text'] = $_POST['cat' . $i . 'text'];
        }
        update_option('qem_calendar', $cal);
        qem_create_css_file('update');
        qem_admin_notice(__('The calendar settings have been updated', 'quick-event-manager'));
    }
    if (isset($_POST['Reset']) && check_admin_referer("save_qem")) {
        delete_option('qem_calendar');
        qem_create_css_file('update');
        qem_admin_notice(__('The calendar settings have been reset', 'quick-event-manager'));
    }
    $calendar = qem_get_stored_calendar();
    ${$calendar}['eventlink'] = 'checked';
    ${$calendar}['startday'] = 'checked';
    ${$calendar}['smallicon'] = 'checked';
    ${$calendar}['navicon'] = 'checked';
    ${$calendar}['header'] = 'checked';
    ${$calendar}['event_corner'] = 'checked';
    if ($cal['navicon'] == 'arrows') {
        $leftnavicon = '◄ ';
        $rightnavicon = ' ►';
    }
    if ($cal['navicon'] == 'unicodes') {
        $leftnavicon = $cal['leftunicode'] . ' ';
        $rightnavicon = ' ' . $cal['rightunicode'];
    }
    $content = '<style>' . qem_generate_css() . '</style> 
    <div class="qem-settings"><div class="qem-options">
    <h2>' . __('Using the Calendar', 'quick-event-manager') . '</h2>
    <p>' . __('To add a calendar to your site use the shortcode: [qemcalendar]', 'quick-event-manager') . '.</p>
    <form method="post" action="">
    <table width="100%">
    <tr>
    <td colspan="2"><h2>' . __('General Settings', 'quick-event-manager') . '</h2></td>
    </tr>
    <tr>
    <td style="vertical-align:top;">' . __('Linking to Events', 'quick-event-manager') . '</td>
    <td><input type="radio" name="eventlink" value="linkpopup" ' . $linkpopup . ' /> ' . __('Link opens event summary in a popup', 'quick-event-manager') . '<br />
    <input type="radio" name="eventlink" value="linkpage" ' . $linkpage . ' /> ' . __('Link opens event page', 'quick-event-manager') . '</td>
    </tr>
    <tr>
    <td width="30%">' . __('Old Events', 'quick-event-manager') . '</td>
    <td><input type="checkbox" style="margin:0; padding: 0; border: none" name="archive" ' . $calendar['archive'] . ' value="checked" /> ' . __('Show past events in the calendar', 'quick-event-manager') . '.</td>
    </tr>
    <tr>
    <td width="30%">' . __('Linking Calendar to the Event List', 'quick-event-manager') . '</td>
    <td><input type="checkbox" style="margin:0; padding: 0; border: none" name="connect"' . $calendar['connect'] . ' value="checked" /> ' . __('Link Event List to Calendar Page', 'quick-event-manager') . '.<br>
    <span class="description">' . __('You will need to create pages for the calendar and the event list', 'quick-event-manager') . '.</span>
    </td>
    </tr>
    <tr>
    <td width="30%">' . __('Calendar link text', 'quick-event-manager') . '</td><td><input type="text" style="" label="calendar_text" name="calendar_text" value="' . $calendar['calendar_text'] . '" /></td></tr>
    <tr><td width="30%">' . __('Calendar page URL', 'quick-event-manager') . '</td><td><input type="text" style="" label="calendar_url" name="calendar_url" value="' . $calendar['calendar_url'] . '" /></td></tr>
    <tr><td width="30%">' . __('Event list link text', 'quick-event-manager') . '</td><td><input type="text" style="" label="eventlist_text" name="eventlist_text" value="' . $calendar['eventlist_text'] . '" /></td></tr>
    <tr>
    <td width="30%">' . __('Event list page', 'quick-event-manager') . ' URL</td>
    <td><input type="text" style="" label="eventlist_url" name="eventlist_url" value="' . $calendar['eventlist_url'] . '" /></td></tr>
    <tr>
    <td width="30%">Navigation Labels</td>
    <td><input type="text" style="width:50%;" label="text" name="prevmonth" value="' . $calendar['prevmonth'] . '" /><input type="text" style="text-align:right;width:50%;" label="text" name="nextmonth" value="' . $calendar['nextmonth'] . '" /></td>
    </tr>
    <tr>
    <td width="30%">' . __('Navigation Icons', 'quick-event-manager') . '</td>
    <td>
    <input type="radio" name="navicon" value="none" ' . $none . ' /> ' . __('None', 'quick-event-manager') . ' 
    <input type="radio" name="navicon" value="arrows" ' . $arrows . ' /> &#9668; &#9658; 
    <input type="radio" name="navicon" value="unicodes" ' . $unicodes . ' />' . __('Other', 'quick-event-manager') . ' (' . __('enter', 'quick-event-manager') . ' <a href="http://character-code.com/arrows-html-codes.php" target="_blank">' . __('hex code', 'quick-event-manager') . '</a> ' . __('below', 'quick-event-manager') . ').<br />
    Left: <input type="text" style="width:6em;" label="text" name="leftunicode" value="' . $calendar['leftunicode'] . '" /> Right: <input type="text" style="width:6em;" label="text" name="rightunicode" value="' . $calendar['rightunicode'] . '" /></td>
    </tr>
    <tr>
    <td width="30%">' . __('Jump to links', 'quick-event-manager') . '</td>
    <td><input type="checkbox" style="margin:0; padding: 0; border: none" name="jumpto"' . $calendar['jumpto'] . ' value="checked" /> ' . __('Jump to the top of the calendar when linking to a new month.', 'quick-event-manager') . '</td>
    </tr>
    <tr>
    <td colspan="2"><h2>' . __('Calendar Options', 'quick-event-manager') . '</h2></td>
    </tr>
    <tr>
    <td style="vertical-align:top;">' . __('Month and Date Header', 'quick-event-manager') . '</td>
    <td><input type="radio" name="header" value="h2" ' . $h2 . ' /> H2 <input type="radio" name="header" value="h3" ' . $h3 . ' /> H3 <input type="radio" name="header" value="h4" ' . $h4 . ' /> H4<br>
Header CSS:<br>
    <input type="text" style="" name="headerstyle" value="' . $calendar['headerstyle'] . '" /></td>
    </tr>
    <tr>
    <td width="30%">' . __('Day Border', 'quick-event-manager') . '</td>
    <td><input type="text" style="width:12em;" label="tdborder" name="tdborder" value="' . $calendar['tdborder'] . '" /> Example: 1px solid red</td>
    </tr>
    <tr>
    <td width="30%">' . __('Cellspacing', 'quick-event-manager') . '</td>
    <td><input type="text" style="width:2em;" label="cellspacing" name="cellspacing" value="' . $calendar['cellspacing'] . '" /></td>
    </tr>
    <tr>
    <td colspan="2"><h2>' . __('Months', 'quick-event-manager') . '</h2></td>
    </tr>
    <tr>
    <td width="30%">' . __('Display 12 Mavigation', 'quick-event-manager') . '</td>
    <td><input type="checkbox" style="margin:0; padding: 0; border: none" name="showmonthsabove" ' . $calendar['showmonthsabove'] . ' value="checked" /> ' . __('Show above calendar', 'quick-event-manager') . '<br>
    <input type="checkbox" style="margin:0; padding: 0; border: none" name="showmonthsbelow" ' . $calendar['showmonthsbelow'] . ' value="checked" /> ' . __('Show below calendar', 'quick-event-manager') . '</td>
    </tr>
    <tr>
    <td width="30%">' . __('Caption', 'quick-event-manager') . '</td>
    <td><input type="text" style="" label="text" name="monthscaption" value="' . $calendar['monthscaption'] . '" /></td>
    </tr>
    
    <tr>
    <td width="30%">' . __('Hide navigation', 'quick-event-manager') . '</td>
    <td><input type="checkbox" style="margin:0; padding: 0; border: none" name="hidenavigation" ' . $calendar['hidenavigation'] . ' value="checked" /> ' . __('Remove Prev and Next links', 'quick-event-manager') . '</td>
    </tr>
    <tr>
    <td colspan="2"><h2>' . __('Event Options', 'quick-event-manager') . '</h2></td>
    </tr>
    <tr>
    <td width="30%">' . __('Multi-day Events', 'quick-event-manager') . '</td>
    <td><input type="checkbox" style="margin:0; padding: 0; border: none" name="showmultiple" ' . $calendar['showmultiple'] . ' value="checked" /> ' . __('Show event on all days', 'quick-event-manager') . '</td>
    </tr>
    <tr>
    <td width="30%">' . __('Event Border', 'quick-event-manager') . '</td>
    <td><input type="text" style="width:12em;" label="eventborder" name="eventborder" value="' . $calendar['eventborder'] . '" /> enter \'none\' to remove border</td>
    </tr>
    <tr>
    <td width="30%"></td>
    <td><input type="checkbox" style="margin:0; padding: 0; border: none" name="fixeventborder" ' . $calendar['fixeventborder'] . ' value="checked" /> ' . __('Lock border colour (ignore category colours)', 'quick-event-manager') . '</td>
    </tr>
    <tr>
    <td>' . __('Corners', 'quick-event-manager') . '</td>
    <td>
    <input type="radio" name="event_corner" value="square" ' . $square . ' /> ' . __('Square', 'quick-event-manager') . '&nbsp;
    <input type="radio" name="event_corner" value="rounded" ' . $rounded . ' /> ' . __('Rounded', 'quick-event-manager') . '</td>
    </tr>
    <tr>
    <td width="30%">' . __('Character Number', 'quick-event-manager') . '</td>
    <td><input type="text" style="width:4em;" label="text" name="eventlength" value="' . $calendar['eventlength'] . '" /><span class="description"> Number of characters to display in event box</span></td>
    </tr>
    <tr>
    <td style="vertical-align:top;">' . __('Small Screens', 'quick-event-manager') . '</td>
    <td><span class="description">' . __('What to display on small screens', 'quick-event-manager') . ':</span><br>
    <input type="radio" name="smallicon" value="trim" ' . $trim . ' /> ' . __('Full message', 'quick-event-manager') . ' <input type="radio" name="smallicon" value="arrow" ' . $arrow . ' /> ' . __('&#9654;', 'quick-event-manager') . ' <input type="radio" name="smallicon" value="box" ' . $box . ' /> ' . __('&#9633;', 'quick-event-manager') . ' <input type="radio" name="smallicon" value="square" ' . $square . ' /> ' . __('&#9632;', 'quick-event-manager') . ' <input type="radio" name="smallicon" value="asterix" ' . $asterix . ' /> ' . __('&#9733;', 'quick-event-manager') . ' 
    <input type="radio" name="smallicon" value="blank" ' . $blank . ' /> ' . __('Blank', 'quick-event-manager') . ' 
    <input type="radio" name="smallicon" value="other" ' . $other . ' /> ' . __('Other', 'quick-event-manager') . ' (' . __('enter escaped', 'quick-event-manager') . ' <a href="http://www.fileformat.info/info/unicode/char/search.htm" target="blank">unicode</a> ' . __('or hex code below', 'quick-event-manager') . ').<br />
    <input type="text" style="width:6em;" label="text" name="unicode" value="' . $calendar['unicode'] . '" /></td>
    </tr>		
    <tr><td width="30%">' . __('Background', 'quick-event-manager') . '</td>
    <td><input type="text" class="qem-color" label="background" name="eventbackground" value="' . $calendar['eventbackground'] . '" /><br><span class="description">Select clear to use day colour</span></td>
    </tr>
    <tr>
    <td width="30%">' . __('Text', 'quick-event-manager') . '</td>
    <td><input type="text" class="qem-color" label="text" name="eventtext" value="' . $calendar['eventtext'] . '" /></td>
    </tr>
    <tr>
    <td width="30%">' . __('Text Styles', 'quick-event-manager') . '</td>
    <td><input type="checkbox" style="margin:0; padding: 0; border: none" name="eventbold" ' . $calendar['eventbold'] . ' value="checked" /> ' . __('Bold', 'quick-event-manager') . '<input type="checkbox" style="margin:0; padding: 0; border: none" name="eventitalic" ' . $calendar['eventitalic'] . ' value="checked" /> ' . __('Italic', 'quick-event-manager') . '</td>
    </tr>
    <tr>
    <td width="30%">' . __('Event Hover', 'quick-event-manager') . '</td>
    <td><input type="text" class="qem-color" label="background" name="eventhover" value="' . $calendar['eventhover'] . '" /></td>
    </tr>
    <tr>
    <td width="30%">' . __('Event Image', 'quick-event-manager') . '</td>
    <td><input type="checkbox" style="margin:0; padding: 0; border: none" name="eventimage" ' . $calendar['eventimage'] . ' value="checked" /> ' . __('Show event image on the calendar', 'quick-event-manager') . '<br>' . __('Image Width', 'quick-event-manager') . '<input type="text" style="width:3em;" label="text" name="imagewidth" value="' . $calendar['imagewidth'] . '" /> px</td>
    </tr>
    <tr>
    <td width="30%">' . __('Hover Message', 'quick-event-manager') . '</td>
    <td><input type="checkbox" style="margin:0; padding: 0; border: none" name="usetooltip" ' . $calendar['usetooltip'] . ' value="checked" /> ' . __('Show full event title on hover', 'quick-event-manager') . '</td>
    </tr>
    </table>
    
    <h2>' . __('Calendar Colours', 'quick-event-manager') . '</h2>
    <div class="qem-calcolor">
    <p style="font-weight:bold"><span style="float:left;width:10em;">' . __('Items', 'quick-event-manager') . '</span>' . __('Background', 'quick-event-manager') . ' / ' . __('Text', 'quick-event-manager') . '</p>
    <p><span style="float:left;width:10em">' . __('Days of the Week', 'quick-event-manager') . '</span>&nbsp;<input type="text" class="qem-color" label="background" name="calday" value="' . $calendar['calday'] . '" /><input type="text" class="qem-color" label="text" name="caldaytext" value="' . $calendar['caldaytext'] . '" /></p>
    <p><span style="float:left;width:10em">' . __('Normal Day', 'quick-event-manager') . '</span>&nbsp;<input type="text" class="qem-color" label="background" name="day" value="' . $calendar['day'] . '" /></p>
    <p><span style="float:left;width:10em">' . __('Event Day', 'quick-event-manager') . '</span>&nbsp;<input type="text" class="qem-color" label="background" name="eventday" value="' . $calendar['eventday'] . '" /><input type="text" class="qem-color" label="text" name="eventdaytext" value="' . $calendar['eventdaytext'] . '" /></p>
    <p><span style="float:left;width:10em">' . __('Past Day', 'quick-event-manager') . '</span>&nbsp;<input type="text" class="qem-color" label="background" name="oldday" value="' . $calendar['oldday'] . '" /></p>
    </div>
    <h2>' . __('Event Category Colours', 'quick-event-manager') . '</h2>
    <p style="font-weight:bold"><span style="float:left;width:8em;">' . __('Category', 'quick-event-manager') . '</span>' . __('Background', 'quick-event-manager') . ' / ' . __('Text', 'quick-event-manager') . '</p>
    
    <div class="qem-calcolor">';
    $arr = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j');
    foreach ($arr as $i) {
        $content .= '<p>' . qem_categories('cat' . $i, $calendar['cat' . $i]) . '&nbsp;
        <input type="text" class="qem-color" label="cat' . $i . 'back" name="cat' . $i . 'back" value="' . $calendar['cat' . $i . 'back'] . '" />&nbsp;
        <input type="text" class="qem-color" label="cat' . $i . 'text" name="cat' . $i . 'text" value="' . $calendar['cat' . $i . 'text'] . '" /></p>';
    }
    $content .= '</div>
    <table width="100%">
    <tr>
    <td width="30%">' . __('Display category key', 'quick-event-manager') . '</td>
    <td><input type="checkbox" style="margin:0; padding: 0; border: none" name="showkeyabove" ' . $calendar['showkeyabove'] . ' value="checked" /> ' . __('Show above calendar', 'quick-event-manager') . '<br>
    <input type="checkbox" style="margin:0; padding: 0; border: none" name="showkeybelow" ' . $calendar['showkeybelow'] . ' value="checked" /> ' . __('Show below calendar', 'quick-event-manager') . '</td>
    </tr>
    <tr>
    <td width="30%">' . __('Caption:', 'quick-event-manager') . '</td>
    <td><input type="text" style="" label="text" name="keycaption" value="' . $calendar['keycaption'] . '" /></td>
    </tr>
    <tr>
    <td width="30%"></td><td><input type="checkbox" style="margin:0; padding: 0; border: none" name="linktocategories" ' . $calendar['linktocategories'] . ' value="checked" /> ' . __('Link keys to categories', 'quick-event-manager') . '<br>
    <input type="checkbox" style="margin:0; padding: 0; border: none" name="showuncategorised" ' . $calendar['showuncategorised'] . ' value="checked" /> ' . __('Show uncategorised key', 'quick-event-manager') . '</td>
    </tr>
    </table>
    <h2>' . __('Start the Week', 'quick-event-manager') . '</h2>
    <p><input type="radio" name="startday" value="sunday" ' . $sunday . ' /> ' . __('On Sunday', 'quick-event-manager') . '<br />
    <input type="radio" name="startday" value="monday" ' . $monday . ' /> ' . __('On Monday', 'quick-event-manager') . '</p>
    <p><input type="submit" name="Submit" class="button-primary" style="color: #FFF;" value="' . __('Save Changes', 'quick-event-manager') . '" /> <input type="submit" name="Reset" class="button-primary" style="color: #FFF;" value="' . __('Reset', 'quick-event-manager') . '" onclick="return window.confirm( \'' . __('Are you sure you want to reset the calendar settings?', 'quick-event-manager') . '\' );"/></p>';
    $content .= wp_nonce_field("save_qem");
    $content .= '</form>
    </div>
    <div class="qem-options" style="float:right">
    <h2>' . __('Calendar Preview', 'quick-event-manager') . '</h2>
    <p>' . __('The <em>prev</em> and <em>next</em> buttons only work on your Posts and Pages - so don&#146;t click on them!', 'quick-event-manager') . '</p>';
    $content .= qem_show_calendar('');
    $content .= '</div></div>';
    echo $content;
}