/** roundedcorners.js
 *
 *  Create rounded corners for IE and Opera
 *  Version: 3.0.19
 *
 *  Copyright (C) 2008 Thomas J. Giordano
 *  tjgiordano@hotmail.com
 * 
 *  Revised: 06-02-08
 *
 *  Notice: This JS will only be applied if the browser is Opera, or has a user agent that matches Internet Explorer 6+
 *
 */

/*
 * Creates, styles, and returns an image element
 */
function makeImgElement(pParent, pImgUrl, pTop, pLeft, pImgHeight, pImgWidth, pBorderWidth)
{
	var img = document.createElement("span");
	img.style.display = "block";
	img.style.fontSize = "1px"; // For IE6, doesn't hurt other browsers
	img.style.backgroundImage = "url(" + pImgUrl + ")";
	img.style.height = pImgHeight + "px";
	img.style.width = pImgWidth + "px";
	img.style.position = "absolute";
	img.className = "roundedcorner";
	
	if (isIE6)
	{
		// Custom positioning for IE6
		if (pTop)
			img.style.top = "0px";
		else
			img.style.top = (pParent.offsetHeight - pImgHeight) + "px";  // IE 6 doesn't do bottom positioning so good...
		if (pLeft)
			img.style.left = "-" + pBorderWidth + "px";
		else
			img.style.right = "0px";
	}
	else
	{
		// This is for IE 7 and Opera
		if (pTop)
			img.style.top = "-" + pBorderWidth + "px";
		else
			img.style.bottom = "-" + pBorderWidth + "px";
		if (pLeft)
			img.style.left = "-" + pBorderWidth + "px";
		else
			img.style.right = "-" + pBorderWidth + "px";
	}
	
	return img;
}

/*
 * Deletes all elements with the "roundedcorner" class name within the passed element
 */
function cleanCorners(pElm)
{
	var imgs = pElm.getElementsByTagName("span");
	// Loop backwards because we're deleting elements:
	for (var i = imgs.length - 1; i >= 0; i--)
		if (imgs[i].className == "roundedcorner")
			pElm.removeChild(imgs[i]);
}

/*
 * Gets and adds the image elements to the navigation
 */
function drawCorners(pElm)
{
	if (pElm.parentNode.id == "selectednavlistitem" && (pElm.parentNode.name == "highlightednavlistitem" || !showHideSelectedSection))
	{
		// It's the highlighted and selected nav section
		pElm.appendChild(makeImgElement(pElm, "design/nav_corner_top-left_tan.gif", true, true, 12, 12, 2));
		pElm.appendChild(makeImgElement(pElm, "design/nav_corner_top-right_tan.gif", true, false, 12, 12, 2));
		pElm.appendChild(makeImgElement(pElm, "design/nav_corner-open_bottom-left_tan.gif", false, true, 12, 12, 2));
		pElm.appendChild(makeImgElement(pElm, "design/nav_corner-open_bottom-right_tan.gif", false, false, 12, 12, 2));
	}
	else if (pElm.parentNode.id == "selectednavlistitem")
	{
		// It's the selected nav section, but it's not highlighted
		pElm.appendChild(makeImgElement(pElm, "design/nav_corner_top-left_tan.gif", true, true, 12, 12, 2));
		pElm.appendChild(makeImgElement(pElm, "design/nav_corner_top-right_tan.gif", true, false, 12, 12, 2));
		pElm.appendChild(makeImgElement(pElm, "design/nav_corner_bottom-left_tan.gif", false, true, 12, 12, 2));
		pElm.appendChild(makeImgElement(pElm, "design/nav_corner_bottom-right_tan.gif", false, false, 12, 12, 2));
	}
	else if (pElm.parentNode.name == "highlightednavlistitem")
	{
		// It's the highlighted nav section
		pElm.appendChild(makeImgElement(pElm, "design/nav_corner_top-left_yellow.gif", true, true, 12, 12, 2));
		pElm.appendChild(makeImgElement(pElm, "design/nav_corner_top-right_yellow.gif", true, false, 12, 12, 2));
		pElm.appendChild(makeImgElement(pElm, "design/nav_corner-open_bottom-left_yellow.gif", false, true, 12, 12, 2));
		pElm.appendChild(makeImgElement(pElm, "design/nav_corner-open_bottom-right_yellow.gif", false, false, 12, 12, 2));
	}
	else
	{
		// It's neither a highlighted nor selected nav section
		pElm.appendChild(makeImgElement(pElm, "design/nav_corner_top-left_yellow.gif", true, true, 12, 12, 2));
		pElm.appendChild(makeImgElement(pElm, "design/nav_corner_top-right_yellow.gif", true, false, 12, 12, 2));
		pElm.appendChild(makeImgElement(pElm, "design/nav_corner_bottom-left_yellow.gif", false, true, 12, 12, 2));
		pElm.appendChild(makeImgElement(pElm, "design/nav_corner_bottom-right_yellow.gif", false, false, 12, 12, 2));
	}
}

/*
 * Cleans and replaces corner elements
 * Used when changing nav images from open subsections to closed subsections and visa-versa.
 */
function redoCorners(pElm)
{
	if (makeRoundedCorners)
	{
		cleanCorners(pElm);
		drawCorners(pElm);
	}
}

/*
 * Gets and adds the image elements to all non-navigation parts of the page
 */
function setupPageCorners()
{
	var box = document.getElementById("feature");
	box.appendChild(makeImgElement(box, "design/feature_corner_top-left_green.gif", true, true, 32, 32, 2));
	box.appendChild(makeImgElement(box, "design/feature_corner_top-right_green.gif", true, false, 32, 32, 2));
	box.appendChild(makeImgElement(box, "design/feature_corner_bottom-left_green.gif", false, true, 32, 32, 2));
	box.appendChild(makeImgElement(box, "design/feature_corner_bottom-right_green.gif", false, false, 32, 32, 2));
	
	box = document.getElementById("secondary");
	box.appendChild(makeImgElement(box, "design/secondary-feature_corner_top-left_tan.gif", true, true, 18, 18, 2));
	box.appendChild(makeImgElement(box, "design/secondary-feature_corner_top-right_tan.gif", true, false, 18, 18, 2));
	box.appendChild(makeImgElement(box, "design/secondary-feature_corner_bottom-left_tan.gif", false, true, 18, 18, 2));
	box.appendChild(makeImgElement(box, "design/secondary-feature_corner_bottom-right_tan.gif", false, false, 18, 18, 2));

	box = document.getElementById("title");
	box.appendChild(makeImgElement(box, "design/title_corner_bottom-left_white.gif", false, true, 32, 32, 0));
	box.appendChild(makeImgElement(box, "design/title_corner_bottom-right_white.gif", false, false, 32, 32, 0));
}

/*
 * Runs when the navigation has loaded, it calls the functions to draw the corners on all parts of the nav.
 * We only want this to happen after the nav is inserted into the document.
 */
function setupNavCorners()
{
	var box = document.getElementById("navtitle");
	box.appendChild(makeImgElement(box, "design/nav_corner_bottom-left_white.gif", false, true, 12, 12, 0));
	box.appendChild(makeImgElement(box, "design/nav_corner_bottom-right_white.gif", false, false, 12, 12, 0));

	var navItems = document.getElementById("navlist").getElementsByTagName("div");
	for (var i = 0; i < navItems.length; i++)
		if (navItems[i].className.match(/sectiontitle/))
			drawCorners(navItems[i]);
}

/*
 * Start preloading images as soon as the script loads
 */
// Preload White Title Nav Corners:
new Image().src = "design/nav_corner_bottom-left_white.gif";
new Image().src = "design/nav_corner_bottom-right_white.gif";
// Preload Tan Nav Corners:
new Image().src = "design/nav_corner_top-left_tan.gif";
new Image().src = "design/nav_corner_top-right_tan.gif";
new Image().src = "design/nav_corner_bottom-left_tan.gif";
new Image().src = "design/nav_corner_bottom-right_tan.gif";
new Image().src = "design/nav_corner-open_bottom-left_tan.gif";
new Image().src = "design/nav_corner-open_bottom-right_tan.gif";
// Preload Yellow Nav Corners:
new Image().src = "design/nav_corner_top-left_yellow.gif";
new Image().src = "design/nav_corner_top-right_yellow.gif";
new Image().src = "design/nav_corner_bottom-left_yellow.gif";
new Image().src = "design/nav_corner_bottom-right_yellow.gif";
new Image().src = "design/nav_corner-open_bottom-left_yellow.gif";
new Image().src = "design/nav_corner-open_bottom-right_yellow.gif";
// Preload White Title Feature Corners:
new Image().src = "design/title_corner_bottom-left_white.gif";
new Image().src = "design/title_corner_bottom-right_white.gif";
// Preload Green Feature Corners:
new Image().src = "design/feature_corner_top-left_green.gif";
new Image().src = "design/feature_corner_top-right_green.gif";
new Image().src = "design/feature_corner_bottom-left_green.gif";
new Image().src = "design/feature_corner_bottom-right_green.gif";
// Preload Tan Secondary Feature Corners:
new Image().src = "design/secondary-feature_corner_top-left_tan.gif";
new Image().src = "design/secondary-feature_corner_top-right_tan.gif";
new Image().src = "design/secondary-feature_corner_bottom-left_tan.gif";
new Image().src = "design/secondary-feature_corner_bottom-right_tan.gif";
// Preload Nav Title:
new Image().src = "design/nav_title_center_brown.gif";
// Preload Nav Bullet:
new Image().src = "design/nav_bullet_left_gray.gif";

//EOF
