daveoffy Posted May 19, 2009 Share Posted May 19, 2009 I have the following code. I ran javascript debugger and found out the error but don't know how to fix it. code: var TINY={}; function $(i){return document.getElementById(i)} function $$(e,p){p=p||document; return p.getElementsByTagName(e)} TINY.slideshow=function(n){ this.infoSpeed=this.imgSpeed=this.speed=10; this.thumbOpacity=this.navHover=70; this.navOpacity=25; this.scrollSpeed=5; this.letterbox='#000'; this.n=n; this.c=0; this.a=[] }; TINY.slideshow.prototype={ init:function(s,z,b,f,q){ s=$(s); var m=$$('li',s), i=0, w=0; this.l=m.length; this.q=$(q); this.f=$(z); this.r=$(this.info); this.o=parseInt(TINY.style.val(z,'width')); if(this.thumbs){ var u=$(this.left), r=$(this.right); u.onmouseover=new Function('TINY.scroll.init("'+this.thumbs+'",-1,'+this.scrollSpeed+')'); u.onmouseout=r.onmouseout=new Function('TINY.scroll.cl("'+this.thumbs+'")'); r.onmouseover=new Function('TINY.scroll.init("'+this.thumbs+'",1,'+this.scrollSpeed+')'); this.p=$(this.thumbs) } for(i;i<this.l;i++){ this.a[i]={}; var h=m[i], a=this.a[i]; a.t=$$('h3',h)[0].innerHTML; a.d=$$('p',h)[0].innerHTML; a.l=$$('a',h)[0]?$$('a',h)[0].href:''; a.p=$$('span',h)[0].innerHTML; if(this.thumbs){ var g=$$('img',h)[0]; this.p.appendChild(g); w+=parseInt(g.offsetWidth); if(i!=this.l-1){ g.style.marginRight=this.spacing+'px'; w+=this.spacing } this.p.style.width=w+'px'; g.style.opacity=this.thumbOpacity/100; g.style.filter='alpha(opacity='+this.thumbOpacity+')'; g.onmouseover=new Function('TINY.alpha.set(this,100,5)'); g.onmouseout=new Function('TINY.alpha.set(this,'+this.thumbOpacity+',5)'); g.onclick=new Function(this.n+'.pr('+i+',1)') } } if(b&&f){ b=$(b); f=$(f); b.style.opacity=f.style.opacity=this.navOpacity/100; b.style.filter=f.style.filter='alpha(opacity='+this.navOpacity+')'; b.onmouseover=f.onmouseover=new Function('TINY.alpha.set(this,'+this.navHover+',5)'); b.onmouseout=f.onmouseout=new Function('TINY.alpha.set(this,'+this.navOpacity+',5)'); b.onclick=new Function(this.n+'.mv(-1,1)'); f.onclick=new Function(this.n+'.mv(1,1)') } this.auto?this.is(0,0):this.is(0,1) }, mv:function(d,c){ var t=this.c+d; this.c=t=t<0?this.l-1:t>this.l-1?0:t; this.pr(t,c) }, pr:function(t,c){ clearTimeout(this.lt); if(c){ clearTimeout(this.at) } this.c=t; this.is(t,c) }, is:function(s,c){ if(this.info){ TINY.height.set(this.r,1,this.infoSpeed/2,-1) } var i=new Image(); i.style.opacity=0; i.style.filter='alpha(opacity=0)'; this.i=i; i.onload=new Function(this.n+'.le('+s+','+c+')'); i.src=this.a[s].p; if(this.thumbs){ var a=$$('img',this.p), l=a.length, x=0; for(x;x<l;x++){ a[x].style.borderColor=x!=s?'':this.active } } }, le:function(s,c){ this.f.appendChild(this.i); var w=this.o-parseInt(this.i.offsetWidth); if(w>0){ var l=Math.floor(w/2); this.i.style.borderLeft=l+'px solid '+this.letterbox; this.i.style.borderRight=(w-l)+'px solid '+this.letterbox } TINY.alpha.set(this.i,100,this.imgSpeed); var n=new Function(this.n+'.nf('+s+')'); this.lt=setTimeout(n,this.imgSpeed*100); if(!c){ this.at=setTimeout(new Function(this.n+'.mv(1,0)'),this.speed*1000) } if(this.a[s].l!=''){ this.q.onclick=new Function('window.location="'+this.a[s].l+'"'); this.q.onmouseover=new Function('this.className="'+this.link+'"'); this.q.onmouseout=new Function('this.className=""'); this.q.style.cursor='pointer' }else{ this.q.onclick=this.q.onmouseover=null; this.q.style.cursor='default' } var m=$$('img',this.f); if(m.length>2){ this.f.removeChild(m[0]) } }, nf:function(s){ if(this.info){ s=this.a[s]; $$('h3',this.r)[0].innerHTML=s.t; $$('p',this.r)[0].innerHTML=s.d; this.r.style.height='auto'; var h=parseInt(this.r.offsetHeight); this.r.style.height=0; TINY.height.set(this.r,h,this.infoSpeed,0) } } }; TINY.scroll=function(){ return{ init:function(e,d,s){ e=typeof e=='object'?e:$(e); var p=e.style.left||TINY.style.val(e,'left'); e.style.left=p; var l=d==1?parseInt(e.offsetWidth)-parseInt(e.parentNode.offsetWidth):0; e.si=setInterval(function(){TINY.scroll.mv(e,l,d,s)},20) }, mv:function(e,l,d,s){ var c=parseInt(e.style.left); if(c==l){TINY.scroll.cl(e)}else{var i=Math.abs(l+c); i=i<s?i:s; var n=c-i*d; e.style.left=n+'px'} }, cl:function(e){e=typeof e=='object'?e:$(e); clearInterval(e.si)} } }(); TINY.height=function(){ return{ set:function(e,h,s,d){ e=typeof e=='object'?e:$(e); var oh=e.offsetHeight, ho=e.style.height||TINY.style.val(e,'height'); ho=oh-parseInt(ho); var hd=oh-ho>h?-1:1; clearInterval(e.si); e.si=setInterval(function(){TINY.height.tw(e,h,ho,hd,s)},20) }, tw:function(e,h,ho,hd,s){ var oh=e.offsetHeight-ho; if(oh==h){clearInterval(e.si)}else{if(oh!=h){e.style.height=oh+(Math.ceil(Math.abs(h-oh)/s)*hd)+'px'}} } } }(); TINY.alpha=function(){ return{ set:function(e,a,s){ e=typeof e=='object'?e:$(e); var o=e.style.opacity||TINY.style.val(e,'opacity'), d=a>o*100?1:-1; e.style.opacity=o; clearInterval(e.ai); e.ai=setInterval(function(){TINY.alpha.tw(e,a,d,s)},20) }, tw:function(e,a,d,s){ var o=Math.round(e.style.opacity*100); if(o==a){clearInterval(e.ai)}else{var n=o+Math.ceil(Math.abs(a-o)/s)*d; e.style.opacity=n/100; e.style.filter='alpha(opacity='+n+')'} } } }(); TINY.style=function(){return{val:function(e,p){e=typeof e=='object'?e:$(e); return e.currentStyle?e.currentStyle[p]:document.defaultView.getComputedStyle(e,null).getPropertyValue(p)}}}(); error: this.at=setTimeout(new Function(this.n+'.mv(1,0)'),this.speed*1000) around code: TINY.alpha.set(this.i,100,this.imgSpeed); var n=new Function(this.n+'.nf('+s+')'); this.lt=setTimeout(n,this.imgSpeed*100); if(!c){ this.at=setTimeout(new Function(this.n+'.mv(1,0)'),this.speed*1000) } Quote Link to comment Share on other sites More sharing options...
RichardRotterdam Posted May 19, 2009 Share Posted May 19, 2009 I gave that tiny slideshow a go to see what it was about. I don't receive any errors in firebug(haven't tried ie). When do you receive this error which browser and what does the error say? Quote Link to comment Share on other sites More sharing options...
daveoffy Posted May 19, 2009 Author Share Posted May 19, 2009 it happens in all broswers. I have been using Javscript debugger for firefox and it just showed yellow on that line i posted and said error. Quote Link to comment Share on other sites More sharing options...
daveoffy Posted May 19, 2009 Author Share Posted May 19, 2009 Ok, i found that that is not the error. It is coming from prototype.js. http://ajax.googleapis.com/ajax/libs/prototype/1/prototype.js error on line 4071 Quote Link to comment Share on other sites More sharing options...
RichardRotterdam Posted May 20, 2009 Share Posted May 20, 2009 I doubt that prototype as an error inside these two scripts just conflict with one another. Why not use a prototype based gallery or remove prototype.js? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.