/**
 * @author satyre
 */
var containerHeight = null;
var allLinksH = new Array();
var allLinksT = new Array();
window.addEvent('domready', function(){
	initLinksOnPage();
});
function initLinksOnPage(){
	containerHeight = null;
	allLinksH = new Array();
	allLinksT = new Array();
	var links = $$('a');
	for (var i=0;i<links.length;i++)
	{
		if (isLinkSameDomain(links[i].get('href')) == false) {
			eval("links[i].addEvent('click', function(e){showSite('" + links[i].get('href') + "','" + links[i].get('title').strreplace("'", "\\'") + "');e.stop();});");
			if (!allLinksH.has(links[i].get('href'))) {
				allLinksH.push(links[i].get('href'));
				allLinksT.push(links[i].get('title'));
			}
		}
	}
}
function isLinkSameDomain(ref){
	if (typeof ref != 'string') {
		return true;
	}
	if (ref.length == 0) {
		return true;
	}
	if (ref.substr(0, 4) != 'http') {
		return true;
	}
	if (ref.substr(0, 7) == 'http://') {
		var domain = ref.substr(7).explode('/')[0];
	}
	else 
		if (ref.substr(0, 8) == 'https://') {
			var domain = ref.substr(8).explode('/')[0];
		}
		
	if (domain == slsBuild.site.domainName) {
		return true;
	}
	else {
		return false;
	}
}
function showSite(href, title)
{
	var linkKey = allLinksH.search(href);
	var keyNext = ((allLinksH.length-1) == linkKey) ? 0 : parseInt(linkKey)+1;
	var keyPrev = (linkKey == 0) ? allLinksH.length-1 : parseInt(linkKey)-1;
	var heightClient = document.documentElement.clientHeight;
	var heightIFrame = heightClient-108;
	var iframe = new Element('iframe', {
		'src'	:	href,
		'styles' : {
			'border'	:	'0',
			'width'		: '100%',
			'height'	: '0px',
			'margin'	: '0px',
			'backgroundColor': "#535353"
		},
		'id' : 'friendFrame',
		'name': title
	}).addEvent('load', function(){initFriendFrame();});
	if (Browser.Engine.trident)
		iframe.setStyle('float', 'left');
	iframe.inject($$('body')[0], 'bottom');
	
	var frameControl = new Element('div', {
		'id' : 'frameControl',
		'styles' : {
			'width' : '100%',
			'textAlign' : 'right',
			'float'		: 'left',
			'height'	: '0px',
			'overflow'	: 'hidden',
			'backgroundColor' : '#191919',
			'backgroundImage' : 'url(/'+slsBuild.paths.img+'Backgrounds/hrLeft2.png)',
			'background-repeat': 'repeat-y',
			'bacground-position': 'top left'
		}
	});
	var title= new Element('span', {
		'styles' : {
			'display'   : 'block',
			'float'		: 'left',
			'marginLeft': '24px',
			'fontSize'  : '14px',
			'fontWeight': '900',
			'textTransform' : 'uppercase',
			'color'		: '#8ac7ff'
		}
	});
	
	var spanSlideContentContainer = new Element('span', {
		'styles' : {
			'height'	 : '16px',
			'width'		 : '300px',
			'overflow'	 : 'hidden',
			'marginLeft' : '10px'
		}
	});
	var spanCurrent = new Element('a', {
		'html'	:	$('friendFrame').get('name'),
		'styles' : {
			'fonSize' : '0.9em',
			'height'  : '16px'
		}
	}).inject(spanSlideContentContainer);
	
	
	spanSlideContentContainer.inject(title);
	if (Browser.Engine.trident && Browser.Engine.version == 4)
		title.setStyle('margin-left', '12px');
	
	var loading = new Element('img', {
		'src'	:	'/'+slsBuild.paths.img+'Backgrounds/loadSite.gif',
		'alt'	:	'Chargement en cours...',
		'title'	:	'Chargement en cours...',
		'id'	:	'loadingWebSite',
		'styles': {
			'marginRight' : '10px'
		}
	});
	var fullScreenA = new Element('a',{
		'href' : href,
		'target' : '_blank',
		'styles' : {
			'marginRight' : '10px'
		}
	});
	var fullScreenI = new Element('img', {
			'src' : '/'+slsBuild.paths.img+'Buttons/fullScreen53.png',
			'alt' : 'Voir le site '+$('friendFrame').get('name'),
			'title' : 'Voir le site '+$('friendFrame').get('name'),
			'styles' : {
				'width' : '10px',
				'height': '10px'
			}
		}).inject(fullScreenA);
	
	var closeI = new Element('img', {
			'src' : '/'+slsBuild.paths.img+'Buttons/close53.png',
			'alt' : 'Back To Florian Collot Portfolio',
			'title' : 'Back To Florian Collot Portfolio',
			'styles' : {
				'width' : '10px',
				'height': '10px'
			}
		});
	var closeA = new Element('a',{
		'href' : 'http://design.florian-collot.ath.cx/Last/friends.html',
		'styles' : {
			'marginRight' : '10px'
		}
	}).addEvent('click', function(e){
		hideFrame();
		e.stop();
	});
	/*var aWebPrev = new Element('a', {
		'href' : allLinksH[keyPrev],
		'rel'  : allLinksT[keyPrev],
		'title': 'Voir le Lien Précédent : '+allLinksT[keyPrev],
		'html' : 'précédent',
		'styles' : {
			'fontSize' : '0.8em'
		}
	}).addEvent('click', function(e){
		switchFrame();
		e.stop();
	});
	var aWebNext = new Element('a', {
		'href' : allLinksH[keyNext],
		'rel'  : allLinksT[keyNext],
		'title': 'Voir le Lien Précédent : '+allLinksT[keyNext],
		'html' : 'suivant',
		'styles' : {
			'fontSize' : '0.8em'
		}
	}).addEvent('click', function(e){
		switchFrame();
		e.stop;
	});*/
	closeI.inject(closeA);
	title.grab(fullScreenA, 'top');
	title.grab(closeA, 'top');
	title.grab(loading, 'top');
	title.inject(frameControl);
	//aWebPrev.inject(frameControl);
	//aWebNext.inject(frameControl);
	frameControl.inject($('header'));
	containerHeight = $('container').getStyle('height');
	var morph = new Fx.Morph($('container'), {
		onStart:function(){
			if ($chk($('projects')))
				$('projects').setStyle('display', 'none');
			$('container').setStyle('overflow', 'hidden');
		},
		onComplete:function(){
			$('container').setStyle('opacity', 0);
			var morph2 = new Fx.Morph($('header'));
			var morph3 = new Fx.Morph($('friendFrame'),{
				onComplete:function(){
					var morph4 = new Fx.Morph($('frameControl'));
					morph4.start ({
						'padding' : '3px 0px 5px 0px',
						'height'  : '16px'
					});
					window.addEvent('resize', function(){
						refreshFrameSize();
					})
				}
			});
			morph2.start ({
				'marginTop' : '20px'
			});
			morph3.set({
				'marginTop' : String(heightIFrame)+"px"
			});
			morph3.start ({
				height : String(heightIFrame)+"px",
				'marginTop' : '0px'
			});
		}
	});
	
	

	morph.start ({
		'height' : '0px'
	});
	
}
function initFriendFrame()
{
	$('loadingWebSite').setStyle('visibility', 'hidden');
	$('friendFrame').setStyle('background-color', "#FFF");
}
function hideFrame()
{
	var frameHeight = $('friendFrame').getStyle('height');
	var morph4 = new Fx.Morph($('frameControl'), {
		onComplete:function(){
			$('frameControl').destroy();
			var morph3 = new Fx.Morph($('friendFrame'), {
				onComplete:function()
				{
					$('friendFrame').destroy();
					var morph = new Fx.Morph($('container'), {
						onComplete:function(){
							if ($chk($('projects')))
								$('projects').setStyle('display', 'block');
							$('container').setStyles({
								'overflow' : 'auto',
								'height'   : 'auto'
							});
						}
					});
					var morph2 = new Fx.Morph($('header'));		
					morph.start ({
						'height' : String(containerHeight),
						'opacity': 1
					});
					morph2.start ({
						'marginTop' : '70px'
					});
				}
			});
			morph3.start ({
				height : "0px",
				'marginTop' : frameHeight
			});
		}
	});
	morph4.start ({
		'padding' : '0',
		'height'  : '0px'
	});

	
	
}
function refreshFrameSize(){
	var heightClient = document.documentElement.clientHeight;
	var heightIFrame = heightClient-108;
	$('friendFrame').setStyle('height', String(heightIFrame)+"px");
}
function textTransition(element, newText, duration){
	var content = element.get('html');
	if (content.trim().toLowerCase() == newText.trim().toLowerCase())
		return;
	var time=0;
	for (var i=0;i<content.length;i++)
	{	
		var limit = i+1;
		fillText.delay(time, "", [element, content.substr(0, (content.length-limit))]);
		time += (duration == null) ? 30 : duration;
	}
	time += (duration == null) ? 30 : duration;
	textAppear.delay(time, "", [element, newText, duration]);
}

function textAppear(element, content, duration){
	var time=0;
	for (var i=0;i<=content.length;i++)
	{
		var limit = i+1;
		fillText.delay(time, "", [element, content.substr(0, i)]);
		time += (duration == null) ? 30 : duration;;
	}
}
function fillText (element, text)
{
	element.set('html', text);

}
