// Class
function ProductPictureViewer()
{
}

ProductPictureViewer.openImageViewer = function (vsIdPictureFrame, vsWindowName)
{
	var oPictureFrame = document.getElementById(vsIdPictureFrame);
	var iWidth;
	var iHeight;
	var sUrl;
	var oWindow;

	if (oPictureFrame)
	{
		sUrl = oPictureFrame.getAttribute("imgLargeUrl");
		
		if (sUrl && sUrl != "")
		{
			iWidth = parseInt(oPictureFrame.getAttribute("imgLargeWidth"));
			iHeight = parseInt(oPictureFrame.getAttribute("imgLargeHeight"));
			
			iWidth += 30;
			iHeight += 60;
				
			oWindow = window.open(sUrl, vsWindowName, "height=" + iHeight + ",width=" + iWidth);
			oWindow.focus();
		}
	}
}

ProductPictureViewer.changeImageFrame = function(vsIdPictureFrame, vsFrameImageUrl, vsLargeImageUrl, viLargeImageWidth, viLargeImageHeight, vsIdImageLoading, vsIdLargerViewLink, vsIdLargerViewImageLink)
{
	var oPictureFrame = document.getElementById(vsIdPictureFrame);
	var oImageLoading;
	var oImage;
	var oLargerViewLink = document.getElementById(vsIdLargerViewLink);
	var oLargerViewImageLink = document.getElementById(vsIdLargerViewImageLink);
	
	if (oPictureFrame)
	{
		oImageLoading = document.getElementById(vsIdImageLoading);
		if (oImageLoading)
		{	
			oPictureFrame.src = oImageLoading.src;
		}
		
		oPictureFrame.setAttribute("imgLargeUrl", vsLargeImageUrl);
		oPictureFrame.setAttribute("imgLargeWidth", viLargeImageWidth);
		oPictureFrame.setAttribute("imgLargeHeight", viLargeImageHeight);
		
		if (vsLargeImageUrl == "")
		{
			oPictureFrame.style.cursor = "default";
			oLargerViewImageLink.style.cursor = "default";
			if (oLargerViewLink)
			{
				oLargerViewLink.style.display = "none";
			}
		}
		else
		{
			oPictureFrame.style.cursor = "pointer";
			oLargerViewImageLink.style.cursor = "pointer";
			if (oLargerViewLink)
			{
				oLargerViewLink.style.display = "inline";
			}
		}
		
		// Load the image
		oImage = new Image();
		oImage.onLoad = ProductPictureViewer.onImageLoaded(vsIdPictureFrame, vsFrameImageUrl);
		oImage.src = vsFrameImageUrl;
		
		//oPictureFrame.src = vsFrameImageUrl;
	}
}

ProductPictureViewer.onImageLoaded = function(vsIdImage, vsImageUrl)
{
	var oPicture = document.getElementById(vsIdImage);
	if (oPicture)
	{
		oPicture.src = vsImageUrl;
	}
}

ProductPictureViewer.slideShowNext = function (viStep, vsIdDivProductPictureData, vsIdUlProductPictureThumbnail, vsIdImageNext, vsIdImagePrevious)
{
  var oThumbArray = document.getElementById(vsIdUlProductPictureThumbnail).getElementsByTagName('img');
  var oDataArray = document.getElementById(vsIdDivProductPictureData).getElementsByTagName('img');
  var oImageNext = document.getElementById(vsIdImageNext);
  var oImagePrevious = document.getElementById(vsIdImagePrevious);
  var iCurrentIndex;
  var iFirstItemIndex;
  var iLastItemIndex;
  
  if (oImageNext.getAttribute("clickEnabled") == "true")
  {
    for (var i = 0; i < oThumbArray.length; i++)
    {
      iCurrentIndex = parseInt(oThumbArray[i].getAttribute("currentIndex"));
      iCurrentIndex += parseInt(viStep);
      
      if (iCurrentIndex >= 0 && iCurrentIndex < oDataArray.length)
      {
        oThumbArray[i].src = oDataArray[iCurrentIndex].src;
        oThumbArray[i].onmouseover = oDataArray[iCurrentIndex].onmouseover;
        oThumbArray[i].alt = oDataArray[iCurrentIndex].alt;
        oThumbArray[i].setAttribute("currentIndex", iCurrentIndex);
        oThumbArray[i].style.display = "inline";
      }
      else
      {
        oThumbArray[i].style.display = "none";
        oThumbArray[i].setAttribute("currentIndex", iCurrentIndex);
      }
    }
    
    iFirstItemIndex = parseInt(oThumbArray[0].getAttribute("currentIndex"));
    iLastItemIndex = parseInt(oThumbArray[oThumbArray.length -1].getAttribute("currentIndex"));
    if (iLastItemIndex < iFirstItemIndex)
    {
      iLastItemIndex = iFirstItemIndex;
    }
    
    if (iFirstItemIndex > 0)
    {
      oImagePrevious.setAttribute("clickEnabled", "true");
      oImagePrevious.src = oImagePrevious.getAttribute("ImageEnabled");
      oImagePrevious.style.cursor = "pointer";
    }
    else
    {
      oImagePrevious.setAttribute("clickEnabled", "false");
      oImagePrevious.src = oImagePrevious.getAttribute("ImageDisabled");
      oImagePrevious.style.cursor = "";
    }
    
    if (iLastItemIndex < oDataArray.length -1)
    {
      oImageNext.setAttribute("clickEnabled", "true");
      oImageNext.src = oImageNext.getAttribute("ImageEnabled");
      oImageNext.style.cursor = "pointer";
    }
    else
    {
      oImageNext.setAttribute("clickEnabled", "false");
      oImageNext.src = oImageNext.getAttribute("ImageDisabled");
      oImageNext.style.cursor = "";
    }
  }
}

ProductPictureViewer.slideShowPrevious = function (viStep, vsIdDivProductPictureData, vsIdUlProductPictureThumbnail, vsIdImageNext, vsIdImagePrevious)
{
  var oThumbArray = document.getElementById(vsIdUlProductPictureThumbnail).getElementsByTagName('img');
  var oDataArray = document.getElementById(vsIdDivProductPictureData).getElementsByTagName('img');
  var oImageNext = document.getElementById(vsIdImageNext);
  var oImagePrevious = document.getElementById(vsIdImagePrevious);
  var iCurrentIndex;
  var iFirstItemIndex;
  var iLastItemIndex;
  
  if (oImagePrevious.getAttribute("clickEnabled") == "true")
  {
    for (var i = 0; i < oThumbArray.length; i++)
    {
      iCurrentIndex = parseInt(oThumbArray[i].getAttribute("currentIndex"));
      iCurrentIndex -= parseInt(viStep);
      
      if (iCurrentIndex >= 0 && iCurrentIndex < oDataArray.length)
      {
        oThumbArray[i].src = oDataArray[iCurrentIndex].src;
        oThumbArray[i].onmouseover = oDataArray[iCurrentIndex].onmouseover;
        oThumbArray[i].alt = oDataArray[iCurrentIndex].alt;
        oThumbArray[i].setAttribute("currentIndex", iCurrentIndex);
        oThumbArray[i].style.display = "inline";
      }
      else
      {
        oThumbArray[i].style.display = "none";
        oThumbArray[i].setAttribute("currentIndex", iCurrentIndex);
      }
    }
    
    iFirstItemIndex = parseInt(oThumbArray[0].getAttribute("currentIndex"));
    iLastItemIndex = parseInt(oThumbArray[oThumbArray.length -1].getAttribute("currentIndex"));
    if (iLastItemIndex < iFirstItemIndex)
    {
      iLastItemIndex = iFirstItemIndex;
    }
    
    if (iFirstItemIndex > 0)
    {
      oImagePrevious.setAttribute("clickEnabled", "true");
      oImagePrevious.src = oImagePrevious.getAttribute("ImageEnabled");
      oImagePrevious.style.cursor = "pointer";
    }
    else
    {
      oImagePrevious.setAttribute("clickEnabled", "false");
      oImagePrevious.src = oImagePrevious.getAttribute("ImageDisabled");
      oImagePrevious.style.cursor = "";
    }
    
    if (iLastItemIndex < oDataArray.length -1)
    {
      oImageNext.setAttribute("clickEnabled", "true");
      oImageNext.src = oImageNext.getAttribute("ImageEnabled");
      oImageNext.style.cursor = "pointer";
    }
    else
    {
      oImageNext.setAttribute("clickEnabled", "false");
      oImageNext.src = oImageNext.getAttribute("ImageDisabled");
      oImageNext.style.cursor = "";
    }
  }
}