var DOCK = {};

/* -----------------------------------*/
/* -------->>> UTILITIES <<<----------*/
/* -----------------------------------*/

DOCK.Utils = {

};

/* -----------------------------------*/
/* ---------->>> GLOBAL <<<-----------*/
/* -----------------------------------*/

DOCK.Global = {
   
};

/* -----------------------------------*/
/* ---------->>> EVENTS <<<-----------*/
/* -----------------------------------*/
DOCK.Events = {
   dockAssistant: function(o){
      o.preventDefault();
      if($(this).hasClass('active')){
         return false;
      }
      var _title = $(this).attr('title');
      var _url = window.location.pathname + window.location.hash;
      var rel = $(this).attr('rel');
      var data = _title + "||" + _url;
      //set cookie
      var dc = (rel == 'program') ? $.cookie('sjcc_dock_program') : $.cookie('sjcc_dock');
      var cookieName = (rel == 'program') ? 'sjcc_dock_program' : 'sjcc_dock';
      if(dc){
         dc += ',' + data;
      }else{
         dc = (dc == null) ? '' : dc ;
         dc += data;
      }
      $(this).addClass('active');
      $.cookie(cookieName, dc, { expires: 365});
      $.post("/sites/default/themeglobal/includes/dock-add.php", { title: _title, url: _url } );

      if($('#dockHolder').length == 0){
         DOCK.Dom.createDockOverlayMarkup(true);
      }
   },
   
   checkIfActive: function(el){
      var _title = $(el).attr('title');
      var _url = window.location.pathname + window.location.hash;
      var rel = $(el).attr('rel');
      var data = _title + "||" + _url;
      var dc = (rel == 'program') ? $.cookie('sjcc_dock_program') : $.cookie('sjcc_dock');
      if(dc){
         var dc_array = dc.split(',');
         if($.inArray(data, dc_array) > -1){
            $(el).addClass('active');
            return false;
         }
      }
   }
};

/* -----------------------------------*/
/* ----->>> DOM MANIPULATION <<<------*/
/* -----------------------------------*/

DOCK.Dom = {
   createDockOverlayMarkup: function(isFirst){
      if($('#dockHolder').length == 0){
         if($('#dockOverlay').length == 0){
            $('body').prepend('<div id="dockOverlay"></div>');
         }
         $.get('/sites/default/themeglobal/includes/dock.php', function(data){
            $('body').prepend(data);
            $('a.dockBtn:first').bind('click', DOCK.Dom.toggleDockOverlay);
            $('a.dockBtn:first').hover(
               function(){
                  $(this).children('.mid:first').stop().animate({
                     height: 106
                  }, 150);
                  $(this).parent().css('z-index', 110);
               }, 
               function(){
                  $(this).children('.mid:first').stop().animate({
                     height: 0
                  }, 150);
                  if(!DOCK.Global.dockOverlayActive){
                     $(this).parent().css('z-index', 100);
                  }
               }
            );
            $('#dockOverlay').bind('click', DOCK.Dom.toggleDockOverlay);
            if(isFirst){
               REGASST.Dom.showAlert('This item has been added to the dock.  You can view and edit the items you\'ve added but clicking the "my stuff" tab on the right side of the page.<br/>');
            }
         });
      }
   },

   
   toggleDockOverlay: function(o){
      if(o){
         o.preventDefault();
      }
      if($('#alertHolder').length > 0 ){
         return false;
      }
      if(DOCK.Global.dockOverlayActive){
         $('#dockHolder').stop().animate({
            width: 0
         }, function(){
            $('#dockBody').html('');
            $('#dockSpinner').css('display', 'none');
         });
         $('#dockHolder').css('z-index', 100);
         $('#dockHolder').removeClass('activeSidePanel');
         $('#dockOverlay').css('display', 'none');
         DOCK.Global.dockOverlayActive = false;
      }else{
         $('#dockHolder').stop().animate({
            width: 962
         });
         $('#dockHolder').css('z-index', 102);
         $('#dockHolder').addClass('activeSidePanel');
         //get ajax dock assistant
         $('#dockSpinner').css('display', 'block');
         $('#dockBody').load('/sites/default/themeglobal/includes/dock-assistant.php',  function(){
            $('#dockSpinner').css('display', 'none');
            var _el;
            var id;
            $('#semesterNav li a').each(function(i, el){
               _el = $(el);
               _el.bind('click', DOCK.Dom.switchTabs);
               if(_el.parent().hasClass('active')){
                  $(_el.attr('href')).css('display', 'block');
               }
            });
            $('#dockAssistant a.closeBtnDock').each(function(i, el){
               $(el).bind('click', DOCK.Dom.removeClass);
            });
            $('#dockAssistant div.scrollPane').each(function(i, el){
               var el = $(el);
               if(el.height() > 348){
                  el.css({
                     'height': '348px',
                     'overflow': 'hidden',
                     'overlow-x' : 'hidden',
                     'overflow-y': 'auto'
                  });
               }
            });
         });
         $('#dockOverlay').css('display', 'block');
         DOCK.Global.dockOverlayActive = true;
      }
   },
   
   removeClass: function(o){
      o.preventDefault();
      var rel = $(this).attr('rel');
      var _link = $(this).next();
      var data = _link.attr('title') + "||" + _link.attr('href');
      var dc = (rel == 'program') ? $.cookie('sjcc_dock_program') : $.cookie('sjcc_dock') ;
      var cookieName = (rel == 'program') ? 'sjcc_dock_program' : 'sjcc_dock' ;
      var dc_array = dc.split(',');
      var dc = [];
      for(var i= 0; i< dc_array.length ; i++){
         if(dc_array[i] != data){
            dc.push(dc_array[i]);
         }
      }
      $.cookie(cookieName, dc.toString(), { expires: 365});
      $(this).parent().remove();
   },
   
   switchTabs: function(o){
      o.preventDefault();
      var _ahref = $('#semesterNav li.active:first a').attr('href');
      var activeTab = _ahref.substr(_ahref.indexOf('#'));
      $(activeTab).css('display', 'none');
      $('#semesterNav li.active:first').removeClass('active');
      $(this).parent().addClass('active');
      var _href = $(this).attr('href');
      var newTab = _href.substr(_href.indexOf('#'));
      $(newTab).css('display', 'block');
   }
};


DOCK.Inits = {
   init: function(){
      DOCK.Inits.DockSetup();
   },
   
   DockSetup: function(){
      $('a.dockLink').each(function(i, el){
         $(el).bind('click', DOCK.Events.dockAssistant);
         DOCK.Events.checkIfActive(el);
      });
      var dc = $.cookie('sjcc_dock');
      var dcp = $.cookie('sjcc_dock_program');
      if((dc) || (dcp)){
         DOCK.Dom.createDockOverlayMarkup();
      }
   }
};

/* -----------------------------------*/
/* ----->>> ONLOAD FUNCTIONS <<<------*/
/* -----------------------------------*/

$(document).ready(function () {
    DOCK.Inits.init();
});


