﻿var DragFloat = {
    _baseUrl: "/",
    _loginDivWidth: 373,
    _loginDivHeight: 257,
    _sign_in_flow: function() {
        return '<div id="dragfloag_drag_div" style="background:url(' + this._baseUrl + 'ZBOnline/images/floatdiv/ex_r1_c1.jpg) no-repeat;  width:373px; height:31px; line-height:31px; font-weight:bold;"><div style="float:left; cursor:move; width:35px; padding-left:5px; margin-top:5px;"><img src="' + this._baseUrl + 'ZBOnline/images/floatdiv/icon.gif" width="23" height="23" border="0" /></div><div style="cursor:move; float:left; width: 280px;">快速登录窗口</div><div style="float:left; width: 25px;padding-left:25px; margin-top:7px; cursor:pointer; "><img src="' + this._baseUrl + 'ZBOnline/images/floatdiv/ex_r1_c1_r2_c2.jpg" width="17" height="17" border="0" onclick="DragFloat.cancelSign();" alt="关闭" /></div></div>'
                        + '<div id="dragfloag_content_div" style="background:url(' + this._baseUrl + 'ZBOnline/images/floatdiv/ex_r2_c1.jpg) no-repeat; width:363px; height:226px; padding:0px 5px 0px 5px;">'
                        + '</div>';
    },

    isIE: function() {
        return (document.all && window.ActiveXObject && !window.opera) ? true : false;
    },

    cancelSign: function() {
        document.getElementById("sign_div").style.display = 'none';
        document.getElementById("cover_div").style.display = 'none';
        document.body.style.overflow = '';
    },

    popCoverDiv: function() {
        var coverDiv = document.createElement('div');
        document.body.appendChild(coverDiv);
        with (coverDiv.style) {
            display = 'none';
            position = 'absolute';
            background = '#CCCCCC';
            left = '0px';
            top = '0px';
            var bodySize = this.getBodySize();
            width = bodySize[0] + 'px'
            height = bodySize[1] + 'px';
            zIndex = 999;
            if (this.isIE()) {
                filter = "Alpha(Opacity=60)";
            } else {
                opacity = 0.6;
            }
        }
        coverDiv.id = 'cover_div';
        $(coverDiv).bind("click",DragFloat.cancelSign);
    },

    getBodySize: function() {
        var bodySize = [];
        with (document.documentElement) {
            bodySize[0] = (scrollWidth > clientWidth) ? scrollWidth : clientWidth;
            bodySize[1] = (scrollHeight > clientHeight) ? scrollHeight : clientHeight;
        }
        return bodySize;
    },

    popSign: function() {
        var signDiv = document.createElement('div');
        document.body.appendChild(signDiv);
        with (signDiv.style) {
            display = 'none';

            position = 'absolute';
            left = (document.documentElement.clientWidth - this._loginDivWidth) / 2 + 'px';
            top = (document.documentElement.clientHeight - this._loginDivHeight) / 2 + document.documentElement.offsetTop + 'px';
            width = this._loginDivWidth + 'px';
            zIndex = 1000;
            background = '#FFFFFF';
            border = '#66CCFF solid 1px';
        }
        signDiv.id = 'sign_div';
        //signDiv.align = "center";
        document.getElementById("sign_div").innerHTML = this._sign_in_flow();
    },

    //说明：显示浮动层
    //参数：ajaxUrl请求的ajax页面的地址，填充页面的内容
    popSignFlow: function(ajaxUrl) {
        document.getElementById("cover_div").style.display = '';
        var signDiv = document.getElementById("sign_div");

        //    debugger;
        //设置浮动窗口的位置
        with (signDiv.style) {
            display = '';
            left = (document.documentElement.clientWidth - this._loginDivWidth) / 2 + 'px';
            top = (document.documentElement.clientHeight - this._loginDivHeight) / 2 + document.documentElement.scrollTop + 'px';
        }

        document.body.style.overflow = "hidden";
        $.get(ajaxUrl,
            function(data) {
                document.getElementById("dragfloag_content_div").innerHTML = data;
            }
        );
    },

    //以下是拖拽。。。
    offsetX: 0,
    offsetY: 0,
    currentLeft: 0,
    currentTop: 0,
    isDrag: false,

    stopEvent: function(evt) {
        var event = window.event ? window.event : evt;
        if (event.preventDefault) {
            event.preventDefault();
            event.stopPropagation();
        } else {
            event.returnValue = false;
        }
    },

    mouseDownEvent: function(event) {
        var evt = window.event ? window.event : event.data.evt;
        var dragDiv = document.getElementById('dragfloag_drag_div');
        var parent = dragDiv.parentElement || dragDiv.parentNode;
        if ((evt.which && evt.which == 1) || (evt.button && evt.button == 1)) {
            event.data.__this.isDrag = true;
            event.data.__this.offsetX = evt.clientX;
            event.data.__this.offsetY = evt.clientY;
            event.data.__this.currentLeft = parseInt(parent.style.left);
            event.data.__this.currentTop = parseInt(parent.style.top);
        }
        event.data.__this.stopEvent(evt);
    },

    mouseMoveEvent: function(event) {
        if (event.data.__this.isDrag) {
            var evt = window.event ? window.event : event.data.evt;
            var dragDiv = document.getElementById('dragfloag_drag_div');
            var parent = dragDiv.parentElement || dragDiv.parentNode;
            parent.style.left = evt.clientX - event.data.__this.offsetX + event.data.__this.currentLeft + 'px';
            parent.style.top = evt.clientY - event.data.__this.offsetY + event.data.__this.currentTop + 'px';
            event.data.__this.stopEvent(evt);
        }
    },

    mouseUpEvent: function(event) {
        event.data.__this.isDrag = false;
        var evt = window.event ? window.event : event.data.evt;
        var dragDiv = document.getElementById('dragfloag_drag_div');
        var parent = dragDiv.parentElement || dragDiv.parentNode;
        event.data.__this.currentLeft = parseInt(parent.style.left);
        event.data.__this.currentTop = parseInt(parent.style.top);
        event.data.__this.stopEvent(evt);
    },

    drag: function() {
        this.popCoverDiv();
        this.popSign()
        $('#dragfloag_drag_div').bind("mousedown", { evt: window.event, __this: this }, this.mouseDownEvent);
        $(document).bind("mousemove", { evt: window.event, __this: this }, this.mouseMoveEvent);
        $(document).bind("mouseup", { evt: window.event, __this: this }, this.mouseUpEvent);
    }
}

$(document).ready(function() {
    DragFloat.drag();
}); 
