//
//  directory.js
//  examples
//
//  Created by David Rowe on 8 Jun 2015
//  Copyright 2015 High Fidelity, Inc.
//
//  Distributed under the Apache License, Version 2.0.
//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//

Script.include([
    "libraries/toolBars.js",
]);

var toolIconUrl = Script.resolvePath("assets/images/tools/");

var DIRECTORY_WINDOW_URL = Account.metaverseServerURL + "/directory";
var directoryWindow = new OverlayWebWindow({
    title: 'Directory',
    source: "about:blank",
    width: 900,
    height: 700,
    visible: false
});

var toolHeight = 50;
var toolWidth = 50;
var TOOLBAR_MARGIN_Y = 0;


function showDirectory() {
    directoryWindow.setURL(DIRECTORY_WINDOW_URL);
    directoryWindow.setVisible(true);
}

function hideDirectory() {
    directoryWindow.setVisible(false);
    directoryWindow.setURL("about:blank");
}

function toggleDirectory() {
    if (directoryWindow.visible) {
        hideDirectory();
    } else {
        showDirectory();
    }
}

var toolBar = (function() {
    var that = {},
        toolBar,
        browseDirectoryButton;

    function initialize() {
        toolBar = new ToolBar(0, 0, ToolBar.HORIZONTAL, "highfidelity.directory.toolbar", function(windowDimensions, toolbar) {
            return {
                x: windowDimensions.x / 2,  
                y: windowDimensions.y
            };
        }, {
            x: -2 * toolWidth,
            y: -TOOLBAR_MARGIN_Y - toolHeight
        });
        browseDirectoryButton = toolBar.addTool({
            imageURL: toolIconUrl + "directory.svg",
            subImage: {
                x: 0,
                y: Tool.IMAGE_WIDTH,
                width: Tool.IMAGE_WIDTH,
                height: Tool.IMAGE_HEIGHT
            },
            width: toolWidth,
            height: toolHeight,
            alpha: 0.9,
            visible: true
        });

        toolBar.showTool(browseDirectoryButton, true);
    }

    var browseDirectoryButtonDown = false;
    that.mousePressEvent = function(event) {
        var clickedOverlay,
            url,
            file;

        if (!event.isLeftButton) {
            // if another mouse button than left is pressed ignore it
            return false;
        }

        clickedOverlay = Overlays.getOverlayAtPoint({
            x: event.x,
            y: event.y
        });



        if (browseDirectoryButton === toolBar.clicked(clickedOverlay)) {
            toggleDirectory();
            return true;
        }

        return false;
    };

    that.mouseReleaseEvent = function(event) {
        var handled = false;


        if (browseDirectoryButtonDown) {
            var clickedOverlay = Overlays.getOverlayAtPoint({
                x: event.x,
                y: event.y
            });
        }

        newModelButtonDown = false;
        browseDirectoryButtonDown = false;

        return handled;
    }

    that.cleanup = function() {
        toolBar.cleanup();
    };

    initialize();
    return that;
}());

Controller.mousePressEvent.connect(toolBar.mousePressEvent)
Script.scriptEnding.connect(toolBar.cleanup);