1*9e94795aSAndroid Build Coastguard Worker/* file: carousel.js 2*9e94795aSAndroid Build Coastguard Worker date: oct 2008 3*9e94795aSAndroid Build Coastguard Worker author: jeremydw,smain 4*9e94795aSAndroid Build Coastguard Worker info: operates the carousel widget for announcements on 5*9e94795aSAndroid Build Coastguard Worker the android developers home page. modified from the 6*9e94795aSAndroid Build Coastguard Worker original market.js from jeremydw. */ 7*9e94795aSAndroid Build Coastguard Worker 8*9e94795aSAndroid Build Coastguard Worker/* -- video switcher -- */ 9*9e94795aSAndroid Build Coastguard Worker 10*9e94795aSAndroid Build Coastguard Workervar oldVid = "multi"; // set the default video 11*9e94795aSAndroid Build Coastguard Workervar nowPlayingString = "Now playing:"; 12*9e94795aSAndroid Build Coastguard Workervar assetsRoot = "assets/"; 13*9e94795aSAndroid Build Coastguard Worker 14*9e94795aSAndroid Build Coastguard Worker 15*9e94795aSAndroid Build Coastguard Worker/* -- app thumbnail switcher -- */ 16*9e94795aSAndroid Build Coastguard Worker 17*9e94795aSAndroid Build Coastguard Workervar currentDroid; 18*9e94795aSAndroid Build Coastguard Workervar oldDroid; 19*9e94795aSAndroid Build Coastguard Worker 20*9e94795aSAndroid Build Coastguard Worker// shows a random application 21*9e94795aSAndroid Build Coastguard Workerfunction randomDroid(){ 22*9e94795aSAndroid Build Coastguard Worker 23*9e94795aSAndroid Build Coastguard Worker // count the total number of apps 24*9e94795aSAndroid Build Coastguard Worker var droidListLength = 0; 25*9e94795aSAndroid Build Coastguard Worker for (var k in droidList) 26*9e94795aSAndroid Build Coastguard Worker droidListLength++; 27*9e94795aSAndroid Build Coastguard Worker 28*9e94795aSAndroid Build Coastguard Worker // pick a random app and show it 29*9e94795aSAndroid Build Coastguard Worker var j = 0; 30*9e94795aSAndroid Build Coastguard Worker var i = Math.floor(droidListLength*Math.random()); 31*9e94795aSAndroid Build Coastguard Worker for (var x in droidList) { 32*9e94795aSAndroid Build Coastguard Worker if(j++ == i){ 33*9e94795aSAndroid Build Coastguard Worker currentDroid = x; 34*9e94795aSAndroid Build Coastguard Worker showPreview(x); 35*9e94795aSAndroid Build Coastguard Worker centerSlide(x); 36*9e94795aSAndroid Build Coastguard Worker } 37*9e94795aSAndroid Build Coastguard Worker } 38*9e94795aSAndroid Build Coastguard Worker 39*9e94795aSAndroid Build Coastguard Worker} 40*9e94795aSAndroid Build Coastguard Worker 41*9e94795aSAndroid Build Coastguard Worker// shows a bulletin, swaps the carousel highlighting 42*9e94795aSAndroid Build Coastguard Workerfunction droid(appName){ 43*9e94795aSAndroid Build Coastguard Worker 44*9e94795aSAndroid Build Coastguard Worker oldDroid = $("#droidlink-"+currentDroid); 45*9e94795aSAndroid Build Coastguard Worker currentDroid = appName; 46*9e94795aSAndroid Build Coastguard Worker 47*9e94795aSAndroid Build Coastguard Worker var droid = droidList[appName]; 48*9e94795aSAndroid Build Coastguard Worker 49*9e94795aSAndroid Build Coastguard Worker $("#"+appName).show().siblings().hide(); 50*9e94795aSAndroid Build Coastguard Worker 51*9e94795aSAndroid Build Coastguard Worker if(oldDroid) 52*9e94795aSAndroid Build Coastguard Worker oldDroid.removeClass("selected"); 53*9e94795aSAndroid Build Coastguard Worker 54*9e94795aSAndroid Build Coastguard Worker $("#droidlink-"+appName).addClass("selected"); 55*9e94795aSAndroid Build Coastguard Worker} 56*9e94795aSAndroid Build Coastguard Worker 57*9e94795aSAndroid Build Coastguard Worker 58*9e94795aSAndroid Build Coastguard Worker// -- * build the carousel based on the droidList * -- // 59*9e94795aSAndroid Build Coastguard Workerfunction buildCarousel() { 60*9e94795aSAndroid Build Coastguard Worker var appList = document.getElementById("app-list"); 61*9e94795aSAndroid Build Coastguard Worker for (var x in droidList) { 62*9e94795aSAndroid Build Coastguard Worker var droid = droidList[x]; 63*9e94795aSAndroid Build Coastguard Worker var icon = droid.icon; 64*9e94795aSAndroid Build Coastguard Worker var name = droid.name; 65*9e94795aSAndroid Build Coastguard Worker var a = document.createElement("a"); 66*9e94795aSAndroid Build Coastguard Worker var img = document.createElement("img"); 67*9e94795aSAndroid Build Coastguard Worker var br = document.createElement("br"); 68*9e94795aSAndroid Build Coastguard Worker var span = document.createElement("span"); 69*9e94795aSAndroid Build Coastguard Worker var text = document.createTextNode(droid.name); 70*9e94795aSAndroid Build Coastguard Worker 71*9e94795aSAndroid Build Coastguard Worker a.setAttribute("id", "droidlink-" + x); 72*9e94795aSAndroid Build Coastguard Worker a.className = x; 73*9e94795aSAndroid Build Coastguard Worker a.setAttribute("href", "#"); 74*9e94795aSAndroid Build Coastguard Worker a.onclick = function() { showPreview(this.className); return false; } 75*9e94795aSAndroid Build Coastguard Worker img.setAttribute("src", toRoot + assetsRoot + "images/home/" + droid.icon); 76*9e94795aSAndroid Build Coastguard Worker img.setAttribute("alt", ""); 77*9e94795aSAndroid Build Coastguard Worker 78*9e94795aSAndroid Build Coastguard Worker span.appendChild(text); 79*9e94795aSAndroid Build Coastguard Worker a.appendChild(img); 80*9e94795aSAndroid Build Coastguard Worker a.appendChild(br); 81*9e94795aSAndroid Build Coastguard Worker a.appendChild(span); 82*9e94795aSAndroid Build Coastguard Worker appList.appendChild(a); 83*9e94795aSAndroid Build Coastguard Worker 84*9e94795aSAndroid Build Coastguard Worker 85*9e94795aSAndroid Build Coastguard Worker /* add the bulletins */ 86*9e94795aSAndroid Build Coastguard Worker var layout = droid.layout; 87*9e94795aSAndroid Build Coastguard Worker var div = document.createElement("div"); 88*9e94795aSAndroid Build Coastguard Worker var imgDiv = document.createElement("div"); 89*9e94795aSAndroid Build Coastguard Worker var descDiv = document.createElement("div"); 90*9e94795aSAndroid Build Coastguard Worker 91*9e94795aSAndroid Build Coastguard Worker div.setAttribute("id", x); 92*9e94795aSAndroid Build Coastguard Worker div.setAttribute("style", "display:none"); 93*9e94795aSAndroid Build Coastguard Worker imgDiv.setAttribute("class", "bulletinImg"); 94*9e94795aSAndroid Build Coastguard Worker descDiv.setAttribute("class", "bulletinDesc"); 95*9e94795aSAndroid Build Coastguard Worker 96*9e94795aSAndroid Build Coastguard Worker if (layout == "imgLeft") { 97*9e94795aSAndroid Build Coastguard Worker $(imgDiv).addClass("img-left"); 98*9e94795aSAndroid Build Coastguard Worker $(descDiv).addClass("desc-right"); 99*9e94795aSAndroid Build Coastguard Worker } else if (layout == "imgTop") { 100*9e94795aSAndroid Build Coastguard Worker $(imgDiv).addClass("img-top"); 101*9e94795aSAndroid Build Coastguard Worker $(descDiv).addClass("desc-bottom"); 102*9e94795aSAndroid Build Coastguard Worker } else if (layout == "imgRight") { 103*9e94795aSAndroid Build Coastguard Worker $(imgDiv).addClass("img-right"); 104*9e94795aSAndroid Build Coastguard Worker $(descDiv).addClass("desc-left"); 105*9e94795aSAndroid Build Coastguard Worker } 106*9e94795aSAndroid Build Coastguard Worker 107*9e94795aSAndroid Build Coastguard Worker imgDiv.innerHTML = "<img src='" + toRoot + assetsRoot + "images/home/" + droid.img + "'>"; 108*9e94795aSAndroid Build Coastguard Worker descDiv.innerHTML = (droid.title != "") ? "<h3>" + droid.title + "</h3>" + droid.desc : droid.desc; 109*9e94795aSAndroid Build Coastguard Worker $(div).append(imgDiv); 110*9e94795aSAndroid Build Coastguard Worker $(div).append(descDiv); 111*9e94795aSAndroid Build Coastguard Worker 112*9e94795aSAndroid Build Coastguard Worker $("#carouselMain").append(div); 113*9e94795aSAndroid Build Coastguard Worker 114*9e94795aSAndroid Build Coastguard Worker } 115*9e94795aSAndroid Build Coastguard Worker} 116*9e94795aSAndroid Build Coastguard Worker 117*9e94795aSAndroid Build Coastguard Worker// -- * slider * -- // 118*9e94795aSAndroid Build Coastguard Worker 119*9e94795aSAndroid Build Coastguard Worker// -- dependencies: 120*9e94795aSAndroid Build Coastguard Worker// (1) div containing slides, (2) a "clip" div to hide the scroller 121*9e94795aSAndroid Build Coastguard Worker// (3) control arrows 122*9e94795aSAndroid Build Coastguard Worker 123*9e94795aSAndroid Build Coastguard Worker// -- * config below * -- // 124*9e94795aSAndroid Build Coastguard Worker 125*9e94795aSAndroid Build Coastguard Workervar slideCode = droidList; // the dictionary of slides 126*9e94795aSAndroid Build Coastguard Workervar slideList = 'app-list'; // the div containing the slides 127*9e94795aSAndroid Build Coastguard Workervar arrowRight = 'arrow-right'; // the right control arrow 128*9e94795aSAndroid Build Coastguard Workervar arrowLeft = 'arrow-left'; // the left control arrow 129*9e94795aSAndroid Build Coastguard Worker 130*9e94795aSAndroid Build Coastguard Worker 131*9e94795aSAndroid Build Coastguard Workerfunction showPreview(slideName) { 132*9e94795aSAndroid Build Coastguard Worker centerSlide(slideName); 133*9e94795aSAndroid Build Coastguard Worker if (slideName.indexOf('selected') != -1) { 134*9e94795aSAndroid Build Coastguard Worker return false; 135*9e94795aSAndroid Build Coastguard Worker } 136*9e94795aSAndroid Build Coastguard Worker droid(slideName); // do this function when slide is clicked 137*9e94795aSAndroid Build Coastguard Worker} 138*9e94795aSAndroid Build Coastguard Worker 139*9e94795aSAndroid Build Coastguard Workervar thumblist = document.getElementById(slideList);// the div containing the slides 140*9e94795aSAndroid Build Coastguard Worker 141*9e94795aSAndroid Build Coastguard Workervar slideWidth = 144; // width of a slide including all margins, etc. 142*9e94795aSAndroid Build Coastguard Workervar slidesAtOnce = 3; // no. of slides to appear at once (requires odd number to have a centered slide) 143*9e94795aSAndroid Build Coastguard Worker 144*9e94795aSAndroid Build Coastguard Worker// -- * no editing should be needed below * -- // 145*9e94795aSAndroid Build Coastguard Worker 146*9e94795aSAndroid Build Coastguard Workervar originPosition = {}; 147*9e94795aSAndroid Build Coastguard Workervar is_animating = 0; 148*9e94795aSAndroid Build Coastguard Workervar currentStripPosition = 0; 149*9e94795aSAndroid Build Coastguard Workervar centeringPoint = 0; 150*9e94795aSAndroid Build Coastguard Workervar rightScrollLimit = 0; 151*9e94795aSAndroid Build Coastguard Worker 152*9e94795aSAndroid Build Coastguard Worker// makeSlideStrip() 153*9e94795aSAndroid Build Coastguard Worker// - figures out how many slides there are 154*9e94795aSAndroid Build Coastguard Worker// - determines the centering point of the slide strip 155*9e94795aSAndroid Build Coastguard Workerfunction makeSlideStrip() { 156*9e94795aSAndroid Build Coastguard Worker var slideTotal = 0; 157*9e94795aSAndroid Build Coastguard Worker centeringPoint = Math.ceil(slidesAtOnce/2); 158*9e94795aSAndroid Build Coastguard Worker for (var x in slideCode) { 159*9e94795aSAndroid Build Coastguard Worker slideTotal++; 160*9e94795aSAndroid Build Coastguard Worker } 161*9e94795aSAndroid Build Coastguard Worker var i = 0; 162*9e94795aSAndroid Build Coastguard Worker for (var code in slideCode) { 163*9e94795aSAndroid Build Coastguard Worker if (i <= centeringPoint-1) { 164*9e94795aSAndroid Build Coastguard Worker originPosition[code] = 0; 165*9e94795aSAndroid Build Coastguard Worker } else { 166*9e94795aSAndroid Build Coastguard Worker if (i >= slideTotal-centeringPoint+1) { 167*9e94795aSAndroid Build Coastguard Worker originPosition[code] = (slideTotal-slidesAtOnce)*slideWidth; 168*9e94795aSAndroid Build Coastguard Worker } else { 169*9e94795aSAndroid Build Coastguard Worker originPosition[code] = (i-centeringPoint+1)*slideWidth; 170*9e94795aSAndroid Build Coastguard Worker } 171*9e94795aSAndroid Build Coastguard Worker } 172*9e94795aSAndroid Build Coastguard Worker i++; 173*9e94795aSAndroid Build Coastguard Worker } 174*9e94795aSAndroid Build Coastguard Worker rightScrollLimit = -1*(slideTotal-slidesAtOnce)*slideWidth; 175*9e94795aSAndroid Build Coastguard Worker} 176*9e94795aSAndroid Build Coastguard Worker 177*9e94795aSAndroid Build Coastguard Worker// slides with acceleration 178*9e94795aSAndroid Build Coastguard Workerfunction slide(goal, id, go_left, cp) { 179*9e94795aSAndroid Build Coastguard Worker var div = document.getElementById(id); 180*9e94795aSAndroid Build Coastguard Worker var animation = {}; 181*9e94795aSAndroid Build Coastguard Worker animation.time = 0.5; // in seconds 182*9e94795aSAndroid Build Coastguard Worker animation.fps = 60; 183*9e94795aSAndroid Build Coastguard Worker animation.goal = goal; 184*9e94795aSAndroid Build Coastguard Worker origin = 0.0; 185*9e94795aSAndroid Build Coastguard Worker animation.origin = Math.abs(origin); 186*9e94795aSAndroid Build Coastguard Worker animation.frames = (animation.time * animation.fps) - 1.0; 187*9e94795aSAndroid Build Coastguard Worker var current_frame = 0; 188*9e94795aSAndroid Build Coastguard Worker var motions = Math.abs(animation.goal - animation.origin); 189*9e94795aSAndroid Build Coastguard Worker function animate() { 190*9e94795aSAndroid Build Coastguard Worker var ease_right = function (t) { return (1 - Math.cos(t * Math.PI))/2.0; }; 191*9e94795aSAndroid Build Coastguard Worker var ease = ease_right; 192*9e94795aSAndroid Build Coastguard Worker if (go_left == 1) { 193*9e94795aSAndroid Build Coastguard Worker ease = function(t) { return 1.0 - ease_right(t); }; 194*9e94795aSAndroid Build Coastguard Worker } 195*9e94795aSAndroid Build Coastguard Worker var left = (ease(current_frame/animation.frames) * Math.abs(animation.goal - animation.origin)) - cp; 196*9e94795aSAndroid Build Coastguard Worker if(left < 0) { 197*9e94795aSAndroid Build Coastguard Worker left = 0; 198*9e94795aSAndroid Build Coastguard Worker } 199*9e94795aSAndroid Build Coastguard Worker if(!isNaN(left)) { 200*9e94795aSAndroid Build Coastguard Worker div.style.left = '-' + Math.round(left) + 'px'; 201*9e94795aSAndroid Build Coastguard Worker } 202*9e94795aSAndroid Build Coastguard Worker current_frame += 1; 203*9e94795aSAndroid Build Coastguard Worker if (current_frame == animation.frames) { 204*9e94795aSAndroid Build Coastguard Worker is_animating = 0; 205*9e94795aSAndroid Build Coastguard Worker window.clearInterval(timeoutId) 206*9e94795aSAndroid Build Coastguard Worker } 207*9e94795aSAndroid Build Coastguard Worker } 208*9e94795aSAndroid Build Coastguard Worker var timeoutId = window.setInterval(animate, animation.time/animation.fps * 1000); 209*9e94795aSAndroid Build Coastguard Worker} 210*9e94795aSAndroid Build Coastguard Worker 211*9e94795aSAndroid Build Coastguard Worker//Get style property 212*9e94795aSAndroid Build Coastguard Workerfunction getStyle(element, cssProperty){ 213*9e94795aSAndroid Build Coastguard Worker var elem = document.getElementById(element); 214*9e94795aSAndroid Build Coastguard Worker if(elem.currentStyle){ 215*9e94795aSAndroid Build Coastguard Worker return elem.currentStyle[cssProperty]; //IE 216*9e94795aSAndroid Build Coastguard Worker } else{ 217*9e94795aSAndroid Build Coastguard Worker var style = document.defaultView.getComputedStyle(elem, null); //firefox, Opera 218*9e94795aSAndroid Build Coastguard Worker return style.getPropertyValue(cssProperty); 219*9e94795aSAndroid Build Coastguard Worker } 220*9e94795aSAndroid Build Coastguard Worker} 221*9e94795aSAndroid Build Coastguard Worker 222*9e94795aSAndroid Build Coastguard Worker// Left and right arrows 223*9e94795aSAndroid Build Coastguard Workerfunction page_left() { 224*9e94795aSAndroid Build Coastguard Worker var amount = slideWidth; 225*9e94795aSAndroid Build Coastguard Worker animateSlide(amount, 'left'); 226*9e94795aSAndroid Build Coastguard Worker} 227*9e94795aSAndroid Build Coastguard Worker 228*9e94795aSAndroid Build Coastguard Workerfunction page_right() { 229*9e94795aSAndroid Build Coastguard Worker var amount = slideWidth; 230*9e94795aSAndroid Build Coastguard Worker animateSlide(amount, 'right'); 231*9e94795aSAndroid Build Coastguard Worker} 232*9e94795aSAndroid Build Coastguard Worker 233*9e94795aSAndroid Build Coastguard Worker 234*9e94795aSAndroid Build Coastguard Worker// animates the strip 235*9e94795aSAndroid Build Coastguard Worker// - sets arrows to on or off 236*9e94795aSAndroid Build Coastguard Workerfunction animateSlide(amount,dir) { 237*9e94795aSAndroid Build Coastguard Worker var currentStripPosition = parseInt(getStyle(slideList,'left')); 238*9e94795aSAndroid Build Coastguard Worker var motionDistance; 239*9e94795aSAndroid Build Coastguard Worker if (amount == slideWidth ) { 240*9e94795aSAndroid Build Coastguard Worker motionDistance = slideWidth; 241*9e94795aSAndroid Build Coastguard Worker } else { 242*9e94795aSAndroid Build Coastguard Worker motionDistance = amount; 243*9e94795aSAndroid Build Coastguard Worker } 244*9e94795aSAndroid Build Coastguard Worker 245*9e94795aSAndroid Build Coastguard Worker var rightarrow = document.getElementById(arrowRight); 246*9e94795aSAndroid Build Coastguard Worker var leftarrow = document.getElementById(arrowLeft); 247*9e94795aSAndroid Build Coastguard Worker 248*9e94795aSAndroid Build Coastguard Worker function aToggle(state,aDir) { 249*9e94795aSAndroid Build Coastguard Worker if (state == 'on') { 250*9e94795aSAndroid Build Coastguard Worker if (aDir =='right') { 251*9e94795aSAndroid Build Coastguard Worker rightarrow.className = 'arrow-right-on'; 252*9e94795aSAndroid Build Coastguard Worker rightarrow.href = "javascript:page_right()"; 253*9e94795aSAndroid Build Coastguard Worker } else { 254*9e94795aSAndroid Build Coastguard Worker leftarrow.className = 'arrow-left-on'; 255*9e94795aSAndroid Build Coastguard Worker leftarrow.href = "javascript:page_left()"; 256*9e94795aSAndroid Build Coastguard Worker } 257*9e94795aSAndroid Build Coastguard Worker } else { 258*9e94795aSAndroid Build Coastguard Worker if (aDir =='right') { 259*9e94795aSAndroid Build Coastguard Worker rightarrow.href = "javascript:{}"; 260*9e94795aSAndroid Build Coastguard Worker rightarrow.className = 'arrow-right-off'; 261*9e94795aSAndroid Build Coastguard Worker } else { 262*9e94795aSAndroid Build Coastguard Worker leftarrow.href = "javascript:{}"; 263*9e94795aSAndroid Build Coastguard Worker leftarrow.className = 'arrow-left-off'; 264*9e94795aSAndroid Build Coastguard Worker } 265*9e94795aSAndroid Build Coastguard Worker } 266*9e94795aSAndroid Build Coastguard Worker } 267*9e94795aSAndroid Build Coastguard Worker 268*9e94795aSAndroid Build Coastguard Worker function arrowChange(rP) { 269*9e94795aSAndroid Build Coastguard Worker if (rP >= rightScrollLimit) { 270*9e94795aSAndroid Build Coastguard Worker aToggle('on','right'); 271*9e94795aSAndroid Build Coastguard Worker } 272*9e94795aSAndroid Build Coastguard Worker if (rP <= rightScrollLimit) { 273*9e94795aSAndroid Build Coastguard Worker aToggle('off','right'); 274*9e94795aSAndroid Build Coastguard Worker } 275*9e94795aSAndroid Build Coastguard Worker if (rP <= slideWidth) { 276*9e94795aSAndroid Build Coastguard Worker aToggle('on','left'); 277*9e94795aSAndroid Build Coastguard Worker } 278*9e94795aSAndroid Build Coastguard Worker if (rP >= 0) { 279*9e94795aSAndroid Build Coastguard Worker aToggle('off','left'); 280*9e94795aSAndroid Build Coastguard Worker } 281*9e94795aSAndroid Build Coastguard Worker } 282*9e94795aSAndroid Build Coastguard Worker 283*9e94795aSAndroid Build Coastguard Worker if (dir == 'right' && is_animating == 0) { 284*9e94795aSAndroid Build Coastguard Worker arrowChange(currentStripPosition-motionDistance); 285*9e94795aSAndroid Build Coastguard Worker is_animating = 1; 286*9e94795aSAndroid Build Coastguard Worker slide(motionDistance, slideList, 0, currentStripPosition); 287*9e94795aSAndroid Build Coastguard Worker } else if (dir == 'left' && is_animating == 0) { 288*9e94795aSAndroid Build Coastguard Worker arrowChange(currentStripPosition+motionDistance); 289*9e94795aSAndroid Build Coastguard Worker is_animating = 1; 290*9e94795aSAndroid Build Coastguard Worker rightStripPosition = currentStripPosition + motionDistance; 291*9e94795aSAndroid Build Coastguard Worker slide(motionDistance, slideList, 1, rightStripPosition); 292*9e94795aSAndroid Build Coastguard Worker } 293*9e94795aSAndroid Build Coastguard Worker} 294*9e94795aSAndroid Build Coastguard Worker 295*9e94795aSAndroid Build Coastguard Workerfunction centerSlide(slideName) { 296*9e94795aSAndroid Build Coastguard Worker var currentStripPosition = parseInt(getStyle(slideList,'left')); 297*9e94795aSAndroid Build Coastguard Worker var dir = 'left'; 298*9e94795aSAndroid Build Coastguard Worker var originpoint = Math.abs(currentStripPosition); 299*9e94795aSAndroid Build Coastguard Worker if (originpoint <= originPosition[slideName]) { 300*9e94795aSAndroid Build Coastguard Worker dir = 'right'; 301*9e94795aSAndroid Build Coastguard Worker } 302*9e94795aSAndroid Build Coastguard Worker var motionValue = Math.abs(originPosition[slideName]-originpoint); 303*9e94795aSAndroid Build Coastguard Worker animateSlide(motionValue,dir); 304*9e94795aSAndroid Build Coastguard Worker} 305*9e94795aSAndroid Build Coastguard Worker 306*9e94795aSAndroid Build Coastguard Worker 307*9e94795aSAndroid Build Coastguard Workerfunction initCarousel(def) { 308*9e94795aSAndroid Build Coastguard Worker buildCarousel(); 309*9e94795aSAndroid Build Coastguard Worker showPreview(def); 310*9e94795aSAndroid Build Coastguard Worker makeSlideStrip(); 311*9e94795aSAndroid Build Coastguard Worker} 312