jQuery.fn.imageBox=function(options){
	/*if($.browser.msie){		
		return false;
	}*/
	var set={
		shadow:{
			backColor:"#000",
			openSpeed:300,
			closeSpeed:300
		},
		table:{
			openSpeed:1000,
			closeSpeed:300
		},
		href:"http://www.reprima.ru/",
		folder:"userfiles/image/"
	};
	set = jQuery.extend(set, options);
	$("html")
		.prepend('<table align="center" cellpadding="0" cellspacing="0" id="IBtable"><tr class="top"><td class="left"></td><td class="center"></td><td class="right"></td></tr><tr class="middle"><td class="left"></td><td class="center"><div id="IBimg"></div><div id="IBmenu"><table width="100%" cellpadding="0" cellspacing="0"><tr><td><a href="#" id="IBprev" class="IBbut">&lsaquo;&nbsp;предыдущая</a></td><td id="IBcounter"></td><td><a href="#" id="IBnext" class="IBbut">следующая&nbsp;&rsaquo;</a></td><td id="IBname"></td><td><a href="#" id="IBclose" class="IBbut">закрыть</a></td></tr></table></div></td><td class="right"></td></tr><tr class="bottom"><td class="left"></td><td class="center"></td><td class="right"></td></tr></table>')
		.prepend('<div id="IBshadow"></div>');
		
	var shadow		=	$("#IBshadow");
	var table		=	$("#IBtable");
	var imgCont		=	$("#IBimg");
	var menuCont	=	$("#IBmenu");
	var img;
	var name		=	'';
	var	w			=	0;
	var h			=	0;
	var aNOW;
	var count		=	0;
	
	$(img).css({
		display:"none"
	})
	$("#IBclose").click(function(){$(shadow).trigger("click");return false;})
	$(shadow).live("click",function(){//клик на тени
		tableClose();
	})
	.css("display","none");
	$(table).css({
		position:"absolute",
		display:"none"
	})
	.find("td")
		.css({
			backgroundImage:"url('"+set.href+"i/s/sprite.png')",
			width:"18px",
			height:"18px",
			backgroundRepeat:"no-repeat"
		})
	.end()
	.find(".top")
		.css("height","18px")
		.find("td")
			.eq(0)
			.css({
				backgroundPosition:"right -57px"
			})
			.end()
			.eq(1)
			.css({
				background:"url('"+set.href+"i/s/sprite2.png') right 0px repeat-x"
			})
			.end()
			.eq(2)
			.css({
				backgroundPosition:"right -38px"
			})
			.end()
		.end()
	.end()
	.find(".middle")
		.find("td.left")
			.css({
				background:"url('"+set.href+"i/s/sprite3.png') 0px top repeat-y"
			})
			.end()
			.find("td.center")
			.css({
				padding:"10px",
				background:"#fff"
			})
			.end()
			.find("td.right")
			.css({
				background:"url('"+set.href+"i/s/sprite3.png') -19px bottom repeat-y"
			})
			.end()
	.end()
	.find(".bottom")
		.find("td")
			.eq(0)
			.css({
				backgroundPosition:"right 0px"
			})
			.end()
			.eq(1)
			.css({
				background:"url('"+set.href+"i/s/sprite2.png') right -19px repeat-x"
			})
			.end()
			.eq(2)
			.css({
				backgroundPosition:"left -19px"
			})
	$(menuCont)
		.find("td")
			.css({
				background:"none"
			})
		.end()
		.css({
			paddingTop:"10px",
			display:"none"
		})
	.find("#IBname")
		.css({
			color:"#9f1314",
			padding:"2px",
			overflow:"hidden"
		})
	.end()
	.find("#IBcounter")
		.css({
			color:"#9f1314",
			padding:"2px",
			textAlign:"center",
			width:"10%"
		})
	.end()
	$("a.IBbut")
		.css({
			color:"#000",
			textDecoration:"none",
			display:"block",
			background:"url('"+set.href+"i/s/but_sprite.gif') left -36px repeat-x",
			height:"16px",
			paddingTop:"2px",
			paddingLeft:"5px",
			paddingRight:"5px"
		})
		.wrap("<div><div></div></div>")
		.parent()
			.css({
				background:"url('"+set.href+"i/s/but_sprite.gif') right 0px no-repeat",
				paddingRight:"3px"
			})
		.parent()
			.css({
				background:"url('"+set.href+"i/s/but_sprite.gif') left -18px no-repeat",
				paddingLeft:"3px"
			})
		.parent()
			.css({
				padding:"0px 3px",
				width:"10%"
			})
			
	$("#IBnext").live("click",function(){
		if($(aNOW).parent().next().find("a."+className).length>0){
			clearIMG();
			hideIMG();
			$(aNOW).parent().next().find("a."+className).trigger("click");
		}
		return false;
	})
	$("#IBprev").live("click",function(){
		if($(aNOW).parent().prev().find("a."+className).length>0){
			clearIMG();
			hideIMG();
			$(aNOW).parent().prev().find("a."+className).trigger("click");
		}
		return false;
	})
	var href	=	'';
	var all=$(this).length;
	var className=$(this).length;
	return $(this).each(function(){
		$(this).click(function(){
			aNOW=$(this);
			className=$(aNOW).attr("class");
			count=$(aNOW).attr("rel");
			href=$(aNOW).attr("href");
			//name=$("img",aNOW).attr("alt");
			$("#IBname").html("<span style=\"overflow:hidden;\">"+name+"</span>");
			$("#IBcounter").html(count+"&nbsp;из&nbsp;"+all);
			shadowOpen();
			return false;
		})
	});
	function tableOpen(){//открывает таблицу
		$(table)
			.css({
				position:"absolute",
				top:"50%",
				left:"50%",
				zIndex:100000
			})
			.fadeIn(set.table.openSpeed,loadImg)
	}
	function tableClose(){//закрывает таблицу
		$(table).fadeOut(set.table.closeSpeed,function(){
			clearIMG();
			hideIMG();
			shadowClose();
			W=0;
			H=0;
			resizeImgCont();
			centerTable();
			$(menuCont).css("display","none");
		})
	}
	///////////////////Загружает изображение, создает W и H, и вызывает две функции
	function loadImg(){
		$(imgCont).load(href,function(){
			img=$("img",imgCont);
			H=$(img).attr("height");
			W=$(img).attr("width");
			$(img).css("display","none");
			centerTable(resizeImgCont(viewIMG));
		});
	}
	////////////////////Очищает аттрибуты изображения
	function clearIMG(){
		$(img).attr("src","");
	}
	function viewIMG(){
		$(img).fadeIn(200,function(){
			$(menuCont).slideDown(300)
		});
	}
	function hideIMG(){
		$(img).fadeOut(200);	
	}
	function centerTable(foo){
		$(table).animate({
			left:"50%",
			top:"50%",
			marginLeft:-1*((W+58)/2)+"px",
			marginTop:-1*((H+58)/2)+"px"
		},300,foo)
	}
	function resizeImgCont(foo){
		$(imgCont).animate({
			width:W+"px",
			height:H+"px",
		},300,foo)
		.css("text-align","center")
	}
	function foo(){}
	function shadowOpen(){//открывает тень
		$(shadow)
			.css({
				width:"100%",
				background:set.shadow.backColor,
				opacity:0.4,
				position:"absolute",
				height:getDocumentHeight()+"px",
				zIndex:9999
			})
			.fadeIn(set.shadow.openSpeed,tableOpen);
	}
	function shadowClose(){//закрывает тень
		$(shadow).fadeOut(set.shadow.closeSpeed);
	}
	var ua = navigator.userAgent.toLowerCase();
	var isOpera = (ua.indexOf('opera')  > -1);
	var isIE = (!isOpera && ua.indexOf('msie') > -1);
	function getDocumentHeight() {
		return Math.max(document.compatMode != 'CSS1Compat' ? document.body.scrollHeight : document.documentElement.scrollHeight, getViewportHeight());
	}
	function getViewportHeight() {
		return ((document.compatMode || isIE) && !isOpera) ? (document.compatMode == 'CSS1Compat') ? document.documentElement.clientHeight : document.body.clientHeight : (document.parentWindow || document.defaultView).innerHeight;
	}
};
