How do I create a simple loading scene in CS4 AS3?

Hi All,
I have tried using the following to no effect:
ifFrameLoaded ("Main", 80) {
gotoAndPlay("Main", 1);
CS4 says this has been replaced by
flash.display.MovieClip.framesLoaded but this doesnt seem to work
the same, i keep getting errors.
Basically I have scene called "Loading" and I want AS3 i this
scene to wait until my scene called "Main" has loaded before
proceeding to it. I have an animation in the Loading scene to show
its loading.
I must be missing something simple but cant figure it out.
Please help

Ok I now have
trace("framesLoaded:" + framesLoaded + " currentFrame:" +
currentFrame);
if(framesLoaded == totalFrames) {
gotoAndPlay(2);
} else {
gotoAndPlay(1);
Which appears to work, i shows my loading frame then moves
onto Frame 2. The only problem is it hasnt finshed loading! The
output in CS4 is "framesLoaded:1 currentFrame:1". framesLoaded
should be 80 before it moves to the next frame. Any Ideas?

Similar Messages

  • How do I create a simple gallery in iweb? I don't know much coding though!

    how do I create a simple gallery in iweb?
    I don't know much coding though so I struggle
    with some tips given on-line. I've spent many
    hours on it with no success. Helpful advice will be greatly appreciated.

    Instructions :
    http://www.wyodor.net/blog/archives/2010/03/entry_308.html
    Result :
    http://www.wyodor.net/_Demo/Fancy/Fancy2.html
    http://www.wyodor.net/mfi/Dide/Photos.html

  • How do I create a simple message board (forum)

    I am a BC new-bee. How do I create a simple message board (forum) in BC to use on a Muse site since no widget is available there.

    No worries,
    The simple way should be that:
    open your forum page in Muse
    under "object" > "insert HTML" > paste "{module_forum,a,}"
    click ok
    move the textbox to the right position
    now publish this page to your bc site
    if you have any forums set up in the admin of your site (http://yourdomain.com/admin) it should show you the title of the forum.
    if there are no forums set up, you will need to create a forum in bc (Modules > Forums)
    Try this and let me know how it turned out.
    [ advertising removed by admin ]

  • How can I create a photo album on Dreamweaver CS4?

    How can I create a photo album on Dreamweaver CS4? The button that is supposed to do this (Commands>create photo album) is disabled.

    Hi Nancy, Thank you for your help.   Do you have any idea why the button that creates photo albums in my version of Dreamweaver CS4 is disabled?
    Thank you,  Date: Sat, 19 Jan 2013 12:29:48 -0700
    From: [email protected]
    To: [email protected]
    Subject: How can I create a photo album on Dreamweaver CS4?
        Re: How can I create a photo album on Dreamweaver CS4?
        created by Nancy O. in Dreamweaver General - View the full discussion
    DW is web authoring software.  It's not a photo gallery creation tool. You can build your own own web gallery with HTML or PHP, CSS & JavaScript.  http://alt-web.com/GALLERY/Gallery.php Or you can use commercial products to help you. Project Seven's Image Gallery Magic 2:http://www.projectseven.com/products/galleries/igm2/index.htm jAlbumhttp://jalbum.net/  Nancy O.
         Please note that the Adobe Forums do not accept email attachments. If you want to embed a screen image in your message please visit the thread in the forum to embed the image at http://forums.adobe.com/message/5007136#5007136
         Replies to this message go to everyone subscribed to this thread, not directly to the person who posted the message. To post a reply, either reply to this email or visit the message page: http://forums.adobe.com/message/5007136#5007136
         To unsubscribe from this thread, please visit the message page at http://forums.adobe.com/message/5007136#5007136. In the Actions box on the right, click the Stop Email Notifications link.
         Start a new discussion in Dreamweaver General by email or at Adobe Community
      For more information about maintaining your forum email notifications please go to http://forums.adobe.com/message/2936746#2936746.

  • How can we create such navigation buttons using Flash CS4?

    Hi,
    How can we create such navigation buttons using Flash CS4 is in the following website? Please help me with any such tutorial to make my custom navigation bar/buttons.
    http://city.reallusion.com/join.html
    Thanks.

    While the Note 4 is a reasonably large device it still falls into the phone layout bucket. We need this layout to function on very small screens some as low as 320 pixels high and 240 pixels wide. These sorts of devices don't have the space for a full toolbar.

  • How do I create a simple flare?

    Hello,
    I am a total newbie to AI, so any help/advice would be greatly appreciated.
    I am trying to create a simple flare that will make my light bulb look like it is glowing really bright.  I have been fooling around with the flare tool, but I can not figure out how to change the colors of the flare, etc.
    I want the background of the flare to be transparent so that I can use it on any of my images and the image will show through.  There are 5 different color flares that I need since I have 5 different bulb colors...1 yellow, 1 blue, 1 green, 1 amber, 1 red.  I think that the scale should be about 25% height to 100% width...
    Also, I want the same affect for a lighthouse image that I would like to put together...Like the light from the lighhouse is really bright and a focal
    point.
    Any help?
    thx
    Mike

    There's a multitude of ways to draw flares. But let's explore the Flare Tool a bit more. After all, it's been sitting there occupying primary tool space in the Toolbox for years; might as well use it in the rare times you have occasion for it. To get a sense of the behavior, try the following exercise.
    (The following assumes a CMYK document.):
    Additional tips:
    Like so many Illustrator features, tweaking the settings in the Flare Tool's stupid modal dialog is excruciatingly tedious. Before clicking to create the Flare you are going to adjust, go to the View menu and Hide Edges. Turn on the Preview checkbox in the dialog. Now you'll be able to tell what your adjustments are making are doing, without Illustrator's annoying highlighting of every path in a selected Group. (Absolutely hideous interface. I despise this program!)
    Once you finallyget a Flare that you find useful, drag it and drop it into the Symbols Palette. Then save the Symbol Library somewhere for safe keeping, naming it UsefulFlares. Next time you work with Flares, load the library, even if you need a different Flare. When you manage to create another Flare you find useful, make it a Symbol, and export the Symbol Library again. (Do the same kind of thing with Brushes.)
    Flares stored as Symbols, of course, can also be colorized somewhat by using the Symbol Stainer. That's a quick way to add a little color variance to tiny flares used as stars. But it's rather unpredictable due to the Screen Opacity Mode.
    Don't be afraid to use two different Flares together. Store them together in the same Symbol.
    The highlights of the screw threads on the bulbs are just an ArtBrush made from an expanded radial black-to-white grad, applied off-center to a circle. The ArtBrush is frequently useful for specular lights on cylindrical surfaces. The Brush's colorization mode is set to Hue Shift. (When expanding the grad, remember: There's no need to go nuts with the number of steps. 10 is usually a gracious plenty.) Each screw thread is just a single curved path with two Strokes: A thick black stroke with rounded end caps and an added stroke for the highlight brush.
    JET

  • How can i create a simple netweaver portal page that shows text and images?

    Hi,
    i have a simple question or maybe it's not so simple.
    I am completly new to SAP Netweaver 2004s Portal. At the moment i'm trying to understand the struture of the whole thing. I already know how to create roles, worksets and pages and i know how to combine the different elements so a user can acces them.
    And now i want to create a simple portal page that shows text and images. Is it possible to create such a simple page with the portal content studio? What iView do i have to use?
    (I just want to create a start page with a welcome text on it.)

    Marc
    Considering that you would any ways go ahead with complex development from this simple start page I recommend create a Web dynpro Iview for your start page (include the Iview in your page).
    For putting the contents use Netweaver Developer studio to build a simple start page application and put your static text on that Iview.
    Please go through the following log after your NWDS development is over - This will make you comfortable for further challenging work.
    http://help.sap.com/saphelp_erp2005/helpdata/en/b7/ca934257a5c96ae10000000a155106/frameset.htm
    Do reward points if this helps and let me know of you want anything more.

  • How can you create a simple insert or update trigger

    I am trying to create a simple insert or update trigger to timestamp an xml document when I load it into my XML DB repository but I always get an error trying to compile the trigger.
    "ORA-25003: cannot change NEW values for this column type in trigger"
    Here is my PL/SQL:
    CREATE OR REPLACE TRIGGER "PLCSYSADM"."PLCSYSLOG_TIMESTAMP"
    BEFORE
    INSERT
    OR UPDATE ON "PLCSYSADM"."PLCSYSLOG"
    FOR EACH ROW BEGIN
    :new.sys_nc_rowinfo$ := xmltype('<datestamp>' || SYSDATE || '</datestamp>');
    END;
    Does anyone have an example that works ?
    Thanks in advance
    Niels Montanana

    http://developer.apple.com/referencelibrary/HardwareDrivers/idxUSB-date.html

  • How do I create a simple search program to search java console log

    I wanted to know how can I write a simple program to return a particular value from the java console.
    Let me give u a brief.
    There is an application that I use, say "XYZ".Every time I perform an action on "XYZ" a log gets created in the java console. One such thing in the log I want to search is "ANI" and the program/script shud return the value adjacent to it.
    Log Example:
    NumCTIClients:0 CallType:CALLTYPE_PREROUTE_ACD_IN
    ConnectionDeviceIDType:CONNECTION_ID_DYNAMIC
    ConnectionCallID:4 ConnectionDeviceID:"0"
    ANI:"9782755100" DNIS:"0006"
    DialedNumber:"8002755010" CED:"1"
    RouterCallKeyDay:145000 RouterCallKeyCallID:34320231
    CallVariable1:"1234567" CallVariable2:"0"
    CallVariable3:"0006" CallVariable5:"26000 123-45-6789
    Not Valid " CallVariable6:"1001123-45-6789
    26000000000038404LPCFAA" CallVariable7:"THIBAULT,
    JOHN C. " CallVariable8:"CISCO
    TESPHE " )
    Now my understanding is that whenever java logs in the console it appends at the top, i.e, first record stays on top of the log sheet.
    Now this script/program shud look up the top-most line which reads ANI and return the corresponding value which in the abv ex. was "9782755100"
    I wud also want a small button when clicked wud copy the "9782755100" to the clip board
    Edited by: SasK on Feb 9, 2008 6:09 PM

    dillmann74 wrote:
    Hello all,
    I am looking for a way to terminate a program when the user enters stop. I am using textpad, and I am running windows xp home. Here is where I need it....
    System.out.print( "Enter employee name:" );
    String nameOfEmployee = input.next();
    System.out.println();
    I need to be able to enter stop in the enter employee name area to terminate the program.
    Thank you all for your advice.Do you know about if statements?
    If not check out the java tutorials here
    if you do then I don't understand your question.

  • How can I create a simple chat function in a mobile app for iOS and Android

    I am wondering how can I create a chat function in my mobile app creating in AIR and Flex. The chat should be similar to the one in WhatsApp.
    Do you know some possible solutions?
    Thank you in advance!

    To enable chat messages, you need a server. The kind of server depends on the application. Do you want to create a chat like application like WhatsApp, where the server pushes messages without an active connection? Or do you have some sort of online game, where chat messages can only be transferred when the client is connected already?
    I have an online game where clients are connected to a Java server at all time. From there it is pretty straight forward:
    2 textfields:
    - 1 line textfield for input messages
    - multi-line textfield for chat history. Make sure the textfields autoscrolls to the bottom when the content changes
    on enter or button push, send a socket message to the server.
    the server broadcasts all messages to all clients that are subscribers of the chat group.

  • How do I create a simple "prize draw" program?

    Hey, I'd like to create a simple "prize draw" program
    that randomly selects a name (or number) from a list of names, I'd like it to be my own custom version. For a programmer this is probably the easiest thing but I'm new to programming (beginner), don't eve know if I'm in the right subcategory (flash). Is there a tutorial or something somewhere that you guys think could help me out, please?

    Create the list as an array and use the Math methods to randomly pick one of the values from the array.
    var prizeArray = new Array("name1","name2");
    var drawnPrize = prizeArray[Math.floor(Math.random()*prizeArray.length)];
    trace(drawnPrize);
    If you don't know if you should be using Flash, then you probably don't want to be looking for help until you figure out what you intend to do for your custom design.

  • How do you create a scrolling banner in Dreamweaver CS4?

    How do you create a scrolling banner/marquee in DreamWeaver 4?  I can't find anything about scrolling banners in the documentation or in the several books I've searched.  Thanks.

    Dreameaver can't create something like that out of the box, you need to use some type of script for the 'scrolling' to work.
    This is pretty good, with lots of variations:
    http://sorgalla.com/jcarousel/
    You may find something listed here that may give you an idea:
    http://www.1stwebdesigner.com/resources/57-free-image-gallery-slideshow-and-ligh tbox-solutions/
    or go over to www.jquery.com  (that's one of the popular frameworks being used at the moment for image slidehows/banners/galleries etc).
    Nadia
    Adobe® Community Expert : Dreamweaver
    http://www.perrelink.com.au
    Unique CSS Templates |Tutorials |SEO Articles
    http://www.DreamweaverResources.com
    http://csstemplates.com.au/
    http://twitter.com/nadiap

  • How do I create a simple writeable template that will load to any PDF invoice

    Hi there, I am wanting to use a word template (or writeable PDF template) to superimpose (cut and paste) onto a PDF invoice we receive by email. The goal is to allow us to code directly on to the PDF received. I have tried a few options but they all are time consuming.
    Can you please recommend the simplest method to code direct on to the invoice copy (that a manager can then sign off when the email is forwarded to him/her) with the invoice and amendment attached.
    Many thanks
    Danny Kennedy

    Try the attached example. Be careful though - if you make changes to this VI, make sure you save it before you run it, as it closes itself, and you will loose any unsaved changes...
    Copyright © 2004-2015 Christopher G. Relf. Some Rights Reserved. This posting is licensed under a Creative Commons Attribution 2.5 License.
    Attachments:
    Splash_Screen_and_Launcher.vi ‏54 KB

  • How do I create a simple button animation?

    I am very new to flash although I did do some  movies in Adobe Live Motion when it was available.  I am trying to recreate a nav bar that I did in Live Motion, in Flash CS4.  I have done a little research but found no direct answers.
    I have a simple graphic of a tin can. (I will end up using 8 different instances of this graphic for my nav bar.) There is a line of text above the tin can. I want to make this all a button that when mouse is over the can rotates once clockwise  and the text changes color.  When mouse is out it goes back to the normal up state.  When clicked I want to go to a web page.
    That is it.  If I can learn how to do one I will be fine.
    I would be ever so grateful for help with this.

    I did, by the way, change the publish settings to as2.  Thanks for that info!
    All works but the  mouseover.  The tin can continuously rotates instead of just once. The text changes color ok but flickers (from up to over) - again and again until mouseout. And the link works when clicked on either text or tin can.
    So everything you gave me was correct but I have done something wrong with the over animation.
    My  movie clip is as follows.  The instance is named btn1.
    layer 3 = actions layer
    layer 2 = text
    layer 1 = tin can
    frames 1 - 5 labeled "up" with stop action in frame 1.
    frames 6 - 10 labeled over with tin can (layer 1) being a 5 frame tween using 1 rotation from the property panel
    Scene 1 has 3 layers.
    layer 1 = background - locked
    layer 2 = btn1 movie clip
    layer 3 = actions - with your code in frame 1
    Again, any help will be appreciated.

  • HOW do I create a SIMPLE fading slideshow in dreamweaver CS5?????

    I would like to have a slow fading slideshow of a few images relating to the web page that the user is on.
    I have a seperate div tag, with the space 235 x 440 pixels allowed for the images. All I want is the slideshow to fade in and out of one another using 3 or 4 photos, no text, no control panel or thumbnails or any other frills, just basic good quality photos fading in a looped slideshow.
    I just want that when the page loads up that the slideshow starts automatically and slowly loops continuously until the user changes page.
    I have seen animated gifs from photoshop, which are no good because the image quality is awful, and in fireworks, where it comes with either thumbnails or a control panel for the user to navigate manually the images. I don't want that. Can it be done easily in flash? or does dreamweaver have an answer?
    Surely there must be a simple and basic way in dreamweaver alone to just swap/fade an image with another image a few times and thats that? no?
    If it can't be done in dreamweaver, PLEASE tell me which program it can be done in and how.
    Many many many thanks in advance for anyone with an easily explained solution.
    Ian.

    Here is the code in my header:
    <!-- include jQuery library --><script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script><!-- include Cycle plugin --><script type="text/javascript" src="http://aap.org/international/jquery.cycle.all.latest.js"></script><script type="text/javascript">$(document).ready(function() {    $('.slideshow').cycle({          fx: 'fade' // choose your transition type, ex: fade, scrollUp, shuffle, etc...     });});</script>
    Here is the code in the body part of my page:
    <div class="slideshow"><img alt="one" src="img/WebsiteSlideshow/_Terrell_IL SnJessieJackson.jpg" width="592" height="509" /><img alt="dcsn" src="img/WebsiteSlideshow/ONEorg 1.JPEG" width="592" height="509" /><img alt="one2" src="img/WebsiteSlideshow/ONEorg.JPG" width="592" height="509" /><img alt="saltlakecity" src="img/WebsiteSlideshow/ShotatLifeSaltLakeCity.JPG" width="592" height="509" /><img alt="saltlakecity" src="img/WebsiteSlideshow/Dr Sato, Ohio ONE vols and Portman.jpg" width="592" height="502" /><img alt="saltlakecity" src="img/WebsiteSlideshow/photo_4.jpg" width="592" height="509" /><img alt="saltlakecity" src="img/WebsiteSlideshow/UNEP4 Mtg.jpeg" width="592" height="509" /><img alt="saltlakecity" src="img/WebsiteSlideshow/DSCN2035.jpg" width="592" height="509" /></div>
    Here is the code in the jquery site:
    <!DOCTYPE html>
    <html>
    <head>
    <title>JQuery Cycle Plugin - Basic Demo</title>
    <style type="text/css">
    .slideshow { height: 232px; width: 232px; margin: auto; overflow: hidden; }
    .slideshow img { padding: 15px; border: 1px solid #ccc; background-color: #eee; }
    </style>
    <!-- include jQuery library -->
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    <!-- include Cycle plugin -->
    <script type="text/javascript" src="http://aap.org/international/jquery.cycle.all.latest.js"></script>
    <script type="text/javascript">
    $(document).ready(function() {
        $('.slideshow').cycle({
              fx: 'fade' // choose your transition type, ex: fade, scrollUp, shuffle, etc...
    </script>
    </head>
    <body>
    <div class="slideshow">
              <img src="img/WebsiteSlideshow/_Terrell_IL SnJessieJackson.jpg" width="592" height="509" />
              <img src="<img src="img/WebsiteSlideshow/DSCN2051.JPG"  width="592" height="509" />
              <img src="img/WebsiteSlideshow/ONEorg.JPG" width="592" height="509" />
              <img src="img/WebsiteSlideshow/ShotatLifeSaltLakeCity.JPG" width="592" height="509" />
              <img src="img/WebsiteSlideshow/Dr Sato, Ohio ONE vols and Portman.jpg" width="592" height="502" />
        <img src="img/WebsiteSlideshow/photo_4.jpg" width="592" height="509" />
        <img src="img/WebsiteSlideshow/UNEP4 Mtg.jpeg" width="592" height="509" />
        <img src="img/WebsiteSlideshow/DSCN2035.jpg" width="592" height="509" />
         <img src="img/WebsiteSlideshow/DSCN2052.JPG" width="592" height="509" />
      </div>
    </body>
    </html>
    // process the args that were passed to the plugin fn
    function handleArguments(cont, 1, fade) {
    if (cont.cycleStop == undefined)
      cont.cycleStop = 0;
    if (options === undefined || options === null)
      options = {};
    if (options.constructor == String) {
      switch(options) {
      case 'destroy':
      case 'stop':
       var opts = $(cont).data('cycle.opts');
       if (!opts)
        return false;
       cont.cycleStop++; // callbacks look for change
       if (cont.cycleTimeout)
        clearTimeout(cont.cycleTimeout);
       cont.cycleTimeout = 0;
       $(cont).removeData('cycle.opts');
       if (options == 'destroy')
        destroy(opts);
       return false;
      case 'toggle':
       cont.cyclePause = (cont.cyclePause === 1) ? 0 : 1;
       checkInstantResume(cont.cyclePause, arg2, cont);
       return false;
      case 'pause':
       cont.cyclePause = 1;
       return false;
      case 'resume':
       cont.cyclePause = 0;
       checkInstantResume(false, arg2, cont);
       return false;
      case 'prev':
      case 'next':
       var opts = $(cont).data('cycle.opts');
       if (!opts) {
        log('options not found, "prev/next" ignored');
        return false;
       $.fn.cycle[options](opts);
       return false;
      default:
       options = { fx: options };
      return options;
    else if (options.constructor == Number) {
      // go to the requested slide
      var num = options;
      options = $(cont).data('cycle.opts');
      if (!options) {
       log('options not found, can not advance slide');
       return false;
      if (num < 0 || num >= options.elements.length) {
       log('invalid slide index: ' + num);
       return false;
      options.nextSlide = num;
      if (cont.cycleTimeout) {
       clearTimeout(cont.cycleTimeout);
       cont.cycleTimeout = 0;
      if (typeof arg2 == 'string')
       options.oneTimeFx = arg2;
      go(options.elements, options, 1, num >= options.currSlide);
      return false;
    return options;
    function checkInstantResume(isPaused, arg2, cont) {
      if (!isPaused && arg2 === true) { // resume now!
       var options = $(cont).data('cycle.opts');
       if (!options) {
        log('options not found, can not resume');
        return false;
       if (cont.cycleTimeout) {
        clearTimeout(cont.cycleTimeout);
        cont.cycleTimeout = 0;
       go(options.elements, options, 1, (!opts.rev && !opts.backwards));
    function removeFilter(el, opts) {
    if (!$.support.opacity && opts.cleartype && el.style.filter) {
      try { el.style.removeAttribute('filter'); }
      catch(smother) {} // handle old opera versions
    // unbind event handlers
    function destroy(opts) {
    if (opts.next)
      $(opts.next).unbind(opts.prevNextEvent);
    if (opts.prev)
      $(opts.prev).unbind(opts.prevNextEvent);
    if (opts.pager || opts.pagerAnchorBuilder)
      $.each(opts.pagerAnchors || [], function() {
       this.unbind().remove();
    opts.pagerAnchors = null;
    if (opts.destroy) // callback
      opts.destroy(opts);
    // one-time initialization
    function buildOptions($cont, $slides, els, options, o) {
    // support metadata plugin (v1.0 and v2.0)
    var opts = $.extend({}, $.fn.cycle.defaults, options || {}, $.metadata ? $cont.metadata() : $.meta ? $cont.data() : {});
    if (opts.autostop)
      opts.countdown = opts.autostopCount || els.length;
    var cont = $cont[0];
    $cont.data('cycle.opts', opts);
    opts.$cont = $cont;
    opts.stopCount = cont.cycleStop;
    opts.elements = els;
    opts.before = opts.before ? [opts.before] : [];
    opts.after = opts.after ? [opts.after] : [];
    opts.after.unshift(function(){ opts.busy=0; });
    // push some after callbacks
    if (!$.support.opacity && opts.cleartype)
      opts.after.push(function() { removeFilter(this, opts); });
    if (opts.continuous)
      opts.after.push(function() { go(els,opts,0,(!opts.rev && !opts.backwards)); });
    saveOriginalOpts(opts);
    // clearType corrections
    if (!$.support.opacity && opts.cleartype && !opts.cleartypeNoBg)
      clearTypeFix($slides);
    // container requires non-static position so that slides can be position within
    if ($cont.css('position') == 'static')
      $cont.css('position', 'relative');
    if (opts.width)
      $cont.width(opts.width);
    if (opts.height && opts.height != 'auto')
      $cont.height(opts.height);
    if (opts.startingSlide)
      opts.startingSlide = parseInt(opts.startingSlide);
    else if (opts.backwards)
      opts.startingSlide = els.length - 1;
    // if random, mix up the slide array
    if (opts.random) {
      opts.randomMap = [];
      for (var i = 0; i < els.length; i++)
       opts.randomMap.push(i);
      opts.randomMap.sort(function(a,b) {return Math.random() - 0.5;});
      opts.randomIndex = 1;
      opts.startingSlide = opts.randomMap[1];
    else if (opts.startingSlide >= els.length)
      opts.startingSlide = 0; // catch bogus input
    opts.currSlide = opts.startingSlide || 0;
    var first = opts.startingSlide;
    // set position and zIndex on all the slides
    $slides.css({position: 'absolute', top:0, left:0}).hide().each(function(i) {
      var z;
      if (opts.backwards)
       z = first ? i <= first ? els.length + (i-first) : first-i : els.length-i;
      else
       z = first ? i >= first ? els.length - (i-first) : first-i : els.length-i;
      $(this).css('z-index', z)
    // make sure first slide is visible
    $(els[first]).css('opacity',1).show(); // opacity bit needed to handle restart use case
    removeFilter(els[first], opts);
    // stretch slides
    if (opts.fit && opts.width)
      $slides.width(opts.width);
    if (opts.fit && opts.height && opts.height != 'auto')
      $slides.height(opts.height);
    // stretch container
    var reshape = opts.containerResize && !$cont.innerHeight();
    if (reshape) { // do this only if container has no size http://tinyurl.com/da2oa9
      var maxw = 0, maxh = 0;
      for(var j=0; j < els.length; j++) {
       var $e = $(els[j]), e = $e[0], w = $e.outerWidth(), h = $e.outerHeight();
       if (!w) w = e.offsetWidth || e.width || $e.attr('width')
       if (!h) h = e.offsetHeight || e.height || $e.attr('height');
       maxw = w > maxw ? w : maxw;
       maxh = h > maxh ? h : maxh;
      if (maxw > 0 && maxh > 0)
       $cont.css({width:maxw+'px',height:maxh+'px'});
    if (opts.pause)
      $cont.hover(function(){this.cyclePause++;},function(){this.cyclePause--;});
    if (supportMultiTransitions(opts) === false)
      return false;
    // apparently a lot of people use image slideshows without height/width attributes on the images.
    // Cycle 2.50+ requires the sizing info for every slide; this block tries to deal with that.
    var requeue = false;
    options.requeueAttempts = options.requeueAttempts || 0;
    $slides.each(function() {
      // try to get height/width of each slide
      var $el = $(this);
      this.cycleH = (opts.fit && opts.height) ? opts.height : ($el.height() || this.offsetHeight || this.height || $el.attr('height') || 0);
      this.cycleW = (opts.fit && opts.width) ? opts.width : ($el.width() || this.offsetWidth || this.width || $el.attr('width') || 0);
      if ( $el.is('img') ) {
       // sigh..  sniffing, hacking, shrugging...  this crappy hack tries to account for what browsers do when
       // an image is being downloaded and the markup did not include sizing info (height/width attributes);
       // there seems to be some "default" sizes used in this situation
       var loadingIE = ($.browser.msie  && this.cycleW == 28 && this.cycleH == 30 && !this.complete);
       var loadingFF = ($.browser.mozilla && this.cycleW == 34 && this.cycleH == 19 && !this.complete);
       var loadingOp = ($.browser.opera && ((this.cycleW == 42 && this.cycleH == 19) || (this.cycleW == 37 && this.cycleH == 17)) && !this.complete);
       var loadingOther = (this.cycleH == 0 && this.cycleW == 0 && !this.complete);
       // don't requeue for images that are still loading but have a valid size
       if (loadingIE || loadingFF || loadingOp || loadingOther) {
        if (o.s && opts.requeueOnImageNotLoaded && ++options.requeueAttempts < 100) { // track retry count so we don't loop forever
         log(options.requeueAttempts,' - img slide not loaded, requeuing slideshow: ', this.src, this.cycleW, this.cycleH);
         setTimeout(function() {$(o.s,o.c).cycle(options)}, opts.requeueTimeout);
         requeue = true;
         return false; // break each loop
        else {
         log('could not determine size of image: '+this.src, this.cycleW, this.cycleH);
      return true;
    if (requeue)
      return false;
    opts.cssBefore = opts.cssBefore || {};
    opts.animIn = opts.animIn || {};
    opts.animOut = opts.animOut || {};
    $slides.not(':eq('+first+')').css(opts.cssBefore);
    if (opts.cssFirst)
      $($slides[first]).css(opts.cssFirst);
    if (opts.timeout) {
      opts.timeout = parseInt(opts.timeout);
      // ensure that timeout and speed settings are sane
      if (opts.speed.constructor == String)
       opts.speed = $.fx.speeds[opts.speed] || parseInt(opts.speed);
      if (!opts.sync)
       opts.speed = opts.speed / 2;
      var buffer = opts.fx == 'shuffle' ? 500 : 250;
      while((opts.timeout - opts.speed) < buffer) // sanitize timeout
       opts.timeout += opts.speed;
    if (opts.easing)
      opts.easeIn = opts.easeOut = opts.easing;
    if (!opts.speedIn)
      opts.speedIn = opts.speed;
    if (!opts.speedOut)
      opts.speedOut = opts.speed;
    opts.slideCount = els.length;
    opts.currSlide = opts.lastSlide = first;
    if (opts.random) {
      if (++opts.randomIndex == els.length)
       opts.randomIndex = 0;
      opts.nextSlide = opts.randomMap[opts.randomIndex];
    else if (opts.backwards)
      opts.nextSlide = opts.startingSlide == 0 ? (els.length-1) : opts.startingSlide-1;
    else
      opts.nextSlide = opts.startingSlide >= (els.length-1) ? 0 : opts.startingSlide+1;
    // run transition init fn
    if (!opts.multiFx) {
      var init = $.fn.cycle.transitions[opts.fx];
      if ($.isFunction(init))
       init($cont, $slides, opts);
      else if (opts.fx != 'custom' && !opts.multiFx) {
       log('unknown transition: ' + opts.fx,'; slideshow terminating');
       return false;
    // fire artificial events
    var e0 = $slides[first];
    if (opts.before.length)
      opts.before[0].apply(e0, [e0, e0, opts, true]);
    if (opts.after.length > 1)
      opts.after[1].apply(e0, [e0, e0, opts, true]);
    if (opts.next)
      $(opts.next).bind(opts.prevNextEvent,function(){return advance(opts,opts.rev?-1:1)});
    if (opts.prev)
      $(opts.prev).bind(opts.prevNextEvent,function(){return advance(opts,opts.rev?1:-1)});
    if (opts.pager || opts.pagerAnchorBuilder)
      buildPager(els,opts);
    exposeAddSlide(opts, els);
    return opts;
    // save off original opts so we can restore after clearing state
    function saveOriginalOpts(opts) {
    opts.original = { before: [], after: [] };
    opts.original.cssBefore = $.extend({}, opts.cssBefore);
    opts.original.cssAfter  = $.extend({}, opts.cssAfter);
    opts.original.animIn = $.extend({}, opts.animIn);
    opts.original.animOut   = $.extend({}, opts.animOut);
    $.each(opts.before, function() { opts.original.before.push(this); });
    $.each(opts.after,  function() { opts.original.after.push(this); });
    function supportMultiTransitions(opts) {
    var i, tx, txs = $.fn.cycle.transitions;
    // look for multiple effects
    if (opts.fx.indexOf(',') > 0) {
      opts.multiFx = true;
      opts.fxs = opts.fx.replace(/\s*/g,'').split(',');
      // discard any bogus effect names
      for (i=0; i < opts.fxs.length; i++) {
       var fx = opts.fxs[i];
       tx = txs[fx];
       if (!tx || !txs.hasOwnProperty(fx) || !$.isFunction(tx)) {
        log('discarding unknown transition: ',fx);
        opts.fxs.splice(i,1);
        i--;
      // if we have an empty list then we threw everything away!
      if (!opts.fxs.length) {
       log('No valid transitions named; slideshow terminating.');
       return false;
    else if (opts.fx == 'all') {  // auto-gen the list of transitions
      opts.multiFx = true;
      opts.fxs = [];
      for (p in txs) {
       tx = txs[p];
       if (txs.hasOwnProperty(p) && $.isFunction(tx))
        opts.fxs.push(p);
    if (opts.multiFx && opts.randomizeEffects) {
      // munge the fxs array to make effect selection random
      var r1 = Math.floor(Math.random() * 20) + 30;
      for (i = 0; i < r1; i++) {
       var r2 = Math.floor(Math.random() * opts.fxs.length);
       opts.fxs.push(opts.fxs.splice(r2,1)[0]);
      debug('randomized fx sequence: ',opts.fxs);
    return true;
    // provide a mechanism for adding slides after the slideshow has started
    function exposeAddSlide(opts, els) {
    opts.addSlide = function(newSlide, prepend) {
      var $s = $(newSlide), s = $s[0];
      if (!opts.autostopCount)
       opts.countdown++;
      els[prepend?'unshift':'push'](s);
      if (opts.els)
       opts.els[prepend?'unshift':'push'](s); // shuffle needs this
      opts.slideCount = els.length;
      $s.css('position','absolute');
      $s[prepend?'prependTo':'appendTo'](opts.$cont);
      if (prepend) {
       opts.currSlide++;
       opts.nextSlide++;
      if (!$.support.opacity && opts.cleartype && !opts.cleartypeNoBg)
       clearTypeFix($s);
      if (opts.fit && opts.width)
       $s.width(opts.width);
      if (opts.fit && opts.height && opts.height != 'auto')
       $slides.height(opts.height);
      s.cycleH = (opts.fit && opts.height) ? opts.height : $s.height();
      s.cycleW = (opts.fit && opts.width) ? opts.width : $s.width();
      $s.css(opts.cssBefore);
      if (opts.pager || opts.pagerAnchorBuilder)
       $.fn.cycle.createPagerAnchor(els.length-1, s, $(opts.pager), els, opts);
      if ($.isFunction(opts.onAddSlide))
       opts.onAddSlide($s);
      else
       $s.hide(); // default behavior
    // reset internal state; we do this on every pass in order to support multiple effects
    $.fn.cycle.resetState = function(opts, fx) {
    fx = fx || opts.fx;
    opts.before = []; opts.after = [];
    opts.cssBefore = $.extend({}, opts.original.cssBefore);
    opts.cssAfter  = $.extend({}, opts.original.cssAfter);
    opts.animIn = $.extend({}, opts.original.animIn);
    opts.animOut   = $.extend({}, opts.original.animOut);
    opts.fxFn = null;
    $.each(opts.original.before, function() { opts.before.push(this); });
    $.each(opts.original.after,  function() { opts.after.push(this); });
    // re-init
    var init = $.fn.cycle.transitions[fx];
    if ($.isFunction(init))
      init(opts.$cont, $(opts.elements), opts);
    // this is the main engine fn, it handles the timeouts, callbacks and slide index mgmt
    function go(els, opts, manual, fwd) {
    // opts.busy is true if we're in the middle of an animation
    if (manual && opts.busy && opts.manualTrump) {
      // let manual transitions requests trump active ones
      debug('manualTrump in go(), stopping active transition');
      $(els).stop(true,true);
      opts.busy = false;
    // don't begin another timeout-based transition if there is one active
    if (opts.busy) {
      debug('transition active, ignoring new tx request');
      return;
    var p = opts.$cont[0], curr = els[opts.currSlide], next = els[opts.nextSlide];
    // stop cycling if we have an outstanding stop request
    if (p.cycleStop != opts.stopCount || p.cycleTimeout === 0 && !manual)
      return;
    // check to see if we should stop cycling based on autostop options
    if (!manual && !p.cyclePause && !opts.bounce &&
      ((opts.autostop && (--opts.countdown <= 0)) ||
      (opts.nowrap && !opts.random && opts.nextSlide < opts.currSlide))) {
      if (opts.end)
       opts.end(opts);
      return;
    // if slideshow is paused, only transition on a manual trigger
    var changed = false;
    if ((manual || !p.cyclePause) && (opts.nextSlide != opts.currSlide)) {
      changed = true;
      var fx = opts.fx;
      // keep trying to get the slide size if we don't have it yet
      curr.cycleH = curr.cycleH || $(curr).height();
      curr.cycleW = curr.cycleW || $(curr).width();
      next.cycleH = next.cycleH || $(next).height();
      next.cycleW = next.cycleW || $(next).width();
      // support multiple transition types
      if (opts.multiFx) {
       if (opts.lastFx == undefined || ++opts.lastFx >= opts.fxs.length)
        opts.lastFx = 0;
       fx = opts.fxs[opts.lastFx];
       opts.currFx = fx;
      // one-time fx overrides apply to:  $('div').cycle(3,'zoom');
      if (opts.oneTimeFx) {
       fx = opts.oneTimeFx;
       opts.oneTimeFx = null;
      $.fn.cycle.resetState(opts, fx);
      // run the before callbacks
      if (opts.before.length)
       $.each(opts.before, function(i,o) {
        if (p.cycleStop != opts.stopCount) return;
        o.apply(next, [curr, next, opts, fwd]);
      // stage the after callacks
      var after = function() {
       $.each(opts.after, function(i,o) {
        if (p.cycleStop != opts.stopCount) return;
        o.apply(next, [curr, next, opts, fwd]);
      debug('tx firing; currSlide: ' + opts.currSlide + '; nextSlide: ' + opts.nextSlide);
      // get ready to perform the transition
      opts.busy = 1;
      if (opts.fxFn) // fx function provided?
       opts.fxFn(curr, next, opts, after, fwd, manual && opts.fastOnEvent);
      else if ($.isFunction($.fn.cycle[opts.fx])) // fx plugin ?
       $.fn.cycle[opts.fx](curr, next, opts, after, fwd, manual && opts.fastOnEvent);
      else
       $.fn.cycle.custom(curr, next, opts, after, fwd, manual && opts.fastOnEvent);
    if (changed || opts.nextSlide == opts.currSlide) {
      // calculate the next slide
      opts.lastSlide = opts.currSlide;
      if (opts.random) {
       opts.currSlide = opts.nextSlide;
       if (++opts.randomIndex == els.length)
        opts.randomIndex = 0;
       opts.nextSlide = opts.randomMap[opts.randomIndex];
       if (opts.nextSlide == opts.currSlide)
        opts.nextSlide = (opts.currSlide == opts.slideCount - 1) ? 0 : opts.currSlide + 1;
      else if (opts.backwards) {
       var roll = (opts.nextSlide - 1) < 0;
       if (roll && opts.bounce) {
        opts.backwards = !opts.backwards;
        opts.nextSlide = 1;
        opts.currSlide = 0;
       else {
        opts.nextSlide = roll ? (els.length-1) : opts.nextSlide-1;
        opts.currSlide = roll ? 0 : opts.nextSlide+1;
      else { // sequence
       var roll = (opts.nextSlide + 1) == els.length;
       if (roll && opts.bounce) {
        opts.backwards = !opts.backwards;
        opts.nextSlide = els.length-2;
        opts.currSlide = els.length-1;
       else {
        opts.nextSlide = roll ? 0 : opts.nextSlide+1;
        opts.currSlide = roll ? els.length-1 : opts.nextSlide-1;
    if (changed && opts.pager)
      opts.updateActivePagerLink(opts.pager, opts.currSlide, opts.activePagerClass);
    // stage the next transition
    var ms = 0;
    if (opts.timeout && !opts.continuous)
      ms = getTimeout(els[opts.currSlide], els[opts.nextSlide], opts, fwd);
    else if (opts.continuous && p.cyclePause) // continuous shows work off an after callback, not this timer logic
      ms = 10;
    if (ms > 0)
      p.cycleTimeout = setTimeout(function(){ go(els, opts, 0, (!opts.rev && !opts.backwards)) }, ms);
    // invoked after transition
    $.fn.cycle.updateActivePagerLink = function(pager, currSlide, clsName) {
       $(pager).each(function() {
           $(this).children().removeClass(clsName).eq(currSlide).addClass(clsName);
    // calculate timeout value for current transition
    function getTimeout(curr, next, opts, fwd) {
    if (opts.timeoutFn) {
      // call user provided calc fn
      var t = opts.timeoutFn.call(curr,curr,next,opts,fwd);
      while ((t - opts.speed) < 250) // sanitize timeout
       t += opts.speed;
      debug('calculated timeout: ' + t + '; speed: ' + opts.speed);
      if (t !== false)
       return t;
    return opts.timeout;
    // expose next/prev function, caller must pass in state
    $.fn.cycle.next = function(opts) { advance(opts, opts.rev?-1:1); };
    $.fn.cycle.prev = function(opts) { advance(opts, opts.rev?1:-1);};
    // advance slide forward or back
    function advance(opts, val) {
    var els = opts.elements;
    var p = opts.$cont[0], timeout = p.cycleTimeout;
    if (timeout) {
      clearTimeout(timeout);
      p.cycleTimeout = 0;
    if (opts.random && val < 0) {
      // move back to the previously display slide
      opts.randomIndex--;
      if (--opts.randomIndex == -2)
       opts.randomIndex = els.length-2;
      else if (opts.randomIndex == -1)
       opts.randomIndex = els.length-1;
      opts.nextSlide = opts.randomMap[opts.randomIndex];
    else if (opts.random) {
      opts.nextSlide = opts.randomMap[opts.randomIndex];
    else {
      opts.nextSlide = opts.currSlide + val;
      if (opts.nextSlide < 0) {
       if (opts.nowrap) return false;
       opts.nextSlide = els.length - 1;
      else if (opts.nextSlide >= els.length) {
       if (opts.nowrap) return false;
       opts.nextSlide = 0;
    var cb = opts.onPrevNextEvent || opts.prevNextClick; // prevNextClick is deprecated
    if ($.isFunction(cb))
      cb(val > 0, opts.nextSlide, els[opts.nextSlide]);
    go(els, opts, 1, val>=0);
    return false;
    function buildPager(els, opts) {
    var $p = $(opts.pager);
    $.each(els, function(i,o) {
      $.fn.cycle.createPagerAnchor(i,o,$p,els,opts);
    opts.updateActivePagerLink(opts.pager, opts.startingSlide, opts.activePagerClass);
    $.fn.cycle.createPagerAnchor = function(i, el, $p, els, opts) {
    var a;
    if ($.isFunction(opts.pagerAnchorBuilder)) {
      a = opts.pagerAnchorBuilder(i,el);
      debug('pagerAnchorBuilder('+i+', el) returned: ' + a);
    else
      a = '<a href="#">'+(i+1)+'</a>';
    if (!a)
      return;
    var $a = $(a);
    // don't reparent if anchor is in the dom
    if ($a.parents('body').length === 0) {
      var arr = [];
      if ($p.length > 1) {
       $p.each(function() {
        var $clone = $a.clone(true);
        $(this).append($clone);
        arr.push($clone[0]);
       $a = $(arr);
      else {
       $a.appendTo($p);
    opts.pagerAnchors =  opts.pagerAnchors || [];
    opts.pagerAnchors.push($a);
    $a.bind(opts.pagerEvent, function(e) {
      e.preventDefault();
      opts.nextSlide = i;
      var p = opts.$cont[0], timeout = p.cycleTimeout;
      if (timeout) {
       clearTimeout(timeout);
       p.cycleTimeout = 0;
      var cb = opts.onPagerEvent || opts.pagerClick; // pagerClick is deprecated
      if ($.isFunction(cb))
       cb(opts.nextSlide, els[opts.nextSlide]);
      go(els,opts,1,opts.currSlide < i); // trigger the trans
    //  return false; // <== allow bubble
    if ( ! /^click/.test(opts.pagerEvent) && !opts.allowPagerClickBubble)
      $a.bind('click.cycle', function(){return false;}); // suppress click
    if (opts.pauseOnPagerHover)
      $a.hover(function() { opts.$cont[0].cyclePause++; }, function() { opts.$cont[0].cyclePause--; } );
    // helper fn to calculate the number of slides between the current and the next
    $.fn.cycle.hopsFromLast = function(opts, fwd) {
    var hops, l = opts.lastSlide, c = opts.currSlide;
    if (fwd)
      hops = c > l ? c - l : opts.slideCount - l;
    else
      hops = c < l ? l - c : l + opts.slideCount - c;
    return hops;
    // fix clearType problems in ie6 by setting an explicit bg color
    // (otherwise text slides look horrible during a fade transition)
    function clearTypeFix($slides) {
    debug('applying clearType background-color hack');
    function hex(s) {
      s = parseInt(s).toString(16);
      return s.length < 2 ? '0'+s : s;
    function getBg(e) {
      for ( ; e && e.nodeName.toLowerCase() != 'html'; e = e.parentNode) {
       var v = $.css(e,'background-color');
       if (v.indexOf('rgb') >= 0 ) {
        var rgb = v.match(/\d+/g);
        return '#'+ hex(rgb[0]) + hex(rgb[1]) + hex(rgb[2]);
       if (v && v != 'transparent')
        return v;
      return '#ffffff';
    $slides.each(function() { $(this).css('background-color', getBg(this)); });
    // reset common props before the next transition
    $.fn.cycle.commonReset = function(curr,next,opts,w,h,rev) {
    $(opts.elements).not(curr).hide();
    opts.cssBefore.opacity = 1;
    opts.cssBefore.display = 'block';
    if (w !== false && next.cycleW > 0)
      opts.cssBefore.width = next.cycleW;
    if (h !== false && next.cycleH > 0)
      opts.cssBefore.height = next.cycleH;
    opts.cssAfter = opts.cssAfter || {};
    opts.cssAfter.display = 'none';
    $(curr).css('zIndex',opts.slideCount + (rev === true ? 1 : 0));
    $(next).css('zIndex',opts.slideCount + (rev === true ? 0 : 1));
    // the actual fn for effecting a transition
    $.fn.cycle.custom = function(curr, next, opts, cb, fwd, speedOverride) {
    var $l = $(curr), $n = $(next);
    var speedIn = opts.speedIn, speedOut = opts.speedOut, easeIn = opts.easeIn, easeOut = opts.easeOut;
    $n.css(opts.cssBefore);
    if (speedOverride) {
      if (typeof speedOverride == 'number')
       speedIn = speedOut = speedOverride;
      else
       speedIn = speedOut = 1;
      easeIn = easeOut = null;
    var fn = function() {$n.animate(opts.animIn, speedIn, easeIn, cb)};
    $l.animate(opts.animOut, speedOut, easeOut, function() {
      if (opts.cssAfter) $l.css(opts.cssAfter);
      if (!opts.sync) fn();
    if (opts.sync) fn();
    // transition definitions - only fade is defined here, transition pack defines the rest
    $.fn.cycle.transitions = {
    fade: function($cont, $slides, opts) {
      $slides.not(':eq('+opts.currSlide+')').css('opacity',0);
      opts.before.push(function(curr,next,opts) {
       $.fn.cycle.commonReset(curr,next,opts);
       opts.cssBefore.opacity = 0;
      opts.animIn    = { opacity: 1 };
      opts.animOut   = { opacity: 0 };
      opts.cssBefore = { top: 0, left: 0 };
    $.fn.cycle.ver = function() { return ver; };
    // override these globally if you like (they are all optional)
    $.fn.cycle.defaults = {
    fx:     'fade', // name of transition effect (or comma separated names, ex: 'fade,scrollUp,shuffle')
    timeout:    4000,  // milliseconds between slide transitions (0 to disable auto advance)
    timeoutFn:     null,  // callback for determining per-slide timeout value:  function(currSlideElement, nextSlideElement, options, forwardFlag)
    continuous:    0,   // true to start next transition immediately after current one completes
    speed:     1000,  // speed of the transition (any valid fx speed value)
    speedIn:    null,  // speed of the 'in' transition
    speedOut:    null,  // speed of the 'out' transition
    next:     null,  // selector for element to use as event trigger for next slide
    prev:     null,  // selector for element to use as event trigger for previous slide
    // prevNextClick: null,  // @deprecated; please use onPrevNextEvent instead
    onPrevNextEvent: null,  // callback fn for prev/next events: function(isNext, zeroBasedSlideIndex, slideElement)
    prevNextEvent:'click.cycle',// event which drives the manual transition to the previous or next slide
    pager:     null,  // selector for element to use as pager container
    //pagerClick   null,  // @deprecated; please use onPagerEvent instead
    onPagerEvent:  null,  // callback fn for pager events: function(zeroBasedSlideIndex, slideElement)
    pagerEvent:   'click.cycle', // name of event which drives the pager navigation
    allowPagerClickBubble: false, // allows or prevents click event on pager anchors from bubbling
    pagerAnchorBuilder: null, // callback fn for building anchor links:  function(index, DOMelement)
    before:     null,  // transition callback (scope set to element to be shown):  function(currSlideElement, nextSlideElement, options, forwardFlag)
    after:     null,  // transition callback (scope set to element that was shown):  function(currSlideElement, nextSlideElement, options, forwardFlag)
    end:     null,  // callback invoked when the slideshow terminates (use with autostop or nowrap options): function(options)
    easing:     null,  // easing method for both in and out transitions
    easeIn:     null,  // easing for "in" transition
    easeOut:    null,  // easing for "out" transition
    shuffle:    null,  // coords for shuffle animation, ex: { top:15, left: 200 }
    animIn:     null,  // properties that define how the slide animates in
    animOut:    null,  // properties that define how the slide animates out
    cssBefore:    null,  // properties that define the initial state of the slide before transitioning in
    cssAfter:    null,  // properties that defined the state of the slide after transitioning out
    fxFn:     null,  // function used to control the transition: function(currSlideElement, nextSlideElement, options, afterCalback, forwardFlag)
    height:    'auto', // container height
    startingSlide: 0,   // zero-based index of the first slide to be displayed
    sync:     1,   // true if in/out transitions should occur simultaneously
    random:     0,   // true for random, false for sequence (not applicable to shuffle fx)
    fit:     0,   // force slides to fit container
    containerResize: 1,   // resize container to fit largest slide
    pause:     0,   // true to enable "pause on hover"
    pauseOnPagerHover: 0, // true to pause when hovering over pager link
    autostop:    0,   // true to end slideshow after X transitions (where X == slide count)
    autostopCount: 0,   // number of transitions (optionally used with autostop to define X)
    delay:     0,   // additional delay (in ms) for first transition (hint: can be negative)
    slideExpr:    null,  // expression for selecting slides (if something other than all children is required)
    cleartype:    !$.support.opacity,  // true if clearType corrections should be applied (for IE)
    cleartypeNoBg: false, // set to true to disable extra cleartype fixing (leave false to force background color setting on slides)
    nowrap:     0,   // true to prevent slideshow from wrapping
    fastOnEvent:   0,   // force fast transitions when triggered manually (via pager or prev/next); value == time in ms
    randomizeEffects: 1,  // valid when multiple effects are used; true to make the effect sequence random
    rev:     0,  // causes animations to transition in reverse
    manualTrump:   true,  // causes manual transition to stop an active transition instead of being ignored
    requeueOnImageNotLoaded: true, // requeue the slideshow if any image slides are not yet loaded
    requeueTimeout: 250,  // ms delay for requeue
    activePagerClass: 'activeSlide', // class name used for the active pager link
    updateActivePagerLink: null, // callback fn invoked to update the active pager link (adds/removes activePagerClass style)
    backwards:     false  // true to start slideshow at last slide and move backwards through the stack
    })(jQuery);
    * jQuery Cycle Plugin Transition Definitions
    * This script is a plugin for the jQuery Cycle Plugin
    * Examples and documentation at: http://malsup.com/jquery/cycle/
    * Copyright (c) 2007-2010 M. Alsup
    * Version:  2.72
    * Dual licensed under the MIT and GPL licenses:
    * http://www.opensource.org/licenses/mit-license.php
    * http://www.gnu.org/licenses/gpl.html
    (function($) {
    // These functions define one-time slide initialization for the named
    // transitions. To save file size feel free to remove any of these that you
    // don't need.
    $.fn.cycle.transitions.none = function($cont, $slides, opts) {
    opts.fxFn = function(curr,next,opts,after){
      $(next).show();
      $(curr).hide();
      after();
    // scrollUp/Down/Left/Right
    $.fn.cycle.transitions.scrollUp = function($cont, $slides, opts) {
    $cont.css('overflow','hidden');
    opts.before.push($.fn.cycle.commonReset);
    var h = $cont.height();
    opts.cssBefore ={ top: h, left: 0 };
    opts.cssFirst = { top: 0 };
    opts.animIn   = { top: 0 };
    opts.animOut  = { top: -h };
    $.fn.cycle.transitions.scrollDown = function($cont, $slides, opts) {
    $cont.css('overflow','hidden');
    opts.before.push($.fn.cycle.commonReset);
    var h = $cont.height();
    opts.cssFirst = { top: 0 };
    opts.cssBefore= { top: -h, left: 0 };
    opts.animIn   = { top: 0 };
    opts.animOut  = { top: h };
    $.fn.cycle.transitions.scrollLeft = function($cont, $slides, opts) {
    $cont.css('overflow','hidden');
    opts.before.push($.fn.cycle.commonReset);
    var w = $cont.width();
    opts.cssFirst = { left: 0 };
    opts.cssBefore= { left: w, top: 0 };
    opts.animIn   = { left: 0 };
    opts.animOut  = { left: 0-w };
    $.fn.cycle.transitions.scrollRight = function($cont, $slides, opts) {
    $cont.css('overflow','hidden');
    opts.before.push($.fn.cycle.commonReset);
    var w = $cont.width();
    opts.cssFirst = { left: 0 };
    opts.cssBefore= { left: -w, top: 0 };
    opts.animIn   = { left: 0 };
    opts.animOut  = { left: w };
    $.fn.cycle.transitions.scrollHorz = function($cont, $slides, opts) {
    $cont.css('overflow','hidden').width();
    opts.before.push(function(curr, next, opts, fwd) {
      $.fn.cycle.commonReset(curr,next,opts);
      opts.cssBefore.left = fwd ? (next.cycleW-1) : (1-next.cycleW);
      opts.animOut.left = fwd ? -curr.cycleW : curr.cycleW;
    opts.cssFirst = { left: 0 };
    opts.cssBefore= { top: 0 };
    opts.animIn   = { left: 0 };
    opts.animOut  = { top: 0 };
    $.fn.cycle.transitions.scrollVert = function($cont, $slides, opts) {
    $cont.css('overflow','hidden');
    opts.before.push(function(curr, next, opts, fwd) {
      $.fn.cycle.commonReset(curr,next,opts);
      opts.cssBefore.top = fwd ? (1-next.cycleH) : (next.cycleH-1);
      opts.animOut.top = fwd ? curr.cycleH : -curr.cycleH;
    opts.cssFirst = { top: 0 };
    opts.cssBefore= { left: 0 };
    opts.animIn   = { top: 0 };
    opts.animOut  = { left: 0 };
    // slideX/slideY
    $.fn.cycle.transitions.slideX = function($cont, $slides, opts) {
    opts.before.push(function(curr, next, opts) {
      $(opts.elements).not(curr).hide();
      $.fn.cycle.commonReset(curr,next,opts,false,true);
      opts.animIn.width = next.cycleW;
    opts.cssBefore = { left: 0, top: 0, width: 0 };
    opts.animIn  = { width: 'show' };
    opts.animOut = { width: 0 };
    $.fn.cycle.transitions.slideY = function($cont, $slides, opts) {
    opts.before.push(function(curr, next, opts) {
      $(opts.elements).not(curr).hide();
      $.fn.cycle.commonReset(curr,next,opts,true,false);
      opts.animIn.height = next.cycleH;
    opts.cssBefore = { left: 0, top: 0, height: 0 };
    opts.animIn  = { height: 'show' };
    opts.animOut = { height: 0 };
    // shuffle
    $.fn.cycle.transitions.shuffle = function($cont, $slides, opts) {
    var i, w = $cont.css('overflow', 'visible').width();
    $slides.css({left: 0, top: 0});
    opts.before.push(function(curr,next,opts) {
      $.fn.cycle.commonReset(curr,next,opts,true,true,true);
    // only adjust speed once!
    if (!opts.speedAdjusted) {
      opts.speed = opts.speed / 2; // shuffle has 2 transitions
      opts.speedAdjusted = true;
    opts.random = 0;
    opts.shuffle = opts.shuffle || {left:-w, top:15};
    opts.els = [];
    for (i=0; i < $slides.length; i++)
      opts.els.push($slides[i]);
    for (i=0; i < opts.currSlide; i++)
      opts.els.push(opts.els.shift());
    // custom transition fn (hat tip to Benjamin Sterling for this bit of sweetness!)
    opts.fxFn = function(curr, next, opts, cb, fwd) {
      var $el = fwd ? $(curr) : $(next);
      $(next).css(opts.cssBefore);
      var count = opts.slideCount;
      $el.animate(opts.shuffle, opts.speedIn, opts.easeIn, function() {
       var hops = $.fn.cycle.hopsFromLast(opts, fwd);
       for (var k=0; k < hops; k++)
        fwd ? opts.els.push(opts.els.shift()) : opts.els.unshift(opts.els.pop());
       if (fwd) {
        for (var i=0, len=opts.els.length; i < len; i++)
         $(opts.els[i]).css('z-index', len-i+count);
       else {
        var z = $(curr).css('z-index');
        $el.css('z-index', parseInt(z)+1+count);
       $el.animate({left:0, top:0}, opts.speedOut, opts.easeOut, function() {
        $(fwd ? this : curr).hide();
        if (cb) cb();
    opts.cssBefore = { display: 'block', opacity: 1, top: 0, left: 0 };
    // turnUp/Down/Left/Right
    $.fn.cycle.transitions.turnUp = function($cont, $slides, opts) {
    opts.before.push(function(curr, next, opts) {
      $.fn.cycle.commonReset(curr,next,opts,true,false);
      opts.cssBefore.top = next.cycleH;
      opts.animIn.height = next.cycleH;
    opts.cssFirst  = { top: 0 };
    opts.cssBefore = { left: 0, height: 0 };
    opts.animIn    = { top: 0 };
    opts.animOut   = { height: 0 };
    $.fn.cycle.transitions.turnDown = function($cont, $slides, opts) {
    opts.before.push(function(curr, next, opts) {
      $.fn.cycle.commonReset(curr,next,opts,true,false);
      opts.animIn.height = next.cycleH;
      opts.animOut.top   = curr.cycleH;
    opts.cssFirst  = { top: 0 };
    opts.cssBefore = { left: 0, top: 0, height: 0 };
    opts.animOut   = { height: 0 };
    $.fn.cycle.transitions.turnLeft = function($cont, $slides, opts) {
    opts.before.push(function(curr, next, opts) {
      $.fn.cycle.commonReset(curr,next,opts,false,true);
      opts.cssBefore.left = next.cycleW;
      opts.animIn.width = next.cycleW;
    opts.cssBefore = { top: 0, width: 0  };
    opts.animIn    = { left: 0 };
    opts.animOut   = { width: 0 };
    $.fn.cycle.transitions.turnRight = function($cont, $slides, opts) {
    opts.before.push(function(curr, next, opts) {
      $.fn.cycle.commonReset(curr,next,opts,false,true);
      opts.animIn.width = next.cycleW;
      opts.animOut.left = curr.cycleW;
    opts.cssBefore = { top: 0, left: 0, width: 0 };
    opts.animIn    = { left: 0 };
    opts.animOut   = { width: 0 };
    // zoom
    $.fn.cycle.transitions.zoom = function($cont, $slides, opts) {
    opts.before.push(function(curr, next, opts) {
      $.fn.cycle.commonReset(curr,next,opts,false,false,true);
      opts.cssBefore.top = next.cycleH/2;
      opts.cssBefore.left = next.cycleW/2;
      opts.animIn    = { top: 0, left: 0, width: next.cycleW, height: next.cycleH };
      opts.animOut   = { width: 0, height: 0, top: curr.cycleH/2, left: curr.cycleW/2 };
    opts.cssFirst = { top:0, left: 0 };
    opts.cssBefore = { width: 0, height: 0 };
    // fadeZoom
    $.fn.cycle.transitions.fadeZoom = function($cont, $slides, opts) {
    opts.before.push(function(curr, next, opts) {
      $.fn.cycle.commonReset(curr,next,opts,false,false);
      opts.cssBefore.left = next.cycleW/2;
      opts.cssBefore.top = next.cycleH/2;
      opts.animIn = { top: 0, left: 0, width: next.cycleW, height: next.cycleH };
    opts.cssBefore = { width: 0, height: 0 };
    opts.animOut  = { opacity: 0 };
    // blindX
    $.fn.cycle.transitions.blindX = function($cont, $slides, opts) {
    var w = $cont.css('overflow','hidden').width();
    opts.before.push(function(curr, next, opts) {
      $.fn.cycle.commonReset(curr,next,opts);
      opts.animIn.width = next.cycleW;
      opts.animOut.left   = curr.cycleW;
    opts.cssBefore = { left: w, top: 0 };
    opts.animIn = { left: 0 };
    opts.animOut  = { left: w };
    // blindY
    $.fn.cycle.transitions.blindY = function($cont, $slides, opts) {
    var h = $cont.css('overflow','hidden').height();
    opts.before.push(function(curr, next, opts) {
      $.fn.cycle.commonReset(curr,next,opts);
      opts.animIn.height = next.cycleH;
      opts.animOut.top   = curr.cycleH;
    opts.cssBefore = { top: h, left: 0 };
    opts.animIn = { top: 0 };
    opts.animOut  = { top: h };
    // blindZ
    $.fn.cycle.transitions.blindZ = function($cont, $slides, opts) {
    var h = $cont.css('overflow','hidden').height();
    var w = $cont.width();
    opts.before.push(function(curr, next, opts) {
      $.fn.cycle.commonReset(curr,next,opts);
      opts.animIn.height = next.cycleH;
      opts.animOut.top   = curr.cycleH;
    opts.cssBefore = { top: h, left: w };
    opts.animIn = { top: 0, left: 0 };
    opts.animOut  = { top: h, left: w };
    // growX - grow horizontally from centered 0 width
    $.fn.cycle.transitions.growX = function($cont, $slides, opts) {
    opts.before.push(function(curr, next, opts) {
      $.fn.cycle.commonReset(curr,next,opts,false,true);
      opts.cssBefore.left = this.cycleW/2;
      opts.animIn = { left: 0, width: this.cycleW };
      opts.animOut = { left: 0 };
    opts.cssBefore = { width: 0, top: 0 };
    // growY - grow vertically from centered 0 height
    $.fn.cycle.transitions.growY = function($cont, $slides, opts) {
    opts.before.push(function(curr, next, opts) {
      $.fn.cycle.commonReset(curr,next,opts,true,false);
      opts.cssBefore.top = this.cycleH/2;
      opts.animIn = { top: 0, height: this.cycleH };
      opts.animOut = { top: 0 };
    opts.cssBefore = { height: 0, left: 0 };
    // curtainX - squeeze in both edges horizontally
    $.fn.cycle.transitions.curtainX = function($cont, $slides, opts) {
    opts.before.push(function(curr, next, opts) {
      $.fn.cycle.commonReset(curr,next,opts,false,true,true);
      opts.cssBefore.left = next.cycleW/2;
      opts.animIn = { left: 0, width: this.cycleW };
      opts.animOut = { left: curr.cycleW/2, width: 0 };
    opts.cssBefore = { top: 0, width: 0 };
    // curtainY - squeeze in both edges vertically
    $.fn.cycle.transitions.curtainY = function($cont, $slides, opts) {
    opts.before.push(function(curr, next, opts) {
      $.fn.cycle.commonReset(curr,next,opts,true,false,true);
      opts.cssBefore.top = next.cycleH/2;
      opts.animIn = { top: 0, height: next.cycleH };
      opts.animOut = { top: curr.cycleH/2, height: 0 };
    opts.cssBefore = { left: 0, height: 0 };
    // cover - curr slide covered by next slide
    $.fn.cycle.transitions.cover = function($cont, $slides, opts) {
    var d = opts.direction || 'left';
    var w = $cont.css('overflow','hidden').width();
    var h = $cont.height();
    opts.before.push(function(curr, next, opts) {
      $.fn.cycle.commonReset(curr,next,opts);
      if (d == 'right')
       opts.cssBefore.left = -w;
      else if (d == 'up')
       opts.cssBefore.top = h;
      else if (d == 'down')
       opts.cssBefore.top = -h;
      else
       opts.cssBefore.left = w;
    opts.animIn = { left: 0, top: 0};
    opts.animOut = { opacity: 1 };
    opts.cssBefore = { top: 0, left: 0 };
    // uncover - curr slide moves off next slide
    $.fn.cycle.transitions.uncover = function($cont, $slides, opts) {
    var d = opts.direction || 'left';
    var w = $cont.css('overflow','hidden').width();
    var h = $cont.height();
    opts.before.push(function(curr, next, opts) {
      $.fn.cycle.commonReset(curr,next,opts,true,true,true);
      if (d == 'right')
       opts.animOut.left = w;
      else if (d == 'up')
       opts.animOut.top = -h;
      else if (d == 'down')
       opts.animOut.top = h;
      else
       opts.animOut.left = -w;
    opts.animIn = { left: 0, top: 0 };
    opts.animOut = { opacity: 1 };
    opts.cssBefore = { top: 0, left: 0 };
    // toss - move top slide and fade away
    $.fn.cycle.transitions.toss = function($cont, $slides, opts) {
    var w = $cont.css('overflow','visible').width();
    var h = $cont.height();
    opts.before.push(function(curr, next, opts) {
      $.fn.cycle.commonReset(curr,next,opts,true,true,true);
      // provide default toss settings if animOut not provided
      if (!opts.animOut.left && !opts.animOut.top)
       opts.animOut = { left: w*2, top: -h/2, opacity: 0 };
      else
       opts.animOut.opacity = 0;
    opts.cssBefore = { left: 0, top: 0 };
    opts.animIn = { left: 0 };
    // wipe - clip animation
    $.fn.cycle.transitions.wipe = function($cont, $slides, opts) {
    var w = $cont.css('overflow','hidden').width();
    var h = $cont.height();
    opts.cssBefore = opts.cssBefore || {};
    var clip;
    if (opts.clip) {
      if (/l2r/.test(opts.clip))
       clip = 'rect(0px 0px '+h+'px 0px)';
      else if (/r2l/.test(opts.clip))
       clip = 'rect(0px '+w+'px '+h+'px '+w+'px)';
      else if (/t2b/.test(opts.clip))
       clip = 'rect(0px '+w+'px 0px 0px)';
      else if (/b2t/.test(opts.clip))
       clip = 'rect('+h+'px '+w+'px '+h+'px 0px)';
      else if (/zoom/.test(opts.clip)) {
       var top = parseInt(h/2);
       var left = parseInt(w/2);
       clip = 'rect('+top+'px '+left+'px '+top+'px '+left+'px)';
    opts.cssBefore.clip = opts.cssBefore.clip || clip || 'rect(0px 0px 0px 0px)';
    var d = opts.cssBefore.clip.match(/(\d+)/g);
    var t = parseInt(d[0]), r = parseInt(d[1]), b = parseInt(d[2]), l = parseInt(d[3]);
    opts.before.push(function(curr, next, opts) {
      if (curr == next) return;
      var $curr = $(curr), $next = $(next);
      $.fn.cycle.commonReset(curr,next,opts,true,true,false);
      opts.cssAfter.display = 'block';
      var step = 1, count = parseInt((opts.speedIn / 13)) - 1;
      (function f() {
       var tt = t ? t - parseInt(step * (t/count)) : 0;
       var ll = l ? l - parseInt(step * (l/count)) : 0;
       var bb = b < h ? b + parseInt(step * ((h-b)/count || 1)) : h;
       var rr = r < w ? r + parseInt(step * ((w-r)/count || 1)) : w;
       $next.css({ clip: 'rect('+tt+'px '+rr+'px '+bb+'px '+ll+'px)' });
       (step++ <= count) ? setTimeout(f, 13) : $curr.css('display', 'none');
    opts.cssBefore = { display: 'block', opacity: 1, top: 0, left: 0 };
    opts.animIn    = { left: 0 };
    opts.animOut   = { left: 0 };
    })(jQuery);
    I still cannot get it to work

Maybe you are looking for