var TEMPS_AFFICHAGE_MENU = 750;

var menu_timer, menu_middle_timer, menu_right_timer;
var active_menu = 0;
var active_submenu = 0;
var active_menu_btn = null;

var xmlHttp, active_aff;

function getElementsByTagAndClassName(tagname, classname) {
	var res = new Array();
	var elem = document.getElementsByTagName(tagname);
	var classes, j, add_class;
	if (elem.length > 0) {
		for (var i=0 ; i<elem.length ; i++) {
			classes = elem[i].className.split(" ");
			add_class = 0;
			for (j=0 ; j<classes.length ; j++) {
				if (classes[j] == classname) {
					add_class = 1;
				}
			}
			if (add_class == 1) {
				res[res.length] = elem[i];
			}
		}
	}
	return res;
}

function addClass(node, classname) {
	if (node == null) { return; };
	var newclass = '';
	classes = node.className.split(' ');
	for (var i=0 ; i<classes.length ; i++) {
		if (classes[i] != classname) {
			if (i > 0) {
				newclass += ' ';
			}
			newclass += classes[i];
		}
	}
	newclass += ' ' + classname;
	node.className = newclass;
}
function removeClass(node, classname) {
	if (node == null) { return; };
	var newclass = '';
	classes = node.className.split(' ');
	for (var i=0 ; i<classes.length ; i++) {
		if (classes[i] != classname) {
			if (i > 0) {
				newclass += ' ';
			}
			newclass += classes[i];
		}
	}
	node.className = newclass;
}
function replaceClass(node, oldclass, newclass) {
	if (node == null) { return; };
	var classname = '';
	classes = node.className.split(' ');
	for (var i=0 ; i<classes.length ; i++) {
		if (i > 0) { classname += ' '; }
		if (classes[i] == oldclass) {
			classname += newclass;
		} else {
			classname += classes[i];
		}
	}
	node.className = classname;
}

function adjust_clips() {
	var elem = getElementsByTagAndClassName('DIV', 'clip');
	var maxheight = 0;
	var currentheight;
	if (elem.length > 0) {
		for (var i=0 ; i<elem.length ; i++) {
			currentheight = elem[i].offsetHeight;
			if (currentheight > maxheight) {
				maxheight = currentheight + 'px';
			}
		}
		for (i=0 ; i<elem.length ; i++) {
			elem[i].style.height = maxheight;
		}
	}
}

function adjust_content_height() {
	var content_left = getElementsByTagAndClassName('DIV', 'content_left');
	var content_right = getElementsByTagAndClassName('DIV', 'content_right');
	if (content_left[0].offsetHeight > content_right[0].offsetHeight) {
		content_right[0].style.height = content_left[0].offsetHeight + "px";
	} else {
		content_left[0].style.height = content_right[0].offsetHeight + "px";
	}
}

function insub(menu_nb) {
	window.clearTimeout(menu_timer);
	if (menu_nb > 0) {
		var elem;
		var aff_back = 0;

		clear_menu();

		elem = document.getElementById('sub'+menu_nb).firstChild;
		while (elem != null) {
			if (elem.className == 'btn_txt') {
				addClass(elem, 'btn_txt_hover');
			} else if (elem.className == 'btn_back') {
				addClass(elem, 'btn_back_hover');
			}
			elem = elem.nextSibling;
		}
		active_menu = menu_nb;

		elem = getElementsByTagAndClassName('A', 'sub'+menu_nb);
		for (var i=0 ; i<elem.length ; i++) {
			elem[i].style.display = 'block';
			aff_back = 1;
		}
		if (aff_back == 1) {
			document.getElementById('sub_left').style.display = 'block';
		}
	}
}

function inssub(menu_nb) {
//	insub(0);
	window.clearTimeout(menu_timer);
	window.clearTimeout(menu_middle_timer);
	if (menu_nb > 0) {
		clear_menu_middle();

		var menu_nb_str;
		if (menu_nb < 10) {
			menu_nb_str = '0' + menu_nb;
		} else {
			menu_nb_str = '' + menu_nb;
		}
		var id_menu = 's' + active_menu + 'sub' + menu_nb_str;

		active_submenu = menu_nb;

		elem = document.getElementById(id_menu);
		replaceClass(elem, 'hasmore', 'hasmore_hover');
		addClass(elem, 'subbtn_hover');

		elem = getElementsByTagAndClassName('A', id_menu);
		for (var i=0 ; i<elem.length ; i++) {
			elem[i].style.display = 'block';
			aff_back = 1;
		}
		if (aff_back == 1) {
			document.getElementById('sub_middle').style.display = 'block';
		}
	}
}

function insssub(menu_nb) {
//	insub(0);
	window.clearTimeout(menu_timer);
	window.clearTimeout(menu_middle_timer);
	window.clearTimeout(menu_right_timer);
	if (menu_nb > 0) {
		clear_menu_right();

		var menu_nb_str, submenu_nb_str;
		if (menu_nb < 10) {
			menu_nb_str = '0' + menu_nb;
		} else {
			menu_nb_str = '' + menu_nb;
		}
		if (active_submenu < 10) {
			submenu_nb_str = '0' + active_submenu;
		} else {
			submenu_nb_str = '' + active_submenu;
		}
		var id_menu = 's' + active_menu + 'm' + submenu_nb_str + 'sub' + menu_nb_str;

		elem = document.getElementById(id_menu);
		replaceClass(elem, 'hasmore', 'hasmore_hover');
		addClass(elem, 'subbtn_hover');

		elem = getElementsByTagAndClassName('A', id_menu);
		for (var i=0 ; i<elem.length ; i++) {
			elem[i].style.display = 'block';
			aff_back = 1;
		}
		if (aff_back == 1) {
			document.getElementById('sub_right').style.display = 'block';
		}
	}
}

function outsub() {
	window.clearTimeout(menu_timer);
	menu_timer = window.setTimeout('clear_menu()', TEMPS_AFFICHAGE_MENU);
}
function outssub() {
	window.clearTimeout(menu_middle_timer);
	menu_middle_timer = window.setTimeout('clear_menu_middle()', TEMPS_AFFICHAGE_MENU);
	outsub();
}
function outsssub() {
	window.clearTimeout(menu_right_timer);
	menu_right_timer = window.setTimeout('clear_menu_right()', TEMPS_AFFICHAGE_MENU);
	outssub();
}

function clear_menu() {
	clear_menu_middle();
	window.clearTimeout(menu_timer);
	active_menu = 0;
	var elem = getElementsByTagAndClassName('A', 'subbtn');
	for (var i=0 ; i<elem.length ; i++) {
		elem[i].style.display = 'none';
	}
	elem = getElementsByTagAndClassName('DIV', 'submenu');
	for (var i=0 ; i<elem.length ; i++) {
		elem[i].style.display = 'none';
	}
	elem = getElementsByTagAndClassName('DIV', 'btn_txt');
	for (var i=0 ; i<elem.length ; i++) {
		removeClass(elem[i],'btn_txt_hover');
	}
	elem = getElementsByTagAndClassName('DIV', 'btn_back');
	for (var i=0 ; i<elem.length ; i++) {
		removeClass(elem[i],'btn_back_hover');
	}

	elem = document.getElementById('aff_left');
	elem.style.display = 'none';
	replaceClass(active_menu_btn, 'hasmore_hover', 'hasmore');
	removeClass(active_menu_btn, 'subbtn_hover');
}

function clear_menu_middle() {
	window.clearTimeout(menu_middle_timer);
	active_submenu = 0;
	var elem = getElementsByTagAndClassName('A', 'submiddle');
	for (var i=0 ; i<elem.length ; i++) {
		elem[i].style.display = 'none';
	}
	elem = document.getElementById('sub_middle');
	elem.style.display = 'none';

	elem = getElementsByTagAndClassName('A', 'subleft');
	for (var i=0 ; i<elem.length ; i++) {
		replaceClass(elem[i], 'hasmore_hover', 'hasmore');
		removeClass(elem[i],'subbtn_hover');
	}

	elem = document.getElementById('aff_middle');
	elem.style.display = 'none';
	replaceClass(active_menu_btn, 'hasmore_hover', 'hasmore');
	removeClass(active_menu_btn, 'subbtn_hover');
}

function clear_menu_right() {
	window.clearTimeout(menu_right_timer);
	var elem = getElementsByTagAndClassName('A', 'subright');
	for (var i=0 ; i<elem.length ; i++) {
		elem[i].style.display = 'none';
	}
	elem = document.getElementById('sub_right');
	elem.style.display = 'none';

	elem = getElementsByTagAndClassName('A', 'submiddle');
	for (var i=0 ; i<elem.length ; i++) {
		replaceClass(elem[i], 'hasmore_hover', 'hasmore');
		removeClass(elem[i],'subbtn_hover');
	}

	elem = document.getElementById('aff_right');
	elem.style.display = 'none';
	replaceClass(active_menu_btn, 'hasmore_hover', 'hasmore');
	removeClass(active_menu_btn, 'subbtn_hover');
}

function show_aff(btn, aff_id, url) {
	replaceClass(active_menu_btn, 'hasmore_hover', 'hasmore');
	removeClass(active_menu_btn, 'subbtn_hover');
	active_menu_btn = btn;
	replaceClass(active_menu_btn, 'hasmore', 'hasmore_hover');
	addClass(active_menu_btn, 'subbtn_hover');

	active_aff = aff_id;
	document.getElementById(active_aff).innerHTML='';
	document.getElementById(active_aff).style.display = 'block';

	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null) {
		document.getElementById(active_aff).innerHTML='<div class="menu_aff_loading">Ce navigateur ne supporte pas AJAX.</div>';
		return;
	} 

	xmlHttp.onreadystatechange=stateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function stateChanged() { 
	if (xmlHttp.readyState==2) { 
		document.getElementById(active_aff).innerHTML='<div class="menu_aff_loading">Chargement ...</div>';
	} else if (xmlHttp.readyState==4) { 
		document.getElementById(active_aff).innerHTML=xmlHttp.responseText;
	}
}

function GetXmlHttpObject() {
	var xmlHttp=null;
	try {
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	} catch (e) {
		// Internet Explorer
		try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}

function addParagrapheEdition() {
	var $divpar = document.getElementById('paragraphes');
	var $div1 = document.createElement("div");
	var $div2 = document.createElement("div");
	$div1.innerHTML = '<a onclick="delParagrapheEdition(this);">[X]</a> Paragraphe, titre : <INPUT type="text" name="pe_titre[]" size="40" maxlength="80"/>';
	$div2.innerHTML = 'Paragraphe, texte : <textarea name="pe_txt[]" cols="40" rows="4"></textarea>';
	$divpar.appendChild($div1);
	$divpar.appendChild($div2);
}

function delParagrapheEdition($elem) {
	if (confirm('Voulez-vous effacer ce paragraphe ?')) {
		var $div1 = $elem.parentNode;
		var $div2 = $div1.nextSibling;
		while ($div2.tagName != 'DIV') {
			$div2 = $div2.nextSibling;
		}
		$div1.parentNode.removeChild($div1);
		$div2.parentNode.removeChild($div2);
	}
}

function addCaracteristiqueEdition() {
	var $divpar = document.getElementById('caracteristiques');
	var $div1 = document.createElement("div");
	var $div2 = document.createElement("div");
	var $div3 = document.createElement("div");
	$div1.innerHTML = '<a onclick="delCaracteristiqueEdition(this);">[X]</a> Caractéristique, nom : <INPUT type="text" name="ce_nom[]" size="40" maxlength="80"/>';
	$div2.innerHTML = 'Figure dans l\'apercu : <input type="checkbox" value="on" onclick="apcheck(this);"><INPUT TYPE="hidden" NAME="ce_apercu[]" VALUE="-">';
	$div3.innerHTML = 'Caractéristique, valeur : <textarea name="ce_valeur[]" cols="40" rows="1"></textarea>';
	$divpar.appendChild($div1);
	$divpar.appendChild($div2);
	$divpar.appendChild($div3);
}

function apcheck(elem) {
	var hidden = elem.nextSibling;
	if (hidden.value == '-') {
		hidden.value = '-CHECKED';
	} else {
		hidden.value = '-';
	}
}

function delCaracteristiqueEdition($elem) {
	if (confirm('Voulez-vous effacer cet element ?')) {
		var $div1 = $elem.parentNode;
		var $div2 = $div1.nextSibling;
		while ($div2.tagName != 'DIV') {
			$div2 = $div2.nextSibling;
		}
		var $div3 = $div2.nextSibling;
		while ($div3.tagName != 'DIV') {
			$div3 = $div3.nextSibling;
		}
		$div1.parentNode.removeChild($div1);
		$div2.parentNode.removeChild($div2);
		$div3.parentNode.removeChild($div3);
	}
}

function addMaterielEdition() {
	var $divpar = document.getElementById('caracteristiques');
	var $div1 = document.createElement("div");
	var $div2 = document.createElement("div");
	var $div3 = document.createElement("div");
	var $div4 = document.createElement("div");
	$div1.innerHTML = '<a onclick="delMaterielEdition(this);">[X]</a> Materiel, Type : <INPUT type="text" name="ce_nom[]" size="40" maxlength="80"/>';
	$div2.innerHTML = 'Figure dans l\'apercu : <input type="checkbox" value="on" onclick="apcheck(this);"><INPUT TYPE="hidden" NAME="ce_apercu[]" VALUE="-">';
	$div3.innerHTML = 'Materiel, nom : <textarea name="ce_valeur[]" cols="40" rows="1"></textarea>';
	$div4.innerHTML = 'Adresse materiel : <INPUT type="text" name="ce_url[]" size="40" maxlength="100"/>';
	$divpar.appendChild($div1);
	$divpar.appendChild($div2);
	$divpar.appendChild($div3);
	$divpar.appendChild($div4);
}

function delMaterielEdition($elem) {
	if (confirm('Voulez-vous effacer cet element ?')) {
		var $div1 = $elem.parentNode;
		var $div2 = $div1.nextSibling;
		while ($div2.tagName != 'DIV') {
			$div2 = $div2.nextSibling;
		}
		var $div3 = $div2.nextSibling;
		while ($div3.tagName != 'DIV') {
			$div3 = $div3.nextSibling;
		}
		var $div4 = $div3.nextSibling;
		while ($div4.tagName != 'DIV') {
			$div4 = $div4.nextSibling;
		}
		$div1.parentNode.removeChild($div1);
		$div2.parentNode.removeChild($div2);
		$div3.parentNode.removeChild($div3);
		$div4.parentNode.removeChild($div4);
	}
}

function addAccrochePhoto() {
	var $divpar = document.getElementById('photos_accroche_browse');
	var $div1 = document.createElement("div");
	$div1.innerHTML = '<a onclick="delAccrochePhoto(this);">[X]</a> <input type="file" name="paccroche_photo[]" size="40"/>';
	$divpar.appendChild($div1);
}

function delAccrochePhoto($elem) {
	if (confirm('Voulez-vous effacer cette photo ?')) {
		var $div1 = $elem.parentNode;
		$div1.parentNode.removeChild($div1);
	}
}

function addGaleriePhoto() {
	var $divpar = document.getElementById('photos_galerie_browse');
	var $div1 = document.createElement("div");
	$div1.innerHTML = '<a onclick="delGaleriePhoto(this);">[X]</a> <input type="file" name="pgalerie_photo[]" size="40" onChange="photo_change(this);"/><br/><br/>';
	$divpar.appendChild($div1);
}

function photo_change(elem) {
	var input_thumb = elem.nextSibling;
	while (input_thumb.tagName != 'INPUT') {
		input_thumb = input_thumb.nextSibling;
	}
	var hidden = input_thumb.nextSibling;
	if ((elem.value == '') || (input_thumb.value == '')) {
		hidden.value = '-';
	} else {
		hidden.value = '+' + elem.value;
	}
}
function photo_thumb_change(elem) {
	var input = elem.previousSibling;
	while (input.tagName != 'INPUT') {
		input = input.previousSibling;
	}
	var hidden = elem.nextSibling;
	if ((elem.value == '') || (input.value == '')) {
		hidden.value = '-';
	} else {
		hidden.value = elem.value;
	}
}

function delGaleriePhoto($elem) {
	if (confirm('Voulez-vous effacer cette photo ?')) {
		var $div1 = $elem.parentNode;
		$div1.parentNode.removeChild($div1);
	}
}

function addTelechargement() {
	var $divpar = document.getElementById('telechargements');
	var $div1 = document.createElement("div");
	$div1.innerHTML = '<a onclick="delTelechargement(this);">[X]</a> <input type="file" name="tel_file[]" size="40"/><br/>Intitulé : <INPUT type="text" size="40" maxlength="100" onChange="telChangeIntit(this);"/><input TYPE="hidden" NAME="tel_intitule[]" VALUE="-">';
	$divpar.appendChild($div1);
}

function telChangeIntit(elem) {
	var hidden = elem.nextSibling;
	while (hidden.tagName != 'INPUT') {
		hidden = hidden.nextSibling;
	}
	if (elem.value == '') {
			hidden.value = '-';
	} else {
		hidden.value = elem.value;
	}
}

function delTelechargement($elem) {
	if (confirm('Voulez-vous effacer ce téléchargement ?')) {
		var $div1 = $elem.parentNode;
		$div1.parentNode.removeChild($div1);
	}
}

