/**
 * Fraunhofer JavaScript
 * Copyright (c) 2008, namics (deutschland) gmbh. All rights reserved.
 * Code licensed under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 */

FRAUNHOFER.vignette = {
	
	init: function(){
		
		var keepheight;	//save height of first vignette
		
		function initVignette($ele, i) {

			var pos = $ele.position();
			var zindex = (i+1)*10;
			
			if (i===0) {
				keepheight = $ele.height();
			}
			else {
				pos['top'] += keepheight;
			}
			
			$ele
				.data('myopa', 0.6+i*0.2)
				.data('mylevel', zindex)
				.data('pos', pos)
				.css({
					position:'absolute',
					top: pos['top'],
					left:pos['left'],
					zIndex: zindex
				});
				
			resetVignette($ele);
				
		}
		
		function resetVignette($ele){
			$ele.css({
				opacity: $ele.data('myopa'),
				zIndex: $ele.data('mylevel')
			});
			startAnimation($ele);	
		}
		
		function startAnimation($ele) {
			function getRandom(num) {
				var ran = Math.floor(Math.random()*num)+1;
				return ran;
			}
			
			var rantime = 2000 + getRandom(1200);
			var neg = (getRandom(2)===1)? '+' : '-';
			var dir = (getRandom(5)===1)? 'top' : 'left';
			var ranpos = getRandom((dir==='left')?20:5);
			
			var prop = {}
			prop[dir]= neg+'='+ranpos+'px';
			
			$ele.animate(prop, rantime, 'linear', function(){
				startAnimation($ele);
			});
		}
		function stopAnimation($ele) {
			$ele.stop();
		}
		
		$('div.vignette')
			.each(function(i){
				initVignette($(this), i);
			})
			.hover(function(){
				$(this).css({
					opacity:1,
					zIndex:100
				});
				stopAnimation($(this));
				
			}, function(){
				resetVignette($(this));
			})
			/*.dblclick(function(){
				$(this).effect('bounce', {
					times: 3,
					direction: 'left'
				}, 300);
			})
			*/;
	}
};

$(document).ready(function() {
	FRAUNHOFER.vignette.init();
});
