/**
 *	Save slide settings metabox data
 *	rli_slideshow_save_slide_meta()
 *
 *	@todo	Extend to detect slide's template and base this on it. 
 *	@todo	Handle default settings
 */
function rli_slideshow_save_slide_meta($post_id)
{
    // verify if this is an auto save routine.
    // If it is our form has not been submitted, so we dont want to do anything
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return $post_id;
    }
    $slide_settings = get_post_meta($post_id, '_rli_slideshow_slide_settings', true);
    $template_specs = rli_slideshow_get_slide_template_specifications('default');
    foreach ($template_specs as $specification) {
        switch ($specification['setting_type']) {
            case 'lookup':
                break;
            case 'string':
                $str = "rli_slideshow_slide_" . $specification['slug'];
                if (isset($_POST[$str])) {
                    $slide_settings[$specification['slug']] = strip_tags($_POST[$str]);
                }
                break;
        }
    }
    // a temporary measure
    $slide_settings['template'] = 'default';
    update_post_meta($post_id, '_rli_slideshow_slide_settings', $slide_settings);
}
function rli_slideshow_display_slideshow($slideshow = 'default')
{
    global $post;
    $slides = rli_slideshow_get_slides();
    if ($slides->have_posts()) {
        // @todo Prepare default slideshow-wide CSS rules, such as default background rules.
        $slide_output = $slide_styles = "";
        // Setup script
        // @todo make this dynamic and option driven
        // @todo target the specific slideshow by ID
        $slide_script = "\n\t\t\t\n<script type='text/javascript'>\n\t\t\t\tjQuery(document).ready(function(\$) {\n\t\t\t\t\t\$('.rli-slideshow').css('display','block').slides({\n\t\t\t\t\t\tplay: 7000,\n\t\t\t\t\t\teffect: 'fade',\n\t\t\t\t\t\tcrossface: true,\n\t\t\t\t\t\thoverPause: true,\n\t\t\t\t\t\tslideSpeed: 400,\n\t\t\t\t\t\tpagination: true,\n\t\t\t\t\t\tgeneratePagination: true,\n\t\t\t\t\t\tcontainer: 'rli-slideshow-container',\n\t\t\t\t\t\tcurrentClass: 'rli-slideshow-current',\n\t\t\t\t\t\tpaginationClass: 'rli-slideshow-pages'\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t</script>\n";
        while ($slides->have_posts()) {
            $slides->the_post();
            // Setup output variables
            $slide_classes = $html = $css = "";
            // Load the slide's data
            $slide_settings = get_post_meta($post->ID, '_rli_slideshow_slide_settings', true);
            // Get and store the template name.
            if (!isset($slide_settings['template'])) {
                $slide_settings['template'] = 'default';
            }
            $slide_template = $slide_settings['template'];
            // Get the template
            $template_specs = rli_slideshow_get_slide_template_specifications($slide_template);
            // @todo ORDER SLIDES
            // Build the slide content, styles, and classes based on the template and slide data
            foreach ($template_specs as $setting) {
                $slug = $setting['slug'];
                if (!isset($slide_settings[$slug])) {
                    $slide_settings[$slug] = '';
                }
                $html .= rli_slideshow_render_slide_html_from_template($setting, $slide_settings[$slug]);
                $css .= rli_slideshow_render_slide_css_from_template($setting, $slide_settings[$slug]);
                $slide_classes .= rli_slideshow_render_slide_class_from_template($setting, $slide_settings[$slug]);
            }
            $slide_styles .= $css;
            $slide_output .= "\n\t\t\t\t<div class='rli-slide rli-slide-" . $post->ID . " {$slide_classes}' >\n\t\t\t\t\t{$html}\n\t\t\t\t</div>\n";
        }
        wp_reset_query();
        // echo styles
        echo "<style type='text/css'>\n{$slide_styles}</style>\n";
        // echo html
        echo "<div class='rli-slideshow' style='display:none;'>\n<div class='rli-slideshow-container'>\n{$slide_output}</div>\n</div>\n";
        // echo js
        echo $slide_script;
    }
}