﻿var acceptcookies = false;
var usefavs = true;

var favmodel = {
    name: "",
    surname: "",
    id: 0,
    pictureUrl: ""
};
var currentfavs = {
    enabled: false,
    maxfavs: 15,
    models: [],
    load: function () {
        var cf = this;
        $.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;
                cf.models.push(m);
            });
            favs_onload();
        });
    },
    clear: function () {
        var cf = this;
        $.getJSON("/clear-fav", null, function (d) {
            if (d.success) {
                cf.models = [];
                favs_onclear();
            } else {
                alert('There was an error');
            }
        });
    },
    add: function (idm, pp) {
        var cf = this;
        if (cf.models.length < cf.maxfavs) {
            $.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.idmodel;
                    m.name = d.fobj.modelname;
                    m.surname = d.fobj.modelsurname;
                    m.pictureUrl = d.fobj.picturepath;
                    cf.models.push(m);
                    favs_onadd(m);
                }
            });
        } else {
            alert("you can't add more than " + cf.maxfavs + " models to your list");
        }
    },
    remove: function (idm) {
        var cf = this;
        $.getJSON("/rem-fav/" + idm, null, function (d) {
            var torem = -1;
            if (!d.success) {
                alert(d.message);
            } else {
                for (var i = 0; i < cf.models.length; i++) {
                    if (cf.models[i].id == idm) {
                        torem = i;
                        break;
                    }
                }
                cf.models.splice(torem, 1);
                favs_onremove(idm);
            }
        });
    },
    init: function () {
        var cf = this;
        if (window.usefavs) {
            if ($.cookies.get("sId") == null) {
                if ($.cookies.test()) {
                    acceptcookies = true;
                    cf.enabled = true;
                } else {
                    cf.enabled = false;
                    favs_ondisable();
                }
            } else {
                acceptcookies = true;
                cf.enabled = true;
            }

            if (cf.enabled) {
                if ($.cookies.get("sId") == null) {
                    $.getJSON("/init-session", null, function (d) {
                        if (d.success) {
                            favs_oninit();
                            favs_onload();
                        } else {
                            cf.enabled = false;
                            favs_ondisable();
                        }
                    });
                } else {
                    favs_oninit();
                    cf.load();
                }
            }
        }
    }
};

function favs_init() {
    if (usefavs) {
        currentfavs.init();
    }
}

function favs_add(idm, pp) {
    currentfavs.add(idm,pp);
    return null;
}

function favs_remove(idm) {
    currentfavs.remove(idm);
    return null;
}

function favs_clear() {
    currentfavs.clear();
    return null;
}

function isInFav(mid) {
    var is = false;
    for (var i = 0; i < currentfavs.models.length; i++) {
        if (currentfavs.models[i].id == mid) {
            is = true;
        }
    }
    return is;
}

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 favs_initforms() {
    if ($("#requestForm").length > 0) {
        $("#requestForm").dialog({
            autoOpen: false,
            modal: true,
            //position: [200, 100],
            height: 400,
            width: 520
        });
    }

    if ($("#requestFormResult").length > 0) {
        $("#requestFormResult").dialog({
            autoOpen: false,
            modal: true,
            //position: [200, 100],
            height: 400,
            width: 520
        });
    } 
}

