/* ########################################################################### *
/* ***** DOCUMENT INFO  ****************************************************** *
/* ########################################################################### *
 * ##### NAME:  global_display.js
 * ##### VERSION: v1.0
 * ##### UPDATED: 01/07/08 (Mick Chmielewski, Eclipse Group)
/* ########################################################################### *

/* ########################################################################### *
/* ***** INDEX *************************************************************** *
/* ########################################################################### *
/* ##### INITIALISATION
/* ##### LISTS
/* ##### TABS
/* ##### CONTRAST SWITCHER
/* ##### PNG FIX
/* ##### TABLE STRIPING
/* ##### PROGRESS BAR CORNERS
/* ##### IE6 CHECKBOX AND RADIO BUTTON PADDING
/* ##### IFRAME RESIZE
/* ########################################################################### */

/* ########################################################################### *
/* ##### INITIALISATION
/* ########################################################################### */

$(document).ready(ecl_init_global);

function ecl_init_global()
{
	// Lists
	ecl_lists();
	
	// PNG fix
	ecl_pngfix();
	
	// Homepage Random Image
	// ecl_homepageRandomImage();	
	
	// Table striping
	ecl_table_stripe();
	
	// Progress bar corners
	ecl_progress_bar();
	
	// IE6 checkbox and radio button padding
	ecl_input_padding();
	
}



/* ########################################################################### *
/* ##### LISTS
/* ########################################################################### */

function ecl_lists()
{
	$('ul li:first-child').addClass("first");
	$('ul li:last-child').addClass("last");
}



/* ########################################################################### *
/* ##### PNG FIX
/* ########################################################################### */

function ecl_pngfix()
{
	$('img[src*=png]').parent().pngFix(); 
}



/* ########################################################################### *
/* ##### HOMEPAGE RANDOM IMAGE
/* ########################################################################### */

/*
function ecl_homepageRandomImage()
{
	if ($('#randomImage').length > 0)
	{		
		var HTML_STRING = '<img src="" width="216" height="209" alt="Person with speach bubble" />';
		var randomNumber = Math.floor(Math.random( ) * MAX_NUM - MIN_NUM + 1) + MIN_NUM;
		var randomImagePath = URL_PATH_PREFIX + randomNumber + URL_PATH_SUFFIX;

		$('#randomImage').html(HTML_STRING);
		$('#randomImage img').attr("src", randomImagePath);
	}
	
}

*/

/* ########################################################################### *
/* ##### TABLE STRIPING
/* ########################################################################### */

function ecl_table_stripe()
{
	$('.highlightRows tr').mouseover(function(){$(this).addClass('over');}).mouseout(function() {$(this).removeClass('over');});
	$('.stripe tr:odd').removeClass('alt');
	$('.stripe tr:even').addClass('alt');
	$('.stripe tr').removeClass('last');
	$('.stripe tr:first-child').addClass('first');	
	$('.stripe tr:last-child').addClass('last');
}




/* ########################################################################### *
/* ##### PROGRESS BAR CORNERS
/* ########################################################################### */

function ecl_progress_bar()
{
	if ($(".progressBar .nav-horizontal .first").length > 0 && !(typeof $(".progressBar .nav-horizontal .first").corner == "undefined")) 
	{
		$(".progressBar .nav-horizontal .first").corner("tl bl 8px");
		$(".progressBar .nav-horizontal .last").corner("tr br 8px");
	}
}




/* ########################################################################### *
/* ##### IE6 CHECKBOX AND RADIO BUTTON PADDING
/* ########################################################################### */

function ecl_input_padding()
{
	if ((jQuery.browser.msie)&&(parseInt(jQuery.browser.version)==6)) 
	{
		$('input[type=checkbox],input[type=radio]').addClass('nopad');
	}
}




/* ########################################################################### *
/* ##### IFRAME RESIZE
/* ########################################################################### */
/* 
	 NOTE: The iframeLoaded() function is called on the iframe onLoad event.
*/

function iframeLoaded()
{
	var applicationIframe = this.parent.document.getElementById("applicationIframe");
	var siteletIframe = this.parent.document.getElementById("siteletIframe");

	if (applicationIframe != null)
	{
		resizeIframe(applicationIframe);
	}
	
	if (siteletIframe != null)
	{
		resizeIframe(siteletIframe);
	}

	var IFRAME_WRAPPER_ELEMENT_ID = "contentWrapper";
	var NAV_COLUMN_ELEMENT_ID = "rightColumn";
	
	// Sets the iframe wrapper element to have a height greater than the nav column.
	var leftcol = $(NAV_COLUMN_ELEMENT_ID);
	if (leftcol != null)
	{
		var outer = $(IFRAME_WRAPPER_ELEMENT_ID);
		if (outer != null && leftcol.offsetHeight > outer.offsetHeight)
		{
			outer.style.height = leftcol.offsetHeight + 50 + "px";
		}
	}
	
	return true;
};

function resizeIframe(iframeRef)
{
	iframeRef.style.height = "auto";
	iframeRef.style.overflow = "hidden";
	pageDimensions = getPageDimensions(iframeRef.contentWindow);
	iframeRef.style.height = pageDimensions[1] + "px";
	return true;
};

function getPageDimensions(windowRef)
{
	var body = windowRef.document.getElementsByTagName("body")[0];
	var bodyOffsetWidth = 0;
	var bodyOffsetHeight = 0;
	var bodyScrollWidth = 0;
	var bodyScrollHeight = 0;
	var pageDimensions = [0, 0];

	if (typeof windowRef.document.documentElement != "undefined" && typeof document.documentElement.scrollWidth != "undefined")
	{
		pageDimensions[0] = windowRef.document.documentElement.scrollWidth;
		pageDimensions[1] = windowRef.document.documentElement.scrollHeight;
	}

	bodyOffsetWidth = body.offsetWidth;
	bodyOffsetHeight = body.offsetHeight;
	bodyScrollWidth = body.scrollWidth;
	bodyScrollHeight = body.scrollHeight;

	if (bodyOffsetWidth > pageDimensions[0])
	{
		pageDimensions[0] = bodyOffsetWidth;
	}

	if (bodyOffsetHeight > pageDimensions[1])
	{
		pageDimensions[1] = bodyOffsetHeight;
	}

	if (bodyScrollWidth > pageDimensions[0])
	{
		pageDimensions[0] = bodyScrollWidth;
	}

	if (bodyScrollHeight > pageDimensions[1])
	{
		pageDimensions[1] = bodyScrollHeight;
	}

	return pageDimensions;
}


