google.setOnLoadCallback(function(){$(document).ready(GlobalInit);});

function GlobalInit()
{
	NAVIGATION = new Navigation();
	NAVIGATION.renderOptions();
	
	var PAGES = new Pages();
	PAGES.init();
	PAGES.tickerInit();
	
	SEARCH = new Search();
	SEARCH.init();
}

function Navigation()
{
	var tgHighlight = '#09f';
	var tgHighlightDim = '#069';
	
	var mainOptions = tgNav;
	var subOptions = new Array();
	var menuClosedHeight = $('#tgNavBg').height();
	
	/*
	 * Render Navigation Options
	 */
	this.renderOptions = renderMainOptions; function renderMainOptions()
	{
		var _id = new Array();
		
		/*
		 * Set main categories
		 */
		var c = 0;
		var i = mainOptions.length;
		
		$('#tgNavMainOptions').append('<ul></ul>');
		
		while(i--)
		{
			var _title = mainOptions[i]['t'];
			var _parent = mainOptions[i]['p'];
			var _url = mainOptions[i]['u'];
			var _style = '';
			
			if(!ShinobiUtils.isEmpty(mainOptions[i]['s'])) _style = ' style="' + mainOptions[i]['s'] + '"';
			
			if(ShinobiUtils.isEmpty(_parent))
			{
				_id[_title] = c++;
				
				if(ShinobiUtils.isEmpty(_url))
				{
					$('#tgNavMainOptions ul').append('<li><h1>' + _title + '</h1></li>');
				} else {
					$('#tgNavMainOptions ul').append('<li' + _style +'><h1><a href="' + _url + '" title="' + _title + '" >' + _title + '</a></h1></li>');
				}
				
				$('#tgNavSubOptions').prepend('<ul class="holder">&nbsp;</ul>');
			}
		}
		
		/*
		 * Set sub categories
		 */
		var i = mainOptions.length;
		var col = 1;
		var colCount = 1;
		
		while(i--)
		{
			var _title = mainOptions[i]['t'];
			var _parent = mainOptions[i]['p'];
			var _url = mainOptions[i]['u'];
			
			if(!ShinobiUtils.isEmpty(_parent))
			{
				/* Populate subOptions */
				if(ShinobiUtils.isEmpty(subOptions[_id[_parent]])) subOptions[_id[_parent]] = new Array();
				subOptions[_id[_parent]].push({'t':_title, 'p':_parent, 'u':_url});
				
				/* Calculate column number */
				col = Math.ceil(subOptions[_id[_parent]].length / subOptionsRows);
				
				/* Track max number of columns */
				if(col > colCount) colCount = col;
				
				/* Add list option */
				$('#tgNavSubOptions ul:eq(' + _id[_parent] + ')').append('<li class="col' + col + '"><h2><a href="' + _url + '" title="' + _title + '">' + _title + '</a></h2></li>');
			}
		}
		
		/*
		 * Wrap columns into <ul>
		 */
		i = c;
		
		while(i--)
		{
			j = colCount;
			
			while(j--)
			{
				$('#tgNavSubOptions ul:eq(' + i + ') li.col' + (j+1)).wrapAll('<ul class="sfFloatLeft" style="clear: none;"></ul>');
			}
		}
		
		/*
		 * Fade in MainOptions
		 */
		$('#tgNavMainOptions').fadeIn('slow');
		/*$('#tgNavMainOptions ul li').each(function(id) {$(this).mouseenter(function(){ currentMenuId = id; openMenu(); }); });*/
	};
	
	/*
	 * Menu Vars
	 */
	var currentMenuId;
	var currentSelectedId;
	var menuOpen = false;
	var menuAnimating = false;
	var subMenuOpen = false;
	var subMenuAnimating = false;
	
	this.openMenu = openMenu; function openMenu()
	{
		if(!menuAnimating)
		{
			subOptionCount = $('#tgNavSubOptions ul.holder:eq(' + currentMenuId + ') ul').size();
		
			if(menuOpen)
			{
				if(subOptionCount > 0)
				{
					if(subMenuOpen && currentSelectedId != currentMenuId)
					{
						closeSubMenu(openSubMenu);
					} else {
						openSubMenu();
					}
				} else {
					closeMenu();
				}
			} else {
				if(subOptionCount > 0)
				{
					menuAnimating = true;
					$('#tgNavBg').mouseleave(closeMenu).stop().animate({'height': menuOpenedHeight}, 'fast', 'swing', function(){ menuOpen = true; menuAnimating = false; openSubMenu(); });
				}
			}
		}
	};
	
	this.closeMenu = closeMenu; function closeMenu()
	{
		if(!menuAnimating & !subMenuAnimating)
		{
			if(menuOpen)
			{
				if(subMenuOpen)
				{
					closeSubMenu(closeMenu);
				} else {
					menuAnimating = true;
					$('#tgNavBg').stop().animate({'height': menuClosedHeight}, 'fast', 'swing', function(){ menuOpen = false; menuAnimating = false; });
				}
			}
		}
	};
	
	this.openSubMenu = openSubMenu; function openSubMenu()
	{
		if(!subMenuAnimating)
		{
			subMenuAnimating = true;
			currentSelectedId = currentMenuId;
			
			$('#tgNavSubOptions ul.holder:eq(' + currentMenuId + ')').stop().fadeIn('fast', function(){ subMenuOpen = true; subMenuAnimating = false; });
			
			highlight();
		}
	};
	
	this.closeSubMenu = closeSubMenu; function closeSubMenu(callback)
	{
		if(!subMenuAnimating)
		{
			var i = 0;
			
			unhighlight();
			subMenuAnimating = true;
			
			$('#tgNavSubOptions ul.holder:eq(' + currentSelectedId + ')').fadeOut('fast', function(){ subMenuOpen = false; subMenuAnimating = false; callback(); });
		}
	}
	
	this.highlight = highlight; function highlight()
	{
		$('#tgNavMainOptions ul li:eq(' + currentSelectedId + ')').hover(function(){$(this).css({'background-color':tgHighlight});}, function(){$(this).css({'background-color':tgHighlight});}).css({'background-image':'url(/static/img/navigation/arrow_single_d_white.png)'});
	}
	
	this.unhighlight = unhighlight; function unhighlight()
	{
		$('#tgNavMainOptions ul li:eq(' + currentSelectedId + ')').hover(function(){$(this).css({'background-color':tgHighlight});}, function(){$(this).css({'background-color':'transparent'});}).css({'background-color':'transparent','background-image':'url(/static/img/navigation/arrow_single_r_white.png)'});
	}
}

function Search()
{
	this.init = init; function init()
	{
		$("#searchFormDefault input, #searchFormSalon input").focus(function(){if(this.value == this.defaultValue){ this.select(); }});
		$('#showMoreArticles').click( function() { showMoreArticles(); return false; });
		
		function showMoreArticles()
		{
			$('#salonSearchOthers ul li.sfHide').show().animate({'height':'60px'}, 'slow', function() { $(this).css({'height':'100%'}); });
			$('#salonDidntFind').html('<p>Didn\'t find what you were looking for? Try the <a href="/salon/finder"><u>Salon Finder</u></a></p>');
		}
	}
}

function Pages()
{
	var tickerData;
	var tickerWidth = 700;
	var tickerSpeed = 10000;
	var tickerData;
	var tickerInc = 0;
	
	this.init = init; function init()
	{
		var h = $('#pagesContentHold').innerHeight();
		$('#pagesContentHold').css('margin-top', -h);
		$('#pagesContentBg').height($('#pagesContentHold').innerHeight());
	};
	
	this.tickerInit = tickerInit; function tickerInit()
	{
		var pagesTicker = document.getElementById('pagesTicker');
		
		if(!ShinobiUtils.isEmpty(pagesTicker))
		{
			$.get('/gateway/latest-news', {}, function(data) { tickerData = data; tickerRotate(); }, 'json');
		}
	};
	
	function tickerRotate()
	{
		$('#pagesTicker .ticker').show().html(nextArticle());
		$('#pagesTicker .tickerReveal').css({'width':tickerWidth, 'margin-left':-tickerWidth}).animate({'width':'0px', 'margin-left':'0px'}, tickerSpeed, 'linear', tickerFadeOut);
	};
	
	function tickerFadeOut()
	{
		$('#pagesTicker .ticker').fadeOut('slow', tickerRotate);
	};
	
	function nextArticle()
	{
		t = tickerData[tickerInc];
		
		if(ShinobiUtils.isEmpty(t['tickertitle']))
		{
			t['tickertitle'] = t['title'];
		}
		
		article = '<a href="/pages/article/' + t['id'] + '">' + t['tickertitle'] + '</a>';
		
		tickerInc++;
		
		if(tickerInc == tickerData.length) tickerInc = 0;
		
		return article;
	};
		
}