/*任意位置浮动固定层*/
/*没剑(http://regedit.cnblogs.com) 08-03-11*/
/*说明：可以让指定的层浮动到网页上的任何位置，当滚动条滚动时它会保持在当前位置不变，不会产生闪动*/

/*2008-4-1修改：当自定义right位置时无效，这里加上一个判断
有值时就不设置，无值时要加18px已修正层位置在ie6下的问题
2008-12-21：增加关闭连接，显示特效，不挡住滚动条
*/
/*调用：
1 无参数调用：默认浮动在右下角
$("#id").floatdiv();

2 内置固定位置浮动
//右下角
$("#id").floatdiv("rightbottom");
//左下角
$("#id").floatdiv("leftbottom");
//右下角
$("#id").floatdiv("rightbottom");
//右下角,不挡住滚动条 2008-12-21
$("#id").floatdiv("rightbottom2");
//左上角
$("#id").floatdiv("lefttop");
//右上角
$("#id").floatdiv("righttop");
//居中
$("#id").floatdiv("middle");

3 自定义位置浮动
$("#id").floatdiv({left:"10px",top:"10px"});
以上参数，设置浮动层在left 10个像素,top 10个像素的位置

*/
jQuery.fn.floatdiv=function(myposi){

	//ie6
	var isIE6=false;
	if($.browser.msie && $.browser.version=="6.0"){
		$("html").css("overflow-x","auto").css("overflow-y","hidden");
		isIE6=true;

		$("body").css({height:"100%",overflow:"auto"}).css("overflow-x","hidden");
	};
	return this.each(function(){
		var posi;//层的绝对定位位置
		if(myposi==undefined || myposi.constructor == String){
			switch(myposi){
				case("rightbottom")://右下角
					posi={right:"0px",bottom:"0px"};
					break;
				case("rightbottom2")://右下角,不挡住滚动条 2008-12-21 by macro
					posi={right:"20px",bottom:"0px"};
					break;
				case("leftbottom")://左下角
					posi={left:"0px",bottom:"0px"};
					break;	
				case("lefttop")://左上角
					posi={left:"0px",top:"0px"};
					break;
				case("righttop")://右上角
					posi={right:"0px",top:"0px"};
					break;
				case("middle")://居中
					var l=0;//居左
					var t=0;//居上
					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;
					}
					l=windowWidth/2-$(this).width()/2;
					t=windowHeight/2-$(this).height()/2;
					posi={left:l+"px",top:t+"px"};
					break;
				default://默认为右下角,不挡住滚动条
					//posi={right:"0px",bottom:"0px"};
					posi={right:"19px",bottom:"0px"};
					break;
			}
		}else{
			posi=myposi;
		}
		$(this).css("z-index","9999").css(posi).css("position","fixed");
		// 增加关闭连接 2008-12-21 by macro
		if ( $(this).children().hasClass('close') == false) {
			$(this).prepend("<div class='close' style='text-align:right;'><a href='#' onclick=\"javascript:$(this).parents('div').eq(1).hide('slow');return false;\">关闭</a></div>"); 		
		}

		

		
		//ie6
		if(isIE6){

			$(this).css("position","absolute");

			if(posi.right!=undefined){
				//2008-4-1修改：当自定义right位置时无效，这里加上一个判断
				//有值时就不设置，无值时要加18px已修正层位置
				if($(this).css("right")==null || $(this).css("right")==""){
					$(this).css("right","18px");
				}
			}
				
			
			/* 非w3c标准页面，强制跟随滚动条动态设置层的位置 2008-12-21 by macro */
			if ( $.boxModel == false ) {
				var fdiv = $(this);
				if ( $(this).css('top').indexOf('px') != -1 ) {
					var fdiv_h = parseInt( $(this).css('top') );
				} else {
					var fdiv_h = $(window).height() - $(this).height();
				}
				$(window).bind("scroll",function(){

					fdiv.css('top', (fdiv_h + $(window).scrollTop())+'px');
				});			
			}
		}

		// 增加显示特效 2008-12-21 by macro
		$(this).hide();
		$(this).show('slow');

	});

	
};