$(document).ready(function(){

/******* defaults ******/
	var defaultFadeUpTime = 600;
	var defaultFadeDownTime = 300;
	var fastFadeDownTime = 100;
	var defaultVideoWidth = 720;
	var defaultVideoHeight = 405;
	var defaultPosterHeight = 120;
	var defaultPosterWidth = 1120;
	var defaultAnimateTime = 600;
	var defaultXPosInfoDiv = '2em';

	$('.filmfoto').addClass('front');
	$('.info').wrap('<div class="info_background" />');
	$('.info_background').prepend('<div class="transparency" />');
	$('.transparency').fadeTo(0, 0.2);

	// Setup for iPhone and iPad
	if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i))) {
    	$('.banner').each(function(){
			var d = $(this);
			scaleInfoDiv(d);
		});
    	$('.filmfoto').show(); //$('.filmfoto').css('display', 'block');
	}

/******* hoverIntent config ******/	
	var hiConfig = {
		sensitivity: 1,
		interval: 400,
		over: showDivs,
		timeout: 0,
		out: hideDivs
	}
	
	
/******* shadowbox init/config ******/	
	Shadowbox.init({
	    initialWidth: defaultVideoWidth,
        initialHeight: defaultVideoHeight,
        overlayOpacity: 0.9,
        fadeDuration: 0.35
	});


/******* corners config ******/
	$('.toppen').corner("round 20px keep tl tr");   // rounded corners top left & right
	$('.botten').corner("round 20px keep bl br");   // rounded corners bottom left & right


/******* function showDivs ******/	
	function showDivs() {
		var x_offset = 30;
		var y_offset = -20;
		var oLevel = 0.90;
		var d = $(this);
		var the_image = d.children('.media').children('a').children('img');
		
		d.siblings().children('.filmfoto').fadeOut(fastFadeDownTime);
		
		// Animate the image margin, placement in the viewport
		the_image.animate({'margin-top': 0}, defaultAnimateTime);
		
		// Animate the height of the poster frame
		d.animate({ height: the_image.height() }, 
					defaultAnimateTime,
					function () {
						
						var outerBlock = d.children('.filmfoto');

						var m = the_image.width()/defaultPosterWidth;
						var m_offset = 1;
						if (m < 0.7) { 
							m_offset = parseFloat(m * 1.3).toFixed(2); 
						} else {
							m_offset = parseFloat(m).toFixed(2);
						};
						
						outerBlock.transform({ scale: [m_offset, m_offset], origin: ['0', '0']});

						outerBlock.css('opacity', 0).show();
						
						var startL = d.position().left - outerBlock.width();
						var startT = parseInt(((the_image.height() - (outerBlock.height() * m_offset))) + (y_offset * m_offset)) + 'px';
						var endL   = defaultXPosInfoDiv;
						var endT   = startT;
						
						outerBlock.css('left', startL).css('top', startT);
						outerBlock.animate({'opacity': oLevel}, {queue: false, duration: defaultAnimateTime+800});
						outerBlock.animate({'left': endL, 'top': endT}, defaultAnimateTime);
						
					}
		);
	}


/******* function hideDivs ******/
	function hideDivs(d) {
		var d = $(this);
		var the_image = d.children('.media').children('a').children('img');
		var m = (the_image.width()/defaultPosterWidth);
		
		d.children('.filmfoto').fadeOut(defaultFadeDownTime);
		
		// Animate the image margin, placement in the viewport
		the_image.animate({'margin-top': parseInt(parseFloat(d.data('defaultMargin'))*m)+'px'}, defaultAnimateTime);

		// Animate the height of the poster frame
		d.animate({ height: defaultPosterHeight }, defaultAnimateTime);
	}


/******* function scaleInfoDiv ******/
	function scaleInfoDiv(d) {
		var bild = d.children('.media').children('a').children('img');
		var m = bild.width()/defaultPosterWidth;
		
		var m_offset = 1;
		if (m < 0.7) { 
			m_offset = parseFloat(m * 1.3).toFixed(2); 
		} else {
			m_offset = parseFloat(m).toFixed(2);
		};			
		d.children('.filmfoto').transform({ scale: [m_offset, m_offset], origin: ['0', '0']});
	}

/******* triggers ******/

	// Store default margin-top values.
	var $prefs = $('.banner');	
	$prefs.each(function(){
		var e = $(this);
		var bilden = e.children('.media').children('a').children('img');
		var m = (bilden.width()/defaultPosterWidth);
		e.data('defaultMargin', bilden.css('margin-top'));
		bilden.css('margin-top', parseInt(parseFloat(e.data('defaultMargin'))*m)+'px');
	});

	// Trigger hoverIntent
	$('.banner').hoverIntent(hiConfig);

	// Default scale of InfoDivs
	$('.banner').each(function(){
		var d = $(this);
		scaleInfoDiv(d);
	});

	$('.filmfoto').click(function () { 
		$(this).fadeOut(defaultFadeDownTime);
		$(this).parent().animate({ height: defaultPosterHeight }, defaultAnimateTime);
		$(this).prev('.media').children('a').click();
	});

	// Setup "on window resize" behavior
	$(window).resize(function() {//Adjusts banner images when browser resized
		$('.banner').each(function(){
			var d = $(this);
			var bild = d.children('.media').children('a').children('img');
			var m = (bild.width()/defaultPosterWidth);
			
			scaleInfoDiv(d);

			bild.css('margin-top', parseInt(parseFloat(d.data('defaultMargin'))*m)+'px');
		});
	});


});

