/* Alter "basePath" to be the base path to your website (usually this would be "/" unless the site is under development). */
var basePath="/clients/acc-brand-adelaide/1.0/";




var agt=navigator.userAgent.toLowerCase();
var is_major = parseInt(navigator.appVersion);
var is_minor = parseFloat(navigator.appVersion);
var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
            && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
            && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));
var is_nav2 = (is_nav && (is_major == 2));
var is_nav3 = (is_nav && (is_major == 3));
var is_nav4 = (is_nav && (is_major == 4));
var is_nav6 = (is_nav && (is_major == 5));
var is_ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_ie3    = (is_ie && (is_major < 4));
var is_ie4    = (is_ie && (is_major == 4) && (agt.indexOf("msie 4")!=-1) );
 

if(!is_ie3 && !is_ie4 && !is_nav2 && !is_nav3 && !is_nav4)
{
	schedule("window", menuInit); 
}

schedule("window", checkStyleSheet);
schedule("window", initTables);
schedule("window", fixPNG);
schedule("window", preloadNavigationImages);
schedule("window", externalLinks);



function checkStyleSheet()
{
	agt=navigator.userAgent.toLowerCase();
	if(agt.indexOf('netscape6')!=-1)
	{
		setStylesheet("Basic");
	}
	else
	{
		setStylesheet("");
	}
}


function setStylesheet(styleTitle)
{
	var currTag;

	if (document.getElementsByTagName)
	{
		for (var i = 0; (currTag = document.getElementsByTagName("link")[i]); i++)
		{
			if (currTag.getAttribute("rel").indexOf("style") != -1 && currTag.getAttribute("title"))
			{
				currTag.disabled = true;

				if(currTag.getAttribute("title") == styleTitle)
				{
					currTag.disabled = false;
				}
			}
		}
	}
	
	return true;
};
 



function menuInit()
{
	var uls = document.getElementsByTagName("ul");
	
	for (var i = 0; i < uls.length; i++)
	{
		if (uls[i].className == "navigation")
		{
			var listItems = getChildrenByTagName(uls[i], "li");

			for (var j = 0; j < listItems.length; j++)
			{
				var subMenu = listItems[j].getElementsByTagName("ul");

				if (subMenu.length > 0)
				{
					attachEventListener(listItems[j], "mouseover", mouseoverMenu, false);
					attachEventListener(listItems[j], "mouseout", mouseoutMenu, false);
					attachEventListener(listItems[j].getElementsByTagName("a")[0], "focus", focusMenu, false);
					attachEventListener(listItems[j].getElementsByTagName("a")[0], "blur", blurMenu, false);
					
					var subListItems = subMenu[0].getElementsByTagName("li");
					
					for (var k = 0; k < subListItems.length; k++)
					{
						attachEventListener(subListItems[k].getElementsByTagName("a")[0], "focus", focusSubMenu, false);
						attachEventListener(subListItems[k].getElementsByTagName("a")[0], "blur", blurMenu, false);
					}
				}
			}
		}
	}

	return true;
};




function mouseoverMenu()
{
	var subList = this.getElementsByTagName("ul")[0];
	subList.style.marginTop = this.offsetHeight + "px";

	if (!this.className.match(/(^| )hover( |$)/))
	{
		if (this.className == "")
		{
			this.className = "hover";
		}
		else
		{
			this.className += " hover";
		}
	}
	
	return true;
};




function mouseoutMenu(event)
{
	if (typeof event == "undefined")
	{
		event = window.event;
	}
	
	if (typeof event.relatedTarget != "undefined")
	{
		var related = event.relatedTarget;
	}
	else
	{
		var related = event.toElement;
	}
	
	if (isDescendantNode(related, this))
	{
		return true;
	}
	else
	{
		hideMenu(this);
	}
	
	return true;
};




function focusMenu(event)
{
	resetMenu(this);
	
	var parentListItem = this.parentNode;

	if (!parentListItem.className.match(/(^| )hover( |$)/))
	{
		if (parentListItem.className == "")
		{
			parentListItem.className = "hover";
		}
		else
		{
			parentListItem.className += " hover";
		}
	}

	return true;
};




function blurMenu(event)
{
	resetMenu(this);
	
	return true;
};




function focusSubMenu(event)
{
	resetMenu(this);
	
	var parentListItem = this.parentNode.parentNode.parentNode;
	
	if (!parentListItem.className.match(/(^| )hover( |$)/))
	{
		if (parentListItem.className == "")
		{
			parentListItem.className = "hover";
		}
		else
		{
			parentListItem.className += " hover";
		}
	}
	
	return true;
};




function hideMenu(menuItem)
{
	menuItem.className = menuItem.className.replace(/(^| )hover( |$)/, "$1");
	menuItem.className = menuItem.className.replace(/ $/, "");
	
	return true;
};




function resetMenu(menuItem)
{
	var menu = menuItem;
	
	while (!menu.className.match(/(^| )navigation( |$)/))
	{
		menu = menu.parentNode;
	}
	
	var listItems = menu.getElementsByTagName("li");
	
	for (var i = 0; i < listItems.length; i++)
	{
		listItems[i].className = listItems[i].className.replace(/(^| )hover( |$)/, "$1");
		listItems[i].className = listItems[i].className.replace(/ $/, "");
	}
	
	return true;
};




function getChildrenByTagName(target, tagName)
{
	var children = target.childNodes;
	var matching = new Array();
	
	if (children != null)
	{
		for (var i = 0; i < children.length; i++)
		{
			if (children[i].nodeName.toLowerCase() == tagName)
			{
				matching[matching.length] = children[i];
			}
		}
	}
	
	return matching;
};




function isDescendantNode(descendant, ancestor)
{
	while (descendant.parentNode != null && descendant.parentNode.nodeName.toLowerCase() != "#document")
	{
		if (descendant.parentNode == ancestor)
		{
			return true;
		}
		else
		{
			descendant = descendant.parentNode;
		}
	}
	
	return false;
};




function attachEventListener(target, eventType, functionRef, capture)
{
	if (typeof target.addEventListener != "undefined")
	{
		target.addEventListener(eventType, functionRef, capture);
	}
	else if (typeof target.attachEvent != "undefined")
	{
		var functionString = eventType + functionRef;
		target["e" + functionString] = functionRef;
        
		target[functionString] = function(event)
		{
			if(typeof event == "undefined")
			{
				event = window.event
			};

			target["e" + functionString](event);
        };
        
		target.attachEvent("on" + eventType, target[functionString]);
	}
	else
	{
		eventType = "on" + eventType;

		if (typeof target[eventType] == "function")
		{
			var oldListener = target[eventType];

			target[eventType] = function()
			{
				oldListener();

				return functionRef();
			}
		}
		else
		{
			target[eventType] = functionRef;
		}
	}

	return true;
};








function initTables()
{
	var tables = document.getElementsByTagName("table");
	
	for (var i = 0; i < tables.length; i++)
	{
		var tbody = tables[i].getElementsByTagName("tbody")[0];
		var trs = tbody.getElementsByTagName("tr");
		
		for (var j = 1; j < trs.length; j += 2)
		{
			if (trs[j].className == "")
			{
				trs[j].className = "alt";
			}
			else
			{
				trs[j].className += " alt";
			}
		}
	}
	
	return true;
};



function fixPNG()
{
	var arVersion = navigator.appVersion.split("MSIE")
	var version = parseFloat(arVersion[1])
	
	if ((version >= 5.5) && (document.body.filters) && (version < 7)) 
	{
		for(var i=0; i<document.images.length; i++)
		{
			var img = document.images[i]
			var imgName = img.src.toUpperCase()
			if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
			{
				var imgID = (img.id) ? "id='" + img.id + "' " : ""
				var imgClass = (img.className) ? "class='" + img.className + "' " : ""
				var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
				var imgStyle = "display:inline-block;" + img.style.cssText 
				if (img.align == "left") imgStyle = "float:left;" + imgStyle
				if (img.align == "right") imgStyle = "float:right;" + imgStyle
				if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
				var strNewHTML = "<span " + imgID + imgClass + imgTitle
				+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
				+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
				+ "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 
				img.outerHTML = strNewHTML
				i = i-1
			}
		}
	}	
};



function preloadNavigationImages()
{
	if (document.images)
	{
	  pic1= new Image(38,35); 
	  pic1.src=basePath+"images/navigation/cityfocus_over.jpg"; 
	
	  pic2= new Image(38,35); 
	  pic2.src=basePath+"images/navigation/competitions_over.jpg"; 
	
	  pic3= new Image(38,35); 
	  pic3.src=basePath+"images/navigation/snapshot_over.jpg";
	  
	  pic4= new Image(38,35); 
	  pic4.src=basePath+"images/navigation/webcam_over.jpg";
	  
	  pic5= new Image(38,35); 
	  pic5.src=basePath+"images/navigation/yourvoice_over.jpg"; 
	  
	  pic6= new Image(19,100); 
	  pic6.src=basePath+"images/backgrounds/expand_over.gif"; 
	  
	  pic7= new Image(19,100); 
	  pic7.src=basePath+"images/backgrounds/contract_over.gif"; 
	  
	  pic8= new Image(19,100); 
	  pic8.src=basePath+"images/backgrounds/contract.gif";
	}	
	
};


/* //http://www.sitepoint.com/article/standards-compliant-world */
function externalLinks() 
{
 	if (!document.getElementsByTagName) 
 		return;
 
 	var anchors = document.getElementsByTagName("a");
 	for (var i=0; i<anchors.length; i++) 
 	{
   		var anchor = anchors[i];
   		if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external")
     		anchor.target = "_blank";
 	}
};