﻿var asmxWeddingMessage = "/API/Member/JSWSMemberMessages.asmx/";
var memberId;
var clientId;
var msgId;
var $HitchedAjaxOptions = {
    type: "POST",
    contentType: "application/json; charset=utf-8",
    dataType: "text",
    dataFilter: function (data, type) {
        return $.parseJSON(data);
    },
    error: function (result) {
        if (this.console && typeof console.log != "undefined")
            console.log("Error in server:" + result.status + ' ' + result.statusText);
    }
};

GetToolbarStatus();

$(document).ready(function () {
    if (($.browser.msie == true) && (parseInt($.browser.version, 10) <= 7)) {
        $("#toolbarWrapper").hide();
        $("#toolbarbut").show();
    }
    else {


    clientId = $(".lblMembertoolbarId").attr("Id").replace("lblMembertoolbarId", "");
    memberId = $("#" + clientId + "hddnToolBarMemberId").val();

    //hide toolbar and make visible the 'show' button
    $("span.downarr a").click(function () {
        HideToolbar();
        $("#toolbarWrapper").slideToggle("fast");
        $("#toolbarbut").fadeIn("slow");
        $("div#editcountdownpopup").fadeOut("fast");
        $("ul#memberToolsLeft li div#budgetpopup").fadeOut('fast');
        $("ul#memberToolsLeft li div#todopopup").fadeOut('fast');
        $("ul#memberToolsLeft li div#competitionpopup").fadeOut('fast');
        return false;
    });

    //show toolbar and hide the 'show' button
    $("span.showbar a").click(function () {
        ShowToolbar();
        $("#toolbarWrapper").slideToggle("fast");
        $("#toolbarbut").fadeOut('fast');
        return false;
    });


    //show quick menu on click
    $("span.menu_title a").click(function () {
        if ($(".quickmenu").is(':hidden')) { //if quick menu isn't visible
            $(".quickmenu").fadeIn("fast"); //show menu on click
        }
        else if ($(".quickmenu").is(':visible')) { //if quick menu is visible
            $(".quickmenu").fadeOut("fast"); //hide menu on click
        }
        return false;
    });


    $("span#dayscount").hover(function () {
        $("div#editcountdownpopup").fadeIn("fast");
    }, function () {
        //           setTimeout($("div#editcountdownpopup").fadeOut("fast"), 1000);

    });

    //Displays wedding countdown popup 
    $("div#editcountdownpopup").hover(function () {
        $(this).fadeIn("fast");
    }, function () {
        $(this).fadeOut("fast");
    });


    //hide menu on casual click on the page
        $(document).click(function () {
        $(".quickmenu").fadeOut("fast");
        $("div#editcountdownpopup").fadeOut('fast');
    });

    $('.quickmenu').click(function (event) {
        event.stopPropagation(); //use .stopPropagation() method to avoid the closing of quick menu panel clicking on its elements
    });

    // displays popup on click
    $("ul#memberToolsLeft li a#budgetpopuplink").click(function () {
        if ($("ul#memberToolsLeft li div#budgetpopup").is(":visible")) {
            $("ul#memberToolsLeft li div#budgetpopup").fadeOut('fast');
        } else {
            $("ul#memberToolsLeft li div#budgetpopup").fadeIn('fast');
            $("ul#memberToolsLeft li div#todopopup").fadeOut('fast');
            $("ul#memberToolsLeft li div#competitionpopup").fadeOut('fast');
        };
    });


    $("ul#memberToolsLeft li a#anctodopopup").click(function () {
        if ($("ul#memberToolsLeft li div#todopopup").is(":visible")) {
            $("ul#memberToolsLeft li div#todopopup").fadeOut('fast');
        } else {
            $("ul#memberToolsLeft li div#budgetpopup").fadeOut('fast');
            $("ul#memberToolsLeft li div#competitionpopup").fadeOut('fast');
            $("ul#memberToolsLeft li div#todopopup").fadeIn('fast');
        };
    });

    $("ul#memberToolsLeft li a#anccompetitionpopup").click(function () {
        if ($("ul#memberToolsLeft li div#competitionpopup").is(":visible")) {
            $("ul#memberToolsLeft li div#competitionpopup").fadeOut('fast');
        } else {
            $("ul#memberToolsLeft li div#budgetpopup").fadeOut('fast');
            $("ul#memberToolsLeft li div#todopopup").fadeOut('fast');
            $("ul#memberToolsLeft li div#competitionpopup").fadeIn('fast');
        };
    });

    // Budget popup close functionality
    $(".budget-wrapper a#ancBudgetClose").click(function () {
        $("ul#memberToolsLeft li div#budgetpopup").fadeOut('fast');
    });

    $(".todo-wrapper a#ancTodoclose").click(function () {
        $("ul#memberToolsLeft li div#todopopup").fadeOut('fast');
    });

    $(".competition-wrapper a#anccompetitionclose").click(function () {
        $("ul#memberToolsLeft li div#competitionpopup").fadeOut('fast');
    });

    GetNextMessage();
    GetBudgetSummary();
    GetTodoListSummary();
    GetCompetitionSummary();
    CheckValidWeddingDate();
    }
});


//***************************** Competitions summary section ********************/

function GetCompetitionSummary() {
    if (parseInt(memberId) == 0) {
        SetNoCompetitionEntered();
        SetNoNewCompetitions();
        $(".competitionplannerlink a").attr("href", "/register/register.aspx");
        $("#managecompetitionlist a").attr("href", "/register/register.aspx");
    }
    else {
        var q = $HitchedAjaxOptions;
        q.url = asmxWeddingMessage + "GetCompetitionSummaryCount";
        q.data = "{MemberId:" + memberId + "}";
        q.success = CallbackCompetitionSummary;
        $.ajax(q);
    }
}

function CallbackCompetitionSummary(result) {
    if (result.d !== null) {
        competitionObj = result.d;
        if ((parseInt(competitionObj.HowManyEntered) == parseInt(competitionObj.HowManyTotal)) && (parseInt(competitionObj.HowManyTotal) !== 0)) {
            GetEnteredCompetitions();
            SetNoNewCompetitions();
        }
        else {
            if (parseInt(competitionObj.HowManyNew) > 0) {
                GetNewCompetitions();
                SetNewCompetitions(competitionObj.HowManyNew);
                if (parseInt(competitionObj.HowManyEntered) > 0) {
                    GetEnteredCompetitions();
                }
            }
            else {
                if ((parseInt(competitionObj.HowManyEntered) == 0) && (parseInt(competitionObj.HowManyTotal) == 0)) {
                    SetNoCompetitionEntered();
                    SetNoNewCompetitions();
                }
            }
        }
    }
    else {
        SetNoCompetitionEntered();
        SetNoNewCompetitions();
    }
}

function GetEnteredCompetitions() {
    var q = $HitchedAjaxOptions;
    q.url = asmxWeddingMessage + "GetCompetitionList";
    q.data = "{MemberId:" + memberId + ",IsEntered:true}";
    q.success = CallbackEnteredCompetitions;
    $.ajax(q);
}

function CallbackEnteredCompetitions(result) {
    $('.competitionstatus span#competitionresult').html('Competitions you have already entered:');
    var EnteredCompetitionlist = new Array();
    if (result.d !== null) {
        EnteredCompetitionlist = result.d;
        $("#tmplEnteredlist").tmpl(EnteredCompetitionlist)
                    .appendTo("#divEnteredlist");
    }
}

function GetNewCompetitions() {
    var q = $HitchedAjaxOptions;
    q.url = asmxWeddingMessage + "GetCompetitionList";
    q.data = "{MemberId:" + memberId + ",IsEntered:false}";
    q.success = CallbackNewCompetitions;
    $.ajax(q);
}

function CallbackNewCompetitions(result) {
    var NewCompetitionlist = new Array();
    if (result.d !== null) {
        NewCompetitionlist = result.d;
        $("#tmplNewCompetitionlist").tmpl(NewCompetitionlist)
                    .appendTo("#divNewCompetitionlist");
    }
}

function SetNoNewCompetitions() {
    $('.competitionsummary span#competitionsummaryresult').html('There are no new competitions to enter');
}

function SetNewCompetitions(newcompetitioncount) {
    $('.competitionsummary span#competitionsummaryresult').html('New competitions to enter:');
    $('.addcompetitionsummary').hide();
    $('.newcompetitioncount').html(newcompetitioncount);
    $("#manageCompetitionText").html("Enter now");
}

function SetNoCompetitionEntered() {
    $('.competitionstatus span#competitionresult').html('You have not entered any competitions');
}

//***************************** End of competition summary **********************/


//******************************To do listing section***************************//
function GetTodoListSummary() {
    if (parseInt(memberId) == 0) {
        Setnotodosummary();
        $(".todoplannerlink a").attr("href", "/register/register.aspx");
        $("#managemytodolist a").attr("href", "/register/register.aspx");
    }
    else {
        var q = $HitchedAjaxOptions;
        q.url = asmxWeddingMessage + "GetToDoSummary";
        q.data = "{memberId:" + memberId + "}";
        q.success = CallbackTodoSummary;
        $.ajax(q);
    }
}

function CallbackTodoSummary(result) {
    var todoSummaryObj;
    if (result.d !== null) {
        todoSummaryObj = result.d;
        if (parseInt(todoSummaryObj.HowManyTasks, 10) == 0) {
            Setnotodosummary();
        }
        else {
            if (parseInt(todoSummaryObj.HowManyTasks, 10) == parseInt(todoSummaryObj.TasksComplete, 10)) {
                SetCompleteTodoStatus(todoSummaryObj);
            }
            else {
                if ((parseInt(todoSummaryObj.TasksOverdue, 10) > 0)) {
                    SetOverDue(todoSummaryObj);
                }
                else {
                    SetOutstandingStatus(todoSummaryObj);
                }
            }
        }
    }
    else {
        Setnotodosummary();
    }
}

function SetCompleteTodoStatus(todoSummaryObj) {
    $('.todosummary span#completecount').html(todoSummaryObj.TasksComplete);
    $('.todosummary span#outstandingcount').html(todoSummaryObj.TasksOutstanding);
    $(".addtodosummary").hide();
}

function SetOutstandingStatus(todoSummaryObj) {
    $('.imgTodo').attr({ src: '/images/icons/toolbar/todo-tick.png', alt:'Manage your to-do list',title:'Manage your to-do list' });
    $('.outstandingcount').html(todoSummaryObj.TasksOutstanding);
    $('.todostatus img#imgtodostatus').attr({ src: '/images/icons/toolbar/todo.png', alt:'Manage your to-do list', title:'Manage your to-do list' });
    $('.todosummary span#completecount').html(todoSummaryObj.TasksComplete);
    $('.todosummary span#outstandingcount').html(todoSummaryObj.TasksOutstanding);
    $('.todostatus span#todoresult').html('You have ' + todoSummaryObj.TasksOutstanding + ' Outstanding tasks');
    $(".addtodosummary").hide();
    GetOutStandingListing();
}

function Setnotodosummary() {
    $(".todostatus span#todoresult").html("You haven't created a to do list yet");
    $(".todosummary").hide();
    $('.imgTodo').attr({ src: '/images/icons/toolbar/todo-tick.png',  alt:'Manage your to-do list', title:'Manage your to-do list' });
    $(".todostatus img#imgtodostatus").attr({ src: '/images/icons/toolbar/nobudget.png',  alt:'Manage your to-do list', title:'Manage your to-do list' });
    $("#manageTodoText").html("Create my To-Do list");
}

function SetOverDue(todoSummaryObj) {
    $('.imgTodo').attr({ src: '/images/icons/toolbar/todo_overdue.png',  alt:'Manage your to-do list', title:'Manage your to-do list' });
    $('.todostatus img#imgtodostatus').attr({ src: '/images/icons/toolbar/exclamation.png',  alt:'Manage your to-do list', title:'Manage your to-do list' });
    $('.todosummary span#completecount').html(todoSummaryObj.TasksComplete);
    $('.todosummary span#outstandingcount').html(todoSummaryObj.TasksOutstanding);
    $('.todostatus span#todoresult').html('You have ');
    $('.todostatus span#todocount').html(todoSummaryObj.TasksOverdue + ' overdue tasks!');
    $(".addtodosummary").hide();
    GetOverDueListing();
}

function GetOutStandingListing() {
    var q = $HitchedAjaxOptions;
    q.url = asmxWeddingMessage + "GETToDoListByStatus";
    q.data = "{status:'NOTSTARTED'," + "wpid:" + memberId + "}";
    q.success = CallbackGetOutStandinglisting;
    $.ajax(q);
}

function CallbackGetOutStandinglisting(result) {
    var Overduelist = new Array();
    if (result.d !== null) {
        Overduelist = result.d;
        $("#templateTodolist").tmpl(Overduelist)
                    .appendTo("#divTodolisting");
    }
}

function GetOverDueListing() {
    var q = $HitchedAjaxOptions;
    q.url = asmxWeddingMessage + "GETToDoListByStatus";
    q.data = "{status:'OVERDUE'," + "wpid:" + memberId + "}";
    q.success = CallbackGetOverDuelisting;
    $.ajax(q);
}

function CallbackGetOverDuelisting(result) {
    var Overduelist = new Array();
    if (result.d !== null) {
        Overduelist = result.d;
        $("#templateTodolist").tmpl(Overduelist)
                    .appendTo("#divTodolisting");
    }
}

function FormatJSONDate(jsonDate) {
    if (jsonDate != null) {
        var dd = jsonDate.substr(0, 2);
        var mm = jsonDate.substr(3, 2);
        var yy = jsonDate.substr(8, 2);
        return dd + "-" + mm + "-" + yy;
    }
}
//***********************End of to do summary**********************//

//*******************Budget section****************************//
// function to get budget summary
function GetBudgetSummary() {
    if (parseInt(memberId) == 0) {
        $("#setcountdown").show();
        noBudgetPlan();
        $(".budgetplannerlink a").attr("href", "/register/register.aspx");
        $("#managebudgetlink a").attr("href", "/register/register.aspx");
    }
    else {
        var q = $HitchedAjaxOptions;
        q.url = asmxWeddingMessage + "GetBudgetSummary";
        q.data = "{memberid:" + memberId + "}";
        q.success = CallbackbudgetSummary;
        $.ajax(q);
    }
}

//function to set status on toolbar
function CallbackbudgetSummary(result) {
    var budgetObj = result.d;
    if (result.d !== null) {
        $("span#mybuget").html(budgetObj.TotalBudget);
        $("span#totalcost").html(budgetObj.TotalCost);

        if (parseInt(budgetObj.HowManyItems, 10) == 0) {
            noBudgetPlan();
        }
        else {
            if (parseInt(budgetObj.TotalBudget, 10) > parseInt(budgetObj.TotalCost, 10)) {
                Onbudget();
            }
            else {
                if ((parseInt(budgetObj.TotalBudget, 10) == 0) && (parseInt(budgetObj.TotalCost, 10) == 0)) {
                    Onbudget();
                }
                else {
                    OverBudget(budgetObj);
                }
            }
        }
    }
    else {
        noBudgetPlan();
    }
}

function noBudgetPlan() {
    $(".budgetstatus span#result").html("You haven't created a budget plan");
    $(".budgetsummary").hide();
    $('.imgBudget').attr({ src: '/images/icons/toolbar/budget.png' });
    $(".budgetstatus img#imgbudgetStatus").attr({ src: '/images/icons/toolbar/nobudget.png', alt:'Manage your budget plan', title:'Manage your budget plan' });
    $("#managebudgetText").html("Create my budget plan");
}
//m
function Onbudget() {
    $(".addbudgetsummary").hide();
}

function OverBudget(budgetObj) {
    var pageId = $('.lblMembertoolbarId1').attr('id').replace("lblMembertoolbarId1", "");
    $(".budgetstatus span#result").html("You are over budget by ");
    $(".addbudgetsummary").hide();
    var amount;
    amount = parseInt(budgetObj.TotalCost, 10) - parseInt(budgetObj.TotalBudget, 10);
    $(".budgetstatus span#amount").html($("#" + pageId + "hddnCurrencySymbol").val() + amount);
    $('.imgBudget').attr({ src: '/images/icons/toolbar/overbudget.png', alt:'Manage your budget', title:'Manage your budget' });
    $(".budgetstatus img#imgbudgetStatus").attr({ src: '/images/icons/toolbar/exclamation.png', alt:'Manage your budget plan', title:'Manage your budget plan' });
}

//*************************End of budget section*********************************//

function CheckValidWeddingDate() {
    var q = $HitchedAjaxOptions;
    q.url = asmxWeddingMessage + "IsInValidWeddingDate";
    if (parseInt(memberId) == 0) {
        $("#setcountdown").show();
    }
    else {
        q.data = "{memberId:" + memberId + "}";
        q.success = CallbackValidWeddingDate;
        $.ajax(q);
    }
}

function CallbackValidWeddingDate(result) {
    if (result.d == true) {
        $("#setcountdown").show();
    }
    else {
        $("#dayscount").show();
        $("#setcountdown").hide();
        GetWeddingdays();
    }
}

function GetWeddingdays() {
    var q = $HitchedAjaxOptions;
    q.url = asmxWeddingMessage + "GetWeddingDayCount";
    q.data = "{memberId:" + memberId + "}";
    q.success = CallbackGetWeddingdays;
    $.ajax(q);
}

function CallbackGetWeddingdays(result) {
    if (result.d !== null) {
        if (parseInt(result.d, 10) > 0) {
            $("#dayscount").html(result.d + " days to go!");
            $("#updateWeddingdate").hide();
        }
        else {
            if (parseInt(result.d, 10) == 0) {
                $("#dayscount").html("Congratulations !");
            }
            else {
                $("#dayscount").html("Married for " + Math.abs(result.d) + " days");
            }
            $("#updateWeddingdate").hide();
        }
    }
}

function HideToolbar() {
    var q = $HitchedAjaxOptions;
    q.url = asmxWeddingMessage + "HideToolbar";
    q.data = "{}";
    q.success = callbackhidetoolbar;
    $.ajax(q);
}

function callbackhidetoolbar(result) {
    return false;
}

function ShowToolbar() {
    var q = $HitchedAjaxOptions;
    q.url = asmxWeddingMessage + "ShowToolbar";
    q.data = "{}";
    q.success = callbackshowtoolbar;
    $.ajax(q);
}

function callbackshowtoolbar(result) {
    return false;
}

function GetToolbarStatus() {
    var q = $HitchedAjaxOptions;
    q.url = asmxWeddingMessage + "GetToolbarStatus";
    q.success = CallbacksetToolbarStatus;
    $.ajax(q);
}

function CallbacksetToolbarStatus(result) {

    if (result.d == true) {
        $("#toolbarWrapper").hide();
        $("#toolbarbut").show();
    }
}

function HideToolBarMessage() {
    HideMessage();
    return false;
}

function HideMessage() {
    var q = $HitchedAjaxOptions;
    q.url = asmxWeddingMessage + "HideMessage";
    msgId = $("#" + clientId + "hddnMsgId").val();
    q.data = "{MemberId:" + memberId + ",MsgId:" + msgId + "}";
    q.success = CallbackHideMessage;
    $.ajax(q);
}

function CallbackHideMessage(result) {
    GetNextMessage();
}

function GetNextMessage() {
    var q = $HitchedAjaxOptions;
    q.url = asmxWeddingMessage + "GetNextMessage";
    if (memberId == 0) {
        GetNotLoggedInMessage();
    }
    else {
        q.data = "{memberId:" + memberId + "}";
        q.success = CallbackDisplayMessage;
        $.ajax(q);
    }
}

function GetNotLoggedInMessage() {
    var q = $HitchedAjaxOptions;
    q.url = asmxWeddingMessage + "GetNotLoggedInMessage";
    q.success = CallbackGetNotLoggedInMessage;
    $.ajax(q);
}

function CallbackGetNotLoggedInMessage(result) {
    if (result !== null) {
        var messageItem = new Array();
        messageItem = result.d;
        if(messageItem != null)
            $("#" + clientId + "messageText").html(messageItem.Message);
    }
}

function CallbackDisplayMessage(result) {
    var clientId = $(".lblMembertoolbarId").attr("Id").replace("lblMembertoolbarId", "");
    if (result.d !== null) {
        var messageObj = result.d;
        $("#" + clientId + "hddnMsgId").val(messageObj.MsgId);

        if (messageObj.Allowhide == true) {
            $("#ancHide").show();
        }
        else {
            $("#ancHide").hide();
        }
        $("#" + clientId + "messageText").html(messageObj.Message);
    }
    else {
        $("#ancHide").hide();
        $("#" + clientId + "messageText").html("");
    }
}

function UpdateWeddingDate(day, month, year) {
    if (day == "??" || month == "??" || year == "????") {
        alert("Please select valid date");
    }
    else {
        var weddingdate = year + month + day + "000000";
        SaveWeddingDate(weddingdate);
    }
}

function SaveWeddingDate(weddingdate) {
    var q = $HitchedAjaxOptions;
    q.url = asmxWeddingMessage + "UpdateWeddingDate";
    q.data = "{MemberId:" + memberId + ",weddingdate:'" + weddingdate + "'}";
    $.ajax(q);
    q.success = SaveWeddingDateSuccess();
}

function SaveWeddingDateSuccess() {
    setTimeout('HideMessage()', 5000);
    $('#messageframe').contents().find("#imgsmallloader").css("display", "none");
    $('#messageframe').contents().find('#spUpdateStatus').html("Updated");
    $('#messageframe').contents().find('#spUpdateStatus').attr("class", "spupdatestatus");
    $('#messageframe').contents().find('#spUpdateStatus').css("display", "block");
    CheckValidWeddingDate();
}

function SaveWeddingLocation(weddingLocation) {
    var q = $HitchedAjaxOptions;
    q.url = asmxWeddingMessage + "UpdateWeddingLocation";
    q.data = "{MemberId:" + memberId + ",weddinglocation:'" + weddingLocation + "'}";
    $.ajax(q);
    q.success = SetWeddingLocationSuccess();
}

function SetWeddingLocationSuccess() {
    setTimeout('HideMessage()', 5000);
    $('#messageframe').contents().find("#imgsmallloader").css("display", "none");
    $('#messageframe').contents().find('#spUpdateStatus').html("Updated");
    $('#messageframe').contents().find('#spUpdateStatus').attr("class", "spupdatestatus");
    $('#messageframe').contents().find('#spUpdateStatus').css("display", "block");
}

function SaveEmailAddress(emailaddress) {
    var q = $HitchedAjaxOptions;
    q.url = asmxWeddingMessage + "UpdateMemberEmailId";
    q.data = "{MemberId:" + memberId + ",emailaddress:'" + emailaddress + "'}";
    $.ajax(q);
    q.succss = SetEmailSuccess();
}

function SetEmailSuccess() {
    setTimeout('HideMessage()', 5000);
    $('#messageframe').contents().find("#imgsmallloader").css("display", "none");
    $('#messageframe').contents().find('#spUpdateStatus').html("Updated");
    $('#messageframe').contents().find('#spUpdateStatus').attr("class", "spupdatestatus");
    $('#messageframe').contents().find('#spUpdateStatus').css("display", "block");
}

function updatenewsletter(selected) {
    var q = $HitchedAjaxOptions;
    q.url = asmxWeddingMessage + "UpdateNewsletter";
    q.data = "{MemberId:" + memberId + ",Isnewsletters:" + selected + "}";
    $.ajax(q);
    q.success = SetNewsletterSuccess();
}

function SetNewsletterSuccess() {
    setTimeout('HideMessage()', 5000);
    $('#messageframe').contents().find("#imgsmallloader").css("display", "none");
    $('#messageframe').contents().find('#spUpdateStatus').html("Updated");
    $('#messageframe').contents().find('#spUpdateStatus').attr("class", "spupdatestatus");
    $('#messageframe').contents().find('#spUpdateStatus').css("display", "block");
}

function updatePlannerPreferences(ceremonycount, receptioncount) {
    var q = $HitchedAjaxOptions;
    q.url = asmxWeddingMessage + "UpdateGuestCount";
    q.data = "{MemberId:" + memberId + ",ceremonyCount:" + ceremonycount + ",receptioncount:" + receptioncount + "}";
    $.ajax(q);
    q.succss = updatePlannerPreferencesSuccess();
}

function updatePlannerPreferencesSuccess() {
    setTimeout('HideMessage()', 5000);
    $('#messageframe').contents().find("#imgsmallloader").css("display", "none");
    $('#messageframe').contents().find('#spUpdateStatus').html("Updated");
    $('#messageframe').contents().find('#spUpdateStatus').attr("class", "spupdatestatus");
    $('#messageframe').contents().find('#spUpdateStatus').css("display", "block");
}

