
function greyInitialValues(){
    var filled = $$(".filled");

    if(filled.length > 0){
        for(var i = 0; i < filled.length; i++){
            filled[i].className = "empty";
            filled[i].initialValue = filled[i].value;

            filled[i].onclick = filled[i].onfocus = function(){
                this.className = "filled";
                if(this.value == this.initialValue){
                    this.value= "";
                }
            }

            filled[i].onblur = function(){
                if(this.value == this.initialValue || this.value == ""){
                    this.className = "empty";
                    this.value = this.initialValue;
                }else{
                    this.className = "filled";
                }
            }
        }
    }else{ 
        return; 
    }
}

function dirify(str)
{
	separator = '_';
	return str.replace(/&.*?;/g, '').replace(/[^a-zA-Z0-9_-]+/g, separator).replace(/(?:^_+|_+$)/g, '').toLowerCase();
}

Event.onDOMReady(function(){
	greyInitialValues();
	$$('.tabset').each(function(tabset){
		
		if(tabset.hasClassName('combine'))
		{
			text = tabset.getAttribute('combineText')?tabset.getAttribute('combineText'):'All';
			new Insertion.Bottom(tabset, '<dt action="all">'+text+'</dt><dd></dd>');
		}
		
		var dts = tabset.getElementsByTagName('DT');
		if(dts.length > 1)
		{
			var dds = tabset.getElementsByTagName('DD');
			if(dts.length == dds.length)
			{
				$(document.body).addClassName('tabset-active');
				
				var active_selected = false;
				var dts_length = dts.length;
				for(var i=0; i<dts_length; i++)
				{
					Element.extend(dts[i]);
					Element.extend(dds[i]);
					
					if(i >= 1)
					{
						dts[i].parentNode.insertBefore(dts[i], dds[0]);
					}
					
					
					if(active_selected == true && dts[i].hasClassName('selected'))
					{
						dts[i].removeClassName('selected');
					}
					
					if(active_selected == true && dds[i].hasClassName('selected'))
					{
						dds[i].removeClassName('selected');
					}
					
					var regex = new RegExp(dirify(dts[i].innerHTML)+'$');
					if(document.location.toString().match(regex) || (dts[i].hasClassName('selected') && !dds[i].hasClassName('selected')))
					{
						if(!dts[i].hasClassName('selected'))
						{
							dts[i].addClassName('selected')
						}
						dds[i].addClassName('selected');
						active_selected = true;
						
						if(dts[i].getAttribute('action') != null)
						{
							for(var j=0; j<dds.length; j++)
							{
								dds[j].addClassName('selected');
							}
						}
					}
					
					var anchor = document.createElement('a');
					anchor.href = '#'+dirify(dts[i].innerHTML);
					anchor.title = 'Open Tab';
					anchor.affect = {dt:dts[i], dd:dds[i]};
					
					if(dts[i].getAttribute('action') != null)
					{
						anchor.onclick = function()
						{
							$(this.affect.dt.parentNode).getElementsBySelector('dt.selected').each(function(selected){
								selected.removeClassName('selected');
							});
							$(this.affect.dt).addClassName('selected');
							
							$(this.affect.dd.parentNode).getElementsBySelector('dd').each(function(selected){
								selected.addClassName('selected');
							});
						}
					}
					else
					{
						anchor.onclick = function()
						{
							$(this.affect.dt.parentNode).getElementsBySelector('dt.selected').each(function(selected){
								selected.removeClassName('selected');
							});
							$(this.affect.dt).addClassName('selected');
							
							$(this.affect.dd.parentNode).getElementsBySelector('dd.selected').each(function(selected){
								selected.removeClassName('selected');
							});
							$(this.affect.dd).addClassName('selected');
						}
					}
					
					anchor.innerHTML = dts[i].innerHTML;
					dts[i].innerHTML = '';
					dts[i].appendChild(anchor);
				}
				
				if(active_selected == false)
				{
					dts[0].addClassName('selected');
					dds[0].addClassName('selected');
				}
			}
		}
	});
	
	function expand(dt, dd)
	{
		Element.extend(dt);
		Element.extend(dd);
		
		$(dt.parentNode.parentNode).addClassName('select');
		dt.addClassName('selected');
		
		dd.addClassName('block_section');
		
		dd.style.display = 'block';
		dd.style.position = 'absolute';
		dd.style.top = '0';
		dd.style.left = '0';
		dd.style.width = '480px';
		dd.style.height = 'auto';
		dd.style.visibility = 'hidden';
		setHeight = dd.offsetHeight;
		
		dd.style.position = 'static';
		dd.style.width = 'auto';
		dd.style.height = '0';
		dd.style.visibility = 'visible';
		dd.morph('height:'+setHeight+'px;');
	}
	
	function collapse(dt, dd)
	{
		Element.extend(dt);
		Element.extend(dd);
		
		$(dt.parentNode.parentNode).removeClassName('select');
		dt.removeClassName('selected');
		dd.removeClassName('block_section');
		
		dd.morph('height:0;');
	}
	
	$$('.expand_list').each(function(list){
		var dts = list.getElementsByTagName('DT');
		for(var i=0; i<dts.length; i++)
		{
			var anchor = document.createElement('a');
			anchor.href = 'show_answer';
			anchor.title = 'Show Answer';
			anchor.onclick = function()
			{
				var dt = $(this.parentNode);
				var dd = $(dt.parentNode.getElementsByTagName('DD').item(0));
				
				if(dt.hasClassName('selected') == false)
				{
					var open = $(dt.parentNode.parentNode.parentNode).getElementsBySelector('.selected');
					for(var i=0; i<open.length; i++)
					{
						if(open[i] != dt)
						{
							collapse(open[i], open[i].parentNode.getElementsByTagName('dd').item(0));
						}
					}
					expand(dt, dd);
				}
				else
				{
					collapse(dt, dd);
				}
				
				return false;
			}
			
			anchor.innerHTML = dts[i].innerHTML;
			dts[i].innerHTML = '';
			dts[i].appendChild(anchor);
		}
	});
	
	function _previousSibling(elem)
	{
		elem = elem.previousSibling;
		
		while(elem && elem.nodeName.toLowerCase() == '#text')
		{
			elem = elem.previousSibling;
		}
		
		return elem;
	}
	
	function clickFilter(e)
	{
		var a = Event.element(e);
		var li = $(a.parentNode);
		var ul = $(li.parentNode);
		var h4 = $(_previousSibling(ul));
		
		a.style.display = 'block';
		
		if(li.hasClassName('selected'))
		{
			li.getElementsBySelector('.selected').each(function(li){
				li.removeClassName('unit');
				li.removeClassName('selected');
			});
		}
		else if(h4 && h4.nodeName && h4.nodeName.toLowerCase() == 'h4')
		{
			li.addClassName('unit selected');
			
			var anchor = li.getElementsByTagName('a').item(0);
			
			var headline = document.createElement('li');
			headline.className = 'headline';
			var anchor = document.createElement('a');
			anchor.href = '#';
			anchor.title = 'Any '+h4.innerHTML;
			anchor.innerHTML = 'Any '+h4.innerHTML;
			Event.observe(anchor, 'click', returnFilter, false);
			
			headline.appendChild(anchor);
			ul.insertBefore(headline, ul.firstChild);
			
			ul.getElementsBySelector('li').each(function(hide){
				if(hide.parentNode == ul && hide != li && !hide.hasClassName('headline'))
				{
					hide.style.display = 'none';
				}
			});
		}
		else
		{
			ul.getElementsBySelector('li.unit.selected').each(function(pastSelection)
			{
				pastSelection.removeClassName('unit');
				pastSelection.removeClassName('selected');
			});
			
			li.addClassName('unit selected');
		}
		
		new Ajax.Updater('results', '/products_services/financial/results.snippet.php', { method: 'get' });
		
		Event.stop(e);
	}
	
	function returnFilter(e)
	{
		var a = Event.element(e);
		var li = $(a.parentNode);
		var ul = $(li.parentNode);
		var h4 = $(_previousSibling(ul));
		
		ul.removeChild(li);
		ul.getElementsBySelector('li').each(function(li)
		{
			if(li.parentNode == ul)
			{
				li.style.display = 'block';
			}
			
			if(li.hasClassName('selected'))
			{
				li.removeClassName('unit');
				li.removeClassName('selected');
				/*
				var anchor = document.createElement('a');
				anchor.href = '#';
				Event.observe(anchor, 'click', clickFilter, false);
				anchor.appendChild(li.firstChild);
				
				li.insertBefore(anchor, li.firstChild);
				*/
			}
		});
		
		new Ajax.Updater('results', '/products_services/financial/results.snippet.php', { method: 'get' });
		
		Event.stop(e);
	}
	
	$$('body.products.browse #secondary ul a').each(function(anchor)
	{
		Event.observe(anchor, 'click', clickFilter, false);
	});
	
	/*
if($$('.units_landing').length == 0)
	{
		sIFR.replace(Frutiger67BoldCn, {
			selector: 'h3'
			,tuneHeight: -5
			,selectable: false
			,wmode: 'transparent'
			,css: [
				'.sIFR-root { color:#ff9100; font-size:15px; }'
			]
		});
	}
*/
});









/* Flash Expand/Contract */
var originalFlashHeight = false;

function expand_flash(height) {
    var flashHolder = document.getElementById('flash_holder');

    if(!originalFlashHeight) originalFlashHeight = flashHolder.style.height;  
    flashHolder.style.height = height+'px';

    var object = flashHolder.getElementsByTagName('object');
    if(object.length > 0) object[0].height = height;

    var embed = flashHolder.getElementsByTagName('embed');
    if(embed.length > 0) embed[0].height = height;  
}  


function close_flash() {  
    var flashHolder = document.getElementById('flash_holder');
    flashHolder.style.height = originalFlashHeight;

    var object = flashHolder.getElementsByTagName('object');
    if(object.length > 0) object[0].height = originalFlashHeight;

    var embed = flashHolder.getElementsByTagName('embed');
    if(embed.length > 0) embed[0].height = originalFlashHeight;

    originalFlashHeight = false;
}
