var $body;

$(document).ready(function() {
		//$body = $("body");
		$body = $(window);
});

var length 	= 100;	// 25		// 100		// 1000
var res 	= 125; 	// 500		// 125		// 25
var inc 	= 6;	// 1		//  4		// 20

var sensitivity = 0.025;

var count = 0;
var pscrollTop = 0;
var delta = 0;

var path = new Path();				
path.strokeColor = new HSBColor(0, 0, 1, 1);

var segments = new Array(0);
segments.push(new Segment(view.center))
for(var i = 0; i < length; i++) addSegment();


function onFrame(event) {
	
	if (path.strokeColor.brightness > 0.8) {
	  path.strokeColor.brightness -= 0.0025; 
  }
  
	delta += Math.abs($(window).scrollTop() - pscrollTop) * sensitivity;
	delta *= 0.9;
	pscrollTop = $(window).scrollTop();
			
	for(var i = 0; i < Math.floor(delta); i++) addSegment();
	
	// clear path

	path.removeSegments();
	
	// draw path
	var iMidA = inc - count % inc;
	var iMidB = segments.length - count % inc;
	for(var i = 0; i < iMidA; i++) path.add(segments[i]);  
	for(var i = iMidA; i < iMidB; i += inc) path.add(segments[i]);
	for(var i = iMidB; i < segments.length; i++) path.add(segments[i]);
	
	// smooth path
	
	path.smooth();
	
}

function addSegment() {
	
	var dx = (Math.random() * 2 - 1) * 125;
	var dy = (Math.random() * 2 - 1) * 125;
	
	// add last point position
	
	var point = new Point(dx, dy);
	if(segments.length != 0) point += segments[segments.length - 1].point;
	
	// bounderies
	
	if(point.x < 0) point.x += 125;
	if(point.y < 0) point.y += 125;

	if(point.x > view.size.width)  point.x -= 125;
	if(point.y > view.size.height) point.y -= 125;
	
	// ---
	
	count++;
	
	// ---
	
	segments.push(new Segment(point));
	if(segments.length > length) segments.shift();
	
}
