﻿function favs_ondisable() {
    //cosa visualizzo - o modifico nel layout se non posso abilitare i favs
}

function favs_oninit() {
}

function favs_onload() {
    favs_render();
}

function favs_onadd(mf) {
    favs_render();
    //cosa visualizzo dopo aver aggiunto un preferito
    /*var pn = getPageName();
    switch (pn) {
        case "list":
            $(".covers > li[id=" + mf.id + "]")
                .find("span.n")
                .animate({
                    color: "#dc143c"
                }, 400)
                .animate({
                    color: "#000"
                }, 400);
            $(".covers > li[id=" + mf.id + "]").addClass("isfav");
            favs_onload();
            break;
        case "detail":
            break;
        case "favs":
            break;
        default:
    }*/
}

function favs_onremove(idm) {
    //cosa visualizzo dopo aver aggiunto un preferito
    var pn = getPageName();
    switch (pn) {
        case "list":
            $(".covers > li[id=" + idm + "]").removeClass("isfav");
            favs_onload();
            break;
        case "detail":
            break;
        case "favs":
            break;
        default:
    }
}

function favs_onclear() {
    //cosa visualizzo dopo aver svuotato i preferiti: redirect? $().empty?
    //cosa visualizzo dopo aver aggiunto un preferito
    var pn = getPageName();
    switch (pn) {
        case "list":
            $(".covers > li").removeClass("isfav");
            favs_onload();
            break;
        case "favs":
            break;
        default:
    }
}


/*var currentfavs = {
    enabled: false,
    nr: 0,
    models: [],
    load: function () {
        loadFavModels();
    }
};*/

function loadFavModels() {
    $.getJSON("/get-fav", null, function (d) {
        $.each(d, function (i, item) {
            var m = Object.create(favmodel);
            m.id = item.idmodel;
            m.name = item.modelname;
            m.surname = item.modelsurname;
            m.pictureUrl = item.picturepath;
            currentfavs.models.push(m);
        });
        favs_render();
    });
}

function clearFavModels() {
    $.getJSON("/clear-fav", null, function (d) {
        if (d.success)
            document.location.reload();
        else
            alert('There was an error');
    });
}

function addToFav(idm, pp, el) {
    $(el).find("img").attr("src", "/a/i/ajax-loader.gif");
    favs_add(idm, pp);
    $(el).find("img").attr("src", "/a/i/bookmark-on.png");

    /*$(el).find("img").attr("src", "/a/i/ajax-loader.gif");
    $.getJSON("/add-fav/" + idm + "?pp=" + pp, null, function (d) {
        if (!d.aobj.success) {
            alert(d.aobj.message);
        } else {
            var m = Object.create(favmodel);
            m.id = d.fobj.idmmodel;
            m.name = d.fobj.modelname;
            m.surname = d.fobj.modelsurname;
            m.pictureUrl = d.fobj.picturepath;
            currentfavs.models.push(m);
            $(el).find("img").attr("src", "/a/i/bookmark-on.png");
            favs_render();
        }
    });*/
}

function favs_render() {
    $("p.favs > a > span").html(currentfavs.models.length.toString() + " model(s) in your favourite list");
}

function removeFav(idm) {
    $.getJSON("/rem-fav/" + idm, null, function (d) {
        if (!d.success)
            alert(d.message);
        else
            document.location.reload();
    });
    return null;
}


function favs_openRequestForm() {
    //qui devo aprire il dialog del form
    $('#requestForm').dialog('open');
    return false;
}

function favs_submitRequest() {
    $.getJSON("/req-fav", $('#requestForm form').serialize(), function (data) {
        $('#requestForm').dialog('close');
        $('#requestFormResult').dialog('open');
    });
}

function initFavs() {
    if ($.cookies.get("sId") == null) {
        $.getJSON("/init-session", null, function (d) {
            if (d.success) {
                buildFavsTools();
            } else {
                disableFavs();
            }
        });
    } else {
        buildFavsTools();
    }
}

function buildFavsTools() {
    if ($("p.favs").length > 0) {
        $("a.book-covers-i > img").draggable({
            cursor: 'pointer',
            appendTo: "body",
            cursorAt: { top: 10, left: 10 },
            helper: function (event) {
                return $('<img src="' + $(this).attr("src") + '" height="40" alt="' + $(this).parent().attr("id") + '" />');
            }
        });
        $("#drop-fav").droppable({
            hoverClass: 'active',
            drop: function (event, ui) {
                var idm = $(ui.draggable).parent().parent().attr("id");
                var pp = $(ui.draggable).attr("src");
                addToFav(idm, pp);
            }
        });
        currentfavs.load();
    }
}
