//dragDiv.js
// 实现可拖动的div
    /*-------------------------鼠标拖动---------------------*/    
function drag(dragid){ 
    var od = document.getElementById(dragid);    
    var dx,dy,mx,my,mouseD;
    var odrag;
   // var isIE = document.all ? true : false;
	var isIE = (document.all) ? true : false; //document.all 只有ie支持此属性
	//var ieVersion = 7; //IE版本，默认为7
	//if (isIE)	ieVersion = parseFloat(navigator.appVersion.split("MSIE")[1]);
    document.onmousedown = function(e){
        var e = e ? e : event;
        if(e.button == (document.all ? 1 : 0))
        {
            mouseD = true;            
        }
    }
    document.onmouseup = function(){
        mouseD = false;
        odrag = "";
        if(isIE)
        {
            od.releaseCapture();
           // if(ieVersion<7) od.filters.alpha.opacity = 100;
			od.style.filter = "alpha(opacity=100)";
			//else od.style.opacity = 1;
        }
        else
        {
            window.releaseEvents(od.MOUSEMOVE);
            od.style.opacity = 1;
        }  
		od.style.cursor = 'default';      
    }
    
    od.onmouseup = function(){
        mouseD = false;
        odrag = "";
        if(isIE)
        {
            od.releaseCapture();
           // if(ieVersion<7) od.filters.alpha.opacity = 100;
			od.style.filter = "alpha(opacity=100)";
			//else od.style.opacity = 1;
        }
        else
        {
            window.releaseEvents(od.MOUSEMOVE);
            od.style.opacity = 1;
        }  
		od.style.cursor = 'default';      
    }
    //function readyMove(e){    
    od.onmousedown = function(e){
        odrag = this;
        var e = e ? e : event;
        if(e.button == (document.all ? 1 : 0))
        {
            mx = e.clientX;
            my = e.clientY;
            od.style.left = od.offsetLeft + "px";
            od.style.top = od.offsetTop + "px";
			od.style.cursor = 'move';
            if(isIE)
            {
                od.setCapture();                
               // if(ieVersion<7) od.filters.alpha.opacity = 50;
				od.style.filter = "alpha(opacity=50)";
				//else od.style.opacity = 0.5;
            }
            else
            {
                window.captureEvents(Event.MOUSEMOVE);
                od.style.opacity = 0.5;
            }
            
            //alert(mx);
            //alert(my);
            
        } 
    }
    document.onmousemove = function(e){
        var e = e ? e : event;
        
        //alert(mrx);
        //alert(e.button);        
        if(mouseD==true && odrag)
        {        
            var mrx = e.clientX - mx;
            var mry = e.clientY - my;    
            od.style.left = parseInt(od.style.left) +mrx + "px";
            od.style.top = parseInt(od.style.top) + mry + "px";            
            mx = e.clientX;
            my = e.clientY;
            
        }
    }
}
//显示弹出层
function showDivById(showDiv,obj,pos){

	var xy,left,top;
	  if (obj == null){
		throw new Error("object of html is necessary");
	  }	 
	  xy = getAbsPoint(obj);	  
	  pos = pos || 3;		  
	  switch(pos)
	  {
	  	 case 1://上
		 	 left = xy.x;top = (xy.y-height);break;
		 case 2://右
		 	 left = (xy.x + obj.offsetWidth); top = xy.y;break;	
		 case 3://下		 	
		 	 left = xy.x;
			 top = xy.y+obj.offsetHeight;		
			 break;				 	 
		 case 4://左
		 	 left = (xy.x -width); top = xy.y;break;
		 case 5://下右对齐
		 	 left = xy.x+obj.offsetWidth-width; top = xy.y+obj.offsetHeight; break;		
	  	 default://下中
		 	 left = (xy.x- width/2 + obj.offsetWidth/2);top = (xy.y + obj.offsetHeight);//alert(top+'*'+left);
	  }		 
	  if(top<0 || left<0) top = left = 0;
	
	  
	  document.getElementById(showDiv).style.position = "absolute";
	  document.getElementById(showDiv).style.zIndex = "9999";	
	  document.getElementById(showDiv).style.top = top + "px"; 
	  document.getElementById(showDiv).style.left = left + "px";
	  document.getElementById(showDiv).style.display = '';

}

//根据对象位置弹出层,obj,pos{1上2右3下4左}
function popDivWithObj(id,mask,width,height,title,content,close,obj,pos){
	  var xy,left,top;
	  if (obj == null){
		throw new Error("object of html is necessary");
	  }	 
	  xy = getAbsPoint(obj);
	  //alert(xy.x);alert(width);	 
	  pos = pos || 3;		  
	  switch(pos)
	  {
	  	 case 1://上
		 	 left = xy.x;top = (xy.y-height);break;
		 case 2://右
		 	 left = (xy.x + obj.offsetWidth); top = xy.y;break;	
		 case 3://下		 	
		 	 left = xy.x;
			 top = xy.y+obj.offsetHeight;		
			 break;				 	 
		 case 4://左
		 	 left = (xy.x -width); top = xy.y;break;
		 case 5://下右对齐
		 	 left = xy.x+obj.offsetWidth-width; top = xy.y+obj.offsetHeight; break;		
		 case 6://左上
		 	 left = (xy.x -width); top = xy.y-height;break;	 	
		 case 7://下左对齐
		 	 left = (xy.x -width); top = (xy.y + obj.offsetHeight);break;
	  	 default://下中
		 	 left = (xy.x- width/2 + obj.offsetWidth/2);top = (xy.y + obj.offsetHeight);//alert(top+'*'+left);
	  }	
	 
	  if(top<0) top = 0;
	  if(left<0) left = 0;	 
	  openNewDiv(id,mask,width,height,title,content,close,left,top);   
}
//根据事件弹出层
function popDivWithEvent(id,mask,width,height,title,content,close,evt){
	  if (evt == null){
		throw new Error("event is necessary");
	  }
	  var evt = window.event?window.event:evt; 
	  var left= evt.clientX; 
	  var top = evt.clientY+5;
	  openNewDiv(id,mask,width,height,title,content,close,left,top);   
}
//在指定位置弹出层，并可移动,xpos,ypos都为0时 居中位置
function openNewDiv(_id,m,width,height,title,content,close,xpos,ypos){
	
    var isIE = (document.all) ? true : false; //document.all 只有ie支持此属性
	var ieVersion = 7; //IE版本，默认为7
	if (isIE)	ieVersion = parseFloat(navigator.appVersion.split("MSIE")[1]);
	
  XY = getPageXY(); 
  m = m || "";
  title = title || "";
  //close = close || "关闭";
  var close_func = (close == undefined || close=="") ? "" : close+"('"+_id+"','"+m+"');";
  var middle_w = (parseInt(XY[0]) - width) > 0 ? (parseInt(XY[0]) - width) / 2  : 0;
  var middle_h = (parseInt(XY[1]) - height) > 0 ?  (parseInt(XY[1]) - height) / 2  : 0;
  xpos = xpos == undefined ? middle_w : xpos; // 屏幕居中
  ypos = ypos == undefined ? middle_h : ypos ;// 屏幕居中
  if (docEle(_id)) document.body.removeChild(docEle(_id));
  if (m && docEle(m)) document.body.removeChild(docEle(m));
  // 新激活图层
  var newDiv = document.createElement("div");
  newDiv.id = _id;
  newDiv.style.position = "absolute";
  newDiv.style.zIndex = "9999";
  newDiv.style.width = width+"px";
  newDiv.style.height = height+"px";
  newDiv.style.top = ypos + "px"; // 屏幕居中;
  //newDiv.style.textAlign = "center";
  newDiv.style.left = xpos + "px"; // 屏幕居中
  newDiv.style.background = "#ffffff";
  newDiv.style.border = "1px solid #cccccc";
  newDiv.style.overflow = "hidden";
  //newDiv.style.padding = "5px";  
 
  if(m){
	  // mask图层
	  var newMask = document.createElement("div");
	  newMask.id = m;
	  newMask.style.position = "absolute";
	  newMask.style.zIndex = "1";
	//  newMask.style.width = document.body.scrollWidth+"px";
//	  newMask.style.height = document.body.scrollHeight+ "px";
	  newMask.style.width = XY[0]+"px";
	  newMask.style.height = XY[1]+ "px";
	  newMask.style.top = "0px";
	  newMask.style.left = "0px";
	  newMask.style.background = "#000";
	  newMask.style.filter = "alpha(opacity=40)";
	  newMask.style.opacity = "0.40";
	  document.body.appendChild(newMask); 
  }
  //将所有select置为不可用
  if (ieVersion < 7) { 
        var oSelects = document.getElementsByTagName("select");
        for (var i = 0; i < oSelects.length; i++) {
            oSelects[i].disabled = true;
            oSelects[i].style.visibility = "hidden";
        }
    }
 
  //title height:30px
  if(title.length>0){
	 header = "<div style='font-size:12px;width:"+width+"px;background:#cccccc;line-height:30px;height:30px;cursor: move;' onmousedown=\"drag('"+_id+"');\"><div style='cursor: move;float:left;font-weight:bold;padding-left:5px;line-height:30px;height:30px;background:#cccccc;width:"+(width-33-5-5-2)+"px'>"+title+"</div><div  onclick=\""+close_func+";closeLightBox('"+_id+"','"+m+"');\" style=\"cursor: pointer; color: Blue; width:33px;background:#cccccc; float:right;padding-right:5px;line-height:30px;height:30px;\">关闭</div></div>";	  
	 newDiv.innerHTML = header;	 
  }else{	  
	 newDiv.onmousedown = function(){drag(_id);}//可移动
  }
 
  //内容层
  var  contentDiv = document.createElement("div");
 
  contentDiv.style.height = (title) ? height-30+"px" : height+"px";
  contentDiv.style.width = width+"px";
/*  contentDiv.style.paddingLeft = "5px";  
  contentDiv.style.paddingRight = "5px"; */ 
  contentDiv.style.clear = "both";
  contentDiv.innerHTML = content;
  newDiv.appendChild(contentDiv);
  document.body.appendChild(newDiv);//alert("dd");
}
/**************************************************** 
获取坐标 
*******************************************************/ 
function getPageXY() { 
var xScroll, yScroll; 
if (window.innerHeight && window.scrollMaxY) { 
xScroll = document.body.scrollWidth; 
yScroll = window.innerHeight + window.scrollMaxY; 
}else if (document.body.scrollHeight >= document.body.offsetHeight){ 
xScroll = document.body.scrollWidth; 
yScroll = document.body.scrollHeight; 
}else { 
xScroll = document.body.offsetWidth; 
yScroll = document.body.offsetHeight; 
} 


var windowWidth, windowHeight; 
if (self.innerHeight) { 
windowWidth = self.innerWidth; 
windowHeight = self.innerHeight; 
}else if (document.documentElement && document.documentElement.clientHeight) { 
windowWidth = document.documentElement.clientWidth; 
windowHeight = document.documentElement.clientHeight; 
}else if (document.body) { 
windowWidth = document.body.clientWidth; 
windowHeight = document.body.clientHeight; 
} 

if(yScroll < windowHeight){ 
pageHeight = windowHeight; 
}else { 
pageHeight = yScroll; 
} 

if(xScroll < windowWidth){ 
pageWidth = windowWidth; 
}else { 
pageWidth = xScroll; 
} 
var arrayPageXY = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
return arrayPageXY; 
} 
function docEle(id) {
 // return document.getElementById(arguments[0]) || false;
  return document.getElementById(id) || false;
}
 //点击关闭lightbox
function closeLightBox(_id,m) {
   if (_id && docEle(_id) )document.body.removeChild(docEle(_id));
   if (m && docEle(m)) document.body.removeChild(docEle(m));
   var isIE = (document.all) ? true : false; //document.all 只有ie支持此属性
	var ieVersion = 7; //IE版本，默认为7
	if (isIE) {
		ieVersion = parseFloat(navigator.appVersion.split("MSIE")[1]);
	}
   //将所有select置为可用
     if (ieVersion < 7) { 
        var oSelects = document.getElementsByTagName("select");
        for (var i = 0; i < oSelects.length; i++) {
            oSelects[i].disabled = false;
            oSelects[i].style.visibility = "visible";
        }
    }	
   return false;
}
//取得HTML控件绝对位置,e为html元素
function getAbsPoint(e){
	var x = e.offsetLeft;
	var y = e.offsetTop;
	while(e = e.offsetParent){
		x += e.offsetLeft;
		y += e.offsetTop;
	}
	return {"x": x, "y": y};
}

//在指定位置弹出层，并可移动 居中位置
function openCenterDiv(_id,m,width,height,title,content,close,repair_height){	
    var isIE = (document.all) ? true : false; //document.all 只有ie支持此属性
	var ieVersion = 7; //IE版本，默认为7
	if (isIE)	ieVersion = parseFloat(navigator.appVersion.split("MSIE")[1]);
	
  XY = getPageXY();  
  repair_height = repair_height ||  0;//特殊高度修正
  m = m || "";
  title = title || "";
  //close = close || "关闭";
  var close_func = (close == undefined || close=="") ? "" : close+"('"+_id+"','"+m+"');";
  var xpos = ((parseInt(XY[2]) - width)) >0 ? (parseInt(XY[2]) - width) / 2 : 0;// 屏幕居中
  var ypos = ((parseInt(XY[3]) - height+repair_height)>0 ) ? (parseInt(XY[3]) - height+repair_height) / 2 : 0; // 屏幕居中
  var st = document.body.scrollTop ? document.body.scrollTop : document.documentElement.scrollTop;
  var st1 = document.body.scrollLeft ? document.body.scrollLeft : document.documentElement.scrollLeft; 
  xpos += st1;ypos += st;
  if (docEle(_id)) document.body.removeChild(docEle(_id));
  if (m && docEle(m)) document.body.removeChild(docEle(m));
  // 新激活图层
  var newDiv = document.createElement("div");
  newDiv.id = _id;
  newDiv.style.position = "absolute";
  newDiv.style.zIndex = "9999";
  newDiv.style.width = width+"px";
  newDiv.style.height = height+"px";
  newDiv.style.top = ypos + "px"; // 屏幕居中;
  //newDiv.style.textAlign = "center";
  newDiv.style.left = xpos + "px"; // 屏幕居中
  newDiv.style.background = "#ffffff";
  newDiv.style.border = "1px solid #cccccc";
  newDiv.style.overflow = "hidden";
  //newDiv.style.padding = "5px";  
 
  if(m){
	  // mask图层
	  var newMask = document.createElement("div");
	  newMask.id = m;
	  newMask.style.position = "absolute";
	  newMask.style.zIndex = "1";
	//  newMask.style.width = document.body.scrollWidth+"px";
//	  newMask.style.height = document.body.scrollHeight+ "px";
	  newMask.style.width = XY[0]+"px";
	  newMask.style.height = XY[1]+ "px";
	  newMask.style.top = "0px";
	  newMask.style.left = "0px";
	  newMask.style.background = "#000";
	  newMask.style.filter = "alpha(opacity=40)";
	  newMask.style.opacity = "0.40";
	  document.body.appendChild(newMask); 
  }
  //将所有select置为不可用
  if (ieVersion < 7) { 
        var oSelects = document.getElementsByTagName("select");
        for (var i = 0; i < oSelects.length; i++) {
            oSelects[i].disabled = true;
            oSelects[i].style.visibility = "hidden";
        }
    }
 
  //title height:30px
  if(title.length>0){
	  header = "<div style='font-size:12px;width:"+width+"px;background:#cccccc;line-height:30px;height:30px;cursor: move;' onmousedown=\"drag('"+_id+"');\"><div style='float:left;font-weight:bold;padding-left:5px;line-height:30px;height:30px;background:#cccccc;width:"+(width-33-5-5-2)+"px'>"+title+"</div><div  onclick=\""+close_func+";closeLightBox('"+_id+"','"+m+"');\" style=\"cursor: pointer; color: Blue; width:33px;background:#cccccc; float:right;padding-right:5px;line-height:30px;height:30px;\">关闭</div></div>";
	  //header = "<div style='width:"+width+"px;background:#cccccc;line-height:30px;height:30px' onmousedown=\"drag('"+_id+"');\"><div style='line-height:30px;height:30px;float:left;font-weight:bold;padding-left:10px;background:#cccccc;width:"+(width-50-10-10)+"px'>"+title+"</div><span  onclick=\"closeLightBox('"+_id+"','"+m+"')\" style=\"cursor: pointer; color: Blue; width:50px;background:#cccccc; float:right;padding-right:10px;line-height:30px;height:30px;\">"+close+"</span></div>";	  
	  newDiv.innerHTML = header;	 
  }else{	  
	 newDiv.onmousedown = function(){drag(_id);}//可移动
  }
 
  //内容层
  var  contentDiv = document.createElement("div");
 
  contentDiv.style.height = (title) ? height-30+"px" : height+"px";
  contentDiv.style.width = width+"px";
/*  contentDiv.style.paddingLeft = "5px";  
  contentDiv.style.paddingRight = "5px"; */ 
  contentDiv.style.clear = "both";
  contentDiv.innerHTML = content;
  newDiv.appendChild(contentDiv);
  document.body.appendChild(newDiv);//alert("dd");
}



