//#region Status
function StatusItemData(observer) {
    var args = [];
    args.push(observer);
    args.push({
        group: 'status',
        name: 'statusid',
        selector: '[name="statusid"]'
    });
    ItemData.apply(this, args);
}
StatusItemData.prototype = Object.create(ItemData.prototype);
StatusItemData.prototype.GetSubmitVal = function (submitData) {
    return submitData.Id;
}
StatusItemData.prototype.GetSelectorType = function () {
    return 'select';
}
StatusItemData.prototype.ConflictDialogContent = function (selectorType, submitData) {
    var that = this;

    //возможно было условиее в бизнес-процессе когда переводим из статуса в статус что комментарий обязателен.
    //принудительно обновим данными от сервера 
    var $option = $(this._options.selector).find('option[value="' + submitData.Id + '"]')
    if ($option.length == 0) {
        $option = $('<option value="' + submitData.Id + '">' + submitData.Name + '</option>');
        $(this._options.selector).append($option);
    }
    $option.attr('data-final', submitData.IsFinal);
    $option.attr('data-isconcurrence', submitData.IsConcurrence);
    $option.attr('data-external', submitData.IsExternal);
    $option.attr('data-commentrequired', submitData.IsCommentRequired);
    $option.attr('data-isinitial', submitData.IsInitial);
    $option.attr('data-isfixed', submitData.IsFixed);
    $option.attr('iconurl', submitData.IconUrl);

    return $(
            '<div>\
                <label>\
                    <input type="radio" name="conflictradioresolve-' + that._options.name + '" value="1" checked />' + TaskFormHubResources.ConflictDialogContent_UseOldValue + '\
                </label>\
                <select class="px300" name="conflictradioresolve-' + that._options.name + '-value1">\
                    <option value="' + that.GetCurrentVal() + '">' + $(that._options.selector).find('option:selected').text() + '</option>\
                </select>\
            </div><hr>\
            <div>\
                <label>\
                    <input type="radio" name="conflictradioresolve-' + that._options.name + '" value="0" />' + TaskFormHubResources.ConflictDialogContent_UseNewValue + '\
                </label>\
                <select class="px300" name="conflictradioresolve-' + that._options.name + '-value0">\
                    <option value="' + submitData.Id + '">' + submitData.Name + '</option>\
                </select>\
            </div>\
            ');
}

//создать сообщение что нет конфликта и обновить блок данными
StatusItemData.prototype.AppendNotConflict = function (submitData) {
    var $notconflictMessage = $(this.tmpl_notconflictMessageBase({ blockName: this._options.name }));

    //добавить новую инфу
    $(this._options.selector+':visible').after($notconflictMessage);

    var $option = $(this._options.selector).find('option[value="' + submitData.Id + '"]')
    if ($option.length == 0) {
        $option = $('<option value="' + submitData.Id + '">' + submitData.Name + '</option>');
        $(this._options.selector).append($option);
    }
    $option.attr('data-final', submitData.IsFinal);
    $option.attr('data-isconcurrence', submitData.IsConcurrence);
    $option.attr('data-external', submitData.IsExternal);
    $option.attr('data-commentrequired', submitData.IsCommentRequired);
    $option.attr('data-isinitial', submitData.IsInitial);
    $option.attr('data-isfixed', submitData.IsFixed);
    $option.attr('iconurl', submitData.IconUrl);

    $(this._options.selector).val(submitData.Id).trigger('change');
    this.SetOldValue();
    this.SendBlockChange();

    $('#taskformheader').find('.icon24').attr('src', submitData.IconUrl);
}

//куда добавляем сообщение
StatusItemData.prototype.AppendConflict2 = function ($conflictMessage) {
    //добавить новую инфу
    $(this._options.selector+':visible').after($conflictMessage);
}

StatusItemData.prototype.ConflictDialogOkCallback = function (submitData) {
    ItemData.prototype.ConflictDialogOkCallback.call(this, submitData);
    var iconurl = $(this._options.selector).find('option:selected').attr('iconurl');
    $('#taskformheader').find('.icon24').attr('src', iconurl);
}
//#endregion