if (typeof Caidao == 'undefined') Caidao = {};
if (typeof Caidao.Dialog == 'undefined') Caidao.Dialog = {};

Caidao.Dialog.Init = function(d) {
	Caidao.func.loadStyle(d.root+'Dialog.css');//加载css样式
	Caidao.Dialog.Container();//加载容器
};
Caidao.Dialog.Container = function (){
	var Container             = Caidao.$C('div');
	Container.id               = "Caidao_Container";
	Container.className        = "Caidao_Container";
	
	var div ="";
	div += '<div id="Caidao_Mask_Container" class="Caidao_Mask_Container">';
	div += '  <iframe id="Caidao_Mask_iframe" class="Caidao_Mask"></iframe>';
	div += '  <div id="Caidao_Mask_div" class="Caidao_Mask"></div>';
	div += '</div>';
	
	
	div += '<div id="Caidao_Box_Container" class="Caidao_Box_Container">';	
	div += '</div>';
	
	
	Container.innerHTML = div;
	
	Caidao.$T("body")[0].appendChild(Container);
	Caidao.Dialog.Container.o = Container;
	Caidao.Dialog.Container.MaskContainer = Caidao.$("Caidao_Mask_Container");
	Caidao.Dialog.Container.Maskiframe    = Caidao.$("Caidao_Mask_iframe");
	Caidao.Dialog.Container.Maskdiv       = Caidao.$("Caidao_Mask_div");
	Caidao.Dialog.Container.Box           = Caidao.$("Caidao_Box_Container");
};
Caidao.Dialog.Window = {
	alert : function(val,w,h,title,id,style,x,y){
		Caidao.Dialog.Window.view();
		
		var id    = id || "Caidao_Dialog_alert";
		var style = style || "Caidao_Dialog_alert";
		var val   = '<div id="'+id+'" class="'+style+'">'+val+'</div>';	
		
		Caidao.Dialog.Window.box(val,w,h,title,x,y);
	},
	iframe : function(val,w,h,title,id,f,style,x,y){
		Caidao.Dialog.Window.view();
		
		var id    = id || "Caidao_Dialog_iframe";
		var style = style || "Caidao_Dialog_iframe";
		var w   = w || 400;
		var h   = h || 300;
		var f  =  f!="yes" ? "no" : "yes";
		var val = '<iframe frameborder="0" id='+id+' name='+id+' scrolling='+f+' src='+val+' class='+style+' style="width:'+w+'px;height:'+(h-25)+'px;"></iframe>';	
		Caidao.Dialog.Window.box(val,w,h,title,x,y);
	},
	Preview : function(val,w,h,title,id,f,style,x,y){
		Caidao.Dialog.Window.view();
		var style = style || "Caidao_Dialog_Preview";
		var Text   = "";
		Text   += "<div style=\"margin-top:5px;text-align:center;color:red;padding-left:8px;padding-right:8px\">切勿点击浏览器后退键, 否则系统将会清空你正在编辑的内容。 Never click browser's back key/arrow, otherwise, the system will clear all the contents you are editing. </div>";
		Text   += "<div style=\"margin-top:5px;margin-bottom:5px;text-align:center;\">";
		Text   += "    <input type='button' value='返回重新编辑' onclick='Caidao.Dialog.Window.Close();' style='width:120px;height:25px;border:1px solid #ace;background:#F1F7FC;'>";
		Text   += "</div>";
		
		var w = title.indexOf('评论')!=-1 ? 570 : 720;
		Text   += '<div id="Caidao_Box_View" style="margin-top:10px;margin-bottom:30px;line-height:23px;min-height:300px;height:auto;width:'+w+'px;" class="'+style+'">'+val+'</div>';
		
		Text   += "<div style=\"margin-top:5px;margin-bottom:5px;text-align:center;\">";
		Text   += "    <input type='button' value='返回重新编辑' onclick='Caidao.Dialog.Window.Close();' style='width:120px;height:25px;border:1px solid #ace;background:#F1F7FC;'>";
		Text   += "</div>";
		
		Caidao.Dialog.Window.box(Text,w+10,h,title,x,y);
		try{
			var v = parseInt($("Caidao_Box_View").clientHeight);
			$("Caidao_Box_Container").style.height = (v+200)+"px";
		}catch(e){}
	},
	box : function(val,w,h,title,x,y){		
		var title = title || "提示";
		
		var d = Caidao.func.Coordinate(w,h);
		Caidao.func.setStyle(Caidao.Dialog.Container.Box,"width",w+"px");
		Caidao.func.setStyle(Caidao.Dialog.Container.Box,"height",h+"px");
		Caidao.func.setStyle(Caidao.Dialog.Container.Box,"left",d[0]+"px");
		Caidao.func.setStyle(Caidao.Dialog.Container.Box,"top",d[1]+"px");
		
		var div = '';
		div += '  <div id="Caidao_Dialog_TooBar" class="Caidao_Dialog_TooBar">';
		div += '    <strong>'+title+'</strong><cite><a href="javascript:Caidao.Dialog.Window.Close();" class="Dialog_Close" title="关闭">关闭</a></cite>';
		div += '  </div>';
		div += val;
		
		Caidao.Dialog.Container.Box.innerHTML = div;
		Caidao.Dialog.Drag.Init(Caidao.$("Caidao_Dialog_TooBar"));//加载拖动
	},
	view : function(){	
		Caidao.func.setStyle(Caidao.Dialog.Container.MaskContainer,"height",Caidao.func.ScrollPos()[3]+"px");
		Caidao.func.setStyle(Caidao.Dialog.Container.Maskiframe,"height",Caidao.func.ScrollPos()[3]+"px");
		Caidao.func.setStyle(Caidao.Dialog.Container.Maskdiv,"height",Caidao.func.ScrollPos()[3]+"px");
		Caidao.func.setStyle(Caidao.Dialog.Container.o,"display","block");
	},
	Close : function(){
		Caidao.Dialog.Container.Box.innerHTML = "";//清空
		Caidao.func.setStyle(Caidao.Dialog.Container.o,"display","none");
	}
}

Caidao.Dialog.Drag = {
	Init : function(e){
		Caidao.Dialog.Drag.o = e;
		Caidao.Dialog.Drag.o.MoveState = false;
		Caidao.Dialog.Drag.o.onmousedown = Caidao.Dialog.Drag.Start;
	},
	Start : function(e){
		if(!Caidao.Dialog.Drag.o) return false;
		
		Caidao.Dialog.Drag.o.MoveState = true;
		Caidao.Dialog.Drag.o.C_oX      = parseInt(Caidao.Dialog.Drag.fixE(e).clientX);
		Caidao.Dialog.Drag.o.C_oY      = parseInt(Caidao.Dialog.Drag.fixE(e).clientY);
		
		Caidao.Dialog.Drag.o.C_rX      = parseInt(Caidao.Dialog.Drag.o.parentNode.style.left || 0);
		Caidao.Dialog.Drag.o.C_rY      = parseInt(Caidao.Dialog.Drag.o.parentNode.style.top || 0);
		
		document.onmousemove = Caidao.Dialog.Drag.Move;
		document.onmouseup   = Caidao.Dialog.Drag.End;
	},
	Move : function(e){
		if(!Caidao.Dialog.Drag.o || !Caidao.Dialog.Drag.o.MoveState) return false;
		
		var nX = Caidao.Dialog.Drag.fixE(e).clientX;
		var nY = Caidao.Dialog.Drag.fixE(e).clientY;
		
		var ll = Caidao.Dialog.Drag.o.C_rX + nX - Caidao.Dialog.Drag.o.C_oX;
		var tt = Caidao.Dialog.Drag.o.C_rY + nY - Caidao.Dialog.Drag.o.C_oY;
		Caidao.Dialog.Drag.o.parentNode.style.left = ll + 'px';
		Caidao.Dialog.Drag.o.parentNode.style.top  = tt + 'px';
	},
	End : function(){
		if(!Caidao.Dialog.Drag.o || !Caidao.Dialog.Drag.o.MoveState) return false;
		Caidao.Dialog.Drag.o.MoveState = false;
		
		document.onmousemove	= null;
		document.onmouseup		= null;
	},
	fixE : function (e) {
		if (typeof e == 'undefined') e = window.event;
		if (typeof e.layerX == 'undefined') e.layerX = e.offsetX;
		if (typeof e.layerY == 'undefined') e.layerY = e.offsetY;
		return e;
	}
};
