/* AUTEUR: HMR inc. */
/* DATE DE CREATION: 6/12/2000 */

// Current position information
var m_OriginX = 0.0;
var m_SizeX   = 0.0;
var m_OriginY = 0.0;
var m_SizeY   = 0.0;

var CoordXorigine = 0;
var CoordXend     = 0;
var CoordYorigine = 0;
var CoordYend     = 0;

InitValue();

// Will be computed 
if(m_Port!="")
{
	var m_BaseURL = "http://" + m_Host + ":" + m_Port + m_Extension + "?FIF=" + m_ImageName + 
					"&obj=hip,1.2&QLT=" + m_Quality + "&WID=" + m_ViewScreenWidth + 
					"&HEI=" + m_ViewScreenHeight;
}
else
{
	var m_BaseURL = "http://" + m_Host + m_Port + m_Extension + "?FIF=" + m_ImageName + 
					"&obj=hip,1.2&QLT=" + m_Quality + "&WID=" + m_ViewScreenWidth + 
					"&HEI=" + m_ViewScreenHeight;
}

//------------------------------------------------------------------------------
// function InitValue() - Set the values
//------------------------------------------------------------------------------
function InitValue()
{
	// Compute the size
	var ImageRatio  = m_ImageWidth / m_ImageHeight;
	var ScreenRatio = m_ViewScreenWidth / m_ViewScreenHeight;

	if (ImageRatio > ScreenRatio)
	{
		m_SizeX = ImageRatio;
		m_SizeY = ImageRatio/ScreenRatio;
	}
	else
	{
		m_SizeX = ScreenRatio;
		m_SizeY = 1.0;
	}

	// Compute the origins.
	m_OriginX = (ImageRatio - m_SizeX) / 2.0;
	m_OriginY = (1.0 - m_SizeY) / 2.0;
}

//------------------------------------------------------------------------------
// function ChangeView() - Changes the view according to new params
//------------------------------------------------------------------------------
function ChangeView(pi_OriginX, pi_SizeX, pi_OriginY, pi_SizeY)
{
   // Update the current params
	m_OriginX = pi_OriginX;
	m_SizeX = pi_SizeX;
	m_OriginY = pi_OriginY;
	m_SizeY = pi_SizeY;

	// Build the new request
	var Request = m_BaseURL + "&RGN=" + m_OriginX + "," + m_OriginY + "," + m_SizeX + "," + m_SizeY + "&CVT=jpeg"
	// Update the image
	document.imgcvt.src = Request;
}

//------------------------------------------------------------------------------
// function ClickFit() - Fit the view to the screen
//------------------------------------------------------------------------------
function ClickFit()
{
	// Compute the size for the fit
	var SizeX;
	var SizeY;
	var ImageRatio  = m_ImageWidth / m_ImageHeight;
	var ScreenRatio = m_ViewScreenWidth / m_ViewScreenHeight;

	if (ImageRatio > ScreenRatio)
	{
		SizeX = ImageRatio;
		SizeY = ImageRatio/ScreenRatio;
	}
	else
	{
		SizeX = ScreenRatio;
		SizeY = 1.0;
	}

	// to fit, compute the origins.
	OriginX = (ImageRatio - SizeX) / 2.0;
	OriginY = (1.0 - SizeY) / 2.0;
	
	ChangeView(OriginX, SizeX, OriginY, SizeY);
}


//------------------------------------------------------------------------------
// function ClickZoomIn() - Zoom in
//------------------------------------------------------------------------------
function ClickZoomIn()
{
	// compute the zoom size
	var ZoomSizeX = m_SizeX * 0.25;
	var ZoomSizeY = m_SizeY * 0.25;

	// Compute the new info
	var OriginX = m_OriginX + ZoomSizeX;
	var SizeX   = m_SizeX / 2.0;
	var OriginY = m_OriginY + ZoomSizeY;
	var SizeY   = m_SizeY / 2.0;

	// Change the view
	ChangeView(OriginX, SizeX, OriginY, SizeY);
}


//------------------------------------------------------------------------------
// function ClickZoomOut() - Zoom Out
//------------------------------------------------------------------------------
function ClickZoomOut()
{
	// compute the zoom size
	var ZoomSizeX = m_SizeX * 0.5;
	var ZoomSizeY = m_SizeY * 0.5;

	// Compute the new info
	var OriginX = m_OriginX - ZoomSizeX;
	var SizeX   = m_SizeX * 2.0;
	var OriginY = m_OriginY - ZoomSizeY;
	var SizeY   = m_SizeY * 2.0;

	// Change the view
	ChangeView(OriginX, SizeX, OriginY, SizeY);
}


//------------------------------------------------------------------------------
// function ClickPanUp() - Pan Up
//------------------------------------------------------------------------------
function ClickPanUp()
{
	// compute the pan value
	var PanValue = m_SizeY * m_PanValue;

	// Compute the new origin
	var OriginY = m_OriginY - PanValue;

	ChangeView(m_OriginX, m_SizeX, OriginY, m_SizeY);
}


//------------------------------------------------------------------------------
// function ClickPanDown() - Pan Down
//------------------------------------------------------------------------------
function ClickPanDown()
{
	// compute the pan value
	var PanValue = m_SizeY * m_PanValue;

	// Compute the new origin
	var OriginY = m_OriginY + PanValue;

	ChangeView(m_OriginX, m_SizeX, OriginY, m_SizeY);
}


//------------------------------------------------------------------------------
// function ClickPanLeft() - Pan Left
//------------------------------------------------------------------------------
function ClickPanLeft()
{
	// compute the pan value
	var PanValue = m_SizeX * m_PanValue;

	// Compute the new origin
	var OriginX = m_OriginX - PanValue;
	ChangeView(OriginX, m_SizeX, m_OriginY, m_SizeY);
}


//------------------------------------------------------------------------------
// function ClickPanRight() - Pan Right
//------------------------------------------------------------------------------
function ClickPanRight()
{
	// compute the pan value
	var PanValue = m_SizeX * m_PanValue;

	// Compute the new origin
	var OriginX = m_OriginX + PanValue;

	ChangeView(OriginX, m_SizeX, m_OriginY, m_SizeY);
}