// JavaScript Document

/* top navigation image roll over state */
$(document).ready( function(){
	chgimg();
	accordion();
	accordion3();
	accordionWide();
	accordionOpen('#kui-accordion','#kui-accordion01','#kui-accordion02');
	externalLinks();
	kui_filters('#BoD_wrapper .director', '#img_quicklink_list li');
	//$(document).pngFix();
	// printPage();
});
var imgsst=new Array();
var descst=new Array();
var imgs;
function chgimg()
{
	if(getid('casestudies'))
	{
 imgs=getid('casestudies').getElementsByTagName('img');
 for(var i=0;i<imgs.length;i++)
 {
  imgsst[i]=imgs[i].src;
 }
 var desc=getid('casestudies').getElementsByTagName('p');
 for(var i=0;i<imgs.length;i++)
 {
  descst[i]=desc[i].innerHTML;
 }
	getid('chngimg').style.background= 'url('+imgsst[rotno]+') repeat-x left top';
 getid('chngspan').innerHTML=descst[rotno];
 rotateimg();
	}
}
var rotno=0;
function rotateimg()
{
  var chnginterval=setInterval("changeimg()",5000);
}
function changeimg()
{
  if(rotno == (imgs.length-1))
 {
	 rotno=-1;
 }
  rotno++;
 getid('chngimg').style.background= 'url('+imgsst[rotno]+') repeat-x left top';
 getid('chngspan').innerHTML=descst[rotno];
}
function getid(id)
{
 return document.getElementById(id);
}

/* accordian function for center section */
function accordion() {
		//hide the all of the element with class msg_body
	$(".acc-content").hide();
	$('#elm1').show();
	var el;
	var divel=$('#kui-accordion');
	//slides the element with class "msg_body" when paragraph with class "msg_head" is clicked 
	$("#kui-accordion h3").click(function()
    {
		el=$('#kui-accordion')[0].offsetHeight;
		//$(this).next(".acc-content").slideToggle('fast').siblings(".acc-content").slideUp("fast");
		$(this).next(".acc-content").slideToggle('fast');
		$(this).toggleClass("active");
		//$(this).siblings("h3").removeClass("active");
		//$('#kui-accordion').css('height', el);
	});
}
function accordion3() {
		//hide the all of the element with class msg_body
	$(".acc-content3").hide();
	$('#elm3').show();
	var el;
	var divel=$('#kui-accordion3');
	//slides the element with class "msg_body" when paragraph with class "msg_head" is clicked 
	$("#kui-accordion3 h3").click(function()
    {
		el=$('#kui-accordion3')[0].offsetHeight;
		$(this).next(".acc-content3").slideToggle('fast').siblings(".acc-content3").slideUp("fast");
		$(this).toggleClass("active");
		$(this).siblings("h3").removeClass("active");
		//$('#kui-accordion').css('height', el);
	});
}

function accordionWide() {
		//hide the all of the element with class msg_body
	$(".acc-contentWide").hide();
	$('#elm2').show();
	var el;
	var divel=$('#kui-accordionWide');
	//slides the element with class "msg_body" when paragraph with class "msg_head" is clicked 
	$("#kui-accordionWide h3").click(function()
    {
		el=$('#kui-accordionWide')[0].offsetHeight;
		$(this).next(".acc-contentWide").slideToggle('fast').siblings(".acc-contentWide").slideUp("fast");
		 $(this).toggleClass("active");
		 $(this).siblings("h3").removeClass("active");
		//$('#kui-accordion').css('height', el);
	});
}


function accordionOpen(accordion01,accordion02,accordion03) {
		//hide the all of the element with class msg_body
	var defaultopen=window.location.hash.replace('#','');
	if(defaultopen == '')
	{
		defaultopen=1;	
	}
	$(".acc-content").hide();
	$(accordion01+" .acc-content:eq("+(defaultopen-1)+")").show();
	$(accordion02+" h4:eq("+(defaultopen-1)+")").addClass("active");
	$(accordion01+" h2").click(function(e)
    {
		e.preventDefault();		
		 $(this).next(".acc-content").slideToggle('medium').siblings(".acc-content").slideUp("medium");
	});
	
	
	$(accordion02+" h3").click(function(e)
    {
		
		e.preventDefault();		
		 $(this).toggleClass("active");
		  $(this).addClass("activeTitle");
		 $(this).siblings("h3").removeClass("active");
		 $(this).siblings("h3").removeClass("activeTitle");
		 $(this).next(".acc-content").slideToggle('medium').siblings(".acc-content").slideUp("medium");
		 //$('html, body').animate({ scrollTop: 0 }, 'medium');
	});
	
	
	$("#kui-accordion h2").hover(function()
    {		
		if(!$(this).hasClass("active")) {
			  $(this).addClass("rollover");
		 }
	},
	function() {
		$(this).removeClass("rollover");
	});
	
	$("#kui-accordion01 h4").hover(function()
    {		
		if(!$(this).hasClass("active")) {
			  $(this).addClass("rollover");
		 }
	},
	function() {
		$(this).removeClass("rollover");
	});
		
		
	$("#kui-accordion02 h4").hover(function()
    {		
		if(!$(this).hasClass("active")) {
			  $(this).addClass("rollover");
		 }
	},
	function() {
		$(this).removeClass("rollover");
	});
	
	
	

	/*$(accordion01+" h4").mouseout(function(e)
    {
		 $(this).removeClass("hactive");
		 //$('html, body').animate({ scrollTop: 0 }, 'medium');
	});*/


	$(accordion03+" h4").click(function(e)
    {
		
		e.preventDefault();	
		//$(".acc-content:eq(0)").css('display', 'none');
		 $(this).toggleClass("active");
		 $(this).siblings("h4").removeClass("active");
		 $(this).siblings("h4").removeClass("activeTitle");
		 $(this).next(".acc-content").slideToggle('medium').siblings(".acc-content").slideUp("medium");
		 //$('html, body').animate({ scrollTop: 0 }, 'medium');
	});
	$(accordion01+" h2").click(function() {
		//$(this).removeClass($(this).attr('id'));
		 //$(this).toggleClass("active");
		 
		 $(this).siblings("h2").each(function(){
			$(this).attr('class', $(this).attr('id'));
		});
		
		//$class=$(this).hasClass('active');
		if($(this).hasClass('active')) {
			$(this).removeClass("active");
			$(this).attr('class', $(this).attr('id'));
		}
		else {
			 $(this).attr("class","active");
		}
	});

}


/* email page function */
function emailPage() {
	$('a.email').click(function(){
	$('a.email').attr({ href: 'mailto:enter email address?subject=Balfour Beatty Annual Report 2009&body=The sender of this email thought that you may find the following page(s) from Balfour Beatty Annual Report 2009 of interest: %0a%0a' + document.title + ': ' + window.location})
 });
}

/* print page function */
function printPage() {
	$('.print').click(function(){
		window.print();
	});
}


/* external links to open in new window */
function externalLinks() { 
	if (!document.getElementsByTagName) return; 
	var anchors = document.getElementsByTagName("a"); 
	for (var i=0; i<anchors.length; i++) { 
		var anchor = anchors[i]; 
		var relvalue = anchor.getAttribute("rel");
		if (anchor.getAttribute("href")) {
			var external = /external/;
			var relvalue = anchor.getAttribute("rel");
			if (external.test(relvalue)) { 
				anchor.target = "_blank";
			}
		} 
	}
} 
//window.onload = externalLinks;//window.onload = externalLinks;
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:50,interval:200,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);


var gotoThisId;
function kui_filters(imgwrapper, linkwrapper) {
	var fadeout=.3, fadein=1;
	$(imgwrapper).addClass('active');	
	
/*	$(imgwrapper).find('a').hover(function(){
		$(imgwrapper).find('a').attr('id','');
		if(!$(this).attr('class')=='') {	
			var getClass=$(this).attr('class');
			var classArray=getClass.split(',');
			for(var $k=0; $k<=classArray.length-1; $k++) {	
				//alert('a#group1')
				classArray[$k] = jQuery.trim(classArray[$k]);
				$('a#'+classArray[$k]).parent('li').addClass('onTab');
			}
			//$(imgwrapper).find('a').animate({'opacity': .5});
			$(this).animate({'opacity': 1}).attr('id','visible');
			$(imgwrapper).find('a:not(a#visible)').animate({'opacity': .3});
		}
		else {
			//alert('class not defined');
		}
	},
	function(){
			//$(linkwrapper).find('li:not(li.all)').removeClass('onTab');
	});*/
		var currentCat=0,resetHighlight;
		$(imgwrapper).each(function () {					 
		$(this).children('a').hoverIntent({	
			timeout: 10,
			over: function () {
				currentCat=$('.onTab').index();	
				resetHighlight=$(linkwrapper+':eq('+currentCat+')').children('a').attr('id');
				
				if(!$(this).attr('class')=='') {	
					var getClass=$(this).attr('class');
					var classArray=getClass.split(' ');
					for(var $k=0; $k<=classArray.length-1; $k++) {
						classArray[$k] = jQuery.trim(classArray[$k]);
						$('a#'+classArray[$k]).parent('li').addClass('highlight');
					}
					//$(imgwrapper).find('a').animate({'opacity': .5});

					$(linkwrapper).removeClass('onTab');
					$(this).parent('div').animate({'opacity': fadein});
					$(this).parent('div').siblings().animate({'opacity': fadeout});
					//$(imgwrapper).find('a:not(a#visible)').animate({'opacity': .3});
				}				
			},
			out: function () {
				$(linkwrapper+':not(li.onTab)').removeClass('highlight');
				//$(linkwrapper).find('li').removeClass('highlight');
				$(linkwrapper+':eq('+currentCat+')').addClass('onTab');
				$(imgwrapper).find('a[rel='+resetHighlight+']').parent('div').animate({'opacity': fadein},500);
				$(imgwrapper).find('a:not(a[rel='+resetHighlight+'])').parent('div').animate({'opacity': fadeout},500);
				
				/*if(resetHighlight=='all') {
					$(imgwrapper).animate({'opacity': fadein},500);
				}else {
					$(imgwrapper).find('a[rel='+resetHighlight+']').parent('div').animate({'opacity': fadein},500);
					$(imgwrapper).find('a:not(a[rel='+resetHighlight+'])').parent('div').animate({'opacity': fadeout},500);
				}*/			
			}
		});
	});
	$('#BoD_wrapper').hover(function(){	
	},
	function(){
		if(resetHighlight=='all') {
			$(imgwrapper).animate({'opacity': fadein},500);
		}		
	});
	
	$(linkwrapper+' a').each(function () {
		$(this).hoverIntent({
			timeout: 12,
			over: function () {
				if($(this).parent('li')) {
					//var $filter = $(this.hash);
					var gotoThisId=$(this).attr('id');	
					var targetAnchor=$(imgwrapper).find('a');

					$(imgwrapper).find('.'+gotoThisId).parent('div').animate({'opacity': fadein},500);
					$(imgwrapper).find('a:not(a.'+gotoThisId+')').parent('div').animate({'opacity': fadeout},500);
					//$(imgwrapper).find('a[rel='+gotoThisId+']').parent('div').animate({'opacity': fadein},500);
					//$(imgwrapper).find('a:not(a[rel='+gotoThisId+'])').parent('div').animate({'opacity': fadeout},500);
					
					if(gotoThisId=='all'){
						$(imgwrapper).animate({'opacity': fadein},500);
					}
				}				
			},
			out: function () {
				$(imgwrapper).find('a').parent('div:not(div.active)').animate({'opacity': fadeout},500);
				//$(imgwrapper).find('a').parent('div.active').animate({'opacity': fadein},500);
			}
		});
	});
	var $getID; var getActiveEl;
	$('#img_quicklink_list').hover(function(){
		getActiveEl=$(this).children('li');
		$getID=$(getActiveEl).children('a').attr('id');
	},
	function() {

		if($getID=='all') {
			$(imgwrapper).animate({'opacity': fadein},500);
		}
	});
	
/*	if($(this).parent('li').hasClass('all')) {
		$(imgwrapper).animate({'opacity': fadein},500);
	}*/
	
	$(linkwrapper+' a' ).each(function () {
		$(this).click(function(e){
			e.preventDefault();
			$(this).parent('li').siblings().removeClass('onTab');
			$(this).parent('li').addClass('onTab');
			
			$(imgwrapper).find('a').parent('div').removeClass('active');
			gotoThisId=$(this).attr('id');					
			//$(imgwrapper).find('a[rel='+gotoThisId+']').css('opacity',1);
			var targetAnchor=$(imgwrapper).find('a');
			
			if(gotoThisId == 'all') {
				$(imgwrapper).animate({'opacity': 1},500);
				$(imgwrapper).addClass('active');
				//$(linkwrapper).find('li').removeClass('active');
			} else {
				$(imgwrapper).find('a[rel='+gotoThisId+']').parent('div').addClass('active');				
			}
		})
	});
	
	return false;
}
