/*
** recruiting.js - Recruiting Javascript Library
** jgriffith
**
*/

Core.settings({site:'recruiting',
               plugins:'/recruiting/js/plugins'
               });


(function($){

var Recruiting = {
  
    ondomready: function() {
        Recruiting.sifr();
        Recruiting.expandables();
        Recruiting.topnav();
        Recruiting.links();
        Recruiting.subnav();
        Recruiting.emailobfuscation();
        Recruiting.pdf();
        Recruiting.savemyinfo();
        Recruiting.multiselect();
        Recruiting.forms();
        Recruiting.lasts();
        Recruiting.backtotop();
        $("hr").replaceWith('<div class="hr"></div>'); 
        if (window.analytics) {analytics.save()}
       
        Core.SiteIndex.setfocus([ 
                                   new Array("",'recruiting')
                               ]);

    },

    lasts: function() {
        $("#sidebar ul").each(function(){$("li:last",this).addClass("last")});
    },

    savemyinfo: function() {
        var fields = new Array('salutation','first_name','last_name','contact_title','department','company','website','phone','email','street_address','street_address2','city','state','zip_postal_code','country','cookie','industry');
        
        function savecookies(form) {
           $.each(fields,function(i,f){
               val = $(form[f]).val()
               Core.cookie(f,val,{domain:'.hbs.edu',path:'/',expires:6*30}); 
           });
        }
        
        function clearcookies(form) {
           $.each(fields,function(i,f){
               Core.cookie(f,null,{domain:'.hbs.edu',path:'/'}); 
               $(form[f]).val("")
           });
        }
        
        $("form.savemyinfo").each(function() {
           form = this;
           
           // populate any values that we have in a cookie
           $.each(fields,function(i,f){
              val = $.trim(Core.cookie(f));
              if (val) {
                 $(form[f]).val(val)
                 $("#saveCookies").attr("checked","checked");
              }
           });
           
           // setup UI elements
           $(form).submit(function() {
              if($("#saveCookies").is(":checked")) {
                 savecookies(form);
              }
           });
           
           var fname = Core.cookie('first_name')
           if(fname) {
              $("#first_name").after("<div>Not "+fname+"?<br>Click <a href=\"#\" class=\"clear\">here</a> to clear the contact and company information.</div>")
              $("a.clear",form).click(function() {
                 $(this).parent().remove();
                 clearcookies(form);
                 return false;
              });
           }
           
        });
    
    },
	
    backtotop: function() {
       var h = document.body.clientHeight;
       if (h > 2000) { $("a.topofpage").show();}
       $("a.topofpage").click(function() {
            $('html,body').animate({scrollTop: 0}, 100);
            return false;
            }
       )
    },

        	
    expandables: function() {
        $("#content dl.expandable dt").wrapInner("<span></span>");
        $("#content dl.expandable dt:first").addClass("first");
        $("#content dl.expandable dd").addClass("closed");
        $("#content dl.expandable dt").click(function() {
          $(this).toggleClass("open");
          $(this).next().toggleClass("open");
        });
        
        $("#content p.expandall").each(function() {
           $(this).click(function() {
              var $span = $("span",this);
              if($span.html().indexOf("expand") > -1 ) {
                 $span.html("collapse all");
                 $("#content dl.expandable dt").each(function() {
                    $(this).addClass("open");
                    $(this).next().addClass("open");
                 });
              } else {
                 $span.html("expand all");
                 $("#content dl.expandable .open").removeClass("open");
              }
           });
        });
        
    },
   
    links: function(){ 
      $("a").each(function(x,link){
         if (link.className.indexOf("new_window") > -1 ) {
           $(link).click(function(){
              // prevent doubleclicking
              if ($(link).hasClass("clicking")) return false;
              $(link).addClass("clicking");
              Recruiting.new_window(link);
              window.setTimeout(function(){$(link).removeClass("clicking")},500);
              return false;
          });
       }
     }) //pdf class 

    },

    emailobfuscation: function() {
       function reverse(text) {
          return text.split("").reverse().join("");
       }
    
       $("a.to").each(function(i,a) {
          // 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;
       });
    
    },
	
    multiselect: function() {
        var num = 0;
        $("select[@multiple]").each(function(){
           name = this.name;
           html = "<div class=\"multi\">";
           $.each($("option",this),function(x,o) {
              val = $(o).val() || $(o).text();
              id = name+"_"+num;
              html += "<div><input type=\"checkbox\" name=\""+name+"\" value=\""+val+"\" class=\"checkbox\" id=\""+id+"\"><label for=\""+id+"\">"+val+"</label></div>"
              num++;
           });
           html += "</div>";
           $(this).replaceWith(html);
        });
    },
   
    forms: function() {

        // Have the forms come back to you on webstage
        if(/(webstage|webdev)/.test(document.location.href)) {
            $("form").each(function() {
                form = this
                // if e eq alumni clubs, swap the to the from email
                if(form.e && /(alumni_clubs|board_resume)@hbs.edu/.test($(form.e).val())) {
                    $(form).submit(function() {
                        $(this.e).val($(this.f).val());
                    })
                }
            });
        }
    
    },
   
    sifr: function() {
        
        /*=== sIFR functions ===*/

        var century725 = {src: '/recruiting/flash/century725.swf'};
        var frutigerC = {src: '/recruiting/flash/frutiger_condensed.swf'};

        sIFR.activate(century725, frutigerC);

        sIFR.replace(century725, {
            wmode: 'transparent',
            selector: '#content h2',
            css: {
                '.sIFR-root': { 'color': '#2c2c2c', 'font-size': '27px', 'leading': '1' }
            }
        });

        sIFR.replace(century725, {
            wmode: 'transparent',
            selector: '#content-wrap h2',
            css: {
                '.sIFR-root': { 'color': '#ffffff', 'font-size': '36px', 'leading': '-11' }
            }
        });

        sIFR.replace(frutigerC, {
            wmode: 'transparent',    
            selector: '#content-wrap h3',
            css: {
                '.sIFR-root': { 'color': '#2c2c2c', 'font-size': '24px', 'leading': '1' }
            }
        });

        sIFR.replace(frutigerC, {
            wmode: 'transparent',        
            selector: '#sidebar .announcements h4',
            css: {
                '.sIFR-root': { 'color': '#ffffff', 'font-size': '20px', 'leading': '1' }
            }
        }); 

        sIFR.replace(frutigerC, {
            wmode: 'transparent',        
            selector: '#sidebar h4',
            css: {
                '.sIFR-root': { 'color': '#2c2c2c', 'font-size': '20px', 'leading': '1' }
            }
        }); 

        sIFR.replace(frutigerC, {
            wmode: 'transparent',        
            selector: '#leftcol h4',
            css: {
                '.sIFR-root': { 'color': '#2c2c2c', 'font-size': '20px', 'leading': '1' }
            }
        }); 

        sIFR.replace(frutigerC, {
            wmode: 'transparent',        
            selector: '#rightcol h4',
            css: {
                '.sIFR-root': { 'color': '#2c2c2c', 'font-size': '20px', 'leading': '1' }
            }
        }); 

    },
   
  
  
    /*
     * Add an 'active' class to 'subnav'
     */

    subnav: function() {
         var nav = document.getElementById('subnav');
         if (!nav) return
        
         // find the current link
        
         var links = nav.getElementsByTagName('a');
         var thisurl = Recruiting.thisurl();
         var $currlink;
         for (var x=0,total=links.length;x<total;x++) {
             if (Recruiting.sameurl(thisurl,links[x])) {
                  links[x].className = 'active';
                  $currlink = $(links[x]);
             } 
         }
    },
  
    /*
     * Add an 'on' class to the top nav
     */
     
    topnav: function() {
        function sethere(id) {
            var a = document.getElementById(id+'-nav');
            if (!a){return};
            a.parentNode.className += ' on';
            a.className += ' on';
        }
        var loc = document.location.href;
        if (loc.indexOf('/recruiting/mba/policies.html') > -1) { sethere('policies'); } 
        else if (loc.indexOf('/recruiting/mba/events/') > -1) { sethere('events'); } 
        else if (loc.indexOf('/recruiting/mba/resources/') > -1) { sethere('resources'); } 
        else if (loc.indexOf('/recruiting/mba/connect/') > -1) { sethere('connect'); } 
        else if (loc.indexOf('/recruiting/mba/office/') > -1) { sethere('office'); } 
        else if (loc.indexOf('/recruiting/mba/faq/') > -1) { sethere('faqs'); } 
        else if (loc.indexOf('/recruiting/mba/whyrecruit.html') > -1) { sethere('whyrecruit'); } 

        else if (loc.indexOf('/recruiting/alumni/policies.html') > -1) { sethere('policies'); } 
        else if (loc.indexOf('/recruiting/alumni/connect.html') > -1) { sethere('connect'); } 
        else if (loc.indexOf('/recruiting/alumni/boards.html') > -1) { sethere('boards'); } 
        else if (loc.indexOf('/recruiting/alumni/profiles.html') > -1) { sethere('profiles'); } 
        else if (loc.indexOf('/recruiting/alumni/faqs.html') > -1) { sethere('faqs'); } 
        
    },
   
  
    /*
     * Support Functions
     */

    pdf: (function(){
              $("a[@href$=pdf]").addClass("pdf");
           }
    ),
 
    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 (Recruiting.normalize(url) == Recruiting.normalize(link.href)) {return 1};
        return 0;
    },
   
    new_window: function(link) {
      var url = link.href || link;
      var nw = window.open(url, "newwin", 'width=800,height=550,directories=yes,toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes');
      if (nw) {nw.focus();}
    },
   


    last:''
  
}

window.Recruiting = Recruiting;
Recruiting.sifr();

$(document).ready(function(){Recruiting.ondomready();});

})(jQuery);

