var Site = {

  
  // initialize page and all its many wonderful functions
  start: function(){
    if ($('enter')) {
      Site.setPop($('enter'));
      Site.setWindowMargin();
      window.addEvent('resize', function(){
        Site.setWindowMargin();
      });
      if(!window.ie) {
        Site.fadeBorder($('enter')); // dont work in IE
      }
      // preload a few things
      image1 = new Image();
      image1.src = "/images_site/background_news.jpg";
      image2 = new Image();
      image2.src = "/images_site/background_bio.jpg";
      image3 = new Image();
      image3.src = "/images_site/background_links.jpg";
      image4 = new Image();
      image4.src = "/images_site/background_contact.jpg";
    }
    else {
      Site.forceSplash();
    }
    // preload a few more things
    if ($$('.bio')[0]) {
      image1 = new Image();
      image1.src = "/images_site/background_resume.jpg";
      image2 = new Image();
      image2.src = "/images_site/background_awards.jpg";
      image3 = new Image();
      image3.src = "/images_site/background_kodak-interview.jpg";
      image4 = new Image();
      image4.src = "/images_site/background_fave-films.jpg";
    }
    if ($('slider')) {
      Site.setScroller();
    }
    
    if ($('info')) {
      Site.setGalleryInfo();
      Site.dropDown();
    }
    Site.popExternal();
  },
  
  popExternal: function() {
    var inLink = "spitfirefilms";
    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;
    var screenWidth = screen.width;
    el.removeAttribute("href");
    if (screenWidth < 960) {
      el.addEvent('click', function(e){
        window.open(href, '_spitfire', "width=800,height=550,resizable=0,scrollbars=0,menubar=0,statusbar=1");
      })
    }
    else {
      el.addEvent('click', function(e){
        window.open(href, '_spitfire', "width=960,height=550,resizable=0,scrollbars=0,menubar=0,statusbar=1");
      })
    }
  },
  
  forceSplash: function() {
    var windowWidth = $('container').getWidth();
    var screenWidth = screen.width;
    alert(windowWidth);
    if (screenWidth > 960 && (windowWidth > 970 || windowWidth < 950)) {
      $('container').setStyle('display', 'none');
      window.location = "http://spitfirefilms.net";
    }
    else if (windowWidth < 960) {
      new Asset.css('http://spitfirefilms.net/css/danny_small.css');
    }
  },
  
  fadeBorder: function(target) {
    var fx = new Fx.Style(target, 'opacity', {duration: 1000, wait: false});
    target.addEvent('mouseenter', function(target) {
      fx.start(0, 1);
    })
    target.addEvent('mouseleave', function(target) {
      fx.start(1, .01);
    })
},
  
  setScroller: function() {
    $('content').setStyle('overflow', 'hidden');
    var steps = $('inner').getStyle('height');
    steps = steps.substring(0, steps.length-2)-300;
    if (steps > 180) {
      $('slider').removeClass('hidden');
      var mySlide = 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);
      });
    }  
  },
  
  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) * 285);
      
      $('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);
    }
  },
  
  
  setGalleryInfo: function(){
    $('info').addEvent('mouseover', function(){Site.slideGalleryInfo('show')});
    $('image-area').addEvent('mouseenter', function(){Site.slideGalleryInfo('hide')});
  },
  
  slideGalleryInfo: function(state){
    var object = $('content');
    x = '-352';
    if (state == 'show' && object.getStyle('margin-left') == "0px") {
      object.effect('margin-left', {
        duration: 750
        //transition: Fx.Transitions.sineOut
      }).start(0, x)
    }
    else if (state == 'hide' && object.getStyle('margin-left') == x+"px") {
      object.effect('margin-left', {
        duration: 500
        //transition: Fx.Transitions.sineOut
      }).start(x, 0)
    }
  },
  
  dropDown: function(current) {
    $$('select')[0].onchange=function() {
      var location = this.value;
      window.location.replace(location);
    }
  },
  
  setWindowMargin: function(){
    // margin-height
    var windowHeight = window.getHeight();
    if (windowHeight > 775) {
     marginBottom = 0;
    }
    else {
      marginBottom = Math.abs(250 - (.4*windowHeight));
    }
    // margin-width
    var windowWidth = window.getWidth();
    if (windowWidth > 1200) {
     leftPos = 0;
    }
    else {
      leftPos = 725 - (.55*windowWidth);
    }
    // apply
    $('portrait').setStyle('margin-bottom', '-' + marginBottom + 'px');
    $('portrait').setStyle('left', '-' + leftPos + 'px');
  }
  
}   

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