// prototype

function inArray (needle, haystack)
{
	for (h in haystack) {
		if (haystack[h] == needle) {
			return true;
			// return h;
		}
	}
	return false;
} 

// browserCheckforVisibility
	var ns4=document.layers?1:0
	var ie=document.all?1:0
	var ns6=document.getElementById&&!document.all?1:0
	
	isIE=document.all;
	isNN=!document.all&&document.getElementById;
	isN4=document.layers;
	
	var showStr = "";
	var hideStr = "";

// ---------------------------------------------------------------------------------- pokazuje i ukrywa zadany element
function hideElement ( elem ){
  if (isIE||isNN) document.getElementById( elem ).style.visibility="hidden";
  else if (isN4) document [ elem ].visibility="hide";
}

function showElement ( elem ){
  if (isIE||isNN) document.getElementById( elem ).style.visibility="visible";
  else if (isN4) document [ elem ].visibility="show";
}

// ---------------------------------------------------------------------------------- pokazuje zadany element jesli w danym selekcie odpowiednia pozycja
var statusQuo = new Array ();

function setStatusQuo ( id, status ) {
	statusQuo [ id ] = status;
}

function getStatusQuo ( id ) {
	return statusQuo [ id ];
}

function addStatusQuo ( id_ar ) {
	for ( var each in id_ar ) {
		var id = id_ar [ each ];
		statusQuo [ id ] = getElementStatus ( id );
	}
}
// select - ref do selecta czy tam innego form obiektu
// str - sprawdzana wartosc wywolujaca odpowiednia akcje
// elem - ( jeden lub tablica ) id obiektu/ow na ktorym przeprowadzam akcje
// elemStatusQuo - tablica id obiektow dla ktorych przy pojawianiu sie utrzymuje stan widzialnosci sprzed chowania
// checkboxes - bool, jesli ustawiony - funkcja sprawdza atrybut checked a nie value
function pokazJesli ( select, str, elem, elemStatusQuo, isCheckbox ) {
	// addStatusQuo ( elemStatusQuo );
	// sprawdzenie wartosci
	// jesli tablica dozwolonych wartosci
	var match = false;
	if ( typeof ( str ) == "object" ) {
		match = inArray ( select.value, str );
	} else {	// jesli jedna zadana wartosc		
		// jesli sprawdzany element to nie checkbox
		if ( !isCheckbox ) {
			// jesli wartosc sie zgadza
			if ( select.value == str ) match = true;
		} else {		// jesli to checkbox
			if ( select.checked ) match = true;
		}
	}
	
	if ( match ) {
		summonElement ( elem, true );
		if ( elemStatusQuo != undefined ) {
			for ( var each in elemStatusQuo ) {
				if ( getStatusQuo ( elemStatusQuo [ each ] ) ===  1 || getStatusQuo ( elemStatusQuo [ each ] )  ===  true ) summonElement ( elemStatusQuo [ each ], false );
			}
		}
	} else {
		dismissElement ( elem, true );
		if ( elemStatusQuo != undefined ) dismissElement ( elemStatusQuo, false );
	};
}

// ---------------------------------------------------------------------------------- usuwa i przywraca zadany element
function summonElement ( id, changeStatus ) {
	if ( typeof ( id ) == "object" ) {
		var id_ar = id;
		for ( var each in id_ar ) {
			id = id_ar [ each ];
			if ( changeStatus ) setStatusQuo ( id, 1 );
			var obj = document.getElementById ( id );
			if (isIE) {
				obj.style.display = "block"
			} else {
				obj.style.display = "table-cell";
			}
		}
	} else {
		if ( changeStatus ) setStatusQuo ( id, 1 );
		if (isIE) {
			document.getElementById ( id ).style.display = "block"
		} else {
			document.getElementById ( id ).style.display = "table-cell";
		}
	}
}

function dismissElement ( id, changeStatus ){
	if ( typeof ( id ) == "object" ) {
		var id_ar = id;
		for ( var each in id_ar ) {
			id = id_ar [ each ];
			if ( changeStatus ) setStatusQuo ( id, 0 );
			var obj = document.getElementById ( id );
			obj.style.display="none";
		}
	} else {
		if ( changeStatus ) setStatusQuo ( id, 0 );
		document.getElementById ( id ).style.display="none";
	}
}

function getElementStatus ( elem ) {
	return ( document.getElementById ( elem ).style.display != "none" );
}

// ---------------------------------------------------------------------------------- ukrywa intro ( za pierwszym wejscie gdy nieustawiona sesja )
function hideIntro ()
{
	showElement ( "menuSWF" );
	hideElement ("introPlacer");
};

function showIntro () {
	hideElement ("menuSWF");
};

// ---------------------------------------------------------------------------------- podglad wydruku
// zarzadzanie stylami na potrzeby podgladu wydruku
if (document.getElementsByTagName)
	// link 0 - zawsze wlaczony
	// link 1 - styl wydruku wrzucony na ekran (jesli wlaczony to zawsze z link 3
	document.getElementsByTagName ('link')[1].disabled = true;
	// link 2 - styl wydruku, zawsze wlaczony
	// link 3 - styl na ekran, wlacza i formatuje okienka informacyjne podgladu wydruku
	document.getElementsByTagName ('link')[3].disabled = true;
	

function podgladWydruku ( wlacz )
{
	if ( document.getElementsByTagName )
		x = document.getElementsByTagName ( 'link' );
	else if ( document.all )
		x = document.all.tags ( 'link' );
	else
	{
		return;
	}
	
	x[1].disabled = !wlacz;
	x[3].disabled = !wlacz;
}

