/**
 * Permet d'ajouter un event handler (ie.compat)
 * @param (object) 		elem - l'objet
 * @param (string) 		type - type d'évenement sans le prefixe on
 * @param (function) 		callback - Fonction appelée lorsque l'évèment est activé
 */
function addEvent (elem, type, callBack)
{
	var elem = (typeof elem == 'string') ? document.getElementById(elem) : elem;
	if (elem.addEventListener)
		elem.addEventListener(type, callBack, false);
	else if (elem.attachEvent)
		elem.attachEvent('on'+type, callBack);
}

/**
 * Permet d'ajouter un event handler (ie.compat)
 * @param (object) 		elem - l'objet
 * @param (string) 		type - type d'évenement sans le prefixe on
 * @param (function) 		callback - Fonction appelée lorsque l'évenement est activé
 */
function rmEvent (elem, type, callBack)
{
	if (elem.removeEventListener)
		elem.removeEventListener(type, callBack, false);
	else if (elem.detachEvent)
		elem.detachEvent('on'+type, callBack);
}

function getElementsByClassName (elem, theTag, theClass)
{
	var i, j, k;
	var okElems = new Array();
	var elems 	= elem.getElementsByTagName(theTag);
	
	for (i = 0, j = 0; i < elems.length; i++)
	{
		if (elems.item(i).className != "")
		{
			var classes = elems.item(i).className.split(' ');
			for (k = 0; k < classes.length; k++)
				if (classes[k] == theClass)
					okElems[j++] = elems.item(i); // stock l'objet
		}
	}
			
	return okElems; // on retourne le tableau d'objets
}

function removeClass (elem, theClass)
{
	if (typeof elem == "string") elem = document.getElementById(elem);
	if (elem == null) return null;
	
	var newClasses = new Array();
	var oldClasses = elem.className.split(' ');
	
	for (var i = 0; i < oldClasses.length; i++)
		if (oldClasses[i] != theClass)
			newClasses.push(oldClasses[i]);
			
	elem.className = newClasses.join(' ');
}

function addClass (elem, theClass)
{
	if (typeof elem == "string") elem = document.getElementById(elem);
	if (elem == null) return null;
	
	var classes = elem.className.split(' ');
	
	if (hasClass(elem, theClass))
		return true;
			
	classes.push(theClass);
	elem.className = classes.join(' ');
}

function hasClass (elem, theClass)
{
	if (typeof elem == "string") elem = document.getElementById(elem);
	if (elem == null) return null;
	if (elem.className == "") return false;
	
	var classes = elem.className.split(' ');
	
	for (var i = 0; i < classes.length; i++)
		if (classes[i] == theClass)
			return true;
			
	return false;
}

function absPosY (elem)
{
	y = elem.offsetTop || 0;
	while (elem = elem.offsetParent)
		y += elem.offsetTop;
		
	return y;
}

function absPosX (elem)
{
	regex = new RegExp('.*MSIE 7.*','');
	if (navigator.appName == 'Microsoft Internet Explorer' && regex.test(navigator.appVersion))
	{
		regex 	= new RegExp("(^|\\s)s2(\\s|$)");
		if (elem.parentNode.className == '' || regex.test(elem.parentNode.className))
			x = - elem.parentNode.previousSibling.offsetWidth - elem.parentNode.previousSibling.previousSibling.offsetWidth - 20;
		else
			x = 0;
		x += elem.offsetLeft;
		while (elem = elem.offsetParent)
			x += elem.offsetLeft;
	}
	else
	{
		x = elem.offsetLeft || 0;
		while (elem = elem.offsetParent)
			x += elem.offsetLeft;
	}
		
	return x;
}

document.ready = function (callBack) {addEvent(window, 'load', callBack)};

document.ready(function ()
{
	var a = getElementsByClassName(document, 'a', 'coming');
	for (var i = 0; i < a.length; i++)
	{
		a[i].href = 'javascript:void(0)';
		addEvent(a[i], 'click', function () { alert('Disponible prochainement') });
	}
	
	var a = getElementsByClassName(document, 'a', 'crea');
	for (var i = 0; i < a.length; i++)
	{
		a[i].href = 'javascript:void(0)';
		addEvent(a[i], 'click', function () { alert("La rubrique 'Autres produits et services' est en cours de création") });
	}
	
	if (document.getElementById("connexion"))
		addEvent("connexion", 'click', handleLogIn);
	if (document.getElementById("connexion2"))
		addEvent("connexion2", 'click', handleLogIn);
	if (typeof ie6 == 'undefined')
		ie6 = false;
	if (document.getElementById('startsearch'))
	{
		document.getElementById('startsearch').style.cursor = 'pointer';
		addEvent('startsearch', 'click', function () { document.forms['catalogue'].submit() });
	}
	var urlParams = document.location.href.substr(document.location.href.lastIndexOf("?") + 1).split("&");

	try {
		if (urlParams.lastIndexOf("?") != -1)
		{
			urlParams = urlParams.substr(0, urlParams.lastIndexOf("#"));
			alert(urlParams.indexOf("#"));
		}
	
	}
	catch(e){}
	for (var i = 0; i < urlParams.length; i++)
		urlParams[i] = urlParams[i].split("=");
		
	for (var i = 0; i < urlParams.length; i++)
		if (urlParams[i][0] == "connexion")
		{
			if (urlParams[i][1] == "success")
			{
				alert("Connexion réussie");
				document.location.href = document.location.href.substr(0, document.location.href.indexOf("?"));
			}
			else
			{
				showLogIn(document.getElementById("connexion"), urlParams[i][1]);
				break;
			}
		}
});

function handleLogIn (event)
{
	var target, elem;
	target	= event.target || event.srcElement;
	elem	= target;
	showLogIn(elem);
}

function showLogIn (elem)
{
	if (arguments.length == 2)
	{
		errCode = arguments[1];
		switch (errCode)
		{
			case "fail" :
				errMsg = "Votre login ou votre mot de passe sont erronnés";
				break;
		}
	}
	div	 		= document.createElement('div');
	p 			= document.createElement('p');
	txt			= document.createElement('p');
	img			= document.createElement('img');
	closeImg	= document.createElement('img');
	form		= document.createElement("form");
	login		= document.createElement("input");
	password	= document.createElement("input");
	submit		= document.createElement("input");
	page		= document.createElement("input");
	lblLogin	= document.createElement("label");
	lblPassword	= document.createElement("label");
	
	/* Begin Form */
	form.method		= "post"
	form.action		= "/demons/connexion.asp"
	
	txtLogin		= document.createTextNode("Login ");
	txtPassword		= document.createTextNode("Mot de passe ");
	txtSubmit		= "Connexion";
	txtIntro		= document.createTextNode("Veuillez entrer vos identifiants s'il vous plait");
	br				= document.createElement("br");
	
	lblLogin.setAttribute("for", "login");
	lblPassword.setAttribute("for","password");
	
	lblLogin.appendChild(txtLogin);
	lblPassword.appendChild(txtPassword);
	submit.setAttribute("value", txtSubmit);
	page.setAttribute("value", document.getElementById("idpage").value)
	
	login.type		= "text";
	password.type	= "password";
	submit.type		= "submit";
	page.type		= "hidden";
	
	login.id		= "login";
	password.id		= "password";
	submit.id		= "connexion";
	
	login.name		= "login";
	password.name	= "password";
	page.name		= "page"
	
	form.appendChild(lblLogin);
	form.appendChild(login);
	form.appendChild(lblPassword);
	form.appendChild(password);
	form.appendChild(page);
	form.appendChild(submit);
	/*form.onsubmit = doNotGo;*/
	/* End Form */
	pTxt 	= document.createTextNode('Fermer');

	div.setAttribute('id', 'calque');
	closeImg.setAttribute('src', '/v2/images/fermer.gif');
	p.style.marginTop 	= 211 + 'px';
	p.className 	= 'encadre';
	/*
	alert(lc.offsetWidth);
	div.style.top		= absPosY(lc) + 'px';
	div.style.left		= absPosX(lc) + 1 + 'px';
	p.style.width		= lc.offsetWidth - 2 + 'px';*/
	txt.className 	= 'connexion';
	txt.style.textAlign = 'center';
	setTimeout("p.style.width = txt.offsetWidth + 'px'; p.style.visibility = 'visible';", 500);
	
	div.style.height = document.body.offsetHeight + 'px';
	
	p.appendChild(closeImg);
	p.appendChild(pTxt);
	div.appendChild(p);
	div.appendChild(txt);
	if (typeof errMsg != "undefined")
	{
		errTxt = document.createElement("p");
		errTxt.appendChild(document.createTextNode(errMsg));
		errTxt.style.color = "red";
		errTxt.style.margin = "0";
		txt.appendChild(errTxt);
		txt.appendChild(txtIntro);
	}
	else
	{
		txt.appendChild(txtIntro);
		txt.appendChild(br);
	}
	txt.appendChild(form);
	document.body.appendChild(div);
	addEvent(txt, 'click', function (event) {
		if (event.stopPropagation)
			event.stopPropagation();
			event.cancelBubble = true; 
		});
	addEvent(div, 'click', function ()
	{
		rmEvent(document, 'keydown', function (event) {
			touchKeyPress =  event.keyPress || event.which;
			touche = String.fromCharCode(touchKeyPress);
			if (touchKeyPress == '27')
				document.body.removeChild(div);
		});
		document.body.removeChild(div);
	});
	
	return true;
}

function doNotGo (event)
{
	alert("Formulaire désactivé");
	if (event.preventDefault)
		event.preventDefault();
	event.returnValue = false;
}

//function $ (id) {return typeof id == 'string' ? document.getElementById(id) : null}

