﻿

function rand ( n )
{
  return ( Math.floor ( Math.random ( ) * n ) );
}

function randomizeImageList(listName) {
	// loop through image array, assign a random element to an image in the grid, then delete it from the array
	var list = document.getElementById(listName);
	var listItems = list.getElementsByTagName("li");
	
	for( var i = 0; i < listItems.length; i++ )
	{
		n = rand(listItems.length);
		
		var destItem = listItems[i];
		var srcItem = listItems[n];
		var destImg = destItem.getElementsByTagName("img")[0];  // the current img in the list
		var srcImg = srcItem.getElementsByTagName("img")[0];    // random previous img
		var destLink = destItem.getElementsByTagName("a")[0];
		var srcLink = srcItem.getElementsByTagName("a")[0];
		
		swapImages( destImg,
					srcImg,
					destLink,
					srcLink );
	}
}

function swapImages( destImg, srcImg, destLink, srcLink ) {
	var origDestSrc = destImg.src;
	var origDestAlt = destImg.alt;
	var origDestLink = destLink.href;

	destImg.onload = function() {
	    var bv = parseFloat(navigator.appVersion.split("MSIE")[1]);  // browser version
	    if ((destImg.src.toLowerCase().lastIndexOf(".png") == destImg.src.length - 4) && (bv >= 5 && bv < 7)) {
	        // this (and a couple other mods) fixes an IE6 error caused by the png-fix script
	        this.style.display = "inline-block";
	    } else {
	        this.style.display = "inline";
	    }
	}
	destImg.src = srcImg.src;
	destImg.alt = srcImg.alt;
	destLink.href = srcLink.href;
	
	srcImg.src = origDestSrc;
	srcImg.alt = origDestAlt;
	srcLink.href = origDestLink;
}











function randomizeImageListWithTracking(listName) {
	// loop through image array, assign a random element to an image in the grid, then delete it from the array
	var list = document.getElementById(listName);
	var listItems = list.getElementsByTagName("li");
	
	for( var i = 0; i < listItems.length; i++ )
	{
		n = rand(listItems.length);
		
		var destItem = listItems[i];
		var srcItem = listItems[n];
		var destImg = destItem.getElementsByTagName("img")[0];  // the current img in the list
		var srcImg = srcItem.getElementsByTagName("img")[0];    // random previous img
		var destLink = destItem.getElementsByTagName("a")[0];
		var srcLink = srcItem.getElementsByTagName("a")[0];
		
		var destEvent = destLink.attributes["onclick"].value;
		var srcEvent = srcLink.attributes["onclick"].value;
		
		swapImagesWithTracking( destImg,
					srcImg,
					destLink,
					srcLink,
					destEvent,
					srcEvent );
	}
}

function swapImagesWithTracking( destImg, srcImg, destLink, srcLink, destEvent, srcEvent ) {
	var origDestSrc = destImg.src;
	var origDestAlt = destImg.alt;
	var origDestLink = destLink.href;

	destImg.onload = function() {
	    var bv = parseFloat(navigator.appVersion.split("MSIE")[1]);  // browser version
	    if ((destImg.src.toLowerCase().lastIndexOf(".png") == destImg.src.length - 4) && (bv >= 5 && bv < 7)) {
	        // this (and a couple other mods) fixes an IE6 error caused by the png-fix script
	        this.style.display = "inline-block";
	    } else {
	        this.style.display = "inline";
	    }
	}
	destImg.src = srcImg.src;
	destImg.alt = srcImg.alt;
	destLink.href = srcLink.href;
	destLink.attributes["onclick"].value = srcEvent;
	
	srcImg.src = origDestSrc;
	srcImg.alt = origDestAlt;
	srcLink.href = origDestLink;
	srcLink.attributes["onclick"].value = destEvent;
}