﻿var _page;
var mycarousel_itemListFav;
var greyImgSrc = "http://weddings.theknot.com/odb/Themes/NationalGowns/img/gowns_heart_grey.gif";

function getFavorites(memberId, url, category, pageName) {
    _page = pageName;

    tkSocial.Favorites.Get(memberId, "", 4, "", category, function () {
        populateFavoritesResultsJSON(favDataSource);
    }, function () { });
}

function getSavedFavorites(theme, memberId, url, pageName) {
    _page = pageName;
    //alert("about to call svc...");
    tkSocial.Favorites.Get(memberId, function () {
        if (_page.toString().toUpperCase() == "RESULTS.ASPX" || _page.toString().toUpperCase() == "VIEW.ASPX") {

            var greyImgSrc = "http://weddings.theknot.com/odb/Themes/NationalGowns/img/gowns_heart_grey.gif";
            mycarousel_itemListFav = favDataSource;
            delete_cookie('favorites_dresses');
            set_Favorite_cookie(favDataSource, 'dresses');
        }
        else {
            var objectIdsArray = [];
            populateFavoritesJSON(favDataSource);

            if (_page.toString().toUpperCase() == "DETAILVIEW.ASPX") {
                // FOR EACH ITEM IN THE ARRAY CREATE A NEW ARRAY WITH ONLY IDS
                $.each(mycarousel_itemListFav,
                            function (intIndex, objValue) {
                                objectIdsArray.push(objValue.ObjectId);
                            });

                $("div.result:has(a)").each(function () {
                    var divObjectid = $(this).find("a").attr("objectid");
                    var imgObj = $(this).find('div.thumbCaption').find('div.imgSel').find('div.favoritebutton').find('img');
                    var spanAdded = $(this).find("div.thumbCaption").find("div.favoritetooltip").find("span.addEd");
                    var spanAddto = $(this).find("div.thumbCaption").find("div.favoritetooltip").find("span.addTo");

                    $.each(objectIdsArray,
                                function (intIndex, objValue) {
                                    if (objValue == divObjectid) {
                                        imgObj.attr("src", greyImgSrc);
                                        spanAdded.show();
                                        spanAddto.hide();
                                    }
                                });
                });
            }
        }
    },
     function () { });
}

function populateFavoritesResultsJSON(favDataSource) {
  
    var objectIdsArray = [];
    //populateFavoritesJSON(favDataSource);

    if (_page.toString().toUpperCase() == "RESULTS.ASPX" || _page.toString().toUpperCase() == "VIEW.ASPX") {

        // FOR EACH ITEM IN THE ARRAY CREATE A NEW ARRAY WITH ONLY IDS
        $.each(mycarousel_itemListFav,
            function (intIndex, objValue) {
                objectIdsArray.push(objValue.ObjectId);
            }
        );

        $("div.result:has(a)").each(function () {

            var divObjectid = $(this).find("a").attr("objectid");
            var imgObj = $(this).find('div.thumbCaption').find('div.imgSel').find('div.favoritebutton').find('img');
            var spanAdded = $(this).find("div.thumbCaption").find("div.favoritetooltip").find("span.addEd");
            var spanAddto = $(this).find("div.thumbCaption").find("div.favoritetooltip").find("span.addTo");

            $.each(
                objectIdsArray,
                function (intIndex, objValue) {
                    if (objValue == divObjectid) {
                        imgObj.attr("src", greyImgSrc);
                        spanAdded.show();
                        spanAddto.hide();
                    }
                }
            );
        })
    }
    else if (_page.toString().toUpperCase() == "DETAILVIEW.ASPX") {
        // FOR EACH ITEM IN THE ARRAY CREATE A NEW ARRAY WITH ONLY IDS
        $.each(mycarousel_itemListFav,
                function (intIndex, objValue) {
                    objectIdsArray.push(objValue.ObjectId);
                });

        $("li.save").each(function () {
            var divObjectid = SaveToFavoriteVar.ObjectId;

            $.each(objectIdsArray,
                        function (intIndex, objValue) {
                            if (objValue == divObjectid) {
                                $('#SaveToNotebookWithPopup').hide();
                                $('#SavedNotebookWithPopupLink').show();
                            }
                        });
        });
    }
}

function populateFavoritesJSON(favDataSource) {
    mycarousel_itemListFav = favDataSource;
    delete_cookie('favorites_dresses');
    set_Favorite_cookie(favDataSource, 'dresses');
}

function getFavsFromCookie(themeName, memberId, url, pageName) {
    var favJSON1 = get_Favorite_cookie(themeName);
    mycarousel_itemListFav = favJSON1;
    // mycarousel_itemListFav.favorite[0] = eval(favJSON1);

    delete_cookie('favorites_dresses');
    set_Favorite_cookie(favJSON1, 'dresses');

    if (_page.toString().toUpperCase() == "RESULTS.ASPX" || _page.toString().toUpperCase() == "VIEW.ASPX") {
        // FOR EACH ITEM IN THE ARRAY CREATE A NEW ARRAY WITH ONLY IDS
        $.each(mycarousel_itemListFav,
            function (intIndex, objValue) {
                objectIdsArray.push(objValue.ObjectId);
            }
        );

        $("div.result:has(a)").each(function () {
            var divObjectid = $(this).find("a").attr("objectid");
            var imgObj = $(this).find('div.thumbCaption').find('div.imgSel').find('div.favoritebutton').find('img');
            var spanAdded = $(this).find("div.thumbCaption").find("div.favoritetooltip").find("span.addEd");
            var spanAddto = $(this).find("div.thumbCaption").find("div.favoritetooltip").find("span.addTo");

            $.each(
                objectIdsArray,
                function (intIndex, objValue) {
                    if (objValue == divObjectid) {
                        imgObj.attr("src", greyImgSrc);
                        spanAdded.show();
                        spanAddto.hide();
                    }
                }
            );
        })
    }
}


function loadFavc() {
    var $favCar = $('#myfavorites');
    var $favCarUl = $favCar.find('ul');
    $favCar.hover(
    // DISPLAY FAVS
                      function () {
                          $favCarUl.show();
                          setTimeout(function () { if ($('#myfavoritecarousel > *').length == 0) { aLoader(); if (lCar != undefined) { lCar.reset(); } } }, 0);
                          //reset carousel
                          if (lCar != undefined) { lCar.reset(); }
                      }
                      , //HIDE FAVS
                      function () { setTimeout(function () { $favCarUl.hide(); }, 0); }
              );
}

function MyFavCallback(carousel, state) {

    if (state == 'init') {  // put carousel into scope
        lCar = carousel;
    }
};

function aLoader() {
    if (mycarousel_itemListFav.length != 0) {
        // less then max

        if (mycarousel_itemListFav.length > 4) {
            $('#myfavoritecarousel').jcarousel(
                            { scroll: 4,
                                start: 1,
                                wrap: 'circular',
                                itemVisibleInCallback: { onBeforeAnimation: mycarousel_itemVisibleInCallback2 },
                                itemVisibleOutCallback: { onAfterAnimation: mycarousel_itemVisibleOutCallback2 },
                                initCallback: MyFavCallback
                            });
        }
        else {
            loadFav(); // load non carousel list
        } // /less then max
    } // /EMPTY LIST
}
function mycarousel_itemVisibleInCallback2(carousel, item, i, state, evt) {
    // The index() method calculates the index from a
    // given index who is out of the actual item range.
    var idx = carousel.index(i, mycarousel_itemListFav.length);
    carousel.add(i, mycarousel_getItemHTML2(mycarousel_itemListFav[idx - 1]));
};

function mycarousel_itemVisibleOutCallback2(carousel, itemF, i, state, evt) {
    carousel.remove(i);
};

function mycarousel_getItemHTML2(item) {
    if (item != null)
        return '<div ><a  href="' + item.Url + '" ><img src="' + item.ImageUrl + '" alt="' + item.Name + '" height="90" width="90" /></a></div><div class="favTitle"><a  href="' + item.Url + '" >' + item.Name + '</a></div>';
};

function loadFav() {
    $('#myfavoritecarousel').text("");
    $.each(mycarousel_itemListFav,
                    function () {
                        $('#myfavoritecarousel').append('<li  class="jcarousel-item jcarousel-item-horizontal">' + mycarousel_getItemHTML2(this) + '</li>')
                    }
               )
    $('#LeftFav').hover(function () { $(this).css({ backgroundPosition: '-3px -185px' }); });
    $('#RightFav').hover(function () { $(this).css({ backgroundPosition: '-2px -555px' }); });
    $('#LeftFav').css({ cursor: 'auto' });
    $('#RightFav').css({ cursor: 'auto' });
}

function get_Favorite_cookie(category) {
    return get_cookie('favorites_' + category);
}

function set_Favorite_cookie(favorites, category) {
    var exp_m = 1;

    var date = new Date();
    var exp_y = date.getFullYear();

    if (12 > date.getMonth())
        exp_m = date.getMonth() + 1;
    else
        exp_y = exp_y + 1;

    set_cookie('favorites_' + category, favorites, exp_y, exp_m, date.getDay, '/odb/' + category, null);
}


function SaveToNotebookWithPopup() {

    tkSocial.Favorites.Add(SaveToFavoriteVar.userId, "", "", SaveToFavoriteVar.ObjectId,
                                SaveToFavoriteVar.SiteId, 4, "","","", "", SaveToNotebookWithPopupSuccess, "");
}

function UpdateSavedFavorites() {

    var objectIdsArray = [];

    // FOR EACH ITEM IN THE ARRAY CREATE A NEW ARRAY WITH ONLY IDS
    $.each(mycarousel_itemListFav,
            function (intIndex, objValue) {
                objectIdsArray.push(objValue.ObjectId);
            }
        );

    $("div.result:has(a)").each(function () {

        var divObjectid = $(this).find("a").attr("objectid");
        var imgObj = $(this).find('div.thumbCaption').find('div.imgSel').find('div.favoritebutton').find('img');
        var spanAdded = $(this).find("div.thumbCaption").find("div.favoritetooltip").find("span.addEd");
        var spanAddto = $(this).find("div.thumbCaption").find("div.favoritetooltip").find("span.addTo");

        $.each(
                objectIdsArray,
                function (intIndex, objValue) {
                    if (objValue == divObjectid) {
                        imgObj.attr("src", greyImgSrc);
                        spanAdded.show();
                        spanAddto.hide();
                    }
                }
            );
    })

}
