SiteShell.Components.ImageViewer = new ImageViewer();

function ImageViewer()
{
    this.CurrentMosaic = null;
    this.ViewerCurrentImageID = null;
    this.ViewerImagesCount = null;
    this.ErrorMessage = new Object();
    this.ErrorMessage.Visible = false;
    this.ErrorMessage.Show = function()
	{
      document.getElementById("ErrorMessage").style.display = "block";
      this.Visible = true;
	}
	
	this.ErrorMessage.Hide = function()
	{
      document.getElementById("ErrorMessage").style.display = "none";
      this.Visible = false;
	}
}

ImageViewer.prototype.ShowThumbnails = function(MosaicID)
{

    document.getElementById("viewer").style.display = "none";
    if (this.CurrentMosaic != null && this.CurrentMosaic.id == MosaicID) 
      return;

    if (this.CurrentMosaic != null)
      this.CurrentMosaic.style.display = "none";
		
    this.CurrentMosaic = document.getElementById(MosaicID);
    this.CurrentMosaic.style.display = "block";

    var thumbnailList = this.CurrentMosaic.getElementsByTagName("img");

    if (thumbnailList.length > 0)
      this.ErrorMessage.Hide();
    else
      this.ErrorMessage.Show();
}


ImageViewer.prototype.ShowViewer = function(ImagePath, ImagesCount, CurrentImageID)
{
    document.getElementById("mosaic").style.display = "none";
    this.ViewerCurrentImageID = parseInt(CurrentImageID.replace("_"+this.CurrentMosaic.id+"_",""));
    this.ViewerImagesCount = ImagesCount;

    if (this.ViewerCurrentImageID == 1) {
      document.getElementById("gofirst").className = "inactive";
      document.getElementById("goprevious").className = "inactive";
      document.getElementById("leftcontrols").style.display = "block";
    }
	else {
      document.getElementById("gofirst").className = "active";
      document.getElementById("goprevious").className = "active";
      document.getElementById("leftcontrols").style.display = "none";
	}

    if (this.ViewerCurrentImageID == this.ViewerImagesCount){
      document.getElementById("gonext").className = "inactive";
      document.getElementById("golast").className = "inactive";
      document.getElementById("rightcontrols").style.display = "block";
    }
	else {
      document.getElementById("gonext").className = "active";
      document.getElementById("golast").className = "active";
      document.getElementById("rightcontrols").style.display = "none";
    }

    document.getElementById("CurrentImage").src = ImagePath;
    document.getElementById("viewer").style.display = "block";
    return true;
}

ImageViewer.prototype.SetViewerImage = function(Position)
{
    if(Position == "first") this.ViewerCurrentImageID = 1; 
    else if(Position == "last") this.ViewerCurrentImageID = this.ViewerImagesCount;
    else if(Position == "next") {
      this.ViewerCurrentImageID += 1;
      if (this.ViewerCurrentImageID > this.ViewerImagesCount) this.ViewerCurrentImageID = this.ViewerImagesCount;
    }
	else if(Position == "previous") {
      this.ViewerCurrentImageID -= 1;
      if (this.ViewerCurrentImageID < 1) this.ViewerCurrentImageID = 1;
    }

	if (this.ViewerCurrentImageID == 1) {
      document.getElementById("gofirst").className = "inactive";
      document.getElementById("goprevious").className = "inactive";
      document.getElementById("leftcontrols").style.display = "block";
    }
	else {
      document.getElementById("gofirst").className = "active";
      document.getElementById("goprevious").className = "active";
      document.getElementById("leftcontrols").style.display = "none";
	}

    if (this.ViewerCurrentImageID == this.ViewerImagesCount){
      document.getElementById("gonext").className = "inactive";
      document.getElementById("golast").className = "inactive";
      document.getElementById("rightcontrols").style.display = "block";
    }
	else {
      document.getElementById("gonext").className = "active";
      document.getElementById("golast").className = "active";
      document.getElementById("rightcontrols").style.display = "none";
    }


    var newImage = document.getElementById("_"+this.CurrentMosaic.id+"_"+this.ViewerCurrentImageID);
    document.getElementById("CurrentImage").src = newImage.src.replace("thumbnails","images");

    return true;
}

ImageViewer.prototype.GoBack = function()
{
    document.getElementById("viewer").style.display = "none";
    document.getElementById("mosaic").style.display = "block";

    return true;
}
