NcodeImageResizer.IMAGE_ID_BASE = 'ncode_imageresizer_container_'; NcodeImageResizer.WARNING_ID_BASE = 'ncode_imageresizer_warning_'; NcodeImageResizer.scheduledResizes = [];function NcodeImageResizer(id, img) {this.id = id;this.img = img;this.originalWidth = 0;this.originalHeight = 0;this.warning = null;this.warningTextNode = null;this.originalWidth = img.originalWidth;this.originalHeight = img.originalHeight;img.id = NcodeImageResizer.IMAGE_ID_BASE+id;} NcodeImageResizer.executeOnload = function() {var rss = NcodeImageResizer.scheduledResizes;for(var i = 0; i < rss.length; i++) {NcodeImageResizer.createOn(rss[i], true);}} NcodeImageResizer.schedule = function(img) {if(NcodeImageResizer.scheduledResizes.length == 0) {if(window.addEventListener) {window.addEventListener('load', NcodeImageResizer.executeOnload, false);} else if(window.attachEvent) {window.attachEvent('onload', NcodeImageResizer.executeOnload);}}NcodeImageResizer.scheduledResizes.push(img);} NcodeImageResizer.getNextId = function() {var id = 1;while(document.getElementById(NcodeImageResizer.IMAGE_ID_BASE+id) != null) {id++;}return id;} NcodeImageResizer.createOnId = function(id) {return NcodeImageResizer.createOn(document.getElementById(id));} NcodeImageResizer.createOn = function(img, isSchedule) {if(typeof isSchedule == 'undefined') isSchedule = false;if(!img || !img.tagName || img.tagName.toLowerCase() != 'img') {alert(img+' is not an image ('+img.tagName.toLowerCase()+')'); }if(img.width == 0 || img.height == 0) {if(!isSchedule)NcodeImageResizer.schedule(img);return;}if(!img.originalWidth) img.originalWidth = img.width;if(!img.originalHeight) img.originalHeight = img.height;if((NcodeImageResizer.MAXWIDTH > 0 && img.originalWidth > NcodeImageResizer.MAXWIDTH) || (NcodeImageResizer.MAXHEIGHT > 0 && img.originalHeight > NcodeImageResizer.MAXHEIGHT)) {var isRecovery = false; // if this is a recovery from QuickEdit, which only restores the HTML, not the OO structure var newid, resizer;if(img.id && img.id.indexOf(NcodeImageResizer.IMAGE_ID_BASE) == 0) {newid = img.id.substr(NcodeImageResizer.IMAGE_ID_BASE.length);if(document.getElementById(NcodeImageResizer.WARNING_ID_BASE+newid) != null) {resizer = new NcodeImageResizer(newid, img);isRecovery = true;resizer.restoreImage();}} else {newid = NcodeImageResizer.getNextId();resizer = new NcodeImageResizer(newid, img);}if(isRecovery) {resizer.reclaimWarning(newid);} else {resizer.createWarning();}resizer.scale();}} NcodeImageResizer.prototype.restoreImage = function() {newimg = document.createElement('IMG');newimg.src = this.img.src;this.img.width = newimg.width;this.img.height = newimg.height;} NcodeImageResizer.prototype.reclaimWarning = function(id) {this.warning = document.getElementById(NcodeImageResizer.WARNING_ID_BASE+id);this.warningTextNode = this.warning.firstChild.firstChild.childNodes[1].firstChild;this.warning.resize = this; this.scale();} NcodeImageResizer.prototype.createWarning = function() {var mtable = document.createElement('TABLE');var mtbody = document.createElement('TBODY');var mtr = document.createElement('TR');var mtd1 = document.createElement('TD');var mtd2 = document.createElement('TD');var mimg = document.createElement('IMG');var mtext = document.createTextNode('');//mimg.src = NcodeImageResizer.BBURL+'/images/statusicon/wol_error.gif'; mimg.src = NcodeImageResizer.BBURL;mimg.width = 16;mimg.height = 16;mimg.alt = '';mimg.border = 0;mtd1.width = 20;mtd1.className = 'td1';mtd2.unselectable = 'on';mtd2.className = 'td2';mtable.className = 'ncode_imageresizer_warning';mtable.textNode = mtext;mtable.resize = this;mtable.id = NcodeImageResizer.WARNING_ID_BASE+this.id;mtd1.appendChild(mimg);mtd2.appendChild(mtext);mtr.appendChild(mtd1);mtr.appendChild(mtd2);mtbody.appendChild(mtr);mtable.appendChild(mtbody); this.img.parentNode.insertBefore(mtable, this.img);this.warning = mtable;this.warningTextNode = mtext;} NcodeImageResizer.prototype.setText = function(text) {var newnode = document.createTextNode(text);this.warningTextNode.parentNode.replaceChild(newnode, this.warningTextNode);this.warningTextNode = newnode;} NcodeImageResizer.prototype.scale = function() {this.img.height = this.originalHeight;this.img.width = this.originalWidth;if(NcodeImageResizer.MAXWIDTH > 0 && this.img.width > NcodeImageResizer.MAXWIDTH) {this.img.height = (NcodeImageResizer.MAXWIDTH / this.img.width) * this.img.height;this.img.width = NcodeImageResizer.MAXWIDTH;}if(NcodeImageResizer.MAXHEIGHT > 0 && this.img.height > NcodeImageResizer.MAXHEIGHT) {this.img.width = (NcodeImageResizer.MAXHEIGHT / this.img.height) * this.img.width;this.img.height = NcodeImageResizer.MAXHEIGHT;}this.warning.width = this.img.width;this.warning.onclick = function() { return this.resize.unScale(); } if(this.img.width < 450) {this.setText(vbphrase['ncode_imageresizer_warning_small']);} else if(this.img.fileSize && this.img.fileSize > 0) {this.setText(vbphrase['ncode_imageresizer_warning_filesize'].replace('%1$s', this.originalWidth).replace('%2$s', this.originalHeight).replace('%3$s', Math.round(this.img.fileSize/1024)));} else {this.setText(vbphrase['ncode_imageresizer_warning_no_filesize'].replace('%1$s', this.originalWidth).replace('%2$s', this.originalHeight));}return false;} NcodeImageResizer.prototype.unScale = function() {switch(NcodeImageResizer.MODE) {case 'samewindow':window.open(this.img.src, '_self');break;case 'newwindow':window.open(this.img.src, '_blank');break;case 'tinybox': TINY.box.show('',0,0,0,1);break;case 'enlarge':default:this.img.width = this.originalWidth;this.img.height = this.originalHeight;this.img.className = 'ncode_imageresizer_original';if(this.warning != null) {this.setText(vbphrase['ncode_imageresizer_warning_fullsize']);this.warning.width = this.img.width;this.warning.onclick = function() { return this.resize.scale() };}break;}return false;}