var DVT = {
	dvtTimeout : 4000,
	dvtLastAnimTs : Math.round(new Date().getTime() / 1000),
	dvtNrTeasers : 4,
	dvtCurNr : 1,
	dvtMouseMovedOut : false,
	dvtOver : false,

	initialize : function() {
		DVT.dvtNrTeasers = $('.dvt-teaser-strap').length;
		$('.head-box').removeClass('bg1');
		$('.head-box').addClass('bg2');
		DVT.setHover();
		DVT.dvtCycleTeaser('dvt-teaser1');
	},

	setHover : function() {
		$('.dvt-teaser').hover(
			function() {
				// return if no teaser content is inside the teaser container
				if ($(this).find('.dvt-teaser-strap').length == 0)
					return;
				DVT.dvtCurNr = $(this).attr('id').substr($(this).attr('id').length-1);
				DVT.dvtOver = true;
				DVT.dvtCleanUp();
				DVT.moveTeaser($(this), DVT.dvtCurNr, false);
			},
			function() {
				// return if no teaser content is inside the teaser container
				if ($(this).find('.dvt-teaser-strap').length == 0)
					return;
				DVT.dvtCurNr = $(this).attr('id').substr($(this).attr('id').length-1);
				DVT.dvtOver = false;
				var nextNr = DVT.dvtCurNr < DVT.dvtNrTeasers ? (parseInt(DVT.dvtCurNr)+1) : 1;
				DVT.dvtCleanUp();
				setTimeout(function() { DVT.dvtCycleTeaser('dvt-teaser'+nextNr) }, DVT.dvtTimeout);
			}
		);
	},

	dvtCycleTeaser : function(currentTeaserId) {
		var dvtThisAnimTs = Math.round(new Date().getTime());
		if ((dvtThisAnimTs - DVT.dvtLastAnimTs) < (DVT.dvtTimeout-100)) { // tolerance
			return;
		}
		if (DVT.dvtOver) {
			DVT.dvtMouseMovedOut = false;
			return;
		}
		var currentTeaser = $('#'+currentTeaserId);
		DVT.dvtCurNr = parseInt(currentTeaserId.substr(currentTeaser.attr('id').length-1));
		var lastNr = DVT.dvtCurNr == 1 ? DVT.dvtNrTeasers : (DVT.dvtCurNr-1);
		DVT.moveTeaser(currentTeaser, DVT.dvtCurNr, lastNr);
		var nextNr = DVT.dvtCurNr < DVT.dvtNrTeasers ? (DVT.dvtCurNr+1) : 1;
		var nextTeaserId = 'dvt-teaser'+nextNr;
		if (!DVT.dvtOver) {
			DVT.dvtLastAnimTs = dvtThisAnimTs;
			setTimeout(function() { DVT.dvtCycleTeaser(nextTeaserId) }, DVT.dvtTimeout);
		}
	},
			
	moveTeaser : function(currentTeaser, dvtCurNr, lastNr) {	
		if (currentTeaser.find('img').attr('name') != "") {		
			$('#dvt-header-image').attr('src', currentTeaser.find('img').attr('name'));
		}
		DVT.dvtCleanUp();
		$('#dvt-color-line'+dvtCurNr).addClass('active');
		if (lastNr) {
			$('#dvt-color-line'+lastNr).removeClass('active');
			$('#dvt-teaser'+lastNr).find('div.dvt-teaser-strap').css('display', 'block');
		}
		/* removed easing for performance issues */
		//currentTeaser.find('div.dvt-teaser-strap').fadeOut(250);
		currentTeaser.find('div.dvt-teaser-strap').hide();
					
		$('a.dvt-header-teaser-link').attr('href', currentTeaser.find('p.dvt-teaser-link').html());
		$('a.dvt-teaser-link').attr('href', currentTeaser.find('p.dvt-teaser-link').html());
		$('#dvt-strap h1').html(currentTeaser.find('.dvt-teaser-title').html());
		$('#dvt-strap h2').html(currentTeaser.find('.dvt-teaser-subtitle').html());
		$('#dvt-strap p').html(currentTeaser.find('.dvt-teaser-text').html());		
	},
			
	dvtCleanUp: function() {
		// remove all other highlights
		$('.dvt-color-line').removeClass('active');
		// add teaser-strap everywhere
		$('div.dvt-teaser-strap').css('display', 'block');
	}
};

$( function() {
	DVT.initialize();
});
