/*
@description Homepage JS functions
*/


$(document).ready(function() {
	var loaded = 0;
	var timerId = 0;
	var current = null;

	var stop = function() {
		clearTimeout(timerId);
		timerId = 0;
	};

	var reset = function(e) {
		loaded = 0;
		if(e)
			e.hide();
		original.fadeIn(1000, function() { loaded = 1; });
	};

	var original = $('#home_photo');

	reset();

	$('#banners.banner > a').each(function(i) {
		if(i > 0)
		{
			var banner = $(this);

			//$(this).mouseover(function() { stop(); }).mouseout(function() { resume(reset, banner); });
		}
	});

	$('#controls li > a').each(function(i) {
		i += 1;
		var banner = $('#banners.banner > a:nth-child(' + i +')');

		$(this).click(function() {
			if(!loaded)
				return;

			if(current != null)
				$('#banners.banner > a:nth-child(' + current +')').hide();

			current = i;
			banner.show();
			showFeature(this.id);
			stop();
		},function() {
			if(!loaded)
				return;
		});		
	});
});
//$(document).ready(function(){$('#banner').cycle({fx:'fade',speed:1000,timeout:3000,next:'#banner',pause:1});});

usingAncientBrowser = false;
if(navigator.userAgent.indexOf("Netscape")!=-1){
	var browserversionindex=navigator.userAgent.indexOf("Netscape")+9
	if (parseInt(navigator.userAgent.charAt(browserversionindex))<=8) {
		usingAncientBrowser = true;
	}
}

if (!usingAncientBrowser) {
	$(function() {
		$('#controls li a').removeClass('current');
		$('#controls').css('top', '0px').animate({'top': '0px'}, {duration: 400, complete: featuresMenuShown} );
		$('#features_submenu').hide();
		$('#banners').removeClass('no-js');
	});
}

function featuresMenuShown() {
	showFeature('feature_link_1');
}

function showFeature(id) {
	var featureData = featuresData[id];
	if(featureData) {
		featureData.behaviour(featureData);
	}
}

function showNewsFeature(featureData) {
	$('#features_submenu').stop();
	$('#features_submenu').css('top', '196px');
	var storiesBar = $('<ul class="feature_stories"><li class="'+ featureData.itemclass +'"></li><li></li><li></li><li></li></ul>');
	for (var i = 0; i < 4; i++) {
		insertNewsStory($('li:eq('+i+')', storiesBar), featureData.stories[i]);
	}
	$('#features_submenu').empty().append(storiesBar);
	//steve berry event - custom width for a specific feature
	if(featureData.itemclass == "feature1 berry") {
		$('ul.feature_stories').css('width', '454px');
	}
	else {
		$('ul.feature_stories').css('width', '235px');
	}
	//end steve berry event- custom width for a specific feature
	
	$('#features_submenu .photo_info').remove();
	if(featureData.photo_info_link.length) {
		if(featureData.photo_info_linktext.length){
			linktext=featureData.photo_info_linktext;
		}else{
			linktext="Photograph information";
		}
		$('#features_submenu').append('<div class="photo_info"><a href="'+featureData.photo_info_link+'" target="_blank">&nbsp;'+linktext+'</a></div>');
	}
	
	if(featureData.itemclass.search("featureRight") != -1) {
		$('ul.feature_stories').css('float', 'right');
		var videoAlign = 'right';
	}
	else {
		var videoAlign = 'left';
	}
	$('#features_submenu').animate({'top':'196px'}, {duration: 400, complete: function() {
		$('#features_submenu').show().animate({'top': '0px'}, {duration: 400, complete: function() {}});
	}});
}

function insertNewsStory(position, story) {
	story = story || {};
	
	if (story.finalitem) {
		$(position).append(story.finalitem);
		$(position).addClass('all-items');
	}
	else {
		var link = $('<a></a>');
		if (story.url) {
			link.attr('href', story.url);
		}
		if (story.title) {
			var itemTitle = '<h3>'+ story.title +'</h3>';
			$(position).append(itemTitle);
		}
		if (story.headline) {
			link.text(unescape(story.headline));
			$(position).append(link);
		}
	}		
}

function showFoundationBar(featureData) {
	$('#features_submenu').stop();
	$('#features_submenu').css('top', '220px');
	var foundationBar = $('<div class="fndLink"><a href="/involved/">The Library of Virginia Foundation:<br />Supporting The Library of Virginia since 1984</a></div>');
	$('#features_submenu').empty().append(foundationBar);
	$('#features_submenu').animate({'top':'176px'}, {duration: 500, complete: function() {
		$('#features_submenu').show().animate({'top': '176px'}, {duration: 500});
	}});
}

/* rotation part */
$(document).ready(function(){
		shuffle(); // call shuffle on document.ready so the first image is diplayed instead of last loaded
		$("#controls li a").click(function(){
				//Performed when a control is clicked
			shuffle();
			var rel = $(this).attr("rel");
			if ( $("#" + rel).hasClass("current") ){
				return false;
			}
			$("#" + rel).show();
			$(".current").fadeOut().removeClass("current");
			$("#" + rel).addClass("current");
			$(".active").removeClass("active");
			$(this).parents("li").addClass("active");
			set_new_interval(7000);
			return false;
		});
    });
    function banner_switch(){
        //This function is called on to switch the banners out when the time limit is reached
        shuffle();
        var next =  $('.banner.current').next('.banner').length ? $('.banner.current').next('.banner') : $('#banners .banner:first');
        $(next).show();
        $(".current").fadeOut().removeClass("current");
        $(next).addClass("current");
        var next_link = $(".active").next("li").length ? $('.active').next('li') : $('#controls li:first');
        $(".active").removeClass("active");
        $(next_link).addClass('active');
		var linkID = $(".active a").attr('id');
		showFeature(linkID);
		set_new_interval(7000);
    }

    $(function() {
        //Initial timer setting
        slide = setInterval( "banner_switch()", 7000 );
    });

    function set_new_interval(interval){
        //Simply clears out the old timer interval and restarts it
        clearInterval(slide);
        slide = setInterval("banner_switch()", interval);
    }

    function shuffle(){
        //This function takes every .banner and changes the z-index to 1, hides them, then takes the ".current" banner and brings it above and shows it
        $(".banner").css("z-index", 1).hide();
        $(".current").css("z-index", 2).show();
    }


