$(function(){
  /*
  CSS Browser Selector v0.4.0 (Nov 02, 2010)
  Rafael Lima (http://rafael.adm.br)
  http://rafael.adm.br/css_browser_selector
  License: http://creativecommons.org/licenses/by/2.5/
  Contributors: http://rafael.adm.br/css_browser_selector#contributors
  */
  function css_browser_selector(u){
    var ua=u.toLowerCase(),is=function(t){return ua.indexOf(t)>-1},g='gecko',w='webkit',s='safari',o='opera',m='mobile',h=document.documentElement,b=[(!(/opera|webtv/i.test(ua))&&/msie\s(\d)/.test(ua))?('ie ie'+RegExp.$1):is('firefox/2')?g+' ff2':is('firefox/3.5')?g+' ff3 ff3_5':is('firefox/3.6')?g+' ff3 ff3_6':is('firefox/3')?g+' ff3':is('gecko/')?g:is('opera')?o+(/version\/(\d+)/.test(ua)?' '+o+RegExp.$1:(/opera(\s|\/)(\d+)/.test(ua)?' '+o+RegExp.$2:'')):is('konqueror')?'konqueror':is('blackberry')?m+' blackberry':is('android')?m+' android':is('chrome')?w+' chrome':is('iron')?w+' iron':is('applewebkit/')?w+' '+s+(/version\/(\d+)/.test(ua)?' '+s+RegExp.$1:''):is('mozilla/')?g:'',is('j2me')?m+' j2me':is('iphone')?m+' iphone':is('ipod')?m+' ipod':is('ipad')?m+' ipad':is('mac')?'mac':is('darwin')?'mac':is('webtv')?'webtv':is('win')?'win'+(is('windows nt 6.0')?' vista':(is('windows xp')||is('windows nt 5')? ' xp' :'')):is('freebsd')?'freebsd':(is('x11')||is('linux'))?'linux':'','js']; c = b.join(' '); h.className += ' '+c; return c;}; css_browser_selector(navigator.userAgent);
  
  $('body').css({background:'#fff url(/images/bg_body.png) repeat-x 0 -72px'});
	$('html').css({background:'#4B4B4B'});
	$('#nav').popoutMenus();
	$('#nav_search').showSearch();
	$('#tabs').tabs();
	$('#gallery').contentSlider();
	$('#map').loadMap();
	$('#search_form_side').placeholderInput();
  if( $('.lightbox').length > 0 ) {
	$('.lightbox').colorbox({opacity:.7});
  }
  if($('.funding_upload')) {
  $('.funding_upload input[type=file]').bind('change focus click', function() {$(this).fileName()});
  }
  // Sub-nav dropdown
	$('#nav_select > li').each(function() {
		var toggler = $(this).children('a.drop');
		var sublist = $(this).children('ul');

		toggler.click(function() {
			toggler.toggleClass('tog_active')
			sublist.toggleClass('list_active')
			sublist.toggle("fast");
			return false;
		});
		sublist.hide();
	});
	
	// footer shim
	
	// var more = $('.footer_news_shim .read_more');
	// $('.footer_news_shim a').toggle(function() {
	// 	more.toggle();
	// 	$(this).toggleClass('active');
	// 	return false;
	// }, function() {
	// 	more.toggle();
	// 	$(this).toggleClass('active');
	// 	return false;
	// });
	// $(this).find('.footer_news_shim .read_more').hide();
	
	$(".footer_news_shim a").click(function (e) {
		$(".footer_news_shim .read_more").slideToggle("500");
		return false;
	});
	$('.footer_news_shim .read_more').hide();
	// Filter dropdown
	$('.filter_select > li').each(function() {
		var toggler = $(this).children('a.drop');
		var sublist = $(this).children('ul');

		toggler.click(function() {
			toggler.toggleClass('tog_active')
			sublist.toggleClass('list_active')
			sublist.toggle("fast");
			return false;
		});
		sublist.hide();
	});
	
	// Make twitter fullwidth if news doesn't exist
	if($('#section_portfolio_details #related_news').length == 0) {
		$('#section_portfolio_details #twitter_feed').css({
			width : '100%',
			cssFloat : 'left'
		});
	}
	
	// Events read_more dropdown
	$('#events_list li').each(function() {
		var more = $(this).children('.article_info').children('.more');
		$(this).find('.read_more').toggle(function() {
			more.toggle();
			$(this).toggleClass('active');
		    $(this).text('Close');
			return false;
		}, function() {
			more.toggle();
			$(this).toggleClass('active');
		    $(this).text('Read More');
			return false;
		});
		$(this).find('.more').hide();
	});
	
	// Portfolio tooltips using anchor title
	$('#section_portfolio #sort_list').dropdownInfo();
	
});

$(function(){
	var $container = $('#sort_list'),
	filters = {};
	$container.isotope({
		itemSelector: '.sortable',
		transformsEnabled: false,
		animationEngine: 'jquery',
		masonry: {
		  columnWidth : 80
	 }
});

// filter buttons
$('.filter_select li ul li a').click(function(){
	
	var replaceText = $(this).html();
	var $this = $(this);
	// don't proceed if already selected
	$this.parent().parent().slideUp('fast').siblings('a').removeClass('tog_active').html(replaceText);
	if ( $this.hasClass('selected') ) {
		return false;
	}
	
	var $optionSet = $this.parents('.filter_select');
	// change selected class
	$optionSet.find('.selected').removeClass('selected').parent().removeClass('active');
	$this.addClass('selected').parent().addClass('active');
	
	// store filter value in object
	var group = $optionSet.attr('data-filter-group');
	filters[ group ] = $this.attr('data-filter-value');
	// convert object into array
	var isoFilters = [];
	for ( var prop in filters ) {
	  isoFilters.push( filters[ prop ] )
	}
	var selector = isoFilters.join('');
	$container.isotope({ filter: selector });
	
	return false;
  });


});


$(window).load(function() {
	// Find external links & apply target blank
	$('a[href^="htt"], a[href^="www"] ')
	.not('a[href^="http://www.balderton.com/"], a[href^="http://balderton.com/"]')
	.attr("target", "_blank");
});

$.fn.placeholderInput = function(){
	return this.each(function(){
		$(this).find('input.text').each(function(){
			var input = $(this);
			var label = input.prev('label').text();
			
			input.val(label).addClass('placeholder').focus(function(){
				if (input.val() == label) input.removeClass('placeholder').val('');
			}).blur(function(){
				if (input.val() == '') input.val(label).addClass('placeholder')
			});
		});
	});
}



$.fn.contentSlider = function(){
	return this.each(function(){
		var SCROLL_SPEED = 800;
		var container = $(this);
		var slides = $('#home_slider');
		var ul = $('>ul',slides);
		var markers = $('<ul class="markers"/>');
		
		var items = $('>li',ul);
		var width = slides.width();
		var totalWidth = width * items.length;
		var scrollAmount=width, currentIndex=0, currentScroll=0, indexClicked = false, ticker;
		
		items.clone().appendTo(ul);
		
		var slide = function(e){
			if(!slides.is(':animated')) {
				currentScroll = slides.scrollLeft();
				if (e.data.direction != undefined) {
					slides.animate({scrollLeft: currentScroll+scrollAmount},{duration: SCROLL_SPEED, complete:function(){
						if (slides.scrollLeft()>=totalWidth) slides.scrollLeft(slides.scrollLeft()-totalWidth);
						updateMarkers();
					}});
				} else if (e.data.i != undefined) {
					clearInterval(ticker);
					indexClicked = true;
					slides.animate({scrollLeft: scrollAmount*e.data.i},{duration: SCROLL_SPEED, complete:updateMarkers});
				}
			}
			return false;
		}
		
		var updateMarkers = function(){
			markers.children('.marker').removeClass('current').eq(slides.scrollLeft()/width).addClass('current');
		}
		
		var triggerNextSlide = function(){
			slide({data:{direction:'next'}});
		}
		
		// fit slides to window on init and resize
		ul.width(totalWidth*2);

		items.each(function(i){
			var marker = $('<li class="marker"><a href="#">Slide '+(i+1)+'</a></li>').bind('click',{i:i},slide);
			if (i==0) marker.addClass('current');
			markers.append(marker);
		})
		markers.appendTo(container);
		
		slides.hover(function(){
			clearInterval(ticker);
		},function(){
			if (!indexClicked) ticker = setInterval(triggerNextSlide,7000);
		}).trigger('mouseleave');
	});
}

$.fn.popoutMenus = function(){
	return this.each(function(){
		var interval;
		var menu = $(this);
		var triggers = menu.children().children();
		
		triggers.mouseenter(function(){
			var li = $(this);
			clearInterval(interval);
			li.children('ul').show();
			li.siblings().children('ul').hide();
		}).mouseleave(function(){
			var li = $(this);
			interval = setInterval(function(){
				li.children('ul').fadeOut('fast');
			},150);
		});
	});
};

$.fn.showSearch = function(){
	return this.each(function(){
		var body = $(document.body);
		var form = $('#search_form');
		var animationOptions = {
			duration: 600,
			queue: false
		}
		
		$(this).click(function(){
			if (!form.is(':animated')) {
				if (form.height()) {
					body.animate({
						paddingTop: 0,
						backgroundPosition: '0 -72px'
					},animationOptions);
					form.animate({
						height: 0
					},animationOptions);
				} else {
					body.animate({
						paddingTop: 72,
						backgroundPosition: '0 0'
					},animationOptions);
					form.animate({
						height: 72
					},animationOptions);
				}
			}
			return false;
		});
	});
};


$.fn.tabs = function(){
	return this.each(function(){
		var links = $(this).find('a');
		var panels = $(links.map(function(){
			return $(this).attr('href');
		}).get().join());
		
		links.click(function(){
			var link = $(this);
			panels.hide();
			panels.eq(links.index(link)).show();
			link.parent().addClass('on').siblings().removeClass('on');
			return false;
		}).first().click();
	});
}


$.fn.loadMap = function(){
	return this.each(function(){
		var balderton = new google.maps.LatLng(51.51365688983539,-0.15226364135742188);
		var myOptions = {
			zoom: 15,
			center: balderton,
			mapTypeId: google.maps.MapTypeId.ROADMAP
		};
		var map = new google.maps.Map(this,myOptions);
		var marker = new google.maps.Marker({
			position: balderton,
			map: map
		});
	});
};

$.fn.dropdownInfo = function(){
	return this.each(function(){
		$(this).find('a').each(function(){
			var link = $(this);
			var desc = link.attr('title');
			//var span = $('<span/>').text(desc);
			var span = $('<div class="v_align"><p><span>'+desc+'</span></p></div>');

			span.appendTo(link);
			
			link.attr('title','').hover(function(){
				span.animate({
					top:0
				},{
					duration: 300,
					queue: false
				});
			},function(){
				span.animate({
					top: -124
				},{
					duration: 300,
					queue: false
				});
			})
		});
	});
};

/* function to display file name when selected */
$.fn.fileName = function() {
	var $this = $(this),
	$val = $this.val(),
	valArray = $val.split('\\'),
	newVal = valArray[valArray.length-1],
	$button = $this.siblings('.button');
	if(newVal !== '') {
		$button.text(newVal);
  	}
};

/* http://keith-wood.name/backgroundPos.html
   Background position animation for jQuery v1.0.1.
   Written by Keith Wood (kbwood{at}iinet.com.au) November 2010.
   Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and 
   MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses. 
   Please attribute the author if you use it. */
(function($){var g='bgPos';$.fx.step['backgroundPosition']=$.fx.step['background-position']=function(a){if(!a.set){var b=$(a.elem);var c=b.data(g);b.css('backgroundPosition',c);a.start=parseBackgroundPosition(c);a.end=parseBackgroundPosition($.fn.jquery>='1.6'?a.end:a.options.curAnim['backgroundPosition']||a.options.curAnim['background-position']);for(var i=0;i<a.end.length;i++){if(a.end[i][0]){a.end[i][1]=a.start[i][1]+(a.end[i][0]=='-='?-1:+1)*a.end[i][1]}}a.set=true}$(a.elem).css('background-position',((a.pos*(a.end[0][1]-a.start[0][1])+a.start[0][1])+a.end[0][2])+' '+((a.pos*(a.end[1][1]-a.start[1][1])+a.start[1][1])+a.end[1][2]))};function parseBackgroundPosition(c){var d={center:'50%',left:'0%',right:'100%',top:'0%',bottom:'100%'};var e=c.split(/ /);var f=function(a){var b=(d[e[a]]||e[a]||'50%').match(/^([+-]=)?([+-]?\d+(\.\d*)?)(.*)$/);e[a]=[b[1],parseFloat(b[2]),b[4]||'px']};if(e.length==1&&$.inArray(e[0],['top','bottom'])>-1){e[1]=e[0];e[0]='50%'}f(0);f(1);return e}$.fn.animate=function(e){return function(a,b,c,d){if(a['backgroundPosition']||a['background-position']){this.data(g,this.css('backgroundPosition')||'center')}return e.apply(this,[a,b,c,d])}}($.fn.animate)})(jQuery);

