var lastactive = null;


(function($){
	$.fn.eventsList = function(){
		
		return this.each(function(){
				var listElements = $(this).children('.dateBox');
		
			var now = new Date();
			now = Math.round(new Date(now.getFullYear(),now.getMonth(),now.getDate()).getTime() / 1000);
			
			
			if(listElements.length < 6) return false;
			else {
				
				var currentEvent = null,
					lastDiff = null;
			
				listElements.each(function(){
					diff = Math.abs(now - $('h2', this).attr('alt'));
					
					if(diff <= lastDiff || lastDiff == null){
						currentEvent = $(this);
					}
					lastDiff = diff;
				});
			
				currentIndex = listElements.index(currentEvent);
				
				$(this).find('.dateBox').addClass('expanded').each(function(){
					this.h = $(this).height();
					$(this).find('h2')
						.click(function(){
							if($(this).parent().hasClass('collapsed')){
								$(this).parent().removeClass('collapsed').addClass('expanded').stop().animate({
									'height': $(this).parent()[0].h + 'px'
								}, 500);
							} else {
								$(this).parent().removeClass('expanded').addClass('collapsed').stop().animate({
									'height': '46px'
								}, 500);
							}
						}).hover(function(){
							$(this).addClass('hover');
						}, function(){
							$(this).removeClass('hover');
					});
				});
				$(this).find('.dateBox:gt('+ currentIndex + 4 +'), .dateBox:lt('+ currentIndex +')').removeClass('expanded').addClass('collapsed').css({'height':'46px'});
	
			
			}
		});
	}
	
})(jQuery);



$(document).ready(function(){

	$('body').addClass('js');

    // Focus, blur for search input field
    $('#query').focus(function(){
        if (this.value == 'Search for...') {
            this.value = '';
        }
    }).blur(function(){
        if (this.value == '') {
            this.value = 'Search for...';
        }
    });
    
    $('#emailaddress').val('Email address').focus(function(){
        if (this.value == 'Email address') {
            this.value = '';
        }
    }).blur(function(){
        if (this.value == '') {
            this.value = 'Email address';
        }
    });
    
    // Open links with class "external" in new window
    $('a.external').click(function(){
        window.open(this.href);
        return false;
    });
    
    // Preview boxes
    var $previewLink = $('.previewBox .preview a');
    $previewLink.addClass('overlay');
    
    $('<div class="overlayBlock"></div>').appendTo($previewLink);
    
    $('.previewBox').each(function(){
        var $overlay = $(this).find('.preview div.overlayBlock');
        $(this).find('p').appendTo($overlay);
        $overlay.hide();
        
        $(this).hover(function(){
            $overlay.slideDown(100);
        }, function(){
            $overlay.slideUp(100);
        });
    });
    // End Preview boxes
    
    
    // Toggle event dates
	$('.contentDetails li').each(function() {
		var par = $(this).find('p:not(.googleMaps, :first)'),
			firstP = $(this).find('p:first');
		
		if ((par).length > 0) {
			var trigger = $('<a href="#">View all</a>').insertAfter(firstP);
			trigger.addClass('trigger');
			
			var div = $('<div></div>').insertBefore(trigger).hide();
			par.appendTo(div);
			
			trigger.click(function() {
				$(this).toggleClass('active');
				div.slideToggle(300);
				
				if (trigger.hasClass('active')) {
					trigger.html('Close');
				}
				else {
					trigger.html('View all');
				}
				return false;
			});
		}
		else {
			return false;
		}
	});
	// End Toggle event dates


    // Media element
    // console.log($imageNav);
    // prevent anything from happening when active
    var mainH = $('#mediaBox img').height(), mainW = $('#mediaBox img').width(), mainAlt = $('#mediaBox img').attr('alt'), mainHref = $('#mediaBox img').attr('src'), mainCap = $('.captionContainer p').text();
    
    if (('#mediaBox img').length) {
        $('<li><a class="external active" rel="' + mainH + ',' + mainW + ',' + mainAlt + '" href="' + mainHref + '">1</a><span>' + mainCap + '</span></li>').insertAfter('#imageNav .type');
        lastactive = $('#imageNav a.active');
    }
    
    if ($('#videoNav a').length > 0) 
        $('#mediaBox').height('380px').find('img').hide();
    
    $('#imageNav').find('a').each(function(){
        var $link = $(this), $dim = $link.attr('rel').split(','), h = $dim[0], w = $dim[1], alt = $dim[2], $caption = $link.next();
        
        // change numbers in navigation
        var cnt = 1;
        $('#imageNav a').each(function(){
            $(this).text(cnt);
            cnt++;
        });
        
        $link.unbind('click').click(function(){
            $newImg = $(this).attr('href');
            
            
            if ($(this).hasClass('active')) {
                return false;
            }
            else {
                preloadImg($newImg, function(){
                    if ($('#mediaBox img').length > 1) {
                        $('#mediaBox img:first').fadeOut(500, function(){
                            $(this).remove();
                        });
                    }
                    else {
                        $('#mediaBox object, #mediaBox embed').fadeOut(500, function(){
                            $(this).remove();
                        });
                    }
                    $('<img width="595" height="' + h + '" style="display: none" class="absolute" alt="' + alt + '" src="' + $newImg + '"/>').appendTo('#mediaBox').fadeIn(1000);
                    $('#mediaNav p').fadeOut(500, function(){
                        $(this).remove();
                    });
                    $('<p class="absolute" style="display:none;">' + $caption.html() + '</p>').appendTo('.captionContainer').fadeIn(1000);
                    $('#mediaBox').animate({
                        'height': h + 'px'
                    }, 500);
                });
                
                if (lastactive != null) {
                    lastactive.removeClass('active');
                }
                
                lastactive = $(this);
                $(this).addClass('active');
            }
            
            
            return false;
        });
        
        
    });
    
    function preloadImg(url, fn){
        var xmlhttp;
        if (window.XMLHttpRequest) {
            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        }
        else {
            // code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function(){
            if (xmlhttp.readyState == 4) {
                fn();
            }
        }
        xmlhttp.open("GET", url, true);
        xmlhttp.send(null);
    }
    
    var vcnt = 0;
    $('#videoNav').find('a').each(function(){
        var $link = $(this), url = this.href.replace(/^.+v=/, '').replace(/&.+$/, '');
        h = 380, w = 595;
        
        
        $link.unbind('click').click(function(e){
            e.preventDefault();
            
            $caption = $(this).next();
            $('.captionContainer').html('<p class="absolute" style="display:none;">' + $caption.html() + '</p>').find('p').fadeIn(500);
            
            if ($(this).hasClass('active')) 
                return false;
            $('#mediaBox').animate({
                'height': h + 'px'
            }, 200, function(){
                var vc = $('#mediaBox'), c1 = '0x3a3a3a', c2 = '0x999999';
                vc.html('<div id="flash-container">Video content requires a free adobe flash plug-in from <a href="http://get.adobe.com/flashplayer/">http://get.adobe.com/flashplayer/</a></div>');
                swfobject.embedSWF('http://www.youtube.com/v/' + url + '&hl=en_GB&fs=1&color1=' + c1 + '&color2=' + c2 + '&autoplay=0&showinfo=0', "flash-container", w, h, "9.0.0", "", {}, {
                    menu: "false",
                    wmdode: "transparent",
                    bgcolor: '#fffddd'
                }, {
                    id: "flashVideo",
                    name: "flashVideo"
                });
                
            });
            
            if (lastactive != null) {
                lastactive.removeClass('active');
            }
            
            lastactive = $(this);
            $(this).addClass('active');
            
            return false;
            
        });
        if (vcnt == 0) {
            $link.trigger('click');
        }
        vcnt++;
        
    });
    
    
    $('div#mediaBox a.playMe').each(function(){
        var $link = $(this), 
			url = this.href.replace(/^.+v=/, '').replace(/&.+$/, ''),
        	h = 380, 
			w = 595;
			
		$link.unbind('click').click(function(e){
            e.preventDefault();
            if ($(this).hasClass('active')) 
                return false;
            $('#mediaBox').animate({
                'height': h + 'px'
            }, 200, function(){
                var vc = $('#mediaBox'), c1 = '0x3a3a3a', c2 = '0x999999';
                vc.html('<div id="flash-container">Video content requires a free adobe flash plug-in from <a href="http://get.adobe.com/flashplayer/">http://get.adobe.com/flashplayer/</a></div>');
                swfobject.embedSWF('http://www.youtube.com/v/' + url + '&hl=en_GB&fs=1&color1=' + c1 + '&color2=' + c2 + '&autoplay=0&showinfo=0', "flash-container", w, h, "9.0.0", "", {}, {
                    menu: "false",
                    wmdode: "transparent",
                    bgcolor: '#fffddd'
                }, {
                    id: "flashVideo",
                    name: "flashVideo"
                });
            });
            
            return false;
            
        });
        
    });
    

	$('.listing').eventsList();
    
    
});