Well, can't reproduce this without a page were the script is included. Alex
On 18 Jul., 16:50, meatball <[email protected]> wrote: > Runs on v1.2 and above but has a memory leak that I can't find. > > var Comments = new Class({ > > id: 0, > page: 0, > object: null, > name: null, > parentid: 0, > folder: './', > > initialize: function(id, object, name, folder){ > // Setup > this.id = id; > this.object = object; > this.name = name; > this.folder = folder; > // Get the comments for this page > this.getComments(this.page); > }, > > flag: function(id) { > var req = new Request({ > method: 'get', > url: this.folder + 'backend.php', > onSuccess: function(text, xml) { > } > }).send('do=flag&id=' + id + this.cacheDefeat()); > }, > > openFlagged: function(obj, id) { > var obj = obj; > var req = new Request({ > method: 'get', > url: this.folder + 'backend.php', > onSuccess: function(text, xml) { > new Element('div', {'html': > text}).inject(obj, 'after'); > obj.destroy(); > } > }).send('do=getcomment&post=' + id + '&id=' + this.id + > this.cacheDefeat()); > }, > > cacheDefeat: function() { > var myDate = new Date(); > return '&r=' + myDate.getTime(); > }, > > checkTitle: function() { > var form = $(this.name + > 'form').getChildren('div')[0].getChildren > ('form')[0].each(function (ele) { > if (ele.name == 'title' && ele.value == 'Title Here') > { > ele.set('value', ''); > } > }); > }, > > clearText: function(object) { > if (object.name == 'title' || object.name == 'message') { > if (object.value == 'Title Here' || object.value == > 'Message Here') > { > object.value = ''; > } > } > }, > > setReply: function(id) { > this.parentid = id; > }, > > thumbsUp: function(id) { > var a = this; > var req = new Request({ > method: 'get', > url: this.folder + 'backend.php', > onSuccess: function(text, xml) { > a.updateThumbs(id); > } > }).send('do=thumbs&id=' + id + '&up=true' + > this.cacheDefeat()); > }, > > thumbsDown: function(id) { > var a = this; > var req = new Request({ > method: 'get', > url: this.folder + 'backend.php', > onSuccess: function(text, xml) { > if (text == "done") > a.updateThumbs(id); > } > }).send('do=thumbs&id=' + id + '&up=false' + > this.cacheDefeat()); > }, > > updateThumbs: function(messageid) { > var up = $(this.name + 'up' + messageid); > var down = $(this.name + 'down' + messageid); > var upndown = $(this.name + 'updown' + messageid); > var req = new Request({ > method: 'get', > url: this.folder + 'backend.php', > onSuccess: function(text, xml) { > var updown = text.split(";"); > if (up != null) > up.set('html', updown[0]); > if (down != null) > down.set('html', updown[1]); > if (updown != null) > upndown.set('html', updown[2]); > } > }).send('do=getthumbs&id=' + messageid + this.cacheDefeat()); > }, > > respond: function() { > var a = this; > var toReplace = $$("div." + this.name + "forms")[0]; > var req = new Request({ > method: 'post', > url: this.folder + 'backend.php', > onSuccess: function(text, xml) { > if (text == "") { > a.getComments(a.page); > } else { > > form.getChildren('div')[0].setStyle('display', 'block'); > > form.getChildren('div')[0].set('html', text); > } > a.insertReply(); > } > }).send('do=write&id=' + this.id + '&parentid=' + > this.parentid + > '&message=' + $(this.name + "formsmessage").value.replace(/&/g,"%26")+ > '&title=' + $(this.name + "formstitle").value.replace(/&/g,"%26") + > this.cacheDefeat()); > }, > > insertReply: function(mid) { > var name = this.name; > var mid = mid; > this.parentid = mid; > var req = new Request({ > method: 'get', > url: this.folder + 'backend.php', > onSuccess: function(text, xml) { > $$("div." + name + "forms").each(function > (ele) { > ele.set('html', ''); > }); > $(name + 'form').set('html', ''); > if (mid == null) > $(name + 'form').set('html', text); > else > $(name + 'form' + mid).set('html', > text); > } > }).send('objid=' + name + '&do=getform&id=' + this.id + > this.cacheDefeat()); > }, > > getComments: function(page) { > this.page = page; > var object = this.object; > var req = new Request({ > method: 'get', > url: this.folder + 'backend.php', > onSuccess: function(text, xml) { > object.set('html', text); > } > }).send('objid=' + this.name + '&do=read&thumbs=' + > $(this.name + > "sel").value + '&id=' + this.id + '&page=' + this.page + > this.cacheDefeat()); > }, > > showComments: function(id, object) { > var req = new Request({ > method: 'get', > url: this.folder + 'backend.php', > onSuccess: function(text, xml) { > new Element('div', { > 'html': text > }).inject($(object), 'after'); > $(object).destroy(); > } > }).send('objid=' + this.name + '&do=comments&id=' + this.id + > '&pid=' + id + this.cacheDefeat()); > } > > });
