/* Motion Pictures: Automated Image Gallery for the International School of Iceland */

var useImages = true;

var xmlDoc;
var transition;
var timer;

var headerObj;
var headerImg;
var buttonObj;
var buttonImg;
var currentMenuImageIndex;
var nextMenuImageIndex;

var imageObj;
var imageImg;
var currentImageIndex;
var nextImageIndex;

function initializeAll()
{
  initializeHeaderMenu();
  if (useImages)
  	initializeImages();
  
  prepAllForChange();
}
function initializeHeaderMenu()
{

  headerObj = new Array(2);
  headerObj[0] = document.getElementById('menuTitleImage');
  headerObj[1] = document.getElementById('menuTitleBG');

  headerImg = new Array(2);
  headerImg[0] = "url(images/" + "ISI_titleEn.png" + ")";
  headerImg[1] = "url(images/" + "ISI_titleIs.png" + ")";
  
  buttonObj = new Array(6);
  buttonObj[0] = new Array(2);
  buttonObj[0][0] = document.getElementById('menuHomeImage');
  buttonObj[0][1] = document.getElementById('menuHomeBG');
  buttonObj[1] = new Array(2);
  buttonObj[1][0] = document.getElementById('menuAboutImage');
  buttonObj[1][1] = document.getElementById('menuAboutBG');
  buttonObj[2] = new Array(2);
  buttonObj[2][0] = document.getElementById('menuCurriculumImage');
  buttonObj[2][1] = document.getElementById('menuCurriculumBG');
  buttonObj[3] = new Array(2);
  buttonObj[3][0] = document.getElementById('menuParentsImage');
  buttonObj[3][1] = document.getElementById('menuParentsBG');
  buttonObj[4] = new Array(2);
  buttonObj[4][0] = document.getElementById('menuStaffImage');
  buttonObj[4][1] = document.getElementById('menuStaffBG');
  buttonObj[5] = new Array(2);
  buttonObj[5][0] = document.getElementById('menuAdmissionsImage');
  buttonObj[5][1] = document.getElementById('menuAdmissionsBG');
  
  buttonImg = new Array(6);
  buttonImg[0] = new Array(2);
  buttonImg[0][0] = "url(images/" + "ISI_HomeEn.png" + ")";
  buttonImg[0][1] = "url(images/" + "ISI_HomeIs.png" + ")";
  buttonImg[1] = new Array(2);
  buttonImg[1][0] = "url(images/" + "ISI_AboutEn.png" + ")";
  buttonImg[1][1] = "url(images/" + "ISI_AboutIs.png" + ")";
  buttonImg[2] = new Array(2);
  buttonImg[2][0] = "url(images/" + "ISI_CurriculumEn.png" + ")";
  buttonImg[2][1] = "url(images/" + "ISI_CurriculumIs.png" + ")";
  buttonImg[3] = new Array(2);
  buttonImg[3][0] = "url(images/" + "ISI_ParentsEn.png" + ")";
  buttonImg[3][1] = "url(images/" + "ISI_ParentsIs.png" + ")";
  buttonImg[4] = new Array(2);
  buttonImg[4][0] = "url(images/" + "ISI_StaffEn.png" + ")";
  buttonImg[4][1] = "url(images/" + "ISI_StaffIs.png" + ")";
  buttonImg[5] = new Array(2);
  buttonImg[5][0] = "url(images/" + "ISI_AdmissionsEn.png" + ")";
  buttonImg[5][1] = "url(images/" + "ISI_AdmissionsIs.png" + ")";

  currentMenuImageIndex = 0;
  nextMenuImageIndex = 1;
}
function initializeImages()
{
  /*try { xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); }
  catch (e)
  {
    try { xmlDoc = document.implementation.createDocument("","", null); }
	catch (e) { alert('This browser is unable to use Javascript'); }
  }
  
  try
  {
    xmlDoc.async = false;
    xmlDoc.load('images.xml');
	document.getElementById('AppImages').style.display="block";
  }
  catch (e)
  {
	useImages = false;
	return;
  }

  var imageList = xmlDoc.getElementsByTagName('image');
  imageImg = new Array(imageList.length);

  for (var i = 0; i < imageImg.length; i++)
  {
    imageImg[i] = "url(images/" + imageList[i].getAttribute('url') + ")";
  }*/
  imageObj = new Array(3);
  imageObj[0] = new Array(2);
  imageObj[0][0] = document.getElementById('leftAppImage');
  imageObj[0][1] = document.getElementById('leftAppBG');
  imageObj[1] = new Array(2);
  imageObj[1][0] = document.getElementById('middleAppImage');
  imageObj[1][1] = document.getElementById('middleAppBG');
  imageObj[2] = new Array(2);
  imageObj[2][0] = document.getElementById('rightAppImage');
  imageObj[2][1] = document.getElementById('rightAppBG');
  
  document.getElementById('AppImages').style.display="block";
  
  loadImages();
  for (var i = 0; i < imageImg.length; i++)
  {
	  imageImg[i] = "url(images/" + imageImg[i] + ")";
  }
	
  currentImageIndex = 0;
  nextImageIndex = 3;
  if (nextImageIndex >= imageImg.length || nextImageIndex >= imageImg.length || nextImageIndex >= imageImg.length)
    nextImageIndex = 0;
}

function prepAllForChange()
{
  prepHeaderMenuForChange();
  if (useImages)
    prepImagesForChange();
  
  transition = 0;
  timer = setTimeout("changeImages()", 6000);
}
function prepHeaderMenuForChange()
{
  headerObj[1].style.backgroundImage = headerImg[currentMenuImageIndex];
  setAlpha(headerObj[0], 0);
  headerObj[0].style.backgroundImage = headerImg[nextMenuImageIndex];
  
  for (var i = 0; i < 6; i++)
  {
    buttonObj[i][1].style.backgroundImage = buttonImg[i][currentMenuImageIndex];
    setAlpha(buttonObj[i][0], 0);
    buttonObj[i][0].style.backgroundImage = buttonImg[i][nextMenuImageIndex];
  }
  
  currentMenuImageIndex = nextMenuImageIndex;
  nextMenuImageIndex++;
  if (nextMenuImageIndex >= 2) nextMenuImageIndex = 0;
}
function prepImagesForChange()
{
  for (var i = 0; i < 3; i++)
  {
	if (currentImageIndex + i < imageImg.length)
		imageObj[i][1].style.backgroundImage = imageImg[currentImageIndex + i];
	setAlpha(imageObj[i][0], 0);
	if (nextImageIndex + i < imageImg.length)
		imageObj[i][0].style.backgroundImage = imageImg[nextImageIndex + i];
  }
  
  currentImageIndex = nextImageIndex;
  nextImageIndex += 3;
  if (nextImageIndex >= imageImg.length || nextImageIndex >= imageImg.length || nextImageIndex >= imageImg.length)
    nextImageIndex = 0;
}

function changeImages()
{
  transition++;
  
  setAlpha(headerObj[0], transition);
  for (var i = 0; i < 6; i++)
    setAlpha(buttonObj[i][0], transition);
	
  if (useImages)
    for (var i = 0; i < 3; i++)
      setAlpha(imageObj[i][0], transition);
  
  if (transition < 100)
    timer = setTimeout("changeImages()", 5);
  else
    prepAllForChange();
}

function setAlpha(object, opacity)
{
  object.style.opacity = (opacity / 100);
  object.style.MozOpacity = (opacity / 100);
  object.style.KhtmlOpacity = (opacity / 100);
  object.style.filter = "alpha(opacity=" + opacity + ")";
}
