var menuOpacity = 0;
var delay;
var fadingOut = false;
var fadingIn = false;
var fadeOutBlock = false;

function fadeIntroIn(gFade) 
{
	if(gFade >= 0) 
	{
		document.bgColor = "#" + RGBtoHex(gFade, gFade, gFade);
		gFade -= 1;
		window.setTimeout("fadeIntroIn("+gFade+")", 1);
	} 
	else
	{
		document.getElementById('imgIntro').style.visibility = 'visible';
	}
}

function fadeIntroOut(gFade, iFade) 
{
	if(iFade >= 0)
	{
		obj = document.getElementById('imgIntro');
		opacity = (iFade == 100)?99.999:iFade;
	  
	  	// IE/Win
	  	obj.style.filter = "alpha(opacity:"+opacity+")";
	  	// Safari<1.2, Konqueror
	  	obj.style.KHTMLOpacity = opacity/100;
	  	// Older Mozilla and Firefox
	  	obj.style.MozOpacity = opacity/100;	  
	  	// Safari 1.2, newer Firefox and Mozilla, CSS3
	  	obj.style.opacity = opacity/100;
  	
		iFade -= 1;
		window.setTimeout("fadeIntroOut("+gFade+","+iFade+")", 1)
	}
	else
	{
		if(gFade <= 255) 
		{
			document.bgColor = "#" + RGBtoHex(gFade, gFade, gFade);
			gFade += 1;
			window.setTimeout("fadeIntroOut("+gFade+","+iFade+")", 1);
		} 
		else
		{
			window.location = "http://www.nicolasadeline.com/index2.php";
		}
	}
}

function initMenuFadeIn(tagId) 
{
	if(fadingOut)
	{
		fadeOutBlock = true;
  	}

	delay = window.setTimeout("fadeIn('"+tagId+"', "+menuOpacity+")", 1000);
	fadingIn = true;
}

function initMenuFadeOut(tagId) 
{
	if(fadingIn)
	{
		window.clearTimeout(delay);
		fadingIn = false;
	}
	
	if(!fadingOut)
	{
  		fadeOut(tagId, menuOpacity, 20);
  		fadingOut = true;
  	}
}

function initFade(tagId) 
{
	tag = document.getElementById(tagId);
  	setOpacity(tag, 0);
  	tag.style.visibility = 'visible';
  	fadeIn(tagId, 0);
}

function initTagFade(tagId, interval) 
{
	tag = document.getElementById(tagId);
  	setOpacity(tag, 0);
  	tag.style.visibility = 'visible';
  	fadeTagIn(tagId, 0, interval);
}
 
function setOpacity(obj, opacity) 
{
	opacity = (opacity == 100)?99.999:opacity;
  
  	// IE/Win
  	obj.style.filter = "alpha(opacity:"+opacity+")";
  
  	// Safari<1.2, Konqueror
  	obj.style.KHTMLOpacity = opacity/100;
  	
  	// Older Mozilla and Firefox
  	obj.style.MozOpacity = opacity/100;
  	
  	// Safari 1.2, newer Firefox and Mozilla, CSS3
  	obj.style.opacity = opacity/100;
}

function fadeIn(objId, opacity) 
{
	if (document.getElementById) 
	{
    		obj = document.getElementById(objId);
    		if (opacity <= 100) 
    		{
      			setOpacity(obj, opacity);
      			opacity += 5;
      			menuOpacity = opacity;
      			window.setTimeout("fadeIn('"+objId+"',"+opacity+")", 100);
    		}
    		else
    		{
    			menuOpacity = 100;
    			fadingIn = false;
    		}
  	}
}

function fadeTagIn(objId, opacity, interval) 
{
	if (document.getElementById) 
	{
    		obj = document.getElementById(objId);
    		if (opacity <= 100) 
    		{
      			setOpacity(obj, opacity);
      			opacity += interval;
      			window.setTimeout("fadeTagIn('"+objId+"',"+opacity+","+interval+")", 100);
    		}
  	}
}

function fadeOut(objId, opacity, goal) 
{
	if (document.getElementById) 
	{
    		obj = document.getElementById(objId);
    		if (opacity >= goal) 
    		{
      			setOpacity(obj, opacity);
      			opacity -= 5;
      			menuOpacity = opacity;
      			
      			if(fadeOutBlock)
      			{
      				fadeOutBlock = false;
      				fadingOut = false;
      			}
      			else
      			{
      				window.setTimeout("fadeOut('"+objId+"',"+opacity+", "+goal+")", 100);
      			}
    		}
    		else
    		{
    			menuOpacity = goal;
    			fadingOut = false;
    		}
  	}
}

function RGBtoHex(R,G,B) 
{
	return "" + toHex(R)+toHex(G)+toHex(B);
}

function toHex(N) 
{
	if (N==null) 
	{
		return "00";
	}
 	
 	N=parseInt(N); 
 	
 	if (N==0 || isNaN(N))
 	{
 		return "00";
 	}
 	
 	N=Math.max(0,N); 
 	N=Math.min(N,255); 
 	N=Math.round(N);
 
 	return "0123456789ABCDEF".charAt((N-N%16)/16) + "0123456789ABCDEF".charAt(N%16);
}
