﻿/**
 * 弹出层具体方法编写
 * 2010-12-03
 * @author Hardy
 */

//实例化初始值,为了弹出层关闭使用
var dialog_height = 300;//高度
var dialog_slide = true;//滑动效果

if (jQuery) {
	(function(a) {		
		a.fn.koko = function(bb) {
			//对象点击事件
			a(this).click(function() {
				dialog(bb);
			});
		};
		//弹出层关闭事件
		a.fn.close = function() {
			dialogclose();
		};
	})(jQuery);
};

//弹出层打开方法
function dialog(parameter)
{
	//隐藏下拉框
	$("select").css("visibility", "hidden");
	//弹出层默认设置
	var moren = {
		Width: 300,          //对话框宽度
		Height: 300,         //对话框高度
		Top: "auto",         //对话框距离上方高度
		Title: "对话框",     //对话框标题		
		Skin: "blue",        //默认皮肤样式
		Case: 0,             //是否需要美化框架,0默认有，1没有，2就弹出一个层
		Iscss: 0,            //是否用默认美化框架样式，0默认，1自设样式
		Csspath: "Js/dialog/images/default.css", //自设样式路径
		Background: "gray",  //蒙层背景颜色
		Drag: true,          //是否拖拽
		Slide: true,         //是否滑动
		IsRegion: true,      //是否在当前浏览器窗口区域拖拽
		Intopacity: 0.8,	 //透明度(0-1),1(不透明)
		IsContent: 0,        //0为显示Content里内容，1为显示URL内容
		Url: "",             //嵌套一个iframe
		Content: ""          //显示内容
	};
	//实例化初始值
	var ko_url_01 = ko_url_02 = color = mengcolor = "";
	//弹出层参数处理
	var opt = jQuery.extend({}, moren, parameter);
	//赋值给全局变量变量
	dialog_height = opt.Height;
	dialog_slide = opt.Slide;		
	//蒙层背景颜色
	if (opt.Background != "") {
		mengcolor = opt.Background;
	} else {
		mengcolor = "gray";
	}
	//弹出层美化框皮肤判断
	if (opt.Case == 0) {
		switch (opt.Skin) {
			case "blue":
			ko_url_01 = "Js/dialog/images/blue/close_1.gif";
			ko_url_02 = "Js/dialog/images/blue/close_2.gif";
			color = "blue";
			break;
			case "red":
			ko_url_01 = "Js/dialog/images/red/close_1.gif";
			ko_url_02 = "Js/dialog/images/red/close_2.gif";
			color = "red";
			break;
			case "green":
			ko_url_01 = "Js/dialog/images/green/close_1.gif";
			ko_url_02 = "Js/dialog/images/green/close_2.gif";
			color = "green";
			break;
		}
		//弹出层美化框css选择
		if (opt.Iscss == 1) {
			$("#kokodialogcss").attr("href" , opt.Csspath);
		} else {
			$("#kokodialogcss").attr("href" , "Js/dialog/images/" + color + "/default.css");
		}
	} else {
		//弹出层css选择
		$("#kokodialogcss").attr("href" , opt.Csspath);
	}
	//弹出层内容
	if ($("#ko_tan_div").length < 1) {
		var ko_body_div = '<div id="ko_body_div" style="margin:0 auto;padding_left:20px;width:100%;height:' + $(document).height() + 'px;background:' + mengcolor + ';position:absolute;top:0;left:0;filter:alpha(opacity=0);opacity:0;"></div>';
		var ko_tan_div = '<div id="ko_tan_div">';					
		if (opt.Case == 0) {// 美化框架
			ko_tan_div += '<div id="top"><div id="topleft"></div><div id="topmiddle">';
			ko_tan_div += '<span style="float:left; color:#FFF; font-weight:bold; line-height:26px; font-size:12px;">&nbsp;' + opt.Title + '</span>';
			ko_tan_div += '<span style="float:right"><img border="0" src="' + ko_url_01 + '" style="cursor:pointer;" width="26" height="20" id="diagclose" /></span></div>';
			ko_tan_div += '<div id="topright"></div></div><div class="clear"></div>';
			ko_tan_div += '<div id="middle"><div id="middleleft"></div><div id="middlemiddle">';
			ko_tan_div += '<div style="padding:5px;background:#fff;" id="middlecontent">';
			if(opt.IsContent == 1) {
				ko_tan_div += '<iframe src="' + opt.Url + '" style="height:100%; width:100%;" scrolling="no" frameborder="0"></iframe>';
			} else {
				ko_tan_div +=  opt.Content;
			}
			ko_tan_div += '</div></div><div id="middleright"></div></div><div class="clear"></div>';
			ko_tan_div += '<div id="end"><div id="endleft"></div><div id="endmiddle"></div>';
			ko_tan_div += '<div id="endright"></div></div><div class="clear"></div>';
			ko_tan_div += '</div>';
		} else if (opt.Case == 1) {// 简单美化				
			ko_tan_div += '<div class="title"><h4>' + opt.Title + '</h4><span id="diagclose">关闭</span></div>';
			ko_tan_div += '<div class="content" id="ko_tan_content">';
			if(opt.IsContent == 1) {
				ko_tan_div += '<iframe src="' + opt.Url + '" style="height:100%; width:100%;" scrolling="no" frameborder="0"></iframe>';
			} else {
				ko_tan_div += opt.Content;
			}
			ko_tan_div += '</div></div>';					
		} else if (opt.Case == 2) { //无美化，弹出一个层
			if(opt.IsContent == 1) {
				ko_tan_div += '<iframe src="' + opt.Url + '" style="height:100%; width:100%;" scrolling="no" frameborder="0"></iframe>';
			} else {
				ko_tan_div += opt.Content;
			}
			ko_tan_div += '<span id="diagclose" style="display:none;"></span></div>';
		}
		$("body").append(ko_body_div);
		$("body").append(ko_tan_div);
	} else {
		$("#ko_body_div").show();
		$("#ko_tan_div").show();
	}
	//弹出层滤镜判断
	var css = {}
	if (window.navigator.userAgent.indexOf('MSIE') >= 1) {
		css.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + opt.Intopacity*100 + ')';
	} else {
		css.opacity = opt.Intopacity;
	}
	$("#ko_body_div").css(css);
	//赋值给变量
	var w, h, de;
	de = document.documentElement;
	w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
	h = self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
	var diagtop = h/2 - (opt.Height/2) + eval($(document).scrollTop());
	var diagleft = w/2 - (opt.Width/2) + eval($(document).scrollLeft());
	//判断对话框距离上方高度
	if (opt.Top != "auto") {
		diagtop = opt.Top;
	}
	//弹出层加上滑动效果
	if (opt.Slide == true) {
		$("#ko_body_div").animate({opacity: opt.Intopacity}, "normal");
		$("#ko_tan_div").animate({top: diagtop + "px"}, "normal");
		$("#ko_tan_div").css({"left": diagleft, "width": opt.Width, "height": opt.Height});
	} else {
		$("#ko_tan_div").css({"top" : diagtop, "left": diagleft, "width": opt.Width, "height": opt.Height});
	}				
	//判断是否用美化框架
	if (opt.Case == 0) {
		$("#topmiddle").css({"width": opt.Width-20});
		$("#middlemiddle").css({"width": opt.Width-8, "height": opt.Height-34});
		$("#middleleft").css({"height": opt.Height-34});
		$("#middleright").css({"height": opt.Height-34});
		$("#middlecontent").css({"height": opt.Height-44});
		$("#endmiddle").css({"width": opt.Width-20});
	} else if (opt.Case == 1) {
		$("#ko_tan_content").css({"width": opt.Width-10, "height": opt.Height-41});
	}
	//弹出层拖动事件
	if (opt.Drag == true) {
		var moveFlag = false;
		var mouseStartLeft = mouseStartTop = mouseMoveTop = 0;
		//获取浏览器版本
		var _version = $.browser.version;
		if ( _version == 6.0 ) {
			mouseMoveTop = $(document).scrollTop();
		}
		$("#ko_tan_div").mouseover(function() {
			$("#ko_tan_div").css({"cursor": "move"});
		}).mousedown(function(e) {
				moveFlag = true;
				$("#ko_tan_div").css({"cursor": "move"});
				e = window.event ? window.event : e;
				mouseStartLeft = e.clientX - $("#ko_tan_div").offset().left;
				mouseStartTop  = e.clientY - $("#ko_tan_div").offset().top - mouseMoveTop;
		}).mouseup(function () {
				moveFlag = false;
				$("#ko_tan_div").css({"cursor": "default"});
				mouseStartLeft = mouseStartTop = mouseMoveTop = 0;
		});
		$(document).mousemove(function (e) {		 
			if (moveFlag == false) { return; }			
			e = window.event ? window.event : e;
			var ko_set_left = e.clientX - mouseStartLeft;
			var ko_set_top  = e.clientY - mouseStartTop;
			if (opt.IsRegion == true) {
				if (ko_set_left > 0 && ko_set_top > 0 && (ko_set_left + $("#ko_tan_div").width()) < $(window).width() && (ko_set_top + $("#ko_tan_div").height()) < $(window).height()) {
					$("#ko_tan_div").css({"left": ko_set_left, "top": ko_set_top});
				}
			} else {
				$("#ko_tan_div").css({"left": ko_set_left, "top": ko_set_top});
			}
			document.onselectstart = function() { return true; };
		});
	}
	//弹出层关闭按钮事件
	$("#diagclose").mousemove(function() {
		$(this).attr("src", ko_url_02);
	}).mouseout(function() {
		$(this).attr("src", ko_url_01);
	}).click(function() {
		dialogclose();
	});
	
	//关闭
	$("#ko_body_div").click(function(){
		dialogclose();
	});

} // end funcion dialog

//弹出层关闭方法
function dialogclose()
{
	//打开下拉框
	$("select").css("visibility", "");
	if ($("#ko_tan_div").length > 0) {
		//弹出层加上滑动效果
		if (dialog_slide == true) {
			var ko_top = ($(document).scrollTop() - parseInt(dialog_height)) + "px";
			$("#ko_tan_div").animate({top: ko_top}, "normal", function(){$(this).remove();});
		} else {
			$("#ko_tan_div").remove();
		}
	}
	if ($("#ko_body_div").length > 0) {
		//弹出层加上滑动效果
		if (dialog_slide == true) {
			$("#ko_body_div").animate({opacity:"0"}, "normal", function(){$(this).remove();});
		} else {
			$("#ko_body_div").remove();
		}
	}
	document.onselectstart = function() { return true; };
} // end funcion dialogclose
function dialogclose2()
{
	//打开下拉框
$(window.parent.document).find("#ko_tan_div").remove();
$(window.parent.document).find("#ko_body_div").remove();
} // end funcion dialogclose
