// JavaScript Document

// Set default sport/color condition for page
var catalogURL = "/images/catalog";
var sessionstamp = "";
var imagesLoaded = 0;

// Runs when a thumbnail finishes loading
function checkCatalogThumbProgress(img, progress, imgcount) {
	// Add to 'loaded' counter and display at full opacity
	imagesLoaded++;
	img.style.cssText = 'filter: alpha(opacity=100); -moz-opacity: 1; opacity: 1;';
	if (imagesLoaded >= imgcount && progress) progress.style.visibility = 'hidden';
}

// Runs when a popup image finishes loading
function checkCatalogImgProgress(img) {
	// Display image, hide progress wheel
	var progress = document.getElementById("catalog-imageprog");
	var table = document.getElementById("catalog-imagetable");
	if (table) table.style.display = '';
	if (progress) progress.style.display = 'none';
}

// Sets up catalog popups
function setupCatalogPopups(elem, firstimg, imgborder) {
	var img = elem.getElementsByTagName("img");
	if (img.length > firstimg) {
		for (x = firstimg; x < img.length; x++) {
			img[x].onclick = function() { openCatalogPopup(this, imgborder); };
		}
	}
	// Preload popup
	createCatalogPopup();
	// Assign session stamp
	sessionstamp = new Date().getTime();
}

// Creates an individual catalog popup
function createCatalogPopup() {
	// Preload popup images
	(new Image()).src = catalogURL + '/catalog_popup.png';
	(new Image()).src = catalogURL + '/catalog_close_off.gif';
	(new Image()).src = catalogURL + '/catalog_close_on.gif';
	// Create the main div for the popup background
	var bkg_div = document.createElement("div");
	bkg_div.id = 'catalog-popupbkg';
	bkg_div.style.display = 'none';
	document.body.appendChild(bkg_div);
	// Create the main div for the popup
	var main_div = document.createElement("div");
	main_div.id = 'catalog-popup';
	main_div.style.display = 'none';
	document.body.appendChild(main_div);
	// Create the close box div
	var close_div = document.createElement("div");
	close_div.className = 'close';
	main_div.appendChild(close_div);
	// Create the close box link tag
	var close_a = document.createElement("a");
	close_a.setAttribute("href", "javascript:hideCatalogPopup();");
	close_div.appendChild(close_a);
	close_a.appendChild(document.createTextNode("close window "));
	// Create the close box image
	var close_img = document.createElement("img");
	var closeURL = catalogURL + '/catalog_close_off.gif';
	var closeRolloverURL = catalogURL + '/catalog_close_on.gif';
	close_img.setAttribute("align", "absmiddle");
	close_img.width = 16;
	close_img.height = 16;
	close_img.src = closeURL;
	addRollover(close_a, close_img, closeURL, closeRolloverURL);
	close_img.setAttribute("alt", "Close");
	close_a.appendChild(close_img);
	// Create the progress table
	var tbl = document.createElement("table");
	tbl.id = 'catalog-imageprog';
	tbl.style.display = '';
	tbl.cellSpacing = 0;
	tbl.cellPadding = 0;
	tbl.border = 0;
	main_div.appendChild(tbl);
	var tb = document.createElement("tbody");
	tbl.appendChild(tb);
	var trow = document.createElement("tr");
	tb.appendChild(trow);
	tcell = document.createElement("td");
	trow.appendChild(tcell);
	var timg = document.createElement("img");
	timg.src = '/images/icons/loading_wheel.gif';
	timg.width = 16;
	timg.height = 16;
	timg.setAttribute("align", "absmiddle");
	tcell.appendChild(timg);
	tcell.appendChild(document.createTextNode("Loading image"));
	// Create the image table
	var tbl = document.createElement("table");
	tbl.style.display = 'none';
	tbl.id = 'catalog-imagetable';
	tbl.setAttribute("cellspacing", "0");
	tbl.setAttribute("cellpadding", "0");
	tbl.setAttribute("border", "0");
	main_div.appendChild(tbl);
	var tb = document.createElement("tbody");
	tbl.appendChild(tb);
	var trow = document.createElement("tr");
	tb.appendChild(trow);
	tcell = document.createElement("td");
	tcell.id = "catalog-image";
	trow.appendChild(tcell);
	tcell.appendChild(document.createTextNode(" "));
	// Create the title
	var title = document.createElement("h1");
	title.id = "catalog-title";
	main_div.appendChild(title);
	title.appendChild(document.createTextNode(" "));
}

// Opens a popup window with the image enlargement
function openCatalogPopup(elem, imgborder) {
	var popup = document.getElementById("catalog-popup");
	var popupbkg = document.getElementById("catalog-popupbkg");
	var img_container = document.getElementById("catalog-image");
	var title_container = document.getElementById("catalog-title");
	var progress = document.getElementById("catalog-imageprog");
	var table = document.getElementById("catalog-imagetable");
	if (popup && popupbkg && img_container && title_container) {
		// Display progress wheel
		if (table) table.style.display = 'none';
		if (progress) progress.style.display = '';
		// Get image information
		var imgURL = elem.src.replace("_thumb", "");
		// Insert image
		while (img_container.firstChild != null) {
			img_container.removeChild(img_container.firstChild);
		}
		var img = document.createElement("img");
		img.onload = function() { checkCatalogImgProgress(this); }
		img.src = imgURL + "?t=" + sessionstamp;
		img.setAttribute("alt", elem.getAttribute("alt"));
		if (imgborder) img.style.border = '1px solid #999999';
		img_container.appendChild(img);
		// Insert title
		replaceText(title_container, elem.getAttribute("alt"));
		// Hide selection fields
		if (document.forms.length > 0) {
			for (var f = 0; f < document.forms.length; f++) {
				var form = document.forms[f];
				if (form) {
					for (var e = 0; e < form.elements.length; e++) {
						var elem = form.elements[e];
						if (elem.type == 'select-one' || elem.type == 'select-multiple') elem.style.visibility = 'hidden';
					}
				}
			}
		}
		// Show popup
		popupbkg.style.display = '';
		popup.style.display = '';
	}
}

function hideCatalogPopup() {
	var popup = document.getElementById("catalog-popup");
	var popupbkg = document.getElementById("catalog-popupbkg");
	if (popup) popup.style.display = 'none';
	if (popupbkg) popupbkg.style.display = 'none';
	// Show selection fields
	if (document.forms.length > 0) {
		for (var f = 0; f < document.forms.length; f++) {
			var form = document.forms[f];
			if (form) {
				for (var e = 0; e < form.elements.length; e++) {
					var elem = form.elements[e];
					if (elem.type == 'select-one' || elem.type == 'select-multiple') elem.style.visibility = 'visible';
				}
			}
		}
	}
}

// Image button rollover handler
function addRollover(elem, img, normalURL, rolloverURL) {
	(new Image()).src = rolloverURL;
	elem.onmouseover = function() { img.src = rolloverURL; }
	elem.onmouseout = function() { img.src = normalURL; }
}