;(function($){
$.timeliner=function(options){
if($.timeliners==null){
$.timeliners={ options: [] };
$.timeliners.options.push(options);
}else{
$.timeliners.options.push(options);
}
$(document).ready(function(){
for (var i=0; i<$.timeliners.options.length; i++){
startTimeliner($.timeliners.options[i]);
}});
}
function startTimeliner(options){
var settings={
timelineContainer: options['timelineContainer']||'#timeline',
timelineSection: options['timelineSection']||'.timeline-wrapper',
timelineSectionMarker: options['timelineSectionMarker']||'.timeline-time',
timelineTriggerContainer: options['timelineTriggerContainer']||'.timeline-series',
timelineTriggerAnchor: options['timelineTriggerAnchor']||'.timeline-event',
timelineEventContainer: options['timelineEventContainer']||'dt',
timelineEXContent: options['timelineEXContent']||'.timeline-event-content',
EXContentIdSuffix: options['timelineEXContentSuffix']||'EX',
oneOpen: options['oneOpen']||false,
startState: options['startState']||'closed',
startOpen: options['startOpen']||[],
baseSpeed: options['baseSpeed']||200,
speed: options['speed']||4,
fontOpen: options['fontOpen']||'1.2em',
fontClosed: options['fontClosed']||'1em',
expandAllText: options ['expandAllText']||'+ expand all',
collapseAllText: options['collapseAllText']||'- collapse all'
};
function openStartEvents(events){
$.each(events, function(index, value){
$(value).parents(settings.timelineTriggerContainer).show(settings.speed*settings.baseSpeed, function(){
openEvent($(value).find(settings.timelineTriggerAnchor),$(value+settings.EXContentIdSuffix));
});
});
}
function openEvent(eventHeading,eventBody){
if(settings.startState==='flat'){
$(eventHeading).parents(settings.timelineTriggerContainer).show();
}
$(eventHeading).find('a')
.removeClass('closed')
.addClass('open')
.animate({ fontSize: settings.fontOpen }, settings.baseSpeed);
$(eventBody).show(settings.speed*settings.baseSpeed);
}
function closeEvent(eventHeading,eventBody){
$(eventHeading).find('a')
.animate({ fontSize: settings.fontClosed }, 0)
.removeClass('open')
.addClass('closed');
$(eventBody).hide(settings.speed*settings.baseSpeed);
}
if($(settings.timelineContainer).data('started')){
return;
}else{
$(settings.timelineContainer).data('started', true);
$(settings.timelineContainer+" "+".timeline-toggle").html(settings.expandAllText);
$(settings.timelineContainer+" "+".collapseAll").html(settings.collapseAllText);
if(settings.startState==='flat'){
$(settings.timelineContainer+' '+settings.timelineTriggerContainer).hide();
openStartEvents($(settings.startOpen));
}else if(settings.startState==='closed'){
$(settings.timelineContainer+" "+settings.timelineEXContent).hide();
openStartEvents($(settings.startOpen));
}else{
openEvent($(settings.timelineContainer+" "+settings.timelineTriggerContainer+" "+settings.timelineTriggerAnchor),$(settings.timelineContainer+" "+settings.timelineEXContent));
}
$(settings.timelineContainer).on("click",settings.timelineTriggerContainer+" "+settings.timelineEventContainer,function(){
var currentId=$(this).attr('id');
if($(this).find('a').is('.open')){
closeEvent($(this),$("#"+currentId+settings.EXContentIdSuffix))
}else{
if(settings.oneOpen==true){
closeEvent($(this).parents(settings.timelineContainer).find(settings.timelineTriggerAnchor,settings.timelineTriggerContainer),$(this).parents(settings.timelineContainer).find(settings.timelineEXContent));
}
openEvent($(this),$("#"+currentId+settings.EXContentIdSuffix));
}});
$(settings.timelineContainer).on("click",settings.timelineSectionMarker,function(){
var numEvents=$(this).parents(settings.timelineSection).find(settings.timelineTriggerContainer).length;
var numOpen=$(this).parents(settings.timelineSection).find('.open').length;
if(settings.oneOpen==true){
closeEvent($(this).parents(settings.timelineContainer).find(settings.timelineTriggerAnchor,settings.timelineTriggerContainer),$(this).parents(settings.timelineContainer).find(settings.timelineEXContent));
}
if(numEvents > numOpen){
openEvent($(this).parents(settings.timelineSection).find(settings.timelineTriggerAnchor,settings.timelineTriggerContainer),$(this).parents(settings.timelineSection).find(settings.timelineEXContent));
}else{
closeEvent($(this).parents(settings.timelineSection).find(settings.timelineTriggerContainer),$(this).parents(settings.timelineSection).find(settings.timelineEXContent));
}});
var el=settings.timelineContainer+" "+".timeline-toggle";
$(el).click(function(){
if($(el).hasClass('expanded')){
closeEvent($(el).parents(settings.timelineContainer).find(settings.timelineTriggerAnchor,settings.timelineTriggerContainer),$(el).parents(settings.timelineContainer).find(settings.timelineEXContent));
$(el).removeClass('expanded').html(settings.expandAllText);
}else{
openEvent($(el).parents(settings.timelineContainer).find(settings.timelineTriggerAnchor,settings.timelineTriggerContainer),$(el).parents(settings.timelineContainer).find(settings.timelineEXContent));
$(el).addClass('expanded').html(settings.collapseAllText);
}});
}};})(jQuery);