var further = false;

function hookLeft() {
    $("#choose_left").click(function(e) {
        $('body').css({overflow:'hidden'});
        $('#global_container').css({overflow:'hidden', width:'200%'});
        $('#choose_container').css({width:'50%'});
        $('#left_container').css({width:'0%', opacity: 0});

        $('#left_container').load($("#choose_left").attr("href") + ' #left_container2', function() {
            $('#left_menu').css({opacity: 0});
            $('#choose_container').animate({
                opacity: 0
            }, 500);
            $('body').animate({
                backgroundColor: '#ffffff'
            }, 500);
            $('#left_container').animate({
                opacity: 1,
                width: "50%"
            }, 500, function() {
                $('#choose_container').empty().css({width:'0%'});
                $('#left_container').css({width:'100%'});
                $('#global_container').css({overflow:'auto', width:'100%'});
                $('body').css({overflow:'auto'}).removeClass('choose').addClass('left');
                location.hash = '/left';
                leftHooks();
                $('#left_menu').animate({opacity: 1});

                Shadowbox.setup("a.shadowbox", {
                    gallery:            "Galeria",
                });

            });
        });
        e.preventDefault();
    });    
}

function hookRight() {
    $("#choose_right").click(function(e) {
        $('body').css({overflow:'hidden'});
        $('#global_container').css({overflow:'hidden', width:'200%'});
        $('#choose_container').css({width:'50%'});
        $('#right_container').css({width:'50%', opacity: 0});

        $('#right_container').load($("#choose_right").attr("href") + ' #right_container2', function() {
            $('#right_menu').css({opacity: 0});
            $('body').animate({
                backgroundColor: '#ffffff'
            }, 500);
            $('#right_container').animate({
                opacity :1
            }, 500);
            $('#choose_container').animate({
                opacity: 0,
                width: "0%"
            }, 500, function() {
                $('#choose_container').empty().css({width:'0%'});
                $('#right_container').css({width:'100%'});
                $('#global_container').css({overflow:'auto', width:'100%'});
                $('body').css({overflow:'auto'}).removeClass('choose').addClass('right');
                location.hash = '/right';
                rightHooks();
                $('#right_menu').animate({opacity: 1});
                Shadowbox.setup("a.shadowbox", {
                    gallery:            "Galeria",
                });
            });
        });
        e.preventDefault();
    });
}

function hookReturnLeft(item) {
    item.click(function(e) {
        $('body').scrollTo(0, 500, {
            onAfter: function() {
                $('body').css({overflow:'hidden'});
                $('#global_container').css({overflow:'hidden', width:'200%'});
                $('#right_container').css({width:'50%'});
                $('#choose_container').css({width:'0%', opacity: 0});

                $('#choose_container').load($(item).attr("href") + ' #choose_container2', function() {
                    $('#right_container').animate({
                        opacity: 0
                    }, 500);
                    $('body').animate({
                        backgroundColor: '#ececec'
                    }, 500);
                    $('#choose_container').animate({
                        opacity: 1,
                        width: "50%"
                    }, 500, function() {
                        $('#right_container').empty().css({width:'0%'});
                        $('#choose_container').css({width:'100%'});
                        $('#global_container').css({overflow:'auto', width:'100%'});
                        $('body').css({overflow:'auto'}).removeClass('right').addClass('choose');
                        middleHooks();
                        if (!further) {
                            location.hash = '/';
                        } else {
                            further = false;
                            $("#choose_left").click();
                        }
                    });
                });
            }
        });
        e.preventDefault();
    });
}

function hookReturnRight(item) {
    item.click(function(e) {
        $('body').scrollTo(0, 500, {
            onAfter: function() {
                $('body').css({overflow:'hidden'});
                $('#global_container').css({overflow:'hidden', width:'200%'});
                $('#left_container').css({width:'50%'});
                $('#choose_container').css({width:'50%', opacity: 0});

                $('#choose_container').load($(item).attr("href") + ' #choose_container2', function() {
                    $('body').animate({
                        backgroundColor: '#ececec'
                    }, 500);
                    $('#choose_container').animate({
                        opacity :1
                    }, 500);
                    $('#left_container').animate({
                        opacity: 0,
                        width: "0%"
                    }, 500, function() {
                        $('#left_container').empty().css({width:'0%'});
                        $('#choose_container').css({width:'100%'});
                        $('#global_container').css({overflow:'auto', width:'100%'});
                        $('body').css({overflow:'auto'}).removeClass('left').addClass('choose');
                        middleHooks();
                        if (!further) {
                            location.hash = '/';
                        } else {
                            further = false;
                            $("#choose_right").click();
                        }                        
                    });
                });
            }
        });
        e.preventDefault();
    });
}

function middleHooks() {
    hookLeft();
    hookRight();
    $("#choose_smile").tooltip({effect: 'slide', tip: '#tooltip', offset: [30, -5]});
}

function leftHooks() {
    hookReturnRight($("#return_right"));
    hookReturnRight($("#home a"));

    if ($("#main_menu > li.activeparent").length > 0) {
        activeParent = $("#main_menu > li.activeparent");
        // startingChild = $("#main_menu > li").size() - $("#main_menu > li").index("li.activeparent");
        startingChild = $("#main_menu > li.activeparent").index();        
    } else {
        activeParent = $("#main_menu > li")[0];
        startingChild = 0;
    }
    
    $("#main_menu").roundabout({
        shape: 'figure8',
        tilt: -1.35,
        minScale: 0.7,
        minOpacity: 0.1,
        startingChild: startingChild
    });

    $("#left_menu").prepend('<div id="menu_indicator"></div>');

    for (var i = $("#main_menu > li").size() - 1; i >= 0; i--) {
        $("#menu_indicator").append('<div id="menu_indicator_' + i + '" class="menu_indicator_bullet menu_indicator_bullet_inactive"></div>');
    }
    $("#menu_indicator").css({width: ($("#main_menu > li").size() * 16) + "px"})

    $("#menu_indicator_2").addClass("menu_indicator_bullet_active").removeClass("menu_indicator_bullet_inactive");

    $('#main_menu > li').focus(function(e) {
        $(".menu_indicator_bullet_active").addClass("menu_indicator_bullet_inactive").removeClass("menu_indicator_bullet_active");
        var index = $(this).index('#main_menu > li');
        var indicator = $("#menu_indicator_"+index);
        indicator.addClass("menu_indicator_bullet_active").removeClass("menu_indicator_bullet_inactive");

        var menuItem = $(this);

        if ($("#second_menu").length > 0) {
            $("#second_menu_slider .viewport").animate({"opacity": 0}, 500, function() {
                $("#second_menu").remove();
                $("#second_menu_slider .buttons").addClass("disabled");

                if (menuItem.find("ul")) {
                    $("#second_menu_slider .viewport").css({"opacity": 0});
                    $("#second_menu_slider .viewport").prepend(menuItem.find("ul").clone());
                    $("#second_menu_slider .viewport ul").attr("id", "second_menu").addClass("overview");
                    $("#second_menu_slider").tinycarousel({display: 1});
                    $("#second_menu_slider .viewport").animate({"opacity": 1});
                }
            });            
        } else {
            if (menuItem.find("ul")) {
                $("#second_menu_slider .viewport").css({"opacity": 0});
                $("#second_menu_slider .viewport").prepend(menuItem.find("ul").clone());
                $("#second_menu_slider .viewport ul").attr("id", "second_menu").addClass("overview");
                $("#second_menu_slider").tinycarousel({display: 1});
                $("#second_menu_slider .viewport").animate({"opacity": 1});
            }
        }
    });

    $(activeParent).focus();

    $('.menu_indicator_bullet').click(function(e) {
        var index = $("#main_menu > li").size() - $(this).index("#menu_indicator div") - 1;
        $('#main_menu').roundabout_animateToChild(index);
    });
}

function rightHooks() {
    hookReturnLeft($("#return_left"));
    hookReturnLeft($("#home a"));

    if ($("#main_menu > li.activeparent").length > 0) {
        activeParent = $("#main_menu > li.activeparent");
        // startingChild = $("#main_menu > li").size() - $("#main_menu > li").index("li.activeparent");
        startingChild = $("#main_menu > li.activeparent").index();        
    } else {
        activeParent = $("#main_menu > li")[0];
        startingChild = 0;
    }            
    
    $("#main_menu").roundabout({
        shape: 'figure8',
        tilt: -1.35,
        minScale: 0.7,
        minOpacity: 0.1,
        startingChild: startingChild
    });    

    $("#right_menu").prepend('<div id="menu_indicator"></div>');

    for (var i = $("#main_menu > li").size() - 1; i >= 0; i--) {
        $("#menu_indicator").append('<div id="menu_indicator_' + i + '" class="menu_indicator_bullet menu_indicator_bullet_inactive"></div>');
    }
    $("#menu_indicator").css({width: ($("#main_menu > li").size() * 16) + "px"})

    $("#menu_indicator_2").addClass("menu_indicator_bullet_active").removeClass("menu_indicator_bullet_inactive");

    $('#main_menu li').focus(function(e) {
        $(".menu_indicator_bullet_active").addClass("menu_indicator_bullet_inactive").removeClass("menu_indicator_bullet_active");
        var index = $(this).index('#main_menu > li');
        var indicator = $("#menu_indicator_"+index);
        indicator.addClass("menu_indicator_bullet_active").removeClass("menu_indicator_bullet_inactive");

        var menuItem = $(this);

        if ($("#second_menu").length > 0) {
            $("#second_menu_slider .viewport").animate({"opacity": 0}, 500, function() {
                $("#second_menu").remove();
                $("#second_menu_slider .buttons").addClass("disabled");

                if (menuItem.find("ul")) {
                    $("#second_menu_slider .viewport").css({"opacity": 0});
                    $("#second_menu_slider .viewport").prepend(menuItem.find("ul").clone());
                    $("#second_menu_slider .viewport ul").attr("id", "second_menu").addClass("overview");
                    $("#second_menu_slider").tinycarousel({display: 1});
                    $("#second_menu_slider .viewport").animate({"opacity": 1});
                }
            });
        } else {
            if (menuItem.find("ul")) {
                $("#second_menu_slider .viewport").css({"opacity": 0});
                $("#second_menu_slider .viewport").prepend(menuItem.find("ul").clone());
                $("#second_menu_slider .viewport ul").attr("id", "second_menu").addClass("overview");
                $("#second_menu_slider").tinycarousel({display: 1});
                $("#second_menu_slider .viewport").animate({"opacity": 1});
            }
        }
    });

    $(activeParent).focus();

    $('.menu_indicator_bullet').click(function(e) {
        var index = $("#main_menu > li").size() - $(this).index("#menu_indicator div") - 1;
        $('#main_menu').roundabout_animateToChild(index);
    });
}

$(document).ready(function() {
    $(window).hashchange( function(){
        if (location.hash == "#/" && !$('body').hasClass('choose')) {
            if ($('body').hasClass('left')) {
                $("#return_right").click();
            }
            if ($('body').hasClass('right')) {
                $("#return_left").click();
            }
        }

        if (location.hash == "#/left" && $('body').hasClass('choose')) {
            $("#choose_left").click();
        }

        if (location.hash == "#/left" && $('body').hasClass('right')) {
            $("#return_left").click();
            further = true;
        }

        if (location.hash == "#/right" && $('body').hasClass('choose')) {
            $("#choose_right").click();
        }

        if (location.hash == "#/right" && $('body').hasClass('left')) {
            $("#return_right").click();
            further = true;
        }
    })
    
    if ($('body').hasClass('choose')) {
        middleHooks();        
        location.hash = '/';        
    }
    if ($('body').hasClass('left')) {
        leftHooks();
        location.hash = '/left';                
    }
    if ($('body').hasClass('right')) {
        rightHooks();
        location.hash = '/right';                
    }

    Shadowbox.init({
        skipSetup: true
    });
        
    Shadowbox.setup("a.shadowbox", {
        gallery: "Galeria"
    });

    if ($("#face").length > 0) {
        $("#face").click(function(e) {
            e.preventDefault();

            Shadowbox.open({
                content:    'http://www.facebook.com/plugins/likebox.php?id=251197748225379&width=500&connections=14&stream=false&header=true&height=350',
                player:     "iframe",
                height:     350,
                width:      450
            });
        });
    }
    
    $(window).hashchange();
});

