/*******************************************************************************

  CSS on Sails Framework
  Title: Site Name
  Author: XHTMLized (http://www.xhtmlized.com/)
  Date: May 2010

*******************************************************************************/

var Site = {

  init: function () {
    $('body').addClass('js-enabled');

    // Open rel="external" links in another page/tab
    $('a[rel=external]').click(function(){
      window.open($(this).attr('href'));
      return false;
    });


    // Setup menu hover
    $('#nav > ul > li').each(function(idx, elm){
      $(elm).hoverIntent(function(){
                  $(this).addClass('hover');      
                },
                function(){
                  $(this).removeClass('hover');      
                });
    });

    Site.fixPng();
	  HomePreview.init();
    CaseStudies.init();
  },

  fixPng: function () {
    if (typeof DD_belatedPNG !== 'undefined') {
      var PNG_fix_selectors = [
        '#headline .figure p',
        '#preview .items .caption',
        '#nav .dropdown',
        '#nav .dropdown ul'
      ];
      DD_belatedPNG.fix(PNG_fix_selectors.join(','));
    }
  }
};


var HomePreview = (
  function () {
    var self = {

      elm: null,

      init: function () {
        self.elm  = $('#preview');
        if (self.elm.size() == 0) return;

        self.prepare();
      },

	  slideshow: function (command) {
		self.elm.find('.items').cycle(command);
	  },

      prepare: function () {
        self.elm.append('<div id="preview-nav" class="nav"/>');
        self.elm.find('.items').cycle({
          'fx':				'fade',
          'timeout':		5000,
          'speed':			600,
		      'fastOnEvent':	300,
          'autostopCount':     10000,
          'pause':			1,
		      'height':			295,
          'pager':			'#preview-nav',
          'before':			self.before,
          'after':			self.after
        });

		self.elm.find('.items span').wrap('<em class="caption" />');
      },

      before: function (elm, nextElm, options, forwardFlag) {
		var caption = $(nextElm).find('.caption');
		caption.hide();
      },

      after: function (elm, nextElm, options, forwardFlag) {
		var caption = $(nextElm).find('.caption');
		caption.slideDown();
	  }

    };

    return self;
  }
)();


var CaseStudies = (
  function (){
    var self = {
      elm: null,

      init: function(){
        self.elm = $('#case-studies');
        if (self.elm.size() == 0) return;
        
        self.elm.find('.summary').each(function(){
          $(this).find('p:last').append('<a href="#" class="more">More</a>');
        });
        
        self.elm.find('.article h2').click(self.handleToggleClick);
        self.elm.find('.article .more').click(self.handleToggleClick);

        self.showDefault();
      },

      showDefault: function(){
        var url = window.location.toString(),
            id = url.replace(/.*\#case-study-/, '');

        if (id != url) {
          self.toggle($('#case-study-' + id));
        }
      },

      toggle: function(elm){
        $(elm).toggleClass('expanded');
      },

      handleToggleClick: function(){
        self.toggle($(this).parents('.article'));
        return false;
      }

    }
    return self;
  }
)();


