var isIE = (navigator.appName.indexOf("Microsoft") != -1) ? true : false;

function loadMain()
{
	setTimeout("initIntro();", 3000);
	
	preloadImages();	
	patchMails();
	
	if (typeof initEvents == "function")
		initEvents();
}

function patchMails()
{
	aMails = getElementsByClassName("mail");
	
	for (i in aMails)
	{
		aMails[i].setAttribute("href", "mailto:gillesryan" + "@" + "hotmail.com");
		aMails[i].innerHTML = "gillesryan" + "@" + "hotmail.com";
	}
	
	aMails = getElementsByClassName("mail_link");
	
	for (i in aMails)
	{
		aMails[i].setAttribute("href", "mailto:gillesryan" + "@" + "hotmail.com");
	}
}					

function loadShuriken()
{
	var soShuriken = new SWFObject("swf/shuriken.swf", "var", "30px", "30px", "9", "#000000");
	soShuriken.addParam("scale", "noscale");
	soShuriken.addParam("wmode", "transparent");
	soShuriken.write("shuriken");
}

function preloadImages()
{
	oImage_accueil_on = new Image(); 
	oImage_accueil_on.src = "images/common/menu/accueil_on.gif"; 

	oImage_cv_on = new Image(); 
	oImage_cv_on.src = "images/common/menu/cv_on.gif"; 

	oImage_references_on = new Image(); 
	oImage_references_on.src = "images/common/menu/references_on.gif"; 

	oImage_contact_on = new Image(); 
	oImage_contact_on.src = "images/common/menu/contact_on.gif"; 
}

function initIntro()
{
	if ($("intro-ryan-gilles"))
	{				
		aPositionFrom = cumulativeOffset($("intro-ryan-gilles"));
		aPositionTo = cumulativeOffset($("ryan-gilles"));
		
		aPositionTo["left"] = aPositionTo["left"] - 30;
		aPositionTo["top"] = aPositionTo["top"] - 32;
	
		diffLeft = aPositionFrom["left"] - aPositionTo["left"];
		diffTop = aPositionFrom["top"] - aPositionTo["top"];
	
		oIntroTweenX = new Tween($("intro-ryan-gilles").style, "marginLeft", Tween.elasticEaseOut, -218, -218 - diffLeft, 4, "px");
		oIntroTweenY = new Tween($("intro-ryan-gilles").style, "marginTop", Tween.elasticEaseOut, -187, -187 - diffTop, 4, "px");	
		
		var oIntroYTweenListener = new Object();
		
		var oIntroDetailsTween = new OpacityTween($("intro-details"), Tween.strongEaseOut, 100, 0, 3);	
		
		oIntroYTweenListener.onMotionFinished = function()
		{
			$("intro-ryan-gilles").style.backgroundImage = "none";
			
			var oBackgroundTween = new OpacityTween($("intro_background"), Tween.backEaseOut, 100, 0, 2);		
			var oBackgroundTweenListener = new Object();
			
			oBackgroundTweenListener.onMotionFinished = function()
			{
				$("intro_background").style.display = "none";
				$("intro_visible").style.display = "none";
			};
	
			oBackgroundTween.addListener(oBackgroundTweenListener);
			oBackgroundTween.start();
		};

		oIntroTweenY.addListener(oIntroYTweenListener);
		
		oIntroTweenX.start();
		oIntroTweenY.start();
		
		oIntroDetailsTween.start();
		
		/*
		var oBackgroundTween = new OpacityTween($("intro_background"), Tween.strongEaseOut, 100, 0, 3);		
		var oBackgroundTweenListener = new Object();
		
		oBackgroundTweenListener.onMotionFinished = function()
		{
			var oIntroTween = new OpacityTween($("intro"), Tween.strongEaseOut, 100, 0, 3);
			oIntroTween.start();		
		};

		oBackgroundTween.addListener(oBackgroundTweenListener);
		oBackgroundTween.start();
		*/
	}
}

// Prototype Functions

function $(element)
{
	if (arguments.length > 1)
	{
		for (var i = 0, elements = [], length = arguments.length; i < length; i++)
		elements.push($(arguments[i]));
		return elements;
	}
	element = document.getElementById(element);
	return (element);
}

function getDimensions(element)
{
    var display = element.style.display;
    if (display != 'none' && display != null) // Safari bug
      return {width: element.offsetWidth, height: element.offsetHeight};

    // All *Width and *Height properties give 0 on elements with display none,
    // so enable the element temporarily
    var els = element.style;
    var originalVisibility = els.visibility;
    var originalPosition = els.position;
    var originalDisplay = els.display;
    els.visibility = 'hidden';
    els.position = 'absolute';
    els.display = 'block';
    var originalWidth = element.clientWidth;
    var originalHeight = element.clientHeight;
    els.display = originalDisplay;
    els.position = originalPosition;
    els.visibility = originalVisibility;
    return {width: originalWidth, height: originalHeight};
}

function cumulativeOffset(element)
{
    var valueT = 0, valueL = 0;
    do {
      valueT += element.offsetTop  || 0;
      valueL += element.offsetLeft || 0;
      element = element.offsetParent;
    } while (element);
    return _returnOffset(valueL, valueT);
}

function _returnOffset(l, t)
{
	var result = [l, t];
	result.left = l;
	result.top = t;
	return result;	
}

function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\\\s)" + className + "(\\\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}

function getFilePath(sFile)
{
	sPath = sFile.substring(sFile.lastIndexOf("\/"));
	sPath = sFile.replace(sPath, "");
	return sPath;
}

function getFileName(sFile)
{
	sPath = sFile.substring(sFile.lastIndexOf("\/"));
	sPath = sPath.replace("\/", "");
	return sPath;
}

function getPageScrollXY()
{
	var scrOfX = 0, scrOfY = 0;
	if( typeof( window.pageYOffset ) == 'number' )
	{
		//Netscape compliant
		scrOfY = window.pageYOffset;
		scrOfX = window.pageXOffset;
	}
	else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) )
	{
		//DOM compliant
		scrOfY = document.body.scrollTop;
		scrOfX = document.body.scrollLeft;
	}
	else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) )
	{
		//IE6 standards compliant mode
		scrOfY = document.documentElement.scrollTop;
		scrOfX = document.documentElement.scrollLeft;
	}
	
	var aXY = new Array();	
	aXY["x"] = scrOfX; 
	aXY["y"] = scrOfY; 
	
	return (aXY);
}

function trim(myString)
{
	return myString.replace(/^\s+/g,'').replace(/\s+$/g,'')
} 
