// 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


function cleardfocus(element,devault){
	if (element.value == devault){
		element.value = '';
	}
	element.setAttribute("onblur","if(this.value=='') this.value='"+devault+"';");
}

// CONTACT FORM

function contactup(){
	new Effect.BlindUp('contactform', {fps:25, transition:Effect.Transitions.EaseFromTo, duration:2});
}
function contactdown(){
	new Effect.BlindDown('contactform', {fps:25, transition:Effect.Transitions.EaseFromTo, duration:2});
}


// EMAIL FORM

function emailform(email){
	if (email == 'Enter Email Address for News & Updates' || email == 'Thank you for subscribing!' || email == ''){
		return false;
	} else {
		$('ajaxer').src = 'http://armstrongwinston.createsend.com/t/r/s/ttpyk/?cm-ttpyk-ttpyk='+email;
		$('subscribeform').email.value = 'Thank you for subscribing!';
		window.setTimeout( function(){
			$('subscribeform').email.value = 'Enter Email Address for News & Updates';
		},3000);
	}
}