﻿var GroupTodo = '';
var GroupValue1 = '';
var GroupValue2 = '';
var GroupValue3 = '';
var GroupDenyCaption = '';
var GroupDenyQuestion = '';
var GroupDeleteCaption = '';
var GroupDeleteQuestion = '';
var GroupUnscribeCaption = '';
var GroupUnscribeQuestion = '';
var GroupDeleteGroupCaption = '';
var GroupDeleteGroupQuestion = '';
var GroupSubscriptionCaption = '';
var GroupSubscriptionMessage = '';
var GroupOwnSubscriptionCaption = '';
var GroupOwnSubscriptionQuestion = '';

function InitializeGroupFunctions(DeleteCaption, DeleteQuestion, DenyCaption, DenyQuestion, UnscribeCaption, UnscribeQuestion, OwnSubscriptionCaption, OwnSubscriptionQuestion, SubscriptionCaption, SubscriptionMessage, DeleteGroupCaption, DeleteGroupQuestion)
{
    GroupDenyCaption = DenyCaption;
    GroupDenyQuestion = DenyQuestion;
    GroupDeleteCaption = DeleteCaption;
    GroupDeleteQuestion = DeleteQuestion;
    GroupUnscribeCaption = UnscribeCaption;
    GroupUnscribeQuestion = UnscribeQuestion;
    GroupDeleteGroupCaption = DeleteGroupCaption;
    GroupDeleteGroupQuestion = DeleteGroupQuestion;
    GroupSubscriptionCaption = SubscriptionCaption;
    GroupSubscriptionMessage = SubscriptionMessage;
    GroupOwnSubscriptionCaption = OwnSubscriptionCaption;
    GroupOwnSubscriptionQuestion = OwnSubscriptionQuestion;
}

function HandleGroupActions(What, Group, Member, Spare)
{
    GroupTodo = What;
    GroupValue1 = Group;
    GroupValue2 = Member;
    GroupValue3 = Spare;
    if (What == 'remove')
        ShowAlertPopup(GroupDeleteCaption, GroupDeleteQuestion, 'yesno');
    else if (What == 'deletegroup')
        ShowAlertPopup(GroupDeleteGroupCaption, GroupDeleteGroupQuestion, 'yesno');
    else if (What == 'nosubscribe')
        ShowAlertPopup(GroupDenyCaption, GroupDenyQuestion, 'yesno');
    else if (What == 'unscribeuser')
        ShowAlertPopup(GroupUnscribeCaption, GroupUnscribeQuestion, 'yesno');
    else if (What == 'removesubscription')
        ShowAlertPopup(GroupOwnSubscriptionCaption, GroupOwnSubscriptionQuestion, 'yesno');
    else if (What == 'refreshsubscribeuser' || What == 'refreshchecksubscribeuser')
        ShowAlertPopup(GroupSubscriptionCaption, GroupSubscriptionMessage, 'okonly');
    else
    {
        HandleTheGroupMember(GroupTodo, GroupValue1, GroupValue2, GroupValue3);
        GroupTodo = '';
        GroupValue1 = '';
        GroupValue2 = '';
        GroupValue3 = '';
    }
}

function CloseGroupAlertDialog(dialog)
{
    if (DeleteTheMessage)
        CloseMessageAlertDialog(dialog);
    else
        CloseAlertDialog(dialog);
}

function CloseAlertDialog(dialog)
{
    if (dialog.get_result() == 'Button1')
    {
        if (GroupTodo == 'refreshsubscribeuser')
            RefreshForumData(0);
        else if (GroupTodo == 'refreshchecksubscribeuser')
            GotoMyGroups(5);
        else if (GroupTodo == 'deletegroup')
            ExecuteInfoPopup(GroupTodo, GroupValue1, GroupValue2, GroupValue3);
        else
            HandleTheGroupMember(GroupTodo, GroupValue1, GroupValue2, GroupValue3);
    }
    GroupTodo = '';
    GroupValue1 = '';
    GroupValue2 = '';
    GroupValue3 = '';
}

function GotoMyGroups(Page)
{
    location = '/MyGroups?tabid=' + Page;
}

function CheckSubscribeGroupUser(Group, FromPreview)
{
    HandleGroupActions('checksubscribeuser', Group, FromPreview);
}

function SubscribeGroupUser(Group)
{
    HandleGroupActions('subscribeuser', Group, '');
}

function UnscribeGroupUser(Group, FromGroup)
{
    HandleGroupActions('unscribeuser', Group, FromGroup);
}

function RemoveOwnSubscriptions(Group)
{
    HandleGroupActions('removesubscription', Group, '');
}

function HandleTheGroupMember(Todo, Group, Member, Spare)
{
    ExecuteInfoPopup('handlegroups', Todo, Group, Member, Spare);
}

function EditGroup(Group)
{
    ShowInfoPopup('editgroup', true, Group);
}

function DeleteGroup(Group, FromGroup)
{
    HandleGroupActions('deletegroup', Group, FromGroup);
}

function HandleGroup(FromEdit, IDField, NameField, DescriptionField, CategorieField, NewMemberField, GroupImage)
{
    // Daten lesen
    var Categorie = '0';
    var ID = GetInputValue(IDField);
    var Name = GetInputValue(NameField);
    var Description = GetInputValue(DescriptionField);
    var CategorieItem = CategorieField.getSelectedItem();
    if (CategorieItem)
        Categorie = CategorieItem.get_value();
    var NewMember = GetDropDownValue(NewMemberField, '');
    var Todo = FromEdit ? 'entryeditgroup' : 'entrynewgroup';

    // Felder pruefen
    var ErrorObject = '';
    ShowHideObject('RequiredGroupname', 'none');
    ShowHideObject('RequiredDescription', 'none');
    ShowHideObject('RequiredCategorie', 'none');
    if (Categorie == '0')
        ErrorObject = 'RequiredCategorie';
    if (Description == '')
        ErrorObject = 'RequiredDescription';
    if (Name == '')
        ErrorObject = 'RequiredGroupname';

    // Wenn Fehler dann anzeigen, sonst abschicken
    if (ErrorObject == '')
        ExecuteInfoPopup(Todo, ID, Name, Description, Categorie, NewMember, GroupImage);
    else
        ShowHideObject(ErrorObject, 'block');
}

function InviteGroupUser(Group)
{
    if (Group)
    {
        var GroupIDOut = GetElement('Value1');
        GroupIDOut.value = Group;
        var CreateTypeOut = GetElement('Value4');
        CreateTypeOut.value = 'invitegroup';
        document.SecondForm.action = '/CreateMessage';
        document.SecondForm.submit();
    }
}

function SendMailToMember(Group)
{
    if (Group)
    {
        var GroupIDOut = GetElement('Value1');
        GroupIDOut.value = Group;
        var CreateTypeOut = GetElement('Value4');
        CreateTypeOut.value = 'sendgroupmember';
        document.SecondForm.action = '/CreateMessage';
        document.SecondForm.submit();
    }
}

function SetTheGroupImage(Image, ImageName)
{
    var PreviewImage = GetElement(Image);
    if (PreviewImage != null)
        PreviewImage.src = ImageName;
}