	var rotation_to_save = -1;
	var initial_rotation = 0;

	var base_image = null;
	var new_image = null;
	var image_frame = null; 
	var infobar = null;
	var frame = null;
	var back = null;
	var toolbar = null;
	var placeholder = null;
	var frame_border = '1px solid #e2e6e5';
	var scale_factor = 1;
	var is_processing = 0;
	
	var move_step = 15;
	var fgrow_step = 7;
	var ires_step = 4; 
	var placeholder_width = 300;
	var default_dest_width = 150;
	var dest_width = default_dest_width;
	var infobar_h = 80;
	var toolbar_h = 60;
	var flash_dst = null;  
	var img_dst = null;
	
	setInterval('stopgrow()',500);

function stopgrow(event,forceclose)
{

	if(forceclose && placeholder)
	{
			placeholder.style.display = 'none';
			new_image.src = '0';

		if(rotation_to_save != -1 && initial_rotation != rotation_to_save)
		{
			image_id = base_image.id.search(/[0-9]/);
			image_id = base_image.id.substr(image_id);
			storePhotoRotation(image_id,rotation_to_save);
		}
	}

	var close_window = false;
	if(event)
	{
		var target = event.target?event.target:event.srcElement;
		if(target.id == 'grw_back' || (is_processing & ~(16 | 32)))
		{
			if(placeholder)
			{
				close_window = true;
			}
		}
	}

	if(!is_processing && placeholder && placeholder.style.display != 'none')
	{

		var placeholder_w = mstd_getSWidth(placeholder); 
		var placeholder_h = mstd_getSHeight(placeholder);
		var placeholder_t = mstd_getSTop(placeholder);
		var placeholder_b = placeholder_t + placeholder_h;
		var placeholder_l = mstd_getSLeft(placeholder);
		var placeholder_r = placeholder_l + placeholder_w;
			
		var mouse_pos = mstd_getMousePosition();
			
		if( mouse_pos[0] < placeholder_l ||
			 mouse_pos[0] > placeholder_r ||
			 mouse_pos[1] < placeholder_t ||
			 mouse_pos[1] > placeholder_b)
		close_window = 'true';

	}
	
	
	if(close_window)
	{
		if(placeholder) 
		{
			placeholder.style.display = 'none';
			new_image.src = '0';
		}

		if(rotation_to_save != -1 && initial_rotation != rotation_to_save)
		{
			image_id = base_image.id.search(/[0-9]/);
			image_id = base_image.id.substr(image_id);
			storePhotoRotation(image_id,rotation_to_save);
		}
	}
}

function prepare1stage(id,infobar_c_id,toolbar_c_id,link_href,dst_width)
{
	if(is_processing)return;

	if(dst_width) dest_width = dst_width;
		else dest_width = default_dest_width;
	
 	base_image = mstd_getObjectPtr(id);
	if(!base_image.complete) return;
	new_image = mstd_getObjectPtr('grw_image');
	image_frame = mstd_getObjectPtr('grw_image_frame');
	infobar = mstd_getObjectPtr('grw_infobar');
	frame = mstd_getObjectPtr('grw_frame');
	back = mstd_getObjectPtr('grw_back') ;
	toolbar = mstd_getObjectPtr('grw_toolbar');
	placeholder = mstd_getObjectPtr('grw_placeholder');

	var image_link = mstd_getObjectPtr('grw_image_link');
	var coded_tb = mstd_getObjectPtr('t_' + image_id);
	if(!link_href)
	{
		var image_id = id.substr(id.indexOf('_')+1);
		var link_arr = image_link.href.split(',');
		link_arr[link_arr.length - 2] = image_id;
		image_link.href = link_arr.join(',');
	}
	else
	{
		image_link.href = link_href;
	}

	var rot = (new_image.src.search(/\,[0-9]\./));
	if(rot == -1) 
		rot = 0
	else
		rot = parseInt(new_image.src.substr(rot+1,1));	
	initial_rotation = rot;
	rotation_to_save = -1;
	
	placeholder.style.display = "none";

	new_image.style.width = base_image.style.width;
	new_image.style.height = base_image.style.height;
	new_image.style.marginLeft 	= '2px';
	new_image.style.marginRight 	= '2px';
	new_image.style.marginTop 		= '2px';
	new_image.style.marginBottom 	= '2px';
	if (img_dst)
	{
	   new_image.src = img_dst;
	}
	else
	{
	   new_image.src = base_image.src;
	}

	var image_w = mstd_getSWidth(new_image);
	var image_h = mstd_getSHeight(new_image);
	scale_factor =  dest_width/image_w;
	var dest_image_h = Math.round(image_h * scale_factor,0);
	dest_image_h = (dest_image_h % 2)?dest_image_h + 1:dest_image_h; 
	
	var placeholder_w = placeholder_width;

	var placeholder_h =  dest_image_h 
						 + 2*2  
						 + 2*1	
						 + 2*1	 
						 + 2*6	 
						 + infobar_h 
						 + toolbar_h;
	
	placeholder.style.width = placeholder_w+'px';
	placeholder.style.height = placeholder_h+'px';
	
	infobar.style.display = 'none';
	toolbar.style.display = 'none';
	infobar.style.height = '1px';
	toolbar.style.height = '1px';
	infobar_src = mstd_getObjectPtr(infobar_c_id);
	toolbar_src = mstd_getObjectPtr(toolbar_c_id);
	
	if(infobar_src)
	{	
		for(var i = 0;i < infobar.childNodes.length;i++)
		{
			if(infobar.childNodes[i].nodeName == 'DIV' && infobar.childNodes[i].id == 'grw_infobar_c')
			{
					var infobar_c = infobar_src.cloneNode(true);
					infobar.replaceChild(infobar_c,infobar.childNodes[i]);
					infobar.childNodes[i].style.display = 'block';
					infobar.childNodes[i].id = 'grw_infobar_c';
					break;
			}
		}
	}

	if(toolbar_src)
	{	
		for(var i = 0;i < toolbar.childNodes.length;i++)
		{
			if(toolbar.childNodes[i].nodeName == 'DIV' && toolbar.childNodes[i].id == 'grw_toolbar_c')
			{
					var toolbar_c = toolbar_src.cloneNode(true);
					toolbar.replaceChild(toolbar_c,toolbar.childNodes[i]);
					toolbar.childNodes[i].style.display = 'block';
					toolbar.childNodes[i].id = 'grw_toolbar_c';
					break;
			}
		}
	}
	
	frame.style.border = '0px';
	var image_frame_w = image_w + 2*2;
	var image_frame_h = image_h + 2*2;
	var frame_w = image_frame_w + 2;
	var frame_h = image_frame_h + 2;
	
	image_frame.style.width = image_frame_w + 'px';
	image_frame.style.height = image_frame_h + 'px';

	frame.style.width = frame_w + 'px';
	frame.style.height = frame_h + 3 + 'px';
	mstd_setSMargins(image_frame,0,0,0,0);
	mstd_setSMargins(frame,0,0,0,0);

	back.style.width = frame_w + 'px';
	back.style.height = frame_h + 'px';
	var back_m_l = (placeholder_w - (image_frame_w + 2))/2; 
	var back_m_r = (placeholder_w - (image_frame_w + 2))/2; 
	var back_m_t = (dest_image_h + 4 + 2 + - frame_h)/2 + 7 + infobar_h;
	mstd_setSMargins(back,back_m_t,back_m_r,0,back_m_l);

	var base_pos_top = mstd_getAbsTop(base_image);
	var base_pos_left = mstd_getAbsLeft(base_image);
	placeholder.style.top = (base_pos_top - back_m_t - 2 - 1) + 'px'; 
	placeholder.style.left = (base_pos_left - back_m_l - 2 - 1) + 'px';
	
	placeholder.style.display = 'block';
	
	do1stage(ires_step*2);
}

function do1stage(step)
{
	is_processing =  1;
	var iwidth = mstd_getSWidth(new_image);

	if(iwidth == dest_width)
	{
		prepare2stage();
		is_processing = is_processing & ~1;
		return;
	}
	
	iwidth = iwidth + step;
	if(iwidth > dest_width)
	{
		step = dest_width - (iwidth - step);
		iwidth = dest_width;
	}
	
	var base_width = mstd_getSWidth(base_image);
	scale_factor = iwidth / base_width;
	var base_height = mstd_getSHeight(base_image);
	var itheight = mstd_getSHeight(new_image);
	var iheight = Math.round((base_height * scale_factor),0);
	iheight = (iheight % 2)?iheight + 1:iheight; 
	steph = iheight - itheight;

	var iframe_w = mstd_getSWidth(image_frame) + step;
	var iframe_h = mstd_getSHeight(image_frame) + steph;

	var frame_w = mstd_getSWidth(frame) + step;
	var frame_h = mstd_getSHeight(frame) + steph;

	var back_w = mstd_getSWidth(back) + step;
	var back_h = mstd_getSHeight(back) + steph;

	var back_m_l = mstd_getSMarginLeft(back) - step/2;
	var back_m_r = mstd_getSMarginRight(back) - step/2;
	var back_m_t = mstd_getSMarginTop(back) - steph/2;

	new_image.style.width = iwidth + 'px';
	new_image.style.height = iheight + 'px';

	image_frame.style.width = iframe_w + 'px';
	image_frame.style.height = iframe_h  + 'px';

	frame.style.height = frame_h + 'px';
	frame.style.width = frame_w + 'px';

	back.style.height = back_h + 'px';
	back.style.width = back_w + 'px';

	back.style.marginTop = back_m_t + 'px';
	back.style.marginRight = back_m_r + 'px';
	back.style.marginLeft = back_m_l + 'px';
	
	setTimeout('do1stage('+step+')',1);
}

function prepare2stage()
{
	var dest_grow_w = mstd_getSWidth(back) + 12; 
	var dest_grow_h = mstd_getSHeight(back) + 12;
	do2stage(fgrow_step * 2,fgrow_step*2,dest_grow_w,dest_grow_h);
}

function do2stage(step_w,step_h,dest_grow_w,dest_grow_h)
{
	is_processing =  2;
	
	var back_w = mstd_getSWidth(back);
	var back_h = mstd_getSHeight(back);
	
	if(back_w >= dest_grow_w && back_h >= dest_grow_h)
	{
		is_processing = is_processing & ~2;
		prepare3stage();
		return;
	}
	
	back_w = back_w + step_w;
	back_h = back_h + step_h;
	
	if(back_w > dest_grow_w)
	{
		step_w = dest_grow_w - (back_w - step_w);
		back_w = dest_grow_w;
	}
	
	if(back_h > dest_grow_h)
	{
		step_h = dest_grow_h - (back_h - step_h);
		back_h = dest_grow_h;
	}

	var back_m_t = mstd_getSMarginTop(back) - step_h/2;
	var back_m_r = mstd_getSMarginRight(back) - step_w/2;
	var back_m_l = mstd_getSMarginLeft(back) - step_w/2;
	
	var frame_m_t = mstd_getSMarginTop(frame) + step_h/2;
	var frame_m_r = mstd_getSMarginRight(frame) + step_w/2;
	var frame_m_b = mstd_getSMarginBottom(frame) + step_h/2;
	var frame_m_l = mstd_getSMarginLeft(frame) + step_w/2;
	
	back.style.width = back_w + 'px';
	back.style.height = back_h + 'px';
	
	mstd_setSMargins(back,back_m_t,back_m_r,0,back_m_l);
	mstd_setSMargins(frame,frame_m_t,frame_m_r,frame_m_l,frame_m_b);
	
	setTimeout('do2stage('+step_w+','+step_h+','+dest_grow_w+','+dest_grow_h+')',1);
}

function prepare3stage()
{

	var back_m_t = mstd_getSMarginTop(back) - 1;
	var back_m_r = mstd_getSMarginRight(back) - 1;
	var back_m_l = mstd_getSMarginLeft(back) - 1;

	var back_w = mstd_getSWidth(back) + 2;
	var back_h = mstd_getSHeight(back) + 2;
	
	back.style.width = back_w + 'px';
	back.style.height = back_h + 'px';
	mstd_setSMargins(back,back_m_t,back_m_r,0,back_m_l);
	
	frame.style.border = frame_border;
	
	var placeholder_w = mstd_getSWidth(placeholder);
	do3stage(fgrow_step*2,placeholder_w);
}

function do3stage(step,dest_width)
{
	is_processing =  4;
	var back_w = mstd_getSWidth(back);
	if(back_w >= dest_width)
	{
		is_processinng = is_processing & ~4;
		prepare4stage();
		return;
	}

	back_w = back_w + step;

	if(back_w > dest_width)
	{
		step = (dest_width - (back_w - step));
		back_w = dest_width;
	}

	var frame_w = mstd_getSWidth(frame) + step;
	
	var back_m_t = mstd_getSMarginTop(back);
	var back_m_r = mstd_getSMarginRight(back) - step/2;
	var back_m_b = mstd_getSMarginBottom(back);
	var back_m_l = mstd_getSMarginLeft(back) - step/2;

	var iframe_m_t = mstd_getSMarginTop(image_frame);
	var iframe_m_r = mstd_getSMarginRight(image_frame) + step/2;
	var iframe_m_b = mstd_getSMarginBottom(image_frame);
	var iframe_m_l = mstd_getSMarginLeft(image_frame) + step/2;
	
	back.style.width = back_w + 'px';
	frame.style.width = frame_w + 'px';
	
	mstd_setSMargins(back,back_m_t,back_m_r,back_m_b,back_m_l);
	mstd_setSMargins(image_frame,iframe_m_t,iframe_m_r,iframe_m_b,iframe_m_l);
	
	setTimeout('do3stage('+step+','+dest_width+')',1);
}

function prepare4stage()
{

	var back_h = mstd_getSHeight(back) + 2; 
	var back_m_t = mstd_getSMarginTop(back) - 1;
	var frame_h = mstd_getSHeight(frame) + 2;
	
	back.style.height = back_h + 'px';
	back.style.marginTop = back_m_t + 'px';
	frame.style.height = frame_h + 'px';
	
	toolbar.style.display = 'block';
	infobar.style.display = 'block';
	
	do4stage(fgrow_step*2,fgrow_step*2);
}

function do4stage(step_ib,step_tb)
{
	is_processing =  8;
	var ib_height = mstd_getSHeight(infobar);
	var tb_height = mstd_getSHeight(toolbar);

	if(ib_height >= infobar_h && tb_height >= toolbar_h)
	{
		is_processing = is_processing & ~8;
		if(flash_dst)
		{
		   ustawFlash(flash_dst);
		}
		prepare5stage();
		return;
	}
	
	ib_height = ib_height + step_ib;
	if(ib_height > infobar_h)
	{
		step_ib = infobar_h - (ib_height - step_ib);
		ib_height = infobar_h;
	}
	
	tb_height = tb_height + step_tb;
	if(tb_height >= toolbar_h)
	{
		step_tb = toolbar_h - (tb_height - step_tb);
		tb_height = toolbar_h;
	}
	
	var back_h = mstd_getSHeight(back) + step_tb + step_ib;

	var frame_h = mstd_getSHeight(frame) + step_tb + step_ib;
	

	var back_m_t = mstd_getSMarginTop(back) - step_ib;
	

	back.style.height = back_h + 'px';
	back.style.marginTop = back_m_t + 'px';
	frame.style.height = frame_h + 'px';
	infobar.style.height = ib_height + 'px';
	toolbar.style.height = tb_height + 'px';
	
	setTimeout('do4stage('+step_ib+','+step_tb+')',1);
}

function prepare5stage()
{

	var window_dim = mstd_getWindowSize();
	var window_scr = mstd_getWindowScroll();
	var placeholder_w = mstd_getSWidth(placeholder); 
	var placeholder_h = mstd_getSHeight(placeholder);
	if(window_dim[0] <  placeholder_w || window_dim[1] < placeholder_h)
	return;

	var placeholder_t = mstd_getSTop(placeholder);
	var placeholder_b = placeholder_t + placeholder_h;
	var placeholder_l = mstd_getSLeft(placeholder);
	var placeholder_r = placeholder_l + placeholder_w;
	

	var window_t = window_scr[1];
	var window_b = window_t + window_dim[1];
	var window_l = window_scr[0];
	var window_r = window_l + window_dim[0];
	
	var dif_w = 0;
	if(placeholder_l < window_l) 
	{
		dif_w = window_l - placeholder_l; 
	}

	if(placeholder_r > window_r)
	{
		dif_w = window_r - placeholder_r;
	}
	
	var dif_h = 0;
	if(placeholder_t < window_t )
	{
		dif_h = window_t - placeholder_t;
	}
	
	if(placeholder_b > window_b)
	{
		dif_h = window_b - placeholder_b;
	}
	
	if(dif_w || dif_h)
	{
		do5stage(move_step,move_step,placeholder_t + dif_h,placeholder_l + dif_w);
	}
}

function do5stage(step_w,step_h,dest_top,dest_left)
{
	is_processing =  16;
	var cur_l = mstd_getSLeft(placeholder);
	var cur_t = mstd_getSTop(placeholder);
	
	if(cur_l == dest_left && cur_t == dest_top)
	{
		is_processing = is_processing & ~16;
		setTimeout('stopgrow()',1000);
      return;
	}
	
	if(cur_l > dest_left)
	{
		if(cur_l - step_w < dest_left)
		{
			step_w = cur_l - dest_left;
		}
		cur_l = cur_l - step_w;	
	}
	
	if(cur_l < dest_left)
	{
		if(cur_l + step_w > dest_left)
		{
			step_w = dest_left - cur_l;
		}
		cur_l = cur_l + step_w;
	}
	
	if(cur_t < dest_top)
	{
		if(cur_t + step_h > dest_top)
		{
			step_h = dest_top - cur_t;
		}
		cur_t = cur_t + step_h;
	}
	
	if(cur_t > dest_top)
	{
		if(cur_t - step_h < dest_top)
		{
			step_h = cur_t - dest_top;
		}
		cur_t = cur_t - step_h;
	}
	
	placeholder.style.top = cur_t + 'px';
	placeholder.style.left = cur_l + 'px';
	
	setTimeout('do5stage('+step_w+','+step_h+','+dest_top+','+dest_left+')',1);
}



var rotation_to_save;
var initial_rotation;

function rotateMImage(direction,wait_img_src)
{
	if(is_processing && 32) return;
	
	if(!wait_img_src) wait_img_src = '_d/lay/kreciol_s.gif';
	direction = direction == 'left'?-1:1;
	
	var path = new_image.src;
	var rot = (path.search(/\,[0-9]\./));
	if(rot == -1)
		return;
	
	rot = parseInt(path.substr(rot+1,1));
	rot += direction;
	if(rot > 3) rot = 0;
	if(rot < 0) rot = 3;
	
	var new_path = path.replace(/\,[0-9]\./, ','+rot+'.');
	rotation_to_save = rot;
	is_processing = 32;
	


	new_image.base_height = mstd_getSHeight(new_image);
	new_image.base_width = mstd_getSWidth(new_image);
	
	base_image.base_height = mstd_getSHeight(base_image);
	base_image.base_width = mstd_getSWidth(base_image);

	new_image.src = wait_img_src;
	base_image.src = wait_img_src;
	
	var rotated_img = new Image();
	rotated_img.src = new_path;
	rotated_img.onload = update_images(rotated_img,new_image,base_image);
	
}

function update_images(src_img,popover_img,base_img)
{
	if(src_img)
	{
		if(popover_img) 
		{
			var max_height = mstd_getSHeight(frame) - toolbar_h - infobar_h - 2*3;
			var new_width = dest_width;
			var scale_factor = popover_img.base_height / new_width;
			var new_height = Math.round(popover_img.base_width / scale_factor,0);
			new_height += new_height % 2?1:0; 
			
			if(new_height > max_height) 
			{
				scale_factor = popover_img.base_width / max_height;
				new_width = Math.round(popover_img.base_height / scale_factor,0);
				new_height = max_height;
			}

			var img_frame_w = new_width + 4;			
			var img_frame_h = new_height + 4;
			var img_frame_m_t = ((max_height + 6) - (img_frame_h+2))/2;
			var img_frame_m_b = img_frame_m_t;
			var img_frame_m_l = (mstd_getSWidth(frame) - (img_frame_w + 2)) /2; 
			var img_frame_m_r = img_frame_m_l;							

			image_frame.style.width = img_frame_w + 'px';
			image_frame.style.height = img_frame_h + 'px';			
			popover_img.src = src_img.src;
			image_frame.style.marginTop = img_frame_m_t + 'px';			
			image_frame.style.marginBottom = img_frame_m_b + 'px';						
			image_frame.style.marginLeft 	= img_frame_m_l + 'px';						
			image_frame.style.marginRight = img_frame_m_r + 'px';			

			popover_img.style.width = new_width;
			popover_img.style.height = new_height;
		

		}
		if(base_img) 
		{

			base_img.src = src_img.src;
			var tmp_height = base_img.base_width;
			var tmp_width = base_img.base_height;
			var scale_factor = tmp_width / tmp_height;
			tmp_width = tmp_height;
			tmp_height = Math.round(tmp_height / scale_factor,1);
			base_img.style.height = tmp_height + 'px';
			base_img.style.width = tmp_width + 'px';
		}
	}

	is_processing = is_processing & ~32;
}


window.document.onmouseout = grw_cursorOutOfBrowser;
window.grw_mouseOutHandler = 'stopgrow(null,true)';

function grw_cursorOutOfBrowser(e)
{
   if (flash_dst) return;

	var evt = e||event;
	if(evt.pageX) //FF
	{
		var wr = mstd_getWindowRect();

		if (	evt.pageX < wr.left || evt.pageX > wr.right || evt.pageY < wr.top || evt.pageY > wr.bottom )
		{

			if(window.grw_mouseOutHandler) eval(window.grw_mouseOutHandler);
			
		}
	}
	else
		if(evt.clientX && (evt.clientX < 0 || evt.clientY < 0)) //IE
		{
      if(window.grw_mouseOutHandler) eval(window.grw_mouseOutHandler);
		}
}

function podmien(imgdst,flashdst)
{
	var obj_setFlash = document.getElementById("grw_flash");
	var obj_setImg = document.getElementById("grw_img");
   document.getElementById("grw_image").src = '0';
   obj_setImg.style.display='block';   
   obj_setFlash.innerHTML='';
   obj_setFlash.style.display='none';   
	
   flash_dst = flashdst;
   img_dst = imgdst;
}

function ustawFlash(flashdst)
{
   var width=250;
   var height=180;
	var obj_setFlash = document.getElementById("grw_flash");
	var obj_setImg = document.getElementById("grw_img");
   var obj = '<OBJECT classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" '+ 
                  'codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" '+
                  'width="'+width+'" height="'+height+'" id="main_flash" align="middle"> '+
                '<PARAM name="allowScriptAccess" value="always"> '+
                '<PARAM name="movie" value="'+flashdst+'"> '+
                '<PARAM name="quality" value="high"> '+
                '<PARAM name="bgcolor" value="#FFFFFF"> '+
                '<PARAM name="wmode" value="opaque"> '+
                '<EMBED src="'+flashdst+'" quality="high" bgcolor="#FFFFFF" '+ 
                  'width="'+width+'" height="'+height+'" name="main-flash" align="middle" '+ 
                  'allowScriptAccess="always" type="application/x-shockwave-flash" '+ 
                  'pluginspage="http://www.macromedia.com/go/getflashplayer" wmode="opaque"> '+
                '</EMBED>'+
             '</OBJECT>';
   obj_setFlash.innerHTML=obj;

   obj_setImg.style.display='none';   
   obj_setFlash.style.display='block';      
}
