1/**************************************************************** 2"bretteleben.de JavaScript Slideshow" - Version 20100412 3License: http://www.gnu.org/copyleft/gpl.html 4Author: Andreas Berger 5Copyright (c) 2010 Andreas Berger - [email protected] 6Project page and Demo at http://www.bretteleben.de 7Last update: 2010-04-12 8*****************************************************************/ 9//*****parameters to set***** 10//into this array insert the paths of your pics. 11 var def_sdur=2.5; //time to show a pic between fades in seconds 12 var def_fdur=0.5; //duration of the complete fade in seconds 13 var def_steps=20; //steps to fade from on pic to the next 14 var def_startwhen="y"; //start automatically at pageload? set it to "y" for on and to "n" for off 15 var def_shuffle="n"; //start with random image? set it to "y" for on and to "n" for off 16 var def_showcontr="n"; //do you want to show controls? set it to "y" for on and to "n" for off 17 //into this array insert the paths of your control-buttons or the text to display e.g. back,start,stop,fwrd. 18 var def_contr=new Array ('bwd.png', 'start.png', 'stop.png', 'fwd.png'); 19//**************************************************************** 20 21//daisychain onload-events 22function daisychain(sl){if(window.onload) {var ld=window.onload;window.onload=function(){ld();sl();};}else{window.onload=function(){sl();};}} 23 24function be_slideshow(be_slideid,be_imges,be_divid,be_picwid,be_pichei,be_backgr,be_sdur,be_fdur,be_steps,be_startwhen,be_shuffle,be_showcontr,be_contr){ 25 26//declarations and defaults 27 var slideid=(be_slideid)?be_slideid:"0"; 28 var imges=(be_imges)?be_imges:def_imges; 29 var divid=(be_divid)?be_divid:def_divid; 30 var picwid=(be_picwid)?be_picwid:def_picwid; 31 var pichei=(be_pichei)?be_pichei:def_pichei; 32 var backgr=(be_backgr)?be_backgr:def_backgr; 33 var sdur=(be_sdur)?be_sdur:def_sdur; 34 var fdur=(be_fdur)?be_fdur:def_fdur; 35 var steps=(be_steps)?be_steps:def_steps; 36 var startwhen=(be_startwhen)?be_startwhen:def_startwhen; 37 startwhen=(startwhen.toLowerCase()=="y")?1:0; 38 var shuffle=(be_shuffle)?be_shuffle:def_shuffle; 39 shuffle=(shuffle.toLowerCase()=="y")?1:0; 40 var showcontr=(be_showcontr)?be_showcontr:def_showcontr; 41 showcontr=(showcontr.toLowerCase()=="y")?1:0; 42 var contr=(be_contr)?be_contr:def_contr; 43 var ftim=fdur*1000/steps; 44 var stim=sdur*1000; 45 var emax=imges.length; 46 var self = this; 47 var stopit=1; 48 var startim=1; 49 var u=0; 50 var parr = new Array(); 51 var ptofade,pnext,factor,mytimeout; 52//check if there are at least 3 pictures, elswhere double the array 53 if(imges.length<=2){imges=imges.concat(imges);} 54//shuffle images if set 55 if(shuffle){var i;for(i=0;i<=Math.floor(Math.random()*imges.length);i++){imges.push(imges.shift());}} 56 57//push images into array and get things going 58 this.b_myfade = function(){ 59 var a,idakt,paktidakt,ie5exep; 60 for(a=1;a<=emax;a++){ 61 idakt="img_"+slideid+"_"+a;paktidakt=document.getElementById(idakt); 62 ie5exep=new Array(paktidakt);parr=parr.concat(ie5exep); 63 } 64 if(startwhen){ 65 stopit=0; 66 mytimeout=setTimeout(function(){self.b_slide();},stim); 67 } 68 this.nyroAkt(0); 69 } 70 71 this.nyroAkt = function(nr){ 72 var imageTypeNummer = imges[nr].substr(0, 1); 73 var rest = imges[nr].substr(1); 74 window.aktuellesBild = nr; 75 } 76 77//prepare current and next and trigger slide 78 this.b_slide = function(){ 79 clearTimeout(mytimeout); 80 u=0; 81 ptofade=parr[startim-1]; 82 if(startim<emax){pnext=parr[startim];} 83 else{pnext=parr[0];} 84 pnext.style.zIndex=1; 85 pnext.style.visibility="visible"; 86 pnext.style.filter="Alpha(Opacity=100)"; 87 try{pnext.style.removeAttribute("filter");} catch(err){} 88 pnext.style.MozOpacity=1; 89 pnext.style.opacity=1; 90 ptofade.style.zIndex=2; 91 ptofade.style.visibility="visible"; 92 ptofade.style.filter="Alpha(Opacity=100)"; 93 ptofade.style.MozOpacity=1; 94 ptofade.style.opacity=1; 95 factor=100/steps; 96 if(stopit=="0"){ 97 this.b_slidenow(); 98 } 99 100 } 101 102 this.getHowManyNextToItem = function(item){ 103 var picIndex=getItemRow(imges,item)+1; 104 if(picIndex==startim) 105 { 106 return 0; 107 } else if (picIndex>startim) { 108 return (picIndex-startim); 109 } else { 110 return (imges.length-startim+picIndex); 111 } 112 } 113 114 this.goTo = function(item){ 115 var jumpNumber=this.getHowManyNextToItem(item); 116 117 for (i=0;i<jumpNumber;i++) 118 { 119 120 this.b_forw(); 121 } 122 this.b_stop(); 123 this.nyroAkt(startim-1); 124 } 125//one step forward 126 this.b_forw = function(){ 127 stopit=1;
128 clearTimeout(mytimeout); 129 ptofade=parr[startim-1]; 130 if(startim<emax){pnext=parr[startim];startim=startim+1;} 131 else{pnext=parr[0];startim=1;} 132 ptofade.style.visibility="hidden"; 133 ptofade.style.zIndex=1; 134 pnext.style.visibility="visible"; 135 pnext.style.zIndex=2; 136 self.b_slide(); 137 } 138 139 function getItemRow(array,lockFor) { 140 var myPosition=-1 141 for (i=0;i<array.length;i++) { 142 if(array[i]==lockFor) { 143 myPosition = i; 144 break; 145 } 146 } 147 return(myPosition) 148 } 149 150 151//one step back 152 this.b_back = function(){ 153 stopit=1; 154 clearTimeout(mytimeout); 155 if(u==0){ //between two slides 156 ptofade=parr[startim-1]; 157 if(startim<emax){pnext=parr[startim];} 158 else{pnext=parr[0];} 159 pnext.style.visibility="hidden"; 160 ptofade.style.zIndex=1; 161 ptofade.style.visibility="visible"; 162 if(startim>=2){startim=startim-1;} 163 else{startim=emax;} 164 self.b_slide(); 165 } 166 else{ //whilst sliding 167 self.b_slide(); 168 } 169 } 170 171//slide as said, then give back 172 this.b_slidenow = function(){ 173 var check1,maxalpha,curralpha; 174 check1=ptofade.style.MozOpacity; 175 maxalpha=(100-factor*u)/100*105; 176 if(check1<=maxalpha/100){u=u+1;} 177 curralpha=100-factor*u; 178 ptofade.style.filter="Alpha(Opacity="+curralpha+")"; 179 ptofade.style.MozOpacity=curralpha/100; 180 ptofade.style.opacity=curralpha/100; 181 if(u<steps){ //slide not finished 182 if(stopit=="0"){mytimeout=setTimeout(function(){self.b_slidenow();},ftim);} 183 else {this.b_slide();} 184 } 185 else{ //slide finished 186 if(startim<emax){ 187 ptofade.style.visibility="hidden"; 188 ptofade.style.zIndex=1; 189 pnext.style.zIndex=2; 190 startim=startim+1;u=0; 191 mytimeout=setTimeout(function(){self.b_slide();},stim); 192 } 193 else{ 194 ptofade.style.visibility="hidden"; 195 ptofade.style.zIndex=1; 196 pnext.style.zIndex=2; 197 startim=1;u=0; 198 mytimeout=setTimeout(function(){self.b_slide();},stim); 199 } 200 } 201 this.nyroAkt(startim-1); 202 203 } 204 205//manual start 206 this.b_start= function(){ 207 if(stopit==1){ 208 stopit=0; 209 mytimeout=setTimeout(function(){self.b_slide();},stim); 210 } 211 } 212 213//manual stop 214 this.b_stop= function(){ 215 clearTimeout(mytimeout); 216 stopit=1; 217 this.b_slide(); 218 } 219 220//insert css and images 221 this.b_insert= function(){ 222 var b, thestylid, thez, thevis, slidehei; 223 slidehei=(showcontr)?(pichei+25):(pichei); //add space for the controls 224 var myhtml="<div style='width:"+picwid+"px;height:"+slidehei+"px;'>"; 225 myhtml+="<div style='position:absolute;width:"+picwid+"px;height:"+pichei+"px;'>"; 226 for(b=1;b<=emax;b++){ 227 thez=1;thevis='hidden'; 228 if(b<=1) {thez=2; thevis='visible';} 229 myhtml+="<div id='img_"+slideid+"_"+b+"' style='font-size:0;line-height:"+pichei+"px;margin:0;padding:0;text-align:left;visibility:"+thevis+";z-index:"+thez+";position:absolute;left:0;top:0;width:"+picwid+"px;height:"+pichei+"px;background-color:"+backgr+";'>"; 230 myhtml+="<img src='"+imges[(b-1)]+"' style='vertical-align:top;border:0;' alt=''/></div>"; 231 } 232 myhtml+="</div>"; 233 234//show controls 235 if(showcontr){ 236 for(b=1;b<=4;b++){ 237 var check=contr[b-1].substring(contr[b-1].length-3).toLowerCase(); //check for buttons 238 contr[b-1]=(check=="jpg"||check=="gif"||check=="png")?("<img src='"+contr[b-1]+"' style='border:none;' alt=''/>"):(contr[b-1]); 239 } 240 myhtml+="<div style='display:block;width:"+picwid+"px;padding-top:"+(pichei+3)+"px;text-align:right;'>"; 241 myhtml+="<a href='javascript:be_"+slideid+".b_back();' style='text-decoration:none'>"+contr[0]+"</a> "; 242 myhtml+="<a href='javascript:be_"+slideid+".b_start();' style='text-decoration:none'>"+contr[1]+"</a> "; 243 myhtml+="<a href='javascript:be_"+slideid+".b_stop();' style='text-decoration:none'>"+contr[2]+"</a> "; 244 myhtml+="<a href='javascript:be_"+slideid+".b_forw();' style='text-decoration:none'>"+contr[3]+"</a>"; 245 } 246 myhtml+="</div>"; 247 document.getElementById(divid).innerHTML=myhtml; 248 self.b_myfade(); 249 } 250 251//call autostart-function 252daisychain(this.b_insert); 253 254}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.