@using NzbDrone.Web.Helpers
@model NzbDrone.Web.Models.EpisodeSortingModel
           
@section HeaderContent{
    <link rel="stylesheet" type="text/css" href="../../Content/Settings.css" />
    
    <style>
        #examples
        {
            clear: both;
            margin-top: 15px;
            margin-bottom: 15px;
        }
        
        #singleEpisodeExample, #multiEpisodeExample
        {
            float: left
        }
    </style>
}

@section TitleContent{
    Settings
}

@section ActionMenu{
    @{Html.RenderPartial("SubMenu");}
}
    
@section MainContent{       
<div id="stylized">
    @using (Html.BeginForm("SaveEpisodeSorting", "Settings", FormMethod.Post, new { id = "form", name = "form", @class = "settingsForm" }))
    {
        @Html.ValidationSummary(true, "Unable to save your settings. Please correct the errors and try again.")

        <h1>Episode Sorting</h1>
        <p></p>
    
        <label class="labelClass">@Html.LabelFor(m => m.SeriesName)
        <span class="small">@Html.DescriptionFor(m => m.SeriesName)</span>
        </label>
        @Html.CheckBoxFor(m => m.SeriesName, new { @class = "inputClass checkClass" })

        <label class="labelClass">@Html.LabelFor(m => m.EpisodeName)
        <span class="small">@Html.DescriptionFor(m => m.EpisodeName)</span>
        </label>
        @Html.CheckBoxFor(m => m.EpisodeName, new { @class = "inputClass checkClass" })

        <label class="labelClass">@Html.LabelFor(m => m.ReplaceSpaces)
        <span class="small">@Html.DescriptionFor(m => m.ReplaceSpaces)</span>
        </label>
        @Html.CheckBoxFor(m => m.ReplaceSpaces, new { @class = "inputClass checkClass" })

        <label class="labelClass">@Html.LabelFor(m => m.AppendQuality)
        <span class="small">@Html.DescriptionFor(m => m.AppendQuality)</span>
        </label>
        @Html.CheckBoxFor(m => m.AppendQuality, new { @class = "inputClass checkClass" })

        <label class="labelClass">@Html.LabelFor(m => m.SeasonFolders)
        <span class="small">@Html.DescriptionFor(m => m.SeasonFolders)</span>
        </label>
        @Html.CheckBoxFor(m => m.SeasonFolders, new { @class = "inputClass checkClass" })
        
        <label class="labelClass">@Html.LabelFor(m => m.SeasonFolderFormat)
        <span class="small">@Html.DescriptionFor(m => m.SeasonFolderFormat)</span>
        </label>
        @Html.TextBoxFor(m => m.SeasonFolderFormat, new { @class = "inputClass" })

        <label class="labelClass">@Html.LabelFor(m => m.SeparatorStyle)
        <span class="small">@Html.DescriptionFor(m => m.SeparatorStyle)</span>
        </label>
        @Html.DropDownListFor(m => m.SeparatorStyle, Model.SeparatorStyles, new { @class = "inputClass selectClass" })

        <label class="labelClass">@Html.LabelFor(m => m.NumberStyle)
        <span class="small">@Html.DescriptionFor(m => m.NumberStyle)</span>
        </label>
        @Html.DropDownListFor(m => m.NumberStyle, Model.NumberStyles, new { @class = "inputClass selectClass" })

        <label class="labelClass">@Html.LabelFor(m => m.MultiEpisodeStyle)
        <span class="small">@Html.DescriptionFor(m => m.MultiEpisodeStyle)</span>
        </label>
        @Html.DropDownListFor(m => m.MultiEpisodeStyle, Model.MultiEpisodeStyles, new { @class = "inputClass selectClass" })  
        
        <br/>
        <div id ="examples" class="clearfix">
            <div id="singleEpisodeExample">
            </div>
            <div id="multiEpisodeExample">
            </div>
        </div>
        
        <button type="submit" id="save_button" disabled="disabled">Save</button>
    }
</div>

}
@section Scripts{
    <script src="../../Scripts/NzbDrone/settingsForm.js" type="text/javascript"></script>

    <script type="text/javascript">
        $(document).ready(function () {
            createExamples();
        });

        $('#SeriesName').live('change', function () { createExamples(); });
        $('#EpisodeName').live('change', function () { createExamples(); });
        $('#ReplaceSpaces').live('change', function () { createExamples(); });
        $('#AppendQuality').live('change', function () { createExamples(); });
        $('#SeparatorStyle').live('change', function () { createExamples(); });
        $('#NumberStyle').live('change', function () { createExamples(); });
        $('#MultiEpisodeStyle').live('change', function () { createExamples(); });

        function createExamples() {
            createSingleEpisodeExample();
            createMultiEpisodeExample();
        }

        function createSingleEpisodeExample() {
            var result = '';

            var separator = ' - ';

            if ($("#SeparatorStyle option:selected").val() == 1)
                separator = ' ';

            if ($('#SeriesName').attr('checked')) {
                result += 'Series Name';
                result += separator;
            }

            result += $("#NumberStyle option:selected").text();

            if ($('#EpisodeName').attr('checked')) {
                result += separator;
                result += 'Episode Name';
            }

            if ($('#AppendQuality').attr('checked'))
                result += ' [TV]';

            if ($('#ReplaceSpaces').attr('checked'))
                result = result.replace(/\s/g, '.');

            result = '<b>Single Episode Example: </b>' + result;

            $('#singleEpisodeExample').html(result);
        }

        function createMultiEpisodeExample() {
            var result = '';

            var separator = ' - ';

            if ($("#SeparatorStyle option:selected").val() == 1)
                separator = ' ';

            if ($('#SeriesName').attr('checked')) {
                result += 'Series Name';
                result += separator;
            }

            var numberStyle = $("#NumberStyle option:selected").text();
            var numberId = $("#NumberStyle option:selected").val();
            var style = $("#MultiEpisodeStyle option:selected").val();

            result += numberStyle;

            if (style == 0)
                result += '-06';

            if (style == 1) {
                result += separator;
                result += numberStyle.replace('5', '6');
            }

            if (style == 2) {
                if (numberId <= 1)
                    result += 'x06';

                if (numberId == 2)
                    result += 'E06';

                if (numberId == 3)
                    result += 'e06';
            }

            if (style == 3) {
                if (numberId <= 1)
                    result += '-x06';

                if (numberId == 2)
                    result += '-E06';

                if (numberId == 3)
                    result += '-e06';
            }

            if ($('#EpisodeName').attr('checked')) {
                result += separator;
                result += 'Episode Name';
            }

            if ($('#AppendQuality').attr('checked'))
                result += ' [TV]';

            if ($('#ReplaceSpaces').attr('checked'))
                result = result.replace(/\s/g, '.');

            result = '<b>Multi-Episode Example: </b>' + result;

            $('#multiEpisodeExample').html(result);
        }
    </script>
}