Event.observe(window,"load",function(){
	// Navigation
	var i = 0;
	$$("#navigation a, #navigation input").each(function(o){
		o.id = "navLink"+i;
		o.onfocus = mainNavHover;
		o.onblur = mainNavOut;
		i++;
	});
	var i = 0;
	$$("#navigation > ul > li").each(function(o){
		var ul = o.getElementsByTagName("ul")[0];
		o.onmousemove = function(){
			$(o).addClassName("hover");
			if(ul){
				msc_rStart(ul);
			}
		};
		o.onmouseout = function(){ 
			$(o).removeClassName("hover");
			if(ul){
				msc_rEnd(ul);
			}
		};
		i++;
	});

	var hovertimer = null;
	if(navigator.userAgent.indexOf("MSIE 6") != -1){
		$$(".agenda .list > ul > li").each(function(o){
			o.onmouseover = function(){
				clearTimeout(hovertimer);
				$(o).addClassName("hover");
			}
			o.onmouseout = function(){
				clearTimeout(hovertimer);
				hovertimer = setTimeout(function(){
					$(o).removeClassName("hover");
				},100);
			}
		});
	}
	// Fields
	if($('otherdegree') && $('otherdegreeopener')){
		var filled = isFilled($('otherdegree'))
		if(!filled){
			$('otherdegree').hide();
			$('otherdegreeopener').show();
		}
	}
	if($('otherlanguages') && $('otherlanguagesopener')){
		var filled = isFilled($('otherlanguages'))
		if(!filled){
			$('otherlanguages').hide();
			$('otherlanguagesopener').show();

		}
	}
	if($('otherexperience') && $('otherexperienceopener')){
		var filled = isFilled($('otherexperience'))
		if(!filled){
			$('otherexperience').hide();
			$('otherexperienceopener').show();
		}
	}
	
	// IE hover
	if(navigator.userAgent.indexOf("MSIE 6") != -1){
		$$(".inputButton").each(function(o){
			o.onmouseover = function(){ this.addClassName("inputButtonHover"); };
			o.onmouseout = function(){ this.removeClassName("inputButtonHover"); };
		});
	}
	
	// uiFieldcleaner
	$$(".fieldcleaner").each(function(o){
		document.fields.push(o);
		// Style
		Element.addClassName(o,"tobefilled");
		// Default
		document.fieldtocheck = o;
		checkField();
		o.timer = null;
		// Event
		o.label = Element.previous(o);
		// Default state
		document.fieldtocheck = o;
		checkField();
		o.onchange = function(){
			checkField();
		}
		o.onfocus = function(){
			clearInterval(this.timer);
			this.timer = setInterval(checkField,50);
			Element.addClassName(this.label,"filling");
		}
		o.onblur = function(){
			clearInterval(this.timer);
			Element.removeClassName(this.label,"filling");
		}
	});
	
	$$("object, select").each(function(o){
		o.style.visibility = "visible";
	});

    // Length limiter on textarea with a declared ID
    $$(".fieldlimiter").each(function (o) {
        setTimeout(function () { setFieldLimiter(o) }, 50);
    });
});

function setFieldLimiter(o){
	// Get latest declared CSS class and strip the first five
	o._length = o.className.split(" ").pop().substr(5);
	// Create counter
	o._counter = document.createElement("div");
	o.parentNode.insertBefore(o._counter,o.nextSibling);
	// Init
	fieldlimiter(o);
	// Event
	Event.observe(o,"keyup",function(){
		fieldlimiter(this);
	});
}

function isFilled(zone){
	var filled = false;
	var inputs = Element.select(zone,"select, input[type='text']");
	inputs.each(function(o){
		var value = $F(o).toString();
		if(value != "0" && value != "" && value != "-1"){
			filled = true;
		}
	});
	return filled;
}

function fieldlimiter(field){
	field._counter.innerHTML = field.value.length+"/"+field._length;
	// Change class
	field._counter.className = (field.value.length > field._length)? "counter toolong" : "counter";
}

/***** Navigation *****/
var activeNavigation = null;
var navigationTimer = null;
function mainNavHover(){
	clearTimeout(navigationTimer);
	var target = (Element.hasClassName(this,"main"))? this.parentNode : this.parentNode.parentNode.parentNode; 
	if(!Element.hasClassName(target,"hover")){
		if(activeNavigation != this && activeNavigation != null){
			var activetarget = (Element.hasClassName(activeNavigation,"main"))? activeNavigation.parentNode : activeNavigation.parentNode.parentNode.parentNode;
			Element.removeClassName(activetarget,"hover");
		}
		Element.addClassName(target,"hover");
		if(activeNavigation != null){
			var current = parseInt(activeNavigation.id.substring(7));
			var newitem = parseInt(this.id.substring(7));
			var childs = target.getElementsByTagName("ul")[0];
			if(childs && current > newitem){
				var links = childs.getElementsByTagName("a");
				links[links.length-1].focus();
			}
		}
		activeNavigation = this;
	}
}
function mainNavOut(){
	navigationTimer = setTimeout("mainNavDelay();",100);
}
function mainNavDelay(){
	if(activeNavigation != null){
		var activetarget = (Element.hasClassName(activeNavigation,"main"))? activeNavigation.parentNode : activeNavigation.parentNode.parentNode.parentNode;
		Element.removeClassName(activetarget,"hover");
	}
}

/***** Layer *****/
function openLayer(url){
	// Overlay
	var overlay = document.createElement("div");
	overlay.id = "overlay";
	overlay.className = "overlay";
	overlay.style.opacity = 0.9;
	overlay.style.filter = "alpha(opacity=90)";
	document.body.appendChild(overlay);
	
	// Layer
	var layer = document.createElement("div");
	layer.id = "layer";
	layer.className = "layer";
	document.body.appendChild(layer);
		
		// Close
		layer.closer = document.createElement("a");
		layer.closer.href = "#0";
		layer.closer.className = "closer";
		layer.closer.innerHTML = "Fermer";
		layer.closer.onclick = function(){
			var overlay = document.getElementById("overlay");
			overlay.parentNode.removeChild(overlay);
			var layer = document.getElementById("layer");
			layer.innerHTML = "";
			layer.parentNode.removeChild(layer);
		}
		layer.appendChild(layer.closer);
		// Clear
		var clear = document.createElement("div");
		clear.className = "clear";
		layer.appendChild(clear);
		
		// iFrame
		var iframe = document.createElement("div");
		layer.appendChild(iframe);
		iframe.innerHTML = "<iframe id='iframelayer' frameborder='0' scrolling='no' src='"+url+"' allowtransparency='true'></iframe>";
	
}
function sizeiFrameLayer(width,height){
	var iframe = document.getElementById("iframelayer");
	iframe.setAttribute("width",width);
	iframe.setAttribute("height",height);
	positionLayer(iframe.parentNode.parentNode.id,width);
}
function positionLayer(id,width){
	var layer = document.getElementById(id);
	layer.style.visibility = "visible";
	if(width){
		layer.style.width = width+"px";
	} else if(layercontainer){
		var layercontainer = document.getElementById("layercontainer");
		layer.style.width = layercontainer.offsetWidth+"px";
	}
	if(navigator.userAgent.indexOf("MSIE 6") != -1 && layer.parentNode.tagName.toUpperCase() != "BODY"){
		layer.style.marginTop = -(Math.round(layer.offsetHeight/2)+Element.cumulativeOffset(layer.offsetParent)[1])+"px";
	} else {
		layer.style.marginTop = -(Math.round(layer.offsetHeight/2))+"px";
	}
	layer.style.marginLeft = -(Math.round(layer.offsetWidth/2))+"px";
	layer.closer.focus();
}
function showLayer(id){
	
	// Hide objects & selects
	$$("object, select").each(function(o){
		o.style.visibility = "hidden";
	});

	// Layer
	var layer = document.getElementById(id);
	
	// Overlay
	var overlay = document.createElement("div");
	overlay.id = "overlay";
	overlay.className = "overlay";
	overlay.style.opacity = 0.9;
	overlay.style.filter = "alpha(opacity=90)";
	layer.parentNode.insertBefore(overlay,layer);
	if(navigator.userAgent.indexOf("MSIE 6") != -1){
		layer.style.marginTop = -(Element.cumulativeOffset(overlay.offsetParent)[1])+"px";
		overlay.style.marginTop = -(Element.cumulativeOffset(overlay.offsetParent)[1])+"px";
		overlay.style.marginLeft = -(Element.cumulativeOffset(overlay.offsetParent)[0])+"px";
	}
	
	// Close
	if(!layer.closer){
		layer.closer = document.createElement("a");
		layer.closer.className = "closer";
		layer.closer.href = "#0";
		layer.closer.innerHTML = "Fermer la fen&ecirc;tre";
		layer.closer.layer = layer;
		layer.closer.overlay = overlay;
		layer.closer.onclick = function(){
			var overlay = document.getElementById("overlay");
			overlay.parentNode.removeChild(overlay);
			this.layer.style.visibility = "hidden";
			document.getElementById("navigation").style.zIndex = "10";
			// Show objects & selects
			$$("object, select").each(function(o){
				o.style.visibility = "visible";
			});
		}
		layer.insertBefore(layer.closer,layer.firstChild);
	}
	
	// Positionning
	document.getElementById("navigation").style.zIndex = "4";
	positionLayer(id);
}

// Cookie
function cre_cook0(nom, contenu) {
	document.cookie = nom + "=" + escape(contenu)
}

function cre_cook(nom, contenu, jours) {
	var expireDate = new Date();
	expireDate.setTime(expireDate.getTime() + jours * 24 * 3600 * 1000);
	document.cookie = nom + "=" + escape(contenu) + ";path=/;expires=" + expireDate.toGMTString();
}

function lit_cook(nom) {
	var deb, fin
	deb = document.cookie.indexOf(nom + "=")
	if (deb >= 0) {
		deb += nom.length + 1
		fin = document.cookie.indexOf(";", deb)
		if (fin < 0) fin = document.cookie.length
		return unescape(document.cookie.substring(deb, fin))
	}
	return ""
}

function biggerTextFct() {
	// get current size if has
	var current = (lit_cook("fontSize") != "")? lit_cook("fontSize") : 0;
	var next = (current < 4)? parseInt(current)+1 : 4;
	Element.removeClassName(document.body,"fontSize"+current);
	Element.addClassName(document.body,"fontSize"+next);
	cre_cook("fontSize",next,31);
}
function smallerTextFct() {
	// get current size if has
	var current = (lit_cook("fontSize") != "")? lit_cook("fontSize") : 0;
	var next = (current > 0)? parseInt(current)-1 : 0;
	Element.removeClassName(document.body,"fontSize"+current);
	Element.addClassName(document.body,"fontSize"+next);
	cre_cook("fontSize",next,31);
}

document.fields = new Array();
function checkField(){
	for(var i = 0; i < document.fields.length; i++){
		if(document.fields[i].value == ""){
			Element.removeClassName(document.fields[i],"filled");
		} else {
			Element.addClassName(document.fields[i],"filled");
		}
	}
}


/***** 00 - MSC - Rescue *****/
function msc_rStart(){
	if(navigator.userAgent.indexOf("MSIE 6") != -1){
		var tobe = arguments[0];
		clearTimeout(tobe.timeout);
		var parent = tobe.parentNode;
		if(!parent.rescued){
			var frame = document.createElement('iframe');
			var elem = parent.insertBefore(frame,arguments[0]);
			if(elem){
				elem.className = 'rescue';
				elem.style.position = 'absolute';
				elem.style.left = arguments[0].offsetLeft+'px';
				elem.style.top = arguments[0].offsetTop+'px';
				elem.style.width = arguments[0].offsetWidth+'px';
				elem.style.height = arguments[0].offsetHeight+'px';
				elem.style.filter = 'alpha(opacity=0);';
			}
			parent.rescued = elem;
		}
	}
}
function msc_rEnd(){
	if(navigator.userAgent.indexOf("MSIE 6") != -1){
		var tobe = arguments[0];
		clearTimeout(tobe.timeout);
		tobe.timeout = setTimeout(function(){
			var parent = tobe.parentNode;
			var frame = parent.rescued;
			var elem = parent.removeChild(frame);
			parent.rescued = null;
		},100);
	}
}
