// #############################################################################
// bugfix: images nested within a label are not clickable [<= IE7]

function ie_labelfix()
{
	var labels, i, target;

	labels = document.getElementsByTagName('label');

	for (i = 0; i < labels.length; i++)
	{
		e = document.getElementById(labels[i].htmlFor);

		// this would normally be .for, but IE only supports .htmlFor
		crawlElements(labels[i], e);
	}
		
}

// #############################################################################
// creates an onclick event for each img within the specified label
function crawlElements(element, e)
{
	if (element.nodeName.toLowerCase() == 'img')
	{
		element.onclick = function()
		{
			switch(e.type)
			{
				case 'radio':
					e.checked|=1;
					break;
				case 'checkbox':
					e.checked=!e.checked;
					break;
				case 'text':
				case 'password':
				case 'textarea':
					e.focus();				
					break;
			}
		}
	}

	// only continue when the specified element is a parent	
	if (element.hasChildNodes) return false;

	// recursvily call this function for each childnode
	for (i = 0; i < element.childNodes.length; i++)
	{
		crawlElements(element[i], e);
	}	
}

//window.onload = ie_labelfix();
