var storyviewer_items;
var numitems;
var currentStoryViewerItem = 1;
var storyviewer_timer;
var svcontrols = new Element('div', {	'id': 'svcontrols' });
var next = new Element('span', { 'class': 'next' });
var playpause = new Element('span', { 'class': 'playpause pause' });
var previous = new Element('span', { 'class': 'previous' });
var story_viewer_container = $('StoryViewer');
var story_viewer_carousel = $('StoryViewer');
var story_viewer_carousel_x = ($('StoryViewerInner').getPosition().x);
var storyviewer_width = $('StoryViewer').getSize().x;
var storyviewer_height = $('StoryViewer').getSize().y;

function storyviewer_prv() {
	var prv = currentStoryViewerItem-1;
	if(prv < 1){
		prv = numitems;
	}
	if(storyviewer_dir=='vert'){
		$('svFx'+currentStoryViewerItem).morph({ top: storyviewer_height });
		$('svFx'+prv).morph({ top: [-storyviewer_height, 0] });
	}else if(storyviewer_dir=='horiz'){
		if(storyviewer_type =='carousel'){
			if(($('StoryViewer').getPosition().x) == (story_viewer_carousel_x)){
				$('StoryViewer').setPosition({x:(-storyviewer_width*(numitems/2))});
				prv = 1;
				$('StoryViewer').morph({ left:(($('StoryViewer').getPosition().x)+storyviewer_width)-story_viewer_carousel_x});
			}else{
				$('StoryViewer').morph({ left:(($('StoryViewer').getPosition().x)+storyviewer_width)-story_viewer_carousel_x});
			}
		}else{
			$('svFx'+currentStoryViewerItem).morph({ left: storyviewer_width });
			$('svFx'+prv).morph({ left: [-storyviewer_width, 0] });
		}
	}else if(storyviewer_dir=='fade'){
		$('svFx'+currentStoryViewerItem).fade('out');
		$('svFx'+prv).fade('in');
	}
	
	currentStoryViewerItem = prv;
	
	for(var i=0; i<offsetLoad; i++) {
		prv = prv-1;
		
		if(prv < 1) prv = numitems;
		if(storyviewer_type !='carousel'){
			var imageHolder = $('svFx'+prv).getElement('img');
			if(imageHolder && imageHolder.get('src')==imageBlankSrc) {
				imageHolder.setProperty('src', storyviewer_images[prv]);
			}
		}
	}
}
function storyviewer_nxt() {
	var nxt = currentStoryViewerItem+1;
	if(nxt > numitems){
		nxt = 1;
	}
	if(storyviewer_dir=='vert'){
		$('svFx'+currentStoryViewerItem).morph({ top: -storyviewer_height });
		$('svFx'+nxt).morph({ top: [storyviewer_height, 0] });
	}else if(storyviewer_dir=='horiz'){
		if(storyviewer_type =='carousel'){
			if(($('StoryViewer').getPosition().x) <= ((-storyviewer_width*((numitems)/2)))){
				$('StoryViewer').setPosition({x:story_viewer_carousel_x-story_viewer_carousel_x});
				nxt = 1;
				$('StoryViewer').morph({ left: -storyviewer_width });
			}else{
				$('StoryViewer').morph({ left: -storyviewer_width*(nxt-1) });
			}
		}else{
			$('svFx'+currentStoryViewerItem).morph({ left: -storyviewer_width });
			$('svFx'+nxt).morph({ left: [storyviewer_width, 0] });
		}
	}else if(storyviewer_dir=='fade'){
		$('svFx'+currentStoryViewerItem).fade('out');
		$('svFx'+nxt).fade('in');
	}
	
	currentStoryViewerItem = nxt;
	
	for(var i=0; i<offsetLoad; i++) {
		nxt = nxt+1;
		if(nxt > numitems) nxt = 1;
		if(storyviewer_type !='carousel'){
			var imageHolder = $('svFx'+nxt).getElement('img');
			if(imageHolder && imageHolder.get('src')==imageBlankSrc) {
				imageHolder.setProperty('src', storyviewer_images[nxt]);
			}
		}
	}
}
function storyviewer_play() {
	storyviewer_paused = 0;
	storyviewer_timer = storyviewer_nxt.periodical(storyviewer_hold_time);
	if($('svcontrols') && $('svcontrols').getElement('span.playpause')) {
		$('svcontrols').getElement('span.playpause').removeClass('pause');
		$('svcontrols').getElement('span.playpause').addClass('play');
	}
}
window.addEvent('domready', function() {
	storyviewer_items = $('StoryViewer').getElements('div.navitem');
	numitems = storyviewer_items.length;
	
	if(storyviewer_type=='carousel'){
		svcontrols.setStyle('width',storyviewer_width);
		svcontrols.setStyle('height',storyviewer_height);
		svcontrols.setStyle('top',($('StoryViewer').getPosition().y));
		$('StoryViewer').getParent().grab(svcontrols);
		$('StoryViewer').setProperty('width',storyviewer_width*(numitems/2));	
		var wrapper_div = $('StoryViewer').getParent().getParent();
		if(wrapper_div.hasClass('clearfix')){
			wrapper_div.removeClass('clearfix');
			wrapper_div.setStyle('overflow','visible');
		}
	}else{
		$('StoryViewer').grab(svcontrols);
	}
	$('svcontrols').grab(previous);
	$('svcontrols').grab(playpause);
	$('svcontrols').grab(next);
	
	Array.each(storyviewer_items, function(view, index){
		view.set('id', 'svFx'+(index+1));
		view.set('morph', {	duration: 'long', transition: Fx.Transitions.Quad.easeInOut, fps:25 });
		//////////////////////////////////////////////////////////////////////////////////////////
		if(storyviewer_dir=='vert'){
			view.setStyles({position: 'absolute', height: storyviewer_height, width: storyviewer_width, top: -storyviewer_height});
		}else if(storyviewer_dir=='horiz'){
			if(storyviewer_type =='carousel'){
				view.setStyles({position: 'absolute', height: storyviewer_height, width: storyviewer_width, left: (storyviewer_width*index)});
			}else{
				view.setStyles({position: 'absolute', height: storyviewer_height, width: storyviewer_width, left: -storyviewer_width});
			}
		}else if(storyviewer_dir=='fade'){
			view.setStyles({position: 'absolute', height: storyviewer_height, width: storyviewer_width, top:0});
			$('svFx'+(index+1)).fade('hide');
		}
		if(index == 0) {
			if(storyviewer_dir=='vert'){
				view.setStyle('top', 0);
			}else if(storyviewer_dir=='horiz'){
				view.setStyle('left', 0);
			}else if(storyviewer_dir=='fade'){
				$('svFx'+(index+1)).fade('show');
			}
		}
	});
	$('svcontrols').setStyle('background-image', 'none');
	if(storyviewer_type=='carousel') {
		story_viewer_container.setStyle('width', numitems*storyviewer_width);
	}
	
	previous.addEvent('click', function(e){
		e.stop();
		if(storyviewer_paused == 0) {
			window.clearInterval(storyviewer_timer);
			storyviewer_timer = storyviewer_nxt.periodical(storyviewer_hold_time);
		}
		storyviewer_prv();
	});
	next.addEvent('click', function(e){
		e.stop();
		if(storyviewer_paused == 0) {
			window.clearInterval(storyviewer_timer);
			storyviewer_timer = storyviewer_nxt.periodical(storyviewer_hold_time);
		}
		storyviewer_nxt();
	});
	playpause.addEvent('click', function(e){
		if(typeof e != 'undefined') e.stop();
		if(storyviewer_paused == 0) {
			storyviewer_paused = 1;
			window.clearInterval(storyviewer_timer);
			this.removeClass('play');
			this.addClass('pause');
		} else {
			storyviewer_paused = 0;
			//storyviewer_nxt();
			storyviewer_timer = storyviewer_nxt.periodical(storyviewer_hold_time);
			this.removeClass('pause');
			this.addClass('play');
		}
	});
	$('StoryViewer').addEvent('mouseenter', function() {
		playpause.fireEvent('click');
	});
	$('StoryViewer').addEvent('mouseleave', function() {
		playpause.fireEvent('click');
	});
});
window.addEvent('load', function() {
	if(storyviewer_paused == 0) storyviewer_play();
});

