@model NzbDrone.Core.Repository.Quality.QualityProfile
@using NzbDrone.Core.Repository.Quality
@using NzbDrone.Web.Helpers

@{
    Layout = null;
}

<script type="text/javascript">
    $(document).ready(function () {
        addOption('@Model.Name', '@ViewData["ProfileId"]');
    });
</script>

@using (Html.BeginCollectionItem("UserProfiles"))
{
    var idClean = ViewData.TemplateInfo.HtmlFieldPrefix.Replace('[', '_').Replace(']', '_');
    var ugly = ViewData.TemplateInfo.HtmlFieldPrefix;

    string sortable1 = String.Format("{0}_sortable1", idClean);
    string sortable2 = String.Format("{0}_sortable2", idClean);
    string allowedStringName = String.Format("{0}_AllowedString", idClean);
    string connectedSortable = String.Format("connected{0}", idClean);
    string title = String.Format("{0}_Title", idClean);
    string nameBox = String.Format("{0}_Name", idClean);
    string cutoff = String.Format("{0}.Cutoff", ugly);

    <style type="text/css">
        .sortable1, .sortable2 { list-style-type: none; margin-right: 10px; background: #eee; padding-left: 5px; padding-right: 5px; padding-top: 0px; padding-bottom: 6px; width: 117px; margin-bottom: 3px; }
        .allowedQualities, .otherQualities { list-style-type: none; float: left; margin-right: 10px; background: #eee; padding-left: 5px; padding-right: 5px; padding-top:6px; width: 122px; -khtml-border-radius:8px;border-radius:8px;-moz-border-radius:8px;-webkit-border-radius:8px; }
        .sortable1 li, .sortable2 li { margin: 5px; margin-left: 0px; padding: 0px; font-size: 1.2em; width: 110px; -khtml-border-radius:8px;border-radius:8px;-moz-border-radius:8px;-webkit-border-radius:8px; }
        .sortable1 li { background: #ddd; }
        .sortable2 li { background: #DAA2A2; }
        .sortableHeader { margin:2px; margin-left:12px }
        .sortable1 li.ui-state-highlight, .sortable2 li.ui-state-highlight { background: #fbf5d0; border-color: #065EFE; }
        .removeDiv { float: left; display:block; }
        .ui-state-highlight { height: 1.5em; line-height: 1.2em; }
    </style>

    <script type="text/javascript">
        $(function () {
            $("#@sortable1, #@sortable2").sortable({
                connectWith: ".@connectedSortable",
                placeholder: "ui-state-highlight",
                dropOnEmpty: true,

                create: function (event, ui) {
                    var order = $('#@sortable1').sortable("toArray");
                    $("#@allowedStringName").val(order);
                },

                update: function (event, ui) {
                    var order = $('#@sortable1').sortable("toArray");
                    $("#@allowedStringName").val(order);

                    //If this is the first QualityType added to the Profile select it as the cutoff value (in-case the user forgets)
                    var $list = $('#@sortable1 li');
                    if ($list.length == 1) {
                        var $radios = $('input[name="@cutoff"]');
                        $radios.filter('[value=' + order + ']').attr('checked', true);
                    }
                }
            }).disableSelection();
        });
    </script>

    <div class="userProfileSectionEditor" id="div_@(ViewData["ProfileId"])">

        <fieldset style="width:285px; max-width:285px; margin:5px; margin-top: 0px; border-color:#CCCCCD">
        <div id="tester"></div>

            <div id="qualityHeader" style="padding-bottom: 5px; margin: 0px;">
                <h2 style="display:inline; padding-right: 4px; margin-left: 4px;" id="@title">@{Html.DisplayTextFor(m => m.Name);}</h2>
                <a href="#" id="@Model.QualityProfileId" class="deleteRow" onclick="deleteProfile('@ViewData["ProfileId"]')" style="float:right; padding-top:15px;"><img src="../../Content/Images/X.png" alt="Delete"/></a>
            </div>

            <div class="config-group" style="width: 270px; margin-bottom: 5px; margin-left: 5px;">
                <div class="config-title">@Html.LabelFor(x => x.Name)</div>
                <div class="config-value">@Html.TextBoxFor(x => x.Name, new { maxlength = 16})</div>
                <div class="config-validation">@Html.ValidationMessageFor(x => x.Name)</div>
            </div>

            <div id="sortablesDiv" style="margin: 0px;">
                <div class="allowedQualities">
                    <h4 class="sortableHeader">Allowed</h4>
                    <ul id="@sortable1" class="@connectedSortable sortable1">
                        @if (Model.Allowed != null)
                        {
                            for (int i = 0; i < Model.Allowed.Count(); i++)
                            {
                                <li class="ui-state-default" id="@Model.Allowed[i].ToString()">
                                @Html.RadioButtonFor(x => x.Cutoff, Model.Allowed[i])
                                @Html.DisplayTextFor(c => c.Allowed[i])
                                </li>
                            }
                        }
                    </ul>
                </div>

                <div class="otherQualities">
                    <h4 class="sortableHeader">Not-Allowed</h4>
                    <ul id="@sortable2" class="@connectedSortable sortable2">

        @{var qualitiesList = (List<QualityTypes>)ViewData["Qualities"];}

        @for (int i = 0; i < qualitiesList.Count(); i++)
        {
            //Skip Unknown and any item that is in the allowed list
            //if (qualitiesList[i].ToString() == "Unknown")
            //{
            //    continue;
            //}

            if (Model.Allowed != null)
            {
                if (Model.Allowed.Contains(qualitiesList[i]))
                {
                    continue;
                }
            }

            <li class="ui-state-default" id="@qualitiesList[i].ToString()">
            @Html.RadioButtonFor(x => x.Cutoff, qualitiesList[i])
            @Html.Label(qualitiesList[i].ToString())
            </li>
        }
                    </ul>
                </div>
            </div>

            @Html.ValidationMessageFor(x => x.Cutoff)

            <div class="hiddenProfileDetails">
                @Html.TextBoxFor(x => x.QualityProfileId, new { @style = "display:none" })
                @Html.CheckBoxFor(x => x.UserProfile, new { @style = "display:none" })
                @Html.TextBoxFor(m => m.AllowedString, new { @style = "display:none" })
            </div>
        </fieldset>
    </div> 

    <script type="text/javascript">
        $("#@nameBox").keyup(function () {
            var value = $(this).val();
            $("#@title").text(value);
            renameOption(value, '@ViewData["ProfileId"]');
        }).keyup();
    </script>
}