var mycarousel_itemList = [];

var stop_video = function(idx) {
  var fname = 'slide'+idx;
  if(window.frames[fname] && window.frames[fname].document) { 
    var player = window.frames[fname].document.getElementById('vplayer');
    if (player != null) {
      player.sendEvent("STOP");
    }
  }
}

var mycarousel_initCallback = function(carousel) {
  jQuery('#control_panel .button').bind('click', function() {
    carousel.scroll(parseInt(jQuery(this).text()));
    return false;
  });
  $('ul#mycarousel').children().each(function() {
      mycarousel_itemList.push(this.innerHTML);
  });
  $('ul#mycarousel').html('');
  if (mycarousel_itemList.length < 2) {
    $('.jcarousel-skin-myork .jcarousel-next-horizontal').hide();
    $('.jcarousel-skin-myork .jcarousel-prev-horizontal').hide();
    $('.jcarousel-skin-myork .jcarousel-next-horizontal').unbind("click");
    $('.jcarousel-skin-myork .jcarousel-prev-horizontal').unbind("click");
  }
  $('#portfolio').show();
}

var mycarousel_itemVisibleInCallback = function(carousel, item, i, state, evt) {
    // The index() method calculates the index from a
    // given index who is out of the actual item range.
    if (mycarousel_itemList.length > 1 || i == 1) {
      var idx = carousel.index(i, mycarousel_itemList.length);
      carousel.add(i, mycarousel_itemList[idx - 1]);
    }
};

mycarousel_itemVisibleOutCallback = function(carousel, item, i, state, evt) {
    carousel.remove(i);
};

var clear_selected = function(carousel, item, i, state) {
  var idx = carousel.index(i, mycarousel_itemList.length);
  $('#button'+idx).removeClass('selected');
  $('#slide'+idx).parent().animate( { opacity: "0.2" }, 100, null, function() {
      $('#slide'+idx).parent().removeClass('selected');
      });
  stop_video(idx);
}

var hide_overlay = function(carousel, item, idx, state) {
  if ($('a#toggle_info').hasClass('active')) {
    $('#portfolio_info').hide();
    $('#portfolio_info div').hide();
    $('a#toggle_info').removeClass('active');
    $("#portfolio_info").css('height','0px');
  }
  $('#control_panel').hide();
  $('#portfolio_info').hide();
  $('.jcarousel-skin-myork .jcarousel-next-horizontal').hide();
}

var update_overlay = function(carousel, item, i, state) {
  var idx = carousel.index(i, mycarousel_itemList.length);
  $('#button'+idx).addClass('selected');
  var w = Math.min(item.offsetWidth, 641) - 9;
  $('#control_panel').width(w);
  $('#portfolio_info').css({ left: (w-259)+'px' });
  if (mycarousel_itemList.length > 1) {
    $('.jcarousel-skin-myork .jcarousel-next-horizontal').width(703 - w);
    $('.jcarousel-skin-myork .jcarousel-next-horizontal').fadeIn(200);
  }
  $('#slide'+idx).parent().animate( { opacity: "1.0" }, 400, null, function() {
      $('#slide'+idx).parent().addClass('selected');
      });
  $('#control_panel').fadeIn(200);
}

var select_carousel_item = function(num) {
  carousel.scroll(num);
}

var toggle_portfolio_info = function() {
  $(this).blur();
  if ($('a#toggle_info').hasClass('active')) {
    $("#portfolio_info").animate( { height: "0px" }, 400, null, function() {
      $('#portfolio_info div').hide();
      $('a#toggle_info').removeClass('active');
    });
  } else {
    $("#portfolio_info").animate( { height: "494px" }, 400, null, function() {
      $('#portfolio_info_content').fadeIn(200, function() {
        $('a#toggle_info').addClass('active');
      });
      $('#portfolio_info div.icon').show();
    });
  }
}

$(function() {
  $('#control_panel').hide();
  $('#portfolio_info').hide();
  $('#portfolio_info div').hide();
  $('#popup').hide();
  $('#mycarousel').jcarousel({
    scroll: 1,
    initCallback: mycarousel_initCallback,
    itemFirstOutCallback: { onBeforeAnimation: clear_selected },
    itemFirstInCallback: {
      onBeforeAnimation: hide_overlay,
      onAfterAnimation: update_overlay
    },
    wrap: 'circular',
    itemVisibleInCallback: {onBeforeAnimation: mycarousel_itemVisibleInCallback},
    itemVisibleOutCallback: {onAfterAnimation: mycarousel_itemVisibleOutCallback}
  });
  $('#toggle_info').click(toggle_portfolio_info);
  $('.icon').hover(function() {
    $('#popup .content').html($(this).html());
    var pos = Math.round($(this).offset().left - $('#portfolio_info').offset().left - 8);
    if ($('#popup').hasClass('above')) {
      var vpos = ($('#portfolio').height() + $('#portfolio_info').offset().top) - $(this).offset().top - 16;
      $('#popup').css({ 'bottom': vpos+'px', 'position': 'absolute' });
      $('#popup .bottom').css('margin-left', pos);
    } else {
      $('#popup .top').css('margin-left', pos);
    }

    $('#popup').show();
    $('#popup div').show();
  }, function() {
    $('#popup').hide();
    $('#popup div').hide();
  });
  if (mycarousel_itemList.length > 1) {
    $('.jcarousel-skin-myork .jcarousel-prev-horizontal').hover(function() {
      $(this).fadeTo('fast', 1.0);
    }, function() {
      $(this).fadeTo('fast', 0);
    });
    $('.jcarousel-skin-myork .jcarousel-prev-horizontal').fadeTo(3000, 0);
  }
});
