/* (C) 2008 YOOtheme.com */

var YOOTools = {
		
	start: function() {
		
		/* Match height of div tags */
		YOOTools.setDivHeight();

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

		/* Fancy menu */
		new YOOFancyMenu($E('ul', 'menu'), { mode: 'fade', transition: Fx.Transitions.linear, duration: 500 });

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

		/* Morph: level1 items of main menu (tab) */
		var enterColorRed = '#ff0000';
		/*var enterColorBlue = '#5ae1f0';*/
		var enterColorBlue = '#67a6c1';
		/*var enterColorPink = '#FF82FF';
		var enterColorOrange = '#f59641';
		var enterColorGreen = '#c3e63c';
		var enterColorYellow = '#ffdc57';
		var enterColorLilac = '#956ce8';
		var enterColorTurquoise = '#45f4d4';*/
		var enterColorPink = '#670000';
		var enterColorOrange = '#670000';
		var enterColorGreen = '#670000';
		var enterColorYellow = '#670000';
		var enterColorLilac = '#670000';
		var enterColorTurquoise = '#670000';
		
		var leaveColor = '#ffffff';

		var menuEnterRed = { 'color': enterColorRed };
		var menuEnterBlue = { 'color': enterColorBlue };
		var menuEnterPink = { 'color': enterColorPink };
		var menuEnterOrange = { 'color': enterColorOrange };
		var menuEnterGreen = { 'color': enterColorGreen };
		var menuEnterYellow = { 'color': enterColorYellow };
		var menuEnterLilac = { 'color': enterColorLilac };
		var menuEnterTurquoise = { 'color': enterColorTurquoise };
		
		var menuLeave = { 'color': leaveColor };
		
		new YOOMorph('div#menu li.red', menuEnterRed, menuLeave,
			{ transition: Fx.Transitions.linear, duration: 500},
			{ transition: Fx.Transitions.sineIn, duration: 500 }, '.level1');
		
		new YOOMorph('div#menu li.blue', menuEnterBlue, menuLeave,
			{ transition: Fx.Transitions.linear, duration: 500},
			{ transition: Fx.Transitions.sineIn, duration: 500 }, '.level1');
		
		new YOOMorph('div#menu li.pink', menuEnterPink, menuLeave,
			{ transition: Fx.Transitions.linear, duration: 500},
			{ transition: Fx.Transitions.sineIn, duration: 500 }, '.level1');
		
		new YOOMorph('div#menu li.orange', menuEnterOrange, menuLeave,
			{ transition: Fx.Transitions.linear, duration: 500},
			{ transition: Fx.Transitions.sineIn, duration: 500 }, '.level1');
		
		new YOOMorph('div#menu li.green', menuEnterGreen, menuLeave,
			{ transition: Fx.Transitions.linear, duration: 500},
			{ transition: Fx.Transitions.sineIn, duration: 500 }, '.level1');
		
		new YOOMorph('div#menu li.yellow', menuEnterYellow, menuLeave,
			{ transition: Fx.Transitions.linear, duration: 500},
			{ transition: Fx.Transitions.sineIn, duration: 500 }, '.level1');
		
		new YOOMorph('div#menu li.lilac', menuEnterLilac, menuLeave,
			{ transition: Fx.Transitions.linear, duration: 500},
			{ transition: Fx.Transitions.sineIn, duration: 500 }, '.level1');
		
		new YOOMorph('div#menu li.turquoise', menuEnterTurquoise, menuLeave,
			{ transition: Fx.Transitions.linear, duration: 500},
			{ transition: Fx.Transitions.sineIn, duration: 500 }, '.level1');
		
		/* Morph: level2 and deeper items of main menu (drop down) */
		new YOOMorph('div#menu li.red ul.level2 a', menuEnterRed, menuLeave,
			{ transition: Fx.Transitions.expoOut, duration: 300},
			{ transition: Fx.Transitions.sineIn, duration: 500 });
		
		new YOOMorph('div#menu li.blue ul.level2 a', menuEnterBlue, menuLeave,
			{ transition: Fx.Transitions.expoOut, duration: 300},
			{ transition: Fx.Transitions.sineIn, duration: 500 });
		
		new YOOMorph('div#menu li.pink ul.level2 a', menuEnterPink, menuLeave,
			{ transition: Fx.Transitions.expoOut, duration: 300},
			{ transition: Fx.Transitions.sineIn, duration: 500 });
		
		new YOOMorph('div#menu li.orange ul.level2 a', menuEnterOrange, menuLeave,
			{ transition: Fx.Transitions.expoOut, duration: 300},
			{ transition: Fx.Transitions.sineIn, duration: 500 });
		
		new YOOMorph('div#menu li.green ul.level2 a', menuEnterGreen, menuLeave,
			{ transition: Fx.Transitions.expoOut, duration: 300},
			{ transition: Fx.Transitions.sineIn, duration: 500 });
		
		new YOOMorph('div#menu li.yellow ul.level2 a', menuEnterYellow, menuLeave,
			{ transition: Fx.Transitions.expoOut, duration: 300},
			{ transition: Fx.Transitions.sineIn, duration: 500 });
		
		new YOOMorph('div#menu li.lilac ul.level2 a', menuEnterLilac, menuLeave,
			{ transition: Fx.Transitions.expoOut, duration: 300},
			{ transition: Fx.Transitions.sineIn, duration: 500 });
		
		new YOOMorph('div#menu li.turquoise ul.level2 a', menuEnterTurquoise, menuLeave,
			{ transition: Fx.Transitions.expoOut, duration: 300},
			{ transition: Fx.Transitions.sineIn, duration: 500 });
		
		
		/* Morph: level1 subline of main menu (tab) */
		enterColorRed = '#C8001E';
		/*enterColorBlue = '#00BED2';*/
		/*enterColorBlue = '#67a6c1';*/
		enterColorBlue = '#FF0000';
		enterColorPink = '#C800C8';
		enterColorOrange = '#DC5000';
		enterColorGreen = '#78C800';
		enterColorYellow = '#FFC800';
		enterColorLilac = '#6432C8';
		enterColorTurquoise = '#00DCB4';

		
		leaveColor = '#ffffff';

		menuEnterRed = { 'color': enterColorRed };
		menuEnterBlue = { 'color': enterColorBlue };
		menuEnterPink = { 'color': enterColorPink };
		menuEnterOrange = { 'color': enterColorOrange };
		menuEnterGreen = { 'color': enterColorGreen };
		menuEnterYellow = { 'color': enterColorYellow };
		menuEnterLilac = { 'color': enterColorLilac };
		menuEnterTurquoise = { 'color': enterColorTurquoise };
		
		new YOOMorph('div#menu li.red', menuEnterRed, menuLeave,
			{ transition: Fx.Transitions.linear, duration: 500},
			{ transition: Fx.Transitions.sineIn, duration: 500 }, 'span.sub');
		
		new YOOMorph('div#menu li.blue', menuEnterBlue, menuLeave,
			{ transition: Fx.Transitions.linear, duration: 500},
			{ transition: Fx.Transitions.sineIn, duration: 500 }, 'span.sub');
				
		new YOOMorph('div#menu li.pink', menuEnterPink, menuLeave,
			{ transition: Fx.Transitions.linear, duration: 500},
			{ transition: Fx.Transitions.sineIn, duration: 500 }, 'span.sub');
		
		new YOOMorph('div#menu li.orange', menuEnterOrange, menuLeave,
			{ transition: Fx.Transitions.linear, duration: 500},
			{ transition: Fx.Transitions.sineIn, duration: 500 }, 'span.sub');
		
		new YOOMorph('div#menu li.green', menuEnterGreen, menuLeave,
			{ transition: Fx.Transitions.linear, duration: 500},
			{ transition: Fx.Transitions.sineIn, duration: 500 }, 'span.sub');
		
		new YOOMorph('div#menu li.yellow', menuEnterYellow, menuLeave,
			{ transition: Fx.Transitions.linear, duration: 500},
			{ transition: Fx.Transitions.sineIn, duration: 500 }, 'span.sub');
		
		new YOOMorph('div#menu li.lilac', menuEnterLilac, menuLeave,
			{ transition: Fx.Transitions.linear, duration: 500},
			{ transition: Fx.Transitions.sineIn, duration: 500 }, 'span.sub');
		
		new YOOMorph('div#menu li.turquoise', menuEnterTurquoise, menuLeave,
			{ transition: Fx.Transitions.linear, duration: 500},
			{ transition: Fx.Transitions.sineIn, duration: 500 }, 'span.sub');
		
		/* Morph: sub menu (left) */
		switch (YtSettings.itemColor) {
			case "blue":		var enterColor = '#67a6c1';
								break;

			case "pink": 		var enterColor = '#FF82FF';
								break;
		 
			case "orange": 		var enterColor = '#f59641';
								break;
		 
			case "green":	 	var enterColor = '#c3e63c';
								break;
							
			case "yellow":		var enterColor = '#ffdc57';
								break;
							
			case "lilac":		var enterColor = '#956ce8';
								break;
							
			case "turquoise":	var enterColor = '#45f4d4';
								break;
		 
			default: 			var enterColor = '#ff0000';
		  }
		
		var leaveColor = '#ffffff';
		var submenuEnter = { 'color': enterColor};
		var submenuLeave = { 'color': leaveColor};

		new YOOMorph('div#left ul.menu a, div#left ul.menu span.separator', submenuEnter, submenuLeave,
			{ transition: Fx.Transitions.expoOut, duration: 300 },
			{ transition: Fx.Transitions.sineIn, duration: 500 });

		var enterColor = '#000000';
		var leaveColor = '#646464';
		var submenuEnter = { 'color': enterColor};
		var submenuLeave = { 'color': leaveColor};

		new YOOMorph('div#right ul.menu a, div#right ul.menu span.separator', submenuEnter, submenuLeave,
			{ transition: Fx.Transitions.expoOut, duration: 300 },
			{ transition: Fx.Transitions.sineIn, duration: 500 });

		/* 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.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);
	}

};


function alternate_init() {
	// Find all tables with class sortable and make them sortable
	if (!document.getElementsByTagName) return;
	tbls = document.getElementsByTagName("table");
	for (ti=0;ti<tbls.length;ti++) {
		thisTbl = tbls[ti];
		if (((' '+thisTbl.className+' ').indexOf("alternate_rows") != -1) && (thisTbl.id)) {
			alternate(thisTbl);
		}
	}
}


function replace(stri, tok, uins) {
  /*
  **  Replace a token in a string
  **    stri  string to be processed
  **    tok  token to be found and removed
  **    uins  token to be inserted
  **  returns new String
  */
  ind = stri.indexOf(tok);
  repl = "";
  if (ind == -1) return stri;
  repl += stri.substring(0,ind) + uins;
  if ( ind + tok.length < stri.length)
    repl += replace(stri.substring(ind + tok.length, stri.length), tok, uins);
  return r;
}

function alternate(table) {
	// Take object table and get all it's tbodies.
	var tableBodies = table.getElementsByTagName("tbody");
	// Loop through these tbodies
	for (var i = 0; i < tableBodies.length; i++) {
		// Take the tbody, and get all it's rows
		var tableRows = tableBodies[i].getElementsByTagName("tr");
		// Loop through these rows
		for (var j = 0; j < tableRows.length; j++) {
			// Check if j is even, and apply classes for both possible results
			if ( (j % 2) == 0  ) {
				if (tableRows[j].className == 'odd' || !(tableRows[j].className.indexOf('odd') == -1) ) {
					tableRows[j].className = replace(tableRows[j].className, 'odd', 'even');
				} else {
					tableRows[j].className += " even";
				}
			} else {
				if (tableRows[j].className == 'even' || !(tableRows[j].className.indexOf('even') == -1) ) {
					tableRows[j].className = replace(tableRows[j].className, 'even', 'odd');
				}
				tableRows[j].className += " odd";
			} 
		}
	}
}



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

/* Load IE6 fix */
if (window.ie6) {
	YOOTools.include('addons/ie6fix.js');
	YOOTools.include('yoo_ie6fix.js');
}
