/*
 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
 */
jQuery.extend(jQuery.easing,{
  easeInOutCubic: function (x, t, b, c, d) {
    if ((t/=d/2) < 1) return c/2*t*t*t + b;
    return c/2*((t-=2)*t*t + 2) + b;
  }
});

$(function (){
  function replace_image_src($image, version){
    var match = $image.attr("rel").match(new RegExp(version + ":([^ ]+)"));
    if (match){
      $image.attr("src" , match[1]);
    }
  }
  
  $(".brands ul li a > img").hover(function (){
    replace_image_src($(this), "color");
  }, function (){
    replace_image_src($(this), "gray");
  });
  
  var page_callbacks = {
    home: function (){
      $("#carousel").removeClass("no-js").jcarousel({
        auto: 5,
        fade: 350,
        wrap: "last",
        scroll: 1,
        visible: 1,
        buttonNextHTML: null,
        buttonPrevHTML: null
      });
    },
    
    gallery: function (){
      var offset = parseInt(document.location.hash.substr(1)) || 1;
      
      $("#gallery").jcarousel({
        fade: 250,
        scroll: 1,
        visible: 1,
        start: offset,
        buttonNextHTML: '<img src="/images/pager-next.png" alt="Next image" title="Next image" />',
        buttonPrevHTML: '<img src="/images/pager-prev.png" alt="Previous image" title="Previous image" />',
        pager: true,
        
        createPagerItemCallback: function (carousel, i){
          var src = carousel.list.children("li").eq(i - 1).children("img").attr("src");
          var $img = $("<img>").attr("src", src);
          var $overlay = $("<div>").addClass("overlay");
          
          return $("<div>").addClass("overlay-container").append($img).append($overlay);
        },
        
        itemVisibleInCallback: function (carousel, list, i){
          document.location.hash = "#" + i;
        }
      });
    },
    
    contact: function (){
      var latlng = new google.maps.LatLng(35.574815,-77.397408);

      var map = new google.maps.Map($("#map").get(0), {
        zoom: 15,
        center: latlng,
        disableDefaultUI: true,
        navigationControl: true,
        mapTypeId: google.maps.MapTypeId.ROADMAP
      });

      // the popup
      var content = '<div id="info">Pair Electronics<br />105-A Trade St.<br />Greenville, NC 27834<br />(252) 439-5295</div>';

      var info = new google.maps.InfoWindow({
        content: content
      });

      var marker = new google.maps.Marker({
        position: latlng,
        map: map,
        title: "Pair Electronics"
      });

      google.maps.event.addListener(marker, "click", function (){
        info.open(map, marker);
      });
    }
  };
  
  for (var page in page_callbacks){
    if ($(document.body).hasClass(page)){
      page_callbacks[page]();
    }
  }
});

