/* addRemoveEvent
********************/
function addRemoveEvent(add, el, evt, func){
	if(add){
		if(el.addEventListener) el.addEventListener(evt, func, false);
		else if (el.attachEvent) el.attachEvent("on" + evt, func);
	}else{
		if(el.removeEventListener) el.removeEventListener(evt, func, false);
		else if (el.detachEvent) el.detachEvent("on" + evt, func);
	}
}

/* swf object
********************/
function injectSO(){
	try{
		var so_intro = new SWFObject("swf-xml/intro.swf", "so_anim_intro", "990", "528", "8", "#000000");
		so_intro.write("anim_intro");
	} catch(err) {}
	try{
		var so_illust = new SWFObject("swf-xml/anim-illustrateur.swf", "so_anim_illust", "990", "205", "8", "#000000");
		so_illust.addParam("wmode", "opaque");
		so_illust.write("anim_illust");
	} catch(err) {}
	try{
		var so_peint = new SWFObject("swf-xml/anim-peintre.swf", "so_anim_peint", "990", "205", "8", "#000000");
		so_peint.addParam("wmode", "opaque");
		so_peint.write("anim_peint");
	} catch(err) {}
	try{
		var so_step_pal = new SWFObject("swf-xml/step_palette.swf", "so_step_palette", "425", "399", "8", "#000000");
		so_step_pal.addParam("wmode", "opaque");
		so_step_pal.write("step_palette");
	} catch(err) {}
	try{
		var so_step_pal2 = new SWFObject("swf-xml/step_palette2.swf", "so_step_palette2", "425", "288", "8", "#000000");
		so_step_pal2.addParam("wmode", "opaque");
		so_step_pal2.write("step_palette2");
	} catch(err) {}
	try{
		var so_vid_nuit = new SWFObject("swf-xml/nuit_pas_a_pas.swf", "so_video_peintre_nuit", "320", "285", "8", "#000000");
		so_vid_nuit.addParam("wmode", "opaque");
		so_vid_nuit.write("video_peintre_nuit");
	} catch(err) {}
	try{
		var so_vid_presse = new SWFObject("swf-xml/plml_presse_01.swf", "so_video_presse", "320", "285", "8", "#000000");
		so_vid_presse.addParam("wmode", "opaque");
		so_vid_presse.write("video_presse01");
	} catch(err) {}
	try{
		var so_vid_presse = new SWFObject("swf-xml/plml_presse_02.swf", "so_video_presse", "320", "285", "8", "#000000");
		so_vid_presse.addParam("wmode", "opaque");
		so_vid_presse.write("video_presse02");
	} catch(err) {}
}

/* anchors
********************/
function initAnchors(){
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors.length; ++i){
		if (!anchors[i].getAttribute("href") || !anchors[i].getAttribute("rel")) continue;
		var relation = String(anchors[i].getAttribute("rel"));
		if (relation.match("popup")) anchors[i].onclick=popup;
		if (relation == "external") anchors[i].onclick=externalLink;
	}
}
function popup(){
	var relation = String(this.getAttribute("rel"));
	if(relation == "popup"){
		window.open(this, "pop", "scrollbars=no");
	}else{
		var arguments = relation.substring(6,relation.length-1).split(";");
		window.open(this,arguments[0],'toolbar=0,location=0,directories=0,status=0,menubar=0,' + arguments[1] + ',resizable=no,width=' + arguments[2] + ',height=' + arguments[3] + ',top=' + arguments[4] + ',left=' + arguments[5]);
	}
	return false;
}
function externalLink(){
	window.open(this);
	return false;
}

/* subMenu
********************/
var shiftMenus = 111;
var openedMenus = new Array();

function showHideSubMenu(e){
	var evt = e || window.event;
	var evtTarget = evt.target || evt.srcElement;
	while (evtTarget.nodeName != "LI"){
		if (evtTarget.nodeName == "HTML") break;
		evtTarget = evtTarget.parentNode;
	}
	var parentLink = evtTarget.getElementsByTagName("a")[0];
	var submenu = evtTarget.getElementsByTagName("ul")[0];
	if(evt.type == "mouseover" && submenu){
		parentLink.className = "trigered";
		submenu.style.left = shiftMenus + "px";
		openedMenus.push([submenu, parentLink]);
	}else if(evt.type == "mouseout"){
		var relatedNode = evt.relatedTarget || evt.toElement;
		while (relatedNode.nodeName != "UL"){
			if (relatedNode.nodeName == "HTML") break;
			relatedNode = relatedNode.parentNode;
		}
		for(var i=openedMenus.length-1; i>=0; --i){
			if(relatedNode.nodeName == "UL" && openedMenus[i][0] == relatedNode) break;
			openedMenus[i][0].style.left = "-6000px";
			openedMenus[i][1].className = "";
			openedMenus.pop();
		}
	}
}

function initSubMenu(){
	var menu = document.getElementById("menu");
	if(!menu) return;
	var menuItems = menu.getElementsByTagName("li");
	for(var i=0; i<menuItems.length; ++i){
		var submenu = menuItems[i].getElementsByTagName("ul")[0];
		if(submenu){
			submenu.style.position = "absolute";
			submenu.style.top = "0";
			submenu.style.left = "-6000px";
		}
	}
	addRemoveEvent(true, menu, "mouseover", showHideSubMenu);
	addRemoveEvent(true, menu, "mouseout", showHideSubMenu);
}

/* swapPicActu
********************/
function swapPicActu(){
	this.swapReferer.getElementsByTagName("img")[0].src = this;
}

function initSwapPicActu(){
	var swapZones = document.getElementsByTagName("div");
	for (var i=0; i<swapZones.length; ++i){
		if (swapZones[i].className != "img_swap") continue;
		var swappers = swapZones[i].getElementsByTagName("a");
		for (var j=0; j<swappers.length; ++j){
			swappers[j].swapReferer = swapZones[i];
			swappers[j].onmouseover = swapPicActu;
			swappers[j].onclick = function(){ return false; };
		}
	}
}

/* init
********************/
addRemoveEvent(true, window, "load", injectSO);
addRemoveEvent(true, window, "load", initAnchors);
addRemoveEvent(true, window, "load", initSubMenu);
//addRemoveEvent(true, window, "load", initSwapPicActu);
