
	var Mx=Array(), MxM, MxB;
	Mx['imgs_dir']='images';
	Mx['imgs']=Array('maxmi_loading.png', 'maxmi_error.png');
	Mx['images']=Array();
	Mx['add']=44;
	Mx['width']=40;

	i=0;
	for(key in Mx['imgs'])
	{
		Mx['images'][i]=new Image();
		Mx['images'][i++].src=Mx['imgs_dir'] + '/' + Mx['imgs'][key];
	}



	function Maxmi(id, image)
	{
		CCS('maxmi', 'display', 'block');

		if(Mx['run'])
		{
			GO('maxmi').innerHTML='';
			Mx['image']=false;
		}

		Mx['run']=true;

		img=GO('image-' + id);

		Mx['position']=Position(img);
		Mx['imgsize']=Array(img.width, img.height);

		GO('maxmi').innerHTML='<img src="' + Mx['images'][0].src + '" alt="Loading" id="maxmi-loading" />';
		GO('maxmi-loading').style.top=(Mx['position'][1] + (Mx['imgsize'][1] / 2) - 15) + 'px';
		GO('maxmi-loading').style.left=(Mx['position'][0] + (Mx['imgsize'][0] / 2) - 75) + 'px';

		Mx['image']=new Image();
		Mx['image'].onload=function () {Maxmi_Finish()};
		Mx['image'].onerror=function () {Maxmi_Error()};
		Mx['image'].src=image;
	}




	function Maxmi_Finish()
	{
		var tx;

		tx='<div id="maxmi-block">';
		tx+='<img src="' + Mx['image'].src + '" id="maxmi-image" alt="" onclick="Maxmi_Close();" />';
		tx+='<div id="maxmi-close"></div>';
		tx+='</div>';

		MxM=Array();
		MxM['size']=Array(Mx['image'].width, Mx['image'].height);
		MxM['actual']=img.id;
		MxM['old']=img.id;
		MxM['width']=Mx['width'];
		Mx['height']=MxM['size'][1] / (MxM['size'][0] / MxM['width']);
		MxM['height']=MxM['size'][1] / (MxM['size'][0] / MxM['width']);
		MxM['plus_w']=25;
		MxM['plus_h']=MxM['size'][1] / (MxM['size'][0] / MxM['plus_w']);

		MxB=Array();
		//MxB['steps']=Math.ceil(MxM['size'][0] / MxM['plus_w']);
		MxB['x']=Mx['position'][1] + (Mx['imgsize'][1] / 2);
		MxB['y']=Mx['position'][0] + (Mx['imgsize'][0] / 2);
		MxB['step']=1;

		GO('maxmi').innerHTML=tx;

		Maxmi_toMax();
	}



	function Maxmi_toMax()
	{
		var x, y, sc, ws;

		if(!Mx['run'] || (MxM['old'] != MxM['actual']))
		{
			return;
		}

		MxM['old']=MxM['actual'];

		x=MxB['y'] - ((MxM['width'] + Mx['add']) / 2);
		y=MxB['x'] - ((MxM['height'] + Mx['add']) / 2)

		sc=CoorXY();
		ws=WinSize();

		if((x + MxM['width'] + Mx['add']) > (sc[0] + ws[0] - 20))
		{
			x=sc[0] + ws[0] - MxM['width'] - Mx['add'] - 20;
		}

		if((y + MxM['height'] + Mx['add']) > (sc[1] + ws[1] - 20))
		{
			y=sc[1] + ws[1] - MxM['height'] - Mx['add'] - 20;
		}

		if((x - 10) < sc[0]) x=sc[0] + 10;
		if((y - 10) < sc[1]) y=sc[1] + 10;

		GO('maxmi-block').style.top=Math.ceil(y) + 'px';
		GO('maxmi-block').style.left=Math.ceil(x) + 'px';

		GO('maxmi-image').style.width=Math.ceil(MxM['width']) + 'px';
		GO('maxmi-image').style.height=Math.ceil(MxM['height']) + 'px';

		if(MxM['stop'])
		{
			setTimeout('Maxmi_Zavrit()', 1500);
			MxM['stop']=false;
			return;
		}

		MxM['width']+=MxM['plus_w'];
		MxM['height']+=MxM['plus_h'];

		if((MxM['width'] > MxM['size'][0]) || (MxM['height'] > MxM['size'][1]))
		{
			MxM['width']=MxM['size'][0];
			MxM['height']=MxM['size'][1];
			MxM['stop']=true;
		}

		setTimeout('Maxmi_toMax();', 1);
	}



	function Maxmi_Zavrit()
	{
		var elem;

		elem=GO('maxmi-close');

		if(elem)
		{
			CCS('maxmi-close', 'display', 'block');
			CCS('maxmi-close', 'width', (MxM['width'] + 30) + 'px');
			elem.innerHTML='Zavřete kliknutím na obrázek';
		}
	}


	function Maxmi_Close()
	{
		MxM['stop']=false;
		CCS('maxmi-close', 'display', 'none');
		Maxmi_toMin();
	}


	function Maxmi_toMin()
	{
		var x, y, sc, ws;

		if(!Mx['run'] || (MxM['old'] != MxM['actual']))
		{
			return;
		}

		MxM['old']=MxM['actual'];

		x=MxB['y'] - ((MxM['width'] + Mx['add']) / 2);
		y=MxB['x'] - ((MxM['height'] + Mx['add']) / 2)

		sc=CoorXY();
		ws=WinSize();

		if((x + MxM['width'] + Mx['add']) > (sc[0] + ws[0] - 20))
		{
			x=sc[0] + ws[0] - MxM['width'] - Mx['add'] - 20;
		}

		if((y + MxM['height'] + Mx['add']) > (sc[1] + ws[1] - 20))
		{
			y=sc[1] + ws[1] - MxM['height'] - Mx['add'] - 20;
		}

		if((x - 10) < sc[0]) x=sc[0] + 10;
		if((y - 10) < sc[1]) y=sc[1] + 10;

		GO('maxmi-block').style.top=Math.ceil(y) + 'px';
		GO('maxmi-block').style.left=Math.ceil(x) + 'px';

		GO('maxmi-image').style.width=Math.ceil(MxM['width']) + 'px';
		GO('maxmi-image').style.height=Math.ceil(MxM['height']) + 'px';

		if(MxM['stop'])
		{
			MxM['stop']=false;
			GO('maxmi').innerHTML='';
			CCS('maxmi', 'display', 'none');
			Mx['image']=false;
			Mx['run']=false;
			return;
		}

		MxM['width']-=MxM['plus_w'] * 2;
		MxM['height']-=MxM['plus_h'] * 2;

		if((MxM['width'] < Mx['width']) || (MxM['height'] < Mx['height']))
		{
			MxM['width']=Mx['width'];
			MxM['height']=Mx['height'];
			MxM['stop']=true;
		}

		setTimeout('Maxmi_toMin();', 1);
	}




	function Maxmi_Error()
	{
		GO('maxmi-loading').src=Mx['images'][1].src;
	}



	function Position(elem)
	{
		if(elem.x)
		{
  			return Array(elem.x, elem.y);
  		}
	  	else
	  	{
	  		var left=0, top=0, obj;

  			left+=elem.offsetLeft;
  			top+=elem.offsetTop;
  			obj=elem.offsetParent;

  			while(obj != null)
  			{
     				left+=obj.offsetLeft;
     				top+=obj.offsetTop;
     				obj=obj.offsetParent;
     			}

     			return Array(left, top);
     		}
     	}



	function WinSize()
	{
   		if(window.innerHeight)
   		{
      			return Array(window.innerWidth, window.innerHeight);
      		}
   		else if(document.documentElement && document.documentElement.clientHeight)
   		{
      			return Array(document.documentElement.clientWidth, document.documentElement.clientHeight);
      		}
   		else if(document.body && document.body.clientHeight)
   		{
      			return Array(document.body.clientWidth, document.body.clientHeight);
      		}
      		else
      		{
      			return false;
      		}
	}



	function CoorXY()
	{
		var cx, cy;

		if(self.pageXOffset >= 0)
		{
			cx=self.pageXOffset;
			cy=self.pageYOffset;
		}
		else
		{
			cx=document.body.scrollLeft;
			cy=document.body.scrollTop;

			if((cx == 0) && (cy == 0))
			{
				cx=document.documentElement.scrollLeft;
				cy=document.documentElement.scrollTop;
			}
		}

		return Array(cx, cy);
	}

