//Cufon Replaced Items

//check if browser is NOT MSIE
//if its not we will cufon the
//casestudy slider titles as ie is shit
if(!$.browser.msie)	{
	Cufon.replace('#case-study-slider ul li');
}
Cufon.replace('h1:not(.landing)');
Cufon.replace('.links ul li.quote');
Cufon.replace('.tel-expanded');
Cufon.replace('.news-item-fav h4');
Cufon.replace('#header-nav ul li',	{
	hover: true
	});
Cufon.replace('#header-nav-inner ul li',	{
	hover: true
	});
Cufon.replace('.header-back a');
Cufon.replace('#side-case-study-preview ul li');
Cufon.replace('.grey-cta');
Cufon.replace('.green-cta');
Cufon.replace('.side-nav-title');

$(document).ready(function()	{
	//meet the team hover label
	$('map#image-map-active area').mouseover(function()	{
		var name = $(this).attr('alt');
		var position = $(this).attr('class');
		var coords = $(this).attr('coords');

		var label = $('#map-label .map-label-name');
		var labelPos = $('#map-label .map-label-position');
		$(label).text(name);
		$(labelPos).text(position);

		$('#coords').text(coords);

			$('map#image-map-active').mousemove(function(e){

					var split_coords = coords.split(',');

					//left positioning
					var coordsX = parseFloat(split_coords[0]);
					//top positioning
					var coordsY = parseFloat(split_coords[1] - 38);

				  $('#map-label').show().css('top',coordsY).css('left',coordsX);

			});
			$('map#image-map-active').mouseout(function()	{
				$('#map-label').hide();
		 	});
	});

	//equalise the heights
	$('#news-item-nav, #news-item-copy').equalHeights();
	$('.links ul li.container').equalHeights();

	//Show Side Nav Areas and Main Case Studies Additional Navigation Drop Down Menu
	$('ul.add-nav li, ul.interest li, ul.more li').click(function()	{
		$('ul.interest li ul').fadeIn('slow');
	return false;
	});

	//Hide Side Nav Areas and Main Case Studies Additional Navigation Drop Down Menu
	//and change the default value to the selected value
	$('ul.add-nav li ul li, ul.interest li ul div li, ul.more li ul div li').click(function()	{
		var value = $(this).children('a').text();
		$('a.current').text(value);
		$('ul.interest li ul').fadeOut('slow');
	return false;
	});

	//Colorbox for the casestudy page
	$("a[rel='slideShow']").click(function()	{
		$('#colorbox').removeClass('vacancy-colorbox');

		$("a[rel='slideShow']").colorbox({
			slideshow:true,
			slideshowSpeed: 4000,
			slideshowAuto:true
		});
   });

	$('a.activate-cs').click(function(){
		$('#colorbox').removeClass('vacancy-colorbox');
		$('a[rel=slideShow]:first').click();
		return false;
	})

	//Colorbox for the vacancies
	$('.vacancy h3 a').click(function()	{
		$('#colorbox').addClass('vacancy-colorbox');
		var vacancyID = $(this).attr('href');
		$('.vacancy h3 a').colorbox({
			transition:"elastic",
			width: "680px",
			title:true,
			inline:true,
			href:vacancyID
		});
	});

	//expand cta content
	$('.tel-minified').click(function()	{
		$(this).toggleClass('tel-expanded');
		Cufon.replace('.tel-expanded');
	return false;
	});
});

	//slider gallery plugin for front page
	//fix to show cufon active menu items
	$(function() {
		$.fn.cycle.updateActivePagerLink = function(pager, currSlide) {
				$(pager).find('a').removeClass('activeSlide').filter('a:eq('+currSlide
		+')').addClass('activeSlide');
				// Cufon refresh for custom font
				Cufon.refresh();
		};
	});
	//slider gallery plugin for front page config (must be called after the cufon fix)
	//to set the gallery so it does not automatically slide set timeout to 0
	var curr_slide = 0;
	$(function() {
		$('.items').cycle({
			fx:     'scrollHorz',
			timeout: 7000,
			cleartype:  true,
			cleartypeNoBg:  true,
			speed:    600,
			startingSlide: 0,
			pager:  '#header-nav ul',
			after: function(currSlideElement, nextSlideElement, options, forwardFlag) {
				curr_slide = options.currSlide;

				if(4 == curr_slide)	{
					$('.items').cycle('pause');
					setTimeout("$('.items').cycle('resume');$('.items').cycle(1);",options.timeout);
				}
			},
			//nowrap: true,
			pagerAnchorBuilder: function(idx, slide) {
				// return sel string for existing anchor
				return '#header-nav ul li:eq(' + (idx) + ') a';
			}
		});
		$('.next').click(function() {
			if(curr_slide === 4)	{
				$('.items').cycle(1);
			} else	{
				$('.items').cycle('next');
			}
		});
	});

    //slider for landing pages
    var zero = 0;
    var current = 0;
    $('.carousel div').cycle({
        fx: 'scrollHorz',
        prev:   '#landing_back',
        next:   '#landing_next',
        after:   onAfter,
        timeout: 0
    })

//Sorter for interested in
(function($) {
	$.fn.sorted = function(customOptions) {
		var options = {
			reversed: false,
			by: function(a) {
				return a.text();
			}
		};
		$.extend(options, customOptions);

		$data = $(this);
		arr = $data.get();
		arr.sort(function(a, b) {

		   	var valA = options.by($(a));
		   	var valB = options.by($(b));
			if (options.reversed) {
				return (valA < valB) ? 1 : (valA > valB) ? -1 : 0;
			} else {
				return (valA < valB) ? -1 : (valA > valB) ? 1 : 0;
			}
		});
		return $(arr);
	};

})(jQuery);

$(function() {

  var read_button = function(class_names) {
    var r = {
      selected: false,
      type: 0
    };
    for (var i=0; i < class_names.length; i++) {
      if (class_names[i].indexOf('selected-') == 0) {
        r.selected = true;
      }
      if (class_names[i].indexOf('segment-') == 0) {
        r.segment = class_names[i].split('-')[1];
      }
    };
    return r;
  };

  var determine_sort = function($buttons) {
    var $selected = $buttons.parent().filter('[class*="selected-"]');
    return $selected.find('a').attr('data-value');
  };

  var determine_kind = function($buttons) {
    var $selected = $buttons.parent().filter('[class*="selected-"]');
    return $selected.find('a').attr('data-value');
  };

  //configuration for quicksand
  var $preferences = {
    duration: 800,
    easing: 'easeInOutQuad',
	useScaling: false,
    adjustHeight: 'auto',
	enhancement: function() {
		//we check to see if the browser is not msie
		//and if its not msie we cufon the text
		if(!$.browser.msie)	{
			Cufon.replace('#case-study-slider ul li');
		}
    }
  };

  var $list = $('#list');
  var $data = $list.clone();

  var $controls = $('ul.interest ul');

  $controls.each(function(i) {

    var $control = $(this);
    var $buttons = $control.find('a');

    $buttons.bind('click', function(e) {

      var $button = $(this);
      var $button_container = $button.parent();
      var button_properties = read_button($button_container.attr('class').split(' '));
      var selected = button_properties.selected;
      var button_segment = button_properties.segment;

      if (!selected) {
        //This needs to be increased for however many tags there are
		$buttons.parent().removeClass('selected-0').removeClass('selected-1').removeClass('selected-2').removeClass('selected-3').removeClass('selected-4').removeClass('selected-5').removeClass('selected-6')
		.removeClass('selected-7').removeClass('selected-8').removeClass('selected-9').removeClass('selected-10').removeClass('selected-11').removeClass('selected-12').removeClass('selected-13').removeClass('selected-14').removeClass('selected-15').removeClass('selected-16').removeClass('selected-17').removeClass('selected-18').removeClass('selected-19').removeClass('selected-20');
        $button_container.addClass('selected-' + button_segment);

        var sorting_type = determine_sort($controls.eq(1).find('a'));
        var sorting_kind = determine_kind($controls.eq(0).find('a'));

        if (sorting_kind == '') {
          var $filtered_data = $data.find('li');
        } else {
          var $filtered_data = $data.find('li.' + sorting_kind);
        }

        if (sorting_type == 'size') {
          var $sorted_data = $filtered_data.sorted({
            by: function(v) {
              return parseFloat($(v).find('span').text());
            }
          });
        } else {
          var $sorted_data = $filtered_data.sorted({
            by: function(v) {
              return $(v).find('strong').text().toLowerCase();
            }
          });
        }

        $list.quicksand($sorted_data, $preferences);

      }

      e.preventDefault();
    });

  });

  var high_performance = true;
  var $performance_container = $('#performance-toggle');
  var $original_html = $performance_container.html();

  $performance_container.find('a').live('click', function(e) {
    if (high_performance) {
      $preferences.useScaling = false;
      $performance_container.html('CSS3 scaling turned off. Try the demo again. <a href="#toggle">Reverse</a>.');
      high_performance = false;
    } else {
      $preferences.useScaling = true;
      $performance_container.html($original_html);
      high_performance = true;
    }
    e.preventDefault();
  });
});

function onAfter(curr, next, opts) {
    var index = opts.currSlide;
    $('#landing_back')[index == 0 ? 'hide' : 'show']();
    $('#landing_next')[index == opts.slideCount - 1 ? 'hide' : 'show']();
}
