﻿// JScript File

$(function() {
	addListeners($("body"));
	if (location.hash != "")
	{
	    $(".content-inner").hide();
        transition(convertFromHash(location.hash), "quick");
	}
});

var m_ready = "true";
function addListeners(context)
{	
	$(context).find(".transition-fade").click
	(   
        function() 
        {
            if(m_ready == "true")
            {
	            transition(this.href, "fade");
	        }
			return false;
		} 
	);
}

var buttonPressed;
function transition(href, transition) {
    m_ready = "false";
    $(".content-inner").slideUp( "1000", function() {
        writeLoader();
        $(".loader-container").animate({opacity: 1}, 200, function() {
            animateLoader(1);
            $.ajax({
                type    : "GET",
                dataType : "HTML",
                url     : href,
                success : function(newPage)
                {
	                removeLoader();
	                //alert($(newPage).find('.content-inner').html());
	                $("body").attr("id", $(newPage).find('.content-inner').attr("id"));
	                location.hash = convertToHash(href);
	                currentHash = location.hash;
	                newContent = $(newPage).find('.content-inner');
                    $(".content-inner").empty().html(newContent);
        	        
	                $(".content-inner").slideDown(
		                "1000",
		                function()
		                {
			                addListeners($(".content-inner"));
                            m_ready = "true";
		                }	
	                );
                }
            }); // AJAX Load
        });
    });
};

var m_loaderWritten = false;	
function writeLoader()
{
    if(!m_loaderWritten)
    {
        $("body").append("<div class=\"loader-container\"><div class=\"loader\" style=\"position: relative\"><span id=\"loader-1\" style=\"position: absolute; opacity: 0; top: -6px; left: 5px; \">&#8226;</span>            <span id=\"loader-2\" style=\"position: absolute; opacity: 0; top: -4px; left: 9px; \">&#8226;</span>            <span id=\"loader-3\" style=\"position: absolute; opacity: 0; top: 0px; left: 11px; \">&#8226;</span>            <span id=\"loader-4\" style=\"position: absolute; opacity: 0; top: 4px; left: 9px; \">&#8226;</span>            <span id=\"loader-5\" style=\"position: absolute; opacity: 0; top: 6px; left: 5px; \">&#8226;</span>            <span id=\"loader-6\" style=\"position: absolute; opacity: 0; top: 4px; left: 1px; \">&#8226;</span>            <span id=\"loader-7\" style=\"position: absolute; opacity: 0; top: 0px; left: -1px; \">&#8226;</span>            <span id=\"loader-8\" style=\"position: absolute; opacity: 0; top: -4px; left: 1px; \">&#8226;</span></div>    </div>");

        m_loaderWritten = true;
    }
    
}

function removeLoader()
{
    $(".loader-container").remove();
    m_loaderWritten = false;
}

function animateLoader(position)
{
    if(m_loaderWritten)
    {
        if(position > 8)
        {
            position = 1;
        }
        $("#loader-" + (calculateLoaderPosition (position))).css
        (
            {opacity: "1"}
        )
        $("#loader-" + (calculateLoaderPosition (position, -1))).css
        (
            {opacity: "0.7"}
        )
        $("#loader-" + (calculateLoaderPosition (position, -2))).css
        (
            {opacity: "0.5"}
        )
        $("#loader-" + (calculateLoaderPosition (position, -3))).css
        (
            {opacity: "0.3"}
        )
        $("#loader-" + (calculateLoaderPosition (position, -4))).css
        (
            {opacity: "0"}
        )
        $("#loader-" + position).animate
        (
            {opacity: "1"}, 40,
            function()
            {
                animateLoader(position + 1)
            }
        )
    }
}


function calculateLoaderPosition(position, difference)
{
    var pos = position + difference;
    if (pos > 8)
    {
        pos = pos - 8;
    }
    if (pos < 1)
    {
        pos = pos + 8;
    }
    return pos;
}
	
//history
var currentHash = location.hash; 
function watchAnchor() {
  if (location.hash != currentHash) {
    currentHash = location.hash;
    loadHash();
  }
}
var tId = setInterval('watchAnchor()',300); 

function loadHash()
{
    if(location.hash == "")
    {
        transition("Default.aspx", "quick");
    }
    else
    {
        transition(convertFromHash(location.hash), "quick");
    }
}

var tId = setInterval('watchAnchor()',300); 

function convertToHash(l)
{
    return l.substring(l.lastIndexOf("/") + 1, l.lastIndexOf(".aspx"));
}
function convertFromHash(l)
{
    return l.substring(1) + ".aspx";
}
