var totpix = "45";

function firstload() {
	var output = document.location;
	$('jscomm').innerHTML = output;
	output = $('jscomm').innerHTML.split("#");
	if(output[1]) loadsite(output[1]);
}

function doflajax(url, data) {
	var req = new Request({
		url: url,
		method: 'post', 
		onRequest: $('fl_loading').style.display = "block",
		onSuccess: function(response) { ajaxflresponse(url, response); }
		});
	req.send(data);
}

function loadsite(site) {
	if(site != 0) window.location.hash = site;
	parameters = "ajax=1&specsite=" + site;
	doflajax("cmsplus/portfolio.inc.php", parameters);
}

function ajaxflresponse(url, response) {
	$('fl_loading').style.display = "none";
	$('siteinfo').innerHTML = response;
}

var showpix = "9";
var widthpix = "127"; // include any padding at left or right
var leftmar = "0";
var hoverset = "0";

function hoveron() {
	hoverset = "1";
}
function hoveroff() {
	hoverset = "0";
}
function scroll() {
	$('scrollers').style.display = "block";
	if(leftmar == widthpix * totpix * -1) leftmar = 0;
	$('scrollers').style.marginLeft = leftmar + "px";
	$('scrollers').style.width = (showpix * widthpix) + (leftmar * -1) + "px";
	if(hoverset != 1) leftmar = leftmar - 1;
	setTimeout("scroll()", 10);
}

var highlight;
var current;
var myFade;
var isvis;
function setmenu(menuid) {
	var menu = $(menuid);
	current = menu.getElement('li.current');
	menu.getElements('li').each(function(item){
		item.addEvent('mouseover', function(e){ new Event(e).stop(); this.moveBg(item); }.bind(this));
		item.addEvent('mouseout', function(e){ new Event(e).stop(); this.moveBg(this.current); }.bind(this));
		item.addEvent('click', function(e){ this.setCurrent(this); }.bind(this));
	}.bind(this));
			
	highlight = new Element('li').addClass('background').adopt(new Element('div').addClass('left')).injectInside(menu);
	if(current) setCurrent(current);
	myFade = new Fx.Morph(highlight, {
		duration: 700,
		transition: 'back:out',
		link: 'cancel',
		onClick: Class.empty
	});
}

function setCurrent(el) {
	highlight.setStyles({left: (el.offsetLeft)+'px', width: (el.offsetWidth)+'px'});
	var myFx = new Fx.Morph(highlight, { duration: 300 });
	if(isvis != 1) {
		myFx.start({ 'opacity': [0, 1] });
		isvis = 1;
	}
	current = el;
}

function moveBg(to) {
	if(!current) {
		setCurrent(to);
		return;
	}
	myFade.start({
		'width': [highlight.offsetWidth, to.offsetWidth],
		'left': [highlight.offsetLeft, to.offsetLeft]
	});
}


// Change these
var rotatetime = 5000; // Time for each image to be displayed in milliseconds
var fadetime = 1000; // Time for cross-fade in milliseconds

// Don't touch these!
var rotateimgs = new Array();
var pos = 0;
var go;
var inprogress = 0;

function getimages(div) {
	var container = $(div);
	for(var i = 0; i < container.childNodes.length; i++) {
		if(container.childNodes[i].nodeName == "A") {
			container.childNodes[i].id = "fadeimg_" + i;
			$('fadeimg_' + i).style.display = "none";
			rotateimgs[rotateimgs.length] = container.childNodes[i];
			if(rotateimgs.length == 1) container.childNodes[i].style.display = "block";
		}
	}
	if(rotateimgs.length > 1) go = setInterval(rotateimages, rotatetime + fadetime);
}

function rotateimages() {
	if(!rotateimgs[pos + 1]) var newpos = 0;
	else var newpos = pos + 1;
	fadeimg(rotateimgs[newpos], rotateimgs[pos]);
	pos = newpos;
}

function fadeimg(el, oldel) {
	var myFade = new Fx.Tween($(el.id), {
		duration: fadetime,
		onStart: function() { inprogress = 1; },
		onComplete: function() { 
			oldel.style.display = "none";
			inprogress = 0;
		}
	});
	myFade.set('opacity', 0);
	el.style.display = "block";
	oldel.style.zIndex = 4;
	el.style.zIndex = 5;
	myFade.start('opacity', 1);
}

function fadeto(newpos) {
	if(newpos != pos && inprogress != 1) {
		fadeimg(rotateimgs[newpos], rotateimgs[pos]);
		pos = newpos;
		clearInterval(go);
	}
	else if(newpos == pos) window.location = $('featlink' + pos).href;
}

window.addEvent('domready', function() {
	if($('fancymenu')) setmenu('fancymenu');
	if($('featrotate')) getimages('featrotate');
});