/**
 * Realestate Javascript
 *
 * @package    realestate
 * @author     Jackson Leung
 */
  
  
  $(document).ready(function() {
    //initialization
    init();
  });
  
  //Global Variables -- start
  var arrMap = new Array();
  arrMap['home']      = 'menu-home';
  arrMap['apartment'] = 'menu-apartment';
  arrMap['financing'] = 'menu-financing';
  arrMap['guide']     = 'menu-guide';
  
  var ptrOriginal;
  var ptrOriginalMenu;
  var timeoutId;
  var mSecPassed = 0;
  var delayTime = 150;
  //Global Variables -- end
  
  //set mouse overs, mouse out, and orignal tab
  function init(){
    //set original tab
    for(i in arrMap){
      var ptr = document.getElementById(i);
      var ptrMenu = document.getElementById(arrMap[i]);
      if(ptr.className == 'main-nav-middle active'){
        ptrOriginal = ptr;
        ptrOriginalMenu = ptrMenu;
      }
      
      //set mouse outs
      ptr.onmouseout = function(){
        stopTimer();
        startTimer(function(){showOriginalMenu()});
      };
      
      //set mouse over
      ptr.onmouseover = new Function("switchTab('" + arrMap[i] + "')");
    }
  }
  
  //Display functions -- start
  function showOriginalMenu(){
    showMenu(ptrOriginalMenu);
  }
  
  function showMenu(menu){
    stopTimer();
    for(i in arrMap){
      ptr = document.getElementById(arrMap[i]);
      ptr.style.display = 'none';
      ptr.onmouseover = function(){stopTimer()};
    }
    menu.style.display = 'block';
    menu.onmouseout = function(){
      stopTimer();
      startTimer(showOriginalMenu);
    };
  }
  
  function switchTab(id){
    stopTimer();
    startTimer(function(){showMenu(document.getElementById(id))});
  }
  //Display functions -- end
  
  //Timing functions -- start
  function startTimer(func){
    mSecPassed += 50;
    timeoutId = setTimeout(function(){startTimer(func)}, 50);
    if(mSecPassed > delayTime){
      func();
      stopTimer();
    }
  };
  
  function stopTimer(){
    clearTimeout(timeoutId);
    mSecPassed = 0;
  }
  
  function getMillseconds(){
    return mSecPassed;
  }
  //Timing functions -- end