// Loop delay in milliseconds
var delay = 5000;
var t;

// when the DOM is ready...
$(document).ready(function () {

  var initial = Math.round(Math.random() * (rotatefiles.length-1));

  $.ajax({
    type: "GET",
    dataType: "xml",
    url: rotatefiles[initial],
    success: function(xml) {
      var html = xmlparse(xml, 1);
      $('#panel1').html(html);

      rotatefiles.splice(initial, 1);
      
      $(rotatefiles).each(function(j) {
        /* Create more panel containers */
        $("#slider .scrollContainer").append('<div class="panel" id="panel' + (j+2) + '"></div>');

        $.ajax({
          type: "GET",
          dataType: "xml",
          url: rotatefiles[j],
          success: function(xml) {
            html = xmlparse(xml, (j+2));
            $('#panel' + (j+2)).html(html);
            if ((j+1) == rotatefiles.length) {
              fader();
            }
          }
        });
      });

    }
  });

});

function fader() {

  var $panels = $('#slider .scrollContainer > div');
  var $container = $('#slider .scrollContainer');

  // collect the scroll object, at the same time apply the hidden overflow
  // to remove the default scrollbars that will appear
  var $scroll = $('#slider .scroll').css('overflow', 'hidden');
  
  // apply our left + right buttons
  $scroll
    .before('<img class="scrollButtons left" src="./admin/images/scroll_left.png" />')
    .after('<img class="scrollButtons right" src="./admin/images/scroll_right.png" />');

  $('#slider').append('<div id="pagers" class="clearfix"></div>').find('.scrollContainer > div').each(function(i) {
    $('#slider #pagers').append('<a href="#panel' + (i+1) + '" id="pager-panel' + (i+1) + '">' + (i+1) + '</a>');
  });

  // set first pane as default current pane
  // $('#pager0') should not exist
  _fader(0, 1);

  _faderPagers(1);
  _faderLeft();
  _faderRight();

  function _fader(current, target) {
    if (current == target) {
      return false;
    }

    var $panel_current = $('#panel' + current);
    var $panel_target = $('#panel' + target);
    
    $('#pagers a').removeClass('current');
    $('#pager-panel' + target).addClass('current');

    $panel_target.css('z-index', '2');
    $panel_current.css('z-index', '3');

    $panel_target.show();
    
    $('#slider img').unbind("click");
    $panel_current.fadeOut("slow", function() {
      _faderPagers(target);
      _faderLeft();
      _faderRight();
    });    
  }

  function _faderPagers(target) {
    $('#pagers a').each(function() {
      $(this).unbind("click").bind("click", function() {
        _fader(target, parseInt($(this).html()));
        return false;
      });
    });
  }
  
  function _faderLeft() {
    $('#slider img.left').unbind("click").click(function() {
      var current = parseInt($('#pagers a.current').html());
      var target = (current != 1) ? current - 1 : $('#pagers a').length;
  
      _fader(current, target);
    });
  }

  function _faderRight() {
    $("#slider img.right").unbind("click").click(function() {
      var current = parseInt($('#pagers a.current').html());
      var target = (current != $('#pagers a').length) ? current + 1 : 1;
    
      _fader(current, target);
    });
  }

  $(".video-container embed").click(function() {
    delay = 0;
    clearTimeout(t);
  });


  $("#slider").hover(function() {
    $(this).addClass("pause");
    clearTimeout(t);
  },
  function() {
    if (delay != 0) {
      $(this).removeClass("pause");
      t = setTimeout("sliderLoop()", delay);
    }
  });

  t = setTimeout("sliderLoop()", delay);
}

function sliderLoop() {
  $("#slider:not('.pause') img.right").trigger("click");
  t = setTimeout("sliderLoop()", delay);
}

function xmlparse(xml, i) {
  var $selector = $(xml).find("rotating-content");
  if ($(xml).find("rotating-content[type='video']").length) {
    return ('<div style="float: right;"><div style="border-left: 10px solid rgb(53, 119, 167); padding: 10px; background: rgb(87, 137, 198) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; width: 240px; height: 25px; margin-right: 0px; color: rgb(255, 255, 255); font-weight: bold; font-size: 16px; margin-top: 0px;">' + $selector.find("title").text() + '</div><div style="border-left: 10px solid rgb(179, 180, 175); background: rgb(255, 255, 255) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; width: 245px; height: 255px; margin-right: 0px;"><div style="padding: 10px 30px 10px 10px;">' + $selector.find("html").text() + '<br/><br/></div></div><div style="border-left: 10px solid rgb(53, 119, 167); background: rgb(87, 137, 198) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; width: 260px; height: 15px; margin-right: 0px;"></div></div>'
      + '<div id="video-container' + i +'" class="video-container"><a href="http://www.macromedia.com/go/getflashplayer">Get the Flash Player</a> to see this player.</div>'
      + '<script type="text/javascript">'
      + 'var s1 = new SWFObject("http://video.seas.columbia.edu/mediaplayer/player.swf","ply","500","315","9","#000000");'
      + 's1.addParam("allowfullscreen","true");'
      + 's1.addParam("allowscriptaccess","always");'
      + 's1.addParam("wmode","opaque");'
      + 's1.addParam("flashvars","icons=false&file=' + $selector.find("video-path").text() + '&image=' + $selector.find("image-path").text() + '&skin=http://video.seas.columbia.edu/mediaplayer/stylish.swf&icons=false"); s1.write("video-container' + i +'"); </script>');
  }
  else if ($(xml).find("rotating-content[type='story']").length) {
    var markup = "";
    markup = '<div style="float: right;"><div style="border-left: 10px solid rgb(53, 119, 167); padding: 10px; background: rgb(87, 137, 198) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; width: 240px; height: 25px; margin-right: 0px; color: rgb(255, 255, 255); font-weight: bold; font-size: 16px; margin-top: 0px;">' + $selector.find("title").text() + '</div><div style="border-left: 10px solid rgb(179, 180, 175); background: rgb(255, 255, 255) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; width: 245px; height: 255px; margin-right: 0px;"><div style="padding: 10px 30px 10px 10px;">' + $selector.find("html").text() + '<br/><br/></div></div><div style="border-left: 10px solid rgb(53, 119, 167); background: rgb(87, 137, 198) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; width: 260px; height: 15px; margin-right: 0px;"></div></div>';
    markup += '<div class="image-container">';
    if (link = $selector.find("image-link").text()) {
      markup += '<a href="' + link + '"><img src="' + $selector.find("image-path").text() + '" alt="' + $selector.find("image-alt-text").text() + '" border="0"></a>';
    }
    else {
      markup += '<img src="' + $selector.find("image-path").text() + '" alt="' + $selector.find("image-alt-text").text() + '">';
    }
    markup += '</div>';
    return markup;
  }
  else {
    return $(xml).find("rotating-content html").text();
  }
}