<!--
/*
	Title:       mouseover.js
	Version:     2.03
	Date:        2001/10/23
	Author:      MC
	Copyright:   Copyright (c) 2000
	Company:     Rhino Internet
	Description: General Purpose Mouseover Script

	Usage:   <BODY ... ONLOAD="menu_setup();menu_click('name');">

	         <A HREF="URL" ONMOUSEOVER="menu_over('name');" ONMOUSEOUT="menu_out('name');" ONCLICK="menu_click('name');">
	         <IMG SRC="/mouseovers/name_off.jpg" BORDER="0" ALT="" NAME="name"></A>

	Note: All references to "name" in the sample above must match a given "name" from the list in imageArray()

	Version History:
	1.00  REVIE 2000/09/12  created
	1.50  MC    2001/02/11  cleaned up, added error checking
	2.00  MC    2001/04/03  complete rewrite, added menu_setup and menu_object_test, secondary image support
	2.01  MC    2001/05/03  added seperate filetype for secondary image, onload menu_click example
 	2.02  MC    2001/06/27  added additional checking for secondary image object
 	2.03  MC    2001/10/23  added checking in menu_click for each non-clicked image while turning off
----------------------------------------------------------------------------*/
// Configuration:

var debug = 0;                             // Required. 1 to see alerts for configuration errors, 0 for normal use
var imageDir = "/nav/";             // Required. Path to mouseover images. Include trailing /
var imageArray = new Array("yournoip","support","services","downloads","company"); // Required. Quoted, comma separated list of image names
var filetype = ".gif";                     // Required. ".jpg" or ".gif"
var onmouseover_suffix = "_over";            // Required. Usually "_on"
var onmouseout_suffix = "_off";            // Required. Usually "_off"
var onclick_suffix = "";             // Optional. Leave blank if no onclick events
var secondary_suffix = "";            // Optional. Leave blank if no secondary (TV) image
var secondary_image_name = "";         // Optional. IMG NAME attribute of secondary (TV) image to change
var secondary_filetype = "";           // Optional. ".jpg" or ".gif" Leave blank if no secondary (TV) image

// End Configuration - DO NOT CHANGE ANYTHING BELOW
/* --------------------------------------------------------------------------*/
var setup_done = 0;
var secondary_image_default = '';
var whereami = '';
var moimages = new Array();
var imageStates = new Array(onmouseover_suffix,onmouseout_suffix);
if (document.images) { menu_setup(); }
function menu_setup() {
	if (setup_done) { return; }
	if (! document.images) { return; }
	if (onclick_suffix) { imageStates[imageStates.length+1] = onclick_suffix; }
	if (secondary_suffix) { imageStates[imageStates.length+1] = secondary_suffix; }
	for (var i in imageStates) {
		moimages[imageStates[i]] = new Array(imageArray.length);
		for (var j in imageArray) {
			moimages[imageStates[i]][imageArray[j]] = new Image();
			if (imageStates[i] == secondary_suffix && secondary_filetype) {
				moimages[imageStates[i]][imageArray[j]].src = imageDir + imageArray[j] + imageStates[i] + secondary_filetype;
			}
			else {
				moimages[imageStates[i]][imageArray[j]].src = imageDir + imageArray[j] + imageStates[i] + filetype;
			}
		}
	}
	setup_done = 1;
} // end menu_setup
function menu_object_test(itemID,state) {
	if (! document.images) { return false; }
	if (! moimages[state]) {
		if (debug) { alert('MOUSEOVER JAVASCRIPT ERROR:\nNo menu object defined for state "' + state + '". Check mouseover config.'); }
		return false;
	}
	if (! moimages[state][itemID]) {
		if (debug) { alert('MOUSEOVER JAVASCRIPT ERROR:\nNo image object defined for state "' + state + '" of item "' + itemID + '". Check mouseover config.'); }
		return false;
	}
	return(document_images_test(itemID));
} // end menu_object_test
function document_images_test(itemID) {
	if (! document.images) { return false; }
	if (! document.images[itemID]) {
		if (debug) { alert('MOUSEOVER JAVASCRIPT ERROR:\nNo IMG in document with NAME="' + itemID + '". Check HTML.'); }
		return false;
	}
	return true;
} // end document_images_test
function menu_over(itemID) {
	if (menu_object_test(itemID,onmouseover_suffix) && itemID != whereami) {
		document.images[itemID].src = moimages[onmouseover_suffix][itemID].src;
		if (secondary_suffix && menu_object_test(itemID,secondary_suffix) && document_images_test(secondary_image_name)) {
			if (!secondary_image_default && secondary_image_name && document_images_test(secondary_image_name)) {
				secondary_image_default = document.images[secondary_image_name].src;
			}
			document.images[secondary_image_name].src = moimages[secondary_suffix][itemID].src;
		}
	}
} // end menu_over
function menu_out(itemID) {
	if (menu_object_test(itemID,onmouseout_suffix) && itemID != whereami) {
		document.images[itemID].src = moimages[onmouseout_suffix][itemID].src;
		if (secondary_suffix && document_images_test(secondary_image_name)) {
			document.images[secondary_image_name].src = secondary_image_default;
		}
	}
} // end menu_out
function menu_click(itemID) {
	var state = onmouseover_suffix;
	if (onclick_suffix) { state = onclick_suffix;}
	if (!secondary_image_default && secondary_image_name && document_images_test(secondary_image_name)) {
		secondary_image_default = document.images[secondary_image_name].src;
	}
	if (menu_object_test(itemID,state)) {
		document.images[itemID].src = moimages[state][itemID].src;
		for (var i in imageArray) {
			if (imageArray[i] != itemID) {
				if (menu_object_test(itemID,onmouseout_suffix) && document_images_test(itemID)) {
					document.images[imageArray[i]].src = moimages[onmouseout_suffix][imageArray[i]].src;
				}
			}
		}
		if (secondary_suffix && document_images_test(secondary_image_name)) {
			document.images[secondary_image_name].src = secondary_image_default;
			secondary_image_default = moimages[secondary_suffix][itemID].src;
		}
		whereami = itemID;
	}
} // end menu_click
// end mouseover.js
// -->
