/**
 * 锁屏鼠标事件
 */
var mouse = {
    mouseElement: undefined,
    isLock: false, // 是否锁定
    init: function (element) {
        this.mouseElement = element;
    },
    startLock:function(){
        mouse.enterLock();
        mouse.mouseElement.addEventListener('mousedown',mouse.onMouseDown,false);
    },
    endLock:function(){
        mouse.exitLock();
        mouse.mouseElement.removeEventListener('mousedown',mouse.onMouseDown,false);
    },
    enterLock: function () {
        mouse.isLock = true;
        var elem = mouse.mouseElement;
        elem.requestPointerLock = elem.requestPointerLock || elem.mozRequestPointerLock || elem.webkitRequestPointerLock;
        elem.requestPointerLock();
        document.body.style.cursor = "";
    },
    exitLock: function () {
        document.exitPointerLock = document.exitPointerLock || document.mozExitPointerLock || document.webkitExitPointerLock;
        document.exitPointerLock();
        mouse.isLock = false;
    },
    onMouseDown:function(event){
        if(mouse.isLock){
            mouse.exitLock();
        }
        else{
            mouse.enterLock();
        }
    }
}

/**
 * 菜单事件
 */
var contextMenu = {
    init: function () {
        document.oncontextmenu = contextMenu.onContextMenu;
        window.addEventListener('click',function(){
            document.getElementById("menu").style.visibility="hidden";
        },false)
        window.$("#menu_fullscreen").on('click',function(){
            window.$("#menu_exitfullscreen").show();
            window.$("#menu_fullscreen").hide();
            window.$("#menu_vr").show();
            window.$('#fullscreen_btn').click();
        });
        window.$("#menu_exitfullscreen").on('click',function(){
            window.$("#menu_fullscreen").show();
            window.$("#menu_exitfullscreen").hide();
            window.$("#menu_vr").show();
            window.$('#exitFullScreen_btn').click();
        });
        window.$("#menu_vr").on('click',function(){
            window.$("#menu_exitfullscreen").show();
            window.$("#menu_fullscreen").hide();
            window.$("#menu_vr").hide();
            window.$("#VR_btn").click();
        })
    },
    onContextMenu:function(event) {
        if((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))){
            // window.$("#list").addEventListener('contextmenu', function(e){
            //    e.preventDefault();
            // });
            $( "#list" ).contextmenu(function(e) {
                e.preventDefault();
            });
            return
          }
        var ulId = document.getElementById("menu");
        /*鼠标的位置*/
        var x = event.clientX; //鼠标相对于浏览器的水平坐标
        var y = event.clientY; //鼠标相对于浏览器的垂直坐标
        /*涵盖所有浏览器:浏览器窗口的尺寸*/
        var Bwidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
        var Bheight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
        /*ul的宽高*/
        var ulWidht = ulId.offsetWidth;
        var ulHeight = ulId.offsetHeight;
        //剩余水平和垂直距离，用于判断是否可以完全显示菜单
        var Rwidth = Bwidth - x;
        var Rheight = Bheight - y;
        /*	鼠标x坐标到浏览器右边距的宽度小于菜单宽度，
        	并且鼠标y坐标到下边距的高度小于菜单高度。
        	右键菜单的左(x)坐标为浏览器宽度减去菜单宽度，
        	上坐标(y)为浏览器高度减去菜单高度*/
        if (Rwidth < ulWidht && Rheight < ulWidht) {
            ulId.style.left = (Bwidth - ulWidht) + "px";
            ulId.style.top = (Bheight - ulHeight) + "px";
        } else if (Rwidth < ulWidht) {
            //鼠标x坐标到浏览器右边距的宽度小于菜单宽度，x坐标为浏览器宽度减去菜单宽度，y坐标不变
            ulId.style.left = (Bwidth - ulWidht) + "px";
            ulId.style.top = y + "px";
        } else if (Rheight < ulHeight) {
            /*鼠标y坐标到下边距的高度小于菜单高度,x坐标不变，y坐标为浏览器高度减菜单高度*/
            ulId.style.left = x + "px";
            ulId.style.top = (Bheight - ulHeight) + "px";
        } else {
            /*菜单没有超出范围时，坐标为鼠标坐标*/
            ulId.style.left = x + "px";
            ulId.style.top = y + "px";
        }
        ulId.style.visibility = "visible";
        return false; //取消鼠标默认右键事件
    }
}