//Coded by Javid Ali for 3rd Time Media ltd 
//Copyright (c) 2010-2015 
//Version 2.5 - last updated 01/02/10 
function Funky(str,ims){this.str=str;this.obj=null;this.ims=ims?ims:'';}Funky.prototype={init:function(){if(!GoodBrowser) return;this.obj=new Array();},moveIt:function(el,v,a,t,d,ip,ind2,cb,ease,easemv,easeae,easefactor,elas,elasof,elasbo){if(!el||!GoodBrowser) return;v=v?v:1;a=a?a:0;t=t>0?t:20;d=d>0?d:20;if(ind2>-1) this.obj[ind2].lock=true;var st=t/(d/Math.abs(v));var fp=ip + (d/(v/Math.abs(v)));var i=this.obj.push({el:el,fp:fp,a:a,st:st,cp:ip,v:v,tim:null,ind2:ind2,cb:cb?cb:null,d:d,ease:ease,easemv:easemv,easeae:easeae,ef:easefactor,elas:elas,elasof:elasof,elasbo:elasbo})-1;this.moveIt_move(i);},moveIt_move:function(ind){var o=this.obj[ind];clearTimeout(o.tim);if(o.ease){var dc=o.d-Math.abs(o.fp-o.cp);if(dc>0)o.v=this.easing(o.v,o.easemv,o.easeae,o.d,dc,o.ef);}var newpos=parseInt(o.cp+o.v);if((o.fp<newpos&&o.v>0)||(o.fp>newpos&&o.v<0)) newpos=o.fp;o.cp=newpos;o.a==0?o.el.style.top=newpos+'px':o.el.style.left=newpos+'px';if(newpos!==o.fp)o.tim=setTimeout(this.str+'.moveIt_move('+ind+')',o.st);else{if(!o.elas||o.ed){if(o.ind2>-1)this.obj[o.ind2].lock=false;if(o.cb!==null)eval(o.cb);this.obj[ind]=0;}else this.moveIt_elastic(ind);}},moveIt_elastic:function(ind){var o=this.obj[ind];if(o.orp==null){o.orp=o.fp;o.bcd=0;}o.bcd++;if(o.bcd>1) o.v*=-1;o.v=Math.ceil(o.v*.8);o.st *=1.1;if(o.bcd==o.elasbo){o.ed=true;o.fp=o.orp;}else   o.fp=o.v>0?o.orp+(o.elasof/(o.bcd%2==1?o.bcd:o.bcd-1)):o.orp-(o.elasof/(o.bcd%2==1?o.bcd:o.bcd-1));this.moveIt_move(ind);},easing:function(cv,mv,ae,d,dc,ef){var fv=0;if((dc/d)>ae){fv=(cv/ef);return Math.abs(fv)>Math.abs(mv)?fv:Math.abs(mv)*(Math.abs(cv)/cv);}else return cv;},getList:function(obj){var its=obj.getElementsByTagName('li');var ob=new Array();for(var i=0;i<its.length;i++){if(its[i].parentNode.parentNode==obj)ob.push({el:its[i]});}return ob;},carousel:function(ob,sd,ax,ga,au,ti,ve,lo,fb,sf,sti,ease,easemv,easeae,easefactor,cbe,bh,cb,srm,elas,elasof,elasbo){if(ob==null) return;sd=sd?sd:100;ax=ax?ax:1;ga=ga?ga:0;au=au?au:false;sti=sti?sti:500;bh=bh?bh:false;ease=ease?ease:false;cbe=cbe==null?'gif':cbe;cb=cb?cb:false;srm=srm?true:false;elastic=elas?true:false;var items=this.getList(ob);if(items.length==0) return;ob=null;var pos=null;var move=ga+sd;for(var i=0;i<items.length;i++){items[i].pos=pos=i*(move);ax==0?items[i].el.style.top=pos+'px':items[i].el.style.left=pos+'px';}if(ax==-1) return;var ind=this.obj.push({ax:ax,au:au,items:items,ti:ti,mo:move,timer:0,v:ve,inview:0,lo:lo,dts:null,ad:null,mtp:0,sf:sf?sf:null,sti:sti,ease:ease,easemv:easemv,easeae:easeae,ef:easefactor,cbe:cbe,bh:bh,cb:cb,srm:srm,cmb:false,elas:elas,elasof:elasof,elasbo:elasbo})-1;if(present("carouseldots")) this.carousel_drawDots(ind);if(au) this.obj[ind].timer=setTimeout(this.str+'.carousel_swingBack('+ind+');',ti*6);this.fb=fb?true:false;if(fb)this.fads=new FadeList();this.carousel_setBtns(ind,false);},carousel_drawDots:function(ind){var obj=this.obj[ind];var dom=new Brick(present("carouseldots"),this.ims);obj.dts=new Array();for(var i=0;i<obj.items.length;i++){obj.dts[i]=dom.newtag('span','','carouseldot','','','',true);if(i==0) obj.dts[i].className='carouseldot_active';obj.dts[i].onclick=new Function(this.str+'.carousel_moveBy(' + ind + ',' + i + ');');}obj.ad=obj.dts[0];},carousel_setBtns:function(ind,first){var bak=present("prevbutton");var nex=present("nextbutton");if(!bak||!nex) return;var obj=this.obj[ind];if(obj.inview>0||this.obj[ind].lo){bak.onclick=new Function(this.str+'.carousel_click(0,'+ind+');');if(this.fb){if(!first)this.fads.addconc(bak,1,500,bak.style.filter==""||bak.style.opacity==''?100:40,100);this.fads.start();}else bak.firstChild.src=this.ims+'carousel_btn_prev.'+obj.cbe;bak.style.cursor='pointer';if(obj.bh){bak.onmouseover=new Function('this.firstChild.src="' + this.ims + 'carousel_btn_prev_hover.' + obj.cbe+'";');bak.onmouseout=new Function('this.firstChild.src="' + this.ims + 'carousel_btn_prev.' + obj.cbe+'";');}}else{bak.onclick='';if(this.fb){if(!first)this.fads.addconc(bak,-1,500,40,100);this.fads.start();}else bak.firstChild.src=this.ims+'carousel_btn_prev_off.'+obj.cbe;bak.style.cursor='default';if(obj.bh){bak.onmouseover=null;bak.onmouseout=null;}}if(this.obj[ind].inview<(this.obj[ind].items.length-1||this.obj[ind].lo)){nex.onclick=new Function(this.str+'.carousel_click(1,'+ind+');');if(this.fb){if(!first)this.fads.addconc(nex,1,500,nex.style.filter==""||nex.style.opacity==''?100:40,100);this.fads.start();}else nex.firstChild.src=this.ims+'carousel_btn_next.'+obj.cbe;nex.style.cursor='pointer';if(obj.bh){nex.onmouseover=new Function('this.firstChild.src="' + this.ims + 'carousel_btn_next_hover.' + obj.cbe+'";');nex.onmouseout=new Function('this.firstChild.src="' + this.ims + 'carousel_btn_next.' + obj.cbe+'";');}}else{nex.onclick='';if(this.fb){if(!first)this.fads.addconc(nex,-1,500,40,100);this.fads.start();}else nex.firstChild.src=this.ims+'carousel_btn_next_off.'+obj.cbe;nex.style.cursor='default';if(obj.bh){nex.onmouseover=null;nex.onmouseout=null;}}},carousel_swingBack:function(ind){var obj=this.obj[ind];if(obj.lock) return;clearTimeout(obj.timer);var items=obj.items;if(obj.inview==items.length-1&&!obj.lo) return;for(var i=0;i<items.length;i++){this.moveIt(items[i].el,-obj.v,obj.ax,obj.sti,obj.mo,obj.ax==0?0:items[i].pos,ind,obj.mtp!=0&&i==0?this.str+'.carousel_executeMoveBy(' + ind + ',-1);':obj.cb&&i==0?obj.cb:null,Math.abs(obj.mtp)>1?false:obj.ease,obj.easemv,obj.easeae,obj.ef,obj.mtp<2?obj.elas:false,obj.elasof,obj.elasbo);items[i].pos-=obj.mo;}if(obj.lo){var iv=obj.inview;items[iv].pos=items[iv==0?items.length-1:iv-1].pos+obj.mo;if(obj.elas&&items.length>3&&obj.mtp<2){}if(iv==obj.items.length-1)obj.inview=-1;obj.inview++;if(obj.au) obj.timer=setTimeout(this.str+'.carousel_swingBack('+ind+');',obj.ti*6);}else{obj.inview++;this.carousel_setBtns(ind);if(obj.au) if((obj.inview<obj.items.length-1)) obj.timer=setTimeout(this.str+'.carousel_swingBack('+ind+');',obj.ti*6);}this.carousel_afterswing(obj);},carousel_swingForward:function(ind){var obj=this.obj[ind];if(obj.lock) return;clearTimeout(obj.timer);var items=obj.items;if(obj.inview==0&&!obj.lo) return;if(obj.lo){var iv=obj.inview;items[iv==0?items.length-1:iv-1].pos=items[iv].pos-obj.mo;if(obj.elas&&items.length>3&&obj.mtp<2){items[iv==0?items.length-2:iv==1?items.length-1:iv-2].pos=items[iv].pos-obj.mo-obj.mo;}if(iv==0)obj.inview=items.length;obj.inview--;}else{obj.inview--;this.carousel_setBtns(ind);}for(var i=0;i<items.length;i++){this.moveIt(items[i].el,obj.v,obj.ax,obj.sti,obj.mo,obj.ax==0?0:items[i].pos,ind,obj.mtp!=0&&i==0?this.str+'.carousel_executeMoveBy(' + ind + ',1);':obj.cb&&i==0?obj.cb:null,Math.abs(obj.mtp)>1?false:obj.ease,obj.easemv,obj.easeae,obj.ef,obj.mtp>-2?obj.elas:false,obj.elasof,obj.elasbo);items[i].pos+=obj.mo;}if(obj.elas&&items.length>3&&obj.mtp<2){iv=obj.inview;items[iv==0?items.length-1:iv-1].pos=items[iv==0?items.length-2:iv==1?items.length-1:iv-2].pos+obj.mo;}this.carousel_afterswing(obj);if(obj.au) obj.timer=setTimeout(this.str+'.carousel_swingForward('+ind+');',obj.ti*6);},carousel_click:function(di,ind){this.obj[ind].au=false;clearTimeout(this.obj[ind].timer);di==1?this.carousel_swingBack(ind):this.carousel_swingForward(ind);},carousel_afterswing:function(obj){if(obj.dts&&obj.mtp==0){obj.ad.className='carouseldot';obj.ad=obj.dts[obj.inview];obj.ad.className='carouseldot_active';}if(obj.sf!=null&&!obj.cmb){eval(obj.sf.replace(/@inview@/,obj.inview));}},carousel_drawControls:function(dots,ext){if(!GoodBrowser) return;if(dots) document.write('<span id="carouseldots"></span>');ext=ext?ext:'gif';document.write('<span id="prevbutton"><img src="' + this.ims + 'carousel_btn_prev.' + ext + '" alt="Move left" /></span> <span id="nextbutton"><img src="' + this.ims + 'carousel_btn_next.' + ext + '" alt="Move right" /></span>');},carousel_moveBy:function(ind,targ){var obj=this.obj[ind];clearTimeout(obj.timer);obj.au=false;if(obj.mtp!=0||obj.lock||obj.inview==targ) return;obj.cmb=true;var norm,loopup,loopdown;norm=obj.mtp=targ-obj.inview;loopdown=-obj.inview - obj.items.length + targ;loopup=obj.items.length - obj.inview + targ;if(obj.srm)   obj.mtp=Math.abs(norm)<=Math.abs(loopup)?Math.abs(norm)<=Math.abs(loopdown)?norm:loopdown:Math.abs(loopup)>=Math.abs(loopdown)?loopdown:loopup;else   obj.mtp=targ>obj.inview?loopup-obj.items.length:loopdown+obj.items.length;if(obj.dts){obj.ad.className='carouseldot';obj.ad=obj.dts[targ];obj.ad.className='carouseldot_active';}if(obj.sf)   eval(obj.sf.replace(/@inview@/,targ));this.carousel_executeMoveBy(ind,0);},carousel_executeMoveBy:function(ind,x){var obj=this.obj[ind];if(isNaN(obj.mtp)) obj.mtp=0;if(obj.mtp==0) return;obj.mtp+=x;if(obj.mtp!=0) obj.mtp>0? this.carousel_swingBack(ind):this.carousel_swingForward(ind);else{obj.cmb=false;if(obj.cb) eval(obj.cb);}},heightTransition:function(el,fr,to,v,st,cb){if(el.style==null) return;v=v?v:1;st=st?st:1000;var di=fr>to?-1:1;for(var i=0;i<this.obj.length;i++)  if(this.obj[i].el==el&&this.obj[i].di!=di&&!this.obj[i].done){var x=this.obj[i];x.di=di;x.to=to;x.fr=fr;x.cb=cb;return;}var ind=this.obj.push({el:el,fr:fr,to:to,v:v,st:st,di:di,ch:fr,cb:cb,done:false})-1;this.obj[ind].timer=setTimeout(this.str + '.heightTransition_step(' + ind + ')',this.st);},heightTransition_step:function(ind){var obj=this.obj[ind];clearTimeout(obj.timer);obj.ch +=(obj.v*obj.di);if((obj.ch<obj.to&&obj.di==-1)||(obj.ch>obj.to&&obj.di==1))   obj.ch=obj.to;obj.el.style.height=obj.ch + 'px';if(obj.ch!=obj.to)obj.timer=setTimeout(this.str + '.heightTransition_step(' + ind + ')',this.st);else{if(obj.cb!==null)eval(obj.cb);obj.done=true;}},infusion:function(objid,sp,de,au,lo,nu){if(objid==null) return;sp=sp?sp:300;de=de?de:1000;au=au?true:false;lo=lo?true:false;var el=present(objid);if(el==null) return;var ind=this.obj.push({el:el,sp:sp,de:de,au:au,lo:lo,imgs:null,htimgs:new Array(),alts:null,dom:new Brick(el,this.ims),inview:0,ind:this.obj.length,fads:new FadeList(),ind:this.obj.length,par:this,nu:nu})-1;this.obj[ind].dom.clean();return this.obj[ind];},infusion_start:function(obj,text){if(obj==null) return;if(obj.imgs==null||(obj.alts==null&&!text)) return;obj.el.style.position='relative';for(var i=0;i<obj.imgs.length;i++){if(text)   var cimg=obj.dom.newtag('span','','','','',obj.imgs[i],false);else   var cimg=obj.dom.newtag('img','','','','',obj.imgs[i],false,obj.alts[i]);cimg.style.position='absolute';cimg.style.left='0';cimg.style.top='0';if(i>0) cimg.style.display='none';IE?cimg.style.filter=i==0?'':'alpha(opacity=0)':cimg.style.opacity=i==0?'':'0';obj.htimgs.push(obj.dom.stick());}if(obj.au) obj.tim=setTimeout(this.str+'.infusion_next(' + obj.ind + ');',obj.de);},infusion_next:function(ind,slide){var obj=this.obj[ind];obj.lastslide=obj.imgs.length-1;if(!obj.lo&&((obj.inview==0&&slide==-1)||(obj.inview==obj.lastslide&&(slide>obj.lastslide||slide==null)))){obj.justpressed=false;return;}var oldview=obj.oldview=obj.inview;obj.inview=obj.inview==obj.imgs.length-1?0:obj.inview+1;if(!mtVar(slide)) obj.inview=slide;var newimg=obj.inview;obj.htimgs[obj.inview].style.display='inline';obj.fads.addconc(obj.htimgs[obj.inview],1,obj.sp,0,100);var fstr=typeof(obj.callback)=='function'?this.str+'.obj[' + ind + '].callback(' + obj.inview + ');':'';if(obj.nu)fstr+=this.str+'.infusion_updatecontrols(' + ind + ');';obj.fads.addconc(obj.htimgs[oldview],-1,obj.sp,0,100,'',fstr+this.str+'.obj['+ind+'].htimgs['+oldview+'].style.display="none";'+this.str+'.obj['+ind+'].justpressed=false');obj.fads.start();if(obj.au) obj.tim=setTimeout(this.str+'.infusion_next(' + obj.ind + ');',obj.de);},infusion_updatecontrols:function(ind){var obj=this.obj[ind];for(var i=1;i<=obj.htimgs.length;i++)   present("fc" + i).src=this.ims + 'fc' + (i) + '.gif';present("fc"+(obj.inview+1)).src=this.ims + 'fc' + (obj.inview+1) + '_on.gif';if(!obj.lo&&present("fcprev")){present("fcnext").src=obj.inview==obj.lastslide?this.ims + 'fcnext_off.gif':this.ims + 'fcnext_on.gif';present("fcprev").src=obj.inview==0?this.ims + 'fcprev_off.gif':this.ims + 'fcprev_on.gif';}if(typeof obj.links!=='undefined') if(obj.links.length>0) obj.el.href=obj.links[obj.inview];obj.justpressed=false;},infusion_goto:function(obj,slide){if(obj.justpressed||slide==obj.inview)return;obj.justpressed=true;clearTimeout(obj.tim);obj.au=false;if(slide>=0)this.infusion_next(obj.ind,slide);if(slide==-1)this.infusion_next(obj.ind);if(slide==-2)this.infusion_next(obj.ind,obj.inview-1);}}
