YAHOO.namespace('TSPreviewImage.panel');YAHOO.TSPreviewImage.panel.panels = []; 
function createPreviewImage(id_in, title_in, thumb_url, context_in,iwidth,iheight, closeOnMouseOut){
	var tspi = YAHOO.TSPreviewImage.panel.panels;
	if(!tspi[id_in]){
		tspi[id_in] = new YAHOO.widget.Panel(id_in, { width:iwidth, height:(iheight+23), visible:true, draggable:true, close:((closeOnMouseOut)?false:true),
											constraintoviewport:true, context:[context_in, 'tl', 'bl'], underlay:'matte',
											effect:{effect:eval(YAHOO.widget.ContainerEffect.FADE),duration:0.5}} );   
		tspi[id_in].setHeader(title_in); 
		tspi[id_in].setBody("<img src='"+thumb_url+"' width='"+iwidth+"' height='"+iheight+"'>");   
		tspi[id_in].render(document.body);
	}else{
		tspi[id_in].show();
	}
	for (key in tspi){if(key != id_in){tspi[key].hide();}}
	if(closeOnMouseOut){
		YAHOO.util.Event.addListener(document, 'mousemove', closePreviewImage, id_in);
	}	
}


function closePreviewImage(evt, key){
	var $E   = YAHOO.util.Event,
		$D	 = YAHOO.util.Dom,
		mX, mY, regImgTh,
		tspi = YAHOO.TSPreviewImage.panel.panels;
	
	function getThumb(node) {
        if(node.nodeType == 1 && node.tagName == 'IMG'){return node;}; 
        node = node.firstChild; 
        while (node) { 
          result = getThumb(node); 
          if(result){	return result;}
          node = node.nextSibling; 
        } 
        return;
  	} 
    
	try{
		if(!tspi[key]){return;}
		thumb = getThumb(tspi[key].cfg.getProperty('context')[0]);
		if(thumb){
			regImgTh = $D.getRegion(thumb);
			if (evt) {
			  mX = $E.getPageX(evt); mY = $E.getPageY(evt);
			  if((mX < regImgTh['left']) || (mX > regImgTh['right']) || (mY < regImgTh['top']) || (mY > regImgTh['bottom'])){
				if(tspi[key]){tspi[key].hide(); $E.removeListener(document, 'mousemove', closePreviewImage);}
			  }	
			}
		}
				
	}catch(e){} 
}

