var count;
var currentNum;
var heightItem;
var currentId = 3;
var animate = 0;
var timeFadeItem = 2000;      

function fadeEffectOnForItem(context){
    $(context).find('.icon_soft').stop().css('opacity', '0');
    $(context).find('.icon').stop().css({
        backgroundPosition : '0px -85px', 
        opacity : '0.2'
    }).animate({
        opacity : '1'
    }, timeFadeItem);
    
    $(context).find('.menu_text span:nth-child(1)').stop().animate({
        color : '#fff'
    }, timeFadeItem);
    $(context).find('.t_descr span:nth-child(1)').stop().animate({
        color : '#878787'
    }, timeFadeItem);    
}
            
function fadeEffectOffForItem(context){
    $(context).find('.icon').stop().animate({
        opacity : '0'
    }, timeFadeItem);
    
    $(context).find('.icon_soft').stop().css({
        opacity : '0'
    }).delay(1000).animate({
        opacity : '1'
    }, 500);
    
    $(context).find('.menu_text span:nth-child(1)').stop().animate({
        color : '#393939'
    }, timeFadeItem);                       
    $(context).find('.t_descr span:nth-child(1)').stop().animate({
        color : '#393939'
    }, timeFadeItem);
}
            
function dischargeItem(context){
    $(context).find('.icon').stop().css({
        backgroundPosition : '0px 0px'
    });
    $(context).find('.menu_text span:nth-child(1)').stop().css({
        color : '#393939'
    });                       
    $(context).find('.t_descr span:nth-child(1)').stop().css({
        color : '#393939'
    });
}
            
function opacityEffect(delta, direction){
    var pos = getNextPos(delta, direction);
    var id = pos[0];
                
    for(var i = -2; i <= 2; i++){
        var pos = id+i;
        if(pos > count)
            pos -= count;
        else if(pos < 1)
            pos = count + pos;
                    
        if((i == 1) || (i == -1) || (i == 0)){
            $('#i'+pos).css({
                opacity : 1
            });
        }else if((i == 2) || (i == -2)){
            $('#i'+pos).css({
                opacity : '0.4'
            });
        }
    }
}

function hoverInHandler(){
    if($(this).attr('id') != "i"+currentId)
        fadeEffectOnForItem(this);
}

function hoverOutHandler(){
    if($(this).attr('id') != "i"+currentId)                   
        fadeEffectOffForItem(this);
}
            
function animateMenu(id_item){
    if(animate)
        return;
    if(id_item == "i"+currentId)
        return;
    animate = 1;                    
    var delta = getDelta(id_item);

    if(delta < 0)
        raiseItem(delta*(-1));
    else if(delta > 0)
        lowerItem(delta);
}

function clickHandler(){
    var id_item = $(this).attr('id');
    if(animate)
        return;
    if(id_item == "i"+currentId)
        return;
    animate = 1;                    
    var delta = getDelta(id_item);

    if(delta < 0)
        raiseItem(delta*(-1));
    else if(delta > 0)
        lowerItem(delta);
    getContent(id_item);
}
            
function getDelta(id){
    var num = currentNum;
    var delta = 0;
               
    $(".menu_p").each(function(i){
        if($(this).attr('id') == id){
            num = i;
            return false;
        }
    });
                
    if(num == currentNum)
        return delta;
                
    delta = currentNum - num;
    return delta;
}

function setNextPos(delta, direction){
    var pos = getNextPos(delta, direction);
    if(!pos)
        return;
    currentId = pos[0];
}

function getNextPos(delta, direction){
    if((delta >= count) || (delta < 0))
        return false;
    var bufId = currentId;
    if(direction){
        bufId -= delta;
        if(bufId <= 0)
            bufId += count;
    }else{
        bufId += delta;
        if(bufId > count)
            bufId -= count;
    }
                
    var arrPos = [bufId];              
    var menu = $(".menu_p");                
    for(var i = 0; i < menu.length; i++)               
        if($(menu[i]).attr('id') == "i"+bufId){
            arrPos.push(i);
            return arrPos;
        }
    return false;
}

function lowerItem(delta){    
    if((delta >= count) || (delta <= 0))
        return;                

    var menu = $(".menu_p"); 
    var hiddenOffset = delta * heightItem * (-1);                    
    var arrItems = [];
   
    dischargeItem(menu[currentNum]);      
    opacityEffect(delta, true);

    for(var i = delta-1; i >= 0; i--)
        arrItems.push($(menu[menu.length-1-i]).clone());

    $(arrItems[0]).css({
        marginTop : hiddenOffset
    });

    for(var key in arrItems)
        $(arrItems[key]).insertBefore(menu[0]);

    menu = $(".menu_p");
                
    setNextPos(delta, true);
    fadeEffectOnForItem(menu[currentNum]); 

    $(menu[0]).animate({
        marginTop : '0px'
    }, 600, function(){
        for(var i = delta-1; i >= 0; i--)
            $(menu[menu.length-1-i]).remove();                    
        //$(".menu_p").hover(hoverInHandler, hoverOutHandler);
        $(".menu_p").bind('click', clickHandler);
        animate = 0;
    });
}

function raiseItem(delta){    
    if((delta >= count) || (delta <= 0))
        return;

    var menu = $(".menu_p"); 
    var hiddenOffset = delta * heightItem * (-1);                

    dischargeItem(menu[currentNum]);      
    opacityEffect(delta, false);

    for(var i = delta-1; i >= 0; i--)
        $(menu[i]).clone().insertAfter(menu[menu.length-1]);

    setNextPos(delta, false);                   
    fadeEffectOnForItem($('#i'+currentId));
    menu = $(".menu_p");

    $(menu[0]).animate({
        marginTop : hiddenOffset
    }, 600, function(){         
        for(var i = delta-1; i >= 0; i--)
            $(menu[i]).remove();
        //$(".menu_p").hover(hoverInHandler, hoverOutHandler);
        $(".menu_p").bind('click', clickHandler);
        animate = 0;
    });
}
            
function getContent(id){
    switch(id){
        case "i1":
            var arr = ["#right"];    
            jloader.getContent("main_contacts", null, arr);
            break;
                    
        case "i2":
            var arr = ["#right"];    
            jloader.getContent("main_about", null, arr);
            break;
                    
        case "i3":
            var arr = ["#right"];    
            jloader.getContent("main_last_projects", null, arr);
            break;
                    
        case "i4":
            var arr = ["#right"];    
            jloader.getContent("main_portfolio", null, arr);
            break;
                    
        case "i5":
            var arr = ["#right"];    
            jloader.getContent("main_services", null, arr);
            break;
            
        case "i6":
            var arr = ["#right"];    
            jloader.getContent("main_news", null, arr);
            break;
            
        case "i7":
            var arr = ["#right"];    
            jloader.getContent("main_blogs", null, arr);
            break;
    } 
}
            
function wheel(event){    
    var wheelDelta = 0;

    if (!event)
        event = window.event;

    if (event.wheelDelta) 
        wheelDelta = event.wheelDelta/120;
    else if (event.detail) 
        wheelDelta = -event.detail/3;

    if (wheelDelta){
        if(wheelDelta > 0){
            if(animate)
                return;
            animate = 1;
            lowerItem(1);                    
            getContent('i'+currentId);
        }else{
            if(animate)
                return;
            animate = 1;                    
            raiseItem(1);                    
            getContent('i'+currentId);
        }    
    }

    if (event.preventDefault)
        event.preventDefault();
    event.returnValue = false;
}
            
function get(id){
    return document.getElementById(id);
}

var pos = getNextPos(0, false);
currentNum = pos[1];
count = $(".menu_p").length;
if($(".menu_p").length != 0)
    heightItem = $(".menu_p").eq(1).css('height').replace("px", "");
                
if(navigator.appName == "Netscape"){                    
    get('window_menu').addEventListener('DOMMouseScroll', wheel, true);
}else 
    get('window_menu').onmousewheel = wheel;
    
//$(".menu_p").hover(hoverInHandler, hoverOutHandler);
$(".menu_p").bind('click', clickHandler);

$('#nav_top').click(function(){        
    if(animate)
        return;
    animate = 1;
    lowerItem(1);
    getContent('i'+currentId);
});
     
$('#nav_bottom').click(function(){    
    if(animate)
        return;
    animate = 1; 
    raiseItem(1);  
    getContent('i'+currentId);
});  

