/*
 * Core JavaScript (requires Mootools v1.2)
 * 
 * Original Author: Chris Martin, Webexpectations.com
 * Last updated: 2008/09/11
 *
 */
 
/* - Initialisation (runs functions common to all pages) - */

window.addEvent('domready', function() {
  attachExternals(); // Make external links open in a new window.
  attachHovers(); // Attach menu hover classes for IE6.
  attachPopups(); // Attach accessible popups.
  attachSliders(); // Attach slider show/hide effects.
  attachTabsets(); // Create tabbed sections.
  new SmoothScroll(); // Enable smooth scrolling for anchors.
});

/* - Functions - */

function attachExternals() {
  $$('a.external').each(function(extLink, i){
    extLink.setProperty('target','_blank');
  });
}

function attachHovers() {
  var lis = $$('ul#navbar li');
  lis.each(function(li,i) {
    
    // Give everything the over class.
    li.addEvent('mouseenter',function(){
      li.toggleClass('over');
    });
    li.addEvent('mouseleave',function(){
      li.toggleClass('over');
    });
    
    // Treat the special cases of the first and last menu item.
    if (li.getProperty('id') == 'Home') {
      if (li.hasClass('current')) {
        li.addEvent('mouseenter',function(){
          li.toggleClass('firstcurrentover');
        });
        li.addEvent('mouseleave',function(){
          li.toggleClass('firstcurrentover');
        });
      }
      else {
        li.addEvent('mouseenter',function(){
          li.toggleClass('firstover');
        });
        li.addEvent('mouseleave',function(){
          li.toggleClass('firstover');
        });
      }
    }
    if (li.getProperty('id') == 'ContactUs') {
      if (li.hasClass('current')) {
        li.addEvent('mouseenter',function(){
          li.toggleClass('lastcurrentover');
        });
        li.addEvent('mouseleave',function(){
          li.toggleClass('lastcurrentover');
        });
      }
      else {
        li.addEvent('mouseenter',function(){
          li.toggleClass('lastover');
        });
        li.addEvent('mouseleave',function(){
          li.toggleClass('lastover');
        });
      }
    }
  })
}

function attachPopups() {
  var width = 640;
  var height = 480;
  $$('a.popup').each(function(popup, i) {
    if (rel = popup.getProperty('rel')) {
      var parts = rel.split(',');
      var dimensions = false;
      parts.each(function(part,j){
        if (part.trim().test("[0-9]+x[0-9]+", 'i')) { dimensions = j; }
      });
      if ($chk(dimensions)) {
        var dimensions = parts[dimensions].trim().split('x');
        width = dimensions[0];
        height = dimensions[1];
      }
    }
    popup.addEvent('click', function() {
      window.open(popup.href,'_blank','width='+width+',height='+height+',resizable=yes,scrollbars=yes,toolbar=no,status=no,directories=no');
      if (window.focus) popup.focus();
      return false;
    });
  });
}

function attachSliders() {
  $$('.slider').each(function(slider,i){
    var theslider = new Fx.Slide(slider, {duration:500});
    theslider.hide();
    
    var toggler = slider.getParent().getPrevious();
    toggler.addClass('toggler');
    
    toggler.addEvent('click',function(){
      theslider.toggle();
    });
    toggler.addEvent('mouseenter',function(){
      toggler.addClass('hover');
    });
    toggler.addEvent('mouseleave',function(){
      toggler.removeClass('hover');
    });
    theslider.addEvent('onComplete',function(){
      toggler.toggleClass('open');
    });
  });
}

function attachTabsets() {
  $$('.tabset').each(function(tabset,i){
    tabset.setProperty('class','activetabset');
    var ul = new Element('ul', {'class': 'tabs'});
    ul.inject(tabset,'top');
    
    var sections = tabset.getElements('.section');
    var headings = sections.getPrevious();
    
    headings.each(function(heading,j){
      // Inject heading into the tabs ul.
      var li = new Element('li');
      heading.inject(li);
      li.inject(ul,'bottom');
      
      // Class adjustments on tab click.
      var parentli = heading.getParent();
      parentli.addEvent('click',function(){
        tabset.getElements('.current').each(function(element){element.removeClass('current');});
        tabset.getElements('.previous').each(function(element){element.removeClass('previous');});
        tabset.getElements('.next').each(function(element){element.removeClass('next');});
        heading.addClass('current');
        if (element = heading.getParent().getPrevious()) element.getChildren().addClass('previous');
        if (element = heading.getParent().getNext()) element.getChildren().addClass('next');
        sections[j].addClass('current');
      });
      
      // Tab hover events.
      parentli.addEvent('mouseenter',function(){
        heading.addClass('hover');
      });
      parentli.addEvent('mouseleave',function(){
        heading.removeClass('hover');
      });
      
    });
    
    // Initial class assignment.
    sections[0].addClass('current');
    headings[0].addClass('current');
    headings[0].getParent().addClass('first');
    headings.getParent().getLast().addClass('last');
  });
}

function attachSifr () {

  var wendy = {
    src: '/_flash/wendy_lp_std_medium.swf',
    ratios: [6,1.41,9,1.35,15,1.29,21,1.25,23,1.22,28,1.23,34,1.22,41,1.21,59,1.2,62,1.19,63,1.2,68,1.19,69,1.2,96,1.19,97,1.18,102,1.19,103,1.18,106,1.19,108,1.18,112,1.19,114,1.18,115,1.19,120,1.18,121,1.19,1.18]
  };
  
  sIFR.fitExactly = true;
  sIFR.activate(wendy);
    
  sIFR.replace(wendy, {
    selector: 'div#home-standfirst h1 span',
    css: ['.sIFR-root {color:#a94e9b; font-weight:bold;}'],
    wmode: 'transparent'
  });
  
  sIFR.replace(wendy, {
    selector: 'div#home-standfirst p.findoutmore span',
    css: ['.sIFR-root {color:#2079c0; font-weight:bold;}','a {color:#2079c0; text-decoration:none;}','a:hover {color:#2079c0; text-decoration:underline;}'],
    wmode: 'transparent'
  });
  
  sIFR.replace(wendy, {
    selector: 'div#home-whatis h2 span',
    css: ['.sIFR-root {color:#a94e9b; font-weight:bold; display:block;}'],
    wmode: 'transparent'
  });
  
  sIFR.replace(wendy, {
    selector: 'div.box h2 span',
    css: ['.sIFR-root {color:#2079c0; font-weight:bold; display:block;}','a {color:#2079c0; text-decoration:none;}','a:hover {color:#2079c0; text-decoration:underline;}'],
    wmode: 'transparent'
  });
  
  sIFR.replace(wendy, {
    selector: 'div#content h1',
    css: ['.sIFR-root {color:#a94e9b; font-weight:bold;}'],
    wmode: 'transparent'
  });
 
   sIFR.replace(wendy, {
    selector: 'div#content h2',
    css: ['.sIFR-root {color:#a94e9b; font-weight:bold;}'],
    wmode: 'transparent'
  }); 
}

// attachSifr(); // Apply sIFR font replacement.