﻿$(document).ready(function () {

    $("div#lp_dialogs_bookshelf_create_label").dialog({
        title: 'BookShelf',
        autoOpen: false,
        modal: true,
        width: 300,
        resizable: false,
        draggable: false,
        buttons: {
            "Cancel": function () {
                $("div#lp_dialogs_bookshelf_create_label").dialog("close");
            },
            "OK": function () {

                $('[aria-labelledby$=lp_dialogs_bookshelf_create_label]').find(":button:contains('OK')").removeClass('ui-state-disabled').attr('disabled', false);
                $('[aria-labelledby$=lp_dialogs_bookshelf_create_label]').find(":button:contains('Cancel')").removeClass('ui-state-disabled').attr('disabled', false);

                var label_text = jQuery.trim($('#lp_dialogs_bookshelf_create_label_textbox').attr('value'));

                wsLinkedPapers.Label_Create(
                    label_text,
                    function (result) {
                        lp_bookshelf_labels_create(label_text, 0);
                        $("div#lp_dialogs_bookshelf_create_label").dialog("close");
                    },
                    function (_result) {
                        dialog_error_open(_result);
                    }
                );

            }
        }
    });

    $('#lp_dialogs_bookshelf_create_label_textbox').keyup(function (e) {

        var new_label = $(this).attr('value');
        var _label_initial_text = $('#lp_dialogs_bookshelf_create_label').data('label_initial_text');

        if (new_label == _label_initial_text) {
            // the label is still the same
            $('#lp_dialogs_bookshelf_create_label_error_message').text('label has not been changed');
            $('#lp_dialogs_bookshelf_create_label_icon').removeClass().addClass('warning');
            $('[aria-labelledby$=lp_dialogs_bookshelf_create_label_rename_label]').find(":button:contains('OK')").removeClass('ui-state-disabled').attr('disabled', false);
        }
        else if (new_label.length == 0) {
            // the label is empty
            $('#lp_dialogs_bookshelf_create_label_icon').removeClass().addClass('error');
            $('#lp_dialogs_bookshelf_create_label_error_message').text('the label must have text');
            $('[aria-labelledby$=lp_dialogs_bookshelf_create_label]').find(":button:contains('OK')").addClass('ui-state-disabled').attr('disabled', true);
        }
        else if (new_label.length > 36) {
            // the label is too long
            $('#lp_dialogs_bookshelf_create_label_icon').removeClass().addClass('error');
            $('#lp_dialogs_bookshelf_create_label_error_message').text('the label is too long');
            $('[aria-labelledby$=lp_dialogs_bookshelf_create_label]').find(":button:contains('OK')").addClass('ui-state-disabled').attr('disabled', true);
        }
        else if (!validate_label_text_characters(new_label)) {
            // the label contains invalid characters
            $('#lp_dialogs_bookshelf_create_label_icon').removeClass().addClass('error');
            $('#lp_dialogs_bookshelf_create_label_error_message').text('Only letters, numbers, spaces and dashes allowed');
            $('[aria-labelledby$=lp_dialogs_bookshelf_create_label]').find(":button:contains('OK')").addClass('ui-state-disabled').attr('disabled', true);
        }
        else if (lp_bookshelf_label_exists(new_label)) {
            // this label already exists
            $('#lp_dialogs_bookshelf_create_label_icon').removeClass().addClass('error');
            $('#lp_dialogs_bookshelf_create_label_error_message').text('this label already exists');
            $('[aria-labelledby$=lp_dialogs_bookshelf_create_label]').find(":button:contains('OK')").addClass('ui-state-disabled').attr('disabled', true);
        }
        else {
            $('#lp_dialogs_bookshelf_create_label_icon').removeClass().addClass('ok');
            $('#lp_dialogs_bookshelf_create_label_error_message').text('');
            $('[aria-labelledby$=lp_dialogs_bookshelf_create_label]').find(":button:contains('OK')").removeClass('ui-state-disabled').attr('disabled', false);

            if (e.keyCode == 13) {
                $('[aria-labelledby$=lp_dialogs_bookshelf_create_label]').find(":button:contains('OK')").click();
            }
        }
    });
});

function lp_dialogs_bookshelf_create_label_open() {

    // reset the rename input box text
    $('#lp_dialogs_bookshelf_create_label_textbox').attr('value', '');

    // hide the warning and error messages
    $('#lp_dialogs_bookshelf_create_label_error_message').text('');

    $('#lp_dialogs_bookshelf_create_label_icon').removeClass();

    $('[aria-labelledby$=lp_dialogs_bookshelf_create_label]').find(":button:contains('OK')").removeClass('ui-state-disabled').attr('disabled', false);
    $('[aria-labelledby$=lp_dialogs_bookshelf_create_label]').find(":button:contains('Cancel')").removeClass('ui-state-disabled').attr('disabled', false);

    // open it
    $('#lp_dialogs_bookshelf_create_label').dialog('open');

    // focus to the textbox and select all text
    $('#lp_dialogs_bookshelf_create_label_textbox').focus().select();

}
