	/*//---------------------------------------------*/
	/*// Name: Site - Global Scripts				 */
	/*// Language: JavaScript						 */
	/*//---------------------------------------------*/


	/*//---------------------------------------------*/
	/*// Declare/Define Global Variables			 */
	/*//---------------------------------------------*/
	var resourceRoot = "/resources/";
	var siteRoot = "";

	/*//---------------------------------------------*/
	/*// Name: InitializeGlobal()					 */
	/*// Desc: Entry Point for Onload Event			 */
	/*//---------------------------------------------*/
	function InitializeGlobal()
	{
		if ( ( InitializeGlobal.arguments ) && ( InitializeGlobal.arguments.length == 2 ) )
		{
			if ( InitializeGlobal.arguments[0] )
			{
				siteRoot = InitializeGlobal.arguments[0];
			}
			resourceRoot += InitializeGlobal.arguments[1]+"/";
		}

		if ( typeof( InitializeSite ) == "function" )
			InitializeSite();

		if ( typeof( InitializeLocal ) == "function" )
			InitializeLocal();
		
		if ( siteRoot.match( /^http/i ) ) {
			siteRoot = siteRoot;
		} else {
			var pRegexAddress = ( window.location.href.match( /^https:/i ) ) ? new RegExp( "([^:]+://[^/]+/[^/]+).*", "i" ) : new RegExp( "([^:]+://[^/]+).*", "i" );
			var pResultAddress = pRegexAddress.exec( window.location );
			siteRoot = pResultAddress[1];
		}	
		SetExternalLinkTargets();
		PreloadRollOverImages();
	}

	/*//---------------------------------------------*/
	/*//////////////////////////////////////////////////////////////*/
	/*//---------------------------------------------*/


	/*//---------------------------------------------*/
	/*// Name: PreloadRollOverImages()				 */
	/*// Desc: Image Preload Function				 */
	/*//---------------------------------------------*/
	function PreloadRollOverImages()
	{
		if ( !document.getElementsByTagName )
			return;

		var pRegexClassName = new RegExp( ".*imgRollOver-([^\\s]*).*", "i" );
		var pRegexSelector = new RegExp( "a\.imgRollOver-(.*):hover", "i" );
		var pRegexSelectorSafari = new RegExp( "a\.imgRollOver-([^:[ ]+)[^:]+:.*", "i" );
		var pRegexBackground = new RegExp( "url\\((.*)\\)", "i" );
		var pRegexFullUrl = new RegExp( "(http)", "i" );

		var theRules = new Array();
		if (document.styleSheets[1].cssRules)
			theRules = document.styleSheets[1].cssRules;
		else if (document.styleSheets[1].rules)
			theRules = document.styleSheets[1].rules;

		var pDocument = document;
		if( pDocument.images )
		{
			if( !pDocument.MM_p )
				pDocument.MM_p = new Array();

			var j = pDocument.MM_p.length;
			var anchors = pDocument.getElementsByTagName( "a" );
			for ( var i=0;i<anchors.length;i++ )
			{
				var anchor = anchors[i];
				if ( anchor.className )
				{
					var pResultClassName = pRegexClassName.exec( anchor.className );
					if ( pResultClassName != null )
					{
						var imageHoverHref = "";
						for ( var x=0;x<theRules.length;x++ )
						{
							var pResultSelector = pRegexSelector.exec( theRules[x].selectorText );
							var pResultSelectorSafari = pRegexSelectorSafari.exec( theRules[x].selectorText );
							if ( ( pResultSelector != null ) || ( pResultSelectorSafari != null ) )
							{
								var selectorClass = "";
								if ( pResultSelector == null )
								{
									selectorClass = pResultSelectorSafari[1];
								}
								else
								{
									selectorClass = pResultSelector[1];
								}

								if ( selectorClass == pResultClassName[1] )
								{
									var pResultUrlSafari = pRegexBackground.exec(theRules[x].style.backgroundImage);
									var pResultUrl = pRegexBackground.exec(theRules[x].style.backgroundImage);
									
									
									if ( pResultUrlSafari != null )
									{
										imageHoverHref = pResultUrlSafari[1];
										break;
									} else if ( pResultUrl != null ) {
										imageHoverHref = pResultUrl[1];
										break;
									}
								}
							}
						}
						if ( imageHoverHref == "" )
							continue;
							
						var pResultFullUrl = pRegexFullUrl.exec(imageHoverHref);
						
						pDocument.MM_p[j] = new Image;
						
						if ( pResultFullUrl != null ) {
							
							pDocument.MM_p[j++].src = imageHoverHref;
						} else {
							pDocument.MM_p[j++].src = siteRoot+resourceRoot+imageHoverHref;
						}
						//alert( pDocument.MM_p[j-1].src );
						//document.successForm.alertText.value = document.successForm.alertText.value + pDocument.MM_p[j-1].src + "\r\n";
						//document.failedForm.alertText.value = document.failedForm.alertText.value + pDocument.MM_p[j-1].src + "\r\n";
					}
				}
			}
		}
	}


	/*//---------------------------------------------*/
	/*// Name: SetExternalLinkTargets()				 */
	/*// Desc: Modify External Links for Standards	 */
	/*//---------------------------------------------*/
	function SetExternalLinkTargets()
	{
		if ( !document.getElementsByTagName )
			return;

		var anchors = document.getElementsByTagName( "a" );
		for ( var i=0;i<anchors.length;i++ )
		{
			var anchor = anchors[i];
			if ( ( anchor.getAttribute( "href" ) ) && ( anchor.getAttribute( "rel" ) == "newWindow" ) )
				anchor.target = "_blank";
		}
	}

	/*//---------------------------------------------*/
	/*// Name: OpenWindow()							 */
	/*// Desc: Display Sized Popup					 */
	/*//---------------------------------------------*/
	function OpenWindow( cAddress, pTargetWnd, cTargetId, iWinWidth, iWinHeight, bBuffered, bDisplayScrollBars )
	{
		if ( pTargetWnd != null && !pTargetWnd.closed && 3 <= parseInt( navigator.appVersion ) ) {
			pTargetWnd.focus();
			return;
		}
		else
		{
			var iBufferSize = ( bBuffered ) ? 15 : 0;
			pTargetWnd = window.open( '',cTargetId,'toolbar=0,location=0,directories=0,scrollbars=' + ( ( bDisplayScrollBars ) ? '1' : '0' ) + ',status=0,resizable=0,width=' + ( iWinWidth + iBufferSize ) + ',height=' + ( iWinHeight + iBufferSize ) );
		}
	}


	/*//---------------------------------------------*/
	/*//////////////////////////////////////////////////////////////*/
	/*//---------------------------------------------*/

	
	/*//---------------------------------------------*/
	/*// Name: GetDataValue()						 */
	/*// Desc: Retrieves Form Data					 */
	/*//---------------------------------------------*/
	function GetDataValue( objectName )
	{
		var dataObject = document.getElementById( objectName );
		if ( dataObject == null )
			return null;

		var dataValue = '';
		switch ( dataObject.nodeName.toLowerCase() )
		{
			case "select":
				if ( dataObject.selectedIndex == -1 )
				{
					dataValue = '';
					break;
				}

				dataValue = dataObject.options[ dataObject.selectedIndex ].value;
				break;
			case "div":
				var checkInput = dataObject.firstChild;
				while ( checkInput != null )
				{
					if ( checkInput.nodeName.toLowerCase() == "input" )
					{
						if ( checkInput.checked )
						{
							dataValue = checkInput.value;
							break;
						}
					}
					checkInput = checkInput.nextSibling;
				}
				break;
			default:
				dataValue = ( dataObject.type == "checkbox" ) ? dataObject.checked : dataObject.value;
				break;
		}

		return dataValue;
	}

	/*//---------------------------------------------*/
	/*// Name: ValidateFormData()					 */
	/*// Desc: Validates Form Data					 */
	/*//---------------------------------------------*/
	function ValidateFormData()
	{
		if ( ( ValidateFormData.arguments == null ) || ( ValidateFormData.arguments.length % 2 ) )
			return false;

		var checkScan = new RegExp( "([^(]*)(\\(([^,]+),([^)]+)\\))?", "i" );
		var checkLabelScan = new RegExp( "(.*)-([^\\d]+)(\\d+)?", "i" );
		var checkSucceeded = true;
		var errorString = "The following errors have occurred:\r\n";
		var additionalConjunction = ", ";
		var finalConjunction = ", and ";

		for ( var i = 0;i < ValidateFormData.arguments.length - 1;i += 2 )
		{
			var dataObject = document.getElementById( ValidateFormData.arguments[i] );
			if ( dataObject == null )
				continue;

			var dataObjectLabel = ValidateFormData.arguments[i];
			if ( document.getElementById( ValidateFormData.arguments[i]+"-label" ) != null )
			{
				dataObjectLabel = document.getElementById( ValidateFormData.arguments[i]+"-label" ).innerHTML;
			}
			else
			{
				var labelResult = checkLabelScan.exec( dataObjectLabel );
				if ( labelResult != null )
				{
					if ( document.getElementById( labelResult[1]+"-label" ) != null )
					{
						labelResult[3] += '';
						if ( ( labelResult[3] == null ) || ( labelResult[3] == '' ) || ( labelResult[3] == 'undefined' ) )
							dataObjectLabel = document.getElementById( labelResult[1]+"-label" ).innerHTML + " (" + labelResult[2] + ")";
						else
							dataObjectLabel = document.getElementById( labelResult[1]+"-label" ).innerHTML + " (" + labelResult[2] + " " + labelResult[3] + ")";
					}
				}
			}

			var dataValue = GetDataValue( ValidateFormData.arguments[i] );
			if ( ( ValidateFormData.arguments[i+1].search( /optional/i ) != -1 ) && ( dataValue == "" ) )
				continue;

			var checkList = ValidateFormData.arguments[i+1].split( ";" );
			var errorSet = "";
			var currentError = "";
			var conjunction = "";
			var currentSucceeded = true;
			for ( var j = 0;j < checkList.length;j++ )
			{
				var checkResult = checkScan.exec( checkList[j] );
				if ( checkResult != null )
				{
					var errorMessage = "";
					switch( checkResult[1] )
					{
						case "required":
						{
							if ( dataValue == "" )
								errorMessage = "is a required field";
							break;
						}

						case "length":
						{
							var min = checkResult[3]*1;
							var max = checkResult[4]*1;

							if ( ( min == max ) && ( dataValue.length != max ) )
								errorMessage = "must be "+max+" characters";
							else if ( ( dataValue.length < min ) || ( dataValue.length > max ) )
								errorMessage = "must be between "+min+" and "+max+" characters";
							break;
						}

						case "value":
						{
							var min = checkResult[3]*1;
							var max = checkResult[4]*1;
							var check = dataValue*1;

							if ( ( min == max ) && ( check != max ) )
								errorMessage = "must be "+max;
							else if ( ( check < min ) || ( check > max ) )
								errorMessage = "must be between "+min+" and "+max;
							break;
						}

						case "pattern":
						{
							var patternScan = new RegExp( document.getElementById( ValidateFormData.arguments[i]+"-dataPattern" ).innerHTML, "i" );
							var patternResult = patternScan.exec( dataValue );
							if ( patternResult == null )
								errorMessage = "is not in a valid format";
							break;
						}

					}

					if ( errorMessage != "" )
					{
						if ( currentError != "" )
						{
							errorSet += conjunction + currentError;
							conjunction = additionalConjunction;
						}
						currentError = errorMessage;
						checkSucceeded = currentSucceeded = false;
					}

					if ( ( checkResult[1] == "required" ) && ( !currentSucceeded ) )
						break;
				}
			}

			if ( errorSet != "" )
				conjunction = finalConjunction;

			if ( currentError != "" )
				errorSet += conjunction + currentError;

			if ( !currentSucceeded )
				errorString += "- "+dataObjectLabel+" " + errorSet + ".\r\n";

		}

		if ( !checkSucceeded )
			alert( errorString );

		return checkSucceeded;
	}

	/*//---------------------------------------------*/
	/*// Name: createFlashObject()					 */
	/*// Desc: Creates A String That Embeds SWF File */
	/*//---------------------------------------------*/
	
	function createFlashObject()
	{
		var fileLocation = createFlashObject.arguments[0];
		var fileWidth = createFlashObject.arguments[1];
		var fileHeight = createFlashObject.arguments[2];
		
		if (createFlashObject.arguments[3])
		{
			var embedBackgroundAtt = 'bgcolor="' + createFlashObject.arguments[3] + '"';
			var paramBackgroundTag = '<param name="bgcolor" value=" \/>' + createFlashObject.arguments[3] + '"';
		}
		else
		{
			var embedBackgroundAtt = 'style="background: transparent;"';
			var paramBackgroundTag = '<param name="wmode" value="transparent" \/>';
		}
		
		var flashObject = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'
		+ 'width="' + createFlashObject.arguments[1] + '"'
		+ 'height="' + createFlashObject.arguments[2] + '"' + '>'
		+ '<param name="movie" value="' + createFlashObject.arguments[0] + '" \/>'
		+ '<param name="quality" value="high" \/>'
		+ paramBackgroundTag
		+ '<embed src="' + createFlashObject.arguments[0] + '"' + 'type="application/x-shockwave-flash"'
		+ 'width="' + createFlashObject.arguments[1] + '"'
		+ 'height="' + createFlashObject.arguments[2] + '"'
		+ embedBackgroundAtt + '><\/embed>'
		+ '<\/object>';
		
		document.write( flashObject );
	}
