
var aft = {
  homeInFocus      : true,
  homeInterval     : "",
  
  currentFolder    : {},
  currentFolderIdx : 2,
  folderLock       : false,
  
  currentPromoId   : "",
  currentPromoIdx  : 0,
  
  init : function() {
    
    if($("#submitButton").length > 0) {
      $("#submitButton").click(function() {
        aft.validateQuoteRequest();
      });
    }
    
    //Get the first folder ready to go for swapping
    aft.currentFolder = $(".folderContent:first");
    aft.currentFolder.css("left", 0);
    
    //Get the first promo id
    aft.currentPromoId  = $(".promoDot:first").attr("promoId");
    aft.currentPromoIdx = $(".promoDot:first").attr("promoIdx");
    
    //Register folder button click handler
    $(".folderButton").click(function(){
      clearInterval(aft.homeInterval);
      aft.toggleFolder($(this));
    });
    
    //Register promo button click hander
    $(".promoDot").click(function() {
      var obj      = $(this);    
      var promoIdx = obj.attr("promoIdx");
      var promoId  = obj.attr("promoId");
      
      clearInterval(aft.homeInterval);
      
      if(aft.currentPromoId == promoId) return;
      
      aft.toggleHomePromo(promoIdx);
    });
    
    //Register promo arrow click handlers
    $(".promoLeftTriangle").click(function() {      
      clearInterval(aft.promoInterval);
      
      if(aft.currentPromoIdx > 1) {
        var newIdx = parseInt(aft.currentPromoIdx) - 1;
        aft.toggleHomePromo(newIdx);
      } else {
        aft.toggleHomePromo($(".promoDot:last").attr("promoIdx"));
      }
    });
    
    $(".promoRightTriangle").click(function() {
      clearInterval(aft.promoInterval);      
      aft.nextHomePromo();
    });
    
    //Start interval for home promos and folders
    aft.homeInterval = setInterval(function() {
      if(aft.homeInFocus) {
        aft.nextHomePromo();
        aft.toggleNextFolder();
      }
    }, 9000);    

    
    //Make sure we don't keep running the home promo animation when the
    //window is not in focus
    if(/*@cc_on!@*/false) { // check for Internet Explorer
      document.onfocusin  = aft.onWindowFocus;
      document.onfocusout = aft.onWindowBlur;
    } else {
      window.onfocus = aft.onWindowFocus;
      window.onblur  = aft.onWindowBlur;
    }       
  },
  
  onWindowFocus : function() {
    aft.homeInFocus = true;
  },
  
  onWindowBlur : function() {
    aft.homeInFocus = false;
  },
  
  nextHomePromo : function() {
    if(aft.currentPromoIdx < $(".promoDot:last").attr("promoIdx")) {
      var newIdx = parseInt(aft.currentPromoIdx) + 1;
      aft.toggleHomePromo(newIdx);
    } else {
      aft.toggleHomePromo($(".promoDot:first").attr("promoIdx"));
    }    
  },
  
  toggleFolder : function(obj) {
    //Only register the folder clicks if a folder animation
    //is not currently in progress
    if(!aft.folderLock) {
      aft.folderLock = true;
      
      //Update buttons
      $(".folderButton").removeClass("selectedFolderButton");
      obj.addClass("selectedFolderButton");
        
      //Don't replay animation if clicking the currently selected folder
      if(aft.currentFolder.attr("id") == obj.attr("contentId")) {
        aft.folderLock = false;
        return;
      }
      
      //Swap content
      var nextFolder = $(".folderContent[id="+obj.attr("contentId")+"]");
      aft.slideLeft(aft.currentFolder, function() {
        aft.slideRight(nextFolder, function() {
          aft.currentFolder = nextFolder;
          aft.folderLock    = false;
        });
      });
    }    
  },
  
  toggleNextFolder : function() {
    if(aft.currentFolderIdx > 3) {
      aft.currentFolderIdx = 1;
    }
    
    var nextFolderButton = $('.folderButton[contentId="folder_'+aft.currentFolderIdx+'"]');
    
    aft.toggleFolder(nextFolderButton);
    aft.currentFolderIdx++;
  },
  
  toggleHomePromo : function(idx) {      
      var promoIdx = idx;
      var promoId  = "promo_" + idx;
                        
      //Change the button colors
      $(".promo").hide();
      $("#"+promoId).fadeIn("slow");
      
      //Update the promo content
      $(".promoDot").removeClass("selectedPromoDot");
      $(".promoDot[promoId="+promoId+"]").addClass("selectedPromoDot");
      
      aft.currentPromoId  = promoId;
      aft.currentPromoIdx = promoIdx;    
  },
  
  slideLeft : function(obj, callBack) {
    obj.animate({
      left: -parseInt(obj.css("width"))
    }, 400, callBack);
  },
  
  slideRight : function(obj, callBack) {
    obj.animate({
      left: 0
    }, 400, callBack);
  },
  
  validateQuoteRequest : function() {
    var form = document.quote_form;
    
    if(form.contact_name.value == '') {
      alert("Please enter a contact name");
      form.contact_name.focus();
    } else if(form.company_name.value == '') {
      alert("Please enter a company name");
      form.company_name.focus();      
    } else if(form.company_phone.value == '') {
      alert("Please enter a phone");
      form.company_phone.focus();
    } else if(form.company_email.value == '') {
      alert("Please enter an email address");
      form.company_email.focus();
    } else if(form.part_number.value == '') {
      alert("Please enter a final assembly / part #");
      form.part_number.focus();
    } else if(form.rfq_date_needed.value == '') {
      alert("Please enter a date needed");
      form.rfq_date_needed.focus();
    } else {
      form.submit();
    }
  }
};

$(document).ready(function() {
  aft.init();
});
