//DEFAULTS
current = 'main';
selected = 'home';

//INITIAL FUNCTIONS
window.onload = function() {
   centerContent('middle');
   setContent();
};
window.onresize = function() {
   centerContent('middle');
};


//CENTER CONTENT 
//ADAPTED FROM http://snipplr.com/view.php?codeview&id=10528
function centerContent() {
	var middle = $('middle');
	middle.hide();
	var dims = middle.getDimensions();
	var browser = document.viewport.getDimensions();
	var y  = (browser.height - dims.height) / 2;
	var x = (browser.width - dims.width ) / 2;
	var styles = { position : 'absolute',
	top      : y + 'px',
	left     : x + 'px' };
	middle.setStyle(styles);
	middle.show(); //PREVENT FLASH OF MOVEMENT
}

//DETERMINE GREETING
function greeting() {
	var d = new Date();	
	if (d.getHours() < 12) { document.write("Good morning.") }
	else if (d.getHours() < 5) { document.write("Good afternoon.") }
	else { document.write("Good evening.") }
}

//CLOSE CONTENT
function closeContent() {
	current = 'main';
	$('viewport').morph('height: 110px');
	new Effect.Move('content', { x: 0, y:250 , mode: 'absolute', duration: 2.0});
	new Effect.Move('middle', { x: 0, y: 110, mode: 'relative', duration: 1.0 });
	new Effect.Move('main', { x: 0, y: 0, mode: 'absolute', duration: 1.0 });
	toggleNav('hide');
	updateTitle(current);
}

//GO TO PAGE NUMBER
function goToPage(name,pageNum) {
	new Ajax.Updater('content', 'pages/p_'+name+'.php?page='+pageNum);
}

//SUBMIT CONTACT FORM
function formContact() {
	var data = $('contact_form').serialize();
	new Ajax.Request('ajax/process.php', {
		method: 'post',
		postBody: data,
		onSuccess: function(response) {
			$('response').innerHTML = response.responseText;
		}
	});
	return false;
}

//CLEAR/RESTORE DEFAULT FORM INPUT TEXT
//ADAPTED FROM http://snipplr.com/view.php?codeview&id=5332
function formInputClear(field) {
	if (field.defaultValue==field.value) {field.value = '';}
	else if (field.value == '') {field.value = field.defaultValue;}
}

//TOGGLE BOTTOM NAVIGATION 
function toggleNav(action) {
	if(action=='hide') new Effect.BlindUp('navigation');
	if (action=='show') new Effect.BlindDown('navigation');
}

//SHOW SLECTED PAGE AND UPDATE HASH 
function showPage(name) {
	if(current=='main') { //IF COMING FROM MAIN PAGE
		new Effect.Move('main', { x: 0, y: -250, mode: 'absolute', duration: 1.0 });
		$('viewport').morph('height: 250px' );
		new Effect.Move('middle', { x: 0, y: -110, mode: 'relative', duration: 1.0 });
		new Effect.Move('content', { x: 0, y: -110, mode: 'absolute', duration: 0.8 });
		toggleNav('show');
	}
	
	//IF PAGINATED
	if(name.match('-')!=null) {
		var pageNum = name.slice(name.indexOf('-') + 1);
		var page = '?page=' + pageNum;
		name = name.slice(0,name.indexOf('-')); //REMOVES PAGE NUMBER FROM NAME
	} else { var page = ''; }
	
	//SET THE REQUESTED PAGE TO THE CURRENT PAGE
	current = name;
	
	//UPDATE PAGE IF NOT THE MAIN PAGE
	if(name!='main') new Ajax.Updater('content', 'pages/p_'+name+'.php' + page);

	//IF NO LONGER CURRENT PAGE, REMOVE CLASS
	if(selected!=current)$(selected).removeClassName('selected');
	
	//ADD CLASS TO CURRENT DIV AND SET CURRENTLY SELECTED
	$(current).addClassName('selected'); 
	selected = current;
	
	//UPDATE THE PAGE TITLE
	updateTitle(name);
		
}

//DETERMINE PAGE BY HASH NAVIGATION ONLOAD
function setContent() {
	var request = window.location.hash.slice(window.location.hash.indexOf('#') + 1);
	if(request!='') {
		showPage(request);
		current = request;
	}
}

//UPDATE PAGE TITLE
function updateTitle(name) {
	var begin = "F3arless / Alberto Bravi";
	switch (name) {
		case "main":
			document.title = begin;
		break;
		case "about":
			document.title = begin + ' / About Me';
		break;
		case "curriculum":
			document.title = begin + ' / Curriculum';
		break;
		case "portfolio":
			document.title = begin + ' / Portfolio';
		break;
		case "contact":
			document.title = begin + ' / Contact';
		break;
		default:
			document.title = first;
	}
}

//PROTECT EMAIL FROM SPAMBOTS
function spamProof(user, domain) {
	/* CREDIT: andrewpile.com */
    locationstring = 'mailto:' + user + '@' + domain;
    window.location = locationstring;
}
