	var clickedelm = null;
	var piccaption = null;
	var picmoving = false;
	var picmargin = 10;
	var myimg;
	var KahulaBrowserInfo =
	{
		IsIE		: /*@cc_on!@*/false
	}
	GetViewPaneSize = function( win )
	{
		if(KahulaBrowserInfo.IsIE)
		{
			var oSizeSource ;

			var oDoc = win.document.documentElement ;
			if ( oDoc && oDoc.clientWidth )				// IE6 Strict Mode
				oSizeSource = oDoc ;
			else
				oSizeSource = win.document.body ;		// Other IEs

			if ( oSizeSource )
				return { Width : oSizeSource.clientWidth, Height : oSizeSource.clientHeight } ;
			else
				return { Width : 0, Height : 0 } ;
		}
		else
		{
			return { Width : win.innerWidth, Height : win.innerHeight } ;

		}
	}
	function openImage(val, cap, elm)
	{
		if(!picmoving)
			if(clickedelm)
				if(elm==clickedelm)
					closeImage();
				else
					closeImage(val, cap, elm);
			else
				openImageInternal(val, cap, elm);
			
		
		
		//$('poppic').src = val;

	}
	function openImageInternal(val, cap, elm)
	{
		clickedelm = elm;
		//$('loading').style.display = "block";
		$('loading').setStyle({top:(GetViewPaneSize(window).Height - $('loading').getHeight())/2,display:'block'});
		myimg = new Image();
		myimg.caption = cap;
		myimg.onload = loadImage;
		myimg.src = val;
	}
	function loadImage()
	{
		$('loading').style.display = "none";
		$('poppic').src = myimg.src
		$('poppic').setStyle({width:$(clickedelm).getWidth(), height:$(clickedelm).getHeight(), top:$(clickedelm).cumulativeOffset()[1], left:$(clickedelm).cumulativeOffset()[0], opacity:0});
		picmoving = true;
		var top = (((GetViewPaneSize(window).Height - myimg.height)/2)>picmargin)?((GetViewPaneSize(window).Height - myimg.height)/2):picmargin;
		var left = (((GetViewPaneSize(window).Width - myimg.width)/2)>picmargin)?((GetViewPaneSize(window).Width - myimg.width)/2):picmargin;
		$('poppic').morph('width:'+myimg.width+'px; height:'+myimg.height+'px; top:'+ top+'px; left:'+ left+'px; opacity: 1', {duration:.9,transition:Effect.Transitions.swingTo,afterFinishInternal:function(effect) {openCaption()}});
		//alert(myimg.caption);
	}
	function closeImage(val,cap,elm)
	{
		if(!picmoving)
			closeCaption(val,cap,elm);
	}
	function closeImageInternal(val,cap,elm)
	{
		//closeCaption();
		picmoving = true;
		if(clickedelm)
		{
			$('poppic').morph('width:'+$(clickedelm).getWidth()+'px; height:' + $(clickedelm).getHeight() + 'px; top: '+ $(clickedelm).cumulativeOffset()[1] + 'px; left:' + $(clickedelm).cumulativeOffset()[0] + 'px; opacity: 0', {duration:.9,transition:Effect.Transitions.swingFrom, afterFinishInternal:function(effect) {$('poppic').setStyle({width:0,height:0,left:-100,top:-100});picmoving = false;clickedelm = null;myimg = null;if(val&&elm) openImageInternal(val,cap,elm);}});
		}
		else
		{
			$('poppic').setStyle({width:0,height:0,left:-100,top:-100});
			myimg = null;
			if(val&&cap&&elm) openImageInternal(val,cap,elm);
		}
	}
	function openCaption()
	{
	//	alert($('poppic').cumulativeOffset()[1]);
			$('poppic_caption').innerHTML = "<table width=100% height=100% cellpadding=0 cellspacing=0><tr><td>" + myimg.caption + "</td></tr></table>";
			$('poppic_caption').setStyle({width:$('poppic').getWidth(), height:$('poppic').getHeight(), top:$('poppic').cumulativeOffset()[1], left:$('poppic').cumulativeOffset()[0], opacity:0});
	//		alert($('poppic_caption').getStyle());
			new Effect.Appear('poppic_caption',{duration:.2,to:.8,afterFinishInternal:function(event){picmoving = false;}});
	
	}
	function closeCaption(val,cap,elm)
	{
		new Effect.Fade('poppic_caption',{duration:.2,afterFinishInternal:function(effect){$('poppic_caption').setStyle({width:0,height:0,top:-10,left:-10,opacity:0});$('poppic_caption').innerHTML = '';closeImageInternal(val,cap,elm);}})
	}