﻿//huyu 2009-07-20
//弹出控件JS，主要功能为弹出系统alert，confirm与弹出页面
//调用方式如下：

(function($){
	
	JShowWithMask = function(message, title, divWidth, divHeight){
		var divID = "";
		writeDIVFrame(divID,true,true);
		writeTitle(divID,title);
		writeMessage(divID,message);
		$('#tanchu_'+divID+'container').height(divHeight);
		var mWidth = setContainerWidth(divWidth);
		$('#tanchu_'+divID+'message').removeClass();
		$('#tanchu_'+divID+'message').addClass("tanchu_xiaoxi1"); 
		setDIVSize(mWidth,divID,true);
		setDIVPosition(calculateMiddlePosintion(divID,mWidth,$('#tanchu_'+divID+'container').height()),divID,true);
		JDIVShow(divID,true,true);
	}
	
	//居中，有遮盖，有阴影
	JPageWithMask = function(opt,e){//此时div操作是异步操作，因此这里不适用返回函数
		//alert(opt.width);
		
		if(opt.divID != null)var ID = opt.divID + "_";
		else var ID = "";
		writeDIVFrame(ID,true,true);
		if(opt.title){
			writeTitle(ID,title);
		}
		if(opt.contentinfo){
			//alert(opt.content);
			$('#tanchu_'+ID+'content').append(opt.content);
			
		}else{
			$('#tanchu_'+ID+'content').append($("#"+opt.content).html());
		}
			var pageWidth = opt.width;
			var mWidth = new Number(pageWidth);
			setDIVSize(mWidth,ID,true);
			if(opt.mouse){
				//e= e|| window.event;
				//var mX = e.clientX;
				//var mY = e.clientY;
				setDIVPosition(calculateMiddlePosintion(ID,mWidth,opt.height),ID,true);
				//setDIVPosition(calculateMousePosintion(mX,mY,ID,mWidth,opt.height),ID,true);
				
			}else{
				setDIVPosition(calculateMiddlePosintion(ID,mWidth,opt.height),ID,true);
			}
			JDIVShow(ID,true,true);
			if(opt.dialogmask){
			$("#tanchu_"+opt.divID+"_mask").mousedown(function(){
				JDIVClose(opt.divID,true,true);
			})
		}
	};
	
	
	JConfirmWithMask = function(url, title, divID){//此时div操作是异步操作，因此这里不适用返回函数
		if(divID != null)var ID = divID + "_";
		else var ID = "";
		writeDIVFrame(ID,true,true);
		
		$('#tanchu_'+ID+'content').load( url,function(data){
			//alert(data);
			var pageWidth = 765;
			if($('#tanchuPage')[0] != null){
				//alert($('#tanchuPage').width());
				pageWidth = ($('#tanchuPage')[0].style.width).substring(0,$('#tanchuPage')[0].style.width.length-2);
			}
			//alert(pageWidth);
			var mWidth = new Number(pageWidth) + 25;
			setDIVSize(mWidth,ID,true);
			setDIVPosition(calculateMiddlePosintion(ID,mWidth,$('#tanchu_'+ID+'container').height()),ID,true);
			JDIVShow(ID,true,true);
		});
		
	};
	
//写弹出面板
function writeDIVFrame(divID, ifmask,ifOverlay){
	if(ifmask)writeMask(divID);
	//if(ifOverlay)writeOverlay(divID);
	$("BODY").append(
			'<div class="tanchu_rongqi " id="tanchu_'+divID+'container" style="display:none">'+
			
				''+
				'<div class="tanchu_neirong" id="tanchu_'+divID+'content">'+
                '</div>'+
			'</div>');
}
//写遮罩
function writeMask(divID){
	$("BODY").append('<div class="tanchu_zhegai" id="tanchu_'+divID+'mask" style="display:none"></div>');
	$('#tanchu_'+divID+'mask').height($(document).height());
}
//设置div的位置
function setDIVPosition(divPosition, divID, ifOverlay){
	//alert(divPosition.left+'px');
	$('#tanchu_'+divID+'container').css({
		top: divPosition.top+'px',
		left: divPosition.left+'px'
	});
	if(ifOverlay!=null && ifOverlay){
		$('#tanchu_'+divID+'overlay').css({
			top:divPosition.top+'px',
			left:divPosition.left+'px'
		});
	}
}
//设置div的宽高
function setDIVSize(divWidth, divID, ifOverlay){
	$('#tanchu_'+divID+'container').width(divWidth+'px');
	if($('#tanchu_'+divID+'head'))$('#tanchu_'+divID+'head').width($('#tanchu_'+divID+'container').width()-20);
	
	if(ifOverlay!=null && ifOverlay){
		$('#tanchu_'+divID+'overlay').height($('#tanchu_'+divID+'container').height()+18);
		$('#tanchu_'+divID+'overlay').width($('#tanchu_'+divID+'container').width()+16);
	}
}
//计算居中的位置
function calculateMiddlePosintion(divID, divWidth, divHeight){
	//alert(divWidth)
	var top = ($(window).height() / 2) - (divHeight / 2)-50;//稍微上移一点
	var left = ($(window).width() / 2) - (divWidth / 2);
	if( top < 0 ) top = 0;
	if( left < 0 ) left = 0;
	
	var position = new Object();
	position.top = top + document.documentElement.scrollTop;
	position.left = left  + document.documentElement.scrollLeft;
	
	return position;
}

//计算跟随光标的位置
function calculateMousePosintion(eveX, eveY, divWidth, divHeight, divID){
	var mouseX = $(document).width() - eveX;
	var mouseY = $(document).height() - eveY;

	/*如果从鼠标位置到窗口右边的空间小于DIV的宽度，就定位DIV的左坐标（Left）为当前鼠标位置向左一个DIV宽度*/
	if (mouseX < divWidth){
	    var left = document.body.scrollLeft + eveX - divWidth;
	}else{/*否则，就定位DIV的左坐标为当前鼠标位置*/
        var left = document.body.scrollLeft + eveX;
    }
    
    /*如果从鼠标位置到窗口下边的空间小于DIV的高度，就定位DIV的上坐标（Top）为当前鼠标位置向上一个DIV高度*/
    if (mouseY < divHeight){
        var top = document.body.scrollTop + eveY - divHeight;
    }else{/*否则，就定位DIV的上坐标为当前鼠标位置*/
        var top = document.body.scrollTop + eveY;
    }		
    
	var position = new Object();
	position.top = top;
	position.left = left;
	
	return position;
}
//显示
	JDIVShow = function(divID, ifMask, ifOverlay){
		if(ifMask!=null && ifMask)$('#tanchu_'+divID+'mask').show();
		if(ifOverlay!=null && ifOverlay)$('#tanchu_'+divID+'overlay').show();
		$('#tanchu_'+divID+'container').show();
		
		$('#tanchu_'+divID+'mask').bgiframe();
	};
//关闭
	JDIVClose = function(divID, ifMask, ifOverlay){
		
		if(divID == null || divID == "")divID = "";
		//else if(divID.lastIndexOf('_') == -1)divID = divID + "_";
		
		$('#tanchu_'+divID+'_container').remove();
		if(ifOverlay!=null && ifOverlay)$('#tanchu_'+divID+'_overlay').remove();
		if(ifMask!=null && ifMask)$('#tanchu_'+divID+'_mask').remove();	
	};

})(jQuery);


