/// 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 + ') ' + this.prevText + '<\/a> ' + this.enlargeText + '<\/a> ' + this.nextText + '<\/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]); } };