﻿//使FireFox 事件对象成为全局对象
if(!document.all){
    window.constructor.prototype.__defineGetter__("event",function(){
		    var func = arguments.callee.caller;
		    while(func != null){
			    var arg0 = func.arguments[0];
			    if(arg0 && (arg0.constructor==Event || arg0.constructor ==MouseEvent)){
				    return arg0;
			    }
			    func = func.caller;
		    }
    	    return null;
	    });
}

//obj:支持拖动的对象 e:全局事件 limit:是否可拖出父元素 
//followObj:跟随obj一起移动的对象 warpx:followObj和obj的x偏差 warpy:followObj和obj的y偏差
function fDragging(obj, e, limit, followObj, followObj2){
    if(!e) e=window.event; 

    var x=parseInt(obj.style.left); 
    var y=parseInt(obj.style.top);         
     
    var x_=e.clientX-x; 
    var y_=e.clientY-y;    
    
    if (followObj != null)
    {
        var warpx = parseInt(followObj.style.left) - x;
        var warpy = parseInt(followObj.style.top) - y;
    }
    
    if (followObj2)
    {
        var warpx2 = parseInt(followObj2.style.left) - x;
        var warpy2 = parseInt(followObj2.style.top) - y;
    }    
    
    if(document.addEventListener){ 
        document.addEventListener('mousemove', inFmove, true); 
        document.addEventListener('mouseup', inFup, true); 
    } else if(document.attachEvent){ 
        document.attachEvent('onmousemove', inFmove); 
        document.attachEvent('onmouseup', inFup); 
    } 
     
    inFstop(e);     
    inFabort(e) 
     
    function inFmove(e){ 
        var evt; 
        if(!e)e=window.event; 
         
        if(limit){ 
            var op=obj.parentNode; 
            var opX=parseInt(op.style.left); 
            var opY=parseInt(op.style.top); 
             
            if((e.clientX-x_)<0) return false; 
            else if((e.clientX-x_+obj.offsetWidth+opX)>(opX+op.offsetWidth)) return false; 
             
            if(e.clientY-y_<0) return false; 
            else if((e.clientY-y_+obj.offsetHeight+opY)>(opY+op.offsetHeight)) return false; 
        } 
         
        obj.style.left=e.clientX-x_+'px'; 
        obj.style.top=e.clientY-y_+'px'; 
        
        if (followObj != null)
        {
            followObj.style.left = parseInt(obj.style.left)+warpx+'px'; 
            followObj.style.top = parseInt(obj.style.top)+warpy+'px';
        }
         
        if (followObj2)
        {
            followObj2.style.left = parseInt(obj.style.left)+warpx2+'px'; 
            followObj2.style.top = parseInt(obj.style.top)+warpy2+'px';
        }
         
        inFstop(e); 
    } 
    function inFup(e){ 
        var evt; 
        if(!e)e=window.event; 
         
        if(document.removeEventListener){ 
            document.removeEventListener('mousemove', inFmove, true); 
            document.removeEventListener('mouseup', inFup, true); 
        } else if(document.detachEvent){ 
            document.detachEvent('onmousemove', inFmove); 
            document.detachEvent('onmouseup', inFup); 
        } 
         
        inFstop(e); 
    } 

    function inFstop(e){ 
        if(e.stopPropagation) return e.stopPropagation(); 
        else return e.cancelBubble=true;             
    } 
    function inFabort(e){ 
        if(e.preventDefault) return e.preventDefault(); 
        else return e.returnValue=false; 
    } 
} 
//title:层标题文本 mask:是否在层下面加上一个掩盖层,w:层宽 h:层高 elemId:要居中显示的层id
var middleElem = null;
function MiddleElement(title,mask,elemId,drag,titleImgUrl,bColor)
{
    if (document.getElementById('middleElement_bgObj') || document.getElementById('middleElement_msgObj'))
        return;

    middleElem = document.getElementById(elemId);    
    middleElem.style.display = 'block';  
    //var w = parseInt(middleElem.width || middleElem.style.width);
    //var h = parseInt(middleElem.height || middleElem.style.height);
    var w = parseInt(middleElem.offsetWidth);
    var h = parseInt(middleElem.offsetHeight);
    
    var iWidth = document.documentElement.clientWidth; 
    var iHeight = document.documentElement.clientHeight;

    var objW = (iWidth-w)/2+document.documentElement.scrollLeft;
    var objH = (iHeight-h)/2+document.documentElement.scrollTop;
    
    var bgObj;
    var msgObj
    if(mask == true)
    {
         if (!document.getElementById('middleElement_bgDiv') )
         {
            bgDiv = document.createElement("div");
            bgDiv.style.cssText = "position:absolute;left:0px;top:0px;width:"+iWidth+"px;height:"+Math.max(document.body.clientHeight, iHeight)+"px;filter:Alpha(Opacity=40);opacity:0.4;background-color:black;z-index:1000;margin:0px;padding:0px;";
            bgDiv.id = 'middleElement_bgDiv';
            document.body.appendChild(bgDiv);
         }             
    }
  
    if (!document.getElementById('middleElement_bgObj') )
    {
         bgObj = document.createElement("iframe");
         bgObj.style.cssText = "border:1px solid red;position:absolute;left:"+objW+"px;top:"+objH+"px;width:"+w+"px;height:"+(h+30)+"px;z-index:1001;margin:0px;padding:0px;background-color:#fff;";             
         bgObj.id = 'middleElement_bgObj';
         document.body.appendChild(bgObj);
    }
    
    msgObj=document.createElement("div");    
    msgObj.style.cssText = "position:absolute;top:"+objH+"px;left:"+objW+"px;width:"+w+"px;height:"+(h+30)+"px;border:2px solid #336699;z-index:1002;margin:0px;padding:0px;background-color:white;";
    if (bColor) msgObj.style.borderColor = bColor;
    msgObj.id='middleElement_msgObj';
    document.body.appendChild(msgObj);        

    var titleBg=document.createElement("div");    
    titleBg.style.cssText="height:30px;width:"+w+"px;background:url(/images/Manor/MiddleElemTitleBg.gif);margin:0px;padding:0px;cursor:move;";
    if (titleImgUrl) titleBg.style.backgroundImage = "url("+titleImgUrl+")";
    msgObj.appendChild(titleBg);    
    
    var titleObj=document.createElement("div");
    titleObj.style.cssText="margin-left:10px;margin-top:8px;float:left;color:#2A6109;font-size:15px;font-weight:bold;"        
    titleObj.innerHTML = title;
    titleBg.appendChild(titleObj);
    
    var closeObj=document.createElement("a");
    closeObj.style.cssText="text-decoration:none;display:block;font-family:'Trebuchet MS', Verdana, Arial;color:#204A87;float:right;margin-right:8px;margin-top:4px;font-size:16px;font-weight:bold;cursor:hand;"    
    closeObj.innerHTML = 'X';
    closeObj.id='closeMiddleElement';
    closeObj.onclick=function()
    {		
        CloseMiddleElement();
    }    
    closeObj.onmouseover=function()
    {
        closeObj.style.color='#9BB3B3';
    }
    closeObj.onmouseout=function()
    {
        closeObj.style.color='#204A87';
    }
    titleBg.appendChild(closeObj);    
    
    middleElem.style.left = (objW+2)+'px';
    middleElem.style.top = (objH+32)+'px';
    middleElem.style.margin='0px';
    middleElem.style.padding='0px';
    middleElem.style.zIndex='1003';
    middleElem.style.position='absolute';

    if (drag)
    {      
        titleBg.onmousedown=function(){fDragging(msgObj,event,false,middleElem,bgObj);}
    }             
}

function CloseMiddleElement(doc)
{
	
    if (middleElem)
    {
        middleElem.style.display='none';
    }   
    
    var bgDiv = null;
    var bgObj = null;
    var msgObj = null;
    
    if (doc)
    {
        bgDiv = doc.getElementById('middleElement_bgDiv');
        bgObj = doc.getElementById('middleElement_bgObj');
        msgObj = doc.getElementById('middleElement_msgObj');
    }
    else
    {
        bgDiv = document.getElementById('middleElement_bgDiv');
        bgObj = document.getElementById('middleElement_bgObj');
        msgObj = document.getElementById('middleElement_msgObj');
    }    

    if(msgObj) document.body.removeChild(msgObj);
    if(bgObj) document.body.removeChild(bgObj);  
    if(bgDiv) document.body.removeChild(bgDiv);            
}

