var actv = 0;
function inicjuj(mapa,zoom,ilosc_x,ilosc_y,szer_x,szer_y)
{
actv = 1;
$('mapy').style.display = "block";
$('str').style.display = "none";
d=document;
if (typeof window.innerWidth!='undefined') {
	var szer = window.innerWidth-300;
	var wys = window.innerHeight-20;
	}
else {
if (d.documentElement && typeof d.documentElement.clientWidth!='undefined' && d.documentElement.clientWidth!=0)
	{
	var szer = d.documentElement.clientWidth-300;
	var wys = d.documentElement.clientHeight-20;
	}
else { 
	if (d.body && typeof d.body.clientWidth!='undefined')
	{
	var szer = d.body.clientWidth-300; 
	var wys = d.body.clientHeight-20;
	}
}
}

// nadanie wymiarów ramki z mapa

tlo(wys,szer);

// wyznaczenie pozycji startowej

ustaw = new stat(mapa,zoom,ilosc_x,ilosc_y,szer_x,szer_y,wys,szer);
zoom_f();


if (mapa != 'none')
	{
	k = new komorka(0,0,szer,wys);
	odswiez();
	}
}


function zamknij()
{
	$('mapy').style.display = "none";
	$('str').style.display = "block";
	$('matryca').innerHTML = '';
	actv = 0;
}



// funckje dodatkowe


function zoom_f()
{
$('zoom_ind').innerHTML = (z[ustaw.zoom].m1*z[ustaw.zoom].m2)*100 + '%';
}


function zmiana_rozmiaru()
{
if (actv == 1)
{
	mapa = ustaw.mapa;
	zoom = ustaw.zoom;
	ilosc_x = ustaw.ilosc_x;
	ilosc_y = ustaw.ilosc_y;
	szer_x = ustaw.szer_x;
	szer_y = ustaw.szer_y;
	delete k;
	delete ustaw;
	inicjuj(mapa,zoom,ilosc_x,ilosc_y,szer_x,szer_y);
}
}


function ust(sx,sy)
{
	k.st_x = parseInt(sx/k.szer_x);
	k.st_y = parseInt(sy/k.szer_y);
	if (k.st_x > (k.ilosc_x-k.wysw_kom_x)) k.st_x = (k.ilosc_x-k.wysw_kom_x); 
	if (k.st_y > (k.ilosc_y-k.wysw_kom_y)) k.st_y = (k.ilosc_y-k.wysw_kom_y);
	if (k.st_x < 0) k.st_x = 0;
	if (k.st_y < 0) k.st_y = 0;
	$('matryca').style.left = -(sx%k.szer_x)+"px";
	$('matryca').style.top = -(sy%k.szer_y)+"px";
}

function zoom_in()
{
if (ustaw.zoom < z_max)
	{
	var zo = ustaw.zoom;
	var wsp = (z[(zo+1)].m1*z[(zo+1)].m2)/(z[zo].m1*z[zo].m2);
	var sx = parseInt((k.st_x*k.szer_x - ExtractNumber($('matryca').style.left))*(wsp)) + (ustaw.szer_map_x*wsp - ustaw.szer_map_x)/2;
	var sy = parseInt((k.st_y*k.szer_y - ExtractNumber($('matryca').style.top))*(wsp)) + (ustaw.szer_map_y*wsp - ustaw.szer_map_x)/2;
	zoom = ++ustaw.zoom;
	mapa = ustaw.mapa;
	ilosc_x = ustaw.ilosc_x;
	ilosc_y = ustaw.ilosc_y;
	szer_x = ustaw.szer_x;
	szer_y = ustaw.szer_y;
	delete k;
	delete ustaw;
	inicjuj(mapa,zoom,ilosc_x,ilosc_y,szer_x,szer_y);
	ust(sx,sy);
	odswiez();
	zoom_f();
	}
}


function zoom_out()
{
if (ustaw.zoom > 1)
	{
	var zo = ustaw.zoom;
	var wsp = ((z[zo].m1*z[zo].m2)/(z[(zo-1)].m1*z[(zo-1)].m2));
	var sx = parseInt((k.st_x*k.szer_x - ExtractNumber($('matryca').style.left))/(wsp)) + (ustaw.szer_map_x/wsp - ustaw.szer_map_x)/2;
	var sy = parseInt((k.st_y*k.szer_y - ExtractNumber($('matryca').style.top))/(wsp)) + (ustaw.szer_map_y/wsp - ustaw.szer_map_x)/2;
	zoom = --ustaw.zoom;
	mapa = ustaw.mapa;
	ilosc_x = ustaw.ilosc_x;
	ilosc_y = ustaw.ilosc_y;
	szer_x = ustaw.szer_x;
	szer_y = ustaw.szer_y;
	delete k;
	delete ustaw;
	inicjuj(mapa,zoom,ilosc_x,ilosc_y,szer_x,szer_y);
	ust(sx,sy);
	odswiez();
	zoom_f();
	}
}


function odswiez()
{
var matr = $('matryca');
var zawartosc = '';
	for (var j=k.st_y; j<(k.wysw_kom_y+k.st_y); j++) 
	{
	for (var i=k.st_x; i<(k.wysw_kom_x+k.st_x); i++) zawartosc += '<img src="mapy/'+ustaw.mapa+'/'+k.lev+'_'+(j+1)+'x'+(i+1)+'.jpg" class="ramka" style="width: '+k.szer_x+'px; height: '+k.szer_y+'px;"/>';
	}
matr.innerHTML = zawartosc;
}

function tlo(wys,szer)
{
var lay = $('maplayer');
lay.style.width = szer+'px';
lay.style.height = wys+'px';
var lay = $('obw');
lay.style.width = (szer+10)+'px';
lay.style.height = (wys+10)+'px';
$('zoom_ind').style.left = (parseInt(szer/2)+200)+'px';
$('clos').style.left = (szer+160)+'px';

}


function matr(szer,wys)
{
var matr = $('matryca');
matr.style.width = szer+'px';
matr.style.height = wys+'px';
}


// klasy





function zomm_lev(m1,m2)
{
	this.m1=m1;
	this.m2=m2;
}

function stat(mapa,zoom,ilosc_x,ilosc_y,szer_x,szer_y,szer,wys)
{
	this.mapa = mapa;
	this.zoom = zoom;
	this.ilosc_x = ilosc_x;
	this.ilosc_y = ilosc_y;
	this.szer_x = szer_x;
	this.szer_y = szer_y;
	this.szer_map_x = szer;
	this.szer_map_y = wys;
}

function komorka(st_x,st_y,szer,wys)
{
	this.mapa = ustaw.mapa;
	this.lev = z[ustaw.zoom].m2;
	this.ilosc_x = ustaw.ilosc_x*this.lev;
	this.ilosc_y = ustaw.ilosc_y*this.lev;
	this.szer_x = parseInt(ustaw.szer_x*z[ustaw.zoom].m1);
	this.szer_y = parseInt(ustaw.szer_y*z[ustaw.zoom].m1);
	this.st_x = st_x;
	this.st_y = st_y;
	
	this.wysw_kom_x = (parseInt(szer/this.szer_x)+2);
	this.wysw_kom_y = (parseInt(wys/this.szer_y)+2);
	if (this.wysw_kom_x > this.ilosc_x) this.wysw_kom_x = this.ilosc_x;
	if (this.wysw_kom_y > this.ilosc_y) this.wysw_kom_y = this.ilosc_y;
	
	this.nd_x = this.szer_x-szer%this.szer_x;
	this.nd_y = this.szer_y-wys%this.szer_y;
	
	matr((this.wysw_kom_x*this.szer_x),(this.wysw_kom_y*this.szer_y));
}



function kom(szer_kom,wys_kom,st_w,st_h,ilosc_w,ilosc_h,max_w,max_h) {
	this.szer=szer_kom;
	this.wys=wys_kom;
	this.st_w=st_w;
	this.st_h=st_h;
	this.ilosc_w=ilosc_w;
	this.ilosc_h=ilosc_h;
	this.max_w=max_w;
	this.max_h=max_h;
}

function mat(il_w,il_h,nd_w,nd_h,lev,mapa) {
	this.pix_w=il_h;
	this.pix_h=il_w;
	this.nd_w=nd_w;
	this.nd_h=nd_h;
	this.lev=lev;
	this.mapa=mapa;
}

