/*
*************************************************
		
		Ombudsman JavaScript
		* Requires jQuery library
		
*************************************************
*/
	
/*----- Initialise ----------------------------*/
$(document).ready(function()
{
	clear_search();
	add_document_type_class();
	add_external_link_class();
	search_a_z_reports();
	init_multilingual_cycle();
});

/*----- Clear search query on focus -----------*/
var clear_search = function()
{
	var default_value = "Search our website";
	var input = $("#quick-search input[name='query']");
	if(input.val() == "") input.val(default_value);
	var initial_value = input.val();
	
	input.focus(function()
	{
		if($(this).val() == initial_value) $(this).val("");
	}).blur(function()
	{
		if($(this).val() == "") $(this).val(initial_value);
	});
};

/*----- Multilingual cycling on home page ------------*/
var init_multilingual_cycle = function()
{
	$('#multilingual-brochure-text').cycle({
			fx:			'fade',
			timeout:	4000,
			speed:		750,
			pause:		true
	});
	
	$("#multilingual-brochure-play-pause").toggle(
    function() {
      $('#multilingual-brochure-text').cycle('pause');
      $(this).text("Resume").addClass('resume');
    },
    function() {
      $('#multilingual-brochure-text').cycle('resume');
      $(this).text("Pause").removeClass('resume');
  });
};


/*----- Add .doc/.rtf/.etc class to links to documents ------------*/
var add_document_type_class = function()
{
	var document_types = new Array(
		'pdf',
		'doc',
		'zip',
		'rtf'
	);
	
	for (var i = document_types.length - 1; i >= 0; i--)
	{
		var doc = document_types[i];
		var matchingElements = $("a[href$='"+doc+"']");
		
		if(matchingElements.children("img").length == 0)
		{
		  matchingElements.addClass(doc);
		}
	};
};

/*----- Add the :external selector to jQuery ------------*/
$.extend($.expr[':'],{
    external: function(a,i,m) {
        if(!a.href) {return false;}
        return a.hostname && a.hostname !== window.location.hostname;
    }
});

/*----- Add .ext to external text links (not image links) ------------*/
var add_external_link_class = function()
{
	$("a:external").each(function(index, extLink){
		var skip = false;
		var extHome = false;
		
		$(extLink).parents().each(function(index, parent){
			if ((parent.id == 'section-nav' || parent.id == 'nav') || parent.id == 'footer')
			{
				skip = true
			}
			else if ($(parent).attr("class") == 'home')
			{
				extHome = true;
			}
		})
		
		if ($(this).children("img").length == 0 && skip == false)
		{
			if (extHome)
			{
				$(this).addClass("ext-home");
			}
			else
			{
				$(this).addClass("ext");
			}
		}
	});
}

/*----- search A-Z reports page ------------*/
var search_a_z_reports = function()
{
	$('#a-z_search').submit(function(){
		return false;
	});
	
	$('#a-z_search').keyup(function() {
		var searchQuery = $(this).children("input[type='text']").val();
		var listItems = $('#a-z > li');

		listItems.each(function(){
			var anchor = $(this).find("a");
			
			if (anchor.text().search(new RegExp(searchQuery, 'i')) == -1)
			{
				$(this).hide();
			}
			else
			{
				var text = anchor.text().replace("/</?strong>/g", "");
				
				if (searchQuery.length != 0)
				{
					text = text.replace(new RegExp(searchQuery, 'ig'), function(match) {
						     return "<strong>" + match + "</strong>";
						   });
				}
				
				anchor.html(text);
				$(this).show();
			}
		});
	});
}
