function BannerRewards (locale) {
	
	function afterResize() {
		var el = document.getElementById('banner_rewards');
		var space = el.offsetWidth;
		var pos = 0;
		
		if (space > 410) {
			if (animSmallState !== false) {
				animSmallState = false;
				loopSmall.stop();
				loopLargeReset();
			}
			space -= 145;
			pos = (space - 260 - 10);
		} else {
			if (animSmallState !== true) {
				animSmallState = true;
				loopLarge.stop();
				loopSmallReset();
			}
			pos = ~~((space - 260) / 2);
		}
		
		document.getElementById('banner_rewards_text_1').style.left = pos + 'px';
		document.getElementById('banner_rewards_text_2').style.left = pos + 'px';
	}
	
	var animSmallState = null;
	
	var loopLargeReset = function () {
		//Reset all element positions
		document.getElementById('banner_rewards_text_1').style.top = '-280px';
		document.getElementById('banner_rewards_text_2').style.top = '-280px';
		document.getElementById('banner_rewards_text_2').style.display = 'block';
		document.getElementById('banner_rewards_back').style.top = '0';
		document.getElementById('banner_rewards_back').style.right = '-116px';
		
		setTimeout(function () {
			//Animate blocks inside view (slide-in from right)
			emile('banner_rewards_back', 'right: -58px', {duration: 500});
		}, 1000);
		
		setTimeout(function () {
			//Animate blocks inside view (slide-in from right)
			emile('banner_rewards_back', 'right: 0px', {duration: 500});
		}, 2000);
		
		setTimeout(function () {
			//Animate second text, slide-in from bottom
			emile('banner_rewards_text_1', 'top: -140px', {duration: 500});
		}, 3000);
		
		setTimeout(function () {
			loopLarge.start();
		}, 6000);
	};
	
	var loopLarge = new JS_Banner_Anim([{
		'delay': 3000, 'callback': function () {
			//Animate second text, slide-in from bottom
			emile('banner_rewards_text_1', 'top: 0px', {duration: 500});
			
			//Make sure position is reseted after animation (when resizing during animation)
			document.getElementById('banner_rewards_back').style.top = '0';
			document.getElementById('banner_rewards_back').style.right = '0';
		}},{
		'delay': 3000, 'callback': function () {
			//Animate texts, slide-out to top
			emile('banner_rewards_text_1', 'top: 140px', {duration: 500});
			//Animate texts, slide-in from bottom
			//Creates continuous slide effect
			emile('banner_rewards_text_2', 'top: -140px', {duration: 500});
		}},{
		'delay': 0, 'callback': function () {
			//Reset element positions, needed for continuous slide effect
			document.getElementById('banner_rewards_text_1').style.top = '-140px';
			document.getElementById('banner_rewards_text_2').style.top = '-280px';
		}}
	]);
	
	var loopSmallReset = function () {
		//Reset all element positions
		document.getElementById('banner_rewards_text_1').style.top = '-280px';
		document.getElementById('banner_rewards_text_2').style.top = '-280px';
		document.getElementById('banner_rewards_text_2').style.display = 'none';
		document.getElementById('banner_rewards_back').style.top = '0';
		document.getElementById('banner_rewards_back').style.right = '-116px';
		
		setTimeout(function () {
			loopSmall.start();
		}, 1000);
	};
	
	var loopSmall = new JS_Banner_Anim([{
		'delay': 1000, 'callback': function () {
			//Animate blocks inside view (slide-in from right)
			emile('banner_rewards_back', 'right: -58px', {duration: 500});
		}},{
		'delay': 1000, 'callback': function () {
			//Animate blocks inside view (slide-in from right)
			emile('banner_rewards_back', 'right: 0px', {duration: 500});
		}},{
		'delay': 3000, 'callback': function () {
			//Animate blocks outside view (slide-out to top)
			//Animate text inside view (slide-in from bottom)
			document.getElementById('banner_rewards_text_1').style.top = '-280px';
			emile('banner_rewards_back', 'top: 140px', {duration: 500});
			emile('banner_rewards_text_1', 'top: -140px', {duration: 500});
		}},{
		'delay': 3000, 'callback': function () {
			//Animate second text inside view (slide-in from bottom)
			emile('banner_rewards_text_1', 'top: 0px', {duration: 500});
		}},{
		'delay': 1000, 'callback': function () {
			//Animate text outside view (slide-out to top)
			//Animate blocks inside view (slide-in from right)
			document.getElementById('banner_rewards_back').style.right = '-116px';
			document.getElementById('banner_rewards_back').style.top = '-140px';
			emile('banner_rewards_text_1', 'top: 140px', {duration: 500});
			emile('banner_rewards_back', 'top: 0px', {duration: 500});
		}}
	]);
	
	afterResize();
	JS_Banner.onresize(afterResize);
	
}
