var timer;

function bindBehaviors()
{
//	addSections();
	imageReplaceHeaders();
	imageReplaceMenus();
	//listHover();
	productHover();

	enableMenuImageRollovers();
	document.body.onmouseover=handleMenuMouseover;
}

function imageReplaceHeaders()
{
	var content = document.getElementById('content');
	
	if(!content.getElementsByTagName('h1'))
	{
		return;
	}
	
	replaceAllInList(content.getElementsByTagName('h1'),34);
	replaceAllInList(content.getElementsByTagName('h2'),34);
	replaceAllInList(content.getElementsByTagName('h3'),34);

	var menu = document.getElementById('menu');

	if(!menu.getElementsByTagName('li'))
	{
		return;
	}
	//replaceAllInList(menu.getElementsByTagName('li'),12);

}

function imageReplaceMenus()
{
	var menu = document.getElementById('main_menu');

	

	var hrefs = menu.getElementsByTagName('a');

	for(i=0; i < hrefs.length; i++)
	{
		var href = hrefs[i];
		var text = href.innerHTML.toLowerCase().replace(/\W/g,'');
		var mode = 'off';
		if(href.parentNode.className.indexOf("selected") > -1)
		{
			mode='on';
		}
		href.innerHTML="<img border=\"0\" src=\"/design/jl-harley/images/nav/" + text +  "_" + mode + ".gif\" alt=\"" + href.innerHTML + "\">";
	}
}

function enableMenuImageRollovers()
{
	var menu = document.getElementById('main_menu');
	var imgs = menu.getElementsByTagName('img');
	for(i=0; i < imgs.length; i++)
	{
		var img=imgs[i];
		var txt=img.src;
		if(img.parentNode.className.indexOf("selected") < 0)
		{
			var imgOn = new Image();
			var imgOff = new Image();
			imgOn.src=img.src.replace("_off","_on");
			imgOff.src=img.src.replace("_on","_off");
			
			img.imgOn = imgOn;
			img.imgOff = imgOff;
			
			img.onmouseover=function() {
				this.src=this.imgOn.src;
			}
			img.onmouseout=function() {
				this.src=this.imgOff.src;
			}
		}
	}

}


function replaceAllInList(headings, size)
{
	if(headings)
	{
		for(var i=0; i < headings.length; i++)
		{
			var heading = headings[i];
			var tgt=heading;
			
			while(tgt.firstChild)
			{
				tgt=tgt.firstChild;
			}
			var txt=tgt.nodeValue;

			//Break text on words.

			var words=txt.split(' ');

			var output='';

			for(var j in words)
			{
				var word = words[j];
				output += '<img border="0" src="/imreplace.php?text=' + escape(word.toUpperCase()) + '&size=' + size + '&h=' + size + '">';
			}
			tgt.parentNode.innerHTML = output;
		}
	}
}

function addSections()
{
	// Adjust HTML for sections in textpages.
	var content = document.getElementById('content');
	//Get first div
	if(!content.getElementsByTagName('div'))
	{
		return;
	}
	var textPage = content.getElementsByTagName('div')[0];
	if(textPage.className != 'textpage')
	{
		return;
	}
	for(i in textPage.childNodes)
	{
		//Put all the content that's not an 'H' tag into groups
		//Once we hit the second 'H' tag, 
		var node = content.childNodes[i];
		1==1;
	}
}

function handleMenuMouseover(ev)
{

	var srcElem = getEventSource(ev);

	//If the src isn't part of the menu, hide all submenus in 3 secs.
	if (!childOfObject(srcElem,document.getElementById('menu')))
	{
		if (!timer)
		{
			timer = window.setTimeout('hideAndRestore()',700);
		}
		return;
	}

	if(timer)
	{
		window.clearTimeout(timer);
		timer = null;
	}

	if (srcElem.parentNode.parentNode.className.indexOf('menu_0') < 0)
	{
		return;
	}

	//Walk up until you find the li
	var li = srcElem;

	while (li.tagName.toUpperCase() != 'LI')
	{
		li = li.parentNode;
	}


	if (li.getElementsByTagName('ul').length)
	{
		var ul=li.getElementsByTagName('ul')[0];
		hideAllSubs();
		li.className += " over";
//		positionSubMenu(ul,li);

	}
}

function hideAllSubs()
{

	var menu=document.getElementById('main_menu');

	for(i=0;i < menu.childNodes.length; i++)
	{
		var child = menu.childNodes[i];
		if (child.tagName && child.tagName.toUpperCase() == 'LI')
		{
			child.className = child.className.replace(" over","");
			child.className = child.className.replace("selected","xhiddenx");
		}
	}	
}

function hideAndRestore()
{
	var menu=document.getElementById('main_menu');

	for(i=0;i < menu.childNodes.length; i++)
	{
		var child = menu.childNodes[i];
		if (child.tagName && child.tagName.toUpperCase() == 'LI')
		{
			child.className = child.className.replace(" over","");
			child.className = child.className.replace("xhiddenx","selected");
			if(child.className.indexOf("selected") > -1)
			{
				var img = child.getElementsByTagName('img')[0];
				img.src = img.src.replace("_off","_on");
			}
		}
	}	
}


function positionSubMenu(subMenu, menu)
{
	var menuPosition = getOffset(menu);
	var subMenuPosition = getOffset(subMenu);
	var leftPos = menuPosition.x + (menu.offsetWidth/2) - (subMenu.offsetWidth/2);
	subMenu.style.left = leftPos + 'px';
}

function childOfObject(elem, parent)
{
	while (elem.tagName && elem.tagName.toUpperCase() != 'BODY' && elem.parentNode)
	{
		elem=elem.parentNode;
		if(elem == parent)
		{
			return true;
		}
	}
	return false;

}

function getOffset(elem)
{
	var xOffset=0;
	var yOffset=0;

	while (elem.tagName && elem.tagName.toUpperCase() != 'BODY' && elem.offsetParent)
	{
		xOffset+=elem.offsetLeft;
		yOffset+=elem.offsetTop;
		elem=elem.offsetParent;
	}

	var result = new Object();

	result.x = xOffset;
	result.y = yOffset;

	return result;
}

function getEventSource(ev)
{
     if(document.getElementById && !document.all)
     {
         return ev.target;
     }
 
     if(document.all)
     {
         return window.event.srcElement;
     }
}

//Hack around broken CSS :hover support in IE.
/*
function listHover() 
{
	if (document.all && document.getElementById)
	{
		navRoot = document.getElementById("main_menu");
		for (i=0; i<navRoot.childNodes.length; i++) 
		{
  			node = navRoot.childNodes[i];
  			if (node.nodeName=="LI") 
			{
  				node.onmouseover=function() {this.className+=" over";}
  				node.onmouseout=function() {this.className=this.className.replace(" over", "");}
   			}
  		}
 	}
}
*/
function productHover()
{
	if (document.all && document.getElementById)
	{
		var nodeList = document.getElementsByTagName('DIV');
		for (i=0; i<nodeList.length ; i++)
		{
			var node = nodeList[i];
			if (node.className == "product_image")
			{
				var span = node.getElementsByTagName("span")[0];
  				span.onmouseover=function() {this.className+=" over";}
  				span.onmouseout=function() {this.className=this.className.replace(" over", "");}
			}
		}
 	}
}

window.onload=bindBehaviors;