/**
 * Replace the class name of the child node if it matches the node name of "matchNodeName".
 * This method will only replace the class name to "replaceClassName" if the class name is blank. 
 */
function replaceClassName(childNodes, matchNodeName, replaceClassName) 
{
	for (var i = 0; i < childNodes.length; i++) {
		var aChild = childNodes[i];
	
		if (aChild.nodeName == matchNodeName) {
			if (aChild.className == "") {
				aChild.className = replaceClassName;
			} else {
				aChild.className = "";
			}
		}
	}
}

/**
 * This method is registered in action.js and attached to each RSS Item click. It will be 
 * invoked when user clicks on one of the RSS Item.
 */
function rssToggle(e)
{
	var element = getElementByEvent(e);
	
	var rssItem = getRequestedParent(element, "rssItem");
	
	if (rssItem)
	{
		// Modifying the class name of the h3 header (background image).
		replaceClassName(rssItem.childNodes, "A", "expanded");
				
		var divContainer = getRequestedSibling(rssItem, "rssItemContainer");
		if (divContainer)
		{
			// Modifying the class name that expand and collapse the DIV tag.
			replaceClassName(divContainer.childNodes, "DIV", "expanded");
		}
	}
	
	cancelEventCompletion(e);
	return false;
}

function getRequestedParent(element, className)
{
	if (element.className.search(className) > -1)
	{
		return element;
	}
	else
	{
		var parent = element.parentNode;
		
		if (parent)
		{
			return getRequestedParent(parent, className);
		}
		else
		{
			return false;
		}
	}
}	
	
function updateAddressFields(e)
{
	var	element = getElementByEvent(e);
	
	if (element.value.search("VIC") > 0)
	{
		var postCode = document.getElementById("postCode");
		postCode.value = element.value.substr(element.value.search("VIC") + 4, element.length);
		
		element.value = element.value.substr(0, element.value.search("VIC"));
		
		var state = document.getElementById("state");
		state.selectedIndex = 1;
	}
}

