

function addDOMLoadEvent(func) {
   if (!window.__load_events) {
      var init = function () {
          // quit if this function has already been called
          if (arguments.callee.done) return;

          // flag this function so we don't do the same thing twice
          arguments.callee.done = true;

          // kill the timer
          if (window.__load_timer) {
              clearInterval(window.__load_timer);
              window.__load_timer = null;
          }

          // execute each function in the stack in the order they were added
          for (var i=0;i < window.__load_events.length;i++) {
              window.__load_events[i]();
          }
          window.__load_events = null;
      };

      // for Mozilla/Opera9
      if (document.addEventListener) {
          document.addEventListener("DOMContentLoaded", init, false);
      }

      // for Internet Explorer
      /*@cc_on @*/
      /*@if (@_win32)
          document.write("<scr"+"ipt id=__ie_onload defer src=//0><\/scr"+"ipt>");
          var script = document.getElementById("__ie_onload");
          script.onreadystatechange = function() {
              if (this.readyState == "complete") {
                  init(); // call the onload handler
              }
          };
      /*@end @*/

      // for Safari
      if (/WebKit/i.test(navigator.userAgent)) { // sniff
          window.__load_timer = setInterval(function() {
              if (/loaded|complete/.test(document.readyState)) {
                  init(); // call the onload handler
              }
          }, 10);
      }

      // for other browsers
      //window.onload = init;

      // create event function stack
      window.__load_events = [];
   }

   // add function to event stack
   window.__load_events.push(func);
}

/* WOM */
var woms = new Array();
var womsAll = new Array();
var womIsOn = false;

function womGo(){
  for(var i = 0;i < woms.length;i++)
    eval(woms[i]);
}
function womGoAll(){
  for(var i = 0;i < womsAll.length;i++)
    eval(womsAll[i]);
}

function womAdd(func,dom){
  if (dom) {
    woms[woms.length] = func;
  } else {
    womsAll[womsAll.length] = func;
  }

  if (!womIsOn) womOn();
}

function womOn(){
	addDOMLoadEvent(womGo);
	window.onload = womGoAll;
	womIsOn = true;
}



function navigation_fold_all() {
	for(var i=0;i<navItems.length;i++) {
		var linkId = 'link_' + navItems[i];
		var menuId = 'menu_' + navItems[i];
		navigation_fold(menuId,linkId);
	}
}
function navigation_unfold(menuId,linkId) {
	navigation_fold_all();
	
	var menuExists = (document.getElementById(menuId));
	
	document.getElementById(linkId).style.color = '#fdc488';
	if (menuExists) document.getElementById(menuId).style.display = 'block';

	document.getElementById(linkId).onmouseover = null;
	document.getElementById(linkId).onmouseout 	= null;

	if (menuExists) document.getElementById(menuId).blur();
	return false;
}
function navigation_fold(menuId,linkId) {
	var menuExists = (document.getElementById(menuId));
	
	if (menuExists) document.getElementById(menuId).style.display = 'none';
	document.getElementById(linkId).style.color = '#6699cc';

	document.getElementById(linkId).onmouseover = function() { document.getElementById(linkId).style.color = '#fdc488'; }
	document.getElementById(linkId).onmouseout 	= function() { document.getElementById(linkId).style.color = '#6699cc'; }

	//if (menuExists) document.getElementById(menuId).blur();
	return false;
}
function navigation_foldunfold(menuId,linkId) {
	switch(document.getElementById(menuId).style.display) {
		case 'block':
			return navigation_fold(menuId,linkId);
			break;
		case 'none':
		default:
			return navigation_unfold(menuId,linkId);
			break;
	}
}

function navigation_set_hover(linkId) {
	document.getElementById(linkId).onmouseover = function() {
		document.getElementById(linkId).style.color = '#fdc488';
	}
	document.getElementById(linkId).onmouseout = function() {
		document.getElementById(linkId).style.color = '#6699cc';
	}
}

function navigation_initialize() {

	for(var i=0;i<navItems.length;i++) {
		var linkId = 'link_' + navItems[i];
		var menuId = 'menu_' + navItems[i];
		
		document.getElementById(linkId).menuId = menuId;
		navigation_set_hover(linkId);
	
		document.getElementById(linkId).onclick = function()
		{
			return navigation_foldunfold(this.menuId,this.id);
		};
		
		if (document.getElementById(linkId).className != 'current') {
			navigation_fold(menuId,linkId);
		} else {
			navigation_unfold(menuId,linkId);
		}
	}
}

function menu_hideAll()
{
	for(var i=0;i<menuItems.length;i++) {
		var linkId = 'link_' + menuItems[i];
		var menuId = 'menu_' + menuItems[i];
		document.getElementById(linkId).style.color = 'white';
		document.getElementById(menuId).style.display = 'none';
	}
}

function menu_show(menuId,linkId)
{
	menu_hideAll();
	document.getElementById(menuId).style.display = 'block';
	document.getElementById(linkId).style.color = '#fdc488';
}

function menu_initialize(timeoutKey)
{
	if (!closeOnTimeout) { return; }
	if (timeoutKey != globalTimeoutKey) { return; }

	for(var i=0;i<menuItems.length;i++) {
		var linkId = 'link_' + menuItems[i];
		var menuId = 'menu_' + menuItems[i];

		if (document.getElementById(linkId).className != 'current') {
			document.getElementById(linkId).style.color = 'white';
			document.getElementById(menuId).style.display = 'none';
		} else {
			document.getElementById(linkId).style.color = '#fdc488';
			document.getElementById(menuId).style.display = 'block';
		}

		document.getElementById(linkId).menuId = menuId;

		document.getElementById(linkId).onmouseover = function()
		{
			closeOnTimeout = false;
			menu_show(this.menuId,this.id);
		}
		document.getElementById(menuId).onmouseover = function()
		{
			closeOnTimeout = false;
		}

		document.getElementById(linkId).onmouseout = function()
		{
			closeOnTimeout = true;
			var date = new Date();
			globalTimeoutKey = date.getTime();
			setTimeout('menu_initialize('+globalTimeoutKey+')',2000);
		}
		document.getElementById(menuId).onmouseout = function()
		{
			closeOnTimeout = true;
			var date = new Date();
			globalTimeoutKey = date.getTime();
			setTimeout('menu_initialize('+globalTimeoutKey+')',2000);
		}

		document.getElementById(linkId).onclick = function()
		{
			this.blur();
			return false;
		}


	}

}

function resize_screen_too_small_error() {
	alert("Votre résolution d'écran n'est pas assez haute pour visualiser notre site correctement!\nVous allez être redirigé vers une version texte...\n");

	var uriParts = location.href.split('?');
	self.location = uriParts[0]+"?media=handheld";
}

function resize() {
	var resize = false;

	var availableWidth = screen.availWidth;
	var availableHeight = screen.availHeight;

	var currentWidth = 0, currentHeight = 0;
	if( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		currentWidth = window.innerWidth;
		currentHeight = window.innerHeight;
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		currentWidth = document.documentElement.clientWidth;
		currentHeight = document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
		currentWidth = document.body.clientWidth;
		currentHeight = document.body.clientHeight;
	}

	if ( currentWidth < 1020 ) {
		if  ( availableWidth >= 1020 ) {
			resize = true;
		} else {
			return resize_screen_too_small_error();
		}
	}
	if ( currentHeight < 600 ) {
		if ( availableHeight >= 600 ) {
			resize = true;
		} else {
			return resize_screen_too_small_error();
		}
	}

	if (resize) {
		window.moveTo(0,0);
		window.resizeTo(availableWidth, availableHeight);
	}
}

function parseLinks() {
	var links = document.getElementsByTagName('a');
	for(var i=0; i < links.length; i++)
	{
		var link = links[i];

		var classNames = link.className.split(' ');
		for(j=0; j < classNames.length; j++) {
			var className = classNames[j];
			if (className == '') continue;
			
			if (className == 'newWin')
			{
					link.onclick = function()
					{
						var myNewWin = window.open(this.href);
						return false;
					}
			}
		
			if (className == 'newWinResize')
			{
				link.onclick = function()
				{
					var myNewWin = window.open(this.href);
					myNewWin.moveTo(0,0);
					myNewWin.resizeTo(screen.availWidth, screen.availHeight);
					return false;
				}
			}
			
		}
		
		if ( link.href == location.href ) {
			link.className += " current";
		}
	}
}

function displayPage()
{
	var bodys = document.getElementsByTagName('body');
	var body = bodys[0];
	
	body.style.visibility = 'visible';
}

function initialize() {
	resize();
	menu_initialize(null);
	navigation_initialize();
	parseLinks();
	displayPage();
}

var closeOnTimeout = true;
var globalTimeoutKey = null;

var navItems = new Array('cours_tous','module_autocad','module_3dsmax','module_catia','module_adobecs','module_postproduction','module_eportfolio','theme_autocad','theme_3dsmax','personnalises');
//var navItems = new Array('module_autocad','module_3dsmax','module_adobecs','module_eportfolio','theme_autocad','theme_3dsmax','theme_adobecs2');
//var navItems = new Array('module_autocad','module_3dsmax','module_adobecs','module_eportfolio');
var menuItems = new Array('notre_institut','filieres_formation','financement','prestations_associees','travaux_eleves');

womAdd('initialize()');
womOn();