/// Copyright (c) 2004-2009, Needlworks / Tatter Network Foundation
/// All rights reserved. Licensed under the GPL.
/// See the GNU General Public License for more details. (/doc/LICENSE, /doc/COPYRIGHT)
function TTGallery(containerId)
{
this.containerId = containerId;
this.container = document.getElementById(this.containerId);
this.container.style.filter = "progid:DXImageTransform.Microsoft.Fade(duration=0.3, overlap=1.0)";
this.container.style.textAlign = "center";
this.container.style.width = "100%";
this.container.instance = this;
this.numImages = 0;
this.imageLoaded = 0;
this.offset = 0;
this.src = new Array();
this.caption = new Array();
this.width = new Array();
this.height = new Array();
this.imageCache = new Array();
this.nextText = "NEXT";
this.prevText = "PREVIOUS";
this.enlargeText = "ZOOM";
this.altText = "gellery image";
this.container = null;
};
TTGallery.prototype.appendImage = function(src, caption, width, height)
{
this.numImages++;
var imageCache = new Image();
imageCache.src = src;
imageCache.onload = function() { var tmp = this.src; };
this.imageCache[this.imageCache.length] = src;
this.src[this.src.length] = src;
this.width[this.width.length] = width;
this.height[this.height.length] = height;
this.caption[this.caption.length] = caption;
};
TTGallery.prototype.getControl = function()
{
var control = document.createElement("div");
control.style.marginBottom = "10px";
control.className = "galleryControl";
control.style.color = "#777";
control.style.font = "bold 0.9em Verdana, Sans-serif";
control.innerHTML = '(' + (this.offset + 1) + '/' + this.numImages + ')
<\/a>
<\/a>
<\/a>';
return control;
};
TTGallery.prototype.getImage = function()
{
var image = document.createElement("img");
image.instance = this;
image.src = this.src[this.offset];
image.width = this.width[this.offset];
image.height = this.height[this.offset];
image.onclick = this.showImagePopup2;
image.alt = this.altText;
image.style.cursor = "pointer";
return image;
};
TTGallery.prototype.getCaption = function()
{
var captionText = this.caption[this.offset];
captionText = captionText.replace(new RegExp("<?", "gi"), "<");
captionText = captionText.replace(new RegExp(">?", "gi"), ">");
captionText = captionText.replace(new RegExp(""?", "gi"), "\"");
captionText = captionText.replace(new RegExp("'?", "gi"), "'");
captionText = captionText.replace(new RegExp("&?", "gi"), "&");
captionText = captionText.replace(new RegExp("<?", "gi"), "<");
captionText = captionText.replace(new RegExp(">?", "gi"), ">");
captionText = captionText.replace(new RegExp(""?", "gi"), "\"");
captionText = captionText.replace(new RegExp("'?", "gi"), "'");
captionText = captionText.replace(new RegExp("&?", "gi"), "&");
var caption = document.createElement("div");
caption.style.textAlign = "center";
caption.style.marginTop = "8px";
caption.className = "galleryCaption";
caption.appendChild(document.createTextNode(captionText));
return caption;
};
TTGallery.prototype.show = function(offset)
{
this.container = document.getElementById(this.containerId);
if(this.numImages == 0) {
var div = document.createElement("div");
div.style.textAlign = "center";
div.style.color = "#888";
div.style.margin = "10px auto";
div.style.font = "bold 2em/1 Verdana, Sans-serif";
div.innerHTML = "NO IMAGES";
this.container.appendChild(div);
this.container = null;
return;
}
if(typeof offset == "undefined")
this.offset = 0;
else
{
if(offset < 0)
this.offset = this.numImages -1;
else if(offset >= this.numImages)
this.offset = 0;
else
this.offset = offset;
}
if(this.container.filters)
this.container.filters[0].Apply();
this.container.innerHTML = "";
this.container.appendChild(this.getControl());
this.container.appendChild(this.getImage());
this.container.appendChild(this.getCaption());
if(this.container.filters)
this.container.filters[0].Play();
this.container = null;
};
TTGallery.prototype.prev = function()
{
this.show(this.offset-1);
};
TTGallery.prototype.next = function()
{
this.show(this.offset+1);
};
TTGallery.prototype.showImagePopup1 = function()
{
this.showImagePopup();
};
TTGallery.prototype.showImagePopup2 = function()
{
this.instance.showImagePopup();
};
TTGallery.prototype.showImagePopup = function(offset)
{
try {
open_img(this.src[this.offset]);
} catch(e) {
window.open(this.src[this.offset]);
}
};