function getPage(page_url)
{
	setLocation(page_url);
}

function goToPage(page_url)
{
	$('loading').style.display = 'block';
	$('updater').style.display = 'none';
	var ajax = new Ajax.Updater($('updater'), page_url, {method:'get', onComplete: showPage});
}

var photos;

function showPage()
{
	$('loading').style.display = 'none';
	Effect.Appear('updater');
	Effect.BlindDown('updater', {duration: 0.3, transition: Effect.Transitions.sinoidal, afterFinish: showImages});
	if($('my_work'))
	{
		$('my_work').style.display = 'none';
	}
}

function showImages()
{
	if($('my_work'))
	{
		$('my_work').style.display = 'block';
		enableCarousel();
	}
}

function changeSelected(a)
{
	var headerLinks = $('header_links').getElementsByTagName('li');
	for(var i=0;i<headerLinks.length;i++)
	{
		headerLinks[i].getElementsByTagName('a')[0].className = '';
	}
	a.className = 'selected_page';
}

function sendContact(url)
{
	var form = document.contact;
	var ajax = new Ajax.Updater($('error'), url, {parameters: {trimite: 1, nume: form.nume.value, email: form.email.value, subiect: form.subiect.value, mesaj: form.mesaj.value}, method:'post', onComplete: showError});
}

function showError()
{
	$('error').show();
}

var Carousel = function(divsVisible, divWidth, divNumber, position)
{
	this.divsVisible = divsVisible;
	this.divWidth = divWidth;
	this.divNumber = divNumber;
	this.totalSlides = this.divNumber - this.divsVisible;
	this.slidesLeft = this.totalSlides + (position / divWidth);
}

Carousel.prototype = {
	next: function()
	{
		if(this.slidesLeft > 0)
		{
			new Effect.Move($('alte_siteuri'), {x: -(this.totalSlides - this.slidesLeft + 1) * this.divWidth, duration: 0.5, mode: 'absolute'});
			new Effect.Move($('slider'), {x: Math.round(785 * (1 - this.slidesLeft / this.totalSlides) + (785 / this.totalSlides)), duration: 0.5, mode: 'absolute', afterFinish: takeCareOfTheSlider});
			this.slidesLeft--;
		}
	},
	
	prev: function()
	{
		if(this.slidesLeft < this.totalSlides)
		{
			new Effect.Move($('alte_siteuri'), {x: -(this.totalSlides - this.slidesLeft - 1) * this.divWidth, duration: 0.5, mode: 'absolute'});
			new Effect.Move($('slider'), {x: Math.round(785 * (1 - this.slidesLeft / this.totalSlides) - (785 / this.totalSlides)), duration: 0.5, mode: 'absolute', afterFinish: takeCareOfTheSlider});
			this.slidesLeft++;
		}
	},
	
	goTo: function(value)
	{
		if(value < 0)
		{
			value = 0;
		}
		else if(value > this.totalSlides)
		{
			value = this.totalSlides;
		}
		new Effect.Move($('alte_siteuri'), {x: -value * this.divWidth, duration: 0.5, mode: 'absolute'});
		this.slidesLeft =this.totalSlides - value;
		new Effect.Move($('slider'), {x: Math.round(785 * (1 - this.slidesLeft / this.totalSlides)), duration: 0.5, mode: 'absolute', afterFinish: takeCareOfTheSlider});
	}
}

function changeTopLink()
{
	var mainPage = top.location.hash.split('/');
	if(mainPage[0] == '#Despre-mine' || mainPage[0] == '#page=102' || mainPage[0] == '#About-me')
	{
		changeSelected($('main_1'));
		if($('limba').title == 'English')
		{
			document.title = 'Despre mine';
		}
		else
		{
			document.title = 'About me';
		}
	}
	else if(mainPage[0] == '#Portofoliu' || mainPage[0] == '#page=103' || mainPage[0] == '#Portfolio')
	{
		changeSelected($('main_2'));
		if($('limba').title == 'English')
		{
			document.title = 'Portofoliu';
		}
		else
		{
			document.title = 'Portfolio';
		}
	}
	else if(mainPage[0] == '#Contact' || mainPage[0] == '#page=contact')
	{
		changeSelected($('main_contact'));
		document.title = 'Contact';
	}
	else if(mainPage[0] == '#foto' || mainPage[0].indexOf('image') != -1)
	{
		changeSelected($('main_2'));
		if($('limba').title == 'English')
		{
			document.title = 'Portofoliu';
		}
		else
		{
			document.title = 'Portfolio';
		}
	}
	else
	{
		changeSelected($('main_0'));
		if($('limba').title == 'English')
		{
			document.title = 'Prima pagina';
		}
		else
		{
			document.title = 'Home page';
		}
	}
}

// executa o functie intr-un anumit event
function addEvent(elm, evType, fn, useCapture)
{
	if (elm.addEventListener)
	{
		elm.addEventListener(evType, fn, useCapture);
		return true;
	}
	else if (elm.attachEvent)
	{
		var r = elm.attachEvent('on' + evType, fn);
		return r;
	}
	else
	{
		elm['on' + evType] = fn;
	}
}

var prevValue;
var newValue;
var slider;

function takeCareOfTheSlider()
{
	if(photos.slidesLeft == 0)
	{
		$('slider').style.left = '785px';
	}
	if(prevValue == 0)
	{
		$('slider').style.left = '0';
	}
}

var width;
var percent;
var carouselPosition;
var deviation;
var prevValue;

function enableCarousel()
{
	if($('count_photos'))
	{
		photos = new Carousel(4, 208, $('count_photos').innerHTML, $('position').innerHTML);
		width = 208 * photos.totalSlides;
		function slidePhotos(value)
		{
			$('alte_siteuri').style.left = width * (-value) + 'px';
		}
		function slideCarousel()
		{
			carouselPosition = parseInt($('alte_siteuri').style.left.replace(/px/, '')) / (-208);
			deviation = -(parseInt($('alte_siteuri').style.left.replace(/px/, '')) % 208);
			if(deviation > 104)
			{
				photos.goTo(Math.ceil(carouselPosition));
			}
			else
			{
				photos.goTo(Math.floor(carouselPosition));
			}
		}
		photos.goTo($('order').innerHTML);
		slider = new Control.Slider('slider', 'slider_track', {onSlide: function(e) {slidePhotos(e)}, onChange: function(e) {slideCarousel(e)}});
	}
}


function showLoadingImage()
{
	for(var i = 0; i < document.getElementsByTagName('a').length; i++)
	{
		if(!document.getElementsByTagName('a')[i].onclick && (document.getElementsByTagName('a')[i].href.indexOf('trafic.ro') == -1))
		{
			document.getElementsByTagName('a')[i].onclick = function()
			{
				$('loading').style.display = 'block';
				$('updater').style.display = 'none';
			}
		}
	}
}
	
addEvent(window, 'load', showLoadingImage, false);
addEvent(window, 'load', enableCarousel, false);
