/* Copyright (C) 2007 - 2009 YOOtheme GmbH */

var YOOTools = {

		

	start: function() {



		/* Match height of div tags */

		YOOTools.setDivHeight();



		/* Background Animations */

		switch (YtSettings.color) {

			

			// underwater

			case 'default':

				if ($('object1')) { new YOOMove('object1', { 'direction': 'right', 'speed': 40000, 'pause': 60 }); }

				if ($('object2')) { new YOOMove('object2', { 'direction': 'left', 'speed': 30000, 'pause': 50 }); }

				break;

				

			// countryside, snow

			case 'brown':

			case 'blue':

			case 'green':

			case 'red':

				if ($('object1')) { new YOOMove('object1', { 'direction': 'left', 'speed': 300000, 'pause': 3 }); }

				if ($('object2')) { new YOOMove('object2', { 'direction': 'right', 'speed': 60000, 'pause': 50 }); }

				if ($('object3')) { new YOOMove('object3', { 'direction': 'left', 'speed': 30000, 'pause': 60 }); }

				break;



			// mars, earth

			case 'orange':

			case 'black':

				if ($('object1')) { new YOOMove('object1', { 'direction': 'right', 'speed': 70000, 'pause': 40 }); }

				if ($('object2')) { new YOOMove('object2', { 'direction': 'right', 'speed': 30000, 'pause': 10 }); }

				if ($('object3')) { new YOOMove('object3', { 'direction': 'left', 'speed': 100000, 'pause': 90 }); }

				break;

				

			// island, sunset

			case 'mint':

			case 'turquoise':

			case 'yellow':

				if ($('object1')) { new YOOMove('object1', { 'direction': 'left', 'speed': 300000, 'pause': 3 }); }

				if ($('object2')) { new YOOMove('object2', { 'direction': 'right', 'speed': 50000, 'pause': 50 }); }

				if ($('object3')) { new YOOMove('object3', { 'direction': 'left', 'speed': 100000, 'pause': 60 }); }

				break;

		}

		

		

		/* Accordion menu */

		new YOOAccordionMenu('div#middle ul.menu li.toggler', 'ul.accordion', { accordion: 'slide' });



		/* Dropdown menu */

		new YOODropdownMenu('div#menu li.parent', { mode: 'height', transition: Fx.Transitions.Expo.easeOut });



		/* Morph: main menu - level1 (tab) */

		var menuEnter = { 'color': '#ffffaa' };

		var menuLeave = { 'color': '#F0F0DC' };



		switch (YtSettings.color) {

			case 'blue':

			case 'green':

			case 'black':

				menuEnter = { 'color': '#999999' };

				break;

		}



		new YOOMorph('div#menu li.level1', menuEnter, menuLeave,

			{ transition: Fx.Transitions.linear, duration: 100 },

			{ transition: Fx.Transitions.sineIn, duration: 300 }, 'a.level1');



		/* Morph: main menu - level1 subline (color) */

		new YOOMorph('div#menu li.level1', menuEnter, menuLeave,

			{ transition: Fx.Transitions.linear, duration: 100 },

			{ transition: Fx.Transitions.sineIn, duration: 300 }, 'span.sub');



		/* Morph: main menu - level2 and deeper (color) */

		var selector = '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 YOOMorph(selector, menuEnter, menuLeave,

			{ transition: Fx.Transitions.linear, duration: 0 },

			{ transition: Fx.Transitions.sineIn, duration: 500 });



		/* Morph: sub menu - level1 */

		var submenuEnter = { 'color': '#ffffaa'};

		var submenuLeave = { 'color': '#F0F0DC'};



		switch (YtSettings.color) {

			case 'blue':

				submenuEnter = { 'color': '#ba5d00'};

				submenuLeave = { 'color': '#266892'};

				break;

			case 'green':

				submenuEnter = { 'color': '#ba5d00'};

				submenuLeave = { 'color': '#669125'};

				break;

			case 'black':

				submenuEnter = { 'color': '#ba5d00'};

				submenuLeave = { 'color': '#437ca1'};

				break;

		}



		new YOOMorph('div#middle ul.menu a, div#middle ul.menu span', submenuEnter, submenuLeave,

			{ transition: Fx.Transitions.expoOut, duration: 0 },

			{ transition: Fx.Transitions.sineIn, duration: 300 });



		/* Smoothscroll */

		new SmoothScroll({ duration: 500, transition: Fx.Transitions.Expo.easeOut });

	},



	/* Include script */

	include: function(library) {

		$ES('script').each(function(s, i){

			var src  = s.getProperty('src');

			var path = '';

			if (src && src.match(/yoo_tools\.js(\?.*)?$/)) path = src.replace(/yoo_tools\.js(\?.*)?$/,'');

			if (src && src.match(/template\.js\.php(\?.*)?$/)) path = src.replace(/template\.js\.php(\?.*)?$/,'');

			if (path != '') document.write('<script language="javascript" src="' + path + library + '" type="text/javascript"></script>');

		});

	},



	/* Match height of div tags */

	setDivHeight: function() {

		YOOBase.matchDivHeight('div.headerbox div.deepest', 0, 40);

		YOOBase.matchDivHeight('div.topbox div.deepest', 0, 40);

		YOOBase.matchDivHeight('div.bottombox div.deepest', 0, 40);

		YOOBase.matchDivHeight('div.maintopbox div.deepest', 0, 40);

		YOOBase.matchDivHeight('div.mainbottombox div.deepest', 0, 40);

		YOOBase.matchDivHeight('div.contenttopbox div.deepest', 0, 40);

		YOOBase.matchDivHeight('div.contentbottombox div.deepest', 0, 40);

	}



};



/* Add functions on window load */

window.addEvent('domready', YOOTools.start);



/* Load IE6 fix */

if (window.ie6) {

	YOOTools.include('addons/ie6fix.js');

	YOOTools.include('addons/ie6png.js');

	YOOTools.include('yoo_ie6fix.js');

}



/* Move class */

var YOOMove = new Class({

	

	initialize: function(element, options) {

		this.setOptions({

			direction: 'left',

			speed: 10000,

			pause: 5,

			duration: 1000,

			transition: Fx.Transitions.linear

		}, options);



		this.elm = $(element);

		this.key = 'yt-' + this.elm.getProperty('id');

		this.fx = new Fx.Styles(this.elm, this.options);

		this.timer = null;



		var val = Cookie.get(this.key);

		if (val) {

			this.elm.setStyle('left', val + 'px');

		}

		

		this.memorize.periodical(2500, this);

		this.animate();

	},



	animate: function() {

		var dir   = this.options.direction;

		var pause = this.options.pause;

		var coord = this.elm.getCoordinates();

		var dest  = (dir == 'left') ? 0 - coord.width : window.getWidth();

		var track = coord.left - dest;

		if (track < 0) { track = -track; }



		this.fx.setOptions({ 'duration': (this.options.speed * track / 1024).toInt() });

		this.fx.start({

			'left': (dir == 'left') ? 0 - coord.width : window.getWidth()

		}).chain(function() {

			this.elm.setStyles({

				'left': (dir == 'left') ? window.getWidth() : 0 - coord.width

			});

			$clear(this.timer);

			this.timer = this.animate.delay((Math.floor(Math.random() * pause) * 1000).limit(1000, (1000 * pause)), this);

		}.bind(this));

	},

	

	memorize: function() {

		var coord = this.elm.getCoordinates();

		Cookie.set(this.key, coord.left);

	}

	

});



YOOMove.implement(new Options);
