﻿var defaultWidth = 660;
var defaultHeight = 560;


function InvokeAddPortfolioGeneric(Ticker, PortfolioId, CallBackSuccess, CallBackError, CallBackClose, CallType) {
    var result;

    $.fancybox({ 'width': defaultWidth,
        'height': defaultHeight,
        'autoScale': false,
        'transitionIn': 'none',
        'transitionOut': 'none',
        'type': 'iframe',
        'href': '/pages/ModalDialogs/AddPortfolio.aspx?Ticker=' + $.trim(Ticker) + '&PortfolioId=' + PortfolioId + '&CallType=' + CallType,
        'onClosed': function () {

            callbackresultString = $('body').attr('callbackresult');
            callbackresult = $.parseJSON(callbackresultString);

            if (callbackresult == null) {
                CallBackError.call(this, callbackresult);
            }
            else if (callbackresult.result == "success") {
                CallBackSuccess.call(this, callbackresult);
            }
            else if (CallBackError.result == "error") {
                CallBackError.call(this, callbackresult);
            }
            else if ((callbackresult.result == "closed") || (callbackresult.result == "cancel")) {
                CallBackClose.call(this, callbackresult);
            }
        }
    });
    
}

function InvokeAddPortfolio(Ticker, portfolioId, CallBackSuccess, CallBackError, CallBackClose) {
    var callType = 'portfolio';
    InvokeAddPortfolioGeneric(Ticker, portfolioId, CallBackSuccess, CallBackError, CallBackClose, callType);
}

function InvokeAddPortfolioCompanySnapShot(Ticker, portfolioId, CallBackSuccess, CallBackError, CallBackClose) {
    var callType = 'page';
    InvokeAddPortfolioGeneric(Ticker, portfolioId, CallBackSuccess, CallBackError, CallBackClose, callType);
}

function InvokeDeletePortfolio(PortfolioId, PortfolioName , CallBackSuccess, CallBackError, CallBackClose) {
    $.fancybox({ 'width': defaultWidth,
        'height': 250,
        'autoScale': false,
        'transitionIn': 'none',
        'transitionOut': 'none',
        'type': 'iframe',
        'href': '/pages/ModalDialogs/DeletePortfolio.aspx?PortfolioId=' + PortfolioId + '&PortfolioName=' + PortfolioName + '&CallBackSuccess=' + CallBackSuccess + '&CallBackError=' + CallBackError + '&CallBackClose=' + CallBackClose,
        'onClosed': function () {

            callbackresultString = $('body').attr('callbackresult');
            callbackresult = $.parseJSON(callbackresultString);

            if (callbackresult == null) {
                CallBackError.call(this, callbackresult);
            }
            else if (callbackresult.result == "success") {
                CallBackSuccess.call(this, callbackresult);
            }
            else if (CallBackError.result == "error") {
                CallBackError.call(this, callbackresult);
            }
            else if ((callbackresult.result == "closed") || (callbackresult.result == "cancel")) {
                CallBackClose.call(this, callbackresult);
            }  
            
        }
    });
}

function InvokeConvertFreestylePortfolio(PortfolioId, PortfolioName, CallBackSuccess, CallBackError, CallBackClose) {
    $.fancybox({ 'width': defaultWidth,
        'height': 370,
        'autoScale': false,
        'transitionIn': 'none',
        'transitionOut': 'none',
        'type': 'iframe',
        'href': '/pages/ModalDialogs/ConvertFreestylePorfolio.aspx?PortfolioId=' + PortfolioId + '&PortfolioName=' + PortfolioName + '&CallBackSuccess=' + CallBackSuccess + '&CallBackError=' + CallBackError + '&CallBackClose=' + CallBackClose,
        'onClosed': function () {
            callbackresultString = $('body').attr('callbackresult');
            callbackresult = $.parseJSON(callbackresultString);

            if (callbackresult == null) {
                CallBackError.call(this, callbackresult);
            }
            else if (callbackresult.result == "success") {
                CallBackSuccess.call(this, callbackresult);
            }
            else if (CallBackError.result == "error") {
                CallBackError.call(this, callbackresult);
            }
            else if ((callbackresult.result == "closed") || (callbackresult.result == "cancel")) {
                CallBackClose.call(this, callbackresult);
            }  
        }
    });
}

var WatchlistTicker;
function InvokeAddWatchlist(Ticker, userId) {
    UsersId = userId;
    WatchlistTicker = $.trim(Ticker);

    $.ajax({
        url: "/Ajax/WatchListService.svc/GetWatchList",
        data: { userId: userId },
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        success: function (data) {
            processWcfResult(data,
                   AddWatchListInstrument,
                    AddWatchListInstrumentError)
        },
        error: function (xml, textStatus, errorThrown) {
            alert("An error occured in get watchlist communication." + xml.responseText);
        }
    });
}

function AddWatchListInstrument(watchlistId) {
    $.ajax({
        url: "/Ajax/WatchListService.svc/AddItemForWatchList",
        data: { watchListId: watchlistId, ticker: WatchlistTicker },
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        success: function (data) {
             processWcfResult(data,
                   watchlistAddInstrumentTicker(WatchlistTicker),
                    AddWatchListInstrumentError)
        },
        error: function (xml, textStatus, errorThrown) {
            alert("An error occured in add watchlist item communication." + xml.responseText);
        }
    });
}

function AddWatchListInstrumentError() {

}

function watchlistAddInstrumentTicker(ticker) {
    $.fancybox({
        'width': 640,
        'height': 265,
        'autoScale': false,
        'transitionIn': 'none',
        'transitionOut': 'none',
        'type': 'iframe',
        'href': '/pages/watchlistpopup.aspx?Header=Add to Watch List&isAdd=true&Name=' + name + '&Ticker=' + ticker
    });

}

function InvokeInvestmentStylePopup() {
    $.fancybox({
        'width': defaultWidth,
        'height': defaultHeight,
        'autoScale': false,
        'transitionIn': 'none',
        'transitionOut': 'none',
        'type': 'iframe',
        'href': '/pages/ModalDialogs/ViewInvestmentStyles.aspx?Header=Investment Styles'
    });

}

function InvokeBuyPortfolio(Ticker, PortfolioId, CallBackSuccess, CallBackError, CallBackClose) {
    var result;
    $.fancybox({ 'width': defaultWidth,
        'height': defaultHeight,
        'autoScale': false,
        'transitionIn': 'none',
        'transitionOut': 'none',
        'type': 'iframe',
        'href': '/pages/ModalDialogs/BuySellPortfolio.aspx?Ticker=' + Ticker + '&Type=Buy' + '&PortfolioId=' + PortfolioId + '&CallBackSuccess=' + CallBackSuccess + '&CallBackError=' + CallBackError + '&CallBackClose=' + CallBackClose,
        'onClosed': function () {

            callbackresultString = $('body').attr('callbackresult');
            callbackresult = $.parseJSON(callbackresultString);

            if (callbackresult == null) {
                CallBackError.call(this, callbackresult);
            }
            else if (callbackresult.result == "success") {
                CallBackSuccess.call(this, callbackresult);
            }
            else if (CallBackError.result == "error") {
                CallBackError.call(this, callbackresult);
            }
            else if ((callbackresult.result == "closed") || (callbackresult.result == "cancel")) {
                CallBackClose.call(this, callbackresult);
            }
        }

    });
}

function InvokeSellPortfolio(Ticker, PortfolioId, CallBackSuccess, CallBackError, CallBackClose) {
    var result;
    $.fancybox({ 'width': defaultWidth,
                    'height' :defaultHeight,
                    'autoScale' : false,
                    'transitionIn' : 'none',
                    'transitionOut' : 'none',
                    'type': 'iframe',
                    'href': '/pages/ModalDialogs/BuySellPortfolio.aspx?Ticker=' + Ticker + '&Type=Sell' + '&PortfolioId=' + PortfolioId + '&CallBackSuccess=' + CallBackSuccess + '&CallBackError=' + CallBackError + '&CallBackClose=' + CallBackClose,
                    'onClosed': function () {


                        callbackresultString = $('body').attr('callbackresult');
                        callbackresult = $.parseJSON(callbackresultString);

                        if (callbackresult == null) {
                            CallBackError.call(this, callbackresult);
                        }
                        else if (callbackresult.result == "success") {
                            CallBackSuccess.call(this, callbackresult);
                        }
                        else if (CallBackError.result == "error") {
                            CallBackError.call(this, callbackresult);
                        }
                        else if ((callbackresult.result == "closed") || (callbackresult.result == "cancel")) {
                            CallBackClose.call(this, callbackresult);
                        }

                    }
                });            
}

function InvokeCreateNewPortfolio(CallBackSuccess, CallBackError, CallBackClose) {
    $.fancybox({ 'width': defaultWidth,
        'height': 360,
        'autoScale': false,
        'transitionIn': 'none',
        'transitionOut': 'none',
        'type': 'iframe',
        'href': '/pages/ModalDialogs/CreatePortfolio.aspx',
        'onClosed': function () {

            callbackresultString = $('body').attr('callbackresult');
            callbackresult = $.parseJSON(callbackresultString);

            if (callbackresult == null) {
                CallBackError.call(this, callbackresult);
            }
            else if (callbackresult.result == "success") {
                CallBackSuccess.call(this, callbackresult);
            }
            else if (CallBackError.result=="error")
            {
                CallBackError.call(this, callbackresult);
            }
            else if ((callbackresult.result == "closed") || (callbackresult.result == "cancel"))
            {
                CallBackClose.call(this,callbackresult);
            }


        }
    });
}


function InvokeSocialControl(Ticker, TransactionId,Type , CallBackSuccess, CallBackError, CallBackClose) {
    var PortfolioId = $('body').attr('portfolioId');

    if (PortfolioId != undefined) {

        $.fancybox({ 'width': defaultWidth,
            'height': 457,
            'autoScale': false,
            'transitionIn': 'none',
            'transitionOut': 'none',
            'type': 'iframe',
            'href': '/pages/ModalDialogs/SocialShare.aspx?Ticker=' + Ticker + '&TransactionId=' + TransactionId + '&PortfolioId=' + PortfolioId + '&Type=' + Type,
            'onClosed': function () {


                callbackresultString = $('body').attr('callbackresult');
                callbackresult = $.parseJSON(callbackresultString);

                if (callbackresult == null) {
                    CallBackError.call(this, callbackresult);
                }
                else if (callbackresult.result == "success") {
                    CallBackSuccess.call(this, callbackresult);
                }
                else if (CallBackError.result == "error") {
                    CallBackError.call(this, callbackresult);
                }
                else if ((callbackresult.result == "closed") || (callbackresult.result == "cancel")) {
                    CallBackClose.call(this, callbackresult);
                }
            }
        });
    }
}
