(function(){

if (Image) {
	var imgFNames = ['tooltipLeft-t.png', 'tooltipLeft-b.png', 'tooltipRight-t.png', 'tooltipRight-b.png'];
	var imgs = [];
	for (var i=0, l=imgFNames.length; i<l; i++) {
		imgs[i] = new Image();
		imgs[i].src = '/img/'+imgFNames[i];
	}
}

var ielt7/*@cc_on = (@_jscript_version < 5.7) @*/;

function onDOMReady(callback) {
	if (/webkit/i.test(navigator.userAgent)) {(function(){
			if (/loaded|complete/.test(document.readyState)) callback();
			else setTimeout(arguments.callee, 50);
		})();
	} else if (document.addEventListener) {
		document.addEventListener('DOMContentLoaded', callback, false);
	} else {/*@cc_on
		document.write('<script id="domOK" defer src="javascript:void(0)"><\/script>');
		document.getElementById('domOK').onreadystatechange = function(){
			if (this.readyState=='complete') callback();};
		return;@*/
		window.onload = callback;
	}
};

function trim(str) {
    return str.replace(/^\s*(\S*(\s+\S+)*)\s*$/, '$1');
};

function arrayIndex(needle, haystack) {
    for (var i=0, l=haystack.length; i<l; i++)
		if (haystack[i] === needle) return i;
    return -1;
}

function addRmClass(mode, c, el) {
    var elClasses = trim(el.className).split(/\s+/);
    var classIdx = arrayIndex(c, elClasses);
    if (mode == 'rm' && classIdx != -1) {
        elClasses.splice(classIdx, 1);
        el.className = elClasses.join(' ');
    } else if (mode == 'add' && classIdx == -1) {
        el.className += ' ' + c;
    }
}

function $id(str) {
	return document.getElementById(str);
}

function makeSelectSubmitOnChange() {
	if ($id('changeProfile')) {
    	$id('changeProfile').getElementsByTagName('input')[0].style.display = 'none';
    	$id('changeProfile').style.width = '185px';
    	$id('profil').onchange = function(){
    		if (this.value != '0')
    			$id('changeProfile').submit();
    	};
	}
	if ($id('switchForum')) {
		$id('switchForum').getElementsByTagName('input')[0].style.display = 'none';
		$id('goToForum').onchange = function(){
			if (this.value != '0')
				$id('switchForum').submit();
		};
	}
}

function addCellspacingZeroOnTables() {
	var tables = document.getElementsByTagName('table');
	if (tables.length > 0) {
		for (var i=0, l=tables.length; i<l; i++) {
			tables[i].cellSpacing = 0;
		}
	}
}

function showBgIE(yn, elt) {
	elt.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').enabled = yn;
}

function transHoverOnMenu() {
	$('#menusMain li a')
		.each(function(){
			$(this).css({
				'zoom':'1',
				'position':'relative',
				'filter':'progid:DXImageTransform.Microsoft.AlphaImageLoader(\
							src="/img/trans.png",\
							sizingMethod="scale",\
							enabled=' + ($(this.parentNode).is('.current')) + ')'
			});
			if ($(this.parentNode).is(':not(.current)')) {
				$(this)
					.mouseover(function(){showBgIE(true, this);})
					.mouseout(function(){showBgIE(false, this);});
			}
		});
}

function emptyTextFieldsOnClick() {
	$id('query').onclick = function(){
		if (this.value == 'Recherche dans le portail')
			this.value = '';
	};
	if ($id('forumSearchQuery')) {
		$id('forumSearchQuery').onclick = function(){
			if (this.value == 'Recherche')
				this.value = '';
		}
	}
	if ($id('query-bas')) {
    	$id('query-bas').onclick = function(){
    			this.value = '';
    	}
    }
}

function hoverOkButtons() {
	var okButtons = ['search-ok', 'forumSearch-ok'];
	for (var i=0, l=okButtons.length; i<l; i++) {
		if ($id(okButtons[i])) {
			var okBtn = $id(okButtons[i]);
			okBtn.onmouseover = function(){this.src = '/img/search-ok-hover.png';};
			okBtn.onmouseout  = function(){this.src = '/img/search-ok.png';};
			okBtn.onmousedown = function(){this.src = '/img/search-ok-active.png';};
		}
	}
}

function getParentform(el) {
	var parent = el.parentNode;
	while (parent.tagName.toLowerCase() != 'form') {
		parent = parent.parentNode;
	}
	return parent;
}

function replaceUserSearchSelect() {
	if (document.getElementById('firstLetter')) {
		var select = document.getElementById('firstLetter');
		var options = select.getElementsByTagName('option');
		var newOl = document.createElement('ol');
		newOl.className = 'alphabet';
		for (var i=0, l=options.length; i<l; i++) {
			var newLi = document.createElement('li');
			var newA = document.createElement('a');
			newA.href = '?';
			newA.title = '';
			newA.appendChild(document.createTextNode(options[i].innerHTML));
			newA.onclick = function(){
				var allLis = this.parentNode.parentNode.getElementsByTagName('li');
				for (var j=0, l=allLis.length; j<l; j++) {
					addRmClass('rm', 'current', allLis[j]);
				}
				this.parentNode.className += ' current';
				for (var j=0, l=options.length; j<l; j++) {
					if (options[j].firstChild.nodeValue == this.firstChild.nodeValue) {
						options[j].selected = "selected";
					}
				}
				return false;
			};
			newLi.appendChild(newA);
			newOl.appendChild(newLi);
		}
		select.parentNode.insertBefore(newOl, select);
		select.style.display = 'none';
	}
}

function getPos(elem) {
    return {
        x: elem.offsetParent ?
            elem.offsetLeft + getPos(elem.offsetParent).x
            : elem.offsetLeft,
        y: elem.offsetParent ?
            elem.offsetTop + getPos(elem.offsetParent).y
            : elem.offsetTop
    };
}

function getViewportSize() {
	var vpsize = {'width':0, 'height':0};
	if ( typeof document.documentElement != 'undefined'
			&& typeof document.documentElement.clientWidth != 'undefined'
			&& document.documentElement.clientWidth != 0 ) {
	   vpsize.width = document.documentElement.clientWidth;
	   vpsize.height = (/Opera/i.test(navigator.userAgent)) ? window.innerHeight : document.documentElement.clientHeight;}
	else {
	   vpsize = {'width':document.body.clientWidth, 'height':document.body.clientHeight};
	}
	return vpsize;
}

function activateToolTips(els){
    for (var i=0, l=els.length; i<l; i++) {
        var divContainer = document.createElement('div');

        /* HEAD AND BODY */
        var divText = document.createElement('div');
        divText.appendChild(document.createTextNode(els[i].title));
        els[i].title = '';
        divText.style.width = '176px';

        /* FOOTER */
        var divFooter = document.createElement('div');
        divFooter.style.height = '12px';
		divFooter.style.width = '212px';
		

        /* APPEND EVERYTHING */
        divContainer.appendChild(divText);
        divContainer.appendChild(divFooter);
        divContainer.style.position = 'absolute';

        divContainer.style.textAlign = 'left';
		divContainer.style.color = '#6B7CB2';
		divContainer.style.fontSize = '1.2em';
        divContainer.style.display = 'none';
        els[i].tooltip = divContainer;
        els[i].tooltip.body = divText;
        els[i].tooltip.foot = divFooter;
        els[i].onmouseover = function() {
            var vpSize = getViewportSize();
            var elPos = getPos(this);
            var tTipPosLeft = elPos.x + this.offsetWidth;
			var bodyImage, footImage, bodyPadding;
            if (tTipPosLeft+215 < vpSize.width) {
				bodyPadding = '10px 18px 3px 18px';
                bodyImage = 'tooltipLeft-t.png';
                footImage = 'tooltipLeft-b.png';
            } else {
                tTipPosLeft = elPos.x - 215;
				bodyPadding = '10px 23px 3px 13px';
                bodyImage = 'tooltipRight-t.png';
                footImage = 'tooltipRight-b.png';
            }
			if (ielt7) {
				this.tooltip.body.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="/img/'+bodyImage+'", sizingMethod="crop", enabled=true)';
				this.tooltip.foot.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="/img/'+footImage+'", sizingMethod="crop", enabled=true)';
			} else {
				this.tooltip.body.style.background = 'url(/img/'+bodyImage+')';
				this.tooltip.foot.style.background = 'url(/img/'+footImage+')';
			}
			this.tooltip.body.style.padding = bodyPadding;
            this.tooltip.style.left = tTipPosLeft + 'px';
    
            var tTipPosTop = elPos.y - 8;
            this.tooltip.style.top = tTipPosTop + 'px';

            this.tooltip.style.display = 'block';
        }
        els[i].onmouseout = function() {
            this.tooltip.style.display = 'none';
        }
        document.body.appendChild(divContainer);
    }
}

function fixPNG(myImage) {
	var arVersion = navigator.appVersion.split("MSIE");
	var version = parseFloat(arVersion[1]);
    if ((version >= 5.5) && (version < 7) && (document.body.filters)) {
       var imgID = (myImage.id) ? "id='" + myImage.id + "' " : "";
	   var imgClass = (myImage.className) ? "class='" + myImage.className + "' " : "";
	   var imgTitle = (myImage.title) ?
		             "title='" + myImage.title  + "' " : "title='" + myImage.alt + "' ";
	   var imgStyle = "display:inline-block;" + myImage.style.cssText;
	   var strNewHTML = "<span " + imgID + imgClass + imgTitle
                  + " style=\"" + "width:" + myImage.width
                  + "px; height:" + myImage.height
                  + "px;" + imgStyle + ";"
                  + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
                  + "(src=\'" + myImage.src + "\', sizingMethod='scale');\"></span>";
	   myImage.outerHTML = strNewHTML;
    }
}

$(document).ready(function() {
	/*@cc_on
		addCellspacingZeroOnTables();
		transHoverOnMenu();
		if (ielt7) {
			$id('identity').getElementsByTagName('img')[1].onload = function(){fixPNG(this);};
		}
	@*/;
	makeSelectSubmitOnChange();
	emptyTextFieldsOnClick();
	hoverOkButtons();
	replaceUserSearchSelect();
	//makeFormElementsReactToMouse();
	var allEls = document.all || document.getElementsByTagName('*');
	var els = [];
	for (var i=0, l=allEls.length; i<l; i++) {
		var titleAttr = allEls[i].getAttribute('title'/*@cc_on , 2 @*/);
		if (titleAttr && titleAttr != '') {
			els.push(allEls[i]);
		}
	}
	activateToolTips(els);
});

})();
