jQuery(document).ready(function(){

	//Search 
	jQuery("#srchbutt").attr("value","");
	//End Search

	//Add corners to titles and side-nav
	jQuery("h1.blue, h2.blue, h1.green, h2.green, h1.black, h2.black, h1.yellow, h2.yellow, h1.grey, h2.grey, a.rounded").append('<span class="ctop png"><span class="png"></span></span><span class="cbot png"><span class="png"></span></span>');
	jQuery("h1.mainblack").append('<span class="ctop png"><span class="png"></span></span>');
	//End Add corners to titles and side-nav

	//Grow nav tabs to fit primary menu bar
	(function(){
		var maxWidth = jQuery("#nav").width() - 1;
		var contentWidth = 0;
		var navLi = jQuery("#nav ul li");
		navLi.each(function(){
			contentWidth += jQuery(this).outerWidth();
		});
		var differenceWidth = maxWidth - contentWidth;
		var paddingWidth = Math.floor((differenceWidth/navLi.length)*.5);
		var remainder = differenceWidth-(paddingWidth*2*navLi.length);
		var navA = jQuery("a", navLi);
		navA.css('padding-left', paddingWidth).css('padding-right', paddingWidth);

		var i;
		if(remainder){
			for(i=0; i< navLi.length; i++){
				navA.eq(i).css('padding-left',(paddingWidth+1));
				remainder += -1;
				if(remainder <= 0){
					break;
				}
			}
		}
		if(remainder){
			for(i=0; i< navLi.length; i++){
				navA.eq(i).css('padding-right',(paddingWidth+1));
				remainder += -1;
				if(remainder <= 0){
					break;
				}
			}
		}
	})();
	//End Grow nav tabs to fit primary menu bar


	//Print
	jQuery("#icon-print").click(function () {
		window.print();
	});
	//End Print

	//FontScale 
	jQuery("#icon-txt-lrg").fontscale(".flexitext","up", {unit: "em", increment:1});
	jQuery("#icon-txt-sml").fontscale(".flexitext","down", {unit: "em", increment:1});
	//End FontScale
	
	

	// Slideshow Functions
	
	// Increment Index and show slide
	function nextSlide() {
		slindex++;
		if (slindex > jQuery("#slideshow li").size() - 1) {slindex = 0;}
		//showSlide(slindex);
		//t = setTimeout(nextSlide, 8000);
		if (jQuery("#slideshow li").size()>1)
		{
			showSlide(slindex);
			t = setTimeout(nextSlide, 8000);
		}
	}

	// Kill last slide and show slide. Update Navigation.
	function showSlide(i) {
		jQuery("#slideshow li").hide();
		jQuery("#slideshow li:eq(" + i + ")").fadeIn('fast');
		jQuery("#slidectrl a").removeClass("current");
		jQuery("#slidectrl a:eq(" + i + ")").addClass("current");
		slindex = i;
	}

	// Slideshow Navigation
	jQuery("#slidectrl a").each(function(i){
		jQuery(this).click(function(e){
			e.preventDefault();
			showSlide(i);
			clearTimeout(t);
			t = setTimeout(nextSlide, 16000);
		});
	});

	//Slideshow Init
	var t;
	slindex = -1;
 	nextSlide();
	
	//End Slideshow Functions
	
	
	// Sidenav Accordian Functions
	jQuery(".snav li:not(.not)>a").each(function(){
		var current = jQuery(this);
		var theLi = current.parent('li');
		var nestedUl = theLi.children('ul');
		if(nestedUl.length){
			//current.click(accordianNestedClick);
		} else {
			//theLi.addClass('isLink');
			if (theLi.hasClass('on') || theLi.hasClass('off'))
			{
			}
			else
			{
				theLi.addClass('isLink');
			}
		}
	});
	jQuery(".snav li.on").each(function(){
		accordianShow(jQuery(this), true);
	});
	jQuery(".snav li55667788:not(.isLink, .on, .not)").each(function(){
		accordianHide(jQuery(this), true);
	});
	
	jQuery(".snav a.current").each(function(){
		var theLi = jQuery(this).parent('li');
		makeCurrent(theLi);
		accordianShow(theLi, true);
	});
	function makeCurrent(theLi){
		var parentUl = theLi.parent('ul:not(.snav)');
		if(parentUl.length){
			var parentLi = parentUl.parent('li:not(.current)');
			if(parentLi.length){
				makeCurrent(parentLi);
			}
		}
		theLi.children('a').addClass('current');
	}
	
	function accordianNestedClick(e){
		var current = jQuery(this);
		var theLi = current.parent('li');
		e.preventDefault();
		accordianNested(theLi);
	}
	
	function accordianNested(theLi){
		var nestedUl = theLi.children('ul');
		
		if(theLi.hasClass('on')){
			accordianHide(theLi, false);
		} else {
			accordianShow(theLi, false);
		}
	}
	
	function accordianShow(theLi, instant){
		var parentUl = theLi.parent('ul:not(.snav)');
		var parentLi = parentUl.parent('li:not(.current)');
		var nestedUl = theLi.children('ul');
		
		var duration = 400;
		
		if(parentLi.length && !parentLi.hasClass('on')){
			accordianShow(parentLi, instant);
			instant = true;
		}
		
		if(instant){
			nestedUl.show();
		} else {
			nestedUl.slideDown(duration);
		}
		theLi.addClass('on');
		theLi.removeClass('off');
	}
	
	function accordianHide(theLi, instant){
		var nestedUl = theLi.children('ul');
		var duration = 400;
		if(instant){
			nestedUl.hide();
		} else {
			nestedUl.slideUp(duration);
		}
		
		theLi.removeClass('on');
		theLi.addClass('off');
	}
	
	//End Sidenav According Functions
	
	//Mimics the css 'nth-child' selector
	jQuery("table tbody").each(function(){
		var thisTbody = jQuery(this);
		if (thisTbody.parent('table').hasClass('noformat'))
		{
			return true;
		}
		jQuery("tr",this).each(function(i){
			nthChildCss(i, this)
			jQuery("td, th", this).each(function(j){nthChildCss(j, this)}).last().addClass("last");
		}).last().addClass("last");;
	});
	function nthChildCss(i, tar){
		if(i%2){
			jQuery(tar).addClass("odd");
		} else {
			jQuery(tar).addClass("even");
		}
	}
	//End Mimics the css 'nth-child' selector
	
	//File tables Functions
	var initialOpenArr = [];
	jQuery(".tables-repeater li:not(.not)").each(repeaterEach);
	jQuery(window).bind("load.tablesRepeater", initialOpen);
	function repeaterEach(){
		jQuery(this).prepend("<a class='toggle-view'>View files</a>");
		jQuery(".collapsable", this).hide();
		jQuery("a.toggle-view", this).click(toggleClick);
		jQuery(this).children('h3').css("cursor", "pointer");
		jQuery(this).children('h3').click(function(e){
			var parent = jQuery(this).parent();
			var toggleBtn = parent.children("a.toggle-view");
			toggleBtn.click();
		});
		jQuery(this).hover(function(){
			if(!jQuery(this).hasClass('open')){
				jQuery(this).addClass('over');
			}
		}, function(){
			jQuery(this).removeClass('over');
		});
		if(jQuery(this).hasClass('open')){
			
			initialOpenArr.push(jQuery(this));
		}
	}
	
	function initialOpen(){
		jQuery(window).unbind('load.tablesRepeater');
		if (wsDocTarget!=null)
		{
			openDocTableTarget();
			jQuery('html, body').animate({
				scrollTop: wsTarget.offset().top
			}, 1000);
			return;
		}
		for(var i in initialOpenArr){
			var tar = initialOpenArr[i];
			var toggleSwitch = jQuery("a.toggle-view", tar);
			var speed = 400;
			
			openRepeater(toggleSwitch, tar, speed);
		}
	}
	
	function toggleClick(e){
		e.preventDefault();
		jQuery(window).unbind('load.tablesRepeater');
		toggleView(jQuery(this).parent());
	}
	
	function toggleView(tar, speed){
		if(speed === null){
			speed = 400;
		}
		var toggleSwitch = jQuery("a.toggle-view", tar)
		var isOn = toggleSwitch.hasClass('toggle-view-on');
		if(isOn){
			closeRepeater(toggleSwitch, tar, speed);
		} else {
			openRepeater(toggleSwitch, tar, speed);
		}
	}
	
	function closeRepeater(toggleSwitch, tar, speed){
		toggleSwitch.removeClass('toggle-view-on');
		jQuery(".collapsable", tar).slideUp(speed);
		toggleSwitch.text("View files");
		jQuery(tar).removeClass('open');
	}
	
	function openRepeater(toggleSwitch, tar, speed){
		toggleSwitch.addClass('toggle-view-on');
		jQuery(".collapsable", tar).slideDown(speed);
		toggleSwitch.text("Hide files");
		jQuery(tar).addClass('open');
		jQuery(tar).removeClass('over');
	}

	var wsTarget=null;
	var wsDocTarget=null;
	var wsDocTargetTitle='';
	if (wsDocTargetTitle=='')
	{
		var test='';
		var wsUrl=document.location.toString();
		if (wsUrl.match('\\?'))
		{
			var wsQueryString=wsUrl.split('?')[1];
			if (wsQueryString.match('#'))
			{
				wsQueryString=wsQueryString.split('#')[0];
			}
			var wsParams=wsQueryString.split('&');
			var wsAnchor;
			for (i=0; i<=wsParams.length; i++)
			{
				var wsString=wsParams[i];
				if (wsString==null || wsString=='')
				{
					continue;
				}
				var wsPair=wsString.split('=');
				if (wsPair==null || wsPair.length<1 || wsPair[0]!='section')
				{
					continue;
				}
				else
				{
					wsPair=wsPair.slice(1, wsPair.length);
					wsAnchor=wsPair.join('=');
				}
				if (wsAnchor!=null && wsAnchor!='')
				{
					wsAnchor=unescape(wsAnchor);
					wsDocTargetTitle=wsAnchor;
				}
			}
		}
	}
	if (wsDocTargetTitle!='' && wsDocTarget==null)
	{
		jQuery(".tables-repeater li").each(findDocTableTarget);
	}
	if (wsDocTargetTitle!='' && wsDocTarget==null)
	{
		jQuery("h2.blue").each(findDocSectionTarget);
	}
	function findDocTableTarget(){
		var title=jQuery(this).children('h3').text();
		if (wsDocTarget==null && title==wsDocTargetTitle)
		{
			wsDocTarget=jQuery(this);
			wsTarget=wsDocTarget;
		}
	}
	function findDocSectionTarget(){
		var title=jQuery(this).text();
		if (wsDocTarget==null && title==wsDocTargetTitle)
		{
			wsDocTarget=jQuery(this).next('ul').children('li:nth-child(1)');
			title=wsDocTarget.children('h3').text();
			wsTarget=jQuery(this);
		}
	}
	function openDocTableTarget(){
		var title=jQuery("a.toggle-view", wsDocTarget).text();
		var target=jQuery("a.toggle-view", wsDocTarget).parent();
		toggleView(target);
	}
	
	//End File tables Functions
	
	jQuery("a").click(function(e){
		processLinkClickWu(jQuery(this), e);
	});
	function processLinkClickWu(element, event)
	{
		var linkUrl=element.attr('href');
		var linkCategory='';
		var linkAction='';
		var gaUrl='';
		var temp;
		{
			var bContinure=true;
			var linkTarget=element.attr('target');
			if (linkTarget==null || linkTarget=='')
			{
				linkTarget='';
			}
			if (bContinure && (linkUrl==null || linkUrl==''))
			{
				bContinure=false;
			}
			if (bContinure && linkUrl.match(/:\/\//i))
			{
				bContinure=false;
			}
			if (bContinure && linkUrl.match(/^(#|javascript:)/i))
			{
				bContinure=false;
			}
			temp=element.attr('class');
			if (bContinure && temp.search(/external/)!=-1)
			{
				bContinure=false;
			}
			if (bContinure && temp.search(/(gallery|modalWindow)/)!=-1)
			{
				bContinure=false;
			}
			temp=element.attr('rel');
			if (bContinure && temp.search(/(gallery|modalWindow)/)!=-1)
			{
				bContinure=false;
			}
			if (bContinure)
			{
				if (linkUrl.match(/\.(html?|cgi)/i))
				{
				}
				else
				{
					gaUrl=linkUrl;
					logLink2Ga(gaUrl, linkCategory, linkAction);
					gaUrl='/downloads'+linkUrl;
					logLink2Ga(gaUrl, linkCategory, linkAction);
				}
				
			}
		}
	}

	//External Links
	(function(){
		var internalDomains = ["www.rta.nsw.gov.au", "whome.rta.nsw.gov.au", "livetraffic.rta.nsw.gov.au", "www.livetraffic.rta.nsw.gov.au"];
		//jQuery("#main a").filter(function(){
		jQuery("#content a").filter(function(){
			if(this.hostname && this.hostname !== location.hostname){
				for(var i = 0; i <internalDomains.length; i++){
					if(this.hostname == internalDomains[i]){
						return false;
					}
				}
				return true;
			}
			return false;
		}).each(function(){
			$this = jQuery(this);
			if($this.parent('h1, h2, h3, h4, h5, h6').length == 0 && $this.children('img').length == 0 && !$this.hasClass('file-icon')){
				$this.addClass('external');
			}
			if($this.attr('target') == ''){
				$this.attr('target', '_blank');
			}
		});
	})();
	//End External LInks
});

function logLink2Ga(link, category, action)
{
	try {
		if (_gaq!=null)
		{
			_gaq.push(['_trackPageview', link]);
		}
	} catch(err) {}
	try {
		if (pageTracker_roadprojects!=null)
		{
			pageTracker_roadprojects._trackPageview(link);
		}
	} catch(err) {}
}

