var Site = {

  
  // initialize page and all its many wonderful functions
  start: function(){
    //Site.splash();
    Site.popExternal();
    if ($('splash')) {
      Site.setPop($('splash'));
    }
    if ($('still')) {
      Site.setStillTab();
    }
    if ($('trailer')) {
      Site.setTrailerTab();
    }
    if ($('knob')) {
      Site.setScroller();
    }
      
  },
  
  splash: function() {
    // always start with splash page!
    if (document.referrer.indexOf('hirsute') !== -1) {
      alert(document.referrer);
    };
  },
  
  popExternal: function() {
    var inLink = "hirsute.thesiblings.ca";
    var outLink;
    if (document.getElementsByTagName('a')) {
      for (var i = 0; (outLink = document.getElementsByTagName('a')[i]); i++) {
        if (outLink.href.indexOf(inLink) == -1) {
          outLink.setAttribute('target', '_blank');
        }
      }
    } 
  },
  
  setPop: function(el){
    var href = el.href;
    el.removeAttribute("href");
    el.addEvent('click', function(e){
      window.open(href, '', "width=830,height=610,resizable=0,scrollbars=0,menubar=1,statusbar=1");
    })
  },
  
  setScroller: function() {
    $('content').setStyle('overflow', 'hidden');
    var steps = $('inner').getStyle('height');
    steps = steps.substring(0, steps.length-2)-100;
    if (steps > 131) {
      var mySlide3 = new Slider($('track'), $('knob'), {	
      	steps: steps,	
      	mode: 'vertical',	
      	onChange: function(step){
      	  Site.dragScroller(step);
      	  if (step == 0) {
      	    Site.dragScroller(1);
    	    }
      	}
      }).set(0);
      $('down').addEvent('click', function(){
          Site.jumpScroller(steps);
      });
    }
    else {
      $('knob').addClass('hidden');
    }
  
  },
  
  dragScroller: function(step) {
    $('inner').setStyle('margin-top', '-'+step+'px');
  },
  
  jumpScroller: function(steps) {
    var current = $('inner').getStyle('margin-top');
    current = current.substring(0, current.length-2) * 1;
    if (Math.abs(current) + 100 < steps) {
      var next = current - 150;
      var knobCurrent = $('knob').getStyle('top');
      knobCurrent = knobCurrent.substring(0, knobCurrent.length-2) * 1;
      knobNext = knobCurrent + Math.abs((150 / steps) * 225);
      
      $('inner').effect('margin-top', {
          duration: 500,
          transition: Fx.Transitions.sineOut
      }).start(current, next);
      $('knob').effect('top', {
          duration: 500,
          transition: Fx.Transitions.sineOut
      }).start(knobCurrent, knobNext);
    }
  },
  
  setTrailerTab: function(){
    $('tab').removeAttribute("href");
    $('close').removeAttribute("href");
    $('tab').addEvent('click', function(){
      Site.slider('show', 'trailer');
      Site.loadTrailer();
    });
    $('close').addEvent('click', function(){
      $$('#movie object')[0].Stop();
      Site.slider('hide', 'trailer');
      $('movie').removeClass('loading');
    });
  },
  
  setStillTab: function(){
    $('header').setStyle('top', '-116px');
    $('tab').addEvent('mouseover', function(){Site.slider('show', 'header')});
    $('still').addEvent('mouseenter', function(){Site.slider('hide', 'header')});
  },
  
  slider: function(state, object){
    if (object == "trailer") var y = 292;
    if (object == "header") var y = 116;
    var object = $(object);
    if (state == 'hide' && object.getStyle('top') == "0px") {
      object.effect('top', {
        duration: 500,
        transition: Fx.Transitions.sineOut
      }).start(0, -y)
    }
    else if (state == 'show' && object.getStyle('top') == "-"+y+"px") {
      object.effect('top', {
        duration: 750,
        transition: Fx.Transitions.sineOut
      }).start(-y, 0)
    }
  },
  
  loadTrailer: function(){
    $('movie').addClass('loading');
    new Ajax('http://hirsute.thesiblings.ca/trailer?ajax=1', {
    		method: 'get',
    		update: $('movie'),
    		onComplete: function(){
    		  $('movie').removeClass('loading');
    		}
    	}).request();
  }
}   

window.addEvent('domready', Site.start);