﻿/// <reference name="MicrosoftAjax.js" assembly="System.Web.Extensions" />

Type.registerNamespace("Finatica");
Type.registerNamespace("Finatica.ViewProject");

Finatica.ViewProject.AddToFavorites = function(sender) {
    var number = $(Finatica.ViewProject.NumberID).text()
    try {
        var fromfav = $(sender).attr('fromfav');
        var tofav = $(sender).attr('tofav');
        var isFav = $(sender).attr('isFavorite');
        if (isFav == 'false') {
            var uc = new Array(sender, fromfav, 'true');
            Finatica.WebServices.CommonServices.AddProjectToFavorites(number, Finatica.ViewProject.OnCompliteFavorites, Finatica.ViewProject.OnFailedFavorites, uc);
        }
        else {
            var uc = new Array(sender, tofav, 'false');
            Finatica.WebServices.CommonServices.RemoveProjectFromFavorites(number, Finatica.ViewProject.OnCompliteFavorites, Finatica.ViewProject.OnFailedFavorites, uc);
        }
    }
    catch (e) {
        Finatica.ViewProject.LastError = e;
        alert(e);
    }
}

Finatica.ViewProject.OnCompliteFavorites = function(result, userContext) {
    if (result) {
        $find(Finatica.Common.NotificatorID).addMessage('error', result);
    }
    else {
        $(userContext[0]).html(userContext[1]);
        $(userContext[0]).attr('isFavorite', userContext[2]);

        var text = 'Проект добавлен в избранное';
        if (userContext[2] != 'true')
            text = 'Проект удален из избранного';
        $find(Finatica.Common.NotificatorID).addMessage('success', text);
    }
}

Finatica.ViewProject.OnFailedFavorites = function(error) {
    Finatica.ViewProject.LastError = error;
    $find(Finatica.Common.NotificatorID).addMessage('error', error.get_message());
}



Finatica.ViewProject.ShowSubmitProject = function(show) {
    if (show == true) {
        $(Finatica.ViewProject.divAddRecomendation).show();
        $(Finatica.ViewProject.divSubmitButton).hide();
    }
    else {
        $(Finatica.ViewProject.divAddRecomendation).hide();
        $(Finatica.ViewProject.divSubmitButton).show();
    }
}

Finatica.ViewProject.SubmitProject = function() {
    if (Finatica.ViewProject.ValidateSubmitProject() == true) {
        var number = $(Finatica.ViewProject.NumberID).text();
        var body = $find(Finatica.ViewProject.tbRecText).get_value();

        var companyId = $(Finatica.ViewProject.ddlCompany);
        if (companyId.length != 0) companyId = companyId.val();
        else companyId = null;

        var attachmentId = $(Finatica.ViewProject.ddlProject);
        if (attachmentId.length != 0) attachmentId = attachmentId.val();
        else attachmentId = null;

        var proxy = new Finatica.WebServices.MessageManager()
        proxy.SubmitProject(number, body, companyId, attachmentId,
								Finatica.ViewProject.SubmitProjectOK, Finatica.ViewProject.Error);
    }
    return false;
}

Finatica.ViewProject.SubmitProjectOK = function() {
    $(Finatica.ViewProject.divAddRecomendation).hide(); //.style.display='none';
    $(Finatica.ViewProject.divSubmitButton).hide(); //style.display='none';
    $(Finatica.ViewProject.divResponseOK).show(); //style.display='';
    $find(Finatica.Common.NotificatorID).addMessage('success', 'Сообщение отправлено');
}

Finatica.ViewProject.Error = function(error) {
    Finatica.ViewProject.LastError = error;
    $find(Finatica.Common.NotificatorID).addMessage('error', 'Ошибка отправки сообщения: ' + error.get_message());
}

Finatica.ViewProject.ValidateSubmitProject = function() {
    if ($find(Finatica.ViewProject.tbRecText).get_value().length == 0) {
        $('#divCompanyRecErrorTitle').show();
        return false;
    }
    else {
        $('#divCompanyRecErrorTitle').hide();
        return true;
    }
}



Finatica.ViewProject.Response = function(sender, e) {
    $(sender).parent()[0].style.display = 'none';
    $(sender).parent().next()[0].style.display = '';

    return false;
}

Finatica.ViewProject.CancelResponse = function(sender, e) {
    var div = $(sender).parents("[class='main-form comment-form']");
    div[0].style.display = 'none';
    div.prev()[0].style.display = '';

    return false;
}

Finatica.ViewProject.SendMessage = function(sender, toUserID) {
    var div = $(sender).parents("[class='button clearfix']");
    var messDiv = div.prev();
    var subjDiv = messDiv.prev();

    var subj = subjDiv.find('input');
    var mess = messDiv.find('textarea');

    var subject = subj.val();
    var message = mess.val();

    var divForm = $(subjDiv).parents("[class='main-form comment-form']");
    var divAction = divForm.prev();
    var divMessOk = divAction.prev();

    var uc = new Array(divForm, divAction, divMessOk);

    Finatica.WebServices.MessageManager.SendMessage(toUserID, subject, message,
							null, Finatica.ViewProject.ProjectID,
							Finatica.ViewProject.SendMessageOK, Finatica.ViewProject.Error, uc);
    return false;
}
Finatica.ViewProject.SendMessageOK = function(result, userContext) {
    userContext[0].hide();
    userContext[1].hide();
    userContext[2].show();
}


Finatica.ViewProject.BlockUserWarning = function() {
    $find(Finatica.Common.NotificatorID).addMessage('error', 'Ваша учетная запись заблокированна. Вы не можете публиковать проекты.');
}

Finatica.ViewProject.BlockUserWarning2 = function() {
    $find(Finatica.Common.NotificatorID).addMessage('error', 'Ваша учетная запись заблокированна. Вы не можете откликаться на проекты.');
}
