var homepage_images;	// images in the /images/hm/ folder?  
var firstFade = 0;		// delay in milliseconds before animation starts
var fadeDelay = 5000;   	// delay in seconds between changes in milliseconds
var transitionIncrement = 0.02; // speed of image transition (smaller = slower) up to a value of 1
var newsTransitionIncrement = 0.02; // speed of news transition (smaller = slower) up to a value of 1
var fadeState = 0;		// number of steps in fade 
var defaultInterval = 5; 	// delay in animations in milliseconds
var newsSlideState = 0; 	// initial height of news contents
var newsHeight = 0;   		// initial height of news contents
var currentNewsState = 0; 	// initial of headline visibility
var imageArray = new Array();  // define the source paths of all images 
var newImageNumber;

// set interval for fading
function fadeNewLayer() {
  fading = setInterval('fadeImage()', defaultInterval);
}

function fadeImage() {
  if (fadeState < 1) {
    fadeState += transitionIncrement;
    currentAlpha = Math.pow(fadeState,2);
    currentAlpha = currentAlpha.toFixed(2);
    setOpacity('newLayer', currentAlpha);
  } else {
    fadeState=0;
    currentAlpha=0;
    clearInterval(fading);
    document.oldImage.src = imageArray[newImageNumber];
    setOpacity('newLayer', 0)
    do {
      var temp = Math.round(Math.random() * (homepage_images-1)) + 1;
    } while (temp == newImageNumber);
    newImageNumber = temp;
    document.newImage.src = imageArray[newImageNumber];
    setTimeout('cycleImages()', 1000);
  }
}

// set opacity function will need changin to adapt for more browsers
function setOpacity(layerName, alphaState) {
  document.getElementById(layerName).style.opacity = alphaState;
  // MSIE only
  var ieState = alphaState * 100;
  document.getElementById(layerName).style.filter = 'alpha(opacity='+ieState+')'; 
}

// check cached image is uploaded
function startCycle(nimages) {
  homepage_images = nimages;
  // define the source paths of all images 
  for (imageCount = 1; imageCount <= homepage_images; imageCount++) {
    imageArray[imageCount] = 'images/hm/' + imageCount + '.jpg';
  };
  // get value for first image 
  newImageNumber = Math.round(Math.random() * (homepage_images-1)) + 1; 
  document.newImage.src = (typeof imageArray[newImageNumber] != "undefined") ? imageArray[newImageNumber] : "undefined-"+newImageNumber;
  cycleImages();
}

function isImageOk() {
  img = document.newImage;
  if (!img.complete) return false;
  if (typeof img.naturalWidth != "undefined" && img.naturalWidth == 0) return false;
  return true;
}

function cycleImages() {
  if (isImageOk()) {
    setTimeout('fadeNewLayer()', firstFade);
    firstFade = fadeDelay;
  } else {
    setTimeout('cycleImages()', 1000);
  }
}

// news transition functions
function newsBox() {
  newsHeight = document.getElementById('newsContent').offsetHeight;
  if (newsSlideState==0) {
    newsSlide = setInterval('slideNews()', defaultInterval);
    if (currentNewsState == 0) {
      document.showNewsIcon.src = 'images/hm/icon-hide.png';
    } else {
      document.showNewsIcon.src = 'images/hm/icon-show.png';
    }
  }
}

function slideNews() {
  if (newsSlideState <= 1) {
    newsSlideState += newsTransitionIncrement;
    if (currentNewsState == 0) {
      currentSlide = Math.pow(1 - newsSlideState,4);
      tempHeight = newsHeight * (1 - currentSlide);
    } else {
      newsSlideState += newsTransitionIncrement;
      currentSlide = Math.pow(newsSlideState,2);
      tempHeight = newsHeight * (1 - currentSlide) + 4;
      if (tempHeight>newsHeight) tempHeight = newsHeight;
    }
    document.getElementById('newsContentContainer').style.height = Math.ceil(tempHeight) + 'px';
    // document.getElementById('opacityIndicator').innerHTML = newsSlideState; // remove this bit of variable reporting
  } else {
    if (currentNewsState == 0) {
      tempHeight = newsHeight;
      currentNewsState = 1;
    } else {
      tempHeight = 4;
      currentNewsState = 0;
    }
    document.getElementById('newsContentContainer').style.height = tempHeight + 'px';
    newsSlideState = 0;
    clearInterval(newsSlide);
  }
}

function open_popup(page) {
  window.name = "mainwin";
  window_handle = window.open(page,'welcome','width=585,height=420,menubar=0,status=0,scrollbars=0,resizable=1,toolbar=0');
  if (window_handle) window_handle.focus();
  return false;
}
