function getElementsByClassName(tag_, class_)
{
	var i, k;
	var T_Result = new Array();
	
	var O_Tab = document.getElementsByTagName( tag_);
	
	for(i = 0, k = 0; i < O_Tab.length; i++)
	{
		if( O_Tab[i].className == class_)
		{
			T_Result[k++] = O_Tab[i];
		}
	}
	return(T_Result);
}


function NouvelleFenetre(url, width, height)
{
	window.open(url, "_blank", "width = "+width+", height = "+height+", resizable = yes, scrollbars = yes");
}

function visible(id)
{
	if(document.getElementById(id).style.display == "none")
	{
		document.getElementById(id).style.display = "block";
	}
	else
	{
		document.getElementById(id).style.display = "none";
	}
	
	return(false);
}

var activeList;
function visibleAll(id)
{
	if(activeList != null)
	{
		visible(activeList);
	}
	
	activeList = id;
	
	visible(id);
}

// namespace
var PZ = {};

// stockage données
PZ.datas = {};

// dimensions page
PZ.dimPage = function() {
	var de = document.documentElement;
	return {
		'viewportH': window.innerHeight || (de && de.clientHeight) || document.body.clientHeight,
		'scrollH': window.pageYOffset || (de && de.scrollTop) || document.body.scrollTop,
		'totalH': de.scrollHeight || window.body.scrollHeight
	};
};

// rollovers
PZ.rollovers = {
	init: function() {
		var imgs = Box.nodes.get('img[src*=_off.]');
		for(var i = 0, img; img = imgs[i]; i++) {
			var tmp = new Image();
			tmp.src = PZ.rollovers.changeSRC(img, '_hover.', '_off.');
			var parent = img.parentNode.parentNode;
			Box.events.add(parent, 'mouseover', PZ.rollovers.hover);
			Box.events.add(parent, 'mouseout', PZ.rollovers.out);
		}
	},
	
	changeSRC: function(img, suffixe, replaced) {
		var src = img.src.replace(replaced, suffixe);
		return img.src.replace(replaced, suffixe);
	},
	
	get: function(parent) {
		var img = Box.nodes.get('img', [parent])[0];
		return img;
	},
	
	hover: function() {
		var img = PZ.rollovers.get(this);
		img.src = PZ.rollovers.changeSRC(img, '_hover.', '_off.');
	},
	
	out: function() {
		var img = PZ.rollovers.get(this);
		img.src = PZ.rollovers.changeSRC(img, '_off.', '_hover.');
	}
};

// menus déroulants
PZ.dropdowns = {
	initJS: function() {
		Box.nodes.addClass(document.body, 'js');
	},
	
	init: function() {
		var menus = Box.nodes.get('ul.subMenu');
		if(!menus.length) {return;}
		for(var i = 0, menu; menu = menus[i]; i++) {
			var parent = menu.parentNode;
			PZ.dropdowns.position(menu, parent);
			//if(Box.nodes.hasClass(parent, 'actif') || Box.nodes.get('img[src*=_on.]', [parent])[0]) {continue;}
			if(Box.nodes.hasClass(parent, 'none')) {continue;}
			Box.events.add(parent, 'mouseover', PZ.dropdowns.open);
			Box.events.add(parent, 'mouseout', PZ.dropdowns.close);
			Box.events.add(parent, 'focus', PZ.dropdowns.open);
			Box.events.add(parent, 'blur', PZ.dropdowns.close);
		}
	},
	
	position: function(menu, parent) {
		var page = PZ.dimPage();
		var total = page.viewportH > page.totalH ? page.viewportH : page.totalH;
		if((total - (Box.nodes.findPos(parent)[1] + parent.offsetHeight + menu.offsetHeight)) < 0) {
			menu.style.top = - menu.offsetHeight + 'px';
		}
	},
	
	get: function(parent) {
		var menu = parent.lastChild;
		while(menu.nodeType != 1) {menu = menu.previousSibling;}
		return menu;
	},
	
	open: function() {
		var menu = PZ.dropdowns.get(this);
		Box.nodes.removeClass(menu, 'hide');
	},
	
	close: function() {
		var menu = PZ.dropdowns.get(this);
		Box.nodes.addClass(menu, 'hide');
	}
};

// showHide des menus
PZ.showHideMenus = {
	last: null,
	
	init: function() {
		var sidebar = Box.nodes.get('#annexe')[0];
		if(!sidebar) {return;}
		Box.nodes.addClass(sidebar, 'js');
		Box.events.add(sidebar, 'click', PZ.showHideMenus.click);
		PZ.showHideMenus.last = Box.nodes.get('.on', [sidebar])[0];
	},
	
	click: function(e) {
		var t = e.target || e.srcElement;
		while(t.nodeType != 1) {t = t.parentNode;}
		if(t.nodeName.toLowerCase() == 'a') {
			var p = t.parentNode;
			if(p.nodeName.toLowerCase() == 'li') {
				var subLevel = Box.nodes.get('.sub', [p])[0];
				if(subLevel) {
					if(PZ.showHideMenus.last && p != PZ.showHideMenus.last) {Box.nodes.removeClass(PZ.showHideMenus.last, 'on');}
					Box.nodes.addClass(p, 'on') || Box.nodes.removeClass(p, 'on');
					PZ.showHideMenus.last = p;
					e.preventDefault();
				}
			}
		}
	}
};

// showHide des menus
PZ.showHideFaq = {
	last: null,
	
	init: function() {
		var listeResult = Box.nodes.get('#liste_result')[0];
		if(!listeResult) {return;}
		Box.nodes.addClass(listeResult, 'js');
		Box.events.add(listeResult, 'click', PZ.showHideFaq.click);
	},
	
	click: function(e) {
		var t = e.target || e.srcElement;
		while(t.nodeType != 1) {t = t.parentNode;}
		if(t.nodeName.toLowerCase() == 'a') {
			var p = t.parentNode;
			if(p.nodeName.toLowerCase() == 'h3') {
				p = p.parentNode;
				if(Box.nodes.hasClass(p, 'result')) {
					if(PZ.showHideFaq.last && p != PZ.showHideFaq.last) {Box.nodes.removeClass(PZ.showHideFaq.last, 'on');}
					Box.nodes.addClass(p, 'on') || Box.nodes.removeClass(p, 'on');
					PZ.showHideFaq.last = p;
					e.preventDefault();
				}
			}
		}
	}
};

// showHide des tags clouds
PZ.showHideTagCloud = {
	init: function() {
		var tc = Box.nodes.get('#tag_cloud')[0];
		if(!tc) {return;}
		Box.nodes.addClass(tc, 'tag_cloud_1');
		Box.events.add(tc, 'click', function(e) {PZ.showHideTagCloud.click(e, tc);});
	},
	
	click: function(e, tc) {
		var t = e.target || e.srcElement;
		while(t.nodeName.toLowerCase() != 'a' && t != this && t.parentNode) {t = t.parentNode;}
		if(t.nodeName.toLowerCase() == 'a') {
			var p = t.parentNode;
			if(p.nodeName.toLowerCase() == 'li') {
				tc.className = Box.nodes.attribute(t, 'href').replace('#', '');
				e.preventDefault();
			}
		}
	}
};

// Chargement des fonctions
Box.events.load(PZ.rollovers.init);
Box.events.load(PZ.dropdowns.initJS);
Box.events.load(PZ.dropdowns.init);
Box.events.load(PZ.showHideMenus.init);
Box.events.load(PZ.showHideFaq.init);
Box.events.load(PZ.showHideTagCloud.init);