
var browser	= navigator.userAgent.toLowerCase(),
	//isOpera = (browser.indexOf("opera") > -1),
	isOpera = window.opera,
	isIE 	= ((browser.indexOf("msie") > -1) && !isOpera),
	isIE5 	= ((browser.indexOf("msie 5") > -1) && !isOpera),
	isIE55 	= (/msie 5\.[56789]/i.test(navigator.userAgent) && !isOpera),
	isMac 	= (browser.indexOf("mac") > -1),
	isLinux = (browser.indexOf("linux") > -1),
	isGecko	= (browser.indexOf("gecko") > -1),
	isSafari = (browser.indexOf("safari") > -1);

function browserVer (str, prefix) {
	var i = str.indexOf(prefix);
	if (i != -1) {
		var ver = parseFloat(str.substring(i + prefix.length));
		if (!isNaN(ver))
			return ver;
	}
	return null;
}

function browserSupported () {
	if ((isGecko && (
			((v=browserVer(browser, "firefox/")) >= 1.5)
			|| ((v=browserVer(browser, "camino/")) >= 1)
		))
		|| (isSafari && (v=browserVer(browser, "safari/")) >= 1.3)
		|| (isIE && (v=browserVer(browser, "msie "))>=6)
		|| (isLinux && !isOpera)
		|| (!isLinux && isOpera && ((v=browserVer(browser, "opera/"))>=9 || (v=browserVer(browser, "opera "))>=9))
	) {
		return true;
	} else
		return false;
}



function $ () {
	var elements = new Array(),
		e, i, imax;
	for (i=0, imax=arguments.length; i<imax; i++) {
		e = arguments[i];
		if (typeof(e) == 'string')
			e = document.getElementById(e);

		if (imax == 1)
      		return e;

		elements.push(e);
	}
	return elements;
}











var WaitDiv = Class.create();
WaitDiv.prototype = {

	init: function () {
		this.div;
		this.msg;
		this.parentNode = document.body;
		this.waitDivFlash;

		if (!(this.waitDivFlash=$('waitDivFlash'))) {
			this.waitDivFlash = document.createElement('div');
			var flashWidth = window.opera ? 1 : 175,
				flashHeight = window.opera ? 1 : 125;
			this.waitDivFlash.setAttribute ('id', 'waitDivFlash');
			mySetStyle (this.waitDivFlash, (window.opera ? {'visibility':'hidden'} : {'display':'none'}));
			this.waitDivFlash.innerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="'+flashWidth+'" height="'+flashHeight+'">'
				+'<param name=movie value="/gfx/flash/loading.swf">'
				+'<param name=quality value=high>'
				+'<param name=menu value=false>'
				+'<param name=wmode value=transparent>'
				+'<embed src="/gfx/flash/loading.swf" quality=high pluginspage="https://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="'+flashWidth+'" height="'+flashHeight+'" wmode="transparent"></embed>'
				+'</object>';
			document.body.appendChild (this.waitDivFlash);
		}
	},

	create: function () {
		var pageSize = myPageSize(),
			viewSize = myViewSize();

		this.top = 0;
		this.left = 0;
		this.width = pageSize[0];
		this.height = pageSize[1];
		this.centerX = viewSize[0]/2;
		this.centerY = viewSize[1]/2;

		// waitDiv
		this.div = document.createElement ('div');
		this.div.className = 'waitDiv';

		// waitDivBg
		this.bg = document.createElement ('div');
		this.bg.className = 'waitDivBg';

		// waitDivInner
		inner = document.createElement ('div');
		inner.className = 'waitDivInner';
		mySetStyle (inner, {'visibility':'hidden'});

		// przeskalowac do oryginalnych rozmiarow
		if (window.opera) {
			var waitDivFlashObj = this.waitDivFlash.childNodes[0],
				waitDivFlashEmbed = waitDivFlashObj.getElementsByTagName('embed')[0];
			waitDivFlashObj.setAttribute ('width', 175);
			waitDivFlashObj.setAttribute ('height', 125);
			waitDivFlashEmbed.setAttribute ('width', 175);
			waitDivFlashEmbed.setAttribute ('height', 125);
		}

		inner.appendChild (this.waitDivFlash.childNodes[0]);

		// waitDivInner TXT
		if (this.msg != undefined) {
			waitdivtxt = document.createElement ('p');
			waitdivtxt.innerHTML = this.msg;
			inner.appendChild (waitdivtxt);
		}

		document.body.appendChild (this.bg);

		this.div.appendChild (inner);
		this.parentNode.appendChild (this.div);

		// waitDiv - pozycjonowanie
		myHeight (this.div, this.height);

		// waitDivBg - pozycjonowanie
		//myHeight (this.bg, this.height);

		// waitDivInner - pozycjonowanie
		var scroller = myScrollSize();

		var innerL = Math.floor(this.centerX - myWidth(inner)/2 + scroller[0]),
			innerT = Math.floor(this.centerY - myHeight(inner)/2 + scroller[1])-50;

		myLeft (inner, innerL);
		myTop (inner, innerT);
		mySetStyle (inner, {'visibility':'visible', 'text-align':'center'});

		myLeft (this.bg, innerL+10);
		myTop (this.bg, innerT+10);

		myWidth (this.bg, myWidth(inner));
		myHeight (this.bg, myHeight(inner));
	},

	show: function (msg) {
		this.msg = msg;
		if (this.div) {
			mySetStyle (this.div, {'display':'block'});
			mySetStyle (this.bg, {'display':'block'});
		} else
			this.create();
		this.hideSelectBoxes ();
	},

	hide: function () {
		if (this.div) {
			mySetStyle (this.div, {'display':'none'});
			mySetStyle (this.bg, {'display':'none'});
			this.showSelectBoxes ();
		}
	},

	hideSelectBoxes: function () {
		var selects = this.parentNode.getElementsByTagName("select"),
			i, imax;
		for (i=0, imax=selects.length; i<imax; i++)
			mySetStyle (selects[i], {'visibility':'hidden'});
	},

	showSelectBoxes: function () {
		var selects = this.parentNode.getElementsByTagName("select"),
			i, imax;
		for (i=0, imax=selects.length; i<imax; i++)
			mySetStyle (selects[i], {'visibility':'visible'});
	}
};


