document.documentElement.className += " hasJS"; 
var IS_IE = document.all && window.print && !window.opera && ( !document.compatMode || /MSIE [56]/.test(navigator.userAgent) || (document.compatMode && document.compatMode=="BackCompat"));

var SCROLLER = null;
window.onload = function (){
	new MENU();
	resize();
}

window.onresize = function (){
	//resize();
}


function resize(){
	if(!$('scrollableContent') || !$('header')) return;
	var globalHeight = window.innerHeight || document.documentElement.clientHeight
	var height2set = globalHeight - $('header').offsetHeight - $('footer').offsetHeight - $('footer2').offsetHeight - ($('main').offsetHeight - $('scrollableContent').offsetHeight) - 13;
	if(height2set < 224 && !$('scrollableContent').className.match(/home/)) height2set = 224; 
	if($('header').attachEvent) height2set -= 4;
	$('scrollableContent').style.height = height2set + "px";
	if($('flashHome')){
		$('flashHome').style.height = height2set * 0.8 + "px";
		$('flashHome').style.width = "auto";
	}
	//$('flashHome').style.width = $('scrollableContent').offsetWidth * 0.8 + "px";
	if(SCROLLER) SCROLLER.destroy(SCROLLER);
	SCROLLER = new scrollerManager($("scrollableContent"), true);
}

function pngFix(elm, noOverflow) {
	elm.style.filter = ' ';
	if (!(document.all && window.print && /MSIE [56]/.test(navigator.userAgent))) return;
	var exec = (function(elm, noOverflow, scale) {
		return function() {
			
		
			var options = { noOverflow:noOverflow};
			var repeat = elm.currentStyle.backgroundRepeat.toLowerCase()=='repeat';
			elm.style.filter = ' ';
				// si l'&eacute;l&eacute;ment est un tag img, on va en faire creer une balise qui encadrera cette image et ensuite traiter la balise comme si c'etait un &eacute;l&eacute;ment qui avait une image de fond
				if (elm.nodeName.match(/^(IMG|INPUT)$/)) {
					if (!elm.src.match(/.*\.png$/)) return;
					
					elm.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod='image', src='"+ elm.src + "')";
					
					elm.width = elm.offsetWidth;
					elm.height = elm.offsetHeight;
					
					/* recuperation de l'url du pixel transparent */
					var url = elm.currentStyle.backgroundImage.match(/^url\(["'](.*\.gif)["']\)$/); //seulement les .png
					elm.src = url[1];
					elm.className = elm.className.replace(/pngFix/g,'');
					
				}
				else {
					if (elm.currentStyle.backgroundImage == "" || elm.currentStyle.backgroundImage == "url()") return;
					var url = elm.currentStyle.backgroundImage.match(/^url\(["'](.*\.png)["']\)$/); //seulement les .png
					if (!url || url.length<2) return;
					var pngLayer = document.createElement('i'); // on genere un <i> en position:absolute (layer), qui viendra se placer sous le contenu du div  qui avait besoin du style.
					with(pngLayer.style) {
						if (options.noOverflow) {
							width = elm.offsetWidth + 'px';
							height = elm.offsetHeight + 'px';
						} else {
						 	width = '32000px';
							height = '32000px'; 
						}
						position = 'absolute';
						zIndex = -1;
						fontSize = '1%';
						filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod='" + (options.noOverflow ? 'crop' : 'image') + "', src='"+url[1]+"')";
						background = 'none'; //forcing car parfois il peut arriver qu'on ai une CSS qui vienne rajouter des images / couleurs de fond
						/* positionnement de l'image en fonction du background-position sur l'element */
						if (!repeat) {
							switch((elm.currentStyle.backgroundPositionX+'').toLowerCase()) {
								case 'left' : left=0; break; 
								case 'right' : right = 0; break;
								case 'center' : 
									left='50%'; 
									setTimeout(function(pngLayer) {
										return function() {
											pngLayer.style.marginLeft = -(pngLayer.offsetWidth/2)+'px'; 
										}
									}(pngLayer), 50);
									break;
								default : 
									left = elm.currentStyle.backgroundPositionX; 
							}

							switch((elm.currentStyle.backgroundPositionY+'').toLowerCase()) {
								case 'top' : top = 0; break;
								case 'bottom' : bottom = 0; break;
								case 'center' : 
									top='50%'; 
									setTimeout(function(pngLayer) {
										return function() {
											pngLayer.style.marginTop=-(pngLayer.offsetHeight/2)+'px'; 
										}
									}(pngLayer), 100);
									break;
								default : 
									top = elm.currentStyle.backgroundPositionY || 0; 
							}
						} else {
							left = 0; //elm.currentStyle.backgroundPositionX +'';
							top = 0; //elm.currentStyle.backgroundPositionY +'';
						}
					} 
					
						/* gestion automatique du sizingMethod='scale' ou sizingMethod='image', ne pouvant pas tester le backgroundRepeat correctement, on passe par une methode un peu plus tricky */
						setTimeout(function(elmN, pngLayerN, repeatN) {
							return function() {
								if (!elmN || elmN.parentNode || !pngLayerN || !pngLayerN.parentNode) return;
								if (pngLayerN.filters['DXImageTransform.Microsoft.AlphaImageLoader'].sizingMethod=='image') {
									if (pngLayerN.offsetWidth<elmN.offsetWidth && repeatN) {
										pngLayerN.filters['DXImageTransform.Microsoft.AlphaImageLoader'].sizingMethod='scale';
									} else if (pngLayerN.offsetWidth>elmN.offsetWidth && elm.currentStyle.backgroundPositionX.match(/^(left|0%|0px|0)$/) || elm.currentStyle.backgroundPositionY.match(/^(top|0%|0px|0)$/)){
										pngLayerN.filters['DXImageTransform.Microsoft.AlphaImageLoader'].sizingMethod='crop';
									}
								} else {
									pngLayerN.sizingMethod = 'image';
								}
								if (elm.currentStyle.width.match(/^(0|[12](%|px)?)$/)) {
									pngLayerN.filters['DXImageTransform.Microsoft.AlphaImageLoader'].sizingMethod='image';
								}
								if (pngLayerN.style.right != 'auto' && pngLayerN.style.right !='')
									setTimeout(function() {
										pngLayerN.style.right = parseInt(pngLayerN.style.right) - (elm.offsetWidth%2 ? 1 : 0) + 'px';
									}, 50)
							}
						}(elm, pngLayer, repeat), 200);
					
					with (elm.style) {
						position = elm.currentStyle.position=="static" || elm.currentStyle.position=="" ? 'relative' : position;
						if (elm.currentStyle.overflow!='auto' && elm.currentStyle.overflow!='hidden') overflow = options.noOverflow ? 'visible' : (elm.currentStyle.width.match(/^(0|[12](%|px)?)$/) ? 'visible' : 'hidden');
						backgroundImage = 'none';
					}
					elm.appendChild(pngLayer);
			
			}
		}
	})(elm, noOverflow);
	try{
		pngFixLoader.useOnload ? pngFixLoader.addFunc(exec) : exec();
	} catch(e) {};
}



/* pngFixLoader 
	@unction 		:	objet pour permet le lancement des modifications des png via pngFix en d&eacute;cal&eacute; sur le onload de la page.
							cela permet de contourner un bug d'internet explorer qui affiche un message d'erreur si le DOM est modifi&eacute; pendant le chargement de la page.
*/
var pngFixLoader = {
	useOnload : true, // true : active l'execution du fixPng sur le load, et false, execute le fixPng dès qu'il est appel&eacute; par la CSS
	functions : [], // toutes les fonctions à &eacute;x&eacute;cuter sur le onload de la page
	addFunc : function(func) {
		pngFixLoader.functions.push(func);
	},
	launch : function() {
			pngFixLoader.useOnload = false; //une fois la page charg&eacute;e, il faut laisser s'executer automatiquement la fonction pour d'autres actions (ex : ouverture layer)
			var counter = 1;
			while(pngFixLoader.functions.length>0) {
				//setTimeout(pngFixLoader.functions.pop(), 20*counter);
				pngFixLoader.functions.pop()();
				counter++;
			}
	},
	init : function() {
		if (pngFixLoader.useOnload && window.attachEvent && document.all) {
			window.attachEvent('onload', function() {
				setTimeout(pngFixLoader.launch, 100);
			});
		}
	}
}
pngFixLoader.init();


/**
* scroller
**/
var scrollerManager = function(elm, extensible, speed) {
	// setVar
	if(elm.scrollHeight <= elm.offsetHeight) return;
	var that = this;
	elm.innerHTML += '<br /><br />'; // simplifie largement le pb  du "coupage" du bas des lettres p, g et j.
	this.elm = elm;
	this.elm.scrollTop = 0;
	this.initWidth = elm.offsetWidth;
	this.initHeight = elm.offsetHeight;
	this.scHeight = elm.scrollHeight - elm.offsetHeight;
	this.scRatio = elm.offsetHeight / elm.scrollHeight;
	this.percent = 0;
	if(!speed) this.speed = 0.10;
	this.liftClicked = false;
	/* TODO
	pr&eacute;voir le cas ou elm est le body
	*/
	this.container = document.createElement('div');
	this.container.id = "scroller_"+((new Date()).getTime());
	this.container.style.zIndex  = "1000000000";
	
	//document.body.appendChild(this.container);
	this.elm.parentNode.appendChild(this.container);
	
	// creation des boutons du scroll 
	this.imgTop = document.createElement('a');
	this.imgTop.className = "scrollerTop";
	this.container.appendChild(this.imgTop);
	
	this.imgRoad = document.createElement('a');
	this.imgRoad.className = "scrollerRoad";
	this.container.appendChild(this.imgRoad);
	
	this.imgBottom = document.createElement('a');
	this.imgBottom.className = "scrollerBottom";
	this.container.appendChild(this.imgBottom);

	this.imgLift = document.createElement('a');
	this.imgLift.className = "scrollerLift";
	this.container.appendChild(this.imgLift);
	// placement dynamique des elms
	this.baseTop = getTop(elm);
	this.RoadHeight = elm.offsetHeight - this.imgTop.offsetHeight - this.imgBottom.offsetHeight;

	this.imgRoad.style.height = this.RoadHeight + "px";
	//
	if(extensible){
		this.imgRoad.innerHTML = "<span class='head'></span><span class='body' id='"+this.container.id+"_road"+"'></span><span class='foot'></span>";
		this.imgLift.innerHTML = "<span class='head'></span><span class='body' id='"+this.container.id+"_lift"+"'></span><span class='foot'></span>";
		this.liftBody = document.getElementById(this.container.id+"_lift");
		this.liftBody.style.height = Math.ceil(this.RoadHeight * this.scRatio) + "px";
		this.roadBody = document.getElementById(this.container.id+"_road");
		this.roadBody.style.height = this.RoadHeight - (getCSSRule(this.imgRoad.firstChild, "height", false) *2)+ "px";
		this.imgRoad.style.height = "";
	}
	//
	this.container.style.overflow = "hidden";
	this.container.style.width = this.imgTop.offsetWidth + "px";
	this.container.style.height = this.initHeight + "px";
	this.container.style.position = "absolute";
	this.container.style.top =  ($('main').offsetHeight - $('scrollableContent').offsetHeight) - 4 + "px";
	//
	
	
	//
	elm.style.overflow = "hidden";
	//alert(getCSSRule(elm, "marginRight", false))
	elm.style.marginRight = getCSSRule(elm, "marginRight", false) + this.container.offsetWidth + "px";
	elm.style.width = elm.offsetWidth - this.container.offsetWidth + "px";
	this.container.style.left = getLeft(elm) + elm.offsetWidth + 10 + 'px';
	//if(IS_MS) this.container.style.left = getLeft(elm) + elm.offsetWidth + 25 + 'px';
	
	
	
	// calcul du d&eacute;batement : calcul la vitesse de deplacement en px
	this.debatPx = this.imgRoad.offsetHeight-this.imgLift.offsetHeight;
	var htTot = this.scHeight-this.container.offsetHeight;
	this.deb = (this.debatPx/htTot)*this.speed;
	this.minTop = this.imgTop.offsetHeight;
	this.maxTop = this.debatPx + this.minTop;
	this.liftHeight = this.imgLift.offsetHeight;
	this.imgLift.style.top = this.minTop + "px";
	this.currentPos = this.minTop;
	
	
	/** EVENTS **/
	/*imgTop*/
	this.imgTop.onmousedown = function (obj){
		return function (){
			obj.moveScroll(obj.percent-obj.speed);
			obj.interval = setInterval(function(){obj.moveScroll(obj.percent-obj.speed);},100);
		}
	}(this);
	this.imgTop.onmouseup = this.imgTop.onmouseout = function (obj){
		return function (){
			obj.stopScroll();;
		}
	}(this);
	/*imgBottom */
	this.imgBottom.onmousedown = function (obj){
		return function (){
			obj.moveScroll(obj.percent+obj.speed);
			obj.interval = setInterval(function(){obj.moveScroll(obj.percent+obj.speed);},100);
		}
	}(this);
	this.imgBottom.onmouseup = this.imgBottom.onmouseout = function (obj){
		return function (){
			obj.stopScroll();
		}
	}(this);
	/*imgRoad*/
	this.imgRoad.onmousedown = function (obj){
		return function (e){
			if(!e) e = window.event;
			var Y = e.clientY;
			var sens = (Y > getTop(obj.imgLift)) ? 1 : -1; 
			obj.moveScroll(obj.percent+(obj.speed*sens));
			obj.interval = setInterval(function(e){
				if(sens == 1 && Y < getTop(obj.imgLift)+obj.liftHeight) obj.stopScroll();
				if(sens == -1 && Y > getTop(obj.imgLift)) obj.stopScroll();
				obj.moveScroll(obj.percent+(obj.speed*sens));
			},50);
		}
	}(this);
	this.imgRoad.onmouseup = this.imgRoad.onmouseout = function (obj){
		return function (e){
			obj.stopScroll();
		}
	}(this);
	
	/*imgLift*/	
	Drag.init(this.imgLift, null, 0, 0,this.minTop, this.maxTop, true, false);
	
	this.imgLift.onDrag = function (obj){
		return function (x,y){
			this.style.cursor = "s-resize";
			var delta = (y - obj.minTop)/ obj.debatPx;
			obj.moveScroll(delta, true);
		}
	}(this)
	this.imgLift.onDragEnd = function (obj){
		return function (x,y){
			this.style.cursor = "";
		}
	}(this)
	/*elm*/
	if(document.addEventListener){
	elm.addEventListener('DOMMouseScroll', function (obj){
		return function (e){
			var delta = e.detail;
			obj.moveScroll(obj.percent+(delta/100));
		}
	}(this), null);
	}
	else{
	elm.attachEvent('onmousewheel', function (obj){
		return function (e){
			if(!e) e = window.event;
			var delta = -e.wheelDelta/40;
			//alert(delta);			
			if(window.opera) delta = -delta;
			obj.moveScroll(obj.percent+(delta/100));
		}
	}(this));
	}
	
	
	return this;
}



	
scrollerManager.prototype.moveScroll = function (pourcent, fromDrag){
		if(pourcent>1) pourcent = 1;
		if(pourcent<0) pourcent = 0;
		this.percent = pourcent;
		this.elm.scrollTop = this.scHeight*pourcent;
		var newTop = this.debatPx * pourcent;
		if(!fromDrag) this.imgLift.style.top = newTop + this.minTop + "px";
}

scrollerManager.prototype.stopScroll = function (){
		if(this.interval) clearInterval(this.interval);
}
	
scrollerManager.prototype.destroy = function (instance){
		if(!this.container) return;
		if(this.container.parentNode) this.container.parentNode.removeChild(this.container);
		this.elm.scrolltop = 0;
		this.elm.style.height = "";
		this.elm.style.marginRight = "";
		this.elm.style.width = "";
		if(instance){
			if(instance.interval) clearInterval(instance.interval);
			delete instance;
		}
}

/**
/ renvoie le left et le top d'un elm
**/
function getLeft(MyObject){
    if (MyObject.offsetParent)
	return (MyObject.offsetLeft + getLeft(MyObject.offsetParent));
    else
	return (MyObject.offsetLeft);
    }
function getTop(MyObject){
    if (MyObject.offsetParent)
	return (MyObject.offsetTop + getTop(MyObject.offsetParent));
    else
	return (MyObject.offsetTop);
    }


/**
/ renvoie la valeur CSS rule de l'elm cible --> withoutUnity n'a pas d'effet si rule == "all"
**/
function getCSSRule (cible, rule, withoutUnity){
	var CSSrule, cr;
	if(cible.currentStyle){
		cr = cible.currentStyle;
		CSSrule = cr[rule];
	}
	else {
		cr = window.getComputedStyle(cible, null);
		CSSrule = cr[rule];
	}
	if(rule == "all") {
		CSSrule = [];
		for(var a in cr){
			if (cr[a]!= "" && typeof(cr[a]) == 'string') 
				CSSrule.push([a, cr[a]]);
		}
	}
	if(withoutUnity && rule != "all") CSSrule = parseFloat(CSSrule);
	if(parseInt(CSSrule)/parseInt(CSSrule) != 1) {
		CSSrule = 0;
	}
	return parseFloat(CSSrule);	
}
/**
/  transforme rgb(0,0,0) en #000000
**/
function RGB2Hexa(rgb){
// samori powered
	if(rgb.indexOf('rgb') != -1){
		rgb = rgb.substring(4);
		rgb = rgb.substring(0, rgb.length-1);
		var s = [];
		rgb = rgb.split(',');
		for (x in rgb){
			if(parseInt(x)+1*2){ // si numeric
				var ind = parseInt(rgb[x]).toString(16);
				if(ind<10){ind = "0"+ind}
				s.push(ind);
			}
		}
		rgb = s.join("");
		rgb = "#"+rgb;
	
	}
	return rgb;
}
/***
* DOM-DRAG.js
*
***/

/**************************************************
 * dom-drag.js
 * 09.25.2001
 * www.youngpup.net
 **************************************************
 * 10.28.2001 - fixed minor bug where events
 * sometimes fired off the handle, not the root.
 **************************************************/



var Drag = {

	obj : null,

	init : function(o, oRoot, minX, maxX, minY, maxY, bSwapHorzRef, bSwapVertRef, fXMapper, fYMapper)
	{
		o.onmousedown	= Drag.start;

		o.hmode			= bSwapHorzRef ? false : true ;
		o.vmode			= bSwapVertRef ? false : true ;

		o.root = oRoot && oRoot != null ? oRoot : o ;

		if (o.hmode  && isNaN(parseInt(o.root.style.left  ))) o.root.style.left   = "0px";
		if (o.vmode  && isNaN(parseInt(o.root.style.top   ))) o.root.style.top    = "0px";
		if (!o.hmode && isNaN(parseInt(o.root.style.right ))) o.root.style.right  = "0px";
		if (!o.vmode && isNaN(parseInt(o.root.style.bottom))) o.root.style.bottom = "0px";

		o.minX	= typeof minX != 'undefined' ? minX : null;
		o.minY	= typeof minY != 'undefined' ? minY : null;
		o.maxX	= typeof maxX != 'undefined' ? maxX : null;
		o.maxY	= typeof maxY != 'undefined' ? maxY : null;

		o.xMapper = fXMapper ? fXMapper : null;
		o.yMapper = fYMapper ? fYMapper : null;

		o.root.onDragStart	= new Function();
		o.root.onDragEnd	= new Function();
		o.root.onDrag		= new Function();
	},

	start : function(e)
	{
		var o = Drag.obj = this;
		e = Drag.fixE(e);
		var y = parseInt(o.vmode ? o.root.style.top  : o.root.style.bottom);
		var x = parseInt(o.hmode ? o.root.style.left : o.root.style.right );
		o.root.onDragStart(x, y);

		o.lastMouseX	= e.clientX;
		o.lastMouseY	= e.clientY;

		if (o.hmode) {
			if (o.minX != null)	o.minMouseX	= e.clientX - x + o.minX;
			if (o.maxX != null)	o.maxMouseX	= o.minMouseX + o.maxX - o.minX;
		} else {
			if (o.minX != null) o.maxMouseX = -o.minX + e.clientX + x;
			if (o.maxX != null) o.minMouseX = -o.maxX + e.clientX + x;
		}

		if (o.vmode) {
			if (o.minY != null)	o.minMouseY	= e.clientY - y + o.minY;
			if (o.maxY != null)	o.maxMouseY	= o.minMouseY + o.maxY - o.minY;
		} else {
			if (o.minY != null) o.maxMouseY = -o.minY + e.clientY + y;
			if (o.maxY != null) o.minMouseY = -o.maxY + e.clientY + y;
		}

		document.onmousemove	= Drag.drag;
		document.onmouseup		= Drag.end;

		return false;
	},

	drag : function(e)
	{
		e = Drag.fixE(e);
		var o = Drag.obj;

		var ey	= e.clientY;
		var ex	= e.clientX;
		var y = parseInt(o.vmode ? o.root.style.top  : o.root.style.bottom);
		var x = parseInt(o.hmode ? o.root.style.left : o.root.style.right );
		var nx, ny;

		if (o.minX != null) ex = o.hmode ? Math.max(ex, o.minMouseX) : Math.min(ex, o.maxMouseX);
		if (o.maxX != null) ex = o.hmode ? Math.min(ex, o.maxMouseX) : Math.max(ex, o.minMouseX);
		if (o.minY != null) ey = o.vmode ? Math.max(ey, o.minMouseY) : Math.min(ey, o.maxMouseY);
		if (o.maxY != null) ey = o.vmode ? Math.min(ey, o.maxMouseY) : Math.max(ey, o.minMouseY);

		nx = x + ((ex - o.lastMouseX) * (o.hmode ? 1 : -1));
		ny = y + ((ey - o.lastMouseY) * (o.vmode ? 1 : -1));

		if (o.xMapper)		nx = o.xMapper(y)
		else if (o.yMapper)	ny = o.yMapper(x)

		Drag.obj.root.style[o.hmode ? "left" : "right"] = nx + "px";
		Drag.obj.root.style[o.vmode ? "top" : "bottom"] = ny + "px";
		Drag.obj.lastMouseX	= ex;
		Drag.obj.lastMouseY	= ey;

		Drag.obj.root.onDrag(nx, ny);
		return false;
	},

	end : function()
	{
		document.onmousemove = null;
		document.onmouseup   = null;
		Drag.obj.root.onDragEnd(	parseInt(Drag.obj.root.style[Drag.obj.hmode ? "left" : "right"]), 
									parseInt(Drag.obj.root.style[Drag.obj.vmode ? "top" : "bottom"]));
		Drag.obj = null;
	},

	fixE : function(e)
	{
		if (typeof e == 'undefined') e = window.event;
		if (typeof e.layerX == 'undefined') e.layerX = e.offsetX;
		if (typeof e.layerY == 'undefined') e.layerY = e.offsetY;
		return e;
	}
};


function popup(e, url, name, opt){
	window.open(url, name, opt);
	return false;
};




var MENU = new Class({
	initialize : function (){
		this.el = $('myMenu');
		this.as = $$('#myMenu a');
		this.as.each(function(el){
			if(el.href.substring(el.href.lastIndexOf("/")+1, el.href.lastIndexOf(".")) == document.location.href.substring(document.location.href.lastIndexOf('/')+1, document.location.href.lastIndexOf("."))) el.className += " current";
		});
		this.lis = this.el.childNodes;
		this.tab = [];

		for(var i=0;i<this.lis.length;i++){
			if(this.lis[i].nodeType == 3) continue;
			this.tab.push(new MENU_LIS(this.lis[i], this));
		}
	},
	
	closeAll : function (obj){
		for(var i=0;i<this.tab.length;i++){
			if(this.tab[i] != obj){
				if(this.tab[i].fx) this.tab[i].fx.set({"opacity" : 0});
				//this.tab[i].fade(0);
			}
		}
		obj.fade(1);
	}
});

var MENU_LIS = new Class({
	initialize : function (elm, parentObj){
		this.ul = $(elm).getElement('ul');
		this.gotUL = false;
		
		if(this.ul){
			this.gotUL = true;
			//$(this.ul).setStyle('opacity', 0);
			this.fx = new Fx.Morph($(this.ul), {duration: 'short'});
			$(this.ul).addEvent('mouseleave', function (obj){
				return function (){
					obj.fade(0);
				}
			}(this));
		}
		
		$(elm).addEvent('mouseenter', function (obj, objP){
				return function (){
					if(IS_IE) this.style.backgroundPosition = "left bottom";
					objP.closeAll(obj);
					//obj.fade(1);
				}
			}(this, parentObj));
		
		$(elm).addEvent('mouseleave', function (obj){
			return function (){
				if(IS_IE) this.style.backgroundPosition = "left top";
				obj.fade(0);
			}
		}(this));
	},
	
	fade : function (val, obj){
		if(!this.gotUL) return;
		this.fx.start({'opacity': val});
	}
});
