/*	Класс блокировщика бэкграунда
		Пример использования:
			var a=new overlay;
			a.show ();//перекрыть (заблокировать) бэкгрануд
			a.hide ();//разблокировать бэкграунд
	Требует подключения:
	1) default.js
	2) BrowserDetector.js
	3) img/bkg-error.png - наличия в каталоге img
	4) img/bkg-error.gif - наличия в каталоге img
*/
overlayer=new overlay();

function overlay () {
	this.id="overlay"; //ID для ДОМ-элемента блокировщика
	this.imgFolder="img/";//каталог где лежат bkg-error.png и bkg-error.gif
	this.id_div=null;
	this.overlayed=false;

	//Заблокировать бэкграунд
	this.show=function (){
		if (Browser.isIE)
		{
			var overlay=document.createElement ("iframe");
			overlay.id=this.id;
			overlay.frameBorder="0";
			overlay.setAttribute('src', 'javascript:""');
			var b=overlay.style;//Алиас на стиль
			b.borderWidth="0px";
			b.borderColor="white";
			b.height="100%";
			b.margin="0px";
			b.position="absolute";
			b.zIndex="98";
			b.top="0px";
			b.left="0px";
			b.backgroundColor="red";

			b.width=parseInt(top.document.body.clientWidth)+parseInt(document.body.leftMargin)+'px';
			var h=(top.document.body.scrollHeight ? top.document.body.scrollHeight : top.document.body.offsetHeight);
			h=parseInt(h)+parseInt(document.body.topMargin);
			h=h+100;

			b.height=h+'px';
			b.display="block";
			b.filter="progid:DXImageTransform.Microsoft.Alpha(opacity=30)";
			document.body.appendChild(overlay);
			overlay=null;
			var oDiv=document.createElement ("div");
			this.id_div=oDiv.id="overlay_div_IE";
			var x=oDiv.style;
			x.position="absolute";
			x.zIndex=99;
			x.borderWidth="0";
			x.left=b.left;
			x.top=b.top;
			x.width=b.width;
			x.height=b.height;
			x.backgroundColor="black";
			document.body.appendChild(oDiv);
			setOpacity(this.id_div,'50');
			b=x=oDiv=null;
		}else{
			var overlay=document.createElement ("img");
			overlay.id=this.id;
			var pngNormal=((Browser.isGecko) || (Browser.isIE5up && Browser.isMac) || (Browser.isOpera && Browser.isWin && Browser.versionMajor >= 6) || (Browser.isOpera && Browser.isUnix && Browser.versionMajor >= 6) || (Browser.isOpera && Browser.isMac && Browser.versionMajor >= 5) || (Browser.isOmniweb && Browser.versionMinor >= 3.1) || (Browser.isIcab && Browser.versionMinor >= 1.9) || (Browser.isWebtv) || (Browser.isDreamcast)) ;

			var b=overlay.style;
			b.left="0px";
			b.top="0px";
			b.zIndex="98";
			b.position="absolute";
			overlay.setAttribute('src',this.imgFolder+"bkg-error"+(pngNormal?'.png':'.gif'));

			b.width=document.body.scrollWidth+'px';
			if(Browser.isFirefox){
				b.height=Math.max(document.body.scrollHeight,document.body.offsetHeight)+10+'px';
			} else b.height=Math.max(document.body.scrollHeight,document.body.offsetHeight)+'px';
			document.body.appendChild (overlay);
			overlay=null;
		}
		this.overlayed=true;
	};//show()


	//Разблокировать бэкграунд
	this.dispose=this.hide=function(){
		if (this.isOverlayed()) {
			var a=$(this.id); a.parentNode.removeChild(a);
			if (this.id_div) {
				var a=$(this.id_div); a.parentNode.removeChild(a);
			}
			a=null;
		}
		this.overlayed=false;
	}

	this.block=function(){this.show();}
	this.freeze=function(){this.show();}
	this.overlay=function(){this.show();}
	this.unBlock=function(){this.hide();}
	this.unFreeze=function(){this.hide();}

	//Если бэкграунд перекрыт, то возвращает истину, иначе ложь
	this.isOverlayed=function(){return this.overlayed;}
}
