Index: views_slideshow.theme.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views_slideshow/Attic/views_slideshow.theme.inc,v
retrieving revision 1.1.2.2
diff -u -p -r1.1.2.2 views_slideshow.theme.inc
--- views_slideshow.theme.inc	21 Mar 2009 00:36:39 -0000	1.1.2.2
+++ views_slideshow.theme.inc	16 Apr 2009 11:38:33 -0000
@@ -24,6 +24,18 @@ $(document).ready(function() {
   // These are the divs containing the elements to be displayed in the main div in rotation or mouseover.
   slideshow_data["$id"] = new views_slideshow_data($num_divs, {$options['timer_delay']}, {$options['sort']}, $fade, "{$options['fade_speed']}", {$options['fade_value']});
 
+  // If ordering is random, randomize initial visible div also
+  if (!slideshow_data["$id"]._sort_order) {
+    random_div_number = Math.floor(Math.random() * slideshow_data["$id"]._num_divs);
+    if (slideshow_data["$id"]._current_div != random_div_number) {
+      views_slideshow_hide_div("$id", slideshow_data["$id"]._current_div);
+
+      slideshow_data["$id"]._current_div = random_div_number;
+
+      views_slideshow_show_div("$id", slideshow_data["$id"]._current_div);
+    }
+  }
+
   // This turns on the timer.
   views_slideshow_timer("$id", true);
 
Index: js/views_slideshow.js
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views_slideshow/js/views_slideshow.js,v
retrieving revision 1.2
diff -u -p -r1.2 views_slideshow.js
--- js/views_slideshow.js	30 Sep 2008 20:10:22 -0000	1.2
+++ js/views_slideshow.js	16 Apr 2009 11:38:33 -0000
@@ -57,6 +57,25 @@ function views_slideshow_switch(slidesho
   }
 }
 
+// show node
+function views_slideshow_show_div(slideshow_main, div_number) {
+  _div_breakout = "#views_slideshow_div_" + slideshow_main + "_" + div_number;
+  $(_div_breakout).show();
+
+  _div_teaser_breakout = "#views_slideshow_div_breakout_teaser_" + slideshow_main + "_" + div_number;
+  if (!$(_div_teaser_breakout).hasClass("views_slideshow_active_teaser"))
+    $(_div_teaser_breakout).addClass("views_slideshow_active_teaser");
+}
+
+// hide node
+function views_slideshow_hide_div(slideshow_main, div_number) {
+  _div_breakout = "#views_slideshow_div_" + slideshow_main + "_" + div_number;
+  $(_div_breakout).hide();
+
+  _div_teaser_breakout = "#views_slideshow_div_breakout_teaser_" + slideshow_main + "_" + div_number;
+  $(_div_teaser_breakout).removeClass("views_slideshow_active_teaser");
+}
+
 // set the main div html to the new node
 function views_slideshow_set_div(slideshow_main, new_div_number) {
   // this is the id of the main div to change
@@ -71,27 +90,9 @@ function views_slideshow_set_div(slidesh
     new_div_number = slideshow_data[slideshow_main]._num_divs - 1;
   }
 
-//   _old_breakout = "#views_slideshow_div_breakout_teaser_" + slideshow_main + "_" + slideshow_data[slideshow_main]._current_div;
-//   _new_breakout = "#views_slideshow_div_breakout_teaser_" + slideshow_main + "_" + new_div_number;
-  _old_breakout = "#views_slideshow_div_" + slideshow_main + "_" + slideshow_data[slideshow_main]._current_div;
-  _new_breakout = "#views_slideshow_div_" + slideshow_main + "_" + new_div_number;
-
-
-  // get the div with the html we need
-  _new_div = "#views_slideshow_div_" + slideshow_main + "_" + new_div_number;
-
-  // set the html of the new div
-  //   $(_main_div).html($(_new_div).html());
-//   $(_old_breakout).removeClass('views_slideshow_active_teaser');
-//   $(_new_breakout).addClass('views_slideshow_active_teaser');
-
-  $(_old_breakout).hide();
-  $(_new_breakout).show();
-
-  _old_breakout = "#views_slideshow_div_breakout_teaser_" + slideshow_main + "_" + slideshow_data[slideshow_main]._current_div;
-  _new_breakout = "#views_slideshow_div_breakout_teaser_" + slideshow_main + "_" + new_div_number;
-  $(_old_breakout).removeClass('views_slideshow_active_teaser');
-  $(_new_breakout).addClass('views_slideshow_active_teaser');
+  // hide current div, show next div
+  views_slideshow_hide_div(slideshow_main, slideshow_data[slideshow_main]._current_div);
+  views_slideshow_show_div(slideshow_main, new_div_number);
 
   // set the current_div number to the new node
   slideshow_data[slideshow_main]._current_div = new_div_number;
@@ -117,8 +118,8 @@ function views_slideshow_next_div(slides
     // select a random div, but make sure we don't repeat ourselves, unless there's only one div
     do {
       new_div_number = Math.floor(Math.random() * slideshow_data[slideshow_main]._num_divs);
-    } while (slideshow_data[slideshow_main]._num_divs > 1 && (new_div_number == slideshow_data[slideshow_main]._num_divs - 1));
+    } while (slideshow_data[slideshow_main]._num_divs > 1 && (new_div_number == slideshow_data[slideshow_main]._current_div));
+    // (new_div_number == slideshow_data[slideshow_main]._num_divs - 1)
   }
   return new_div_number;
 }
-
