
var inDebugMode = true;

var currentSection;
var currentGridSize;
var currentImage;
var xmlResponse;
var textResponse;
var loading = false;
var imageGrid;
var fadeTimeout;
var gLoadImage;

var gLeftPanels = new Array("one_hundred_grid","two_grid","nine_grid","thirty_six_grid","sixteen_grid","four_grid","twenty_five_grid", "image_display_left","large_icon");
var gRightPanels = new Array("generic_image_panel","paypal_image","t-shirts","main_page_body");
var gShowingImage = false;
var gPageLoaded = false;

var gMonitorImageCallbackTimeout;

function addEvent(element, eventType, theFunc, useCapture)
{
  if (element.addEventListener)
  {
    element.addEventListener(eventType, theFunc, useCapture);
    return true;
  } 
  else if (element.attachEvent)
  {
    var result = element.attachEvent("on" + eventType, theFunc);
    return result;
  } 
  else 
  {
    alert("Handler could not be attached");
  }
}

function showLegalNotice()
{
	var myWin = window.open('/index.php?display=1','mywin','left=20,top=20,width=500,height=600,toolbar=0,resizable=1');
}

function setupOnloadFunction()
{
	writeHistory("homepage");
	setTimeout("gPageLoaded = true;",10);
//	popupMessage(true);
}


function switchHeader()
{
	document.getElementById("header").innerHTML = "NOT SAME";
}


function hideElement(theElement)
{
	if (document.getElementById(theElement))
	{
		document.getElementById(theElement).style.visibility = "hidden";
	}
}
function showElement(theElement)
{
	document.getElementById(theElement).style.visibility = "visible";
}

function showLeftPanel(panelToShow, resetGrid)
{
	for (var i = 0; i < gLeftPanels.length; i++)
	{
		if (panelToShow != gLeftPanels[i])
		{
			hideElement(gLeftPanels[i]);
		}
	}
/*
	if (panelToShow != "thirty_six_grid" || resetGrid)
	{
		for (var i = 0; i < 36; i++)
		{
			document.getElementById("thirty_six_" + (i+1)).src = "/images/loading_grid.gif";
		}
	}
*/
	showElement(panelToShow);
}

function showRightPanel(panelToShow)
{
	for (var i = 0; i < gRightPanels.length; i++)
	{
		if (panelToShow != gRightPanels[i])
		{
			hideElement(gRightPanels[i]);
		}
	}
	showElement(panelToShow);
}

function sendData(data, url, methodCall)
{
   	var xmlHTTP = null;
	if(window.XMLHttpRequest){
	  xmlHTTP = new XMLHttpRequest();
	} else if(window.ActiveXObject){
	  xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP");
	} else {
	  return;
	}

	xmlHTTP.onreadystatechange = function()
	{
		if (xmlHTTP.readyState == 1)
		{
			document.getElementById("sending").style.visibility = "visible";
			window.status = "Sending data...";
		}

		if (xmlHTTP.readyState == 4)
		{
			document.getElementById("sending").style.visibility = "hidden";
			xmlResponse = xmlHTTP.responseXML;
			textResponse = xmlHTTP.responseText;
			eval(methodCall);
		}
	}

	xmlHTTP.open('POST', url, true);
	xmlHTTP.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHTTP.setRequestHeader("Content-length", data.length);
	xmlHTTP.setRequestHeader("Connection", "close");
	xmlHTTP.send(data);
}

function tShirtFormCallback()
{
	// clear the form, cos Mozilla dont

	if (textResponse == "sent")
	{
		showRightPanel("order_thankyou");
	}
	else window.alert(textResponse);

	document.t_shirt_form.name.value = "";
	document.t_shirt_form.email.value = "";
	document.t_shirt_form.size.value = "medium";
	document.t_shirt_form.name.disabled = false;
	document.t_shirt_form.email.disabled = false;
	document.t_shirt_form.size.disabled = false;
	document.t_shirt_form.submit.disabled = false;

}

function loadData(file, methodCall)
{
   	var xmlHTTP = null;
	if(window.XMLHttpRequest){
	  xmlHTTP = new XMLHttpRequest();
	} else if(window.ActiveXObject){
	  xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP");
	} else {
	  return;
	}

	var requestString;
	if (inDebugMode)
	{
		requestString = "http://www.true6.com/xml/" + file + ".xml?" + Math.random();
	}
	else requestString = "http://www.true6.com/xml/" + file + ".xml?";


	xmlHTTP.onreadystatechange = function()
	{
		// 1 = loading, 2 = loaded (connected), 3 = interactive, 4 = complete
		if (xmlHTTP.readyState == 1)
		{
			showElement("loading");
//			document.getElementById("loading").style.visibility = "visible";
			window.status = "Loading...";
		}

		if (xmlHTTP.readyState == 4)
		{
//			hideElement("loading");
//			document.getElementById("loading").style.visibility = "hidden";
			xmlResponse = xmlHTTP.responseXML;
			textResponse = xmlHTTP.responseText;
			eval(methodCall);
		}

	}
	xmlHTTP.open('GET',requestString, true);
	xmlHTTP.send('');
}


function sectionCallback(section, doHistory)
{
	currentSection = section;
	clearTimeout(gMonitorImageCallbackTimeout);
	clearTimeout(fadeTimeout);
	var hasGrid = false;
	
	gShowingImage = false;
	if (doHistory)
	{
		writeHistory(section);
	}

	// reset the generic panel
	document.getElementById("generic_image_panel_item1").innerHTML = "&nbsp;";
	document.getElementById("generic_image_panel_item2").innerHTML = "&nbsp;";
	document.getElementById("generic_image_panel_item3").innerHTML = "&nbsp;";
	document.getElementById("generic_image_panel_item4").innerHTML = "&nbsp;";
	document.getElementById("generic_image_panel_item5").innerHTML = "&nbsp;";
	document.getElementById("generic_image_panel_item6").innerHTML = "&nbsp;";

	swapData(xmlResponse,'header','header',0);
	clearParas();
	if (xmlResponse.getElementsByTagName('under_construction').length > 0)
	{
		showRightPanel("generic_image_panel");
		restyleElementFromXML("document_element");
		restyleElementFromXML("under_construction_element");
		restyleElementFromXML("launch_date_element");
		restyleElementFromXML("para_element");
		replaceTextOfElement(getNodeData(xmlResponse,'under_construction_element',0), "UNDER CONSTRUCTION");
		replaceTextOfElement(getNodeData(xmlResponse,'launch_date_element',0), getNodeData(xmlResponse,'launch_date',0));
		replaceTextOfElement(getNodeData(xmlResponse,'para_element',0), getNodeData(xmlResponse,'para',0));
	}
	else
	{
		for (var i = 0; i < xmlResponse.getElementsByTagName('para').length; i++)
		{
			swapData(xmlResponse,'para' + (i+1),'para',i);
		}
	}

	if (xmlResponse.getElementsByTagName('grid').length > 0)
	{
		loadData(section + "_grid", "gridCallback('" + section + "');");
		hasGrid = true;
//		showRightPanel("main_page_body");
	}
	
	if (xmlResponse.getElementsByTagName('newsflash').length > 0)
	{
//		window.alert("newsflash");
		replaceTextOfElement("news_flash", getNodeData(xmlResponse,'newsflash',0));
		showElement("news_flash");
	}
	else hideElement("news_flash");
	
	if (xmlResponse.getElementsByTagName('image').length > 0)
	{
		// show an image...
		//window.alert("has image: " + xmlResponse.getElementsByTagName('image')[0]);
		document.getElementById("large_icon").style.opacity = 0;
		document.getElementById("large_icon").style.visibility = "hidden";
		gLoadImage = null;
		gLoadImage = new Image();
		gLoadImage.src = getNodeData(xmlResponse, 'image', 0);
		if (xmlResponse.getElementsByTagName('under_construction').length > 0)
		{
			if (!hasGrid)
			{
				monitorImage("icon_image", "large_icon", "generic_image_panel", false, "", 0);
			} else monitorImage("icon_image", "large_icon", "generic_image_panel", true, "showGrid();", 1000);
		}
		else 
		{
			if (!hasGrid)
			{
				monitorImage("icon_image", "large_icon", "main_page_body", false, "", 0);
			} else monitorImage("icon_image", "large_icon", "main_page_body", true, "showGrid();", 1000);
		}
	}
	else
	{
		// show default image...

		document.getElementById("large_icon").style.opacity = 0;
		gLoadImage = null;
		gLoadImage = new Image();
		gLoadImage.src = "/images/true6_main_logo.gif";

		if (xmlResponse.getElementsByTagName('under_construction').length > 0)
		{
			monitorImage("icon_image", "large_icon", "under_construction", false, "", 0);
		}
		else 
		{
			monitorImage("icon_image", "large_icon", "main_page_body", false, "", 0);
		}

	}
}

function gridCallback(section)
{
	var gridSize = getNodeData(xmlResponse,'size',0);

	imageGrid = new Grid(gridSize);

	for (var i = 0; i < gridSize; i++)
	{
		var parent = xmlResponse.getElementsByTagName('image')[i];
		var thisImage = new GridImage(parent);
		imageGrid.AddImage(thisImage, (i));

	}
	
	showRightPanel("main_page_body");

	imageGrid.Render();
}

function getNodeData(xmlResponse, nodeName, index)
{
	if (xmlResponse.getElementsByTagName(nodeName).length > 0)
	{
		return xmlResponse.getElementsByTagName(nodeName)[index].firstChild.data;
	}
	else return "";
}

function nodePresent(xmlResponse, nodeName)
{
	if (xmlResponse.getElementsByTagName(nodeName).length > 0)
	{
		return true;
	}
	return false;
}

function getNodeFromXML(xmlResponse, nodeName)
{
	if (xmlResponse.getElementsByTagName(nodeName).length > 0)
	{
		return xmlResponse.getElementsByTagName(nodeName)[0];
	}
	return null;
}

function getChildNodeData(xmlResponse, parentNode, nodeName, index)
{
	return parentNode.getElementsByTagName(nodeName)[index].firstChild.data;
}


// for static site only - need to rethink this
function sectionChangeInit(section)
{
/*
	if (section == "illustration")
	{
		showElement("news_flash");
//		replaceTextOfElement("popup_text", "24 new images will upload to the illustration section on the 6th August 2007");
	}
	else hideElement("news_flash");
*/
}

function navChangeSection(section, doHistory)
{
	sectionChangeInit(section);
	changeSection(section, doHistory);
}

function changeSection(section, doHistory)
{
	loadData(section, "sectionCallback('" + section + "', " + doHistory + ");");
}

function clearParas()
{
	for (var i = 1; i < 4; i++)
	{
		if (document.getElementById("para" + (i)).firstChild)
		{
			document.getElementById("para" + (i)).firstChild.data = "";
		}
	}
}

function swapData(xmlResponse, htmlNode, xmlTag, index)
{
	if (document.getElementById(htmlNode).firstChild && xmlResponse.getElementsByTagName(xmlTag)[index].firstChild)
	{
		document.getElementById(htmlNode).firstChild.data = xmlResponse.getElementsByTagName(xmlTag)[index].firstChild.data;
	}
}

function switchElement()
{
	var parent = document.getElementById("header").parentNode;
	var oldChild = document.getElementById("header");
	var newChild = document.getElementById("navigation").cloneNode(true);
	window.alert(parent);
	parent.replaceChild(newChild, oldChild);
}

function replaceTextOfElement(elementID, theText)
{
	if (document.getElementById(elementID))
	{
		if (document.getElementById(elementID).firstChild)
		{
			document.getElementById(elementID).firstChild.data = theText;
		}
	}
	else window.alert(document.getElementById(elementID));
}

function showGrid()
{
	if (imageGrid.size == 100)
	{
		showLeftPanel('one_hundred_grid', false);
	}
	else if (imageGrid.size == 36)
	{
		showLeftPanel('thirty_six_grid', false);
	}
	else if (imageGrid.size == 16)
	{
		showLeftPanel('sixteen_grid', false);
	}
	else if (imageGrid.size == 9)
	{
		showLeftPanel('nine_grid', false);
	}
	else if (imageGrid.size == 4)
	{
		showLeftPanel('four_grid', false);
	}
	else if (imageGrid.size == 2)
	{
		showLeftPanel('two_grid', false);
	}
	else if (imageGrid.size == 25)
	{
		showLeftPanel('twenty_five_grid', false);
	}
	
//	showElement("image_display_left");
		
}

function hideGrid()
{
	document.getElementById("large_icon").style.visibility = "visible";
	if (imageGrid.size == 36)
	{
		document.getElementById("thirty_six_grid").style.visibility = "hidden";
		for (var i = 0; i < 36; i++)
		{
			document.getElementById("thirty_six_" + (i+1)).src = "images\grid_loading.gif";
		}
	}
	else if (imageGrid.size == 16)
	{
		document.getElementById("sixteen_grid").style.visibility = "hidden";
	}
	else if (imageGrid.size == 9)
	{
		document.getElementById("nine_grid").style.visibility = "hidden";
	}
}

function monitorImage(elementToSet, panelToShow, rightPanelToShow, hasCallback, callbackMethod, callbackTimeout)
{
	if (gLoadImage.complete == true)
	{
//		document.getElementById(elementToSet).style.opacity = 0.01;
		document.getElementById(elementToSet).src = gLoadImage.src;
		if (!hasCallback)
		{
			fadeImage(panelToShow, 0, 0, false, "", 0);
		}
		else
		{
			fadeImage(panelToShow, 0, 0, true, callbackMethod, callbackTimeout);		
		}
		showLeftPanel(panelToShow, false);
		showRightPanel(rightPanelToShow);
		hideElement("loading");

		return;
	}
	setTimeout("monitorImage(\"" + elementToSet + "\", \"" + panelToShow + "\",\"" + rightPanelToShow + "\",\"" + hasCallback + "\", \"" + callbackMethod + "\"," + callbackTimeout + ");", 1);
}

function getCurrentGridImage(imageNum)
{
	return imageGrid.gridImages[imageNum - 1];
}

function restyleElementFromXML(theElementId)
{
	if (nodePresent(xmlResponse, theElementId))
	{
		var thisNode = getNodeFromXML(xmlResponse, theElementId);
		var nodeName = getNodeData(xmlResponse,theElementId,0);
		var elementNode = document.getElementById(nodeName);
		elementNode.setAttribute("class", thisNode.getAttribute("class"));		
		elementNode.setAttribute("className", thisNode.getAttribute("class"));		
	}
}

function showImage(imageNum)
{
//	setTimeout("writeHistory('" + currentSection + "');", 10);
	writeHistory(currentSection);
	setTimeout("gShowingImage = true;", 100);
	var thisImage = getCurrentGridImage(imageNum);
	showElement("loading");

	document.getElementById("image_display_left").style.opacity = 0;
	gLoadImage = null;
	gLoadImage = new Image();
	gLoadImage.src = thisImage.largeImagePath;
	document.getElementById("large_icon").style.visibility = "hidden";

	// reset the generic panel
	document.getElementById("generic_image_panel_item1").innerHTML = "&nbsp;";
	document.getElementById("generic_image_panel_item2").innerHTML = "&nbsp;";
	document.getElementById("generic_image_panel_item3").innerHTML = "&nbsp;";
	document.getElementById("generic_image_panel_item4").innerHTML = "&nbsp;";
	document.getElementById("generic_image_panel_item5").innerHTML = "&nbsp;";
	document.getElementById("generic_image_panel_item6").innerHTML = "&nbsp;";

	// see which part of the page to show

	restyleElementFromXML("document_element");
	
	if (nodePresent(xmlResponse, "title_element"))
	{
		var titleNodeName = getNodeData(xmlResponse,'title_element',0)
		restyleElementFromXML("title_element");
		var titleString = thisImage.title;
		if (thisImage.is_trademarked && thisImage.is_trademarked == 1)
		{
			if (document.getElementById(titleNodeName).getElementsByTagName("sup").length <= 0)
			{
				var tmElement = document.createElement("sup");
				var tmText = document.createTextNode(" TM");
				tmElement.appendChild(tmText);
				tmElement.setAttribute("class", "trademark");
				tmElement.setAttribute("className", "trademark");
				document.getElementById(titleNodeName).appendChild(tmElement);
			}
		}
		else
		{
			if (document.getElementById(titleNodeName).getElementsByTagName("sup").length > 0)
			{
				// get rid of it
				var delElement = document.getElementById(titleNodeName).getElementsByTagName("sup")[0];
				document.getElementById(titleNodeName).removeChild(delElement);				
			}
		}
		replaceTextOfElement(getNodeData(xmlResponse,'title_element',0), titleString);
	}
	
	if (nodePresent(xmlResponse, "price_element"))
	{
		replaceTextOfElement(getNodeData(xmlResponse,'price_element',0), thisImage.price);
	}

	if (nodePresent(xmlResponse, "year_element"))
	{
		restyleElementFromXML("year_element");
		replaceTextOfElement(getNodeData(xmlResponse,'year_element',0), "YEAR " + thisImage.year);
	}
	
	if (nodePresent(xmlResponse, "description_element"))
	{
		restyleElementFromXML("description_element");
		replaceTextOfElement(getNodeData(xmlResponse,'description_element',0), thisImage.description);
	}	
	
	if (nodePresent(xmlResponse, "limited_edition_element"))
	{
		restyleElementFromXML("limited_edition_element");
		replaceTextOfElement(getNodeData(xmlResponse,'limited_edition_element',0), thisImage.limited_edition);
	}
	
	if (nodePresent(xmlResponse, "series_element"))
	{
		restyleElementFromXML("series_element");
		replaceTextOfElement(getNodeData(xmlResponse,'series_element',0), thisImage.series + " (SERIES)");
	}

	if (nodePresent(xmlResponse, "type_element"))
	{
		restyleElementFromXML("type_element");
		replaceTextOfElement(getNodeData(xmlResponse,'type_element',0), thisImage.type);
	}

	if (nodePresent(xmlResponse, "toyclass_element"))
	{
		restyleElementFromXML("toyclass_element");
		replaceTextOfElement(getNodeData(xmlResponse,'toyclass_element',0), thisImage.toyclass);
	}

//	if (nodePresent(xmlResponse, "sizes_element"))
//	{
//		replaceTextOfElement(getNodeData(xmlResponse,'sizes_element',0), thisImage.sizes);
//	}
/*
	if (thisImage.paypal_item_code)
	{
//		document.paypal_form.encrypted.value = thisImage.paypal_item_code;
		showElement("paypal_image");
	}
	else
	{
		hideElement("paypal_image");
	}
*/
	monitorImage("image_display", "image_display_left", getNodeData(xmlResponse,"document_element",0), true, "imageLoadCallback(" + imageNum + ");",1); //waits for image to load then fades it in
	currentImage = imageNum;
}

function imageLoadCallback(imageNum)
{
	var thisImage = getCurrentGridImage(imageNum);
	if (thisImage.paypal_item_code)
	{
//		document.paypal_form.encrypted.value = thisImage.paypal_item_code;
		if (nodePresent(xmlResponse, "paypal_offset"))
		{
			var marginOffset = 20;
			marginOffset += parseInt(getNodeData(xmlResponse,"paypal_offset", 0));
			document.getElementById("paypal_image").style.marginTop = marginOffset + "px";
		}
		else document.getElementById("paypal_image").style.marginTop = "20px";
		showElement("paypal_image");
	}
	else
	{
		hideElement("paypal_image");
	}

}

function showBackToGrid()
{
	if (document.getElementById("back_to_grid").style.visibility != "visible")
	{
		document.getElementById("back_to_grid").style.visibility = "visible";
	}
}

function hideBackToGrid()
{
	document.getElementById("back_to_grid").style.visibility = "hidden";
}

function fadeImage(theImage, lastOpacity, fadeDirection, hasCallback, callbackMethod, callbackTimeout)
{
	if (lastOpacity == 0.0 && fadeDirection == 0)
	{
		// clear any running fades
		clearTimeout(fadeTimeout);
	}

	if (lastOpacity == 1.0 && fadeDirection == 1)
	{
		// clear any running fades
		clearTimeout(fadeTimeout);
	}

	if (lastOpacity < 1.0 && fadeDirection == 0)
	{
		lastOpacity += 0.05;
		document.getElementById(theImage).style.opacity = lastOpacity;
		fadeTimeout = setTimeout("fadeImage(\"" + theImage + "\", " + lastOpacity + ", " + fadeDirection + "," + hasCallback + ",\"" + callbackMethod + "\"," + callbackTimeout + ");", 100);
	}
	else if (lastOpacity >= 0.0 && fadeDirection == 1)
	{
		lastOpacity -= 0.05;
		document.getElementById(theImage).style.opacity = lastOpacity;
		fadeTimeout = setTimeout("fadeImage(\"" + theImage + "\", " + lastOpacity + ", " + fadeDirection + "," + hasCallback + ",\"" + callbackMethod + "\"," + callbackTimeout + ");", 100);
	}
	else
	{
		//finished
		if (hasCallback)
		{
			gMonitorImageCallbackTimeout = setTimeout("eval(\"" + callbackMethod + "\");", callbackTimeout);
		}
	}
	
	if (lastOpacity <= 0.0 && fadeDirection == 1)
	{
		hideElement(theImage);
		document.getElementById(theImage).style.opacity = 0.0;
	}

}

function highlightImage(imageNum, shouldHighlight)
{
	if (shouldHighlight)
	{
		document.getElementById(imageGrid.sizeString + imageNum).style.color = "red";
	}
	else
	{
		document.getElementById(imageGrid.sizeString + imageNum).style.color = "white";
	}
}

function showActiveNavigation()
{
	if (gPageLoaded)
	{
		document.getElementById("navigation").style.visibility = "hidden";
		document.getElementById("active_navigation").style.visibility = "visible";
	}
}

function hideActiveNavigation()
{
	if (gPageLoaded)
	{
		document.getElementById("navigation").style.visibility = "visible";
		document.getElementById("active_navigation").style.visibility = "hidden";
	}
}

function doTShirtForm()
{
	showRightPanel("t-shirt_order");
	replaceTextOfElement("ts_order_title", imageGrid.gridImages[currentImage - 1].title);
	document.t_shirt_form.t_shirt_title.value = imageGrid.gridImages[currentImage - 1].title;
}

function submitTShirtForm()
{
	// validate the form
	var errorString = "Please check the following items:\n\n";
	var formError = false;
	if (document.t_shirt_form.name.value == "")
	{
		errorString += "Name must be entered.\n";
		formError = true;
	}

	if (document.t_shirt_form.email.value == "")
	{
		errorString += "Valid email must be entered.\n";
		formError = true;
	}

	if (formError)
	{
		window.alert(errorString);
	}
	else
	{
		document.t_shirt_form.name.disabled = true;
		document.t_shirt_form.size.disabled = true;
		document.t_shirt_form.email.disabled = true;
		document.t_shirt_form.submit.disabled = true;
		//grab the form data
		var str = "title=" + encodeURI(document.t_shirt_form.t_shirt_title.value);
		str += "&name=" + encodeURI(document.t_shirt_form.name.value);
		str += "&email=" + encodeURI(document.t_shirt_form.email.value);
		str += "&size=" + encodeURI(document.t_shirt_form.size.value);
		sendData(str, "testform.php", "tShirtFormCallback();");
	}
}

function setupGrid(size, sizeString)
{
	for (var j = 0; j < size; j++)
	{
		for (var i = 0; i < size; i++)
		{
			document.write("<img onmouseover=\"highlightImage(" + ((j * size) + i+1) + ", true);\" onmouseout=\"highlightImage(" + ((j * size) + i+1) + ", false);\" onClick=\"showImage(" + ((j * size) + i+1) + "); return false\" id=\"" + sizeString + ((j * size) + i+1) + "\" src=\"/images/loading_grid.gif\" class=\"" + sizeString + "grid_img\">");
		}
		document.writeln("<br />");
	}
}

function setupStaticGrid(size, sizeString, section)
{
	imageGrid = new Grid(size * size);
	imageGrid.sizeString = sizeString;

	for (var j = 0; j < size; j++)
	{
		for (var i = 0; i < size; i++)
		{
			document.write("<a onmouseover=\"highlightImage(" + ((j * size) + i+1) + ", true);\" onmouseout=\"highlightImage(" + ((j * size) + i+1) + ", false);\" href=\"showImage.php?section=" + section + "&imageID=" + ((j * size) + i+1) + "\"><img id=\"" + sizeString + ((j * size) + i+1) + "\" src=\"/images/loading_grid.gif\" class=\"" + sizeString + "grid_img\"></a>");
		}
		document.writeln("<br />");
	}
}

function setupStaticGrid2(size, sizeString, section)
{
	if (size > 2)
	{
		imageGrid = new Grid(size * size);
	}
	else
	{
		imageGrid = new Grid(size);
	}

	imageGrid.sizeString = sizeString;		

	if (size > 2)
	{
		for (var j = 0; j < size; j++)
		{
			for (var i = 0; i < size; i++)
			{
				document.write("<a href=\"/showImage.php/" + section + "/" + ((j * size) + i+1) + "\"><img id=\"" + sizeString + ((j * size) + i+1) + "\" src=\"/images/loading_grid.gif\" class=\"" + sizeString + "grid_img\"></a>");
			}
			document.writeln("<br />");
		}
	}
	else
	{
		document.write("<a href=\"/showImage.php/" + section + "/" + 1 + "\"><img id=\"" + sizeString + 1 + "\" src=\"/images/loading_grid.gif\" class=\"" + sizeString + "grid_img\"></a>");
		document.write("<a href=\"/showImage.php/" + section + "/" + 2 + "\"><img id=\"" + sizeString + 2 + "\" src=\"/images/loading_grid.gif\" class=\"" + sizeString + "grid_img\"></a>");	
	}
}

function getBrowserDimension(type) {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
	if (type==0) return myWidth;
	if (type==1) return myHeight;
}

function getPageCenter(type)
{
	return getBrowserDimension(type) / 2;
}

function popupMessage(shouldShow)
{
	// grey out the page and show our box
	if (shouldShow)
	{
		document.getElementById("message_box").style.left = (getPageCenter(0) - 150) + "px";
		document.getElementById("left_panel").style.opacity = 0.2;
		document.getElementById("right_panel").style.opacity = 0.2;
		document.getElementById("message_box").style.visibility = "visible";
	}
	else
	{
		document.getElementById("left_panel").style.opacity = 1;
		document.getElementById("right_panel").style.opacity = 1;
		document.getElementById("message_box").style.visibility = "hidden";
	}
}

function handleTShirtForm()
{
	var thisImage = getCurrentGridImage(currentImage);

	if (document.ts_form_size.tshirt_size.selectedIndex == 2 ||
		document.ts_form_size.tshirt_size.selectedIndex == 3 ||
		document.ts_form_size.tshirt_size.selectedIndex == 4)
	{
		// submit the form
		var itemString = thisImage.type + " (" + document.ts_form_size.tshirt_size.options[document.ts_form_size.tshirt_size.selectedIndex].text + ")";
		document.paypal_form.item_name.value = itemString;
//		document.paypal_form.custom.value = document.ts_form_size.tshirt_size.options[document.ts_form_size.tshirt_size.selectedIndex].text;
		document.paypal_form.item_number.value = thisImage.title;
//		window.alert(thisImage.numericPrice);
		document.paypal_form.amount.value = thisImage.numericPrice;
//		window.alert("Sending:\namount:" + document.paypal_form.amount.value + "\n" + document.paypal_form.item_name.value + "\n" + document.paypal_form.item_number.value);


//		document.paypal_form[0].value = "http://www.true6.com/paypal_return_handler.php/" + document.ts_form_size.tshirt_size.options[document.ts_form_size.tshirt_size.selectedIndex].text;
		document.paypal_form.submit();
	}
	else
	{
		window.alert("Please choose a T-Shirt size.");
	}
}

function writeHistory(historyString)
{
	browserString = navigator.userAgent;
	if (browserString.indexOf("MSIE ") != -1 && browserString.indexOf("Mac") != -1)
	{
		//window.alert("Mac IE detected. " + browserString);
		// do nothing for now
		document.location.href="main_static.php";
//		window.alert("Sadly, we cannot support IE for Macintosh.\n\nPlease use an alternative browser such as Firefox (www.mozilla.com)");
	}
	else
	{
		var theTime = new Date();
		var timeStampedString = theTime.getTime() + "|" + historyString;
		var doc = document.getElementById("historyFrame").contentDocument;
		if (doc == null) { // Internet Explorer
		doc = document.getElementById("historyFrame").contentWindow.document;
		}
		doc.open();
		doc.write("<html><body><div id=\"history\">" + timeStampedString + "</div></body></html>");
		doc.close();
	}
}

function updateHistory()
{
	browserString = navigator.userAgent;
	if (browserString.indexOf("MSIE ") != -1 && browserString.indexOf("Mac") != -1)
	{
		//window.alert("Mac IE detected. " + browserString);
		// do nothing for now
	}
	else
	{
		var doc = document.getElementById("historyFrame").contentDocument;
		if (doc == undefined) { // Internet Explorer
		doc = document.getElementById("historyFrame").contentWindow.document;
		}

		var historyStringArray = (doc.getElementById("history").firstChild.data).split("|");
		var timeStamp = historyStringArray[0];
		var historyData = historyStringArray[1];

		if(historyData != currentSection
			&& historyData != "init" && gPageLoaded)
		{
			changeSection(historyData, false);
		}
		else if (historyData == currentSection && gShowingImage == true)
		{
			changeSection(historyData, false);
		}
	}
}