/* -------------------------------------------
 [custom JS]
 ------------------------------------------- */
var allowAnim = true;

$(document).ready(function () {

	//placeholder in search box in menu bar	
	$("#nav .search input.text").focus(function(){if($(this).val() == "Search here") {$(this).val("");}}).blur(function(){if($(this).val() == "") {$(this).val("Search here");}});
	
	//placeholder in used on various search forms
	$(".course-placeholder input.text").focus(function(){if($(this).val() == "Course name / keywords") {$(this).val("");}}).blur(function(){if($(this).val() == "") {$(this).val("Course name / keywords");}});
	$(".publications-placeholder input.text").focus(function(){if($(this).val() == "Publication / resource name") {$(this).val("");}}).blur(function(){if($(this).val() == "") {$(this).val("Publication / resource name");}});
	$(".site-placeholder input.text").focus(function () { if ($(this).val() == "Search text") { $(this).val(""); } }).blur(function () { if ($(this).val() == "") { $(this).val("Search text"); } });
	$(".title-placeholder input.text").focus(function(){if($(this).val() == "Title") {$(this).val("");}}).blur(function(){if($(this).val() == "") {$(this).val("Title");}});
	$(".first-name-placeholder input.text").focus(function(){if($(this).val() == "First name") {$(this).val("");}}).blur(function(){if($(this).val() == "") {$(this).val("First name");}});
	$(".last-name-placeholder input.text").focus(function () { if ($(this).val() == "Last name") { $(this).val(""); } }).blur(function () { if ($(this).val() == "") { $(this).val("Last name"); } });
	$(".fullname-placeholder input.text").focus(function () { if ($(this).val() == "First name / Last name / Keywords") { $(this).val(""); } }).blur(function () { if ($(this).val() == "") { $(this).val("First name / Last name / Keywords"); } });
	  
	//placeholder in used on complaint form  
	$(".name-placeholder input.text").focus(function(){if($(this).val() == "Your name") {$(this).val("");}}).blur(function(){if($(this).val() == "") {$(this).val("Your name");}});
	$(".email-placeholder input.text").focus(function(){if($(this).val() == "Your email address") {$(this).val("");}}).blur(function(){if($(this).val() == "") {$(this).val("Your email address");}});
	$(".message-placeholder textarea").focus(function(){if($(this).val() == "Your message") {$(this).val("");}}).blur(function(){if($(this).val() == "") {$(this).val("Your message");}});

	//rollover image change on form buttons
	$(".contact-form .submit input").hover(function () {$(this).attr("src","/media/interface/form-input-send-message-hover.gif");}, function () {$(this).attr("src","/media/interface/form-input-send-message.gif");});
	$(".search-form .submit input").hover(function () {$(this).attr("src","/media/interface/form-input-darkblue-hover.gif");}, function () {$(this).attr("src","/media/interface/form-input-darkblue.gif");});
	$(".information .submit input").hover(function () { $(this).attr("src", "/media/interface/form-input-darkblue-go-hover.gif"); }, function () { $(this).attr("src", "/media/interface/form-input-darkblue-go.gif"); });

	//set up slider for case study
	if($('#leader-home .case-study').size()){
		$('.case-study #panes .inner').css('left','0px');
		$('.case-study #slider-nav span:first').addClass("active");
			
		$('#slider-next').click(function() {moveSlides('right');return false;});
		$('#slider-prev').click(function() {moveSlides('left');return false;});
				
		$('.case-study #slider-nav span').click(function() {clickSlides(this);return false;});
		
		//auto-rotate once through the 5 frames
		var caseInterval = 0;
		caseInterval = setInterval(function(){
			if (allowAnim == true){
				$('#slider-next').click();
								
				if(($('.case-study #slider-nav span.active').parent().index()) == 0){
					clearInterval(caseInterval);
					fixFocusCaseStudy();
				}
			}
		}, 2500);
	};
	
	//set up "rotate slider" (contacts and programmes)
	if($('.rotate').size()){
		$('.rotate').each(function(){
			$(this).find('#track .inner').css('left','0px');
			$(this).find('#rotate-next').click(function() {
				which = $(this).parent().parent();
				moveSlidesRotate(which,'right');
				return false;
			});
			$(this).find('#rotate-prev').click(function() {
				which = $(this).parent().parent();
				moveSlidesRotate(which,'left');
				return false;
			});
		});		
	}
	
	//show or hide search-box
	$('.leader-search .search-box a').click(function(){
		if($(this).parent().hasClass("active")){
			$(this).parent().removeClass("active");
			$('.search-toggle').slideUp();
		}else{
			$(this).parent().addClass("active");
			$('.search-toggle').slideDown();
		}
		return false;
	});
	
	//auto show if a search listing is showing
	if($(".search-listing").size()){
		$('.leader-search .search-box').addClass("active");
		$('.search-toggle').show();
	}
	
	//initialise any tabs - does work correctly on pages with multiple tabContainers
	$('.tabContainer').dTabs({'event':'click'});
	
	//even up height of callouts
	if($(".callouts").size()){
		$(".callouts .last").each(function(){
			var maxHeight = 1;
			var lastHeight = 1;
			var prevHeight = 1;
		  
			lastHeight = $(this).height();
			prevHeight = $(this).prev(".callout").height();
			  
			if(lastHeight > prevHeight){maxHeight = lastHeight;}else{maxHeight = prevHeight;}
			  
			$(this).height(maxHeight);
			$(this).prev(".callout").height(maxHeight);
		});
	}
  
	//even up height of three-col-info cols
	if($(".three-col-info").size()){
	    var maxHeight = 1;
	    
	    $(".three-col-info .col").each(function(){  
			var thisHeight = $(this).height();
			if(thisHeight > maxHeight){maxHeight = thisHeight;}
	    });
	    
	    $(".three-col-info").height(maxHeight).children().height(maxHeight);
	}

	//show and hide dropdowns
	$(".hasDD").hoverIntent(showThis, hideThis);

	//even up height of event-calendar cols
	if ($(".event-columns").size()) {
	    var maxHeight = 1;

	    $(".event-columns .column").each(function () {
	        var thisHeight = $(this).height();
	        if (thisHeight > maxHeight) { maxHeight = thisHeight; }
	    });

	    $(".event-columns").height(maxHeight).children().height(maxHeight);
	}
	
	
	//---------------------------------------------------------------------------------------
	//  split our dl's in half
	//---------------------------------------------------------------------------------------
	$('.landing-right .metadata dl').each(function(ind) {
		var dts = new Array();
		var dds = new Array();
		// put current document list items into array
		$(this).children('dt').each(function(index) {
			dts[index] = $(this);
		});
		$(this).children('dd').each(function(index) {
			dds[index] = $(this);
		});

		itemsPerColumn = Math.ceil(dts.length / 2);

		// create two new document lists and append list items from array
		$(this).parent().append('<dl class="column01"></dl>');
		$(this).parent().append('<dl class="column02"></dl>');
		for (i=0; i<=itemsPerColumn; i++) {
			$(this).parent().children('dl.column01').append(dts[i]);
			$(this).parent().children('dl.column01').append(dds[i]);
		}
		for (j=itemsPerColumn; j<=dts.length; j++) {
			$(this).parent().children('dl.column02').append(dts[j]);
			$(this).parent().children('dl.column02').append(dds[j]);
		}
	});
	// remove original dl's
	$('.landing-right .metadata dl:first-child').remove();
	
	
	//equalise the heights on the definition lists dt's & dd's used in results listings
	$('.metadata dl dt').each(function()
	{
		var highest = Math.max( $(this).height(), $(this).next().height() );
		
		$(this).css({'height':highest});
		$(this).next().css({'height':highest});
	});
	
	//---------------------------------------------------------------------------------------
	//  IE fix - if widgets #content .landing .inner .left is empty, then set width to 0
	//---------------------------------------------------------------------------------------
	
	$('.inner').find('.left:empty').css({'width':'0'})
	

}); //end document ready

//dropdowns
function showThis(){
	$('.dropdowntop').css("z-index","400");
	$(this).addClass("openDD").find('.dropdowntop').css("z-index","401").slideDown("800");
	
	if($(this).hasClass("nav-all")){
	    var maxHeight = 1;
	    
	    $(".dd-all .col").each(function(){  
			var thisHeight = $(this).height();
			if(thisHeight > maxHeight){maxHeight = thisHeight;}
	    });
	    maxHeight - 20;
	    $(".dd-all .col").height(maxHeight);	
	}
}

function hideThis(){
	$(this).removeClass("openDD");
		$(this).find('.dropdowntop').slideUp("800",function(){
	});
}

//used for case-study slider (when clicking side arrows)
function moveSlides(dir){
	
	//allowAnim stops function running lots
	if (allowAnim == true){
		
		allowAnim = false; //disallow running again til finished
		var initialPos = parseFloat($('.case-study #panes .inner').css('left')); //to get starting position of panes
		var paneWidth = parseFloat($('.case-study .pane').css('width')); //width of panes (slide automation)
		var totalWidth = -($('.case-study .pane').size()) * paneWidth; //total width of panes in set (automation)
		
		//work out amount to move, based on direction set
		if (dir == 'left'){
			var amountMove = initialPos + paneWidth;
		} else if (dir == 'right'){
			var amountMove = initialPos - paneWidth;
		} else {
			amountMove = initialPos - paneWidth;
		}
		
		//start running animations
		if (amountMove > 0){
			$('.case-study #panes .inner .pane:last').clone().attr("id","clonedfirst").prependTo('.case-study #panes .inner');
			$('.case-study #panes .inner').animate({left:amountMove},400,function(){
				$('.case-study #panes .inner').css('left',(totalWidth+paneWidth));
				$('.case-study #clonedfirst').remove();
				allowAnim = true;
			});
		} else if (amountMove <= totalWidth){
			$('.case-study #panes .inner .pane:first').clone().attr("id","cloned").appendTo('.case-study #panes .inner');
			var clonedCaseStudy = true;
			$('.case-study #panes .inner').animate({left:amountMove},400,function(){
				$('.case-study #panes .inner').css('left','0px');
				$('.case-study #cloned').remove();
				allowAnim = true;
			});
		} else {
			$('.case-study #panes .inner').animate({left:amountMove},400,function(){
				allowAnim = true;
			});
		}
		
		var currentTab = $('.case-study #slider-nav span.active').parent().index();
		$('.case-study #slider-nav span').removeClass('active');	
		
		if (dir == 'left'){
			if(currentTab != "0"){
				currentTab--;
				$('.case-study #slider-nav span:eq('+currentTab+')').addClass('active');
			}else{
				$('.case-study #slider-nav span:last').addClass('active');
			}
		} else if (dir == 'right'){		
			if(clonedCaseStudy == true){
				$('.case-study #slider-nav span:first').addClass('active');
				clonedCaseStudy = false;
			}else{
				currentTab++;
				$('.case-study #slider-nav span:eq('+currentTab+')').addClass('active');				
			}
		}
		
	}
}

//used for case-study slider (when clicking tabs)
function clickSlides(clicked){
	var clickedIndex = $(clicked).parent().index();
	var currentTab = $('.case-study #slider-nav a.active').parent().index();
	
	var initialPos = parseFloat($('.case-study #panes .inner').css('left')); //to get starting position of panes
	var paneWidth = parseFloat($('.case-study .pane').css('width')); //width of panes (slide automation)
	var totalWidth = -($('.case-study .pane').size()) * paneWidth; //total width of panes in set (automation)
	var currentPane = (initialPos) / -(paneWidth);
	var difference = clickedIndex - currentPane;
	var amountMove = initialPos-(difference * paneWidth);

	$('.case-study #panes .inner').animate({left:amountMove},400);
	$('.case-study #slider-nav span').removeClass('active');
	$(clicked).addClass('active');
}

//used for programmes slider
function moveSlidesRotate(which,dir){
		
	//allowAnim stops function running lots
	if (allowAnim == true){
		
		allowAnim = false; //disallow running again til finished
		var initialPos = parseFloat($(which).find('#track .inner').css('left')); //to get starting position of panes
		var paneWidth = parseFloat($(which).find('.pane').css('width')); //width of panes (slide automation)
		var totalWidth = -($(which).find('.pane').size()) * paneWidth; //total width of panes in set (automation)
		
		//work out amount to move, based on direction set
		if (dir == 'left'){
			var amountMove = initialPos + paneWidth;
		} else if (dir == 'right'){
			var amountMove = initialPos - paneWidth;
		} else {
			amountMove = initialPos - paneWidth;
		}
		
		//start running animations
		if (amountMove > 0){
			$(which).find('#track .inner .pane:last').clone().attr("id","clonedRotateFirst").prependTo($(which).find('#track .inner'));
			$(which).find('#track .inner').animate({left:amountMove},400,function(){
				$(which).find('#track .inner').css('left',(totalWidth+paneWidth));
				$(which).find('#clonedRotateFirst').remove();
				allowAnim = true;
			});
		} else if (amountMove <= totalWidth){
			$(which).find('#track .inner .pane:first').clone().attr("id","clonedRotate").appendTo($(which).find('#track .inner'));
			$(which).find('#track .inner').animate({left:amountMove},400,function(){
				$(which).find('#track .inner').css('left','0px');
				$(which).find('#clonedRotate').remove();
				allowAnim = true;
			});
		} else {
			$(which).find('#track .inner').animate({left:amountMove},400,function(){
				allowAnim = true;
			});
		}		
	}
}

function fixFocusCaseStudy(){
	$('.case-study .pane a').focus(function(){
		var focusedPane = $(this).parent().index();
		var currentNavActive = $('.case-study #slider-nav .active').index();
		
		$('.case-study #slider-nav span').removeClass('active');
		$('.case-study #slider-nav li:eq('+focusedPane+') span').addClass('active');
		
		if($.browser.msie && jQuery.browser.version.substr(0.5)<="7.0"){
			$('.case-study #slider-nav span:eq('+(focusedPane)+')').click();
		}
		
	});
}

