Event.observe(window, 'load', function()
{
	$$("canvas.ie_image_hack").each(function(canvas)
	{
		canvas.image_src = canvas.attributes.image_src.value;
		try
		{
			canvas.hover = canvas.attributes.hover.value;
		}
		catch(err){}
		try
		{
			canvas.link = canvas.attributes.link.value;
		}
		catch(err){}
		set_canvas_image(canvas, canvas.image_src);
	});
});

function set_canvas_image(canvas, src, position_overlay)
{
	if (!canvas.getContext)
		canvas = G_vmlCanvasManager.initElement(canvas);
		
	canvas = $(canvas);
	
	var ctx = canvas.getContext('2d');
	
	var image = new Image();
	
	image.onload = function()
	{
		canvas.width = image.width;
		canvas.height = image.height;
		ctx.drawImage(image,0,0);
		
		if(!canvas.initialized)
		{
			canvas.initialized = true;
			
			canvas.makePositioned();
			
			var hoverer = $(document.createElement('div'));
			canvas.parentNode.appendChild(hoverer);
			hoverer.updates = canvas.identify();
			hoverer.addClassName('updater');
			canvas.updater = hoverer.identify();
			
			if(position_overlay)
			{
				hoverer.setStyle({
					position: 'absolute',
					top: canvas.positionedOffset().top + "px",
					height: canvas.getHeight() + 'px',
					left: canvas.positionedOffset().left + "px",
					width: canvas.getWidth() + 'px',
					cursor: canvas.getStyle('cursor')
				});
			}
			
			if(canvas.hover)
			{
				hoverer.observe('mouseover', function(event)
				{
					var element = Event.element(event);
					if(!element.match('div')) element = element.up('div');
					
					set_canvas_image($(element.updates), $(element.updates).image_src.replace(/-normal/, "-active"));
				});
				
				hoverer.observe('mouseout', function(event)
				{
					var element = Event.element(event);
					if(!element.match('div')) element = element.up('div');
					
					try
					{
						set_canvas_image($(element.updates), $(element.updates).image_src);
					}
					catch(err){}
				});
			}
			
			if(canvas.link)
			{
				var link = $(document.createElement('a'));
				link.href = canvas.link;
				link.setStyle({
					display: 'block',
					width: '100%',
					height: '100%'
				});
				hoverer.appendChild(link);
			}
			else
			{
				hoverer.observe('click', function(event)
				{
					var element = Event.element(event);
					$(element.updates).fire('custom:click');
				});
			}
		}
	};
	
	image.src = src;
	
	return canvas;
}
