// homepage stuff
var homeslideshowanimation = null;
var slideshowspeed = 10000;
var orbs = null;
var counter = 0;
var slides = null;
var countslides = null;

var homeslideshow = function(){
    
    slides = $$('div#slideshow').getChildren('div')[0];
    orbs = $$('ul#home-orbs').getChildren('li')[0];
    countslides = slides.length-1;
    
    if (Browser.ie6 || Browser.ie7 || Browser.ie8){
      slides.fade('hide');
    }else{
      slides.fade('out');
    }
    
    slides[counter].setStyle('display','block');
    
    if (Browser.ie6 || Browser.ie7 || Browser.ie8){
      slides[counter].fade('show');
    }else{
      slides[counter].fade('in');
    }
    
    orbs.setStyle('background-position','0 0');
    orbs[counter].setStyle('background-position','-10px 0');
    
    if(counter >= countslides){
        counter = 0;
    } else {
        counter++;
    }
    
};

var homeslideshoworbs = function(){
    
    orbs = $$('ul#home-orbs').getChildren('li')[0];
    
    orbs.addEvents({
        click: function(event){
            counter = this.get('id').split('-')[1];
            homeslideshow();
        }
    });
    
}

// minimum height of the sidebar before js kicks in
var minsidebarheight = null;
var windowheight = null;
var setfixedheight = function(){
    
    // set #main height depending on browser height minus header height
    windowheight = window.getSize().y-$('header').getStyle('height').toInt();
    minsidebarheight = $('sidebar').getStyle('height').toInt();
    
    if(windowheight < minsidebarheight) {
        windowheight = minsidebarheight;
    }
    
    scrollcontainer.setStyle('height',windowheight-footercontainerheight.toInt());
    scrollcontainer.setStyle('padding-bottom', footercontainerheight);
    
    $('sidebar').setStyle('height',windowheight);
    
    $$('body.sidebar #content #main').setStyle('padding-right','40px'); // set right padding to hide scollbar
    
}

var primaryNav = function(){
    
    $$('ul#nav li.subnav-container').each(function(item,index){
        item.getChildren('ul.subnav')[0].setStyle('display','block');
        item.getChildren('ul.subnav')[0].setStyle('width',item.getChildren('ul.subnav')[0].getStyle('width'));
        item.getChildren('ul.subnav')[0].setStyle('display','none');
        
        item.addEvents({
            mouseover: function(){
                item.setStyles({
                    // sets border lower left
                    'width': item.getStyle('width'),
                    'background': '#fff url(/images/nav-border-fade.gif) 0px -26px no-repeat'
                });
                item.getNext().setStyles({
                    // sets border lower right (or lower left on the next li)
                    'background': 'transparent url(/images/nav-border-fade.gif) 0px -28px no-repeat'
                });
                item.getChildren('ul.subnav')[0].setStyle('display','block'); // show it!
            },
            mouseleave: function(){
                // hide everything again
                item.setStyles({
                    'background': 'none'
                });
                item.getNext().setStyles({
                    'background': 'none'
                });
                item.getChildren('ul.subnav')[0].setStyle('display','none');
            }
        });
    });
    
}

// used on clients + case study pages, probably...
// hides sublinks onload, toggles onclick
var sidebarsublinks = function(){
    
    if( $$('body.sidebar').length > 0 ){
        $$('#sidebar ul li ul.sublinks').each(function(item,index){
            item.setStyle('display','none');
            item.fade('hide');
        
            item.getPrevious('a').addEvents({
                click: function(event){
                    if ( this.getNext('ul.sublinks').getStyle('display') == 'none'){
                        this.getNext('ul.sublinks').setStyle('display','block');
                        if (Browser.ie6 || Browser.ie7 || Browser.ie8){
                          this.getNext('ul.sublinks').fade('show');
                        } else {
                          this.getNext('ul.sublinks').fade('in');
                        }
                    } else {
                        this.getNext('ul.sublinks').setStyle('display','none');
                        this.getNext('ul.sublinks').fade('hide');
                    }
                    return false;
                    event.preventDefault;
                }
            });
        });
    }
    
}

var accordion = function(){
    
    if( $$('#sidebar ul.accordion').length > 0 ){
        $$('#sidebar ul.accordion ul.level2').setStyle('display','none');
        $$('#sidebar ul.accordion ul.level2').fade('hide');
        
        $$('#sidebar ul.accordion li.level1 a').addEvent('click',function(){
            if( this.getNext('ul.level2') !== null ){
                if(this.getNext('ul.level2').getStyle('display') == 'block'){
                    this.getNext('ul.level2').setStyle('display','none');
                    this.getNext('ul.level2').fade('hide');
                    return false;
                    event.preventDefault;
                } else {
                    this.getNext('ul.level2').setStyle('display','block');
                    if (Browser.ie6 || Browser.ie7 || Browser.ie8){
                      this.getNext('ul.level2').fade('show');
                    } else {
                      this.getNext('ul.level2').fade('in');
                    }
                    return false;
                    event.preventDefault;
                }
            }
        })
        
        // auto expand current/latest year
        if ( $('level1current') ) {
            $('level1current').getChildren('ul.level2')[0].setStyle('display','block');
            if (Browser.ie6 || Browser.ie7 || Browser.ie8){
              $('level1current').getChildren('ul.level2')[0].fade('show');
            } else {
              $('level1current').getChildren('ul.level2')[0].fade('in');
            }
        } else {
            $$('#sidebar ul.accordion li.level1').getChildren('ul.level2')[0].setStyle('display','block');
            if (Browser.ie6 || Browser.ie7 || Browser.ie8){
              $$('#sidebar ul.accordion li.level1').getChildren('ul.level2')[0].fade('show');
            } else {
              $$('#sidebar ul.accordion li.level1').getChildren('ul.level2')[0].fade('in');
            }
        }
    }
    
}

var team = function(){
    
    if( $('staff-list') ){
        $$('#staff-list li.department-0 ul li span')[0].addClass('current');
        
        $$('#staff-list li.department ul li').addEvents({
            mouseover: function(){
                $$('#staff-list ul li span').removeClass('current');
                $$('#staff-list div.details').setStyle('display','none');
                this.getChildren('span')[0].addClass('current');
                this.getChildren('div.details')[0].setStyle('display','block');
            },
            mouseout: function(){
                $$('#staff-list ul li span').removeClass('current');
                $$('#staff-list div.details').setStyle('display','none');
                $$('#staff-list li.department-0 ul li span')[0].addClass('current');
                $$('#staff-list li.department-0 div.details')[0].setStyle('display','block');
            }
        });
    }
    
}

var jobs = function(){
  
  if( $('jobs-list') ){
    
    $('jobs').getChildren('dl').setStyle('height','500px');
    
    if ( $('job-title-0') )
    {
      $('job-title-0').addClass('current');
    }
    
    $$('#jobs-list dt').addEvents({
      mouseover: function(){
        $$('#jobs-list dt').removeClass('current');
        $$('#jobs-list dd').setStyle('display','none');
        this.addClass('current');
        $('job-body-'+this.get('id').split('-')[2]).setStyle('display','block');
      }
    });
    
  }
  
}

var printContent = function(div){
    
    var DocumentContainer = document.getElementById(div);
    var WindowObject = window.open(
        "",
        "PrintWindow",
        "width=750,height=650,top=50,left=50,toolbars=no,scrollbars=yes,status=no,resizable=yes"
    );
    WindowObject.document.writeln('<html><head><link rel="stylesheet" type="text/css" media="screen" href="/css/print.css" /></head><body id="print">');
    WindowObject.document.writeln(DocumentContainer.innerHTML);
    WindowObject.document.writeln('</body></html>');
    WindowObject.document.close();
    WindowObject.focus();
    WindowObject.print();
    // WindowObject.close();
    
}

var printevent = function(){
  $$('img.cs-print').addEvent('click',function(event){
    printContent(this.getParent('div.case-studies').get('id'));
  });
}

// the container, should be #main, that scrolls
var scrollcontainer = null;
var scrollcontainerheight = null;

var footercontainer = null;
var footercontainerheight = null;

var init = function(){
    
    window.scrollTo(0,0);
    
    primaryNav();
    
    // sidebarsublinks(); // disabled for now
    
    footercontainer = $('footer');
    footercontainerheight = footercontainer.getStyle('height').toInt()+4; // +20 for padding
    if( $$('body.fixed').length > 0 ){
        setfixedheight();
        // resize larger if user changes browser height, cannot resize smaller as min height is set onload
        // setfixedheight.periodical(500);
    } else if( $$('body.sidebar').length > 0 ){
        $('sidebar').setStyle('height','100%'); // so background-color extends all the way down
        // $('sidebar').setStyle('z-index','-1'); // hides this behind the footer...
    }
    
    if ( $('slideshow') ) {
        // initiate on load
        homeslideshow();
        // loop
        homeslideshowanimation = homeslideshow.periodical(slideshowspeed,counter);
        // mouseover pause, else continue
        $('slideshow').addEvents({
            mouseover: function(){
                clearInterval(homeslideshowanimation);
            },
            mouseout: function(){
                homeslideshowanimation = homeslideshow.periodical(slideshowspeed,counter);
            }
        });
        
        homeslideshoworbs();
    }
    
    // scroll to top on page load
    // scrollcontainer.scrollTo(0,0);
    
    accordion();
    team();
    jobs();
    printevent();
    
    if(window.location.hash.length > 0)
    {
      var scroll = new Fx.Scroll('main', {
        wait: false,
        duration: 1000,
        offset: {'x': -20, 'y': 1000},
        transition: Fx.Transitions.Quad.easeInOut
      });
    
      var urlHashValue = window.location.hash.substr(1);
      
      scroll.toElement(urlHashValue);
      
    }
    (function(){
      $$('#main div').setStyle('visibility', 'visible');
    }.delay(500));
}

window.addEvent('domready',function() {
    
    scrollcontainer = $('main');
    
    
    init();
    
    
    
    // Hide the web debug
    try { sfWebDebugToggleMenu(); } catch(e){ }
    
});

// add scrollto stuff case-study hash links
// window.addEvent('load',function() {
//     
//     
//     
// });
