if (typeof Object.create !== "function") {
    Object.create = function(o) {
        var F = function() {};
        F.prototype = o;
        return new F();
    }
};


//STANDARD
var favmodel = {
    name: "",
    surname: "",
    id : 0,
    pictureUrl : ""
};
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();
    });
}

var acceptcookies = false;

$(function () {
    $(document).pngFix();

    if ($.cookies.get("sId") == null) {
        if ($.cookies.test()) {
            acceptcookies = true;
            enableFavs();
        } else {
            disableFavs();
        }
    } else {
        acceptcookies = true;
        enableFavs();
    }


    if ($("#model-selector").length > 0) {
        modelselector_render();
        $("#model-selector form").eq(0).unbind("submit").submit(function () {
            var l = $("#model-selector form").eq(0).find("select").eq(0).val();
            window.location = l;
            return false;
        });
    }

    if ($("#modelPics").length > 0) {
        $(".mrhide").hide();
        
        var bookSelector = function () {
            $("#book-selector a").each(function (i, item) {
                $(item).click(function () {
                    onLoadBook($("#picbox ul").eq(i));
                })
            });
        }
        bookSelector();
        var ul_selected = $("#picbox ul:eq(0)");
        onLoadBook(ul_selected);
    }

    if ($("ul.submissions").length > 0) {
        $("a.submission-gallery").fancybox({
            'transitionIn': 'elastic',
            'transitionOut': 'elastic',
            'speedIn': 600,
            'speedOut': 200,
            'overlayShow': false
        });
    }
});

function enableFavs() {
    currentfavs.enabled = true;
}

function disableFavs() {
    currentfavs.enabled = false;
    favs_onDisable();
}

function initFavs() {
    if ($.cookies.get("sId") == null) {
        $.getJSON("/init-session", null, function (d) {
            if (d.success) {
                buildFavsTools();
            } else {
                disableFavs();
            }
        });
    } else {
        buildFavsTools();
    }
}

function addToFav(idm,pp) {
    $.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);
            favs_render();
        }
    });
    return null;
}

function buildFavsTools() {
    if ($("#drop-fav").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();
    }
}

// CUSTOM
function favs_onDisable() {
    $("#drop-fav").empty().html("You must enable cookies to use favourite list");
}

function favs_render() {
    $("#drop-fav").empty().append("<p>" + currentfavs.models.length.toString() + " models</p>").append("<ul></ul>");
    $.each(currentfavs.models, function (i, item) {
        $("#drop-fav ul").append("<li><img height=\"30\" src=\"" + item.pictureUrl + "\" /></li>");
    });
}

function modelselector_render() { }

function model_onLoad(isDouble) {
    //bindo i link del cambio book
    $("a.book-selector-link").unbind("click").click(function () {
        var idb = Number($(this).attr("id").substring(2));
        book_onLoad(idb);
    });
    $("a.vbook-selector-link").unbind("click").click(function () {
        var idb = Number($(this).attr("id").substring(2));
        var titb = $(this).html();
        vbook_onLoad(idb, titb);
    });
    
    book_onLoad();
}

var images = [];

function onLoadBook(lis) {
    var ulbook = null;
    switch (typeof lis) {
        case null:
        case "undefined":
            ulbook = $("#picbox ul:first");
            break;
        case "object":
            ulbook = lis;
            break;
        case "number":
        case "string":
            ulbook = $("#picbox ul[id='b" + lis + "']");
            break;
        default:
            ulbook = $("#picbox ul:first");
            break;
    }

    var ulid = $(lis).attr("id");
    var idbook = Number(ulid.substring(1));

    $("#book-selector li a").removeClass("sel");
    $("#lb" + idbook).addClass("sel");
    
    var npages = $(ulbook).children("li").length;
    images = [];
    sizes = [];
    $(ulbook).find("li").each(function (i, item) {
        images.push($(item).find("a").attr("href"));
        sizes.push($(item).find("a").attr("title").split("|"));
    });
    LoadImage(0, npages);

    $("ul.book-pictures").width(ulbook.width());

    $("#modelPics").eq(0).customScroll({
        resizeWidth: true,
        outerMarginWidth: 360,
        isHorizontal: true,
        enableClick: true,
        scrollbarMargin: 0
    });
    $("#printbook").attr("href", "/pdf/" + idbook);
}



function LoadImage(index, max) {
    if (index < 1) {
        $("#modelPics").html('<ul class="book-pictures"></ul>');
    }

    if (index < max)
    {
        var list = $("<li></li>").attr("class", "loading");
        $("ul.book-pictures").append(list);
        var img = new Image();
        $(img).load(function () {
            $(this).css("display", "none");
            $(this).attr("width", sizes[index][0]);
            $(this).attr("height", sizes[index][1]);
            $(list).append(this);
            $(list).removeClass("loading");
            $(this).fadeIn("slow", function () {
                LoadImage(index + 1, max);
            });
        }).error(function () {
            $(list).remove();
            LoadImage(index + 1, max);
        }).attr("src", images[index]);
    }
}



function book_onLoad_OLD(ulvar) {
    $("#book-page").empty();
    var ulbook = null;
    switch (typeof ulvar) {
        case null:
        case "undefined":
            ulbook = $("#hiddenbooks ul:first");
            break;
        case "object":
            ulbook = ulvar;
            break;
        case "number":
        case "string":
            ulbook = $("#hiddenbooks ul[id='b" + ulvar + "']");
            break;
        default:
            ulbook = $("#hiddenbooks ul:first");
            break;
    }
    //var page = 0;
    //var npages = $(ulbook).children("li").length;
    var idbook = Number($(ulbook).attr("id").substring(1));
    //$(".book-name-current").html($(ulbook).attr("title"));
    //$(".book-print-current").attr("href", "/pdf/" + idbook).show();
    $("#vbook-viewer").hide();
    $("#book-viewer").show();

    $("#book-selector li a").removeClass('sel');
    $("#lb" + idbook).addClass('sel');

    //$("#book-page").eq(0).empty();
    $(ulbook).clone().appendTo("#book-page");
    $("#book-page").eq(0).append("<br class=\"cl\" />");

    $("#book-page").eq(0).customScroll({
        resizeWidth: true,
        resizeHeight: true,
        outerMarginWidth: 230,
        isHorizontal: true,
        enableClick: true
    });

    //page_onLoad(page, ulbook);
}

var so = null;

function vbook_onLoad(idbook,booktitle) {
    $("#vbook-player").empty();
    $(".book-name-current").html(booktitle);
    $(".book-print-current").hide();

    so = null;
    so = new SWFObject('/a/mediaplayer/player.swf', 'mpl', '640', '560', '9');
    so.addParam('allowfullscreen', 'true');
    so.addParam('allowscriptaccess', 'always');
    so.addParam('wmode', 'opaque');
    so.addVariable('playlistfile', '/VideoBooks/' + idbook + '/playlist');
    so.addVariable('playlistsize', '120');
    so.addVariable('playlist', 'bottom');
    so.addVariable('autostart', 'true');
    so.write('vbook-player');
    
    $("#book-viewer").hide();
    $("#vbook-viewer").show();
    page_onLoad(page, ulbook);
}

function submissionForm_onSubmit() {
    $("#submit").val('Submitting please wait...');
    $("#submit").attr("disabled", true);
    return null;
}
