String.prototype.trim = function() {  
    return this.replace(/^\s+|\s+$/g,'');  
}
var project_pics = new Array;

project_pics[1] = 9;
project_pics[2] = 3;
project_pics[3] = 4;
project_pics[4] = 4;
project_pics[5] = 6;
project_pics[6] = 7;
project_pics[7] = 5;
project_pics[8] = 1;
project_pics[9] = 5;
project_pics[10] = 5;
project_pics[11] = 2;
project_pics[12] = 4;
project_pics[13] = 3;
project_pics[14] = 3;
project_pics[15] = 5;
project_pics[16] = 5;
project_pics[17] = 6;
project_pics[18] = 4;
project_pics[19] = 2;
project_pics[20] = 7;
project_pics[21] = 3;
project_pics[22] = 1;

var current_project_image = 0;
var current_project = 0;

function getParam( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}
function parseUri(sourceUri){
    var uriPartNames = ["source","protocol","authority","domain","port","path","directoryPath","fileName","query","anchor"];
    var uriParts = new RegExp("^(?:([^:/?#.]+):)?(?://)?(([^:/?#]*)(?::(\\d*))?)?((/(?:[^?#](?![^?#/]*\\.[^?#/.]+(?:[\\?#]|$)))*/?)?([^?#/]*))?(?:\\?([^#]*))?(?:#(.*))?").exec(sourceUri);
    var uri = {};
    
    for(var i = 0; i < 10; i++){
        uri[uriPartNames[i]] = (uriParts[i] ? uriParts[i] : "");
    }
    
    if(uri.directoryPath.length > 0){
        uri.directoryPath = uri.directoryPath.replace(/\/?$/, "/");
    }
    
    return uri;
}
var pages = new Array('home', 'projects', 'publications', 'team', 'jobs', 'contact');

function hideAll()
{

	hideAllCV();
	
	for(var i = 0; i < pages.length; i++)
		$(pages[i]).style.display = 'none';
}
var temp;
function showContent(id)
{
	hideAll();

	// handle logo

	if(id == 'bhome' || id == 'home')
		$('bg').addClassName("bglogo");
	else
		$('bg').removeClassName("bglogo");

	if(temp)
		temp.stop();

	temp = new Spry.Effect.Fade(id.replace('b', ''),  {duration: 2000, from: 0, to: 100, toggle: true});
	temp.start();

	for(i = 0; i < pages.length; i++)
		Element.removeClassName('b' + pages[i], "on");
	Element.addClassName(id, "on");

	$('project_details').style.display = 'none';
}
function hideAllCV()
{
	for(i = 1; i < 4; i++)
		$('cv' + i).style.display = 'none';

}
function showCV(id)
{
	hideAllCV();
	
	if(temp)
		temp.stop();

	temp = new Spry.Effect.Fade('cv' + id,  {duration: 2000, from: 0, to: 100, toggle: true});
	temp.start();

}
function showproject(num)
{
	var url = 'p' + num + '.html';
	current_project = num;
	hideAll();

	if(temp)
		temp.stop();

	temp = new Spry.Effect.Fade('project_details',  {duration: 2000, from: 0, to: 100, toggle: true});
	temp.start();

	
	var myAjax = new Ajax.Updater(
			'project_details', 
			url, 
			{
				method: 'get',
				onComplete: function(){ showFirstProjectPic(num); }
			});

}
var img_loader = new Image();
img_loader.src = 'img/ajax-loader.gif';
var temp_img;
function show_active_pic(num)
{
	for(i = 0; i < project_pics[current_project]; i++)
		$('picbtn' + (i + 1)).removeClassName("on");
	$('picbtn' + num).addClassName("on");

	$('image_inner').src = img_loader.src;
	pic_url = 'img/projects/' + current_project + '/' + num + '.jpg';
	temp2 = new Image();
	temp2.onload = function (){  $('image_inner').src = this.src; $('image_inner').style.display = 'none'; if(temp_img) temp_img.stop(); temp_img = new Spry.Effect.Fade('image_inner',  {duration: 2000, from: 0, to: 100, toggle: true});temp_img.start();}
	temp2.src = pic_url;
}
function showFirstProjectPic(num)
{

	$('project_pic').innerHTML = '<img src="img/ajax-loader.gif" id="image_inner"/>';
	show_active_pic(1);
	current_project_image = 1;
	Element.addClassName($('prev'), 'prev-off');

}
function update_colors()
{
	if(current_project_image == project_pics[current_project])
		Element.addClassName($('next'), 'prev-off');
	else
		Element.removeClassName($('next'), 'prev-off');

	if(current_project_image == 1)
		Element.addClassName($('prev'), 'prev-off');
	else
		Element.removeClassName($('prev'), 'prev-off');

}
function next_image()
{
	if(current_project_image < project_pics[current_project])
	{
		current_project_image ++;
		show_active_pic(current_project_image);

		update_colors();
	}
	
	
	
}
function prev_image()
{
	if(current_project_image > 1)
	{
		current_project_image --;
		show_active_pic(current_project_image);

		update_colors();
	}
	
}
function next_project()
{
	if(current_project < 22)
	{
		current_project ++;
	}else
		current_project = 1;
	
	showproject(current_project);
	
}
function prev_project()
{
	if(current_project > 1)
	{
		current_project --;
	}else
		current_project = 22;

	showproject(current_project);
}
Event.onDOMReady( function(){ 
	
	hideAll();

	// Add Events
	Event.observe($('bhome'), 'click', function(){showContent('home')});
	Event.observe($('bprojects'), 'click', function(){showContent('bprojects')});
	Event.observe($('bpublications'), 'click', function(){showContent('bpublications')});
	Event.observe($('bteam'), 'click', function(){showContent('bteam')});
	Event.observe($('bjobs'), 'click', function(){showContent('bjobs')});
	Event.observe($('bcontact'), 'click', function(){showContent('bcontact')});

	Event.observe($('btn_cv1'), 'click', function(){showCV(1)});
	Event.observe($('btn_cv2'), 'click', function(){showCV(2)});
	Event.observe($('btn_cv3'), 'click', function(){showCV(3)});

	uri = parseUri(window.location.href);
	switch(uri.anchor)
	{
		case 'projects':
			showContent('bprojects');
		break;
		
		case 'publications':
			showContent('bpublications');
		break;

		case 'team':
			showContent('bteam');
		break;

		case 'jobs':
			showContent('bjobs');
		break;

		case 'contact':
			showContent('bcontact');
		break;

		default: 
			showContent('bhome');
		break;
	}

});