// RESIDENTIAL SCROLLING



var movme = false;

var dir = 1;



function initslide(slideshow){

	Event.observe(slideshow.down('.tleft'), "mouseover", moveleft, false);

	Event.observe(slideshow.down('.tright'), "mouseover", moveright, false);

	Event.observe(slideshow.down('.tright'), "mouseout", stopit, false);

	Event.observe(slideshow.down('.tleft'), "mouseout", stopit, false);

	var mask = slideshow.down('.mask')

	dir = 1;

	shuffle(mask);

}



function moveleft(e){

	var mask = Event.element(e).up().next('.mask');

	mask.movme = true;

	dir = 1;

	startin(0.5,mask);

	Event.stop(e);

}



function moveright(e){

	var mask = Event.element(e).up().next('.mask');

	mask.movme = true;

	dir = -1;

	startin(0.5,mask);

	Event.stop(e);

}

function stopit(e){

	var mask = Event.element(e).up().next('.mask');

	mask.movme = false;

	Event.stop(e);

}



function shuffle(mask){

	if (dir == -1){ //shuffle right

		var firstimage = mask.firstDescendant();

		var width = firstimage.getWidth() + 5;

		var offset = firstimage.cumulativeOffset()[0];

		if (width + offset < 0){

			mask.insert(firstimage);

			mask.style.left = mask.positionedOffset()[0] + width + 'px';

		}

	} else { // shuffle left

		var lastimage = mask.childElements().last();

		var width = lastimage.getWidth() + 5;

		var windowwidth = mask.up().getWidth();

		var offset = lastimage.cumulativeOffset()[0] + mask.cumulativeOffset()[0];

		if (offset > windowwidth){

			mask.insert({'top':lastimage});

			mask.style.left = mask.positionedOffset()[0] - width + 'px';

		}

	}

}



function startin(speed,mask){

	new Effect.Move(mask, { x: speed * dir, y: 0, mode: 'relative', fps:25, transition:Effect.Transitions.linear, duration:.04, afterFinish:function(){

		if (mask.movme){

			if (speed < 6) {

				speed = speed + 0.5;

				startin(speed,mask);

			} else {

				scrollin(mask);

			}

		} else {

			stopin(speed,mask);

		}

	}});

}



function scrollin(mask){

	shuffle(mask);

	new Effect.Move(mask, { x: 6 * dir, y: 0, mode: 'relative', fps:25, transition:Effect.Transitions.linear, duration:.04, afterFinish:function(){

		if (mask.movme){

			scrollin(mask);

		} else {

			stopin(6,mask);

		}

	}});

}

function stopin(speed,mask){

	if (mask.movme == false){

		new Effect.Move(mask, { x: speed * dir, y: 0, mode: 'relative', fps:25, transition:Effect.Transitions.linear, duration:.04, afterFinish:function(){

			slower = speed - 0.25;

			if (slower > 0)

				stopin(slower,mask);

		}});

	}

}





// HOME PAGE SCROLLING





function scrollrt(id){

	// shuffle

	var lastimage = $('ms'+id).childElements().last();

	var width = lastimage.getWidth() + 5;

	var windowwidth = $('ss'+id).getWidth();

	var offset = lastimage.cumulativeOffset()[0] + $('ms'+id).cumulativeOffset()[0];

	if (offset > windowwidth){

		$('ms'+id).insert({'top':lastimage});

		$('ms'+id).style.left = $('ms'+id).positionedOffset()[0] - width + 'px';

	}

	// scroll

	new Effect.Move('ms'+id, { x: 1, y: 0, mode: 'relative', fps:25, transition:Effect.Transitions.linear, duration:.04, afterFinish:function(){

			scrollrt(id);

	}});

}



function scrolllt(id){

	// shuffle

	var firstimage = $('ms'+id).firstDescendant();

	var width = firstimage.getWidth() + 5;

	var offset = firstimage.cumulativeOffset()[0];

	if (width + offset < 0){

		$('ms'+id).insert(firstimage);

		$('ms'+id).style.left = $('ms'+id).positionedOffset()[0] + width + 'px';

	}

	// scroll

	new Effect.Move('ms'+id, { x: -1, y: 0, mode: 'relative', fps:25, transition:Effect.Transitions.linear, duration:.04, afterFinish:function(){

			scrolllt(id);

	}});

}





// MISC FUNCTIONS
