﻿/* Fonctions de remplacement des listes déroulantes.
	*
	* Créé par Aaron Gustafson - aaron@easy-designs.net
	* ©1999-2005 Easy! Designs, LLC. License Creative Commons.
	*
	*/

	
// SelectReplacement
// Génère une liste non ordonné en fonction de l'objet Select passé en paramètre et l'insère dans la page.
function selectReplacement(obj) {
	obj.className += ' replaced';
	var p = document.createElement('p');
	p.className = 'selectReplacement';
	var ul = document.createElement('ul');
	ul.className = 'selectReplacement';
	var opts = obj.options;
	for (var i=0; i<opts.length; i++) {
		var selectedOpt;
		if (opts[i].selected) {
			selectedOpt = i;
			break;
		} else {
			selectedOpt = 0;
		}
	}
	for (var i=0; i<opts.length; i++) {
	var li = document.createElement('li');
	var txt = document.createTextNode(opts[i].text);
	li.appendChild(txt);
	li.selIndex = opts[i].index;
	li.style.backgroundImage = opts[i].style.backgroundImage;
	li.selectID = obj.id;
	li.onclick = function() {
		selectMe(this);
	}
	if (i == selectedOpt) {
		li.className = 'selected';
		li.onclick = function() {
			this.parentNode.className += ' selectOpen';
			this.parentNode.parentNode.style.zIndex='2';
			this.onclick = function() {
				selectMe(this);
			}
		}
	}
	if (window.attachEvent) {
		li.onmouseover = function() {
		this.className += ' hover';
		}
		li.onmouseout = function() {
		this.className = 
			this.className.replace(new RegExp(" hover\\b"), '');
		}
	}
	ul.appendChild(li);
	}
	p.appendChild(ul);
	obj.parentNode.insertBefore(p,obj);
}

// SelectMe
// Permet la sélection sur la liste <ul>
function selectMe(obj) {
	var lis = obj.parentNode.getElementsByTagName('li');
	for (var i=0; i<lis.length; i++) {
		if (lis[i] != obj) {
			lis[i].className='';
			lis[i].onclick = function() {
			selectMe(this);
			}
		} else {
			setVal(obj.selectID, obj.selIndex);
			obj.className='selected';
			obj.parentNode.className = obj.parentNode.className.replace(new RegExp(" selectOpen\\b"), '');
			obj.parentNode.parentNode.style.zIndex='0';
			obj.onclick = function() {
				obj.parentNode.className += ' selectOpen';
				obj.parentNode.parentNode.style.zIndex='2';
				this.onclick = function() {
					selectMe(this);
				}
			}
		}
	}
}

// SetVal
// Transmet la sélection à la liste <select>
function setVal(objID, selIndex) {
	var obj = document.getElementById(objID);
	obj.selectedIndex = selIndex;
	
	if(obj.getAttribute('onchange')) {
		var action=obj.getAttribute('onchange');
		if(obj.dispatchEvent) {
			onChangeEvent = document.createEvent( "HTMLEvents" ); 
			onChangeEvent.initEvent("change", true, true);
			obj.dispatchEvent(onChangeEvent);
		} else {
			obj.fireEvent("onchange");
		}	
	}
}

// SetColorOnFocus
// Permute les couleurs de police et de fond au focus.
function setColorOnFocus(obj) {
	var ftcolor="#8D820C";
	var bgcolor="#F3EEBC";
	
	obj.onfocus=function() {
		obj.style.backgroundColor=ftcolor;
		obj.style.borderColor=bgcolor;
		obj.style.color=bgcolor;
	}
	
	obj.onblur=function() {
		obj.style.color=ftcolor;
		obj.style.borderColor=ftcolor;
		obj.style.backgroundColor=bgcolor;
	}
}

// SetForm
// Remplace les listes de tous les formulaires grace à la fonction SelectReplacement
function setForm() {
	var s = document.getElementsByTagName('select');
	for (var i=0; i<s.length; i++) {
		selectReplacement(s[i]);
	}
	
	var inputs = document.getElementsByTagName('input');
	for (var i=0; i<inputs.length; i++) {
		setColorOnFocus(inputs[i]);
	}
	var t = document.getElementsByTagName('textarea');
	for (var i=0; i<t.length; i++) {
		setColorOnFocus(t[i]);
	}
}

// Attacher Action
// Ajoute les actions au formulaire de newsletter.
function attacherAction() {

	if ($('email')) {
		mail = $('email');
		mail.onclick = function() {
			if(mail.value.indexOf('...')) {
				mail.value='';
			}
		}
	}
	
	if ($('desinscription')) {
		formulaire = $('desinscription');
		formulaire.onclick= function() {
			$('frm_news').action.value='desinscription';
			$('frm_news').submit();
		}
	}
	
}

function addEvent(func) {
	if (window.addEventListener)
		window.addEventListener("load", func, false);
	else if (window.attachEvent)
		window.attachEvent("onload", func);
}

// Appels de fonctions JS au chargement de la page.
addLoadHandler(function() {
	(document.all && !window.print) ? null : setForm();
	attacherAction();
	}
);