// These are the only variables you should be touching
var maxDisplace = 40;
var minDisplace = 5;
var moveTime = 200;
var colourTime = 50;
var overColour = '#6900a6';
var outColour = 'black';
//var anchor = 'right';

// Don't touch.  Won't do
var obj = null;
var count = 1;
var elements = new Array();
var elementColour = new Array();
var numElements = 0;
var totalTime = moveTime + colourTime;
var done = true;
var curSelection = -1;
var browserName=navigator.appName;


function setVisible(menuNum){
    var s = "sub_menu" + menuNum;
    $("#Nav2").children().hide();
    $("#Nav2").children("li."+s).show();
    //colourTransition(menuNum, 0);
    if(curSelection >= 0){
        //alert("bring back "+curSelection);
        elementColour[curSelection] = 2;
        colourTransition(curSelection, 1);
        elementColour[curSelection] = 3;
    }
    elementColour[menuNum] = 4;
    curSelection = menuNum;
}

function mouseOverMove(d){
    if (browserName=="Microsoft Internet Explorer")
    {
        //d.animate({marginRight: maxDisplace+"px"}, moveTime);
        moveMenu(d, "margin-right", maxDisplace, moveTime);
        d.css('color', overColour);
    } else {
        d.animate({"marginRight": maxDisplace+"px"}, moveTime);
        d.animate({ color: overColour }, colourTime);
    }
}

function mouseOutMove(d){
    if (browserName=="Microsoft Internet Explorer")
    {
        //d.animate({marginRight: maxDisplace+"px"}, moveTime);
        moveMenu(d, "margin-right", minDisplace, moveTime);
        d.css('color', outColour);
    } else {
        d.animate({marginRight: minDisplace+"px"}, moveTime);
			d.animate({ color: outColour }, colourTime);
    }

}

function colourTransition(index, state){
	var d = $("#Nav1 li:eq("+index+")").find('.menuText');
	if(elementColour[index] == 0)
	{
		if(state == 0){
			elementColour[index] = 1;
            mouseOverMove(d);
			setTimeout("tansitionComplete("+index+", 0)", 500);
		}
	}
	else if(elementColour[index] == 1)
	{
		if(state == 1)
		{
			elementColour[index] = 3;
		}
	}
	else if(elementColour[index] == 2)
	{
		if(state == 1){
            //alert("moving out "+index);
			elementColour[index] = 3;
            mouseOutMove(d);
			setTimeout("tansitionComplete("+index+", 1)", 500);
		}
	}
	else if(elementColour[index] == 3)
	{
		if(state == 0){
			elementColour[index] = 1;
		}
	}


}

function tansitionComplete(index, state){


	var d = $("#Nav1 li:eq("+index+")").find('.menuText');
	if(state == 0){

		if(	elementColour[index] == 1){
			elementColour[index] = 2;
			//Done Animation;
		} else if (elementColour[index] != 4 || (elementColour[index] == 4 && curSelection != index)) {
			//alert("earlyOut");
			elementColour[index] = 3;
            mouseOutMove(d);
			setTimeout("tansitionComplete("+index+", 1)", 500);
			//undo animation
		}
	} else {
		//alert("out");
		if( elementColour[index] == 3){
			elementColour[index] = 0;
		} else if (elementColour[index] == 4 && curSelection == index)
        {
            mouseOverMove(d);
			setTimeout("tansitionComplete("+index+", 0)", 500);
        } else {
			elementColour[index] = 1;
            mouseOverMove(d);
			setTimeout("tansitionComplete("+index+", 0)", 500);

			//forward animation
		}

	}
}

function getElementNumber(element){
    var $p=element.parent().children();
    return $p.index(element);
}

function getElementNumberIE(element)
{
    //element.prevAll();
    //$c = element.parent();

    //$c.css("color", "FF3322");
    //$p = element.find('.menuText');
    //alert($p.prevAll().length);
    //$p.css("color", "FF3322");
}

$(document).ready(function() {

    numElements = $('#Nav1').children().size();
    $("#Nav1").find('.menuText').css('color', outColour);
	for(var i = 0; i  < numElements; i++){
		elements[i] = 0;
		elementColour[i] = 0;
        //$('#Nav1 li:eq('+i+')').live('click', function(e) { var thisNum = getElementNumber(this); alert(thisNum); setVisible(thisNum) });
        if (browserName=="Microsoft Internet Explorer")
        {

            $('#Nav1 li:eq('+i+')').click(function() {var elNum = $('#Nav1 li').index(this);
                setVisible(elNum);});
            $('#Nav1 li:eq('+i+')').find('.menuText').css('margin-right', minDisplace+"px");
        } else {
            $('#Nav1 li:eq('+i+')').live('click', function() { var elNum = getElementNumber($(this)); setVisible(elNum);});
            $('#Nav1 li:eq('+i+')').find('.menuText').css('margin-right', minDisplace+"px");
        }
        //alert(getElementNumber($('#Nav1 li:eq('+i+')')));
        //$('#Nav1 li:eq('+i+')').css('color', 'blue');
	}
	$('#Nav1 > li').hover(function() {

        if (browserName=="Microsoft Internet Explorer")
        {
            var elNum = $('#Nav1 li').index(this);
            elements[elNum] = 1;
            colourTransition(elNum, 0);
        } else {
            var obj = $(this);
            var i = getElementNumber(obj);
            elements[i] = 1;
            //setVisible(i);
            colourTransition(i, 0);
        }

	}, function() {
        if (browserName=="Microsoft Internet Explorer")
        {
            var elNum = $('#Nav1 li').index(this);
            elements[elNum] = 0;
            colourTransition(elNum, 1);
        } else {
            obj = $(this);
            var i = getElementNumber(obj);
            elements[i] = 0;
            colourTransition(i, 1);
        }






	});
});

function loadCallback(element, elNum)
{
    var elNum = getElementNumber($(element));
    setVisible(elNum);
}


//Function not used.  This will move menu elements without animate function.
function moveMenu(element, property, dest, time) {
    done = true;
    //var e = $('#Nav1').children();
    if(time > 0)
    {
        var curLocation = element.css(property);
        curLocation = parseInt(curLocation.substring(0, curLocation.length - 2));
        var dif = dest - curLocation;
        var steps = time / 10;
        var step = dif/steps;
        var newLocation = curLocation + step;
        //alert(newLocation);
        element.css(property, newLocation+"px");
        time -= 10;

        setTimeout(
			function(){moveMenu(element, property, dest, time)},
			10);
    } else {
        element.css(property, dest+"px");

    }
/*    for( var i = 0; i < numElements; i++ )
    {
		var d = $("#Nav1 li:eq("+i+")").find('.menuText');
		var e = d.css("margin-right");
		//alert(e);
        //var displaceString = $("#Nav li:eq("+i+")").css("margin-left");
		var displaceString = e;
		displaceString = displaceString.substring(0, displaceString.length - 2);
		//var displaceVal = displaceString.parseInt();
		//alert(displaceString);

		//var displaceVal = displaceString.parseInt();
        //alert("displace value is "+displaceString+" and element is "+elements[i]);
        if(elements[i] == 1 && displaceString < maxDisplace )
        {
			var goTo = parseInt(displaceString) + 1;
			//alert("need to move "+goTo)
            done = false;
            d.css("margin-right", goTo);
			//alert("working");
        }
        else if(elements[i] == 0 && displaceString > 0)
        {
			//alert("need move back "+i)
            done = false;
            d.css("margin-right", displaceString - 1);
        }
    }*/

	//alert(done);
    //if(!done){
		//alert("looping");

    //}
    /*var margin = element.find(".menuText").css("margin-left");
    alert(margin);
	if (margin > 50) {

		$(".menuText").css("margin-left", margin - 5);
	} //if
    $("#content").html("Out");*/
    //alert($("#contnet").css('left'));
}


//