﻿ var isIE = (document.all) ? true : false;

        var $ = function (id) {
	        return "string" == typeof id ? document.getElementById(id) : id;
        };

        var Class = {
	        create: function() {
		        return function() { this.initialize.apply(this, arguments); }
	        }
        }

        var Extend = function(destination, source) {
	        for (var property in source) {
		        destination[property] = source[property];
	        }
        }

        var Bind = function(object, fun) {
	        return function() {
		        return fun.apply(object, arguments);
	        }
        }

        var BindAsEventListener = function(object, fun) {
	        return function(event) {
		        return fun.call(object, (event || window.event));
	        }
        }

        function addEventHandler(oTarget, sEventType, fnHandler) {
	        if (oTarget.addEventListener) {
		        oTarget.addEventListener(sEventType, fnHandler, false);
	        } else if (oTarget.attachEvent) {
		        oTarget.attachEvent("on" + sEventType, fnHandler);
	        } else {
		        oTarget["on" + sEventType] = fnHandler;
	        }
        };

        function removeEventHandler(oTarget, sEventType, fnHandler) {
            if (oTarget.removeEventListener) {
                oTarget.removeEventListener(sEventType, fnHandler, false);
            } else if (oTarget.detachEvent) {
                oTarget.detachEvent("on" + sEventType, fnHandler);
            } else { 
                oTarget["on" + sEventType] = null;
            }
        };
    
       //拖放程序
       var SimpleDrag = Class.create();
        SimpleDrag.prototype = {
          //拖放对象,触发对象
          initialize: function(drag) {
	        this.Drag = $(drag);
	       // this._x = this._y = 0;
	        this._fM = BindAsEventListener(this, this.Move);
	        this._fS = Bind(this, this.Stop);
	        this.Drag.style.position = "absolute";
	        addEventHandler(this.Drag, "mousedown", BindAsEventListener(this, this.Start));
          },
          //准备拖动
          Start: function(oEvent) {
	        this._x = oEvent.clientX - this.Drag.offsetLeft;
	        this._y = oEvent.clientY - this.Drag.offsetTop;
	        addEventHandler(document, "mousemove", this._fM);
	        addEventHandler(document, "mouseup", this._fS);
          },
          //拖动
          Move: function(oEvent) {
	        this.Drag.style.left = oEvent.clientX - this._x + "px";
	        this.Drag.style.top = oEvent.clientY - this._y + "px";
          },
          //停止拖动
          Stop: function() {
	        removeEventHandler(document, "mousemove", this._fM);
	        removeEventHandler(document, "mouseup", this._fS);
          }
        };
    
    //隐藏 
    function hideDiv()
    {
       document.getElementById("assist").style.display="none"; 
    }
    
    function showDiv()
    {
         
        document.getElementById("assist").style.display="block"; 
       setdialog();  //设置位置  
        
    }
    
    function setdialog()
    {
        var h;
        h=getPS('password');
        switch(getOs())
        {
           case 1:  //IE
 
              document.getElementById("assist").style.top=h.top+"px";
              document.getElementById("assist").style.left=h.left+145+"px";   
              break;   
           case 6:  //谷歌(google)
             
               document.getElementById("assist").style.top= h.top +"px";
              document.getElementById("assist").style.left=h.left+140+"px";  
  
              break;
           default: //FireFox  x:498  y:475.5

              document.getElementById("assist").style.top=h.top+"px";
              document.getElementById("assist").style.left=h.left+140+"px";   
              break;
        }
        new SimpleDrag("assist");
    }
    
    //得到某一控件的位置
    function getPS(node) 
    {
        if(typeof node=='string')node=document.getElementById(node);
        var offsetTop = node.offsetTop;
        var offsetLeft = node.offsetLeft;
        var offsetWidth = node.offsetWidth;
        var offsetHeight = node.offsetHeight;
        while (node = node.offsetParent) 
        {
            offsetTop += node.offsetTop;
            offsetLeft += node.offsetLeft;
        }
        return { left: offsetLeft, top: offsetTop, width: offsetWidth, height: offsetHeight }
    }

    
    
    function getOs()
    {
       if(isWebkit =navigator.userAgent.indexOf("AppleWebKit")>-1) return 6;
       if(navigator.userAgent.indexOf("MSIE")>0)return 1;
       if(isFirefox=navigator.userAgent.indexOf("Firefox")>0)return 2;
       if(isSafari=navigator.userAgent.indexOf("Safari")>0)return 3;   
       if(isCamino=navigator.userAgent.indexOf("Camino")>0)return 4;
       if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0)return 5;
        
       return 0;
    }