
Namespace.register('aegoncz.core');

/* AEGONCZBehaviour Class
------------------------------------------------------------*/
aegoncz.core.Behaviour = new Class({
	
	Extends:mirabeau.core.IBehaviour,
	
	initialize:function(configuration) {
		this.configuration = configuration;
	}
	
});

aegoncz.core.Behaviour.implement({
	
	configuration:null,
	
	init:function() {
		
		// initialize custom aegoncz classes
		if (mirabeau.utils.Test.isClassAvailable(
									'aegoncz.funds.PortfolioPerformanceManager',
									'aegoncz.funds.FundPeriodManager',
									'aegoncz.funds.FundRatioManager',
									'aegoncz.funds.FundProvider',
									'mirabeau.controls.slider.Slider',
									'mirabeau.controls.Dropdown')
			) {
		
			var containerDOM = document.getElement('#portfolio-performance');
			
			if (containerDOM) {
				
				// set data url
				var dataURL = this.configuration.getItem('funds-webservice');
				
				// identify period manager
				var periodDOM = document.getElement('#portfolio-performance-period');
				var periodManager = new aegoncz.funds.FundPeriodManager(periodDOM);
				
				// identify ratio manager
				var ratioDOM = document.getElement('#portfolio-performance-ratio');
				var ratioSlider = new mirabeau.controls.slider.Slider(ratioDOM);
				var ratioManager = new aegoncz.funds.FundRatioManager(ratioSlider);
				
				// init portfolio performance manager
				new aegoncz.funds.PortfolioPerformanceManager(
					containerDOM,
					dataURL,
					ratioManager,
					periodManager
				);
			}
		}

		
	}
	
});

