if( typeof nameSpace == 'undefined' ){
	var nameSpace = {};
}

$(document).ready(function(){
	nameSpace.visionaries.init();
	checkBuckets();
});





/////////////////////////////////////////////
// Class - nameSpace.visionaries
/////////////////////////////////////////////
nameSpace.visionaries = 
{

	/////////////////////////////////////////////
	// Define the properties of the class
	/////////////////////////////////////////////
	arrElements				: [],
	strBucketClass			: '#visionariesContainer .visionaryContainer',
	strNumberClass			: 'visionaryNumber',
	numCurrent				: 1,
	numWaitTime				: 6000,
	
	/////////////////////////////////////////////
	// Function - nameSpace.visionaries.init
	/////////////////////////////////////////////
	init : function( )
	{
		nameSpace.visionaries.setElements();
		if( nameSpace.visionaries.arrElements.size() != 0 ){
			nameSpace.visionaries.setInitialState();
			nameSpace.visionaries.waitAndShowNext();
		}
	},
	
	/////////////////////////////////////////////
	// Function - nameSpace.visionaries.setElements
	/////////////////////////////////////////////
	setElements : function() 
	{
		var numCurrent = 1;
		
		nameSpace.visionaries.arrElements = $(nameSpace.visionaries.strBucketClass);
		nameSpace.visionaries.arrElements.each( function(){
			$(this).addClass( nameSpace.visionaries.strNumberClass + '_' + numCurrent);
			numCurrent++;
		});
	},
	
	/////////////////////////////////////////////
	// Function - nameSpace.visionaries.setInitialState
	/////////////////////////////////////////////
	setInitialState : function() 
	{
		$(nameSpace.visionaries.strBucketClass + " .name").each( function(){
			$(this).attr('thisHeight', $(this).height());
		});
		
		$(nameSpace.visionaries.strBucketClass + "[class*='hidden'] .name").height(0).animate({opacity: 0}, 0);
		$(nameSpace.visionaries.strBucketClass + "[class*='hidden'] .nameInfo").width(0);
		$(nameSpace.visionaries.strBucketClass + "[class*='hidden'] .contentContainer").width(0).height(0);
		$(nameSpace.visionaries.strBucketClass + "[class*='hidden'] .imageContainer").animate({opacity: 0}, 0);
	},
		
	/////////////////////////////////////////////
	// Function - nameSpace.visionaries.waitAndShowNext
	/////////////////////////////////////////////
	waitAndShowNext : function()
	{
		setTimeout( nameSpace.visionaries.currentOutro, nameSpace.visionaries.numWaitTime )
	},
		
	/////////////////////////////////////////////
	// Function - nameSpace.visionaries.currentOutro
	/////////////////////////////////////////////
	currentOutro : function()
	{
		var strSelector = '.' + nameSpace.visionaries.strNumberClass + '_' + nameSpace.visionaries.numCurrent;
		var eNameContainer = $(strSelector + ' .nameContainer');
		var eName = $(strSelector + ' .name');
		var eVisionary = $(strSelector + ' .nameInfo');
		var eContent = $(strSelector + ' .contentContainer');
		var eImage = $(strSelector + ' .imageContainer');
		
		
		eContent.animate({height: 0, width: 0}, 1000, 'swing');
		
		eVisionary.animate({width: 0}, 500, 'linear', function(){
			eName.animate({height: 0, opacity: 0}, 500, 'linear', function(){
				eImage.animate({opacity: 0}, 350, 'linear', function(){
					eNameContainer.hide();
					nameSpace.visionaries.intoNext();
				});
			});
		});
	},
		
	/////////////////////////////////////////////
	// Function - nameSpace.visionaries.intoNext
	/////////////////////////////////////////////
	intoNext : function()
	{
		if( nameSpace.visionaries.numCurrent >= nameSpace.visionaries.arrElements.size() ){
			nameSpace.visionaries.numCurrent = 1;
		}
		else{
			nameSpace.visionaries.numCurrent++;
		}
		
		var strSelector = '.' + nameSpace.visionaries.strNumberClass + '_' + nameSpace.visionaries.numCurrent;
		var eNameContainer = $(strSelector + ' .nameContainer');
		var eName = $(strSelector + ' .name');
		var eNameHeight = eName.attr('thisHeight');
		var eVisionary = $(strSelector + ' .nameInfo');
		var eContent = $(strSelector + ' .contentContainer');
		var eImage = $(strSelector + ' .imageContainer');
		
		$(strSelector).removeClass('hidden');
		eNameContainer.show();
		
		eImage.animate({opacity: 1}, 350, 'linear', function(){
			eContent.animate({height: 135, width: 200}, 1000, 'swing');
			eName.animate({height: eNameHeight, opacity: 1}, 500, 'linear', function(){
				eVisionary.animate({width: 195}, 500, 'linear', function(){
					nameSpace.visionaries.waitAndShowNext();
				});
			});
		});
	}
};


function checkBuckets(){
	$('#bucketContainer .bucketContainer .content').each( function(){
		$(this).html( fixBuchetContent($(this).html()) )
	});
}

function fixBuchetContent( content ){
	content = nameSpace.string.trim(content);
	content = nameSpace.string.trimTag(content, 'object');
	content = nameSpace.string.trimTag(content, 'br');
	
	/*if( content.indexOf('<object') >= 0 ){
		content = content.substring(0, content.indexOf('<object')) + content.substring(content.indexOf('</object>') + 9, content.length);
	}*/
	
	return content;
}