//
//    mondofragilis Javascript Framework
//    Copyright (C) 2009 Romain Petit
//    This program is free software: you can redistribute it and/or modify
//    it under the terms of the GNU General Public License as published by
//    the Free Software Foundation, either version 3 of the License, or
//    (at your option) any later version.
//
//    This program is distributed in the hope that it will be useful,
//    but WITHOUT ANY WARRANTY; without even the implied warranty of
//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//    GNU General Public License for more details.
//
//    You should have received a copy of the GNU General Public License
//    along with this program.  If not, see <http://www.gnu.org/licenses/>.
//
var mf = {};
mf.version = "0.7.2";
mf.init = function()
{
	mf.Infos.BrowserDetect.init();
	mf.Infos.PluginDetectInit();
};
////////////                INFOS                ///////////
mf.Infos = {};
mf.Infos.IE = document.all?true:false;
mf.Infos.BrowserDetect = {
	init: function () 
	{
		this.language = "fr";
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
		this.isOld = (this.version < this.dataCurrVersion[this.browser]) ? true:false;
		this.browserDL = this.urlDownloads[this.browser][this.OS][this.language];
	},
	showBrowserInfos : function( divid, lang )
	{
		var aboutBrowserHtml = '';
		aboutBrowserHtml += mf.Infos.BrowserDetect.browser + ' ' +  mf.Infos.BrowserDetect.version + ' / ' + mf.Infos.BrowserDetect.OS + '<br/>';
		if( mf.Infos.BrowserDetect.isOld )
		{
			aboutBrowserHtml += this.makeDlSentence(lang);
		}
		else
		{
			aboutBrowserHtml += this.makeOKSentence(lang);
		}
		document.getElementById(divid).innerHTML = aboutBrowserHtml;
	},
	makeDlSentence : function( lang )
	{
		switch (lang)
		{
			case "fr":
				return 'T&eacute;l&eacute;chargez la derni&egrave;re version : <a target="_blank" href="' + mf.Infos.BrowserDetect.browserDL + '">sur le site officiel de ' + BrowserDetect.browser + '</a>';
			break;
			default:
				return 'Download last version : <a target="_blank" href="' + mf.Infos.BrowserDetect.browserDL + '">On the official ' + mf.Infos.BrowserDetect.browser + ' website</a>';
			break;
		}
	},
	makeOKSentence : function( lang )
	{
		switch (lang)
		{
			case "fr":
				return 'Vous avez la derni&egrave;re version de ' + mf.Infos.BrowserDetect.browser;
			break;
			default:
				return 'You have the last version of ' + mf.Infos.BrowserDetect.browser;
			break;
		}
	},
	searchString: function (data) 
	{
		for (var i=0;i<data.length;i++)	
		{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) 
			{
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) 
	{
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{string: navigator.userAgent, subString: "Chrome", identity: "Chrome"},
		{string: navigator.userAgent, subString: "OmniWeb", versionSearch: "OmniWeb/", identity: "OmniWeb"},
		{string: navigator.vendor,	  subString: "Apple",	identity: "Safari"},
		{prop: window.opera, identity: "Opera" },
		{string: navigator.vendor, subString: "iCab", identity: "iCab"},
		{string: navigator.vendor, subString: "KDE", identity: "Konqueror"},
		/* FIREFOX BASED BROWSERS, BEFORE FIREFOX */
		{string: navigator.vendor, subString: "Camino", identity: "Camino"},
		// for newer Netscapes (6+)
		{string: navigator.userAgent, subString: "Netscape", identity: "Netscape"},
		{string: navigator.userAgent, subString: "Flock", identity: "Flock"},
		{string: navigator.userAgent, subString: "Navigator", identity: "Netscape", versionSearch: "Navigator"
		},
		/* NOW FIREFOX */
		{string: navigator.userAgent, subString: "Firefox", identity: "Firefox"},
		{string: navigator.userAgent, subString: "MSIE", identity: "Explorer", versionSearch: "MSIE"},
		{string: navigator.userAgent, subString: "Gecko", identity: "Mozilla", versionSearch: "rv"},
		// for older Netscapes (4-)
		{string: navigator.userAgent, subString: "Mozilla", identity: "Netscape", versionSearch: "Mozilla"}
	],
	dataOS : [
		{string: navigator.platform, subString: "Win", identity: "Windows"},
		{string: navigator.platform, subString: "Mac", identity: "Mac"},
		{string: navigator.platform, subString: "Linux", identity: "Linux"}
	],
	dataCurrVersion : {
		Chrome : 0.2,
		OmniWeb : 5,
		Konqueror: 3,
		Firefox: 3,
		Camino : 1,
		Netscape: 9,
		Explorer: 7,
		Flock: 1.2
	},
	urlDownloads : {
		Chrome :{ Windows:  { en : "http://www.google.com/chrome/index.html?hl=en&brand=CHMB&utm_campaign=fr&utm_source=fr-ha-emea-fr-sk&utm_medium=ha&utm_term=chrome",
							  fr : "http://www.google.com/chrome/index.html?hl=en&brand=CHMB&utm_campaign=fr&utm_source=fr-ha-emea-fr-sk&utm_medium=ha&utm_term=chrome"}
				},
		OmniWeb : { Mac: 	{ en : "http://www.omnigroup.com/applications/omniweb/download/",
							  fr : "http://www.omnigroup.com/applications/omniweb/download/"}
				},
		Konqueror: { Linux: { en : "http://www.kde.org/download/",
							  fr : "http://www.kde.org/download/"}
				},
		Firefox: { Windows: { en : "http://www.mozilla-europe.org/en/firefox/",
							  fr : "http://www.mozilla-europe.org/fr/firefox/"},
					Mac: 	{ en : "http://www.mozilla-europe.org/en/firefox/",
							  fr : "http://www.mozilla-europe.org/fr/firefox/"}
				},
		Camino : { Mac: 	{ en : "http://caminobrowser.org/",
							  fr : "http://caminobrowser.org/"}
				},
		Netscape: { Windows:  { en : "http://isp.netscape.com/software/download2.jsp",
							    fr : "http://isp.netscape.com/software/download2.jsp"}
				},
		Explorer: { Windows:  { en : "http://www.microsoft.com/france/windows/downloads/ie/getitnow.Mspx",
							    fr : "http://www.microsoft.com/france/windows/downloads/ie/getitnow.Mspx"}
					},
		Flock: { Windows:  {  en : "http://flock.com",
							  fr : "http://flock.com"}
			}
	}
};
mf.Infos.PluginList = false;
mf.Infos.PluginDetectInit = function()
{
	var agt=navigator.userAgent.toLowerCase();
	var ie  = (agt.indexOf("msie") != -1);
	var ns  = (navigator.appName.indexOf("Netscape") != -1);
	var win = ((agt.indexOf("win")!=-1) || (agt.indexOf("32bit")!=-1));
	var mac = (agt.indexOf("mac")!=-1);
	if (ie && win) 
		pluginlist = detectIE("Adobe.SVGCtl","SVG Viewer") + detectIE("SWCtl.SWCtl.1","Shockwave Director") + detectIE("ShockwaveFlash.ShockwaveFlash.1","Shockwave Flash") + detectIE("rmocx.RealPlayer G2 Control.1","RealPlayer") + detectIE("QuickTimeCheckObject.QuickTimeCheck.1","QuickTime") + detectIE("MediaPlayer.MediaPlayer.1","Windows Media Player") + detectIE("PDF.PdfCtrl.5","Acrobat Reader"); 

	if(ns || !win)
	{
		nse = ""; for (var i=0;i<navigator.mimeTypes.length;i++) nse += navigator.mimeTypes[i].type.toLowerCase();
		pluginlist = detectNS("image/svg-xml","SVG Viewer") + detectNS("application/x-director","Shockwave Director") + detectNS("application/x-shockwave-flash","Shockwave Flash") + detectNS("audio/x-pn-realaudio-plugin","RealPlayer") + detectNS("video/quicktime","QuickTime") + detectNS("application/x-mplayer2","Windows Media Player") + detectNS("application/pdf","Acrobat Reader");
	}

	function detectIE(ClassID,name) { result = false; document.write('<SCRIPT LANGUAGE=VBScript>\n on error resume next \n result = IsObject(CreateObject("' + ClassID + '"))</SCRIPT>\n'); if (result) return name+','; else return ''; };
	function detectNS(ClassID,name) { n = ""; if (nse.indexOf(ClassID) != -1) if (navigator.mimeTypes[ClassID].enabledPlugin != null) n = name+","; return n; };
	pluginlist += navigator.javaEnabled() ? "Java," : "";
	if (pluginlist.length > 0) pluginlist = pluginlist.substring(0,pluginlist.length-1);
	mf.Infos.PluginList = pluginlist;
};
////////////               / INFOS               ///////////




////////////                EVENT                ///////////
mf.Event = {};
mf.Event.addEvent = function( obj, type, callback, prop)
{
	if( mf.Infos.IE )
		obj.attachEvent("on" + type, callback );
	else
		obj.addEventListener(type, callback, prop);
};
mf.Event.removeEvent = function( obj, type, callback, prop)
{
	if( mf.Infos.IE )
		obj.detachEvent("on" + type, callback );
	else
		obj.removeEventListener(type, callback, prop);
};
mf.Event.getEventElement = function(evt)
{
	return evt.target || evt.srcElement;
};
mf.Event.addLoadEvent = function(func)
{
   var oldonload = window.onload;
   if(typeof window.onload != 'function')
   {
      window.onload = func;
   }
   else
   {
      window.onload = function()
      {
         oldonload();
         func();
      };
   }
};
mf.Event.killEvent = function( evt )
{
	if (evt.stopPropagation) 
		evt.stopPropagation();
	else
		evt.cancelBubble = true;
	
	if (evt.preventDefault) 
		  evt.preventDefault();
	else
		evt.returnValue = false;
};
mf.Event.TabEvaluables = new Array();
mf.Event.TabEvaluateSuccess = new Array();
mf.Event.IdIntervalInsert = 0;
mf.Event.setAfterLoad = function( evaluable )
{
	mf.Event.TabEvaluables.push(evaluable);
	mf.Event.TabEvaluateSuccess.push( false );
};
mf.Event.insertAfterLoad = function()
{
	mf.Event.IdIntervalInsert = window.setInterval( "mf.Event.processInsert()", 100 );
};
mf.Event.processInsert = function()
{
	var Errors = false;
	for( var i = 0; i < mf.Event.TabEvaluables.length; i++ )
	{
		if(mf.Event.TabEvaluateSuccess[i] == false)
		try
		{
			eval( mf.Event.TabEvaluables[i] );
			mf.Event.TabEvaluateSuccess[i] = true;
		}
		catch( err )
		{
			alert( err );
			Errors = true;
		}
	}
	
	if( Errors == true )
	{
		window.clearInterval( mf.Event.IdIntervalInsert );
	}
};
////////////               / EVENT               ///////////



////////////               UTILS               /////////////
mf.Utils = {};
mf.Utils.getMouseXY = function(e) 
{
	var tempX = 0;
	var tempY = 0;
	if (mf.Infos.IE) 
	{ // grab the x-y pos.s if browser is IE
		tempX = event.clientX + document.body.scrollLeft;
		tempY = event.clientY + document.body.scrollTop;
	}
	else 
	{  // grab the x-y pos.s if browser is NS
		tempX = e.pageX;
		tempY = e.pageY;
	}  
	// catch possible negative values in NS4
	if (tempX < 0){tempX = 0;}
	if (tempY < 0){tempY = 0;}  
	
	return Array(tempX, tempY);
};
mf.Utils.getCursorSelection = function()
{
	if ( document.selection )
	{
		return ( document.selection.createRange().text );
	}
	else if ( document.getSelection )
	{
		return ( document.getSelection() );
	}
	return false;
};
mf.Utils.is_set = function( $entry )
{
	if( typeof($entry) != "undefined" && $entry != null )
	{
		return true;	
	}
	return false;
};
mf.Utils.AutoFillInput = {};
mf.Utils.AutoFillInput.Id = false;
mf.Utils.onMouseUpAutofill = function( evt )
{
	var CurrentSelection = mf.Utils.getCursorSelection();
	if(trim(CurrentSelection) != '')
		document.getElementById(mf.Utils.AutoFillInput.Id).value = mf.Utils.getCursorSelection();
};
mf.Utils.setAutoFillInput = function( idinput )
{
	mf.Utils.AutoFillInput.Id = idinput;
	mf.Event.addEvent( document, "mouseup", mf.Utils.onMouseUpAutofill, false);
};
mf.Utils.changeInnerHTMLIdInterval = 0;
mf.Utils.changeInnerHtmlSwitchCond = function( bool, id, content1, content2 )
{
	var oldObject = document.getElementById( id );
	var parentObject = oldObject.parentNode;

	var newObject = document.createElement('div');

	if( bool )
		newObject.innerHTML = content1;
	else
		newObject.innerHTML = content2;

	try
	{
		parentObject.appendChild( newObject );
		oldObject.style.display = "none";
		return true;
	}
	catch(err)
	{
	}
};
/*
mf.Utils.changeInnerHtmlSwitchCond = function( bool, id, content1, content2 )
{
	var parentObject = document.getElementById( id ).offsetParent;
	var newObject = document.createElement('div');
	try
	{
		if( bool )
		{
			dynObject.innerHTML = content1;
		}
		else
		{
			dynObject.innerHTML = content2;
		}
		parentObject.appendChild( dynObject );
	}
	catch( err )
	{
		alert( err );
	}
}
*/
mf.Utils.thisMovie = function(movieName) 
{
	if (navigator.appName.indexOf ("Microsoft") !=-1) 
	{
		return window[movieName];
	}
	else 	
	{
		return document[movieName];
	}
};
mf.Utils.exists = function( maVar )
{
	if ( ( typeof maVar != "undefined" ) && ( maVar != null ) )
	{
		return true;
	}
	else
	{
		return false;	
	}
};
mf.Utils.in_array = function( str, stack )
{
	for(var k = 0; k < stack.length; k++)
	{
		if( stack[k] == str )
		{
			return true;
		}
	}
	return false;
};
mf.Utils.invert = function( input )
{
	return (input == true ) ? false:true;
};
////////////               / UTILS               ///////////




////////////               TEXT               ///////////
mf.Text = {};
mf.Text.removePx = function( input )
{
	if( typeof( input ) == 'number' )
	{
		return input;
	}
	else
	{
		if( input.substr( input.length - 2 ) == 'px' )
		{
			input = parseInt( input.substr( 0, input.length - 2 ) );
			return input;
		}
		else
		{
			return input;
		}
	}
};
mf.Text.makeFlashDiv = function( url, width, height, id, quality, autoplay, loop, transparent, flashvars )
{
	var FlashDivContent = '<div class="view-embed">'+mf.Text.makeFlashObject( url, width, height, id, quality, autoplay, loop, transparent, flashvars )+'<div class="content-media-flash"></object></div></div>';
	return FlashDivContent;
};
mf.Text.makeSimpleFlashDiv = function( url, width, height, id, quality, autoplay, loop, transparent, flashvars )
{
	var FlashDivContent = '<div class="content-media-flash">'+mf.Text.makeFlashObject( url, width, height, id, quality, autoplay, loop, transparent, flashvars )+'</div>';
	return FlashDivContent;
};
mf.Text.makeFlashObject = function( url, width, height, id, quality, autoplay, loop, transparent, flashvars )
{
	var fWidth = (width && width != '0') ? width:'100%';
	var fHeight = (height && height != '0') ? height:'100%';
	var fQuality = quality ? quality:'best';
	var fAutoplay = autoplay ? autoplay:'true';
	var fLoop = loop ? loop:'true';
	var fWmode = transparent ? 'transparent':'';
	
	var FlashDivContent = ''
	+'<object id="'+id+'" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0"'
	+' width="'+fWidth+'" height="'+fHeight+'">'
	+'<param name="movie" value="'+url+'" />'
	+'<param name="quality" value="'+fQuality+'" />'
	+'<param name="play" value="' +fAutoplay+ '" />'
	+'<param name="loop" value="' +fLoop+ '" />'
	+'<param name="wmode" value="'+fWmode+'" />'
	+'<param name="allowscriptaccess" value="always" />'
	+'<embed src="'+url+'" type="application/x-shockwave-flash" pluginspage=""'
	+' quality="'+fQuality+'"'
	+' width="'+fWidth+'" height="'+fHeight+'"'
	+' wmode="transparent"'
	+' play="'+fAutoplay+'"'
	+' loop="'+fLoop+'" name="'+id+'"';

	if( flashvars && flashvars.length && typeof(flashvars.length) == 'number' )
	{
		FlashDivContent += ' flashvars="';
		for( var fv = 0; fv < flashvars.length; fv++)
		{
			FlashDivContent += '&'+ flashvars[fv][0] + '=' + flashvars[fv][1];
		}
		FlashDivContent += '"';
	}
	FlashDivContent += '></embed></object>';
	return FlashDivContent;
};
mf.Text.makeQTDiv = function( url, width, height, id, has_controller, autoplay, loop, pluginspage )
{
	var fWidth = (width && width != '0') ? width:'100%';
	var fHeight = (height && height != '0') ? height:'100%';
	var fHasController = has_controller ? has_controller:'true';
	var fIsAutoplay = autoplay ? autoplay:'true';
	var fIsLoop = loop ? loop:'true';

	var QTDivContent = '<object width="'+fWidth+'" height="'+fHeight+'"'
	+' codebase="http://www.apple.com/qtactivex/qtplugin.cab">'
	+'<param name="movie" value="'+url+'" />'
	+'<param name="controller" value="'+fHasController+'" />'
	+'<param name="autoplay" value="'+fIsAutoplay+'" />'
	+'<param name="loop" value="'+fIsLoop+'" />'
	+'<embed src="'+url+'" type="video/quicktime" pluginspage="'+pluginspage+'"'
	+ ' width="'+fWidth+'" height="'+fHeight+'"'
	+ ' play="'+fIsAutoplay+'" loop="'+fIsLoop+' controller="'+fHasController+'" ></embed></object>';

	return QTDivContent;
};
mf.Text.makeRMDiv = function( url, width, height, controls, is_autoplay )
{
	var fWidth = (width && width != '0') ? width:'100%';
	var fHeight = (height && height != '0') ? height:'100%';
	var fControlls = controls ? controls:'true';
	var fIsAutoplay = is_autoplay ? is_autoplay:'true';

	var RMDivContent = '<object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"'
	+' width="'+fWidth+'" height="'+fHeight+'"><param name="src" value="' + url + '" />'
	+'<param name="controls" value="' + fControlls + '" />'
	+'<param name="autostart" value="'+fIsAutoplay+'" />'
	+'<embed src="'+url+'" pluginspage="http://real.com" type="audio/x-pn-realaudio-plugin"'
	+' width="'+fWidth+'" height="'+fHeight+'"'
	+' autostart="' + fIsAutoplay + '" controls="'+fControlls+'" ></embed></object>';

	return RMDivContent;
};
mf.Text.makeWMDiv = function( url, width, height, has_controller, is_autoplay, pluginspage )
{
	var fWidth = (width && width != '0') ? width:'100%';
	var fHeight = (height && height != '0') ? height:'100%';
	var fHasController = has_controller ? has_controller:'true';
	var fIsAutoplay = is_autoplay ? is_autoplay:'true';
	var fPluginSpace = pluginspage ? pluginspage:'';

	var WMDivContent = ''
	+'<object ID="MediaPlayer" CLASSID="CLSID:22D6f312-B0F6-11D0-94AB-0080C74C7E95" STANDBY="Loading Windows Media Player components..." type="application/x-oleobject"'
	+' width="'+fWidth+'" height="'+fHeight+'"><param name="filename" value="'+url+'" />'
	+'<param name="autostart" value="' + fIsAutoplay + '" />'
	+'<param name="showcontrols" value="'+fHasController+'" />'
	+'<embed src="'+url+'" type="application/x-mplayer2" pluginspage="'+fPluginSpace+'"'
	+' width="'+fWidth+'" height="'+fHeight+'"'
	+' autostart="true" showcontrols="'+fHasController+'" ></embed></object>';

	return WMDivContent;
};
////////////               TEXT               ///////////


////////////               SCREEN               ///////////
mf.Screen = {};
mf.Screen.ieNOTopera = document.all && navigator.userAgent.indexOf("Opera")==-1;
mf.Screen.ieHoffset_extra = document.all ? 15 : 0;
mf.Screen.IEcompattest = function()
{
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;
};
mf.Screen.getLeft0 = function()
{
	var dsocleft = document.all? mf.Screen.IEcompattest().scrollLeft : pageXOffset;
	var dsoctop = document.all? mf.Screen.IEcompattest().scrollTop : pageYOffset;
	var window_width = mf.Screen.ieNOTopera? mf.Screen.IEcompattest().clientWidth + mf.Screen.ieHoffset_extra : window.innerWidth + mf.Screen.ieHoffset_extra;
	var window_height = mf.Screen.ieNOTopera? mf.Screen.IEcompattest().clientHeight : window.innerHeight;

	if(document.all || document.getElementById)
	{
		return( parseInt(dsocleft) );
	}
	else if(document.layers)
	{
		return ( dsocleft);
	}
};
mf.Screen.getTop0 = function()
{
	var dsocleft=document.all? mf.Screen.IEcompattest().scrollLeft : pageXOffset;
	var dsoctop=document.all? mf.Screen.IEcompattest().scrollTop : pageYOffset;
	var window_width=mf.Screen.ieNOTopera? mf.Screen.IEcompattest().clientWidth + mf.Screen.ieHoffset_extra : window.innerWidth + mf.Screen.ieHoffset_extra;
	var window_height=mf.Screen.ieNOTopera? mf.Screen.IEcompattest().clientHeight : window.innerHeight;
	
	if (document.all||document.getElementById)
	{
		return ( parseInt(dsoctop) );
	}
	else if (document.layers)
	{
		return ( dsoctop );
	}
};
mf.Screen.getPageW = function()
{
	if (document.body)
	{
		return (document.body.clientWidth);
	}
	else
	{
		return (window.innerWidth);
	}
};
mf.Screen.getPageH = function()
{
	if (document.body)
	{
		return (document.body.clientHeight);
	}
	else
	{
		return (window.innerHeight);
	}
};
mf.Screen.getVisibleW = function()
{
	return document.documentElement.clientWidth;
};
mf.Screen.getVisibleH = function()
{
	return document.documentElement.clientHeight;
};
////////////               SCREEN               ///////////




////////////               OBJECT               ///////////
mf.Dyn = {};
mf.Object = {};
mf.Object.setFloat = function(o,float)
{
	if( mf.Infos.IE )
		o.style.styleFloat = float;
	else
		o.style.cssFloat = float;
};
mf.Object.setClass = function(o,newClass)
{
	o.className = newClass;
};
mf.Object.getTop = function(o)
{
	if (mf.Utils.exists(o.offsetParent))
		return (o.offsetTop + mf.Object.getTop(o.offsetParent) );
	else
		return (o.offsetTop);
};
mf.Object.getLeft = function(o)
{
	if (o.offsetParent)
		return (o.offsetLeft + mf.Object.getLeft(o.offsetParent) );
	else
		return (o.offsetLeft);
};
mf.Object.getHTML = function(o)
{
	if( !o.innerHTML || o.innerHTML == "" )
		return '<img name="'+ o.name +'" src="' + o.src + '"/>';
	else
		return o.innerHTML;
};
mf.Object.setSize = function(o, width, height, recursive, tagname)
{
	if( o.tagName == tagname || !tagname)
	{
		o.style.border = '#000000 double';
		o.style.overflow = 'hidden';

		if( o.tagName == "IMG" )
		{
			//alert( o.tagName );
			o.width = width;
			o.height = height;
			o.border = "0";
			//alert( "scdsz	" );
			o.style.width = width + "px";
			o.style.height = height + "px";

		}
		else
		{
			o.style.width = width + "px";
			o.style.height = height + "px";
		}
	}

	if( recursive && o.hasChildNodes() )
	{
		var ChildNodes = o.childNodes;
		for(var c=0;c<ChildNodes.length;c++)
		{
			if( ChildNodes.item(c).nodeType == 1 )
			{
				mf.Object.setSize( ChildNodes.item(c), width, height, true, tagname);
			}
		}
	}
};
mf.Object.getWidth = function(o)
{
	return o.style.width ? o.style.width : o.offsetWidth;
};
mf.Object.getHeight = function(o)
{
	return o.style.height ? o.style.height : o.offsetHeight;
};
mf.Object.getDynObject = function(o)
{
	if( o.is_dyn == true )
	{
		return o;
	}
	else
	{
		return mf.Object.getDynObject(o.parentNode);
	}
};
mf.Object.getVar = function(o, v)
{
	if( mf.Utils.exists( o.v ) == true )
	{
		return o.v;
	}
	else
	{
		return mf.Object.getVar(o.parentNode, v);
	}
};
mf.Object.allowMoving = function(o)
{
	var Top = mf.Object.getTop(o);
	var Left = mf.Object.getLeft(o);
	o.style.position = "absolute";
	o.style.left = Left + "px";
	o.style.top = Top + "px";
};
mf.Object.Overwrite = function(newNode, oldNode)
{
	if( mf.Utils.exists(oldNode.parentNode) )
	{
		var Parent = oldNode.parentNode;
		Parent.insertBefore(newNode,oldNode);
		var OldNode = Parent.removeChild(oldNode);
		return OldNode;
	}
	return false;
};
/* TRANSPARENCY */
mf.Object.allowTransparencyByID = function(id)
{
	if(mf.DEBUG)
		alert(id);
	mf.Object.allowTransparency(document.getElementById(id));
};
mf.Object.allowTransparency = function(o, width)
{
	if(!mf.Utils.exists(o.transparancy) )
	{
		o.transparancy = true;
		//o.style.position = "relative";	
		o.style.width = width?width:o.offsetWidth;
		//o.style.height = o.offsetHeight;
		//o.style.backgroundColor = "#fff";
	}
};
mf.Object.setAlphaByID = function(id, alpha )
{
	mf.Object.setAlpha(elements(id), alpha);
};
mf.Object.setAlpha = function( o, alpha )
{
	var opacity = alpha * 100;
	o.alpha = alpha;

	if( mf.Infos.IE )
	{
		//o.style.filter = "alpha(opacity="+opacity+", finishopacity="+opacity+", style=2)";
		o.style.MozOpacity = alpha;
		o.style.KhtmlOpacity = alpha;
	}
	o.style.filter = "alpha(opacity="+opacity+")";
	o.style.opacity = alpha;
};
mf.Object.meltEraseCallBack = function(){};
mf.Object.meltShowCallBack = function(){};
mf.Object.meltAlphaStep = 0.1;
mf.Object.meltInterval = 30; // ms
mf.Object.meltErase = function( o )
{
	mf.Object.allowTransparency(o);
	if( !mf.Utils.exists(o.alpha) )
		o.alpha = 1;

	window.clearInterval( o.meltIdInterval );
	o.meltIdInterval = setInterval('mf.Object.animateMeltErase( "'+o.id+'")', mf.Object.meltInterval);
};
mf.Object.animateMeltErase = function( ido )
{
	o = document.getElementById( ido );
	mf.Object.setAlpha(o, o.alpha - mf.Object.meltAlphaStep);
	if( o.alpha <= 0 )
	{
		mf.Object.setAlpha(o, 0);
		window.clearInterval( o.meltIdInterval );
		mf.Object.meltEraseCallBack();
	}
};
mf.Object.meltShow = function( o )
{
	mf.Object.allowTransparency(o);
	if( !mf.Utils.exists(o.alpha) )
		o.alpha = 0;

	window.clearInterval( o.meltIdInterval );
	o.meltIdInterval = setInterval('mf.Object.animateMeltShow( "'+o.id+'")', mf.Object.meltInterval);
};
mf.Object.animateMeltShow = function( ido )
{
	o = document.getElementById( ido );
	mf.Object.setAlpha(o, o.alpha + mf.Object.meltAlphaStep );
	if( o.alpha >= 1 )
	{
		mf.Object.setAlpha(o, 1);
		window.clearInterval( o.meltIdInterval );
		mf.Object.meltShowCallBack();
	}
};
/* TRANSPARENCY */

/* DRAG N DROP */
mf.Object.setHomeByObjectID = function( o, objID )
{
	var obj = document.getElementById( objID );
	mf.Object.setHomeByObject( o, obj );
};
mf.Object.setHomeByObject = function( o, obj )
{
	o.baseLeft = mf.Object.getLeft(obj);
	o.baseTop = mf.Object.getTop(obj);
};
mf.Object.getHome = function( o )
{
	return new Array( o.baseLeft, o.baseTop );
};
mf.Object.setHome = function( o, newhome )
{
	o.baseLeft = newhome[0];
	o.baseTop = newhome[1];
};
mf.Object.goHome = function( o )
{
	o.moving = true;
	o.IdInterval = window.setInterval( "mf.Dyn.dragDropHandler.moveHome('"+o.id+"')", mf.Dyn.dragDropHandler.INTERVAL );
};
mf.Object.addDropTarget = function( source, target, action, callback )
{
	if( target.id == source.id )
		return false;
	if( !source.dropTargetIDs )
		source.dropTargetIDs = new Array();
	source.dropTargetIDs.push(target.id);
	mf.Object.setDropAction( source, target, action);
	mf.Object.setDropCallBack(source, target, callback);
};
mf.Object.setDragCallBack = function(o, func)
{
	if( typeof(func) == "function" )
		o.dragCallBack = func;
};
mf.Object.setDropCallBack = function(source, target, func)
{
	if( !source.dropCallBacks )
		source.dropCallBacks = new Array();
	if( typeof(func) == "function" )
		source.dropCallBacks[target.id] = func;
};
mf.Object.setDropAction = function( source, target, action)
{
	if( !source.dropTargetActions )
		source.dropTargetActions = new Array();
	if( !action )
	{
		source.dropTargetActions[target.id] = mf.Dyn.dragDropHandler.DROP_ACTION_SWITCH;
		/*
		mf.Dyn.dragDropHandler.DROP_ACTION_SWITCH = 0;
		mf.Dyn.dragDropHandler.DROP_ACTION_REPLACE = 1;
		mf.Dyn.dragDropHandler.DROP_ACTION_OVERLAY = 2;
		mf.Dyn.dragDropHandler.DROP_ACTION_PUSH_HOR = 3;
		mf.Dyn.dragDropHandler.DROP_ACTION_PUSH_VER = 4;
		*/
	}
	else
	{
		source.dropTargetActions[target.id] = action;
	}
};
mf.Object.hitTestObject = function( ob, obj )
{
	function getOffset(o)
	{
		for(var r = {l: o.offsetLeft, t: o.offsetTop, r: o.offsetWidth, b: o.offsetHeight};
		o = o.offsetParent; r.l += o.offsetLeft, r.t += o.offsetTop);
		return r.r += r.l, r.b += r.t, r;
	};
	for(var b, s, r = [], a = getOffset(ob), j = isNaN(obj.length), i = (j ? obj = [obj] : obj).length; i;
	b = getOffset(obj[--i]), (a.l == b.l || (a.l > b.l ? a.l <= b.r : b.l <= a.r)) && (a.t == b.t || (a.t > b.t ? a.t <= b.b : b.t <= a.b)) && (r[r.length] = obj[i]));
	return j ? !!r.length : r;
};
mf.Object.hitTestObjectByID = function( o,  objID )
{
	return mf.Object.hitTestObject(o, document.getElementById(objID));
};
/* /DRAG N DROP */
////////////               OBJECT               ///////////



////////////               DYN               ///////////
mf.Dyn.dragDropHandler = function()
{
	this.currentID = 0;
	this.tabDragObjects = new Array();
	this.tabMovingObjects = new Array();
	this.getFirstNamedTag = function( name )
	{
		var elements = document.getElementsByName(name);
		return elements[0];
	};
	this.getMovie = function(movieName) 
	{
		if (navigator.appName.indexOf("Microsoft") != -1) 
		{
			return window[movieName]
		}
		else 
		{
			return document[movieName]
		}
	};
	this.makeDraggableByID = function( staticObjectId, hideOriginal, dragcallback )
	{
		return this.makeDraggable(document.getElementById(staticObjectId), hideOriginal, dragcallback);
	};
	this.makeDraggable = function( staticObject, hideOriginal, dragcallback )
	{
		hideOriginal = (hideOriginal == null) ? true: hideOriginal;
		
		Top = mf.Object.getTop(staticObject);
		Left = mf.Object.getLeft(staticObject);
		
		var DynObjectName = 'mondo_dyn_object_' + this.currentID;
		this.tabDragObjects.push(DynObjectName);
		this.tabMovingObjects[DynObjectName] = false;
		
		var dynObject = document.createElement('div');
		dynObject.name = DynObjectName;
		dynObject.id = DynObjectName;

		dynObject.style.position = "absolute";
		dynObject.style.left = Left + "px";
		dynObject.style.top = Top + "px";
		
		dynObject.left = Left;
		dynObject.top = Top;
		
		dynObject.baseLeft = Left;
		dynObject.baseTop = Top;
		dynObject.innerHTML = mf.Object.getHTML(staticObject);
		dynObject.is_dyn = true;
		dynObject.style.zIndex = mf.Dyn.dragDropHandler.BASE_DEPTH + this.currentID;
		mf.Event.addEvent( dynObject, "mousedown", mf.Dyn.dragDropHandler.draggableObjectMouseDown, false);
		mf.Object.setDragCallBack(dynObject, dragcallback);
		if( hideOriginal == true )
		{
			staticObject.style.visibility = "hidden";
		}
		this.currentID++;
		document.body.appendChild( dynObject );
		return dynObject;
	};
};
/////////////////////////// STATIC ////////////////////////////////
mf.Dyn.dragDropHandler.SELECTED_OBJECT_DEPTH = 1000;
mf.Dyn.dragDropHandler.SELECTED_OBJECT_ALPHA = 0.8;
mf.Dyn.dragDropHandler.BASE_DEPTH = 500;
mf.Dyn.dragDropHandler.CURRENT_DRAG_OBJECT = false;
mf.Dyn.dragDropHandler.INTERVAL = 40;
mf.Dyn.dragDropHandler.EASE = 0.6;
mf.Dyn.dragDropHandler.DROP_ACTION_SWITCH = 0;
mf.Dyn.dragDropHandler.DROP_ACTION_REPLACE = 1;
mf.Dyn.dragDropHandler.DROP_ACTION_OVERLAY = 2;
mf.Dyn.dragDropHandler.DROP_ACTION_PUSH_HOR = 3;
mf.Dyn.dragDropHandler.DROP_ACTION_PUSH_VER = 4;
mf.Dyn.dragDropHandler.moveHome = function( objID )
{
	var obj = document.getElementById( objID );
	var ease =mf.Dyn.dragDropHandler.EASE;
	obj.left = obj.baseLeft + (Math.round(ease*(obj.left - obj.baseLeft) ));
	obj.top = obj.baseTop + (Math.round(ease*(obj.top - obj.baseTop) ));
	obj.style.left = obj.left + "px";
	obj.style.top = obj.top + "px";
	if( Math.abs( obj.left - obj.baseLeft ) <= (1/ease) && Math.abs(obj.top - obj.baseTop) <= Math.ceil( 1/ease ))
	{
		obj.left = obj.baseLeft;
		obj.top = obj.baseTop;
		obj.style.left = obj.left + "px";
		obj.style.top = obj.top + "px";
		obj.moving = false;
		window.clearInterval( obj.IdInterval );
	}
};
mf.Dyn.dragDropHandler.draggableObjectMouseDown = function( Event )
{
	if( mf.Dyn.dragDropHandler.CURRENT_DRAG_OBJECT )
	{
		mf.Dyn.dragDropHandler.CURRENT_DRAG_OBJECT.style.zIndex = mf.Dyn.dragDropHandler.CURRENT_DRAG_OBJECT.style.zIndex - 1;
	}
	var target = Event.target || Event.srcElement;
	var obj = mf.Object.getDynObject(target);
	
	if( obj.moving == true )
	{
		mf.Event.killEvent(Event);
		return false;
	}

	obj.style.zIndex = mf.Dyn.dragDropHandler.SELECTED_OBJECT_DEPTH;
	mf.Object.setAlpha(  obj, mf.Dyn.dragDropHandler.SELECTED_OBJECT_ALPHA );

	var ObjectLeft = parseInt(mf.Text.removePx( obj.style.left ));
	var ObjectTop = parseInt(mf.Text.removePx( obj.style.top ));

	var MousePosition = mf.Utils.getMouseXY(Event);
	var MouseLeft = parseInt(MousePosition[0]);
	var MousetTop = parseInt(MousePosition[1]);

	obj.dragX = MouseLeft - ObjectLeft;
	obj.dragY = MousetTop - ObjectTop;

	mf.Dyn.dragDropHandler.CURRENT_DRAG_OBJECT = obj;

	mf.Event.addEvent( document, "mousemove", mf.Dyn.dragDropHandler.draggableObjectMouseMove, false);
	mf.Event.addEvent( document, "mouseup", mf.Dyn.dragDropHandler.draggableObjectMouseUp, false);	

	if( obj.dragCallBack && typeof(obj.dragCallBack) == "function" )
		obj.dragCallBack();

	mf.Event.killEvent(Event);
};
mf.Dyn.dragDropHandler.draggableObjectMouseMove = function( Event )
{
	var MousePosition = mf.Utils.getMouseXY(Event);
	var obj = mf.Dyn.dragDropHandler.CURRENT_DRAG_OBJECT;
	
	obj.left = MousePosition[0] - obj.dragX;
	obj.top = MousePosition[1] - obj.dragY;
	
	obj.style.left =  obj.left + "px";
	obj.style.top = obj.top + "px";
	
	mf.Event.killEvent(Event);
	
	if( mf.Utils.exists(obj.dropTargetIDs) )
	{
		return false;
	}

	var Hit = false;
	var HitObjectID = '';
	for( var d = 0; d < obj.dropTargetIDs.length; d++ )
	{
		var dobj = document.getElementById( obj.dropTargetIDs[d] );
		if( mf.Object.hitTestObject(obj, dobj) && Hit == false )
		{
			Hit = true;
			HitObjectID = dobj.id;
			mf.Object.setAlpha( dobj, 0.5 );
		}
		else
		{
			mf.Object.setAlpha( dobj, 1 );
		}
	}
	mf.Object.setAlpha(obj, Hit ? 0.9 : 1 );
	obj.HitObject = Hit ? HitObjectID : false;
};
mf.Dyn.dragDropHandler.draggableObjectMouseUp = function( Event )
{
	var obj = mf.Dyn.dragDropHandler.CURRENT_DRAG_OBJECT;
	mf.Object.setAlpha( obj, 1 );
	if( obj.HitObject )
	{
		switch( obj.dropTargetActions[obj.HitObject])
		{
			case mf.Dyn.dragDropHandler.DROP_ACTION_SWITCH:
				var HitObject = document.getElementById( obj.HitObject );
				var CurrentObjectHome = mf.Object.getHome(obj);
				mf.Object.setHomeByObject( obj, HitObject );
				mf.Object.setHome( HitObject, CurrentObjectHome );
				mf.Object.setAlpha( HitObject, 1 );
				mf.Object.goHome(HitObject);
			break;
			
			case mf.Dyn.dragDropHandler.DROP_ACTION_REPLACE:
				var HitObject = document.getElementById( obj.HitObject );
				mf.Object.setAlpha( HitObject, 0 );
				mf.Object.setHomeByObjectID( obj, obj.HitObject );
			break;
			
			case mf.Dyn.dragDropHandler.DROP_ACTION_OVERLAY:
				mf.Object.setHomeByObjectID( obj, obj.HitObject );
			break;
			
			case mf.Dyn.dragDropHandler.DROP_ACTION_PUSH_HOR:
				var HitObject = document.getElementById( obj.HitObject );
				var HitObjectHome = mf.Object.getHome(HitObject);			
				HitObjectHome[0] += HitObject.offsetWidth;
				mf.Object.setHomeByObject( obj, HitObject );
				mf.Object.setHome( HitObject, HitObjectHome );
				mf.Object.setAlpha( HitObject, 1 );
				mf.Object.goHome(HitObject);
			break;
			
			case mf.Dyn.dragDropHandler.DROP_ACTION_PUSH_VER:
				var HitObject = document.getElementById( obj.HitObject );
				var HitObjectHome =mf.Object.getHome(HitObject);
				HitObjectHome[1] += HitObject.offsetHeight;
				mf.Object.setHomeByObject( obj, HitObject );
				mf.Object.setHome( HitObject, HitObjectHome );
				mf.Object.setAlpha( HitObject, 1 );
				mf.Object.goHome( HitObject );
			break;
		}
		if( typeof(obj.dropCallBacks[obj.HitObject]) == "function" )
		{
			obj.dropCallBacks[obj.HitObject]();
		}
	}
	mf.Object.goHome(obj);
	mf.Event.removeEvent( document, "mousemove", mf.Dyn.dragDropHandler.draggableObjectMouseMove, false);
	mf.Event.removeEvent( document, "mouseup", mf.Dyn.dragDropHandler.draggableObjectMouseUp, false);
	mf.Event.killEvent(Event);
};
/////////////////////////// /STATIC ///////////////////////////////////////

mf.Dyn.scrollHandler = {};
mf.Dyn.scrollHandler.IdInterval = new Array();
mf.Dyn.scrollHandler.scrollStep = 5;
mf.Dyn.scrollHandler.scrollIt = 30;
mf.Dyn.makeScrollDiv = function( SupportDivId, ContentDivId, BtnUpId, BtnDoId, height, selectedItemId, centerSelected )
{
	height = (height == null)? 200:height;

	var Support = document.getElementById(SupportDivId);
	var Content = document.getElementById(ContentDivId);
	var BtnUp = document.getElementById(BtnUpId);
	var BtnDo = document.getElementById(BtnDoId);

	var BaseTop = 0;
	if(selectedItemId != null)
	{
		var SelectedObject = document.getElementById( selectedItemId );
		BaseTop = -SelectedObject.offsetTop;
		
		if( centerSelected )
		{
			var Marge = Math.round((height - SelectedObject.offsetHeight) / 2);
			BaseTop += Marge;
		}
	}

	Support.style.position = "relative";
	Support.style.overflow = "hidden";
	Support.style.height = height + "px";
	
	Content.style.position = "absolute";
	Content.style.left = "0px";
	Content.style.top = BaseTop + "px";

	Content.topMax = 0;
	Content.topMin = Support.offsetHeight - Content.offsetHeight;

	BtnUp.scrollDivId = ContentDivId;
	mf.Event.addEvent( BtnUp, "mouseover", mf.Dyn.scrollHandler.scrollDo );
	mf.Event.addEvent( BtnUp, "mouseout", mf.Dyn.scrollHandler.stopScroll );

	BtnDo.scrollDivId = ContentDivId;		
	mf.Event.addEvent( BtnDo, "mouseover", mf.Dyn.scrollHandler.scrollUp );
	mf.Event.addEvent( BtnDo, "mouseout", mf.Dyn.scrollHandler.stopScroll );
};
mf.Dyn.scrollHandler.scrollUp = function(evt)
{
	var target = evt.target || evt.srcElement;
	//var ScrollContent = mf.Object.getVar(target, 'scrollDivId' );
	var ScrollContent = target.scrollDivId;
	var Step = - mf.Dyn.scrollHandler.scrollStep;
	mf.Dyn.scrollHandler.IdInterval[ScrollContent] = setInterval( 'mf.Dyn.scrollHandler.animateScrollUp( "'+ScrollContent+ '", "'+Step+'" )', mf.Dyn.scrollHandler.scrollIt);
	mf.Event.killEvent(evt);
};
mf.Dyn.scrollHandler.scrollDo = function(evt)
{
	var target = evt.target || evt.srcElement;
	var ScrollContent = target.scrollDivId;
	var Step = mf.Dyn.scrollHandler.scrollStep;
	mf.Dyn.scrollHandler.IdInterval[ScrollContent] = setInterval( 'mf.Dyn.scrollHandler.animateScrollDo( "'+ScrollContent+ '", "'+Step+'" )', mf.Dyn.scrollHandler.scrollIt);
	mf.Event.killEvent(evt);
};
mf.Dyn.scrollHandler.stopScroll = function(evt)
{
	var target = evt.target || evt.srcElement;
	var ScrollContent = target.scrollDivId;
	window.clearInterval( mf.Dyn.scrollHandler.IdInterval[ScrollContent] );
};
mf.Dyn.scrollHandler.animateScrollUp = function( id, step )
{
	var target = document.getElementById(id);
	step = parseInt( step );
	var TargetTop = parseInt(mf.Text.removePx(target.style.top));
	if( TargetTop > target.topMin)
		target.style.top = ( TargetTop + step ) + "px";
	else
		target.style.top = target.topMin + "px";
};
mf.Dyn.scrollHandler.animateScrollDo = function( id, step )
{
	var target = document.getElementById(id);
	step = parseInt( step );
	var TargetTop = parseInt(mf.Text.removePx(target.style.top));
	if( TargetTop < target.topMax)
		target.style.top = ( TargetTop + step ) + "px";
	else
		target.style.top = target.topMax + "px";
};
////////////             /  DYN               ///////////




////////////               EASE              ///////////
mf.Ease = {};
mf.Ease.easeAnimateId = 0;
mf.Ease.easing = false;
mf.Ease.mondoEaseManagerClass = function()
{
	var TabDesiredWidth = new Array();
	this.TabDesiredWidth = TabDesiredWidth;

	var TabCurrentWidth = new Array();
	this.TabCurrentWidth = TabCurrentWidth;

	var TabDesiredHeight = new Array();
	this.TabDesiredHeight = TabDesiredHeight;

	var TabCurrentHeight = new Array();
	this.TabCurrentHeight = TabCurrentHeight;

	var TabEtats = new Array();
	this.TabEtats = TabEtats;
	
	var TabWidths = new Array();
	this.TabWidths = TabWidths;
	
	var TabDivIDs = new Array();
	this.TabDivIDs = TabDivIDs;

	var Processing = false;
	this.Processing = Processing;
	
	var OutFunction;
	this.OutFunction = OutFunction;

	function setEase( newease )
	{
		mf.Ease.mondoEaseManagerClass.coeffease = newease;
	};
	this.setEase = setEase;

	function getMovie(movieName) 
	{
		if (navigator.appName.indexOf ("Microsoft") !=-1) 
		{
			return window[movieName];
		}
		else 
		{
			return document[movieName];
		}
	};
	this.getMovie = getMovie;
	function Register( iditem, opened, move, offset )
	{
		if( !mf.Utils.exists( iditem ) ){return false;}
		if( mf.Utils.exists( opened ) )
		{
			this.TabEtats[iditem] = opened;
		}
		else
		{
			this.TabEtats[iditem] = true;
		}
		document.getElementById( iditem ).style.display = "block";
		if( mf.Utils.exists( offset ) )
		{
			this.TabWidths[iditem] = document.getElementById( iditem ).offsetHeight + offset;
		}
		else
		{
			this.TabWidths[iditem] = document.getElementById( iditem ).offsetHeight;
		}
		if( ( mf.Utils.exists( move ) ) && move == true )
		{
			if( this.TabEtats[iditem] == false )
			{
				document.getElementById( iditem ).style.height = this.TabWidths[iditem] + 'px';
				this.TabEtats[iditem] = false;				
			}
			else
			{
				document.getElementById( iditem ).style.height = '0px';
				this.TabEtats[iditem] = false;				
			}
		}
	};
	this.Register = Register;

	function manageEase( divId, TabBtns, TabEtat )
	{
		// Chaque Div :
		for( var i = 0; i < TabEtat.length; i++ )
		{
			// Si celui cliquŽ
			switch (TabBtns[i])
			{
				case divId:
					var OldClass = elements(divId).className;
					if( OldClass.indexOf( ' ' ) >= 0 )
					{
						var ClassParts = OldClass.split(' ');
						elements(divId).className = ClassParts[0];
					}
					if( TabEtat[i] == false )
					{
						TabEtat[i] = mf.Utils.invert( TabEtat[i] );
						mondoEaseManager.EaseOpenClose( divId );
					}
				break;

				default:
					if( elements(divId).className.indexOf( ' ' ) >= 0 )
					{
						var ClassParts = elements(divId).className.split(' ');
						elements(divId).className = ClassParts[0];
					}
					elements(TabBtns[i]).className = elements(divId).className + " closed";
					if( TabEtat[i] == true )
					{
						TabEtat[i] = mf.Utils.invert( TabEtat[i] );
						mondoEaseManager.EaseOpenClose( TabBtns[i] );
					}
				break;
			}
		}
	};
	this.manageEase = manageEase;
	function EaseOpenClose( iditem, closeOffset, outFunction )
	{
		var minValue = 0;
		if( mf.Utils.exists( closeOffset ) )
		{
			minValue = parseInt(closeOffset);
		}
		if( !mf.Utils.exists(iditem) )
		{
			return false;
		}
		if(! mf.Utils.exists( this.TabEtats[iditem] ) )
		{
			this.Register( iditem, true );
		}
		if( mf.Utils.exists( outFunction ) )
		{
			this.OutFunction = outFunction;
		}
		if( this.TabEtats[iditem] == false)
		{
			this.launchEase( iditem , null, null, minValue, this.TabWidths[iditem] );
			TabEtats[iditem] = true;
		}
		else
		{
			this.launchEase( iditem , null, null, this.TabWidths[iditem], minValue );
			this.TabEtats[iditem] = false;	
		}
	};
	this.EaseOpenClose = EaseOpenClose;
	function launchEase( divid, widthBase, widthCible, heightBase, heightCible, outFunction )
	{
		if( divid == null )
		{return;}
		if( mf.Utils.exists( outFunction ) )
		{
			this.OutFunction = outFunction;
		}
		if( mf.Utils.exists( widthCible ) )
		{			
			widthCible = mf.Text.removePx( widthCible );
			this.TabDesiredWidth[divid] = parseInt(widthCible);
			if( !mf.Utils.exists( this.TabCurrentWidth[divid] ) )
			{
				if( mf.Utils.exists( widthBase ) )
				{
					widthBase = mf.Text.removePx( widthBase );
				}
				else
				{
					widthBase = document.getElementById( divid ).offsetWidth;
				}
				this.TabCurrentWidth[divid] = parseInt(widthBase);
			}
		}
		if( mf.Utils.exists( heightCible ) )
		{
			var TheHeightCible = mf.Text.removePx( heightCible );
			this.TabDesiredHeight[divid] = parseInt(TheHeightCible);
			if( !mf.Utils.exists( this.TabCurrentHeight[divid] ) )
			{
				var TheHeightBase = document.getElementById( divid ).offsetHeight;
				if( mf.Utils.exists( heightBase ) )
				{
					TheHeightBase = mf.Text.removePx( heightBase );
				}
				TheHeightBase = mf.Text.removePx( TheHeightBase );
				this.TabCurrentHeight[divid] = mf.Text.removePx( TheHeightBase );
			}
		}
		if( this.TabDivIDs.length < 1 || (!mf.Utils.in_array( divid, this.TabDivIDs )) )
		{
			this.TabDivIDs.push( divid );
		}
		if( mf.Ease.easing == false )
		{
			mf.Ease.easing = true;
			mf.Ease.easeAnimateId = setInterval(this.animateEase, 50);
		}
	};
	this.launchEase = launchEase;
	function animateEase()
	{
		var ie = '';
		var nb = 0;
		for( var iid = 0; iid < TabDivIDs.length; iid++ )
		{
			ie = TabDivIDs[iid];
			if( mf.Utils.exists( TabCurrentWidth[ie] ) )
			{	
				nb++;
				if( Math.abs( TabDesiredWidth[ie] - TabCurrentWidth[ie] ) < mf.Ease.mondoEaseManagerClass.ArrivedNegligence  )
				{
					document.getElementById(ie).style.width = TabDesiredWidth[ie] + "px";
					TabCurrentWidth[ie] = TabDesiredWidth[ie];
					deleteEaseParams( iid, true );
				}
				else
				{
					try
					{
						var newWidth = TabCurrentWidth[ie] +  Math.round(  mf.Ease.mondoEaseManagerClass.coeffease * ( TabDesiredWidth[ie] - TabCurrentWidth[ie] ) );
						document.getElementById(ie).style.width = newWidth + "px";
						TabCurrentWidth[ie] = newWidth;
					}
					catch( e )
					{
						document.getElementById(ie).style.width = TabDesiredWidth[ie] + "px";
						TabCurrentWidth[ie] = TabDesiredWidth[ie];
					}
				}
			}
			if( mf.Utils.exists( TabCurrentHeight[ie] ) )
			{
				nb++;
				var diff =  TabDesiredHeight[ie] - TabCurrentHeight[ie];
				if( Math.abs( TabDesiredHeight[ie] - TabCurrentHeight[ie] ) < mf.Ease.mondoEaseManagerClass.ArrivedNegligence  )
				{
					TabCurrentHeight[ie] = TabDesiredHeight[ie];
					document.getElementById(ie).style.height = TabDesiredHeight[ie] + "px";
					deleteEaseParams( iid, false );
				}
				else
				{
					try
					{
						var newHeight = TabCurrentHeight[ie] +  Math.round(  mf.Ease.mondoEaseManagerClass.coeffease * ( TabDesiredHeight[ie] - TabCurrentHeight[ie] ) );
						document.getElementById(ie).style.height = newHeight + "px";						
						TabCurrentHeight[ie] = newHeight;
					}
					catch( e )
					{
						document.getElementById(ie).style.height = TabDesiredHeight[ie] + "px";
						TabCurrentHeight[ie] = TabDesiredHeight[ie];
						deleteEaseParams( iid, false );
					}
				}
			}
		}
		if(	nb < 1 )
		{
			if( mf.Utils.exists( mondoEaseManager.OutFunction ) )
			{
				mondoEaseManager.OutFunction();
				mondoEaseManager.OutFunction = null;
			}
			clearInterval( mf.Ease.easeAnimateId );
			mf.Ease.easing = false;
		}
	};
	this.animateEase = animateEase;

	function deleteEaseParams( id, hor )
	{
		var idtext = TabDivIDs[id];
		TabDivIDs[id] = null;
		if( hor == true )
		{
			TabCurrentWidth[idtext] = null;
			TabDesiredWidth[idtext] = null;
		}
		else
		{
			TabCurrentHeight[idtext] = null;
			TabDesiredHeight[idtext] = null;
		}
	};
	this.deleteEaseParams = deleteEaseParams;
};
mf.Ease.mondoEaseManagerClass.coeffease = 0.2;
mf.Ease.mondoEaseManagerClass.ArrivedNegligence = Math.floor( 1 / 0.2 );

mf.Ease.AutoOpenCloseMenuInstances = [];
mf.Ease.AutoOpenCloseMenuClass = function()
{
	this.index = mf.Ease.AutoOpenCloseMenuInstances.length;
	mf.Ease.AutoOpenCloseMenuInstances[this.index] = this;

	var EventType = 'mouseover';
	this.EventType = EventType;

	var EaseManager = new mf.Ease.mondoEaseManagerClass();
	this.EaseManager = EaseManager;

	var TabBtns = new Array();
	this.TabBtns = TabBtns;

	var TabEtat = new Array();
	this.TabEtat = TabEtat;

	var CurrentDiv = '';
	this.CurrentDiv = CurrentDiv;

	function addDiv( divId, btnId, closeIt )
	{
		this.EaseManager.Register( divId, true, closeIt );
		this.TabBtns.push(divId);
		
		var State = closeIt ? false:true;
		this.TabEtat.push(State);
		
		if(!closeIt)
			this.CurrentDiv = divId;

		var DivElement = document.getElementById(divId);
		DivElement.style.overflow = 'hidden';
		
		var BtnElement = document.getElementById(btnId);
		DivElement.style.cursor = 'pointer';
		BtnElement.divId = divId;
		
		//var CallBack = function() this.manageEase;
		BtnElement.EaseClassIndex = this.index;
		mf.Event.addEvent( BtnElement, this.EventType, mf.Ease.AutoOpenCloseMenuInstances[this.index].manageEase, true );
	};
	this.addDiv = addDiv;

	function manageEase( evt )
	{
		var EventElement = mf.Event.getEventElement(evt);
		var EaseClassIndex = EventElement.EaseClassIndex;
		var AutoOpenCloseMenuInstance = mf.Ease.AutoOpenCloseMenuInstances[EaseClassIndex];
		var divId = EventElement.divId;
		
		for( var i = 0; i < AutoOpenCloseMenuInstance.TabEtat.length; i++ )
		{
			if( AutoOpenCloseMenuInstance.TabBtns[i] == divId )
			{
				if( AutoOpenCloseMenuInstance.TabEtat[i] == false )
				{
					AutoOpenCloseMenuInstance.TabEtat[i] = AutoOpenCloseMenuInstance.TabEtat[i] ? false:true;
					AutoOpenCloseMenuInstance.EaseManager.EaseOpenClose( divId );
				}
			}
			else if( AutoOpenCloseMenuInstance.TabEtat[i] == true )
			{
				AutoOpenCloseMenuInstance.TabEtat[i] = AutoOpenCloseMenuInstance.TabEtat[i] ? false:true;
				AutoOpenCloseMenuInstance.EaseManager.EaseOpenClose( AutoOpenCloseMenuInstance.TabBtns[i] );
			}
		}
		AutoOpenCloseMenuInstance.CurrentDiv = divId;
	};
	this.manageEase = manageEase;
};
////////////               EASE              ///////////


///
/// JAMAIS UTILISER L'OPERATEUR ATTRIBUTE_TEXT_BRUT SUR UNE SELECTION !!!!!!!!!!!!!!!!!!!!!!!!
///
////////////               XML              ///////////
mf.mondoXmlClientClass = function()
{
	var Kommunikator;
	this.Kommunikator = Kommunikator;
	var OutFunction;
	this.OutFunction = OutFunction;
	var AttributeArray;
	this.AttributeArray = AttributeArray;
	var xmlType = 'ezobject';
	this.xmlType = xmlType;
	var ImageAliases = new Array('original');
	this.ImageAliases = ImageAliases;
	var NoCache = true;
	this.NoCache = NoCache;

	function LoadResult( req, nextfunc, attributeArray, xmlType )
	{
		this.Kommunikator = null;
		this.Kommunikator = this.getXMLHTTP();
		
		this.Kommunikator.OutFunction = nextfunc;
		if( xmlType != null )
			this.Kommunikator.xmlType = xmlType;
		else
			this.Kommunikator.xmlType = this.xmlType;

		if( this.ImageAliases.length == 0 )
			this.ImageAliases = new Array( 'original' );

		this.Kommunikator.Chlabelek = "test";
		this.Kommunikator.processXmlResponse = this.processXmlResponse;
		this.Kommunikator.processXmlKeyword = this.processXmlKeyword;
		this.Kommunikator.ImageAliases = this.ImageAliases;

		if( this.NoCache == true )
		{
			var uniqString = Math.random();
			if(req.lastIndexOf('?') == -1 )
				req += "?";
			req += "&nocache=" + uniqString.toString();
		}

		this.Kommunikator.onreadystatechange = function(evt)
		{
			if( this.readyState == 4 )
			{
				if( this.status == 200 )
				{
					if( this.xmlType == 'ezobject' )
					{
						this.processXmlResponse( this.responseText );
					}
					else if( this.xmlType == 'ezkeyword' )
					{						
						this.processXmlKeyword( this.responseText );
					}
					else
					{
						if( typeof(this.OutFunction) == "function" )
							this.OutFunction(this.responseText);
					}
				}
				else 
				{
				}
			} 
		};
		if(mf.Utils.exists(attributeArray))
		{
			this.AttributeArray	= attributeArray;
		}
		else
		{
			this.AttributeArray = new Array();	
		}
		this.OutFunction = nextfunc;

		this.Kommunikator.open("POST", req , true);
		this.Kommunikator.send(null);
	};
	this.LoadResult = LoadResult;

    function processXmlResponse(xml)
    {
        var doc;
        if (window.ActiveXObject)
        {
			doc = new ActiveXObject("Microsoft.XMLDOM");
            doc.async = 'false';
            doc.loadXML(xml);
        }
        else
        {
            var parser=new DOMParser();
            doc = parser.parseFromString(xml,"text/xml");
        }

        if( doc.hasChildNodes() )
        {
            var tabResult = Array();
            var allobjects = doc.getElementsByTagName('object');
            for(var o = 0; o < allobjects.length; o++)
            {
                tabResult[o] = Array();
                
                var title = allobjects[o].getElementsByTagName('title');
                tabResult[o]['title'] = title[0].firstChild.nodeValue;
                
                var url = allobjects[o].getElementsByTagName('url');
                tabResult[o]['url'] = url[0].firstChild.nodeValue;
                
                var section_id = allobjects[o].getElementsByTagName('section_id');
                tabResult[o]['section_id'] = section_id[0].firstChild.nodeValue;
    
                var node_id = allobjects[o].getElementsByTagName('node_id');
                tabResult[o]['node_id'] = node_id[0].firstChild.nodeValue;
    
                var parent_node_id = allobjects[o].getElementsByTagName('parent_node_id');
                tabResult[o]['parent_node_id'] = parent_node_id[0].firstChild.nodeValue;

                var short_date = allobjects[o].getElementsByTagName('shortdate');
                tabResult[o]['shortdate'] = short_date[0].firstChild.nodeValue;

                var year = allobjects[o].getElementsByTagName('year');
                tabResult[o]['year'] = year[0].firstChild.nodeValue;

				var attributes = allobjects[o].getElementsByTagName('attribute');
				tabResult[o]['attributes'] = Array();

				for(var at=0; at < attributes.length; at++)
				{
					if( mf.Utils.exists( attributes[at].getElementsByTagName('value')[0] ) )
					{
						var key_temp = attributes[at].getElementsByTagName('name')[0].firstChild.nodeValue;
						var valuetemp = attributes[at].getElementsByTagName('value')[0].firstChild;
						
						if(valuetemp)
						{
							tabResult[o]['attributes'][key_temp] = Array();
							tabResult[o]['attributes'][key_temp]['type'] = attributes[at].getElementsByTagName('type')[0].firstChild.nodeValue;

							if( this.ImageAliases.length > 0 && tabResult[o]['attributes'][key_temp]['type'] == 'ezimage' )
							{
								var Alias = '';
								var nodetemp = attributes[at].getElementsByTagName('value');
								tabResult[o]['attributes'][key_temp]['value'] = new Array();
								
								for( var ia = 0; ia < this.ImageAliases.length; ia++ )
								{
									Alias = nodetemp[0].getElementsByTagName( this.ImageAliases[ia] );
									var width = Alias[0].getElementsByTagName('width')[0].firstChild;
									if( width != null )
									{
										width = width.nodeValue;
									}
									else
									{
										tabResult[o]['attributes'][key_temp]['value'] = new Array();
										continue;
									}
									var height = Alias[0].getElementsByTagName('height')[0].firstChild;
									if( height != null )
									{
										height = height.nodeValue;
									}
									var url = Alias[0].getElementsByTagName('url')[0].firstChild;
									if( url != null )
									{
										url = url.nodeValue;
									}
									tabResult[o]['attributes'][key_temp]['value'][this.ImageAliases[ia]] = new Array(width, height, url);
								}
							}
							else if( tabResult[o]['attributes'][key_temp]['type'] == 'ezselection' )
							{
								tabResult[o]['attributes'][key_temp]['value'] = valuetemp.nodeValue;
								if( mf.Utils.exists(attributes[at].getElementsByTagName('index')[0]) )
								{
									var indextemp = attributes[at].getElementsByTagName('index');
									if(mf.Utils.exists(indextemp[0])  && mf.Utils.exists(indextemp[0].firstChild))
									{
										indextemp = indextemp[0].firstChild;
										tabResult[o]['attributes'][key_temp]['index'] = indextemp.nodeValue;
									}
								}
							}
							else
							{
								tabResult[o]['attributes'][key_temp]['value'] = valuetemp.nodeValue;
							}
						}
					}
				}
            } // END FOR
            
            if( typeof(this.OutFunction) == "function" )
			{
				this.OutFunction(tabResult);
			}
        }
        else
        {
        }
		return false;
    };
	this.processXmlResponse = processXmlResponse;

	function processXmlKeyword(xml)
    {
        var doc;
        if (window.ActiveXObject)
        {
			doc = new ActiveXObject("Microsoft.XMLDOM");
            doc.async = 'false';
            doc.loadXML(xml);
        }
        else
        {
            var parser=new DOMParser();
            doc = parser.parseFromString(xml,"text/xml");
        }
		
        if( doc.hasChildNodes() )
        {
            var tabResult = Array();
            var allobjects = doc.getElementsByTagName('object');
            for(var o = 0; o < allobjects.length; o++)
            {
                tabResult[o] = Array();
                
                var objtitle = allobjects[o].getElementsByTagName('name');
                tabResult[o]['name'] = objtitle[0].firstChild.nodeValue;
                
                var objclass = allobjects[o].getElementsByTagName('class');
                tabResult[o]['class'] = objclass[0].firstChild.nodeValue;
                
                var objurl = allobjects[o].getElementsByTagName('url');
                tabResult[o]['url'] = objurl[0].firstChild.nodeValue;
                
                var objsection_name = allobjects[o].getElementsByTagName('section_name');
                tabResult[o]['section_name'] = objsection_name[0].firstChild.nodeValue;
            }
            if( typeof(this.OutFunction) == "function" )
				this.OutFunction(tabResult);
        }
        else
        {
        }
		return false;
    };
	this.processXmlKeyword = processXmlKeyword;
	
	function dispose()
	{
		this.Kommunikator = null;
		this.Kommunikator = this.getXMLHTTP();
	};
	this.dispose = dispose;
	
    function getXMLHTTP()
    {
		var xhr=null;
		if(window.XMLHttpRequest)
		{
			xhr = new XMLHttpRequest();
		}
		else if(window.ActiveXObject)
		{
			try
			{
				xhr = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch (e)
			{
				try
				{
					xhr = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (e1)
				{
					xhr = null; 
					alert('Error creating xmlhttp');
				}
			}
		}
		else
		{
			alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
		}
		return xhr;
	};
	this.getXMLHTTP = getXMLHTTP;
};
mf.mondoXmlClientClass.parseXml = function(xml)
{
	var doc;
	if (window.ActiveXObject)
	{
		doc = new ActiveXObject("Microsoft.XMLDOM");
		doc.async = 'false';
		doc.loadXML(xml);
	}
	else
	{
		var parser=new DOMParser();
		doc = parser.parseFromString(xml,"text/xml");
	}
	return doc;
}
////////////               /XML              //////////

////
//// UNDER CONSTRUCT 
////

// CUSTOMIZER
mf.Customizer = function()
{
	var spanClassName = 'custom';
	this.spanClassName = spanClassName;
	
	var divClassName = 'custom';
	this.divClassName = divClassName;

	var inputClassName = 'custom';
	this.inputClassName = inputClassName;

	function customizeElements()
	{
		var TagName = this.tagName?this.tagName:'select';
		var SpanClass = this.spanClassName?this.spanClassName:'custom';
		var inputs = document.getElementsByTagName(TagName);
		var option;
		var active;

		for (var i=0;i<inputs.length;i++) 
		{
			var InputParent = inputs[i].parentNode;
			var Div = document.createElement('div');
			mf.Object.setClass(Div,this.divClassName);

			var Input = mf.Object.Overwrite(Div,inputs[i]);
			var InputID = Input.id;
			if( !InputID )
			{
				Input.id = 'input_' + mf.Customizer.GlobalCusomInputIDs;
				mf.Customizer.GlobalCusomInputIDs++;
			}

			option = Input.getElementsByTagName('option');
			active = " "; // blanc insécable.
			
			// Find active option.
			if( mf.Utils.exists(option[0]) && mf.Utils.exists(option[0].childNodes[0]))
			{
				active = option[0].childNodes[0].nodeValue;
			}
			for(var j=0;j<option.length;j++)
			{
				if( option[j].selected )
				{
					if( mf.Utils.exists(option[0].childNodes[0]))
					{
						active = option[j].childNodes[0].nodeValue;
					}
				}
				//
				//alert(option[j].selected);
			}

			spantext = document.createTextNode(active);
			for(b = 0; b < option.length; b++) 
			{
				if(option[b].selected == true) 
				{
					if( mf.Utils.exists(option[b].childNodes[0]) )
					{
						spantext = document.createTextNode(option[b].childNodes[0].nodeValue);
					}
					else
					{
						spantext = document.createTextNode(" ");
					}
				}
			}

			var Span = document.createElement('span');
			Span.id = "select" + Input.id;
			mf.Object.setClass(Span,SpanClass);
			mf.Object.setClass(Input,this.inputClassName);

			Span.appendChild(spantext);
			Div.appendChild(Input);
			Div.appendChild(Span);

			mf.Event.addEvent( Input, 'change', mf.Customizer.onSelectChange, true);
		}
	};
	this.customizeElements = customizeElements;
};
mf.Customizer.GlobalCusomInputIDs = 0;
mf.Customizer.onSelectChange = function(evt)
{
	var Select = mf.Event.getEventElement(evt);
	option = Select.getElementsByTagName("option");
	for(d = 0; d < option.length; d++) 
	{
		if(option[d].selected == true)
		{
			if( mf.Utils.exists(option[d].childNodes[0]) )
				document.getElementById("select" + Select.id).childNodes[0].nodeValue = option[d].childNodes[0].nodeValue;
			else
				document.getElementById("select" + Select.id).childNodes[0].nodeValue = " ";
		}
	}
	mf.Event.killEvent( evt );
};
// /CUSTOMIZER




// INPUT DEFAULT VALUES
mf.Inputs = {};
mf.Inputs.InputClick = false;
mf.Inputs.beforColor = '#AAA';
mf.Inputs.afterColor = '#000';
mf.Inputs.setDefaultInputValue = function( inputID, defaultText, bcolor, acolor )
{
	elements(inputID).clicked = 'false';
	elements(inputID).value = defaultText;
	elements(inputID).style.color = mf.Inputs.beforColor;
	mf.Event.addEvent( elements(inputID), "click", mf.Inputs.onInputClick, false);
};
mf.Inputs.onInputClick = function(evt)
{
	var target = mf.Event.getEventElement(evt);
	if( target.clicked == 'false' )
	{
		target.value = '';
		target.style.color = mf.Inputs.afterColor;
		mf.Event.removeEvent( target, "click", mf.Inputs.onInputClick, false);
	}
};
// /INPUT DEFAULT VALUES

mf.Window = {};
mf.Window.setScroll = function(x,y)
{
	window.scrollTo(x,y);
};
mf.Window.saveScroll = function()
{
	window.scrollTo(x,y);
};

mf.Cookie = {};
mf.Cookie.setCookie = function(name, val)
{
	var argv=EcrireCookie.arguments;
	var argc=EcrireCookie.arguments.length;
	
	var expires=(argc > 2) ? argv[2] : null;
	var path=(argc > 3) ? argv[3] : null;
	var domain=(argc > 4) ? argv[4] : null;
	var secure=(argc > 5) ? argv[5] : false;
	document.cookie=name+"="+escape(val)+
	((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
	((path==null) ? "" : ("; path="+path))+
	((domain==null) ? "" : ("; domain="+domain))+
	((secure==true) ? "; secure" : "");
};

// TEST KEYBOARD
var DECIMAL_SHIFT = 16;
var DECIMAL_CTRL = 17;
var DECIMAL_ALT = 18;
var DECIMAL_ENTER = 13;
var DECIMAL_SUPPR = 46;
var DECIMAL_DEL = 8;

var DOWN_SHIFT = false;
var DOWN_CTRL = false;
var DOWN_ALT = false;
var DOWN_SUPPR = false;
var DOWN_DEL = false;

var LAST_CARACTER = '';
var LAST_KEY = 0;

function onStageKeyDown( e )
{
    var pressedKey;
    if (document.all)
		e = window.event;

    if (document.all)    
		pressedKey = e.keyCode;
	else
		pressedKey = e.which;
		
	if( pressedKey == DECIMAL_SHIFT )
	{
		DOWN_SHIFT = DOWN_SHIFT ? false:true;
		return;
	}

    pressedCharacter = String.fromCharCode(pressedKey);	
	
	LAST_CARACTER = pressedCharacter;
	LAST_KEY = pressedKey;
};
function onStageKeyUp( e )
{
    var pressedKey;
    if (document.all)
		e = window.event;

    if (document.all)    
		pressedKey = e.keyCode;
	else
		pressedKey = e.which;

	if( pressedKey == DECIMAL_SHIFT )
	{
		//DOWN_SHIFT = false;
		return;
	}
};
mf.Event.addEvent( document, "keydown", onStageKeyDown, false);
mf.Event.addEvent( document, "keyup", onStageKeyUp, false);





////////////               FLASH VERSION              //////////
function mondoFlashHandlerClass()
{
	var TabFlashDivs = new Array();
	this.TabFlashDivs = TabFlashDivs;

	function register( flashdiv, altdiv, version )
	{
		this.TabFlashDivs.push(new Array( flashdiv, altdiv, version ));
	};
	this.register = register;
	
	function insert()
	{
		var FlashPlayerVersionObject = 10; //deconcept.SWFObjectUtil.getPlayerVersion();
		var flashdiv;
		var altdiv;
		var version;
		for( var f=0; f < TabFlashDivs.length; f++ )
		{
			version = TabFlashDivs[f][2];
			if( FlashPlayerVersionObject.major < parseInt(version) )
			{
				flashdiv = TabFlashDivs[f][0];
				altdiv = TabFlashDivs[f][1];
				document.getElementById(flashdiv).innerHTML = document.getElementById(altdiv).innerHTML;
			}
		}
	};
	this.insert = insert;
};


////////////             /  FLASH VERSION              //////////

// DONT MODIFY HERE
mf.DEBUG = false;
var CloseThis = false;
var IdOpened = true;
var TabMenuBtns = new Array();
var TabMenuEtat = new Array();
var mondoEaseManager = new mf.Ease.mondoEaseManagerClass();
var mondoXmlClient = new mf.mondoXmlClientClass();
var mondoFlashHandler = new mondoFlashHandlerClass();

mf.Event.addLoadEvent(mf.Event.insertAfterLoad);
//mf.Event.addLoadEvent( function () { new Lightbox(); } );

elements = function(id)
{
	return document.getElementById(id);
};
fill = function(id, content)
{
	elements(id).innerHTML = content;
};
function trim(myString)
{
	return myString.replace(/^\s+/g,'').replace(/\s+$/g,'')
};
// entry point
mf.init();
//

//Sitemap

function showSitemap()
{
	if(mf.Utils.exists(document.getElementById("mondoheadercontent")))
	{
		document.getElementById("mondoheadercontent").style.display = "none";
	}
	document.getElementById("sitemap").style.display = "block";
}

function hideSitemap()
{
	document.getElementById("sitemap").style.display = "none";
	if(mf.Utils.exists(document.getElementById("mondoheadercontent")))
	{
		document.getElementById("mondoheadercontent").style.display = "block";
	}
}

//Tagcloud

function showTagcloud()
{
	if(mf.Utils.exists(document.getElementById("mondoheadercontent")))
	{
		document.getElementById("mondoheadercontent").style.display = "none";
	}
	document.getElementById("tagcloud").style.display = "block";
}

function hideTagcloud()
{
	document.getElementById("tagcloud").style.display = "none";
	if(mf.Utils.exists(document.getElementById("mondoheadercontent")))
	{
		document.getElementById("mondoheadercontent").style.display = "block";
	}
}

//Login

function showLogin()
{
	document.getElementById("fast-login").style.display = "block";
}

function hideLogin()
{
	document.getElementById("fast-login").style.display = "none";
}