1//load main functions 2jQuery( document ).ready(function( $ ) { 3 4 slider(); 5 6 function slider() { 7 $( '.sgwindow-slider-content' ).each( function( index ) { 8 9 var arrName = $(this).attr('class').split( ' ' ); 10 var is_autoplay = arrName[0]; 11 var slidespeed = parseInt( arrName[1] ); 12 var delayspeed = parseInt( arrName[2] ); 13 var timerId; 14 var animtype = 4; 15 var disabled = false; 16 17 var slider = $( this ); 18 var slide = $(this).find( '.sgwindow-slide' ); 19 var size = slide.size(); 20 21 var currindex = 0; 22 var newindex = 0; 23 var previndex = size - 1; 24 25 if ( 0 == size ) { 26 27 slider.css( 'display', 'none' ); 28 return; 29 30 } 31 32 if ( size < 4 ) { 33 for( i = size; i < 4; i++) { 34 $(this).find( '.sgwindow-slide:first-child' ) 35 .clone() 36 .insertBefore( $(this).find( '.sgwindow-slide:first-child' ) ) 37 } 38 slide = $(this).find( '.sgwindow-slide' ); 39 size = slide.size(); 40 } 41 42 var menuitem = $( this ).parent().find( '.sgwindow-slider-buttons li' ); 43 var next = $( this ).parent().find( '.sgwindow-next-button' ); 44 var prev = $( this ).parent().find( '.sgwindow-prev-button' ); 45 46 if ( '1' == is_autoplay ) { 47 autoplay(); 48 } 49 50 next.click(function( event ) { 51 if ( disabled ) 52 return false; 53 disabled = true; 54 55 newindex = ( newindex + 1 >= size ? 0 : newindex + 1 ); 56 57 slide.eq(currindex - 1).stop(true, true); 58 slide.eq(currindex + 1).stop(true, true); 59 slide.eq(currindex).stop(true, true); 60 slide.eq(previndex).stop(true, true); 61 62 animtype = 4; 63 previndex = currindex - 1; 64 if ( previndex < 0 ) 65 previndex = size - 1; 66 67 switchSlide(); 68 69 slider.parent().find( '.sgwindow-slider-buttons li' ).removeClass( 'current' ); 70 slider.parent().find( '.sgwindow-slider-buttons li' ).eq( newindex ).addClass( 'current' ); 71 72 return false; 73 }); 74 75 prev.click(function( event ) { 76 77 if ( disabled ) 78 return false; 79 disabled = true; 80 81 newindex = ( newindex - 1 >= 0 ? newindex - 1 : size - 1 ); 82 83 slide.eq(currindex - 1 ).stop(true, true); 84 slide.eq(currindex + 1).stop(true, true); 85 slide.eq(currindex).stop(true, true); 86 slide.eq(previndex).stop(true, true); 87 88 animtype = 3; 89 previndex = newindex - 1; 90 91 switchSlide(); 92 93 slider.parent().find( '.sgwindow-slider-buttons li' ).removeClass( 'current' ); 94 slider.parent().find( '.sgwindow-slider-buttons li' ).eq( newindex ).addClass( 'current' ); 95 96 return false; 97 }); 98 99 menuitem.click(function( event ) { 100 101 var next_b = menuitem.index( this ); 102 if ( next_b == currindex ) 103 return; 104 105 slider.parent().find( '.sgwindow-slider-buttons li' ).removeClass( 'current' ); 106 $( this ).addClass( 'current' ); 107 slider.eq( currindex ).stop(true, true); 108 slider.eq( previndex ).stop(true, true); 109 110 var prevspeed = slidespeed; 111 var slidetomove = ( next_b - currindex > 0 ? next_b - currindex : currindex - next_b ); 112 slidespeed = slidespeed / slidetomove; 113 var timeout = slidespeed; 114 115 var button = ( next_b > currindex ? next : prev ); 116 117 moveit( false, 400, button, slidetomove - 1, prevspeed ); 118 }); 119 120 function moveit( flag, timeout, button, index, prevspeed ) { 121 122 if ( false === flag ) { 123 setTimeout( function() { 124 moveit( true, timeout, button, index, prevspeed ); 125 }, timeout ); 126 } else { 127 button.click(); 128 129 if ( index > 0 ) { 130 index--; 131 moveit( false, timeout, button, index, prevspeed ); 132 } else { 133 slidespeed = prevspeed; 134 } 135 } 136 } 137 138 slider.mouseover(function( event ) { 139 if ( is_autoplay ) { 140 clearInterval( timerId ); 141 } 142 }); 143 144 slider.mouseleave(function( event ) { 145 if ( is_autoplay ){ 146 clearInterval( timerId ); 147 autoplay(); 148 } 149 }); 150 151 function autoplay() { 152 timerId = setInterval( function (){ 153 next.click(); 154 }, delayspeed ); 155 } 156 function switchSlide() { 157 animslide(currindex, newindex); 158 159 previndex = currindex; 160 currindex = newindex; 161 } 162 163 function animslide(currindex, newindex) { 164 165 switch ( animtype ) { 166 case 3: //move right 167 168 slide.eq( previndex ) 169 .css( 'display', 'block' ) 170 .css( 'left', '-200%' ) 171 .css( 'right', '200%' ) 172 .animate({ 173 'left':'-100%', 'right':'100%'}, {
174 duration: slidespeed, 175 queue: false, 176 always: function() { 177 } 178 }); 179 180 slide.eq( currindex ) 181 .css( 'display', 'block' ) 182 .css( 'left', '0' ) 183 .css( 'right', '0' ) 184 .animate({ 185 'left':'100%', 'right':'-100%'}, { 186 duration: slidespeed, 187 queue: false, 188 always: function() { 189 enabled(); 190 } 191 }); 192 193 slide.eq( newindex ) 194 .css( 'display', 'block' ) 195 .css( 'left', '-100%' ) 196 .css( 'right', '100%' ) 197 .animate({ 198 'left':'0', 'right':'0'}, { 199 duration: slidespeed, 200 queue: false, 201 always: function() { 202 } 203 }); 204 205 if ( size == currindex + 1 ) { 206 slide.eq( 0 ) 207 .css( 'display', 'block' ) 208 .css( 'left', '100%' ) 209 .css( 'right', '-100%' ) 210 .animate({ 211 'left':'200%', 'right':'-200%'}, { 212 duration: slidespeed, 213 queue: false, 214 always: function() { 215 } 216 }); 217 } else { 218 slide.eq( currindex + 1 ) 219 .css( 'display', 'block' ) 220 .css( 'left', '100%' ) 221 .css( 'right', '-100%' ) 222 .animate({ 223 'left':'200%', 'right':'-200%'}, { 224 duration: slidespeed, 225 queue: false, 226 always: function() { 227 } 228 }); 229 } 230 231 break; 232 case 4: //move left 233 234 slide.eq( previndex ) 235 .css( 'display', 'block' ) 236 .css( 'left', '-100%' ) 237 .css( 'right', '100%' ) 238 .animate({ 239 'left':'-200%', 'right':'200%'}, { 240 duration: slidespeed, 241 queue: false, 242 always: function() { 243 } 244 }); 245 246 slide.eq( currindex ) 247 .css( 'display', 'block' ) 248 .css( 'left', '0' ) 249 .css( 'right', '0' ) 250 .animate({ 251 'left':'-100%', 'right':'100%'}, { 252 duration: slidespeed, 253 queue: false, 254 always: function() { 255 enabled(); 256 } 257 }); 258 259 slide.eq( newindex ) 260 .css( 'display', 'block' ) 261 .css( 'left', '100%' ) 262 .css( 'right', '-100%' ) 263 .animate({ 264 'left':'0', 'right':'0'}, { 265 duration: slidespeed, 266 queue: false 267 }); 268 269 if( size == newindex + 1 ) { 270 slide.eq( 0 ) 271 .css( 'display', 'block' ) 272 .css( 'left', '200%' ) 273 .css( 'right', '-200%' ) 274 .animate({ 275 'left':'100%', 'right':'-100%'}, { 276 duration: slidespeed, 277 queue: false 278 }); 279 } else { 280 slide.eq( newindex + 1 ) 281 .css( 'display', 'block' ) 282 .css( 'left', '200%' ) 283 .css( 'right', '-200%' ) 284 .animate({ 285 'left':'100%', 'right':'-100%'}, { 286 duration: slidespeed, 287 queue: false 288 }); 289 } 290 291 break; 292 }; 293 } 294 295 function hideslide( obj ) { 296 obj.css( 'display', 'none' ); 297 } 298 299 function enabled() { 300 disabled = false; 301 } 302 303 }); 304 } 305});
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.