// last updated, james maarhuis, 5/2/2002 3:14:09 PM

// start custom generic rollover scripts, short html optimized, requires preload flag
// (short html optimized = efforts to shorten the html for bandwidth)
// * gif only
// * over images MUST have suffix -over

function cron(whatName,srcPrefix) {
	if (document.images && (preloadFlag == true)) {
		if (!srcPrefix) { srcPrefix = "images/" }
		imgfileName = srcPrefix + whatName + "-over.gif";
		// alert(imgfileName);
		document[whatName].src = imgfileName;
	}
}

function croff(whatName,srcPrefix) {
	if (document.images && (preloadFlag == true)) {
		if (!srcPrefix) { srcPrefix = "images/" }
		imgfileName = srcPrefix + whatName + ".gif";
		document[whatName].src = imgfileName;
	}
}


// for newImage, create a global array for image variables, so each imgvar is unique
var newImageKount = 0;
var newImageArray = Array();

// start generic explicit rollover script (requires preload flag)
function newImage(arg) {
	if (document.images) {
		newImageArray[newImageKount] = new Image();
		newImageArray[newImageKount].src = arg;
		newImageKount++;
		return newImageArray[newImageKount];
	}
}

// long form HTML img swap, args are in pairs, (name,swap2src)
function changeImages() {
	if (document.images && (preloadFlag == true)) {
		for (var i=0; i<changeImages.arguments.length; i+=2) {
			document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
		}
	}
}

// start generic img preload script
var preloadFlag = false;
function preloadImages() {
	
	if (document.images) {
		
		// explict preloads here
		// ...
		
		
		// start autoPreload
		autoPreloadImages();
		preloadFlag = true;
	}
}


// autoPreloadImages checks all local images and 'auto-assumes' a filename to preload for
// all images with a "name" attribute.  
//   - the rollover image is assumed to have suffix "-over"
//   - requires "newImage" function
//   - assumes 3 character extension (".gif", ".jpg")
// james maarhuis, v1.1, april 2002

function autoPreloadImages() {
	if (document.images) {
		
		var baseHREF = location.href.substring(0,location.href.lastIndexOf("/")+1);
		var autoLoaded = "autoLoaded: \n <br><br>" + location.href + "<BR><BR>";
		
	for (var i=0; i<document.images.length; i+=1) {
			if (document.images[i].name) { 
				imagesrc_full = document.images[i].src;

				imagesrc_prefix = imagesrc_full.substring(0,imagesrc_full.length-4);
				
				imagesrc_suffix = imagesrc_full.substring(imagesrc_full.length-4,imagesrc_full.length);
				preloadThis = newImage(imagesrc_prefix + "-over" + imagesrc_suffix);
		
				autoLoaded += imagesrc_prefix + "-over" + imagesrc_suffix + " \n <br>";
			}
		}
		
		// section below pops a new window with a SRC list of the autoPreloaded Images
		
		/*
		newWindow = window.open("","srclist","height=600,width=600,resizable=yes");
		newWindow.document.write(autoLoaded);
		newWindow.document.close();
		newWindow.focus();
		*/
		
	}
}



// start geneiic popWindow script
function popWindow(whatURL,whatName,whatWidth,whatHeight) {
	window.status='';
	newWindow = window.open(whatURL,whatName,"scrollbars=no,width=" + whatWidth + ",height=" + whatHeight + ",toolbar=no,titlebar=no");
	newWindow.focus();
	window.status=''
}	

	

function triStateMouseEvent(rollClick, myIndex, maxIndex, ssImgSRC) {

	// imgNamePrefix is the prefix of the image names in the tristate set
	// rollclick has 3 values, where 1 is rollon, 2 is rolloff, 3 is click
	// myIndex is the number in the set of images that are to be tristated
	// maxIndex is the max number of the images in the tristate set
	
	// step 0:  set default SRC prefix. deault imgNamePrefix
	imgNamePrefix = "icon_";
	srcPrefix = "../../images/";
	//alert("111");
	// step 1:  has the tristate beein initialized?
	if (!triStateInit) {
		alert ('triState functionality not initialized!');
	} else {
		//alert("222");
		// if click...
		if (rollClick == 3) {
			
			// onClick, step 1:  reset all images to 0 (off)
			for (var i=1; i<=maxIndex; i+=1) {
				triStateImageState[i] = 0;
				// alert(i);
			}
			
			// onClick, step 2:  update the value of current img to 1 (on)
			triStateImageState[myIndex] = 1;
			
			// onClick, step 3:  update all tristate images to reflect their updated state
			for (var i=1; i<=maxIndex; i+=1) {
				imgName = imgNamePrefix + i;
				
				// step 3.1:  develop full img name dependant on state
				if (triStateImageState[i] == 1) {
					imgFileFull = srcPrefix + imgNamePrefix + i + "-on.gif";
				} else {
					imgFileFull = srcPrefix + imgNamePrefix + i + ".gif";
				}
				
				//alert("in: " + imgName);
				//alert("iff: " + imgFileFull);
				
				changeImages(imgName, imgFileFull);
				//changeImages("icon_1", "../../images/icon_1-on.gif");
			}
			
			// onClick, step 4:  update the screenshot
			changeImages('screenshot', ssImgSRC);
		// end if click;
		// else rollon or rolloff
		} else { 
			//alert("333");
			// step 1:  if not currently on, swap to appropriate state
			if (triStateImageState[myIndex] == 0) {
				//alert("444");
				imgName = imgNamePrefix + myIndex;
				
				// if rollover...
				if (rollClick == 1) {
					imgFileFull = srcPrefix + imgName + "-over.gif";
				} else {
					// rolloff...
					imgFileFull = srcPrefix + imgName + ".gif";
				}
				
				//alert("in: " + imgName);
				//alert("iff: " + imgFileFull);
				changeImages(imgName, imgFileFull);
			}
		
		}
		
		
	}
	window.status='';
}

// tristate initialization, global variables
var triStateImageState = Array();
var triStateMaxIndex = 3;
var triStateInit = false;

triStateInitialize();

function triStateInitialize() {

	// alert("hi!");
	// step 1:  initialize the first image with a value of 1 (on)
	triStateImageState[1] = 1;
	
	// step 2:  initialize the subsequent image(s) with a value of 0 (off)
	for (var i=2; i<=triStateMaxIndex; i+=1) {
		triStateImageState[i] = 0;
		// alert(i);
	}
	
	// step 3:  begin preloading the subsequent images
	
	triStateInit = true;
	
}