/*
** library.js - Library Javascript Library
** jgriffith
**
*/

//Core.log.email = true;

Core.settings({site:'mba',
               plugins:'/mba/js/plugins'
               });

(function($){

var MBA = {
  
    ondomready: function() {
        MBA.subnav();
        MBA.topnav();
        MBA.expandables();
        $("hr").replaceWith('<div class="hr"></div>');
        if (window.analytics) {analytics.save()}
        Core.SiteIndex.setfocus([ 
                                   new Array("",'mba')
                               ]);
    },

    onload: function() {
        MBA.emailobfuscation();
        MBA.links();
        MBA.videos();
        MBA.audio();
        MBA.profiles();
        MBA.tabcard();
        MBA.printfriendly();
        MBA.backtotop();
    },
  
    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>MBA</h1>');
    },

    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");
        });
    },
   
    videos: function() {
        var num = 0;
        $("object[@class='video']").each( function(i,v) {
              var vid = $(v);
              var src = $("param[@name='source']",vid).attr('value');
              var img = $("param[@name='image']",vid).attr('value');
              vid.replaceWith('<div id="video-embed-'+num+'" class="video"></div>');
              fo = new SWFObject("/mba/flash/player.swf", "flash"+num, 320, 230+30, "8", "#000000");
              fo.addVariable("image",img);
              fo.addVariable("source",src);
              //fo.addVariable("autoplay",true);
              fo.addVariable("allowFullScreen", "true");
              fo.addParam("allowFullScreen", "true");
              if (!fo.installedVer.versionIsValid(fo.getAttribute('version'))) {
                 //fo.installedVer.major
                 $("#video-embed-"+num).append('<p class="noflash">Adobe Flash is required.  <a href="http://www.adobe.com/go/getflashplayer"><br /><img src="/images/site/get_flash_player.gif" height="31" width="88" /></a></p>');
              } else {
                 fo.write("video-embed-"+num);
              }
              num += 1;
         });
    },
    
    audio: function() {
    
        window.ap_stopAll = function() {}
        var num = 0;
        $("a.audio").each( function(i,a) {
              var src = $(a).attr('href');
              var fo = new SWFObject("/mba/flash/audio-player.swf", "flashObject", "290", "24", "8", "#ffffff");
              fo.addVariable("soundFile", src);
              fo.addVariable("bg","0xEFEFEF");
              fo.addVariable("leftbg","0x265086");
              fo.addVariable("lefticon","0xF2F2F2");
              fo.addVariable("rightbg","0x265086");
              fo.addVariable("rightbghover","0x5a87c0");
              fo.addVariable("righticon","0xF2F2F2");
              fo.addVariable("righticonhover","0xFFFFFF");
              fo.addVariable("text","0x454545");
              fo.addVariable("slider","0x454545");
              fo.addVariable("track","0xF6F6E8");
              fo.addVariable("border","0xF6F6E8");
              fo.addVariable("loader","0xAAAAAA");
              if (fo.installedVer.versionIsValid(fo.getAttribute('version'))) {
                 fo.write(a);
              }
              num += 1;
        });
    },

    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;
       });
    
    },
   
   
   
    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;
            }
       )
    },
   
    links: function() {
       $("#newandnoteworthy a").click(function(){
             // prevent doubleclicking
             if ($(this).hasClass("clicking")) return false;
             $(this).addClass("clicking");
             MBA.new_window(this);
             window.setTimeout(function(){$(this).removeClass("clicking")},500);
             return false;
       }); 
    
    
       if ($("body").hasClass("home")) {return};
       $("#content a,#subnav ul 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')}
          }
          if (this.className.indexOf("new_window") > -1 ){
              
              $(this).click(function(){
                 // prevent doubleclicking
                 if ($(this).hasClass("clicking")) return false;
                 $(this).addClass("clicking");
                 MBA.new_window(this);
                 window.setTimeout(function(){$(this).removeClass("clicking")},500);
                 return false;
              }); 
           }  
       });
    },
   
    tabcard: function() {			
	$('.tabCards>ul li').click(function(){	
		//var activeC = $(this).children('a').attr('class');
		//$(this).addClass('active').siblings('li').removeClass('active');
		//$(this).parent('ul').siblings('.description').children('div').removeClass('active');
		//$(this).parent('ul').siblings('.description').children('.' + activeC).addClass('active');
		var activeC = $(this).children('a').attr('class');
		$(this).addClass('active').siblings('li').removeClass('active');
		$(this).parent('ul').siblings('.description').children('div').removeClass('active');
		$(this).parent('ul').siblings('.description').children('div').css("position","absolute");
		$(this).parent('ul').siblings('.description').children('div').css("left","-10000px");
		$(this).parent('ul').siblings('.description').children('.' + activeC).css("position","static");
		$(this).parent('ul').siblings('.description').children('.' + activeC).addClass('active');
        return false;
	});
    },
    
    profiles: function() {
        if (!document.getElementById('profileHighlights')) { return }
        
        var a = $("#subnav a.on:last")
        console.info(a);
        var html = '<div id="crumbNav">';
        
        var prev = a.parent().prev();
        if (prev.size()>0) {
           var href = $("a:first",prev).attr("href");
           html += "<a href=\""+href+"\">&laquo; previous profile</a>";
        }
        
        if ($("a.arrowDown[@href~='mdmba']").size() > 0) {
            html += '<a href="/mba/academics/mdmbaprofiles.html">back to list</a>';
        } else {
            html += '<a href="/mba/profiles/students/">back to list</a>';
        }
        
        var next = a.parent().next();
        if (next.size()>0) {
           var href = $("a:first",next).attr("href");
           html += "<a class=\"next\" href=\""+href+"\">next profile &raquo;</a>";
        }

        html += '</div>';
        $("#content div.wrap h2").after(html);
        
    
    },
   
    sifr: function() {
        
	/*=== sIFR functions ===*/

	var century725 = {src: '/mba/flash/century725.swf'};
	var frutigerC = {src: '/mba/flash/frutiger_condensed.swf'};

	sIFR.activate(century725, frutigerC);
	
	sIFR.replace(frutigerC, {
		wmode: 'transparent',	 
		selector: '#content-wrap h3',
		css: {
			'.sIFR-root': { 'color': '#90002a', 'font-size': '21px','line-height': '1' },
			'.black': { 'color': '#2c2c2c' },
			'.white': { 'color': '#ffffff' }
		}
	});
	
	sIFR.replace(century725, {
		wmode: 'transparent',
		selector: '#content-wrap h2',
		css: {
			'.sIFR-root': { 'color': '#ffffff', 'font-size': '43px', 'line-height': '1' }
		}
	});
	
	sIFR.replace(frutigerC, {
		wmode: 'transparent',		 
		selector: '.profile .col blockquote',
		css: {
			'.sIFR-root': { 'color': '#587d7d', 'font-size': '18px', 'line-height': '1' }
		}
	});
	
	sIFR.replace(frutigerC, {
		wmode: 'transparent',	 
		selector: '#profilepopup h3',
		css: {
			'.sIFR-root': { 'color': '#90002a', 'font-size': '21px','line-height': '1' },
			'.black': { 'color': '#2c2c2c' }
		}
	});
		
	sIFR.replace(frutigerC, {
		wmode: 'transparent',	 
		selector: 'blockquote.callout h4',
		css: {
			'.sIFR-root': { 'color': '#90002a', 'font-size': '21px','line-height': '1' },
			'.black': { 'color': '#2c2c2c' }
		}
	});
	
	sIFR.replace(frutigerC, {
	wmode: 'transparent',		 
	selector: '.home h4',
	css: {
		'.sIFR-root': { 'color': '#2c2c2c', 'font-size': '17px', 'line-height': '1' }
	}
	});	
	
/*
	sIFR.replace(century725, {
		wmode: 'transparent',
		selector: '#content-wrap h2',
		css: {
			'.sIFR-root': { 'color': '#ffffff', 'font-size': '43px', 'line-height': '1' }
		}
	});



	sIFR.replace(frutigerC, {
		wmode: 'transparent',		 
		selector: '#sidebar h4',
		css: {
			'.sIFR-root': { 'color': '#2c2c2c', 'font-size': '17px', 'line-height': '1' }
		}
	});	

*/

    },
   
   
    /*
     * 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('/mba/academics/') > -1) { sethere('academics'); } 
        else if (loc.indexOf('/mba/hbsadvantage/') > -1) { sethere('hbsadvantage'); } 
        else if (loc.indexOf('/mba/admissions/') > -1) { sethere('admissions'); } 
        else if (loc.indexOf('/mba/profiles/') > -1) { sethere('profiles'); } 
        else if (loc.indexOf('/mba/studentlife/') > -1) { sethere('studentlife'); } 
        else if (loc.indexOf('/mba/yourcareer/') > -1) { sethere('yourcareer'); } 
        else if (loc.indexOf('/mba/faq/') > -1) { sethere('faq'); } 
        else if ($("body").hasClass("home")) { sethere('home'); } 
        
    },
   
   
    /*
     * 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 = MBA.thisurl();
         var $currlink;
         for (var x=0,total=links.length;x<total;x++) {
             if (MBA.sameurl(thisurl,links[x])) {
                  //links[x].className = 'on';
                  $(links[x]).addClass("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);
             if ($("a.on",li).size()==0 ) $(">ul:first",li).addClass("closed");
             if ( $("ul:visible",li).size() ) $(">a:first",li).addClass("arrowUp");
         });
         
         // 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 (MBA.normalize(url) == MBA.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.MBA = MBA;
MBA.sifr();

$(document).ready(function(){MBA.ondomready();});
$(window).load(function(){MBA.onload()});

})(jQuery);

