function movePanel(target) {

	var panels = $("projects");
	var panelArray = $$(".project");
	var viewportWidth = 960;
	//var fullWidth = panels.getSize().x;
	var fullWidth = viewportWidth * panelArray.length;
	panels.setStyle("width", fullWidth);
	
	if(target == "forward") {
		var newPanelPos = currentPanelPos - viewportWidth;
		currentPanelIndex++;
		if(currentPanelPos == -(fullWidth - viewportWidth)) {
			newPanelPos = 0;
			currentPanelIndex = 0;
		}	
	}
	
	else if(target == "backward") {
		var newPanelPos = currentPanelPos + viewportWidth;
		currentPanelIndex--;
		if(currentPanelPos == 0) {
			newPanelPos = -(fullWidth - viewportWidth);
			currentPanelIndex = panelArray.length - 1;
		}	
	}
	
	else {
		var targetPos = $(target).getPosition(panels).x;
		var newPanelPos = -(targetPos);
	}
	
	//the pretty
	var myMorph = new Fx.Morph(panels,
		{
			duration:300,
			transition: Fx.Transitions.Sine.easeOut
		}
	);
	myMorph.start(
		{
			"margin-left":newPanelPos
		}
	);
	
	currentPanelPos = newPanelPos;
}

function prevProject() {
	//console.log("previous project");
	movePanel("backward");
	updatePanelTitle();
}

function nextProject() {
	//console.log("next project");
	movePanel("forward");
	updatePanelTitle();
}

function updatePanelTitle() {
	var el = $("projectTitle");
	var currentTitle = titles[currentPanelIndex];
	el.set("html", currentTitle);

	//do the arrows exist?
	if(currentPanelIndex == 0) {
		$("previous").setStyle("visibility", "hidden");		
	}
	else {
		$("previous").setStyle("visibility", "visible");		
	}
	
	if(currentPanelIndex == titles.length - 1) {
		$("next").setStyle("visibility", "hidden");		
	}
	else if(titles.length > 1) {
		$("next").setStyle("visibility", "visible");		
	}
}

function showTags() {
	var el = $("tagPicker");
	el.setStyle("display", "block");
}

function hideTags() {
	var el = $("tagPicker");
	el.setStyle("display", "none");
}

function displayAddys() {
	if (!document.getElementsByTagName && !document.createElement &&
		!document.createTextNode) return;
	var nodes = document.getElementsByTagName("span");
	for(var i=nodes.length-1;i>=0;i--) {
		if (nodes[i].className=="addy") {
			var at = / at /;
			var dot = / dot /g;
			var node = document.createElement("a");
			var address = nodes[i].firstChild.nodeValue;

			address = address.replace(at, "@");
			address = address.replace(dot, ".");

			address = address.replace(at, "@");
			address = address.replace(dot, ".");
			node.setAttribute("href", "mailto:"+address);
			node.appendChild(document.createTextNode(address));
			
			var prnt = nodes[i].parentNode;
			for(var j=0;j<prnt.childNodes.length;j++)
				if (prnt.childNodes[j] == nodes[i]) {
					if (!prnt.replaceChild) return;
					prnt.replaceChild(node, prnt.childNodes[j]);
					break;
				}
		}
	}
}

