var featureIndex = 0;
var featureTimeout;

function setupNextFeature() {
  if (featureTimeout) {
    clearTimeout(featureTimeout);
  }
  var currentFeatureTimeout = features[featureIndex][2]*1000;
  featureIndex++;
  if (featureIndex>features.length-1) {
    featureIndex = 0;
  }
  var featureNext = $("featureNext");
  var featureNextLink = featureNext.getElementsByTagName("A")[0];
  var featureNextImage = featureNext.getElementsByTagName("IMG")[0];  
  featureNextLink.href = features[featureIndex][1];
  featureNextImage.src = mediaURLRoot+"feature/"+features[featureIndex][0];
  featureTimeout = setTimeout("slideFeature()",currentFeatureTimeout);
}
function previousFeature() {
  var previousIndex = featureIndex-2;
  if (previousIndex < 0) {
    previousIndex = previousIndex + features.length;
  }
  gotoFeature(previousIndex);
}
function nextFeature() {
  gotoFeature(featureIndex);
}
function gotoFeature(index) {
  featureIndex = index;
  if (featureTimeout) {
    clearTimeout(featureTimeout);
  }
  var featureNext = $("featureNext");
  var featureNextLink = featureNext.getElementsByTagName("A")[0];
  var featureNextImage = featureNext.getElementsByTagName("IMG")[0]; 
  featureNextLink.href = features[index][1];
  featureNextImage.src = mediaURLRoot+"feature/"+features[index][0];
  slideFeature();
}
function slideFeature() {
  var featureActive = $("featureActive");
  var featureNext = $("featureNext");
  var currentPosition = 0;
  if (featureActive.currentPosition) {
    currentPosition = featureActive.currentPosition;
  }
  if (currentPosition >= -800+100) {
    // slide the current feature
    featureActive.currentPosition = (currentPosition-100);
    featureActive.style.marginLeft = featureActive.currentPosition+"px";
    featureTimeout = setTimeout("slideFeature()",42);
  } else {
    for (var i=0;i<features.length;i++) {
      var control = $('featureControl'+i);
      control.src = mediaURLRoot+"layout/feature_icon"+(i==featureIndex?"_active":"")+".gif";
    }
    // swap the features
    featureActive.innerHTML = featureNext.innerHTML;
    featureActive.style.marginLeft = 0;
    featureActive.currentPosition = 0;
    setupNextFeature();    
  }
}