
// OBJECTS //

	function bgCatch()
	{
		this.alt = '';
		this.checked = false;
		this.className = '';
		this.elements = new Array();
		this.innerHTML = '';
		this.length = 0;
		this.id = '';
		this.name = '';
		this.selectedIndex = 0;
		this.src = '';
		this.style = new bgCatchStyle();
		this.title = '';
		this.type = '';
		this.value = '';
	}


	function bgCatchStyle()
	{
		this.backgroundImage = '';
		this.display = 'none';
		this.zIndex = 0;
		this.width = 0;
	}


// PROPERTIES //

	var bgFormName;
	var bgFormElements = new Array();
	var bgLoaded = false;
	var bgLoadedAnchor = bgGetAnchor();
	var bgPopup_isShowing = '';
	var bgPopup_stillShowing = '';
	var bgPopup_timeDelay_inMS = 250;													// TIME LAPSE BETWEEN ON-MOUSE-OVER AND POPUP
	var bgPopup_zIndex = 1000;															// INITIAL Z-INDEX LEVEL
	var bgShoppingCart = '/';
	var bgShowFailure = false;
	var bgTrackIt = ( bgIsFrame() ? true : (screen.availHeight > 540) );


// METHODS //

	function bgAJAX_getHTTP()
	{
		var xmlHttp;

		try {																			// FireFox
			xmlHttp = new XMLHttpRequest();
		}
		catch (e) {																		// Internet Explorer
			try {
				xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch (e) {  
				try {
					xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (e) {
					//	alert("Your browser does not support AJAX HTTP");
					return null;
				}
			}
		}
		return xmlHttp;
	}


	function bgAJAX_isLimited( hiddenId )
	{
		var longText = '';
		for ( var i = 0 ; i < 4500 ; i++ ) {
			longText += '0';
		}
		bgSet( hiddenId, longText );

		var isLimited = ( bgGet(hiddenId).innerHTML != longText );
		bgSet( hiddenId, '' );

		return isLimited;
	}


	function bgAJAX_loadXML( text )
	{
		if ( !text || text == '' ) {
			return false;

		} else {
			try {																		// FireFox
				var xmlParser = new DOMParser();
				return xmlParser.parseFromString( text, 'text/xml' );
			}
			catch (e) {																	// Internet Explorer
				try {
					var xmlDom;
					xmlDom = new ActiveXObject("Microsoft.XMLDOM");
					xmlDom.async = false;
					xmlDom.loadXML( text );
					return xmlDom;
				}
				catch (e) {
					//	alert("Your browser does not support AJAX DOM");
					return false;
				}
			}
		}
	}


	function bgAJAX_post( url, params, id )
	{
		var xmlHttp = bgAJAX_getHTTP();

		if ( xmlHttp == null ) {
			return false;

		} else {
			xmlHttp.onreadystatechange = function()
			{
				if ( xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete' ) {
					bgAJAX_return( id, url, xmlHttp.responseText );
					///	alert( xmlHttp.responseText );
				}
			}
			xmlHttp.open( "POST", url, true );
			xmlHttp.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
			xmlHttp.setRequestHeader( "Content-length", params.length );
			xmlHttp.setRequestHeader( "Connection", "close" );
			xmlHttp.send( params );
		}
		///	prompt( 'AJAX Post for "'+ id +'"', url +'?'+ params );
	}


	function bgAJAX_postClick( url, params )
	{
		var xmlHttp = bgAJAX_getHTTP();

		if ( xmlHttp == null ) {
			return false;

		} else {
			xmlHttp.open( "POST", url, true );
			xmlHttp.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
			xmlHttp.setRequestHeader( "Content-length", params.length );
			xmlHttp.setRequestHeader( "Connection", "close" );
			xmlHttp.send( params );
		}
		///	prompt( 'AJAX Click', url +'?'+ params );
	}


	function bgAJAX_postFrame( url, params, id, returnDelay_inMS )
	{
		bgGet(id).src = url +'?'+ params;
		setTimeout( 'bgAJAX_return("'+ id +'","'+ url +'?'+ params +'",null);', returnDelay_inMS );
	}


	function bgAJAX_postForm( url, params )
	{
		params = ( (params.substring(0,1) == '&') ? '' : '&' ) + params;

		var postForm = document.createElement( "form" );
			postForm.setAttribute( "method", "post" );
			postForm.setAttribute( "action", url );

		var params_asArray = params.split( '&' );
		var posDelim, field;

		for ( var i = 1 ; i < params_asArray.length ; i++ ) {
			posDelim = params_asArray[i].indexOf( '=' );

			field = document.createElement( "input" );
				field.setAttribute( "type", "hidden" );
				field.setAttribute( "name", params_asArray[i].substring(0,posDelim) );
				field.setAttribute( "value", bgEncodeHTML(bgDecodeURIComponent( params_asArray[i].substring(posDelim+1) )) );

			postForm.appendChild( field );
		}
		document.body.appendChild( postForm );
		///	prompt( 'AJAX Form', url +'?'+ params );

		postForm.submit();
		document.body.removeChild( postForm );
	}


	function bgAJAX_return( id, url, output )
	{
		var isFrame = ( id.length > 5 && id.substring(id.length-5) == 'frame' );

		// SPECIAL FLAGS
			if ( id == '' ) {
				return;

			} else if ( id == 'redirect' ) {
				if ( bgIsURL(output) ) {
					window.top.location.href = output;
				} else {
					alert( output );
				}

			} else if ( id == 'reload' || output == 'reload' ) {
				window.top.location.reload();

			} else if ( !isFrame && bgIsURL(output) ) {
				window.top.location.href = output;

			} else if ( bgIsURL(id) ) {
				window.top.location.href = id;

			} else if ( output.substring(0,5) == 'post:' ) {
				var posDelim = output.indexOf( '?' );
				bgAJAX_postForm( output.substring(6,posDelim), output.substring(posDelim+1) );

			} else if ( id == 'alert' ) {
				if ( output.length > 0 ) {
					alert( output );
				}

		// CUSTOM RESPONSE
			} else if ( id == 'contact' ) {
				bgEmail_return( output );

			} else if ( id == 'search' ) {
				bgSearch_return( output );

			} else if ( url.toLowerCase().indexOf('/cart') > -1 || url.toLowerCase().indexOf('/products') > -1 || url.toLowerCase().indexOf('/reviews') > -1 || url.toLowerCase().indexOf('/user') > -1 || url.toLowerCase().indexOf('/windowproduct') > -1 ) {
				_bgAJAX_return( id, url, output );

		// STANDARD RESPONSE
			} else {
				bgGet(id).innerHTML = output;
		}
	}


	function bgAJAX_update( xmlText )
	{
		///	alert( xmlText.replace(/></g,'>\n\t<') );//return;
		var xml = bgAJAX_loadXML( xmlText );

		if ( xml ) {
			var xmlItems;
			try {
				xmlItems = xml.getElementsByTagName('xml')[0].getElementsByTagName('item');
			} catch (e) {
				//	alert( '*** NOT UPDATED ***\n\n'+ e +'\n\n'+ xmlText );
				return false;
			}

			for ( var i = 0 ; i < xmlItems.length ; i++ ) {								//	for ( var i = xmlItems.length-1 ; i > 0 ; i-- ) {
				bgSet( xmlItems[i].getAttribute('id'), xmlItems[i].firstChild.nodeValue );
				if ( xmlItems[i].getAttribute('dup') ) {
					bgSet( xmlItems[i].getAttribute('dup'), xmlItems[i].firstChild.nodeValue );
				}
				if ( xmlItems[i].getAttribute('tri') ) {
					bgSet( xmlItems[i].getAttribute('tri'), xmlItems[i].firstChild.nodeValue );
				}
			}
			return true;
		}

		return false;
	}


	function bgConfirm( elem, msg )
	{
		if ( elem.checked ) {
			elem.checked = confirm( msg );
		}
	}


	function bgDecodeHTMLAlt( alt )
	{
		alt = alt.replace(/ &amp; /g,' and ').replace(/&nbsp;/g,' ').replace(/&quot;/g,'"');
		if ( alt.indexOf('&') > -1 ) {
			alt = alt.substring( 0, alt.indexOf('&') );
		}
		if ( alt.indexOf('<') > -1 ) {
			alt = alt.substring( 0, alt.indexOf('<') );
		}
		return alt;
	}


	function bgDecodeURIComponent( component )
	{
		return ( decodeURIComponent(component).replace(/\+/g,' ') );
	}


	function bgEmail_return( output )
	{
		alert( output );

		if ( output.substring(0,9) == 'Thank you' ) {
			bgHide( 'email-us' );

			var formName_temp = bgFormName;
			bgSetForm( 'cuForm' );
			bgSet( 'message', '' );
			bgSetForm( formName_temp );
		}
	}


	function bgEncodeHTML( value )
	{
		return ( value.replace(/</g,'[').replace(/\>/g,']').replace(/\"/g,'\'').replace(/\&/g,'and') );
	}


	function bgEncodeURIParameters( params )
	{
		return ( encodeURIComponent(params).replace(/%26/g,'&').replace(/%3D/g,'=') );
	}


	function bgExists( id )
	{
		return ( bgGet(id).id != '' );
	}


	function bgFocus( elem, clear, nextSelect )
	{
		if ( !clear || elem.initialyCleared ) {
			if ( nextSelect ) {
				elem.select();
			}

		} else {
			elem.value = '';
			elem.initialyCleared = true;
		}
	}


	function bgFormChange()
	{
		bgSetFormValue( 'form.change', '1' );
	}


	function bgFormChangeReset()
	{
		bgSetFormValue( 'form.change', '0' );
	}


	function bgGet( id )
	{
		return bgGetElement( id, null );
	}


	function bgGetAnchor()
	{
		var pos = location.href.indexOf('#');

		if ( pos > -1 ) {
			return location.href.substring( pos+1 );

		} else {
			return '';
		}
	}


	function bgGetDocument( ref )
	{
		return bgGetWindow(ref).document;
	}


	function bgGetElement( id, win )
	{
		var docObject = bgGetDocument( win );

		if ( docObject.getElementById(id) ) {
			return docObject.getElementById(id);

		} else {
			//	alert( 'DOM Error: "'+ id +'" not found' );
			return ( new bgCatch() );
		}
	}


	function bgGetFormElement( id_or_name )
	{
		if ( bgGet(bgFormName)[id_or_name] ) {													// MAY BE CASE SENSITIVE IN IE
			return bgGet(bgFormName)[ id_or_name ];

		} else {
			//	alert( 'DOM Error: "'+ name +'" form-element not found' );
			return ( new bgCatch() );
		}
	}


	function bgGetFormValue( id_or_name )
	{
		var elem = bgGetFormElement( id_or_name );
			value = '';

		if ( elem.options ) {
			value = elem.options[ elem.selectedIndex ].value;

		} else if ( elem.length ) {														// CHECKBOX OR RADIO (ELEM.TYPE MAY NOT AVAILABLE)
			for ( var i = 0 ; i < elem.length ; i++ ) {
				if ( elem[i].checked ) {
					if ( value == '' ) {
						value = elem[i].value;
						if ( elem[i].type == 'radio' ) {
							break;
						}
					} else {
						value += ','+ elem[i].value;
					}
				}
			}

		} else {																		// ID-BASED CALL OR ELEM.LENGTH OF ZERO MAY NOT BE SET
			switch( elem.type ) {
				case 'checkbox':
				case 'radio':
					if ( elem.checked ) {
						value = elem.value;
					}
					break;
				default:
					value = elem.value;
					break;
			}
		}

		return value;
	}


	function bgGetGroup( id_or_name )
	{
		var group = id_or_name;
		if ( group.indexOf(':') > -1 ) {
			group = group.substring( 0, id_or_name.indexOf(':') );
		}
		return group;
	}


	function bgGetNode( id_or_name )
	{
		if ( id_or_name.indexOf(':') == -1 ) {
			return ( id_or_name.substring( id_or_name.lastIndexOf('.')+1 ) );
		} else {
			return ( id_or_name.substring( id_or_name.lastIndexOf(':')+1 ) );
		}
	}


	function bgGetPageType()
	{
		var url = location.href.substring( location.href.lastIndexOf('/')+1 );
		
		if ( url.indexOf('.') == -1 ) {
			return '';

		} else {
			return url.substring( 0, url.indexOf('.') ).replace('_','').toLowerCase();
		}
	}

	function bgGetParam( name )
	{
		var value = bgGetFormValue( name );

		if ( value == '' ) {
			return '';

		} else {
			return bgGetParamAlt( bgGetGroup(name), value );
		}
	}


	function bgGetParamAlt( name, value )
	{
		return ( '&'+ name +'='+ encodeURIComponent(value) );
	}


	function bgGetParamGroup( group )
	{
		var formValues = '';
		if ( group == '' ) {
			formValues += '0=1'
		}

		for ( var i = 0 ; i < bgFormElements.length ; i++ ) {
			if ( formValues.indexOf('&'+ bgFormElements[i].name +'=') == -1 ) {			// ONLY INCLUDE ONCE
				if ( group == '' ) {
					formValues += bgGetParam( bgFormElements[i].name );

				} else if ( bgFormElements[i].name.indexOf(group +'.') == 0 ) {
					if ( bgFormElements[i].name.indexOf('_whole') == -1 && bgFormElements[i].name.indexOf('_fraction') == -1 ) {
						formValues += bgGetParam( bgFormElements[i].name );
					}
				}
			}
		}

		return formValues.replace( /0=1&/g, '' );
	}


	function bgGetRoot( id_or_name )
	{
		if ( id_or_name.indexOf('.popup') > -1 ) {
			return id_or_name;

		} else {
			id_or_name = id_or_name +'.';

			if (
				id_or_name.indexOf('hde.') == 0
				|| ( id_or_name.indexOf('hrl.') == 0 && id_or_name.indexOf('hrl.mnt.') != 0 )
				|| id_or_name.indexOf('rmt.') == 0
				|| id_or_name.indexOf('val.') == 0
				) {																		// TOP LEVEL
				return id_or_name.substring( 0, id_or_name.indexOf('.') );

			} else if (
				id_or_name.indexOf('trt.ctl.') == 0 
				|| id_or_name.indexOf('trt.cun.') == 0 
				|| id_or_name.indexOf('trt.dpy.') == 0 
				|| id_or_name.indexOf('trt.gcl.') == 0 
				|| id_or_name.indexOf('trt.pvy.') == 0 
				|| id_or_name.indexOf('trt.sae.') == 0 
				|| id_or_name.indexOf('trt.siy.') == 0 
				|| id_or_name.indexOf('trt.str.') == 0
				|| id_or_name.indexOf('trt.swc.alt.') == 0
				|| id_or_name.indexOf('trt.sye.') == 0 
				) {																		// THIRD LEVEL
				return id_or_name.substring( 0, id_or_name.indexOf('.',8) );

			} else if ( id_or_name.indexOf('.',4) > -1 ) {								// SECOND LEVEL
				return id_or_name.substring( 0, id_or_name.indexOf('.',4) );

			} else {
				return '';
			}
		}
	}


	function bgGetWindow( ref )
	{
		if ( window[ref] ) {
			return window[ref];

		} else {
			return window;
		}
	}


	function bgGo( formName, url, output )
	{
		var formName_temp = bgFormName;
		bgSetForm( formName );

		if ( output ) {
			bgAJAX_post( url, bgGetParamGroup(''), output );
		} else {
			window.top.location.href = url +'?'+ bgGetParamGroup('');
		}

		bgSetForm( formName_temp );
	}


	function bgHide( id )
	{
		bgGet(id).style.display = 'none';
	}


	function bgHideClass( className )
	{
		for ( var i = 0 ; i < bgFormElements.length ; i++ ) {
			if ( bgFormElements[i].className.indexOf(className) > -1 ) {
				if ( bgFormElements[i].type == 'hidden' ) {
					bgHide( 'div.'+ bgFormElements[i].id );
				} else {
					bgHide( bgFormElements[i].id );
				}
			}
		}
	}


	function bgHideElement( id, win )
	{
		bgGetElement(id,win).style.display = 'none';
	}


	function bgHideList( list )
	{
		if ( list != '' ) {
			var list_asArray = list.split(',');
			for ( var i = 0 ; i < list_asArray.length ; i++ ) {
				bgHide( list_asArray[i] );
			}
		}
	}


	function bgInline( id )
	{
		bgGet(id).style.display = 'inline';
	}


	function bgInlineClass( className )
	{
		for ( var i = 0 ; i < bgFormElements.length ; i++ ) {
			if ( bgFormElements[i].className.indexOf(className) > -1 ) {
				if ( bgFormElements[i].type == 'hidden' ) {
					bgInline( 'div.'+ bgFormElements[i].id );
				} else {
					bgInline( bgFormElements[i].id );
				}
			}
		}
	}


	function bgInlineElement( id, win )
	{
		bgGetElement(id,win).style.display = 'inline';
	}


	function bgInlineList( list )
	{
		if ( list != '' ) {
			var list_asArray = list.split(',');
			for ( var i = 0 ; i < list_asArray.length ; i++ ) {
				bgInline( list_asArray[i] );
			}
		}
	}


	function bgIsBlank( id_or_name )
	{
		return ( bgGetFormValue(id_or_name) == '' );
	}


	function bgIsFrame()
	{
		return !( window.parent.location == window.self.location );
	}


	function bgIsNumber( value )
	{
		return ( value != '' && !isNaN(value) );
	}


	function bgIsVisible( id )
	{
		return ( bgGet(id).style.display == 'block' || bgGet(id).style.display == 'inline' );		// INITIAL CHECK ASSUMES OBJECT IS CLOSED - MUST BE EXPLICITLY SET TO ASSUME OTHERWISE
	}


	function bgIsURL( url )
	{
		return ( url.substring(0,1) == '/' || url.substring(0,4) == 'http' );
	}


	function bgMap( list, key )
	{
		if ( list != '' ) {
			var list_asArray = list.split(',');
			for ( var i = 0 ; i < list_asArray.length ; i++ ) {
				if ( list_asArray[i].indexOf(key +'=') > -1 ) {
					return list_asArray[i].substring( list_asArray[i].indexOf('=')+1 );
				}
			}
		}

		return "";
	}


	function bgMaxlength( elem, maxlength )
	{
		if ( elem.value.length > maxlength ) {
			alert( 'Please restrict your text to '+ maxlength +' characters.' );
			elem.value = elem.value.substring( 0, maxlength );
		}
	}


	function bgMenu( id, on, instant )
	{
		var labelClass, cmd;
		labelClass = bgGet('menu.label.'+ id).className.replace(/ hovering/g,'');

		switch ( on ) {
			case true:
				cmd = 'bgSetClass("menu.label.'+ id +'","'+ labelClass +' hovering");';
				bgPopup_showDelay( 'menu.'+ id, cmd, instant );
				break;

			default:
				cmd = 'bgSetClass("menu.label.'+ id +'","'+ labelClass +'");';
				bgPopup_hideDelay( 'menu.'+ id, cmd );
				break;
		}
	}


	function bgMoreLess( id )
	{
		if ( bgGet(id).className == 'more' ) {
			bgSetClass( id, 'less' );
			bgSet( 'read.more', 'more' );
		} else {
			bgSetClass( id, 'more' );
			bgSet( 'read.more', 'less' );
		}
	}


	function bgPopup_hide( id, cmd )
	{
		if ( id != bgPopup_isShowing ) {												// ENSURE THAT CURRENT POPUP DOES NOT GET CLOSED (AVOIDS FLICKERING)
			bgHide( id );
			if ( cmd ) {
				setTimeout( cmd, .01 );
			}
		}
	}


	function bgPopup_hideDelay( id, cmd )
	{
		if ( id == bgPopup_isShowing ) {
			bgPopup_isShowing = '';

			var cmd = 'bgPopup_hide("'+ id +'",\''+ cmd +'\');';
			setTimeout( cmd, bgPopup_timeDelay_inMS * 3 );

			return true;
		}
		return false;
	}


	function bgPopup_show( id, cmd )
	{
		if ( id == bgPopup_isShowing ) {												// ENSURE THAT CURRENT POPUP IS THE ONLY ONE LOADED (AVOIDS UNNECESSARY LOADING OF UN-FOCUSED POPUPS)
			bgPopup_zIndex++;															// ENSURE THAT LATEST POPUP APPEARS HIGHER THAN PREVIOUS ONES
			bgGet(id).style.zIndex = bgPopup_zIndex;
			bgShow( id );

			bgPopup_stillShowing = bgPopup_isShowing;

			if ( cmd ) {
				setTimeout( cmd, .01 );
			}
		}
	}


	function bgPopup_showDelay( id, cmd, instant )
	{
		if ( id != bgPopup_isShowing ) {												// ENSURE THAT CURRENT POPUP DOES NOT GET RELOADED (AVOIDS FLICKERING)
			bgPopup_isShowing = id;

			var cmd = 'bgPopup_show("'+ id +'",\''+ cmd +'\');';
			setTimeout( cmd, ( instant ? 0 : bgPopup_timeDelay_inMS ) );

			return true;
		}
		return false;
	}


	function bgSearch()
	{
		var formName_temp = bgFormName;
		bgSetForm( 'srForm' );

		var kwSearched = bgGetFormValue( 'q' );

		if ( kwSearched == '' || kwSearched.toLowerCase() == 'enter keyword' || kwSearched.indexOf('<') > -1 || kwSearched.toLowerCase().indexOf('&lt') > -1 || kwSearched.indexOf('>') > -1 || kwSearched.toLowerCase().indexOf('&gt') > -1 ) {
			bgSetFormValue( 'q', '' );
			bgSet( 'search-message', 'Please enter a valid search term and try again.' );
			bgShow( 'search-message' );

		} else if ( bgGet('search-submit').className != 'button-loading' ) {			// DISABLE DUPLICATE SUBMISSION CLICKS
			bgHide( 'search-message' );
			bgSetClass( 'search-submit', 'button-loading' );

			if ( !bgSearch_popup(kwSearched) ) {										// ONLY USED TO AVOID POPUP-BLOCKER
				bgAJAX_post( '/content/Products_SearchAJAX.asp', bgGetParamGroup(''), 'search' );
			}
		}

		bgSetForm( formName_temp );
	}


	function bgSearch_popup( kwSearched )												// ONLY USED TO AVOID POPUP-BLOCKER
	{
		var kwMap = new Array(
							[ 'chat', '[POPUP]https://server.iad.liveperson.net/hc/90574890/?cmd=file&file=visitorWantsToChat&site=90574890&byhref=1&imageUrl=https%3A//www.blindsgalore.com/graphics/livechat&referrer='+ escape(document.location) ],
							[ 'galler', '[POPUP]/content/shoppingguides/gallery/gallery1.htm' ], 
							[ 'photo', '[POPUP]/content/shoppingguides/gallery/gallery1.htm' ]
						);

		for ( var i = 0 ; i < kwMap.length ; i++ ) {
			if ( kwSearched.indexOf(kwMap[i][0]) > -1 ) {
				bgSearch_return( kwMap[i][1] );
				return true;
				break;
			}
		}

		return false;
	}


	function bgSearch_return( output )
	{
		if ( bgIsURL(output) ) {
			window.top.location.href = output;

		} else if ( output.substring(0,7) == '[POPUP]' ) {
			bgWindow( output.substring(7), true, 575, 530 );

		} else {
			bgSet( 'search-message', 'Sorry, your search returned no results.&nbsp; Please try again.' );
			bgShow( 'search-message' );
			bgSetClass( 'search-submit', '' );
		}
	}


	function bgSelectionPreview( formName, elem )
	{
		var formName_temp = bgFormName;
		bgSetForm( formName );

		bgSet( elem.name +'-selection', bgGetFormValue(elem.id) );

		bgSetForm( formName_temp );
	}

	
	function bgSet( id_or_name, value )
	{
		if ( bgGet(bgFormName)[id_or_name] ) {											// MAY BE CASE SENSITIVE IN IE
			bgSetFormValue( id_or_name, value );

		} else {
			bgGet(id_or_name).innerHTML = value;
		}
	}


	function bgSetClass( id, className )
	{
		bgGet(id).className = className;
	}


	function bgSetClassGroup( groupPrefix, group, groupSuffix, className )
	{
		for ( var i = 0 ; i < bgFormElements.length ; i++ ) {
			if (
				bgFormElements[i].id.indexOf(group +'.') == 0
				&& ( groupSuffix == '' || bgFormElements[i].id.indexOf(':'+ groupSuffix) > -1 )
				) {
				bgSetClass( groupPrefix + bgFormElements[i].id, className );
			}
		}
	}

	function bgSetClassList( list, className )
	{
		if ( list != '' ) {
			var list_asArray = list.split(',');
			for ( var i = 0 ; i < list_asArray.length ; i++ ) {
				bgSetClass( list_asArray[i], className );
			}
		}
	}


	function bgSetForm( name )
	{
		bgFormName = name;
		bgFormElements = bgGet(name).elements;
	}


	function bgSetFormValue( id_or_name, value )
	{
		var elem = bgGetFormElement( id_or_name );

		if ( elem.options ) {
			for ( var i = 0 ; i < elem.options.length ; i++ ) {
				if ( elem.options[i].value == value ) {
					elem.selectedIndex = i;
					break;
				}
			}

		} else if ( elem.length ) {														// CHECKBOX OR RADIO (ELEM.TYPE MAY NOT AVAILABLE)
			for ( var i = 0 ; i < elem.length ; i++ ) {
				if ( elem[i].type == 'checkbox' ) {
					if ( (','+ value +',').indexOf(','+ elem[i].value +',') > -1 ) {
						elem[i].checked = true;
					}
				} else if ( elem[i].type == 'radio' ) {
					if ( elem[i].value == value ) {
						elem[i].checked = true;
						break;
					}
				}
			}

		} else {																		// ID-BASED CALL OR ELEM.LENGTH OF ZERO MAY NOT BE SET
			switch( elem.type ) {
				case 'checkbox':
				case 'radio':
					elem.checked = value;												// ALLOW "FALSE" SETTING FOR SINGLE-INPUT FAMILIES OR ID-BASED CALLS
					break;
				default:
					elem.value = value;
					break;
			}
		}
	}


	function bgSetImage( id, src, caption )
	{
		if ( src != '' && bgGet(id).src != '' && src != bgGet(id).src ) {				// VALID SOURCE, IMAGE-REFERENCE, AND UPDATE
			bgGet(id).src = src;

			caption = bgDecodeURIComponent( caption );
			bgSet( id +'Name', caption );

			caption = bgDecodeHTMLAlt( caption );
			bgGet(id).alt = caption;
			bgGet(id).title = caption;
		}
	}


	function bgSetImageBackground( id, src )
	{
		if ( src != '' && src != bgGet(id).style.backgroundImage ) {					// VALID SOURCE AND UPDATE
			bgGet(id).style.backgroundImage = 'url("'+ src +'")';
		}
	}


	function bgShow( id )
	{
		bgGet(id).style.display = 'block';
	}


	function bgShowClass( className )
	{
		for ( var i = 0 ; i < bgFormElements.length ; i++ ) {
			if ( bgFormElements[i].className.indexOf(className) > -1 ) {
				if ( bgFormElements[i].type == 'hidden' ) {
					bgShow( 'div.'+ bgFormElements[i].id );
				} else {
					bgShow( bgFormElements[i].id );
				}
			}
		}
	}


	function bgShowElement( id, win )
	{
		bgGetElement(id,win).style.display = 'block';
	}


	function bgShowHide( id )
	{
		if ( bgIsVisible(id) ) {
			bgHide( id );

		} else {
			bgShow( id );
		}
	}


	function bgShowList( list )
	{
		if ( list != '' ) {
			var list_asArray = list.split(',');
			for ( var i = 0 ; i < list_asArray.length ; i++ ) {
				bgShow( list_asArray[i] );
			}
		}
	}


	function bgTrack( to, altFrom )
	{
		if ( bgTrackIt ) {
			bgAJAX_postClick( '/include/WebAnalytics.asp', 'from='+ encodeURIComponent((altFrom?altFrom:location.href)) +'&to='+ encodeURIComponent(to) );
			///	prompt( 'Track:', '/include/WebAnalytics.asp?from='+ encodeURIComponent((altFrom?altFrom:location.href)) +'&to='+ encodeURIComponent(to) );
		}
	}


	function bgTrackLink( elem )
	{
		bgTrack( elem.href );
	}


	function bgValidRange( minInput, maxInput, minValid, maxValid )
	{
		if ( minInput == '' ) {
			minInput = 0;
		} else {
			minInput = minInput.replace(/,/g,'').replace('$','');
		}
		if ( maxInput == '' ) {
			maxInput = 99999.99;
		} else {
			maxInput = maxInput.replace(/,/g,'').replace('$','');
		}

		if ( isNaN(minInput) || isNaN(maxInput) ) {
			return false;

		} else {
			minInput = parseFloat( minInput );
			maxInput = parseFloat( maxInput );
			minValid = parseFloat( minValid );
			maxValid = parseFloat( maxValid );

			return ( maxInput >= minInput && minInput <= maxValid && maxInput >= minValid );
		}
	}


	function bgValidRegExp( pattern, value )
	{
		if ( value == null || pattern == null ) {
			return false;

		} else {
			value = value.replace(/   /g,' ').replace(/  /g,' ');

			switch( pattern ) {
				case 'email':			pattern = '^[A-Za-z0-9\._-]+@[A-Za-z0-9\._-]+\.[A-Za-z]{2,4}$'; break;
				case 'phone-AM':		pattern = '^(1?)( {0,10})(\(?[0-9]{3}\)?)[ \.-]?([0-9]{3})[ \.-]?([0-9]{4})(( {0,10}x| {0,10}ext[a-z]{0,6})[0-9]{1,5})?$'; break;
				case 'postalCode-CA':	pattern = '^[A-Za-z][0-9][A-Za-z][ \.-]?[0-9][A-Za-z][0-9]$'; break;
				case 'postalCode-US':	pattern = '^[0-9]{5}([ \.-]?[0-9]{4})?$'; break;
			}

			return ( new RegExp(pattern,'g') ).test( value );
		}
	}


	function bgWindow( url, inFocus, width, height )
	{
		var bgWin;
		if ( width > 0 && height > 0 ) {
			bgWin = window.open( url, 'bgPopup', 'width='+ width +',height='+ height +',toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,top=0,left=0' );
		} else {
			bgWin = window.open( url, '_blank' );
		}

		if ( inFocus ) {
			bgWin.focus();
		} else {
			bgWin.blur();
			self.focus();
			setTimeout( 'self.focus();', 750 );
		}
	}

