/* Get Mouse Position */ 
function getMouseXY(e) { 
	if (!e) e = window.event; // works on IE, but not NS (we rely on NS passing us the event)
	if (e) { 
		if (e.pageX || e.pageY) { // this doesn't work on IE6!! (works on FF,Moz,Opera7)
			mousex = e.pageX;
			mousey = e.pageY;
			algor = '[e.pageX]';
			if (e.clientX || e.clientY) algor += ' [e.clientX] '
		} else if (e.clientX || e.clientY) { // works on IE6,FF,Moz,Opera7
			mousex = e.clientX + document.body.scrollLeft;
			mousey = e.clientY + document.body.scrollTop;
			algor = '[e.clientX]';
			if (e.pageX || e.pageY) algor += ' [e.pageX] '
			}  
		}
	}
AttachEvent(document,'mousemove',getMouseXY,false);

/* Create DOM Element */ 
function createElement(element) {
	if (typeof document.createElementNS != 'undefined') return document.createElementNS('http://www.w3.org/1999/xhtml', element);
	if (typeof document.createElement != 'undefined') return document.createElement(element);
	return false;
	}

/* Init/Events Manager - Bulles */ 
function initFxBulles() {
	var divs = document.getElementsByTagName('span');
	var divBulles = [];	
	
	for (var i = 0; i < divs.length; i++) {
		if(divs[i].className.indexOf("fx-bulle") != -1) {
			// Over Propertie
			divs[i].over = false;
			if(divs[i].className.indexOf("over") != -1) divs[i].over = true;
			
			// Fix Propertie
			divs[i].fix = false;
			if(divs[i].className.indexOf("fix") != -1) divs[i].fix = true;

			// Reverse Propertie
			divs[i].reverse = false;
			if(divs[i].className.indexOf("reverse") != -1) divs[i].reverse = true;
			
			// Beige Propertie
			divs[i].beige = false;
			if(divs[i].className.indexOf("beige") != -1) divs[i].beige = true;			
			

			divBulles[divBulles.length] = divs[i];
			}
		}
		
	for (var i = 0; i < divBulles.length; i++) {
		var obj = divBulles[i];
		createFxBulles(obj.getElementsByTagName('div')[0]);
		
		var href = obj.getElementsByTagName('a')[0];
		href.bulle = divBulles[i];
		href.obj = obj.getElementsByTagName('div')[0];
		
		/* Events */
		href.onmouseover = function() {
			clearBulles();
			if(this.bulle.fix) {
				this.obj.style.marginTop = -this.bulle.offsetHeight-24+'px'
				if(this.bulle.reverse) this.obj.style.marginLeft = -this.obj.offsetWidth-2+'px';
				else this.obj.style.marginLeft = this.offsetLeft+this.offsetWidth+'px';					
					
			} else {
				this.obj.style.top = mousey-30;
				if(this.bulle.reverse) this.obj.style.left = mousex-this.obj.offsetWidth-15;	
				else this.obj.style.left = mousex+15;		
				}
			
				
			this.obj.style.visibility = 'visible';				
			}
			
		if(divBulles[i].over) {
			href.obj.onmouseover = function() {
				clearBulles();		
				this.style.visibility = 'visible';
				}	
			href.obj.onmouseout = function() {
				o = this;
				timer = setTimeout("clearBulles()",1000);	
				}					
			href.onmouseout = function() {
				o = this;
				timer = setTimeout("clearBulles()",1000);	
				}								
		} else {
			href.onmouseout = function() {
				this.obj.style.visibility = 'hidden';
				}				
			}
		}
	}

var timer = '';
var o = null;
function clearBulles() {
	if(o) {
		if(o.obj != null) o.obj.style.visibility = 'hidden';
		else o.style.visibility = 'hidden';
		o = null;
		}
	clearTimeout(timer);	
	}	

/* Render - Bulles */ 	
function createFxBulles(obj) {
	/* Bulle Content */
	var objContent = obj.innerHTML;
	
	/* Create fx-bulle-wrapper Div */
	var wrapper = document.createElement('div');
	wrapper.className = 'fx-bulle-wrapper';
	obj.parentNode.replaceChild(wrapper, obj);
	
	/* Create fx-bulle-top Div */
	var top = createElement('div');
		top.className = 'fx-bulle-top';
	wrapper.appendChild(top);
		
	/* Create fx-bulle-content Div */
	var content = createElement('div');
		content.className = 'fx-bulle-content';
		content.innerHTML = objContent;
	wrapper.appendChild(content);		
		
	/* Create fx-bulle-bottom Div */
	var bottom = createElement('div');
		bottom.className = 'fx-bulle-bottom';
		
		/* Create fx-bulle-bottom-left Div */
		var bottomLeft = createElement('div');
			bottomLeft.className = 'fx-bulle-bottom-left';		
			bottom.appendChild(bottomLeft);
		
	wrapper.appendChild(bottom);			
	top.style.height = content.offsetHeight;
	}

/* OnLoad Hook - Bulle */ 
if(document.getElementById && document.createTextNode) {
	AttachEvent(window,'load',initFxBulles,false);
	}

