﻿
//todo:  Comment out the alert before going to production
function OnFailed(result) {
    // alert(result.status + ' ' + result.statusText + '/r/n' + result.responseText);
}

var gCurrentHeartTab;
var gCurrentSaveTab;
var gCurrentTab;
var defaultReviewText = 'Tell everybody what you love about this.';
var gUpdateHeartsOrSaves

/********************************************/
/*           AJAX SUPPORT METHODS           */
/********************************************/
function IsEmailInUseAjax(emailAddress, successFunctionCallBack) {

    var params = new Object();
    params.emailAddress = emailAddress;

    $.ajax({
        type: "POST",
        url: "/Linked/WebService/ILNYUsers.asmx/IsEmailAddressInUse",
        data: $.toJSON(params),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: successFunctionCallBack,
        error: OnFailed
    });

    return false;
}

function SetUserHeart(entityType, entityKey, listingType, successFunctionCallBack) {

    var params = new Object();
    params.entityType = entityType;
    params.entityKey = entityKey;
    params.listingType = listingType;

    $.ajax({
        type: "POST",
        url: "/Linked/WebService/ILNYUsers.asmx/SetUserHeart",
        data: $.toJSON(params),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: successFunctionCallBack,
        error: OnFailed
    });

    return false;
}

function SetUserHeartReview(entityType, entityKey, listingType, reviewText, actionWrapperGroupId, successFunctionCallBack) {

    var params = new Object();
    params.entityType = entityType;
    params.entityKey = entityKey;
    params.listingType = listingType;
    params.reviewText = reviewText;
    params.stateObject = actionWrapperGroupId;  // Will be passed back on callback so we know what changed.

    $.ajax({
        type: "POST",
        url: "/Linked/WebService/ILNYUsers.asmx/SetUserHeartReview",
        data: $.toJSON(params),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: successFunctionCallBack,
        error: OnFailed
    });

    return false;
}

function SetUserSavedItem(entityType, entityKey, listingType, wrapperGroupId, successFunctionCallBack) {

    var params = new Object();
    params.entityType = entityType;
    params.entityKey = entityKey;
    params.listingType = listingType;
    params.stateObject = wrapperGroupId;  // Will be passed back on callback so we know what changed.

    $.ajax({
        type: "POST",
        url: "/Linked/WebService/ILNYUsers.asmx/SetUserSavedItem",
        data: $.toJSON(params),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: successFunctionCallBack,
        error: OnFailed
    });

    return false;
}

function SetUserTripItem(entityType, entityKey, listingType, wrapperGroupId, successFunctionCallBack) {       
    var params = new Object();
    params.entityType = entityType;
    params.entityKey = entityKey;
    params.listingType = listingType;
    params.stateObject = wrapperGroupId;  // Will be passed back on callback so we know what changed.

    $.ajax({
        type: "POST",
        url: "/Linked/WebService/ILNYUsers.asmx/SetUserTripItem",
        data: $.toJSON(params),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: successFunctionCallBack,
        error: OnFailed
    });

    return false;
}



function DeleteUserHeart(keyList, itemType, pagerParentDivId, successFunctionCallBack) {

    var params = new Object();
    params.keyList = keyList;
    params.itemType = itemType;
    params.stateObject = pagerParentDivId;

    $.ajax({
        type: "POST",
        url: "/Linked/WebService/ILNYUsers.asmx/DeleteUserHeart",
        data: $.toJSON(params),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: successFunctionCallBack,
        error: OnFailed
    });

    return false;
}

function DeleteUserSavedItem(keyList, itemType, pagerParentDivId, successFunctionCallBack) {

    var params = new Object();
    params.keyList = keyList;
    params.itemType = itemType;
    params.stateObject = pagerParentDivId;

    $.ajax({
        type: "POST",
        url: "/Linked/WebService/ILNYUsers.asmx/DeleteUserSavedItem",
        data: $.toJSON(params),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: successFunctionCallBack,
        error: OnFailed
    });

    return false;
}

function GetUserHeartsByPage(entityGroupType, resultsPerPage, pageNumber, totalResultsCount, pagerParentDivId, successFunctionCallBack) {

    var params = new Object();
    params.entityGroupType = entityGroupType;
    params.resultsPerPage = resultsPerPage;
    params.pageNumber = pageNumber;
    params.totalResultsCount = totalResultsCount;
    params.stateObject = pagerParentDivId;

    $.ajax({
        type: "POST",
        url: "/Linked/WebService/ILNYUsers.asmx/GetUserHeartsByPage",
        data: $.toJSON(params),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: successFunctionCallBack,
        error: OnFailed
    });

    return false;
}

function GetUserSavesByPage(entityGroupType, resultsPerPage, pageNumber, totalResultsCount, pagerParentDivId, successFunctionCallBack) {

    var params = new Object();
    params.entityGroupType = entityGroupType;
    params.resultsPerPage = resultsPerPage;
    params.pageNumber = pageNumber;
    params.totalResultsCount = totalResultsCount;
    params.stateObject = pagerParentDivId;

    $.ajax({
        type: "POST",
        url: "/Linked/WebService/ILNYUsers.asmx/GetUserSavesByPage",
        data: $.toJSON(params),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: successFunctionCallBack,
        error: OnFailed
    });

    return false;
}

function HandleHeartReturnMessage(returnObj) {

    var returnValue = returnObj.d.Value;
    var returnMessage = returnObj.d.Message;
    var returnIsError = returnObj.d.IsError;

    if (returnMessage == RESPONSE_MUST_REGISTER && returnValue == RESPONSE_SUCCESS_W_MESSAGE) {
        ShowHeartOverlay(anonymousHeartMsgPage);
    }
}

/********************************************/
/*           ACTION ICONS SUPPORT           */
/********************************************/

function OnSubmitLoveItSayItActionWrapper(entityId, entityType, listingType, wrapperGroupId, heartCallbackFunction, objDomObject) {

    var textArea = $('#' + wrapperGroupId + ' ul.actionIcons li.heartIcon ul li.formLoveItSayIt #loveItSayitMsg');
    var checkBox = $('#' + wrapperGroupId + ' ul.actionIcons li.heartIcon ul li.formLoveItSayIt .checkbox');
    var checkBoxLabel = $('#' + wrapperGroupId + ' ul.actionIcons li.heartIcon ul li.formLoveItSayIt label');
    var reviewText = Trim(textArea.val());
    var emptyText = $('#' + wrapperGroupId + ' ul.actionIcons li.heartIcon ul li.formLoveItSayIt .emptyMessage');
    var emptyBox = $('#' + wrapperGroupId + ' ul.actionIcons li.heartIcon ul li.formLoveItSayIt .emptyCheckbox');
    var isNotChecked = (!(checkBox.attr('checked')));
    var isChecked = (checkBox.attr('checked'));

    if (reviewText ==defaultReviewText)
        reviewText = '';

    if (isNotChecked) {
        emptyBox.css('display', 'block');
        checkBoxLabel.addClass('checkboxError');
        checkBox.blur(function() {
            if ($(this).attr('checked')) {
                emptyBox.css('display', 'none');
                checkBoxLabel.removeClass('checkboxError');
            }
        });
        return false;
    } else {
        emptyBox.css('display', 'none');
        checkBoxLabel.removeClass('checkboxError');
        checkBox.focus(function() {
            if ($(this).attr('checked')) {
                emptyBox.css('display', 'none');
            }
        });
        SetUserHeartReview(entityType, entityId, listingType, reviewText, wrapperGroupId, function(result) { eval(heartCallbackFunction)(result) });
   }
}
function OnSubmitSavedItemActionWrapper(entityId, entityType, listingType, wrapperGroupId, savedItemCallbackFunction) {
    SetUserSavedItem(entityType, entityId, listingType, wrapperGroupId, function(result) { eval(savedItemCallbackFunction)(result) });
}


function OnSubmitPlanItemActionWrapper(entityId, entityType, listingType, wrapperGroupId, tripItemCallbackFunction) {
    SetUserTripItem(entityType, entityId, listingType, wrapperGroupId, function(result) { eval(tripItemCallbackFunction)(result) });
}


function defaultHeartCallback(result) {

    var returnValue = result.d.Value;
    var returnMessage = result.d.Message;
    var returnIsError = result.d.IsError;
    var returnStateValue = result.d.StateValue;  //pagerId was passed in as state value on AJAX call

    var actionWrapper = $('li.#' + returnStateValue);          // Get ActionIcon Wrapper
    var actionHeartItem = actionWrapper.find("li.heartIcon");   // Get Heart Icon
    var heartPanel = actionHeartItem.find("li.heartIcon ul li.formLoveItSayIt"); // Get heart Review Panel

    heartPanel.empty();  // Kill all actions

    UpdateHeartCount(returnValue);
    if (returnMessage == RESPONSE_MUST_REGISTER) {
        $('#' + returnStateValue + ' ul.actionIcons li.heartIcon').addClass('disabled');
        $('#' + returnStateValue + ' ul.actionIcons li.heartIcon.disabled a.heartRegister').css('display', 'block').fadeOut(5000);
        $('#' + returnStateValue + ' ul.actionIcons li.heartIcon.disabled a.heartRegister span').css('display', 'block');
    } else {
        $('#' + returnStateValue + ' ul.actionIcons li.heartIcon a.heartSuccess').css('display', 'block').fadeOut(4000);
        $('#' + returnStateValue + ' ul.actionIcons li.heartIcon a:first').addClass('hearted');
        $('#' + returnStateValue + ' ul.actionIcons li.heartIcon ul li.formLoveItSayIt #loveItSayitMsg').val(defaultReviewText);
    }

    $('li.heartIcon.disabled a').hover(function() {
       $(this).siblings('a.heartRegister').css('display', 'block');
    }, function() {
      $('a.heartRegister').css('display', 'none').hide();
    });
}

function defaultSavedItemCallback(result) {

    var returnValue = result.d.Value;
    var returnMessage = result.d.Message;
    var returnIsError = result.d.IsError;
    var returnStateValue = result.d.StateValue;  //pagerId was passed in as state value on AJAX call

    UpdateSaveCount(returnValue);
   
    $('#' + returnStateValue + ' ul.actionIcons li.saveIcon a span.saveDefault').hide();
    $('#' + returnStateValue + ' ul.actionIcons li.saveIcon a span.saveSuccess').show();
    setTimeout(function() {
        $('#' + returnStateValue + ' ul.actionIcons li.saveIcon a span.saveSuccess').hide();
    }, 1500); 
    $('#' + returnStateValue + ' ul.actionIcons li.saveIcon a').addClass('disabled');
}

function defaultTripItemCallback(result) {

    var returnValue = result.d.Value;
    var returnMessage = result.d.Message;
    var returnIsError = result.d.IsError;
    var returnStateValue = result.d.StateValue;

    var currentText;
    var boolAddTextToValue;
    
    currentText = $('.tripItemCount').text().match(/[^\d+].*/);
    if (currentText != null) {
        //user is on a page that displays the trip item count along with some other text
        boolAddTextToValue=true;
    } else {
        
        currentText = $('.newTripItemCount').text().match(/[^\d+].*/);
        
        if (currentText != null)
            boolAddTextToValue = true;        
    }

    if (boolAddTextToValue) {
        if (returnValue == 1) {
            $('.newTripItemCount').html('1 <em>Item in Trip</em>');
            $('.tripItemCount').html(returnValue + ' <em>Item in Trip</em>');
        }
        else {
            $('.tripItemCount').html(returnValue + ' <em>Items in Trip</em>');
            $('.newTripItemCount').html(returnValue + ' <em>Items in Trip</em>');
        }
    } else {
        $('.tripItemCount').text(returnValue);
        $('.newTripItemCount').text(returnValue);
    }     
    
    
    $('#' + returnStateValue + ' ul.actionIcons li.planIcon a span.saveDefault').hide();
    $('#' + returnStateValue + ' ul.actionIcons li.planIcon a span.saveSuccess').show();
    setTimeout(function() {
    $('#' + returnStateValue + ' ul.actionIcons li.planIcon a span.saveSuccess').hide();
    }, 1500);
    $('#' + returnStateValue + ' ul.actionIcons li.planIcon a').addClass('disabled');
}

/********************************************/
/*              MyNy SUPPORT                */
/********************************************/

function UpdateCount(count, countClassNameToUpdate) {
    var currentText = $(countClassNameToUpdate).text().match(/[^\d+].*/);
    var newText = count + ' ' + (currentText == null ? '' : currentText);
    var oldCount = $(countClassNameToUpdate).text();
    $(countClassNameToUpdate).text(newText);

    if (!isNaN(count) && !isNaN(oldCount) && count > oldCount) {
        //something was added to refresh lists        
          gUpdateHeartsOrSaves = true;
    }
}

function UpdateSaveCount(count) {
   
    var currentText = $('.saveItemsCount').text().match(/[^\d+].*/);
    if (currentText == null) {
        var oldCount = $('.saveItemsCount').text();
        //only a number is in the field so just update the number
        $('.saveItemsCount').text(count);
        gUpdateHeartsOrSaves = !isNaN(count) && !isNaN(oldCount) && count > oldCount;
        
    } else {
        //there is some text next to the count so update based on number of items
        if (count == 1) {
            $('.saveItemsCount').html('1 <em>Saved Item</em>');
        }
        else {
            $('.saveItemsCount').html(count + ' <em>Saved Items</em>');
        }
    }    
}


function UpdateHeartCount(count) {
    UpdateCount(count, '.heartItemsCount');
   // UpdateCount(count, '.heartItemLabelCount');
    
}

function UpdateTripCount(count) {
    UpdateCount(count, '.saveItemsCount');
}



function ToggleListingsWrap(wrapperToShow) {

    var myLove = $('#loveRow.itemInfo');
    var mySave = $('#saveRow, .itemInfo .savedItems, #saveRow .itemText');
    var myTrip = $('#tripRow, .itemInfo .myTrips, #tripRow .itemText');
    var currentPager = '';

    gCurrentTab = '';

    if (gUpdateHeartsOrSaves) {
        gCurrentTab =
        gUpdateHeartsOrSaves = false;
        $("[id$='_hdnCurrentTab']").val(wrapperToShow);
       // alert($("[id$='_hdnCurrentTab']").val());
        document.forms[0].submit();
    } else {
        if (wrapperToShow == "loved") {
            $('#lovedItemsWrapper').show();
            $('#savedItemsWrapper').hide();
            myLove.addClass('activeItem');
            mySave.removeClass('activeItem');
            myTrip.removeClass('activeItem');            
            //currentPager = $("#" + gCurrentHeartTab).parents().parents().parents().parents().children(".tabContent.active").children(".tabContentLeft").children("div.paginationWrapDiv").attr("id");

            $("#" + gCurrentHeartTab, "div.loveTabs").trigger("click");
            //OnCallGetUserHeartsByPage(1, currentPager);
        } else {
            $('#lovedItemsWrapper').hide();
            $('#savedItemsWrapper').show();
            mySave.addClass('activeItem');
            myLove.removeClass('activeItem');
            myTrip.removeClass('activeItem');

            //currentPager = $("#" + gCurrentSaveTab).parents().parents().parents().parents().children(".tabContent.active").children(".tabContentLeft").children("div.paginationWrapDiv").attr("id");

            $("#" + gCurrentSaveTab, "div.saveTabs").trigger("click");
            //OnCallGetUserHeartsByPage(1, currentPager);
        }

        setSharePanelZ();
    }
}

function EvaluateMyNyListings() {
    
    var hasHeartData = false;
    var hasSaveData = false;
  
  
    // SeeDo - LOVE
    var seeDoLoveCount = GetPagerTotalPageCount("pagerTopSeeAndDoLove");  
    if (seeDoLoveCount == 0) {
        $('.tabSeeAndDoLoveClass').hide();
        if (gCurrentHeartTab == 'tabSeeAndDo') gCurrentHeartTab = '';
    }
    else {
        hasHeartData = true;
        $('.tabSeeAndDoLoveClass').show();
    }

    // Event - LOVE
    var eventLoveCount = GetPagerTotalPageCount("pagerTopEventsLove");
    if (eventLoveCount == 0) {
        $('.tabEventsLoveClass').hide();
        if (gCurrentHeartTab == 'tabEvents') gCurrentHeartTab = '';
    }
    else {
        hasHeartData = true;
        $('.tabEventsLoveClass').show();
    }

    // Eat - LOVE
    var eatLoveCount = GetPagerTotalPageCount("pagerTopEatLove");
    if (eatLoveCount == 0) {
        $('.tabEatLoveClass').hide();
        if (gCurrentHeartTab == 'tabEat') gCurrentHeartTab = '';
    }
    else {
        hasHeartData = true;
        $('.tabEatLoveClass').show();
    }

    // Stay - LOVE
    var stayLoveCount = GetPagerTotalPageCount("pagerTopStayLove");
    if (stayLoveCount == 0) {
        $('.tabStayLoveClass').hide();
        if (gCurrentHeartTab == 'tabStay') gCurrentHeartTab = '';
    }
    else {
        hasHeartData = true;
        $('.tabStayLoveClass').show();
    }

    //deals
    var dealsLoveCount = GetPagerTotalPageCount("pagerTopDealsLove");
    if (dealsLoveCount == 0) {
        $('.tabDealsLoveClass').hide();
        if (gCurrentHeartTab == 'tabDeals') gCurrentHeartTab = '';
    }
    else {
        hasHeartData = true;
        $('.tabDealsLoveClass').show();
    }


    // More - LOVE
    var moreLoveCount = GetPagerTotalPageCount("pagerTopMoreLove");
    if (moreLoveCount == 0) {
        $('.tabMoreLoveClass').hide();
        if (gCurrentHeartTab == 'tabMore') gCurrentHeartTab = '';
    }
    else {
        hasHeartData = true;
        $('.tabMoreLoveClass').show();
    }

    // Figure the default tab based on content

   
    
    if (gCurrentHeartTab != '')
        $("#" + gCurrentHeartTab, "div.loveTabs").trigger("click");
    else {
      
    for (var x = 0; x < 1; x++) {
       
        if (seeDoLoveCount > 0) {
            gCurrentHeartTab = "tabSeeAndDo";
            break;
        }
        else if (eventLoveCount > 0) {
            gCurrentHeartTab = "tabEvents";
            break;
        }
        else if (eatLoveCount > 0) {
            gCurrentHeartTab = "tabEat";
            break;
        }
        else if (stayLoveCount > 0) {
            gCurrentHeartTab = "tabStay";
            break;
        }
        else if (dealsLoveCount > 0) {
            gCurrentHeartTab = "tabDeals";
            break;
        }
        else if (moreLoveCount > 0) {
            gCurrentHeartTab = "tabMore";
            break;
        }
        else {
            hasHeartData = false;
        }
    }


}

    //////////////////////////////////////////////
 
    // SeeDo - SAVE
    var seeDoSaveCount = GetPagerTotalPageCount("pagerTopSeeAndDoSaved");
    if (seeDoSaveCount == 0) {
        $('.tabSeeAndDoSaveClass').hide();
        if (gCurrentSaveTab == 'tabSeeAndDo') gCurrentSaveTab = '';
    }
    else {
        hasSaveData = true;
        $('.tabSeeAndDoSaveClass').show();
    }

    // Events - SAVE
    var eventsSaveCount = GetPagerTotalPageCount("pagerTopEventsSaved");
    if (eventsSaveCount == 0) {
        $('.tabEventsSaveClass').hide();
        if (gCurrentSaveTab == 'tabEvents') gCurrentSaveTab = '';
    }
    else {
        hasSaveData = true;
        $('.tabEventsSaveClass').show();
    }

    // Eat - SAVE
    var eatSaveCount = GetPagerTotalPageCount("pagerTopEatSaved");
    if (eatSaveCount == 0) {
        $('.tabEatSaveClass').hide();
        if (gCurrentSaveTab == 'tabEat') gCurrentSaveTab = '';
    }
    else {
        hasSaveData = true;
        $('.tabEatSaveClass').show();
    }

    // Stay - SAVE
    var staySaveCount = GetPagerTotalPageCount("pagerTopStaySaved");
    if (staySaveCount == 0) {
        $('.tabStaySaveClass').hide();
        if (gCurrentSaveTab == 'tabStay') gCurrentSaveTab = '';
    }
    else {
        hasSaveData = true;
        $('.tabStaySaveClass').show();
    }

    //deals
    var dealsSaveCount = GetPagerTotalPageCount("pagerTopDealsSaved");
    if (dealsSaveCount == 0) {
        $('.tabDealsSaveClass').hide();
        if (gCurrentSaveTab == 'tabDeals') gCurrentSaveTab = '';
    }
    else {
        hasSaveData = true;
        $('.tabDealsSaveClass').show();
    }

    // More - SAVE
    var moreSaveCount = GetPagerTotalPageCount("pagerTopMoreSaved");
    if (moreSaveCount == 0) {
        $('.tabMoreSaveClass').hide();
        if (gCurrentSaveTab == 'tabMore') gCurrentSaveTab = '';
    }
    else {
        hasSaveData = true;
        $('.tabMoreSaveClass').show();
    }
  
    if (gCurrentSaveTab != '')
        $("#" + gCurrentSaveTab, "div.saveTabs").trigger("click");
    else {
        // Figure the default tab based on content
        for (var x = 0; x < 1; x++) {

            if (seeDoSaveCount > 0) {
                gCurrentSaveTab = "tabSeeAndDo";
                break;
            }
            else if (eventsSaveCount > 0) {
                gCurrentSaveTab = "tabEvents";
                break;
            }
            else if (eatSaveCount > 0) {
                gCurrentSaveTab = "tabEat";
                break;
            }
            else if (staySaveCount > 0) {
                gCurrentSaveTab = "tabStay";
                break;
            }
            else if (dealsSaveCount > 0) {
                gCurrentSaveTab = "tabDeals";
                break;
            }
            else if (moreSaveCount > 0) {
                gCurrentSaveTab = "tabMore";
                break;
            }
            else {
                hasSaveData = false;
            }
        }

    }
    //////////////////////////////////////

   
    // Show Message If No Records
    if (!hasHeartData) {
        var noLovedHtml = $('#noLovedItems').html();       
        $('.tabSeeAndDoLoveClass').show();
        $("#tabSeeAndDo", "div.loveTabs").trigger("click");
        $('#btnSeeDoLoveDelete').hide();
        $('#seeDoLoveItemsList').html(noLovedHtml);
        ResetPagerLoveEvents("pagerTopSeeAndDoLove", 0, 0, 0, 0);
        ResetPagerLoveEvents("pagerBottomSeeAndDoLove", 0, 0, 0, 0);
    }
 
    // Show Message If No Records
    if (!hasSaveData) {
        var noSavedHtml = $('#noSavedItems').html();
        $('.tabSeeAndDoSaveClass').show();
        $("#tabSeeAndDo", "div.saveTabs").trigger("click");
        $('#btnSeeDoSaveDelete').hide();
        $('#seeDoSaveItemsList').html(noSavedHtml);
        ResetPagerSaveEvents("pagerTopSeeAndDoSaved", 0, 0, 0, 0);
        ResetPagerSaveEvents("pagerBottomSeeAndDoSaved", 0, 0, 0, 0);
    }  
}

function OnSucceededDeleteUserHeart(result) {

    var returnValue = result.d.Value;
    var returnMessage = result.d.Message;
    var returnIsError = result.d.IsError;
    var returnStateValue = result.d.StateValue;  //pagerId was passed in as state value on AJAX call

    VerifyUserAuth(result);

    if (returnIsError == false) {
        OnCallGetUserHeartsByPage(1, returnStateValue)
    }
}

function OnSucceededDeleteUserSavedItem(result) {

    var returnValue = result.d.Value;
    var returnMessage = result.d.Message;
    var returnIsError = result.d.IsError;
    var returnStateValue = result.d.StateValue;  //pagerId was passed in as state value on AJAX call

    VerifyUserAuth(result);

    if (returnIsError == false) {
        OnCallGetUserSavesByPage(1, returnStateValue)
    }
}

function OnCallGetUserHeartsByPage(pageclickednumber, parentPagerDivId) {
    
    var currentPage = pageclickednumber;
    var entityType = $('#' + parentPagerDivId + ' .pageStateValue').val();
    var pageCount = $('#' + parentPagerDivId + ' .pageTotalPageCount').val();
    var resultsPerPage = $('#' + parentPagerDivId + ' .pageRecordsPerPage').val();
    var totalResultCount = $('#' + parentPagerDivId + ' .pageTotalRecords').val();

    setSharePanelZ();

    switch (parentPagerDivId) {
        case "pagerTopSeeAndDoLove":
        case "pagerBottomSeeAndDoLove":
            SetProgressBar('seeDoLoveItemsList');
            $('#btnSeeDoLoveDelete').hide();
            ResetPagerLoveEvents("pagerTopSeeAndDoLove", 0, 0, 0, 0);
            ResetPagerLoveEvents("pagerBottomSeeAndDoLove", 0, 0, 0, 0);
            break;
        case "pagerTopEventsLove":
        case "pagerBottomEventsLove":
            SetProgressBar('eventsLoveItemsList');
            $('#btnEventLoveDelete').hide();
            ResetPagerLoveEvents("pagerTopEventsLove", 0, 0, 0, 0);
            ResetPagerLoveEvents("pagerBottomEventsLove", 0, 0, 0, 0);
            break;
        case "pagerTopEatLove":
        case "pagerBottomEatLove":
            SetProgressBar('eatLoveItemsList');
            $('#btnEatLoveDelete').hide();
            ResetPagerLoveEvents("pagerTopEatLove", 0, 0, 0, 0);
            ResetPagerLoveEvents("pagerBottomEatLove", 0, 0, 0, 0);
            break;
        case "pagerTopStayLove":
        case "pagerBottomStayLove":
            SetProgressBar('stayLoveItemsList');
            $('#btnStayLoveDelete').hide();
            ResetPagerLoveEvents("pagerTopStayLove", 0, 0, 0, 0);
            ResetPagerLoveEvents("pagerBottomStayLove", 0, 0, 0, 0);
            break;
        case "pagerTopMoreLove":
        case "pagerBottomMoreLove":
            SetProgressBar('moreLoveItemsList');
            $('#btnMoreLoveDelete').hide();
            ResetPagerLoveEvents("pagerTopMoreLove", 0, 0, 0, 0);
            ResetPagerLoveEvents("pagerBottomMoreLove", 0, 0, 0, 0);
            break;
    }
    

    GetUserHeartsByPage(entityType, resultsPerPage, currentPage, totalResultCount, parentPagerDivId, function(result) { OnSucceededGetUserHeartsByPage(result) });
    return false;
}

function OnSucceededGetUserHeartsByPage(result) {

    var returnValue = result.d.Value;
    var returnMessage = result.d.Message;
    var returnIsError = result.d.IsError;
    var returnStateValue = result.d.StateValue;  //pagerId was passed in as state value on AJAX call

    VerifyUserAuth(result);

    if (returnIsError == false) {

        var pageListHtml = result.d.Value.ObjectListItems;
        var currentPage = result.d.Value.CurrentPage;
        var pageCount = result.d.Value.PageCount;
        var resultsPerPage = result.d.Value.ResultsPerPage;
        var totalResultCount = result.d.Value.TotalResultCount;

        if (totalResultCount > 0) {

            switch (returnStateValue) {
                case "pagerTopSeeAndDoLove":
                case "pagerBottomSeeAndDoLove":
                    $('#seeDoLoveItemsList').html(pageListHtml);
                    $('#btnSeeDoLoveDelete').show();
                    ResetPagerLoveEvents("pagerTopSeeAndDoLove", currentPage, pageCount, resultsPerPage, totalResultCount);
                    ResetPagerLoveEvents("pagerBottomSeeAndDoLove", currentPage, pageCount, resultsPerPage, totalResultCount);
                    break;
                case "pagerTopEventsLove":
                case "pagerBottomEventsLove":
                    $('#eventsLoveItemsList').html(pageListHtml);
                    $('#btnEventLoveDelete').show();
                    ResetPagerLoveEvents("pagerTopEventsLove", currentPage, pageCount, resultsPerPage, totalResultCount);
                    ResetPagerLoveEvents("pagerBottomEventsLove", currentPage, pageCount, resultsPerPage, totalResultCount);
                    break;
                case "pagerTopEatLove":
                case "pagerBottomEatLove":
                    $('#eatLoveItemsList').html(pageListHtml);
                    $('#btnEatLoveDelete').show();
                    ResetPagerLoveEvents("pagerTopEatLove", currentPage, pageCount, resultsPerPage, totalResultCount);
                    ResetPagerLoveEvents("pagerBottomEatLove", currentPage, pageCount, resultsPerPage, totalResultCount);
                    break;
                case "pagerTopStayLove":
                case "pagerBottomStayLove":
                    $('#stayLoveItemsList').html(pageListHtml);
                    $('#btnStayLoveDelete').show();
                    ResetPagerLoveEvents("pagerTopStayLove", currentPage, pageCount, resultsPerPage, totalResultCount);
                    ResetPagerLoveEvents("pagerBottomStayLove", currentPage, pageCount, resultsPerPage, totalResultCount);
                    break;
                case "pagerTopMoreLove":
                case "pagerBottomMoreLove":
                    $('#moreLoveItemsList').html(pageListHtml);
                    $('#btnMoreLoveDelete').show();
                    ResetPagerLoveEvents("pagerTopMoreLove", currentPage, pageCount, resultsPerPage, totalResultCount);
                    ResetPagerLoveEvents("pagerBottomMoreLove", currentPage, pageCount, resultsPerPage, totalResultCount);
                    break;
            }

            EvaluateMyNyListings();

            if (gCurrentHeartTab != '')
                $("#" + gCurrentHeartTab, "div.loveTabs").trigger("click");
                
            fixAlignItemImage(); // also called on initial load
            actionIconsListings(); // also called on initial load
            //actionIconsConfirmation();
            setSharePanelZ();

            //Load addthis script
            var script = 'http://s7.addthis.com/js/250/addthis_widget.js#domready=1';
            if (window.addthis) {
                window.addthis = null;
            }
            $.getScript(script);
        }
        else {

            // NO RESULTS FOUND
            SetNoResultsMyNy(returnStateValue);
        }
    }
    else {

        // NO RESULTS FOUND
        SetNoResultsMyNy(returnStateValue);
    }
}

function OnCallGetUserSavesByPage(pageclickednumber, parentPagerDivId) {

    var currentPage = pageclickednumber;
    var entityType = $('#' + parentPagerDivId + ' .pageStateValue').val();
    var pageCount = $('#' + parentPagerDivId + ' .pageTotalPageCount').val();
    var resultsPerPage = $('#' + parentPagerDivId + ' .pageRecordsPerPage').val();
    var totalResultCount = $('#' + parentPagerDivId + ' .pageTotalRecords').val();

    setSharePanelZ();

    switch (parentPagerDivId) {
        case "pagerTopSeeAndDoSaved":
        case "pagerBottomSeeAndDoSaved":
            SetProgressBar('seeDoSaveItemsList');
            $('#btnSeeDoSaveDelete').hide();
            ResetPagerSaveEvents("pagerTopSeeAndDoSaved", 0, 0, 0, 0);
            ResetPagerSaveEvents("pagerBottomSeeAndDoSaved", 0, 0, 0, 0);
            break;
        case "pagerTopEventsSaved":
        case "pagerBottomEventsSaved":
            SetProgressBar('eventsSaveItemsList');
            $('#btnEventsSaveDelete').hide();
            ResetPagerSaveEvents("pagerTopEventsSaved", 0, 0, 0, 0);
            ResetPagerSaveEvents("pagerBottomEventsSaved", 0, 0, 0, 0);
            break;
        case "pagerTopEatSaved":
        case "pagerBottomEatSaved":
            SetProgressBar('eatSaveItemsList');
            $('#btnEatSaveDelete').hide();
            ResetPagerSaveEvents("pagerTopEatSaved", 0, 0, 0, 0);
            ResetPagerSaveEvents("pagerBottomEatSaved", 0, 0, 0, 0);
            break;
        case "pagerTopStaySaved":
        case "pagerBottomStaySaved":
            SetProgressBar('staySaveItemsList');
            $('#btnStaySaveDelete').hide();
            ResetPagerSaveEvents("pagerTopStaySaved", 0, 0, 0, 0);
            ResetPagerSaveEvents("pagerBottomStaySaved", 0, 0, 0, 0);
            break;
        case "pagerTopMoreSaved":
        case "pagerBottomMoreSaved":
            SetProgressBar('moreSaveItemsList');
            $('#btnMoreSaveDelete').hide();
            ResetPagerSaveEvents("pagerTopMoreSaved", 0, 0, 0, 0);
            ResetPagerSaveEvents("pagerBottomMoreSaved", 0, 0, 0, 0);
            break;
        case "pagerTopDealsSaved":
        case "pagerBottomDealsSaved":
            SetProgressBar('dealsSaveItemsList');
            $('#btnDealsSaveDelete').hide();
            ResetPagerSaveEvents("pagerTopDealsSaved", 0, 0, 0, 0);
            ResetPagerSaveEvents("pagerBottomDealsSaved", 0, 0, 0, 0);
            break;
    }

    GetUserSavesByPage(entityType, resultsPerPage, currentPage, totalResultCount, parentPagerDivId, function(result) { OnSucceededGetUserSavesByPage(result) });
    return false;
}

function OnSucceededGetUserSavesByPage(result) {

    var returnValue = result.d.Value;
    var returnMessage = result.d.Message;
    var returnIsError = result.d.IsError;
    var returnStateValue = result.d.StateValue;  //pagerId was passed in as state value on AJAX call

    VerifyUserAuth(result);

    if (returnIsError == false) {

        var pageListHtml = result.d.Value.ObjectListItems;
        var currentPage = result.d.Value.CurrentPage;
        var pageCount = result.d.Value.PageCount;
        var resultsPerPage = result.d.Value.ResultsPerPage;
        var totalResultCount = result.d.Value.TotalResultCount;

        if (totalResultCount > 0) {

            switch (returnStateValue) {
                case "pagerTopSeeAndDoSaved":
                case "pagerBottomSeeAndDoSaved":
                    $('#seeDoSaveItemsList').html(pageListHtml);
                    $('#btnSeeDoSaveDelete').show();
                    ResetPagerSaveEvents("pagerTopSeeAndDoSaved", currentPage, pageCount, resultsPerPage, totalResultCount);
                    ResetPagerSaveEvents("pagerBottomSeeAndDoSaved", currentPage, pageCount, resultsPerPage, totalResultCount);
                    break;
                case "pagerTopEventsSaved":
                case "pagerBottomEventsSaved":
                    $('#eventsSaveItemsList').html(pageListHtml);
                    $('#btnEventsSaveDelete').show();
                    ResetPagerSaveEvents("pagerTopEventsSaved", currentPage, pageCount, resultsPerPage, totalResultCount);
                    ResetPagerSaveEvents("pagerBottomEventsSaved", currentPage, pageCount, resultsPerPage, totalResultCount);
                    break;
                case "pagerTopEatSaved":
                case "pagerBottomEatSaved":
                    $('#eatSaveItemsList').html(pageListHtml);
                    $('#btnEatSaveDelete').show();
                    ResetPagerSaveEvents("pagerTopEatSaved", currentPage, pageCount, resultsPerPage, totalResultCount);
                    ResetPagerSaveEvents("pagerBottomEatSaved", currentPage, pageCount, resultsPerPage, totalResultCount);
                    break;
                case "pagerTopStaySaved":
                case "pagerBottomStaySaved":
                    $('#staySaveItemsList').html(pageListHtml);
                    $('#btnStaySaveDelete').show();
                    ResetPagerSaveEvents("pagerTopStaySaved", currentPage, pageCount, resultsPerPage, totalResultCount);
                    ResetPagerSaveEvents("pagerBottomStaySaved", currentPage, pageCount, resultsPerPage, totalResultCount);
                    break;
                case "pagerTopMoreSaved":
                case "pagerBottomMoreSaved":
                    $('#moreSaveItemsList').html(pageListHtml);
                    $('#btnMoreSaveDelete').show();
                    ResetPagerSaveEvents("pagerTopMoreSaved", currentPage, pageCount, resultsPerPage, totalResultCount);
                    ResetPagerSaveEvents("pagerBottomMoreSaved", currentPage, pageCount, resultsPerPage, totalResultCount);
                    break;

                case "pagerTopDealsSaved":
                case "pagerBottomDealsSaved":
                    $('#dealsSaveItemsList').html(pageListHtml);
                    $('#btnDealsSaveDelete').show();
                    ResetPagerSaveEvents("pagerTopDealsSaved", currentPage, pageCount, resultsPerPage, totalResultCount);
                    ResetPagerSaveEvents("pagerBottomDealsSaved", currentPage, pageCount, resultsPerPage, totalResultCount);
                    break;
            }

            EvaluateMyNyListings();

            if (gCurrentSaveTab != '')
                $("#" + gCurrentSaveTab, "div.saveTabs").trigger("click");
                
            fixAlignItemImage(); // also called on initial load
            actionIconsListings(); // also called on initial load
            //actionIconsConfirmation();
            setSharePanelZ();

            //Load addthis script
            var script = 'http://s7.addthis.com/js/250/addthis_widget.js#domready=1';
            if (window.addthis) {
                window.addthis = null;
            }
            $.getScript(script);
        }
        else {

            // NO RESULTS FOUND
            SetNoResultsMyNy(returnStateValue);
        }
    }
    else {

        // NO RESULTS FOUND
        SetNoResultsMyNy(returnStateValue);
    }
}

function SetNoResultsMyNy(pager) {

    // NO RESULTS FOUND
    var noResultHtml = $('#noSearchResults').html();

    switch (pager) {

        // HEARTS 
        case "pagerTopSeeAndDoLove":
        case "pagerBottomSeeAndDoLove":
            $('#seeDoLoveItemsList').html(noResultHtml);
            ResetPagerLoveEvents("pagerTopSeeAndDoLove", 0, 0, 0, 0);
            ResetPagerLoveEvents("pagerBottomSeeAndDoLove", 0, 0, 0, 0);
            break;
        case "pagerTopEventsLove":
        case "pagerBottomEventsLove":
            $('#eventsLoveItemsList').html(noResultHtml);
            ResetPagerLoveEvents("pagerTopEventsLove", 0, 0, 0, 0);
            ResetPagerLoveEvents("pagerBottomEventsLove", 0, 0, 0, 0);
            break;
        case "pagerTopEatLove":
        case "pagerBottomEatLove":
            $('#eatLoveItemsList').html(noResultHtml);
            ResetPagerLoveEvents("pagerTopEatLove", 0, 0, 0, 0);
            ResetPagerLoveEvents("pagerBottomEatLove", 0, 0, 0, 0);
            break;
        case "pagerTopStayLove":
        case "pagerBottomStayLove":
            $('#stayLoveItemsList').html(noResultHtml);
            ResetPagerLoveEvents("pagerTopStayLove", 0, 0, 0, 0);
            ResetPagerLoveEvents("pagerBottomStayLove", 0, 0, 0, 0);
            break;
        case "pagerTopMoreLove":
        case "pagerBottomMoreLove":
            $('#moreLoveItemsList').html(noResultHtml);
            ResetPagerLoveEvents("pagerTopMoreLove", 0, 0, 0, 0);
            ResetPagerLoveEvents("pagerBottomMoreLove", 0, 0, 0, 0);
            break;

        // SAVES 
        case "pagerTopSeeAndDoSaved":
        case "pagerBottomSeeAndDoSaved":
            $('#seeDoSaveItemsList').html(noResultHtml);
            ResetPagerSaveEvents("pagerTopSeeAndDoSaved", 0, 0, 0, 0);
            ResetPagerSaveEvents("pagerBottomSeeAndDoSaved", 0, 0, 0, 0);
            break;
        case "pagerTopEventsSaved":
        case "pagerBottomEventsSaved":
            $('#eventsSaveItemsList').html(noResultHtml);
            ResetPagerSaveEvents("pagerTopEventsSaved", 0, 0, 0, 0);
            ResetPagerSaveEvents("pagerBottomEventsSaved", 0, 0, 0, 0);
            break;
        case "pagerTopEatSaved":
        case "pagerBottomEatSaved":
            $('#eatSaveItemsList').html(noResultHtml);
            ResetPagerSaveEvents("pagerTopEatSaved", 0, 0, 0, 0);
            ResetPagerSaveEvents("pagerBottomEatSaved", 0, 0, 0, 0);
            break;
        case "pagerTopStaySaved":
        case "pagerBottomStaySaved":
            $('#staySaveItemsList').html(noResultHtml);
            $('#btnStaySaveDelete').show();
            ResetPagerSaveEvents("pagerTopStaySaved", 0, 0, 0, 0);
            ResetPagerSaveEvents("pagerBottomStaySaved", 0, 0, 0, 0);
            break;
        case "pagerTopMoreSaved":
        case "pagerBottomMoreSaved":
            $('#moreSaveItemsList').html(noResultHtml);
            $('#btnMoreSaveDelete').show();
            ResetPagerSaveEvents("pagerTopMoreSaved", 0, 0, 0, 0);
            ResetPagerSaveEvents("pagerBottomMoreSaved", 0, 0, 0, 0);
            break;
        case "pagerTopDealsSaved":
        case "pagerBottomDealsSaved":
            $('#dealsSaveItemsList').html(noResultHtml);
            $('#btnDealsSaveDelete').show();
            ResetPagerSaveEvents("pagerTopDealsSaved", 0, 0, 0, 0);
            ResetPagerSaveEvents("pagerBottomDealsSaved", 0, 0, 0, 0);
            break;

    }

    setSharePanelZ();
}

// *********  PAGINATION FUCNTIONS  *********

function ResetPagerLoveEvents(pagerId, currentPage, pageCount, resultsPerPage, totalResultCount) {

    var targetURL = "javascript(0)";
    SetPageTotalPageCount(pagerId, totalResultCount);
    $('#' + pagerId + ' .Paging').pager({ pagenumber: currentPage, pagecount: pageCount, buttonClickCallback: OnCallGetUserHeartsByPage, targetURL: targetURL, recordsPerPage: resultsPerPage });
}

function ResetPagerSaveEvents(pagerId, currentPage, pageCount, resultsPerPage, totalResultCount) {

    var targetURL = "javascript(0)";
    SetPageTotalPageCount(pagerId, totalResultCount);
    $('#' + pagerId + ' .Paging').pager({ pagenumber: currentPage, pagecount: pageCount, buttonClickCallback: OnCallGetUserSavesByPage, targetURL: targetURL, recordsPerPage: resultsPerPage });
}

// *********  Ready Initialize Functions  *********
function InitializeMyNyLayout() {

    EvaluateMyNyListings();

    // Connect Delete Handlers
    $('.heartDelete').click(function() {

        var keyListArr = new Array();
        var itemType;
        var topPagerDivId;

        gCurrentSaveTab = '';
        gCurrentTab = 'loved';
        // For the active tab, get checked items
        $('.tabContent.active .loveList input:checkbox:checked').each(function(i) {

            topPagerDivId = GetCurrentTabPager(this);
            var key = $(this).parents(".itemRow").children(".itemRowData").children(".key").attr("value");
            itemType = $(this).parents(".itemRow").children(".itemRowData").children(".itemType").attr("value");
            keyListArr[i] = key;

        });

        if (keyListArr.length > 0) {
            $('#__DeleteEventPostbackData').val(keyListArr.join("|").toString());
            $('#__EventPostbackData').val("DELETEHEART");
            theForm.submit();           
        }


        return false;
    });

    $('.saveDelete').click(function() {

        var keyListArr = new Array();
        var itemType;
        var topPagerDivId;

        gCurrentHeartTab = '';
        gCurrentTab = 'save';
        // For the active tab, get checked items
        $('.tabContent.active .saveList input.savecheck:checked').each(function(i) {

            topPagerDivId = GetCurrentTabPager(this);
            var key = $(this).parents(".itemRow").children(".itemRowData").children(".key").attr("value");
            itemType = $(this).parents(".itemRow").children(".itemRowData").children(".itemType").attr("value");
            keyListArr[i] = key;

        });
    
        if (keyListArr.length > 0) {
            $('#__DeleteEventPostbackData').val(keyListArr.join("|").toString());
            $('#__EventPostbackData').val("DELETESAVE");
            theForm.submit();           
        }

        return false;
    });

}

function GetCurrentTabPager(thisActiveTabItem) {
   
    var currentTopPager = $(thisActiveTabItem).parents(".tabContent.active .tabContentLeft").children("div.paginationWrapDiv").attr("id");
    return currentTopPager;
}

function VerifyUserAuth(result) {

    var returnMessage = result.d.Message;

    if (returnMessage == RESPONSE_NO_AUTH)
        window.location = '/Loginregistration.aspx';
}

