/*
Title:      hpeters.com js
Author:     Fabrice Million - http://madeinspace.com.au - fabrice.million@gmail.com
Copyright:  2010, hpeters.com All rights reserved.
*/

$(document).ready(function(){ // Start jQuery
    var containerYPosition;
    var containerYOffset = 1020;
    var maxYOffset = -6120;
    
    $(function(){
        init();
    });
    
    function init(){
        //console.log("Init page");
        resizeFrame();
        initOverscroll();
        if (getParameterByName("contId") != "") 
            positionContainer(getParameterByName("contId"));
        jQuery.event.add(window, "load", resizeFrame);
        jQuery.event.add(window, "resize", resizeFrame);
    }
    
    function resizeFrame(){
       // console.log("Resizing frame");
        var h = $(window).height();
        var w = $(window).width();
        centerContainer(w, h);
        centerVerticalArrows(h);
        setUpandDownArrows();
    }
    
    $('ul#subnav_web li a').click(function(){
        var target = $(this).attr("id");
        goToByScroll(target);
    });
    
    function goToByScroll(id){
        //get current position
        var containerYPos = getContainerYPos();
		var slideYPos = $("#"+getPageById(id)).css('top');
		var distance = Math.abs(containerYPos) - parseInt(slideYPos.slice(0,-2));
        //console.log("containerYPos: "+containerYPos+" - slideYPos: " + parseInt(slideYPos.slice(0,-2))+" distance to travel: "+distance);
		$('#container').animate({
            top: '+=' + distance,
            "easing": "easein"
        }, 500, function(){
            setUpandDownArrows();
        });
    }
    
    function positionContainer(containerId){
        deactivateArrows();
        $('#container').css({
            'top': -(containerId * containerYOffset)
        });
        $('#container').animate({
            top: '+=' + containerYOffset,
            "easing": "easein"
        }, 500, function(){
            setUpandDownArrows();
        });
    }
    
    $('li#down a').click(function(){
        deactivateArrows();
        var containerYPos = getContainerYPos();
        var newYoffset;
        newYoffset = containerYPos - containerYOffset < maxYOffset ? containerYOffset - (containerYOffset - (containerYPos - maxYOffset)) : containerYOffset;
        //console.log("newYoffset: " + newYoffset)
        $('#container').animate({
            top: '-=' + newYoffset,
            "easing": "easein"
        }, 500, function(){
            setUpandDownArrows();
        });
    });
    
    $('li#up a').click(function(){
        deactivateArrows();
        var containerYPos = getContainerYPos();
        var newYoffset;
        newYoffset = containerYPos + containerYOffset > 0 ? containerYOffset - (containerYPos + containerYOffset) : containerYOffset;
        $('#container').animate({
            top: '+=' + newYoffset,
            "easing": "easein"
        }, 500, function(){
            setUpandDownArrows();
        });
    });
    
    function activateDownArrow(){
        $('li#down a').removeClass("inactive").addClass("active");
    }
    
    function deactivateDownArrow(){
        $('li#down a').removeClass("active").addClass("inactive");
    }
    
    function activateUpArrow(){
        $('li#up a').removeClass("inactive").addClass("active");
    }
    
    function deactivateUpArrow(){
        $('li#up a').removeClass("active").addClass("inactive");
    }
    
    function deactivateArrows(){
        deactivateDownArrow();
        deactivateUpArrow();
        deactivateRightArrow();
        deactivateLeftArrow();
    }
    
    function activateUpAndDownArrows(){
        activateDownArrow();
        activateUpArrow();
    }
    
    function activateRightArrow(){
        $('li#right a').removeClass("inactive").addClass("active");
    }
    
    function deactivateRightArrow(){
        $('li#right a').removeClass("active").addClass("inactive");
    }
    
    function activateLeftArrow(){
        $('li#left a').removeClass("inactive").addClass("active");
    }
    
    function deactivateLeftArrow(){
        $('li#left a').removeClass("active").addClass("inactive");
    }
    
    function setUpandDownArrows(){
        var containerypos = getContainerYPos();
        
        if (containerypos >= 0) {
            deactivateUpArrow();
            activateDownArrow();
        }
        if (containerypos < 0 && containerypos > maxYOffset) {
            activateUpAndDownArrows();
        }
        if (containerypos <= maxYOffset) {
            deactivateDownArrow();
            activateUpArrow();
            activateRightArrow();
        }
        if (containerypos > -5400) {
            deactivateRightArrow();
        }
    }
    
    function resetPosition(){
        $('#container').animate({
            top: '0',
        }, 1000, function(){
            $('#container').addClass("caca")
        });
    }
    
    $('#subnav_web li').click(function(){
        $(this).addClass('selected');
        $(this).siblings('.selected').removeClass("selected");
    });
    
    function getContainerYPos(){
        //console.log("container position: "+$('#container').position().top);
        return $('#container').position().top;
    }
    
    function centerContainer(w, h){
        $("#viewport_dmg").css('height', h);
        if (w < 1280) {
            $("#index #viewport_container").removeClass("centered");
        }
        else {
            $("#index #viewport_container").addClass("centered");
        }
    }
    
    function centerVerticalArrows(h){
        $('li#right a').css({
            "margin-top": ((h / 2) - (171 / 2))
        })
    }
    
    function moveNavigation(){
        if (pos < -5000) {
            //console.log("move nav");
            $('#main_navigation').animate({
                marginLeft: '40',
                "easing": "easein"
            });
        }
        else 
            if (pos >= -4000) {
            
                $('#main_navigation').animate({
                    marginLeft: '840',
                    "easing": "easein"
                });
            }
    }
    
    function initOverscroll(){
        $("#viewport_dmg").overscroll({
            onDriftEnd: function(){
                setUpandDownArrows();
            },
            direction: 'vertical'
        });
    }
    
    function getParameterByName(name){
        name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
        var regexS = "[\\?&]" + name + "=([^&#]*)";
        var regex = new RegExp(regexS);
        var results = regex.exec(window.location.href);
        if (results == null) 
            return "";
        else 
            return decodeURIComponent(results[1].replace(/\+/g, " "));
    }
	
	function getPageById(id)
	{
		var slide;
		switch(id)
		{
			case "1" : slide = "page_1_1_dmg_begins";
			break;
			case "2" : slide = "page_1_2_dmg_all";
			break;
			case "3" : slide = "page_1_3_dmg_air";
			break;
			case "4" : slide = "page_1_4_dmg_extra";
			break;
			case "5" : slide = "page_2_mimco";
			break;
			case "6" : slide = "page_3_gcc";
			break;
			case "7" : slide = "page_4_artofmourning";
			break;
		}
		return slide;
	}
    
});// End jQuery

