		// write in JS/nonJS rules
			document.writeln('<style type="text/css"> #OM-WHYUS-MODS div.OM-leftCol div.contentArea ul.rightCont li.subcontent { display: none; } </style>');
			document.writeln('<style type="text/css"> #OM-WHYUS-MODS div.OM-leftCol div.contentArea ul.leftNav { display: block; }                </style>');
		



		// these tell us if OM or TDA's inits have run or not.
			var tdInited = false;
			var omInited = false;




		// resize-related variables ... this needs cleanup.
			var setBodySizeDelay = 500;
			var getBodySize      = function() { return client.viewport()[0]; }
			var setBodySize      = function() { bodySize = getBodySize();    }
			var bodySize         = getBodySize();
			var resizeTimer      = null;




		// chickens
			var doResize = function() {
				if (bodySize != getBodySize()) {
					console.log('doResize: width has changed');
					if (client.engine == 'msie') {
						var frame         = document.getElementById('frame');
						var maxWidth      = 984;
						var minWidth      = 760;
						var bufferWidth   = 108;
						frame.style.width = Math.max(Math.min(maxWidth, (document.body.clientWidth - bufferWidth)), minWidth) + 'px';
					}
					handleModules(true);
					if (typeof('swf') != 'undefined') { swf.setFonts(); }
					setBodySize();
				}
			}




		// chickens
			window.onresize = function() {
				resizeTimer = null;
				resizeTimer = setTimeout(doResize, setBodySizeDelay);
			}




		// TD Ameritrade initialization routines (stuff specific to their template, not relevant to the content area).
			var tdInits = function() {
			// cancel if init has allready ocurred, necessary due to memetrics concerns.
				if (tdInited) { return; }
				tdInited = true;
			// inint content
				window.addEvent = function(obj,type,fn) {
					if (obj.attachEvent) { 
						obj['e'+type+fn]=fn;
						obj[type+fn]=function() { obj['e'+type+fn](window.event) }
						obj.attachEvent('on'+type,obj[type+fn])
					} else {
				 		obj.addEventListener(type,fn,false)
					}
					window.addLoadEvent = function(fn){ addEvent(document.addEventListener&&!window.addEventListener?document:window,'load',fn); }
					window.addResizeEvent = function(fn){ addEvent(document.addEventListener&&!window.addEventListener?document:window,'resize',fn); }
					window.customLink = function() { window.open('http://server.iad.liveperson.net/hc/38974897/?cmd=file&amp;file=visitorWantsToChat&amp;site=38974897&amp;referrer='+document.location,'chat38974897','width=472,height=320'); return false; }
					if (typeof(btnInit) != 'undefined') { btnInit("go",true,true); }
				}
			}




		// Ogilvy initialization routines (custom ogilvy stuff pertinent to the content area.)
			var omInits = function() {
			// cancel if init has allready ocurred, necessary due to memetrics concerns.
				if (!omInited) {
				// inint content
					window.images = new imageHandler(document.getElementById('OM-WHYUS-MODS'));
					window.swf    = new swfHandler({revreq: 8});
				// declare fonts
					window.swf.newFont('Arial-h1',      { face:'./fonts/Arial.swf', textcolor: '#808080', linkcolor: '#808080' });
					window.swf.newFont('Arial-h2',      { face:'./fonts/Arial.swf', textcolor: '#000000', linkcolor: '#000000' });
					window.swf.newFont('Arial-h4-var1', { face:'./fonts/Arial.swf', textcolor: '#00A037', linkcolor: '#00A037', offsetTop: 0,  adjLineHeight: '18px' });
					window.swf.newFont('Arial-h4-var2', { face:'./fonts/Arial.swf', textcolor: '#00A037', linkcolor: '#00A037', offsetTop: 0,  adjLineHeight: '19px' });
					window.swf.newFont('Arial-h4-var3', { face:'./fonts/Arial.swf', textcolor: '#00A037', linkcolor: '#00A037', offsetTop: 0,  adjLineHeight: '19px' });//24px
					window.swf.newFont('getStarted',    { face:'./fonts/Arial.swf', textcolor: '#00A037', linkcolor: '#00A037' });
				// add collapse/expand capabilities for collapsible modules*/
					document.getElementById('OM-WHYUS-MODS').style.display = 'block';
					handleModules();
				// handle linkage issue
					var links     = getByClass(document.getElementById('OM-WHYUS-MODS'), 'mainHdrLink');
					for (var i in links) {
						var link  = links[i];
						if (typeof(link) == 'function') { continue; }
						var image = link.getElementsByTagName('img')[1];
							image.setAttribute('goto', link.getAttribute('href'));
							image.onclick = function() { document.location.href = this.getAttribute('goto'); }
							link.href  = '#';
							link.removeAttribute('href');
					}
					omInited = true;
				}
			}




		// define onload event.
			var startsite = function() {
				console.log('startsite');
				omInits();
				tdInits();
			}




		// adds event handlers for collapsible content modules
			var handleModules = function(resizeOnly) {
				console.log('handleModules');
//				var allDivs      = document.getElementById('OM-WHYUS-MODS').getElementsByTagName('div');
//				var modId        = getByClass(document.getElementById('OM-WHYUS-MODS'), 'contentArea')[0].id;
//				var thisDiv      = getByClass(document.getElementById('OM-WHYUS-MODS'), modId)[0];
//				var functionName = thisDiv.className.split('-var-').join('Init');
//				window[functionName](thisDiv, resizeOnly);
				var thisDiv      = document.getElementById('OM-WHYUS-MODS').getElementsByTagName('DIV')[2]
				console.log(thisDiv.className)
				moduleInit3(thisDiv, resizeOnly)
			}




		// normalizes element heights across all modules
			var setModuleHeights = function(thisObj) {
				console.log('setModuleHeights');
			// setup vars
				var allModules = getByClass(thisObj, 'contentModule');
				var minHeight  = maxHeight = 180;
			// help ie behave like a civilized browser
				if (thisObj.className == 'module-var-2' || thisObj.className == 'module-var-1') {
					fixIeModuleWidths(thisObj)
				}
			// get maxheight
				for (var i in allModules) {
					var thisModule = allModules[i];
						if (typeof(thisModule) == 'function') { continue; }
					if (typeof(thisModule) != 'function') {
						thisModule.style.height = 'auto';
						maxHeight = (thisObj.className == 'module-var-2' && thisModule.measure) ? Math.max(thisModule.measure(), maxHeight) : Math.max(thisModule.offsetHeight, maxHeight);
					}
				}
			// execute on max height recorded
				for (var i in allModules) {
					var thisModule = allModules[i];
					if (typeof(thisModule) != 'function') {
						thisModule.setAttribute('maxheight', maxHeight + 'px');
						if (thisObj.className == 'module-var-1') { thisModule.style.height = maxHeight + 'px';         }
						if (thisObj.className == 'module-var-2') {
							if (thisModule.maintain) { thisModule.maintain(); }
							if (client.engine == 'msie') {
								var thisArrow       = getByClass(thisModule, 'arrow')[0];
								var thisParent      = thisArrow.parentNode;
								var thisGrandparent = thisParent.parentNode;
								thisParent.style.width = thisGrandparent.offsetWidth + 'px';
							}
						}
					}
				}
			}




		// help ie out with stuff it should be able to do.
			var fixIeModuleWidths = function(thisObj) {
				var contMods = getByClass(thisObj, 'contentModule');
			// loop for clearing out previous styles
				for (var i in contMods) {
					var thisMod = contMods[i];
					if (typeof(thisMod) == 'function') { continue; }
					thisMod.style.width       = '';
					thisMod.style.marginRight = '';
				}
			// now that styles are clear, measure parent container.
				thisObj.style.overflow = 'hidden';
				var parentWidth = thisObj.offsetWidth-8
				var childWidth  = parseInt(parentWidth/2);
				var contMods = getByClass(thisObj, 'contentModule');
			// loop for setting styles based upon parent container
				for (var i in contMods) {
				// this module
					var thisMod = contMods[i];
					if (typeof(thisMod) == 'function') { continue; }
					var isEven = (Math.round(i/2) == (i/2));
				// help standards challenged browsers behave properly
//					if (client.engine == 'msie' && parseInt(client.engRev) < 7) {
						thisMod.style.width = childWidth + 'px';
						if (isEven) {thisMod.style.marginRight = '8px'; }

//					}
				}
			}




		// adds event handlers for swapping content modules
			var moduleInit3 = function(thisObj, resizeOnly) {
				if (!resizeOnly) {
					var contMods  = getByClass(thisObj, 'subcontent');
					var contLinks = getByClass(thisObj, 'navcont');
					var thisRightCont  = getByClass(thisObj.parentNode.parentNode, 'contentArea')[0];
					var link           = document.getElementById('yetAnotherIeHack');
					var ieHack         = '<a href="http://www.tdameritrade.com/straightforwardpricing.html" id="yetAnotherIeHack"><img src="./img-whyUs/btn-learnMore_out.png" alt="Learn More"/></a>';
					if (!link && client.engine == 'msie' && parseInt(client.engRev) < 7) {
						link           = document.createElement('a');
						link.innerHTML = '<img src="./img-whyUs/blank.gif" />';
						link.id        = 'yetAnotherIeHack2';
						link.href      = ''
						thisRightCont.appendChild(link);
					}
				// process content items
					for (var i in contMods) {
					// this module
						var thisMod = contMods[i];
						if (typeof(thisMod) == 'function') { continue; }
					// define methods for module
						thisMod.show = function() {
							this.style.display = 'block';                                                                // <-- show this module
							var allMods = getByClass(this.parentNode, 'subcontent');                                     // <-- find other modules
							for (var ii in allMods) { if (typeof(allMods[ii]) == 'function') { continue; }; if (allMods[ii] != this) { allMods[ii].style.display = 'none'; } } // <-- hide other modules
						}
					}
				// process linkage items
					for (var i in contLinks) {
					// this link
						var thisLnk  = contLinks[i];
						if (typeof(thisLnk) == 'function') { continue; }
							thisLnk.onclick = function() {
								thisObj.showMod(this.getElementsByTagName('a')[0].href.split('#')[1]); return false;
							}
							thisLnk.onmouseover = function() {
								var thisSpan           = this.getElementsByTagName('span')[0];
								var thisImg            = this.getElementsByTagName('img')[0];
									thisSpan.className = 'active';
									thisImg.ovrState();
							}
							thisLnk.onmouseout = function() {
								var thisState = this.getElementsByTagName('a')[0].href.split('#')[1];
								var pageState = this.parentNode.parentNode.getAttribute('currentState');
								if (thisState != pageState) {
								var thisSpan           = this.getElementsByTagName('span')[0];
								var thisImg            = this.getElementsByTagName('img')[0];
									thisSpan.className = '';
									thisImg.outState();
								}
							}
						var thisNum = thisLnk.getElementsByTagName('img')[0];
							thisNum.onmouseover = thisNum.onmouseout = null;
					// define methods for link
						thisLnk.show = function() {
							var thisSpan           = this.getElementsByTagName('span')[0];
							var thisImg            = this.getElementsByTagName('img')[0];
								thisSpan.className = 'active';
								thisImg.ovrState();
							var allLnks = getByClass(this.parentNode, 'subcontent');                                     // <-- find other modules
						// set all other module links to passive state
							for (var ii in contLinks) {
								if (typeof(contLinks[ii]) == 'function') { continue; }
								if (contLinks[ii] != this) {
									var otherLink      = contLinks[ii]
									thisSpan           = otherLink.getElementsByTagName('span')[0];
									thisImg            = otherLink.getElementsByTagName('img')[0];
									thisSpan.className = '';
									thisImg.outState();
								}
							}
						}
					}
					thisObj.showMod = function(modName) {
						var ieLink = document.getElementById('yetAnotherIeHack2');
						modName = modName || thisObj.getElementsByTagName('a')[0].href.split('#')[1];
						this.setAttribute('currentState', modName);
						var contMods  = getByClass(thisObj, 'subcontent');
						var contLinks = getByClass(thisObj, 'navcont');
					// loop through modules
						for (var i in contMods) {
						// search and activate module
							var thisMod = contMods[i];
							if (typeof(thisMod) == 'function') { continue; }
							if (thisMod.getElementsByTagName('a')[0].name == modName) {
								if (ieLink) { ieLink.href = getByClass(thisMod, 'baseLink')[0].href; }
								thisMod.show();
							}
						// search and activate link
							var thisLnk = contLinks[i];
							if (thisLnk.getElementsByTagName('a')[0].href.split('#')[1] == modName) { thisLnk.show(); }
						}
					// fix yet another internet explorer bug.
						if (ieLink) {
							if (document.getElementById('OM-WHYUS-MODS').className == 'top') { ieLink.style.bottom = '35px'; }
//							ieLink.href = getByClass(this, 'baseLink')[0].href;
						}
					// make sure that sifr fonts get processed.
						swf.setFonts();
					}
					var deepLink = (document.location.href.indexOf('#') != -1 && document.location.href.split('#')[1].indexOf('contBlock-') == 0) ? document.location.href.split('#')[1] : null;
					thisObj.showMod(deepLink);
				}
			}




		// utility, gets a list of child elements by className
			var getByClass = function(thisObj, thisClass) {
				var theseChildren = [];
				if (typeof(thisObj) != 'function') {
					var allChildren   = thisObj.getElementsByTagName('*');
					for (var i = 0; i < allChildren.length; i++) {
						var thisChild = allChildren[i];
						if (thisChild.className == thisClass && typeof(thisChild) != 'function') {
							theseChildren.push(thisChild);
						}
					}
				}
				return theseChildren;
			}




		// helps sifrTxt headers in the expandable modules click into parent elements
			var hdrClick = function(index) {
				var headers = getByClass(document.getElementById('OM-WHYUS-MODS'), 'module-var-2')[0].getElementsByTagName('h4');
				var module = headers[index].parentNode.parentNode;
				if (!(client.engine == 'gecko' && client.system.indexOf('win') == 0)) {
					var isExpanded = (!module.getAttribute('viewstate') || module.getAttribute('viewstate') == 'expanded'); // <-- determine expansion state
					var action     = (isExpanded) ? module.contract() : module.expand();                                    // <-- expand or contract as needed
				}
			}




			window.onload = function() { startsite(); }