/*****************************************************************************\

mirtol-images.js
================

Image animating and preloading functions.


Copyright (C) 2005 Mirtol Ltd.

Permission to use, copy, distribute, read or analyse this code is restricted
and may only be used by explicit permission of Mirtol Ltd.

Written by Miles Wilton

\*****************************************************************************/


var miImage = new Array();
var miImageId = new Array();
var miImageState = new Array();

var miImageCount = 0;

var isExplorer = (navigator.appName.indexOf("Microsoft") != -1);
var isNetscape = (navigator.appName.indexOf("Netscape") != -1);



/* miPreload
 *
 * - Provoke browser into loading an image before it's needed
*/
function miPreload(url)
{
	miImage[miImageCount] = new Image();
	miImage[miImageCount].src = url;

	return miImageCount++;
}


/* miChangeImage
 *
 * - Changes an Image in document, along with Message bar (ID orientated)
*/
function miChangeImage(objectid, image, statusmsg)
{
	document.getElementById(objectid).src = miImage[image].src;
	window.status = statusmsg;

	return true;
}


/* miPreloadId
 *
 * - Preload image for use with miChangeLinkImage
*/
function miPreloadId(objectid, state, url)
{
    var n = miPreload(url);
    
    miImageId[n] = objectid;
    miImageState[n] = state;
    
    return true;    
}    


/* miChangeLinkImage
 *
 * - Changes an Image within a link using it's ID tag
*/
function miChangeLinkImage(object, state)
{
  var n = object.childNodes.length;  
                        
  for(i = 0; i < n; i++)
      if(object.childNodes[i].nodeName == 'IMG')
      {
          o = object.childNodes[i];      
          for(j = 0; j < miImageCount; j++)          
              if(miImageId[j] == o.id)              
                  if(miImageState[j] == state)              
                      o.src = miImage[j].src;
      } 

	return true;
}
