var CONTENT_PATH = "content/";
var PAGE_ARRAY = ["*", "#u450", "#u300", "#u200", "#u200-latino", "#u100", "#u-family", "#legal"];
var ACCORDION_ARRAY = ["*", "#total", "#multi", "#watch", "#packages", "#bundles"];
var GOOGLE_ANALYTICS_ACCT = "UA-6158790-24";
//var GOOGLE_ANALYTICS_ACCT = "UA-7826961-18";


var loadOBJ = {currentPage:"*", currentPageID:0, currentAccordionID:0, direction:false, skipAnimation:false, transition:"none"};
var timer;
var currentScrollY;
var firstRun = true;

$(document).ready(function() {
	
	$("body").css("display", "none");
	$(window).hashchange(updateSite);
	$('.accordionButton').bind("click", accordionButtonClickHandler);
	setTimeout(hideAddressBar, 500);
	resetMain();
	updateSite();

});

function updateSite()
{
	var newPage = window.location.hash;
	var oldPage="#";
	var direction = false;
	
	if ($.mobile.activePage!=undefined)
	{
		oldPage = "#"+$.mobile.activePage.attr('id');
	}
	
	currentPageID = PAGE_ARRAY.indexOf(newPage);
	oldPageID = PAGE_ARRAY.indexOf(oldPage);
	currentAccordionID = ACCORDION_ARRAY.indexOf(newPage);
	oldAccordionID = ACCORDION_ARRAY.indexOf(oldPage);
	
	var skipAnimation = !(oldAccordionID==loadOBJ.currentAccordionID);
	
	if ((currentPageID<oldPageID)||(oldPageID>0 && currentAccordionID>0))
	{
		direction = true;
	}
	
	if (currentPageID>0)
	{
		loadOBJ = {currentPage:PAGE_ARRAY[currentPageID], currentPageID:currentPageID, currentAccordionID:currentAccordionID, direction:direction, skipAnimation:skipAnimation, transition:loadOBJ.transition};
		loadContent();
	}
	else
	{
		$("body").css("display", "");
	}
	
	if (currentAccordionID>0)
	{
		if (oldPageID>0)
		{
			$.mobile.changePage("#main", "slide", true, false);
		}
		loadOBJ = {currentPage:ACCORDION_ARRAY[currentAccordionID], currentPageID:currentPageID, currentAccordionID:currentAccordionID, direction:direction, skipAnimation:skipAnimation, transition:"slide"};
		loadContent();
	}
}

function resetMain()
{
	$('.accordionContent').not('#content_0').hide();
	$('.accordionButton').find('a').removeClass('caretup');
}

function loadPackage(id)
{
	window.location.hash = "#"+id;
}

function loadContent()
{
	$.mobile.pageLoading();
	var loadContainer;
	if (loadOBJ.currentAccordionID>0)
	{
		loadContainer = "#content_"+loadOBJ.currentAccordionID;
	}
	if (loadOBJ.currentPageID>0)
	{
		loadContainer = PAGE_ARRAY[loadOBJ.currentPageID];
	}
	var contentToLoad = CONTENT_PATH+loadContainer.substr(1,loadContainer.length-1)+".html";
	$(loadContainer).load(contentToLoad, loadContentComplete);
}

function loadContentComplete()
{
	$.mobile.pageLoading(true);
	
	var pageID = loadOBJ.currentPage.substr(loadOBJ.currentPage.indexOf("#") + 1)+".html";
	trackPageView(pageID);
	
	if (loadOBJ.currentPageID>0)
	{
		$.mobile.changePage(PAGE_ARRAY[loadOBJ.currentPageID], loadOBJ.transition, loadOBJ.direction, false);
		loadOBJ.transition = "slide";
	}
	
	if (loadOBJ.currentAccordionID>0)
	{
		if (loadOBJ.skipAnimation)
		{
			$('.accordionContent').not("#content_0").slideUp(500);
		}
		
		$('.accordionButton').find('a').removeClass('caretup');
		$("#btn_"+loadOBJ.currentAccordionID).find('a').addClass('caretup');
		$("#content_"+loadOBJ.currentAccordionID).slideDown(500);
		
		hideAddressBar();
		
		
	}
	$("body").css("display", "");
}

var accordionButtonClickHandler = function()
{
	var thisID = $(this).attr('id');
	
	if (thisID=="btn_"+loadOBJ.currentAccordionID)
	{
		if($(this).next().is(':hidden') == true)
		{
			$(this).find('a').addClass('caretup');
			$(this).next().slideDown(500, hideAddressBar);
		}
		else
		{
			$(this).find('a').removeClass('caretup');
			$(this).next().slideUp(500);
		}
		return;
	} 

	if($(this).next().is(':hidden') == true) 
	{
		window.location.hash = (ACCORDION_ARRAY[parseInt(thisID.substr(thisID.length-1,1))]);
	}
};

function hideAddressBar() 
{
	var y = Math.max(((loadOBJ.currentAccordionID-1)*30)+1, 1)+parseInt($('#home').css('height'));
	var start = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
	if ($(window).scrollTop()>y)
	{
		currentScrollY = start;
		Scroll(y);
	}
}

function returnToMain()
{
	history.back();
}

function Scroll(desty) 
{
	currentScrollY += (desty - currentScrollY)/4;
	if (Math.abs(currentScrollY-desty) < 1) {
		window.scrollTo(0, desty);
		clearTimeout(timer);
		return;
	}
		
	window.scrollTo(0, currentScrollY);
		
	timer = setTimeout(function() {Scroll(desty);}, 30);
}

function recordOutboundLink(link, category, action) 
{
	trackEvent(category, action);
    setTimeout('document.location = "' + link.href + '"', 500);
}

function recordGoogleEvent(link, category, action)
{
	trackEvent(category, action);
	document.location = link.href;
}

function trackEvent(category, action)
{
	var pageTracker = _gat._getTracker(GOOGLE_ANALYTICS_ACCT);
	pageTracker._trackEvent(category, action);
	//alert("Track Event: "+category+", "+action);
}

function trackPageView(page)
{
	if (firstRun)
	{
		firstRun = false;
		return;
	}
	
	var pageTracker = _gat._getTracker(GOOGLE_ANALYTICS_ACCT);
	pageTracker._trackPageview(page);
	//alert("Track Page View: "+page);
}

