function link_hover(){
    var links = xGetElementsByTagName('a', 'best_client');
    
    xEach(links, function(item){
        xAddEventListener(item, 'mouseover', function(){
            if(xHasClass(item, 'sprite')){
                var t = item.className.replace('sprite ', '');
                xStyle('textDecoration', 'none', t);
            }
            else {
                xStyle('textDecoration', 'none', item);
                var node = xGetElementsByClassName(item.id , 'best_client', 'a')[0];
                xAddClass(node, 'hover');
            }
        }, false);
        
        xAddEventListener(item, 'mouseout', function(){
            if(xHasClass(item, 'sprite')){
                var t = item.className.replace('sprite ', '');
                xStyle('textDecoration', 'underline', t);
            }
            else {
                xStyle('textDecoration', 'underline', item);
                var node = xGetElementsByClassName(item.id , 'best_client', 'a')[0];
                xRemoveClass(node, 'hover');
            }
        }, false);
        
    }, 0);
}


function people(){
    var face = xGetElementsByTagName('img', 'peoplebox');
    var xa_out = new xAnimation;
    var xa_in = new xAnimation;
    xEach(face, function(item){
        xAddEventListener(item, 'click', function(){
            var prev = xGetElementsByClassName('active' , 'peoplebox', 'li')[0];
            var el = xParentN(item, 2);
            if(xHasClass(el, 'active')){ return; }
            if(prev){
                xRemoveClass(prev, 'active');
                xa_out.css(prev, 'width', 130, 250);
            }
            xAddClass(el, 'active');
            xa_in.css(el, 'width', 347, 250);
        }, false);
    }, 0);
}


function diplom(){
    var crop = xGetElementById('dip_crop');
    var float = xGetElementById('float_dip');
    var button = xGetElementById('control');
    var step = xWidth(crop);
    
    var max = step - xWidth(xGetElementsByTagName('ul', float)[0]) + 30;
    var xa = new xAnimation;
    
    var i_width = xWidth(xGetElementsByTagName('div', float)[1]);
    
    xAddEventListener(button, 'click', function(){
        this.blur();
        var position = xGetComputedStyle(float, 'margin-left', true);
        var npos = position - step + i_width;
        if(position == max){
            npos = 0;
        }
        else if(npos < (max + 50)){
            npos = max;
        }
        xa.css(float, 'margin-left', npos, 500);
    }, false);
}


function check_view(){
    var w = xWidth('scroller') - xWidth('navbox') + 'px';
    xStyle('left', w, 'navbox', 'gotop');
    xStyle('visibility', 'visible', 'navbox', 'gotop');
}

function get_position(){
    return {
        'agency': xOffset('agency_layer').y,
        'services': xOffset('services_layer').y,
        'clients': xOffset('clients_layer').y,
        'decorations': xOffset('decorations_layer').y,
        'contacts': xOffset('contacts_layer').y
    };
}

function winpos(){
    var hitscroll = true;
 var mobile = /Mobile/.test(window.navigator.userAgent) || false;
    if(mobile){
        document.body.className = 'mobile';
        var logo = xGetElementById('logo');
        function mob_scroll(){
            var scroll = xScrollTop();
            xStyle('top', scroll + 'px', logo);
        }
        xAddEventListener(document, 'scroll', mob_scroll, false);
    }
    check_view();
    var root = xGetElementById('wrapper');
    var point = xGetElementById('point');
    var scroll = xScrollTop(root);
    var box_position = get_position();
    
    var height_document = xHeight('scroller');
    //console.log([xHeight('scroller'), xClientHeight()]);
    
    //
    var nav_size = {
        'agency': [xOffset('agency').y, xHeight('agency')], // position, height
        'services':  [xOffset('services').y, xHeight('services')],
        'clients':  [xOffset('clients').y, xHeight('clients')],
        'decorations':  [xOffset('decorations').y, xHeight('decorations')],
        'contacts':  [xOffset('contacts').y, xHeight('contacts')]
    };
    function set_active(pos, height, time){
        var xp = new xAnimation;
        var hp = new xAnimation;
        xp.css(point, 'top', pos, time);
        hp.css(point, 'height', height, time);
    }
    var current = 'contacts';
    if(scroll < box_position['services']){
        current = 'agency';
    }
    else if(scroll < box_position['clients']){
        current = 'services';
    }
    else if(scroll < box_position['decorations']){
        current = 'clients';
    }
    xAddClass(current, 'current');
    set_active(nav_size[current][0], nav_size[current][1], 150);
    
    function check_scroll(){
        if(hitscroll){
            var pos = xScrollTop(root);
            
            var next = 'agency';
            if(pos >= box_position['contacts'] || pos == height_document - xClientHeight()){
                next = 'contacts';
            }
            else if(pos >= box_position['decorations']){
                next = 'decorations';
            }
            else if(pos >= box_position['clients']){
                next = 'clients';
            }
            else if(pos >= box_position['services']){
                next = 'services';
            }
            
            if(next != current){
                current = next;
                xRemoveClass(xGetElementsByClassName('current' , 'navigation', 'li')[0], 'current');
                xAddClass(next, 'current');
                set_active(nav_size[current][0], nav_size[current][1], 150);
            }
        }
    }
    
    xAddEventListener(root, 'scroll', check_scroll, false);
    
    var nav = xGetElementsByTagName('li', 'navigation');
    
    var hitimeout = null;
    
    xEach(nav, function(item){
        xAddEventListener(item, 'click', function(){
            var dtime = 150;
            
            if(hitimeout) clearTimeout(hitimeout);
            hitscroll = false;
            hitimeout = setTimeout(function(){
                hitscroll = true;
            }, 500);
            
            if(xHasClass(xParentN(item, 0), 'current')){ return; }
            xRemoveClass(xGetElementsByClassName('current' , 'navigation', 'li')[0], 'current');
            xAddClass(item, 'current');
            
            current = item.id;
            if(mobile){
                var tid = '#' + item.id + '_layer';
                myScroll.scrollToElement(tid, '1s');
                dtime = 100;
            }
            else{
                var xa = new xAnimation;
                xa.scroll(root, 0, box_position[item.id], 500, 0, 0);
            }
            set_active(nav_size[item.id][0], nav_size[item.id][1], dtime);
        }, false);
    }, 0);
    
    function setzero(){
        if(mobile){
            myScroll.scrollToElement('#agency_layer', '1s');
        }
        else{
            var xa = new xAnimation;
            xa.scroll(root, 0, box_position['agency'], 500, 0, 0);
        }
        xRemoveClass(xGetElementsByClassName('current' , 'navigation', 'li')[0], 'current');
        xAddClass('agency', 'current');
        set_active(nav_size['agency'][0], nav_size['agency'][1], 100);
    }
    
    xAddEventListener('gotop', 'click', setzero, false);
    
    xAddEventListener(window, 'resize', function(){
        check_view();
        box_position = get_position();
    }, false);
}


function services_hover(){
    var elem = xGetElementsByClassName('list_spacer', 'slist');
    
    xEach(elem, function(item){
        xAddEventListener(item, 'mouseover', function(){
            var xa_height = new xAnimation;
            var pre = xPrevSib(item);
            var height = xHeight(xPrevSib(pre));
            xa_height.css(pre, 'height', height, 250);
        }, false);
        
        xAddEventListener(item, 'mouseout', function(){
            var xa_height = new xAnimation;
            var pre = xPrevSib(item);
            xa_height.css(pre, 'height', 0, 250);
        }, false);
        
    }, 0);
}

function init(){
    link_hover();
    people();
    diplom();
    winpos();
    services_hover();
}


xAddEventListener(window, 'load', init, false);
