/*
** library.js - Library Javascript Library
** jgriffith
**
*/

//Core.log.email = true;

Core.settings({site:'doctoral',
               plugins:'/doctoral/js/plugins'
               });

(function($){

var DOCTORAL = {
  
    ondomready: function() {
        DOCTORAL.subnav();
        //DOCTORAL.topnav();
        DOCTORAL.expandables();
        DOCTORAL.emailobfuscation();
        DOCTORAL.backtotop();
        DOCTORAL.links();
        DOCTORAL.rotate();
        DOCTORAL.slider();
        DOCTORAL.admissionsApplyMenu();
        $("#resources li:visible:last").addClass("last")
        if (window.analytics) {analytics.save()}
        
        Core.SiteIndex.setfocus([ 
                                   new Array("",'doctoral')
                               ]);
       
    },
        
    rotate: function() {
     // if (!document.getElementById("home")) return;
      
      var low = 0;
      var high = $("#student-info-pics > div").size() - 1;
      var r = Math.floor(Math.random() * ( 1 + high - low ) + low );

      
      function showdiv(num) {
         $("#student-info-pics>div").each(function(i) {
            i == num ? $(this).show() : $(this).hide()
         });
         $("#student-info-text>div").each(function(i) {
            i == num ? $(this).show() : $(this).hide()
         });
         $("#student-info ul.students li").each(function(i) {
                i == num ? $(this).addClass('on') : $(this).removeClass('on')
         });
      }
    
     $("#student-info ul.students li").each(function(i) {
        $(this).click(function(){showdiv(i);return false;});
        
     });
    
      showdiv(r);
    
    },
        
    slider: function() {
           $("li.slider").each(function() {
                  var slider = $(this);
                  $("div",slider).hide();
                  $(">a",slider).each(function() {
                         var div = $("div:first",$(this).parent());
                         $(this).click(function() {
                                                         div.slideToggle();
                                                         slider.toggleClass('open');
                                                         return false });
                         $("a.close",slider).click(function() {
                                                         div.slideToggle();
                                                         slider.toggleClass('open');
                                                         return false;});
        
                  });
           });
        },
        
        admissionsApplyMenu: function() {
                $(".admissions-apply").click(function() {                                                                 
                        window.location = $("select.links option:selected").val();
                        return false;
                });
        },
        
        
        
    printfriendly: function() {
        var header = $('<div id="print-header"><img id="shield" src="/mba/images/site/print.shield.gif" height="50" width="43" alt="" /><img id="logo" src="/mba/images/site/print.logo.gif" height="19" width="282" alt="" /></div>');
        $("#header").after(header);
        $("#print-header").append('<h1>DOCTORAL</h1>');
    },

    expandables: function() {
        $("dl.expandable dt").wrapInner("<span></span>");
        $("dl.expandable dt:first").addClass("first");
        $("dl.expandable dd").addClass("closed");
        $("dl.expandable dt").click(function() {
          $(this).toggleClass("open");
          $(this).next().toggleClass("open");
        });
    },
   
   /*emailobfuscation: function() {
       function reverse(text) {
          return text.split("").reverse().join("");
       }
    
       $("a.to").each(function(i,a) {
                  if (document.getElementById("")) return;
          // replace the last '+' with an '@'
          var email = a.href;
          email = reverse(email);
          email = email.replace(/\+/,"@");
          email = reverse(email);
          a.href = email;
          //a.innerHTML = email;
       });
    
    },*/
        
   emailobfuscation: function() {
       function reverse(text) {
          return text.split("").reverse().join("");
       }
    
       $("a.to").each(function(i,a) {
                 if (document.getElementById("job-market")) {
                          var email = a.href;
                          email = reverse(email);
                          email = email.replace(/\+/,"@");
                          email = reverse(email);
                          a.href = email;
                 } else {
          // replace the last '+' with an '@'
                          var email = a.innerHTML;
                          email = reverse(email);
                          email = email.replace(/\+/,"@");
                          email = reverse(email);
                          a.href = "mailto:"+email;
                          a.innerHTML = email;
                 }
       });
    
    },
        
    backtotop: function() {
       var h = document.body.clientHeight;
       if (h < 2000) { $("a.topofpage").hide() }
       $("a.topofpage").click(function() {
            $('html,body').animate({scrollTop: 0}, 100);
            return false;
            }
       )
    },
   
    links: function() {
       if ($("body").hasClass("home")) {return};
       $("#content a,#home #featured-research a,#placement #sidebar a, #areas #facfinder a").each(function() {
          // comment add .ext class
          $a = $(this);
          if (this.href && !/mailto/.test(this.href)) {
             if (! /hbs.edu/.test(this.href)) {$a.addClass("ext");}
                 if ( /.pdf$/.test(this.href)) {$a.addClass('pdf')}
          }
       });
    },
      

   
   
    /*
     * Add an 'selected' class to 'subnav'
     */

    subnav: function() { 
         var nav = document.getElementById('subnav');
         if (!nav) return
        
         // find the current link
        
         var links = nav.getElementsByTagName('a');
         var thisurl = DOCTORAL.thisurl();
         var $currlink;
         for (var x=0,total=links.length;x<total;x++) {
             if (DOCTORAL.sameurl(thisurl,links[x])) {
                  links[x].className = 'on';
                  $currlink = $(links[x]);
             } 
         }

         // close everything that isn't needed and add arrows to sections that are needed

         $("#subnav .expandable li").each(function(){
             var li = $(this);

             //console.info($("ul:visible",li).size());
             if ( $("ul:visible",li).size() ) {
                $(">a:first",li).addClass("arrowUp");
                //console.info($(">a:first",li).text());
             }
             if ($("a.on",li).size()==0 ) $(">ul:first",li).addClass("closed");
         });
         
         // if the current link is an arrow, turn it "arrow down current"
         
         var p = $currlink;
         if (!p) {return}
         
         if (p.hasClass("arrowUp")) {
            p.removeClass("arrowUp");
            p.addClass("arrowDownCurrent");
         }
         
         // set all the parents to "arrow down"
         
         p = p.parent();
         while (p.attr('id') != 'subnav') {
            var elem = p[0].tagName.toLowerCase();

            if (elem == 'li') {
               var a = $(">a:first",p)
               if (a.hasClass("arrowUp")) {
                  a.removeClass("arrowUp");
                  a.addClass("arrowDown");
               }
            }
            p = p.parent();
         }
        
         // set the subnav section bold
         $("#subnav li a.arrowDown:first").addClass("on").removeClass("arrowDown").addClass("arrowDownCurrent");

    },
   
    /*
     * Support Functions
     */

    thisurl: function() {
         var thisurl = document.location.href;
         if (thisurl.indexOf('#') > -1) {
            thisurl = thisurl.split(/#/)[0];
         }
         if (thisurl.indexOf('list_editables') > -1 ) {
            thisurl = document.referrer;
         }
         return thisurl;
    },

    normalize: function(url) {
        url = url.replace(/index.html/,'')
        return url;
    },

    sameurl: function(url,link) {
        if (!link || !link.href){return 0}
        if (DOCTORAL.normalize(url) == DOCTORAL.normalize(link.href)) {return 1};
        return 0;
    },
   
   
   last:''
  
}

window.DOCTORAL = DOCTORAL;

$(document).ready(function(){DOCTORAL.ondomready();});

})(jQuery);

