﻿/***************************************************************************************
$Workfile: ItemPreview.js $
$Author: Syed Ghulam Akbar $
$Revision: 1 $
$Created Date: 09/19/08 12:55 AM $
$Description: Utility function to show the item preview box on roll-over
***************************************************************************************/

// Get Position of the given object
function getPos(srcObject) {
    var x=0, y=0;
	while (srcObject) 
	{
	    if (srcObject && (srcObject.offsetLeft || srcObject.offsetTop))
	    {		
	        x += srcObject.offsetLeft;		
	        y += srcObject.offsetTop;			
	    }
	    srcObject= srcObject.offsetParent;
	}    
    return (new Array(x, y));
}

// Set the position of the given object
function setPos(TargetObject, x, y)
{
    // Move the item depending on the parent offset (as the X, and Y are assumed to be absolute)
    trgPosition = getPos(panItemPreview.offsetParent);
        
    TargetObject.style.left = x - trgPosition[0] + "px"; 
    TargetObject.style.top = y - trgPosition[1] + "px";
}

function ShowItemPreviewWindow(srcControl, itemId)
{
    // If already visible, ignore the refresh
    if (panItemPreview.style.display != "none" && lastItemId == itemId)
        return;
    
    // Get the Offset for display the hover item detail window
    srcPosition = getPos(srcControl)
        
    // Now show the preview pane
    panItemPreview.style.display = "";      
    setPos(panItemPreview, srcPosition[0]-6, srcPosition[1]-160);
    
    // Show loading animation
    lastItemId = itemId
    document.getElementById("ItemPreviewWindow").innerHTML = "";
    document.getElementById("ItemPreviewWindow").style.backgroundImage = "url(/images/LoadingAnimation.gif)";
    var ajaxRequest = new SimpleAjax();
    ajaxRequest.Get("/Items/ItemPreview.aspx?ItemID="+itemId, ItemPreviewLoaded);
}

// Hide Item Preview window
function HideItemPreviewWindow(evt)
{
    // Handle for the nested DIV mouse out i.e. don't hide when mouse is still over the nested DIV
    evt = evt || window.event;    
    var targetElement = evt.relatedTarget || evt.toElement;
    
    while (targetElement && targetElement.nodeName !== 'HTML') 
    {                        
        targetElement = targetElement.parentNode;    
        
        // Hide if it's a child window of our main container window
        if (targetElement.id == panItemPreview.id)
            return;
    }    
    
    panItemPreview.style.display = "none";   
}

// Show the main content window once the iframe is loaded
function ItemPreviewLoaded(responseText)
{
    document.getElementById("ItemPreviewWindow").style.backgroundImage = "none";  // Reset the background
    document.getElementById("ItemPreviewWindow").innerHTML = responseText;
}

