var DATABase = {

	/* Match height of div tags */		
	matchDivHeight: function(selector, minWidth) {
		var maxHeight = 0;
		var matchDivs = [];
		var selectors = selector.split(" ");
		var elements  = selectors.shift();
		var script    = '';

		selectors.each(function(el, i){
			script += '.getElement("' +  el + '")';
		});
		
		$$(elements).each(function(element, i){
			eval('matchDivs.push(element' + script + ');');
		});

		matchDivs.each(function(div, i){
			if (!$chk(div)) return;
			var divHeight, divPadding;
			if (div.offsetHeight) {
				divHeight = div.offsetHeight;
				divPadding = 0;
				divPadding += div.getStyle('padding-top').toInt();
				divPadding += div.getStyle('padding-bottom').toInt();
				divHeight -= divPadding;
				divBorder = 0;
				divBorder += div.getStyle('border-top-width').toInt();
				divBorder += div.getStyle('border-bottom-width').toInt();
				divHeight -= divBorder;
			} else if (div.style.pixelHeight) {
				divHeight = div.style.pixelHeight;
			}
			maxHeight = Math.max(maxHeight, divHeight);
		});

		if (minWidth != undefined) {
			maxHeight = Math.max(maxHeight, minWidth);
		}

		matchDivs.each(function(div, i){
			if (!$chk(div)) return;
			if(window.ie6) {
				/* use height style for IE6 compatibility */
				div.setStyle('height', maxHeight + 'px')	
			} else {
				div.setStyle('min-height', maxHeight + 'px')					
			}
		});
	}

};

var DATAMorph = new Class({

	initialize: function(element, enter, leave, enterFx, leaveFx, elementFx) {	
		this.setOptions({
			duration: 500,
			transition: Fx.Transitions.expoOut,
			wait: false,
			ignoreClass: ''
		}, enterFx);
		
		var options = this.options;
		
		$$(element).each(function(el, i){
			var elfx = el;
			/*if (elementFx) {
				var elms = el.getElementsBySelector(elementFx);
				if (elms.length > 0) { elfx = elms[0]; }
			}*/
			var fx = new Fx.Morph(elfx, options);

			if (!($chk(options.ignoreClass) && el.hasClass(options.ignoreClass))) {
				el.addEvent('mouseenter', function(e){
					fx.setOptions(options, enterFx).start(enter);
				});
				el.addEvent('mouseleave', function(e){
					fx.setOptions(options, leaveFx).start(leave);
				});
			}
		});
	}

});

DATAMorph.implement(new Options);

var DATADropdownMenu = new Class({
	
	initialize: function(element, options) {
		this.setOptions({
			mode: 'default',
			duration: 600,
			transition: Fx.Transitions.linear,
			wait: false
		}, options);

		var reset = {'width': 0, 'height': 0, 'opacity': 0};

		switch(this.options.mode) {
			case 'width':
				reset = {'width': 0, 'opacity': 0};
		  		break;    
			case 'height':
				reset = {'height': 0, 'opacity': 0};
				break;
		}

		$$(element).each(function(li) {
			var ul = li.getElement('ul');
			if (ul) {
				var fx = new Fx.Morph(ul, this.options);
				var styles = ul.getStyles('width','height','opacity');
				ul.setStyles(reset);
				li.addEvents({
					mouseenter: function() {
					
						var parent = li.getParent();
						if (parent.getStyle('overflow') == 'hidden') parent.setStyle('overflow', 'visible');
						fx.element.setStyle('overflow', 'hidden');
						fx.start(styles);
					},
					mouseleave: function(event) {
						fx.pause();
						ul.setStyles(reset);	
					}
				});
			}     
		}.bind(this));
	}

});

DATADropdownMenu.implement(new Options);/* Copyright (C) 2007 - 2009 DATAtheme GmbH */
var SmoothScroll = new Class({

	Extends: Fx.Scroll,

	initialize: function(options, context){
		context = context || document;
		var doc = context.getDocument(), win = context.getWindow();
		this.parent(doc, options);
		this.links = (this.options.links) ? $$(this.options.links) : $$(doc.links);
		var location = win.location.href.match(/^[^#]*/)[0] + '#';
		this.links.each(function(link){
			if (link.href.indexOf(location) != 0) return;
			var anchor = link.href.substr(location.length);
			if (anchor && $(anchor)) this.useLink(link, anchor);
		}, this);
		if (!Browser.Engine.webkit419) this.addEvent('complete', function(){
			win.location.hash = this.anchor;
		}, true);
	},

	useLink: function(link, anchor){
		link.addEvent('click', function(event){
			this.anchor = anchor;
			this.toElement(anchor);
			event.stop();
		}.bind(this));
	}

});


var DATATools = {
		
	start: function() {

		/* Match height of div tags */
		DATATools.setDivHeight();
		
		/* Dropdown menu */
		new DATADropdownMenu('div#menu li.parent', { mode: 'height', transition: Fx.Transitions.Expo.easeOut });

		/* Morph: main menu - level1 (tab) */
		var menuEnter = { 'color': '#bb8a01' };
		var menuLeave = { 'color': '#323232' };

		/*new DATAMorph('div#menu li.level1', menuEnter, menuLeave,
			{ transition: Fx.Transitions.linear, duration: 0, ignoreClass: 'active' },
			{ transition: Fx.Transitions.sineIn, duration: 300 }, 'a.level1');

		new DATAMorph('div#menu li.level1', menuEnter, menuLeave,
			{ transition: Fx.Transitions.linear, duration: 0, ignoreClass: 'active'},
			{ transition: Fx.Transitions.sineIn, duration: 300 }, 'span.sub');*/

		/* Morph: main menu - level2 and deeper (color) */
		var selector = 'div#menu li.level1 a,div#menu li.level2 a, div#menu li.level2 span.separator';
		/* fix for Opera because Mootools 1.1 is not compatible with latest Opera version */
		if (window.opera) { selector = 'div#menu li.item1 li.level2 a, div#menu li.item1 li.level2 span.separator, div#menu li.item2 li.level2 a, div#menu li.item2 li.level2 span.separator, div#menu li.item3 li.level2 a, div#menu li.item3 li.level2 span.separator, div#menu li.item4 li.level2 a, div#menu li.item4 li.level2 span.separator, div#menu li.item5 li.level2 a, div#menu li.item5 li.level2 span.separator, div#menu li.item6 li.level2 a, div#menu li.item6 li.level2 span.separator, div#menu li.item7 li.level2 a, div#menu li.item7 li.level2 span.separator'; }
		
		new DATAMorph(selector, menuEnter, menuLeave,
			{ transition: Fx.Transitions.linear, duration: 0, ignoreClass: 'active' },
			{ transition: Fx.Transitions.sineIn, duration: 300 });

		/* Morph: sub menu - level1 */
		/*new DATAMorph('div#middle ul.menu a, div#middle ul.menu span.separator', menuEnter, menuLeave,
			{ transition: Fx.Transitions.expoOut, duration: 0, ignoreClass: 'active' },
			{ transition: Fx.Transitions.sineIn, duration: 300 });*/

		/* Smoothscroll */
		
		new SmoothScroll({ duration:700 }, window); 

	},

	/* Include script */
	include: function(library) {
	alert('ici');
		document.write('<script type="text/javascript" src="'+library+'"></script>');
	},

	/* Match height of div tags */
	setDivHeight: function() {
		DATABase.matchDivHeight('div.headerbox div.deepest', 0, 40);
		DATABase.matchDivHeight('div.topbox div.deepest', 0, 40);
		DATABase.matchDivHeight('div.bottombox div.deepest', 0, 40);
		DATABase.matchDivHeight('div.maintopbox div.deepest', 0, 40);
		DATABase.matchDivHeight('div.mainbottombox div.deepest', 0, 40);
		DATABase.matchDivHeight('div.contenttopbox div.deepest', 0, 40);
		DATABase.matchDivHeight('div.contentbottombox div.deepest', 0, 40);
	}

};

/* Add functions on window load */
window.addEvent('domready', DATATools.start);

/* Load IE6 fix 
var strChUserAgent = navigator.userAgent;
var intSplitStart = strChUserAgent.indexOf("(",0);
var intSplitEnd = strChUserAgent.indexOf(")",0);
var strChStart = strChUserAgent.substring(0,intSplitStart);
var strChMid = strChUserAgent.substring(intSplitStart, intSplitEnd);
var strChEnd = strChUserAgent.substring(strChEnd);

if(strChMid.indexOf("MSIE 6") != -1){

	DATATools.include('js/ie/ie6fix.js');
	DATATools.include('js/ie/ie6png.js');
	DATATools.include('js/ie/DATA_ie6fix.js');
}*/
