$ = function(id)
{
	return document.getElementById(id);
}

function dropShadows()
{
	var contentNav = document.getElementById('contextNav');
	if(contentNav)
	{
		var menus = contentNav.getElementsByTagName('ul');
		processShadowWrappers(menus);
	}
	var rightPanel = document.getElementById('rightPanel');
	if(rightPanel)
	{
		var menus = rightPanel.getElementsByTagName('ul');
		processShadowWrappers(menus);
	}
}

function processShadowWrappers(menus)
{
	var shadowWrapper = document.getElementById("shadowWrapper");
	
	for(var i=0; i<menus.length; i++)
	{
		var tempMenu = menus[i];
		if(tempMenu.className != 'nav')
		{
			continue;
		}
		var parent = tempMenu.parentNode;
		
		var clone = shadowWrapper.cloneNode(true);
		clone.style.display="block";
		clone.id = "wrapper"+Math.round(10000*Math.random());
		parent.replaceChild(clone, tempMenu);
		
		/*for(var i = 0; i<cloneDivs.childNodes.length; i++)
		{
			if(cloneDivs.childNodes[i].className=='contentSlot')
		}*/
		var divs = clone.getElementsByTagName('div');
		divs[0].appendChild(tempMenu);
		/*clone.childNodes[1].appendChild(tempMenu);*/
		
		/*clone.insertBefore(tempMenu, clone.childNodes[0]);*/
	}
}

function getHeaderImages()
{
	var headers1 =document.getElementById('variableData').getElementsByTagName('h1');
	var headers2 =document.getElementById('variableData').getElementsByTagName('h2');
	var headers3 =document.getElementById('variableData').getElementsByTagName('h3');
	var headers4 =document.getElementById('variableData').getElementsByTagName('h4');
	
	processHeaderImages(headers1);
	processHeaderImages(headers2);
	processHeaderImages(headers3);
	processHeaderImages(headers4);
	
}

function processHeaderImages(headers)
{
	for(var i = 0; i<headers.length; i++)
	{
		var tempImage = document.createElement('img');
		var header = headers[i];
		var text = trim(getTextNodes(header));
		var fontFamily = retrieveStyle(header, "font-family").split(',')[0];
		/*var fontSize = retrieveStyle(header, "font-size");*/
		var fontSize = header.offsetHeight*.9;
		var fontWeight = retrieveStyle(header, "font-weight");
		var fontStyle = retrieveStyle(header, "font-style");
		
		var color = retrieveStyle(header, "color");
		var textAlign = retrieveStyle(header, "text-align");
		if(textAlign=="center")
		{
			tempImage.shouldCenter = true;
		}
		header.style.position="relative";
		/*header.style.textIndent="-10000px";*/
		tempImage.style.visibility="hidden";
		tempImage.onload=popHeader;
		
		tempImage.src = "/generate/heading.png?text="+text
			+"&fontFamily="+fontFamily
			+"&fontSize="+fontSize
			+"&fontWeight="+fontWeight
			+"&fontStyle="+fontStyle
			+"&color="+color;
		tempImage.style.position="absolute";
		tempImage.style.top="0px";
		tempImage.style.left="0px";
		header.appendChild(tempImage);
		/*insertAfter(header.parentNode, tempImage, header);		*/
	}
}

function popHeader()
{
	this.parentNode.style.textIndent = "-10000px"
	if(this.shouldCenter)
	{
		this.style.left = ((this.parentNode.offsetWidth-this.offsetWidth)/2)+"px";
	}
	if(this.offsetHeight>this.parentNode.offsetHeight)
	{
		this.parentNode.style.height=this.offsetHeight+'px';
	}
	this.style.visibility="visible";
	
}

function retrieveStyle(el, styleName)
{
    var IEstyleName = styleName;
    if(styleName.indexOf('-') > 0)
    {
        var strgs = styleName.split('-');
        var str = strgs[0]+strgs[1].substring(0,1).toUpperCase() + strgs[1].substring(1,strgs[1].length);
        
        for(var i = 2; i< strgs.length; i++)
        {
            str += strgs[i].substring(0,1).toUpperCase() + strgs[i].substring(1,strgs[i].length);
        }
        
        IEstyleName = str;
    }
    
	if (el.currentStyle)
		var y = el.currentStyle[IEstyleName];
	else if (window.getComputedStyle)
		var y = document.defaultView.getComputedStyle(el,null).getPropertyValue(styleName);

	return y;
}

function getTextNodes(node)
{
	if(node.nodeType==3)//textnode
	{
		return node.nodeValue;
	}
	else
	{
		var ret="";
		for(var i=0; i<node.childNodes.length; i++)
		{
			ret += getTextNodes(node.childNodes[i]);
		}
		return ret;
	}
	
}

function trim(value) 
{
    return value.replace(/^\s*/, "").replace(/\s*$/, "");
}

init = function()
{
	dropShadows();
	/*getHeaderImages();*/
	if(typeof initLocal != "undefined" )
	{
		initLocal();
	}
}