(function($) {
  var app = $.sammy('#viewport', function() {
    this.use(Sammy.Handlebars, 'hb');
    //this.use(Sammy.GoogleAnalytics, '#!');
    
    this.helpers({
      slide: function() {
      $("#nav li").removeClass("selected");
      var location = app.getLocation().replace('#!/' , '').split('/')[0];
      //alert(location);
      
      // Only activate bg's
      if (location) { $("#" + location).addClass('active'); }
      
      //hide submenues
      $(".submenu").css("display", 'none');

      if(!location){var target = $('#home');} else {        

        if(location == 'eyewear' || location == 'lenses-for-frames' || location == 'accessories' || location == 'designers'){
          $("#nav li.eyewear").addClass("selected");
        }
        if(location == 'contact-lenses' || location == 'order-contact-lenses' || location == 'custom-contact-lenses'){
          $("#nav li.contact-lenses").addClass("selected");
        }  
        if(location == 'eyecare' || location == 'insurance' | location == 'equipment' | location == 'educational-videos' ){
          $("#nav li.eyecare").addClass("selected");
        }
        if(location == 'about' || location == 'staff' || location == 'store' || location == 'in-the-news' || location == 'movies'){
          $("#nav li.about-us").addClass("selected");
        }
        if(location == 'contact' || location == 'request_app'){
          $("#nav li.contact").addClass("selected");
        }
       
        var target = $('#'+location); 
         $("#"+location + " .submenu").css('display','block') 
       }
          $('#viewport').scrollTo( target, 1000, { offset: 50 } );
    }});

    this.bind('event-context-after', function() {
      var location = app.getLocation().replace('#!/' , '').split('/');
      var new_title = "Studio Optix";
      for ( x in location ){
        if (location != ''){
          new_title = new_title.concat(' - ' + location[x].charAt(0).toUpperCase() + location[x].slice(1));
        }
      }
      document.title = new_title;
    });

    this.bind('eyecare_toggle', function(e, name) {
      $('.instruments').hide();
      $('#' + name).show();
      $('#instruments_menu a').removeClass('selected');
      $('#instruments_menu .' + name).addClass('selected');      
    });
    
 
    this.get('#!/', function() {
    //  this.load('/home').then(function(content) { $('#home').html(content); });
      this.slide();
    });
    
    //*** EYEWEAR ***
    this.get('#!/eyewear', function(context) {
      this.load('/eyewear').then(function(content) { 
        $("#section-eyewear").removeClass().addClass("main-eyewear");
        $('#section-eyewear').html(content); 
        $('#lenses, #acc, #design').removeClass();
      });      
      this.slide();
    });
    
    this.get('#!/lenses-for-frames', function(context) {
      this.load('/eyewear/lenses-for-frames').then(function(content) { 
        $("#section-eyewear").removeClass().addClass("lenses-for-frames");
        $('#section-eyewear').html(content); 
        $('#acc, #design').removeClass();
        $('#lenses').addClass("active");  
      });
    });
        
    this.get('#!/accessories', function(context) {
      this.load('/eyewear/accessories').then(function(content) { 
        $("#section-eyewear").removeClass().addClass("accessories");
        $('#section-eyewear').html(content);   
        $('#lenses, design').removeClass();
        $('#acc').addClass("active");  
      });
    });
    
    this.get('#!/designers', function(context) {
      this.load('/eyewear/designers').then(function(content) {
        $("#section-eyewear").removeClass().addClass("designers");
        $('#section-eyewear').html(content);   
        $('#lenses, #acc').removeClass();
        $('#design').addClass("active");  
      });
    });    
    
    //*** CONTACT LENSES ***
    this.get('#!/contact-lenses', function() {
      this.load('/contact-lenses').then(function(content) { 
        $("#section-contact-lenses").removeClass().addClass("main-contact-lenses");
        $('#section-contact-lenses').html(content);  
        $('#custom, #order').removeClass();
      });
      this.slide();
    });
    
    this.get('#!/custom-contact-lenses', function() {
      this.load('/contact-lenses/custom-contact-lenses').then(function(content) { 
        $("#section-contact-lenses").removeClass().addClass("custom-contact-lenses");
        $('#section-contact-lenses').html(content);  
        $('#order').removeClass();
        $('#custom').addClass("active");  
      });
    });

    this.get('#!/order-contact-lenses', function() {
      this.load('/contact-lenses/order-contact-lenses').then(function(content) { 
        $("#section-contact-lenses").removeClass().addClass("order-contact-lenses");
        $('#section-contact-lenses').html(content); 
        $('#custom').removeClass();
        $('#order').addClass("active");  
      });  
    });
    
    this.post('#!/order-contact-lenses', function() {
      var self = this;
      $.post('/contact-lenses/order-contact-lenses', this.params.toHash(), function(content) {
        
        $('#section-contact-lenses').html(content);
      });
      return false;
    });
    

    //*** EYECARE ***
    this.get('#!/eyecare', function() {
      this.load('/eyecare').then(function(content) { 
            $("#section-eyecare").removeClass().addClass("main-eyecare");
            $('#section-eyecare').html(content); 
            $('.instruments').hide();
            $('#insu, #equip, #educ').removeClass();
         });
      this.slide();
    });    
        
    this.get('#!/eyecare/:slug', function(context) {      
      context.trigger('eyecare_toggle', context.params['slug'])
    });   
      
    this.get('#!/insurance', function() {
      this.load('/eyecare/insurance').then(function(content) {
        $("#section-eyecare").removeClass().addClass("insurance");
        $('#section-eyecare').html(content);
        $('#equip').removeClass();
        $('#educ').removeClass(); 
        $('#insu').addClass("active");  
       });     
    });
    
    this.get('#!/equipment', function() {
      this.load('/eyecare/equipment').then(function(content) {
        $("#section-eyecare").removeClass().addClass("equipment");
        $('#section-eyecare').html(content);
        $('#insu').removeClass();
        $('#educ').removeClass(); 
        $('#equip').addClass("active");  
       });     
    });    
    
    this.get('#!/educational-videos', function() {
      this.load('/eyecare/educational-videos').then(function(content) {
        $("#section-eyecare").removeClass().addClass("educational-videos");
        $('#section-eyecare').html(content);
        $('#insu').removeClass();
        $('#equip').removeClass(); 
        $('#educ').addClass("active");  
       });     
    });    
    
    //*** ABOUT US ***
    this.get('#!/about', function() {
      this.load('/about').then(function(content) { 
        $("#section-about-us").removeClass().addClass("main-about-us");
        $('#section-about-us').html(content);
        $('#staff, #store, #news, #movies').removeClass();
      });
      this.slide();
    });
  
    this.get('#!/staff', function() {
      this.load('/about/staff').then(function(content) {
        $("#section-about-us").removeClass().addClass("staff");
        $('#section-about-us').html(content);
        $('#store, #news, #movies').removeClass();
        $('#staff').addClass("active");  
       });     
    });
    
    this.get('#!/store', function() {
      this.load('/about/store').then(function(content) { 
        $("#section-about-us").removeClass().addClass("store");
        $('#section-about-us').html(content);
        $('#staff, #news, #movies').removeClass();
        $('#store').addClass("active");  
       });     
    });
    
    this.get('#!/news', function() {
      this.load('/about/news').then(function(content) { 
        $("#section-about-us").removeClass().addClass("in-the-news");
        $('#section-about-us').html(content); 
        $('#staff, #store, #movies').removeClass();
        $('#news').addClass("active");  
      });
    });
    
    this.get('#!/movies', function() {
      this.load('/about/movies').then(function(content) {
        $("#section-about-us").removeClass().addClass("movies");
        $('#section-about-us').html(content);
        $('#staff, #store, #news').removeClass();
        $('#movies').addClass("active"); 
      });
    });  
    
     //*** CONTACT ***
    this.get('#!/contact', function() {
      this.load('/contact').then(function(content) { 
        $('#contact').html(content); 
      });
      this.slide();
    });
    
    this.post('#!/contact', function() {
      var self = this;

      $.post('/contact', this.params.toHash(), function(content) {
        
        $('#contact').html(content);
        self.slide();
      });
      return false;
    });
    
  });
  
  $(function() {
    app.run('#!/');
  })
})(jQuery);

$(document).ready(function() {
  function adjust_viewport(height){
      var target = $('.mod');
      var pad = target.css('padding-top').replace('px', '');
      var calculated_value = (height - pad);
      if (calculated_value > '630') { target.css('height', calculated_value);}
  }

  adjust_viewport($(window).height());
  
  $(window).bind("resize", function(){ 
    adjust_viewport($(window).height());
  });

  Galleria.loadTheme('/galleria/themes/classic/galleria.classic.js');

});


