
$(document).ready(function() {
      
  //lsb.initSlideshows(); 
  
  $('ul.sf-menu').superfish({
    opacity: 7,
    dropShadows: true,
    animation:   {opacity:'show',height:'show'}, 
    speed:       'fast'
  }); 
}); 

var bookmark = function(url, sitename) {
  if ((navigator.appName=='Microsoft Internet Explorer') &&
    (parseInt(navigator.appVersion)>=4)) {
    window.external.AddFavorite(url, sitename);
  } else if (navigator.appName=='Netscape') {
    alert("Netscape and FireFox users, use CTRL+D to bookmark this site.");
  }
};


var mli = (function() {

  var playerWrapperId = "videowrap",
    playerDivId = "videoplayer",
    playerId = "mliPlayer",
    mediaPath = "http://www.mobilelearninginstitute.org/media/",
    vidThumb = "thumb-video-",
    vidThumbPlaying = vidThumb + "playing-",
    
    createPlayer = function(ident, bool) {
      var vidObj = mliVideos[ident],
      flashvars = {
        file: mediaPath + ident + ".flv",
        author:"Mobile Learning Institute",
        abouttext:"Copyright Pearson Foundation",
        aboutlink:"http://www.pearsonfoundation.org",
        skin: mediaPath + "mli.swf",
        width: vidObj.width,
        height: vidObj.height,
        stretching: "exactfit",
        fullscreen: "false",
        displayclick:"PLAY",
        autostart: bool,
        image: mliImgPath + ident + ".jpg"
        /*,
        state:"BUFFERING",
        icons: false, 
        bufferlength: 3,
        playlistsize: 0,
        */
      },
      params = {
        allowfullscreen:"false",
        allowscriptaccess:"always"
      },
      attributes = {
        id: playerId,  
        name: playerId
      };
      swfobject.embedSWF(mediaPath + "player-licensed.swf", playerDivId, vidObj.width, vidObj.height, "9.0.115", false, flashvars, params, attributes);
    },
    
    deletePlayer = function() { 
      swfobject.removeSWF(playerId);
      var tmp=document.getElementById(playerWrapperId);
      if (tmp) { tmp.innerHTML = "<div id=" + playerDivId + "></div>"; }
    },
    
    adjustImages = function(ident) {
      var vid;
      for (vid in mliVideos) {
        if (vid != ident) {
          $("#thumb-" + vid).attr("src", mliImgPath + vidThumb + vid + ".jpg");
        }
      }
//console.log("initPlayer playing thumb: ", vidThumbPlaying + ident + ".jpg");
      $("#thumb-" + ident).attr("src", mliImgPath + vidThumbPlaying + ident + ".jpg");
    };
  
  return {
    
    playVideo: function(ident, bool) { 
//console.log("initPlayer ident: ", ident);
      deletePlayer();
      adjustImages(ident);
      createPlayer(ident, bool || false);
    }

    
  };

})();

var mlical = (function() {
  
  var iso8601 = "yyyy-mm-dd",
    
    createDateFromIso8601 = function(dateStr) {
      var d = dateStr.split("T")[0];
      d = d.split("-");
      return new Date(parseInt(d[0]), (parseInt(d[1]) - 1), parseInt(d[2]));
    }


  return {
    
    createGCalHtml: function(feed) {
      var i, buf=[], when, 
        entries=feed.entry,
        prefFormat = "mmmm d, yyyy";
      
      buf.push('<div class="calendar-wrapper"><table><thead><tr><td>Event</td><td>Location</td><td>Scheduled Date</td></tr></thead><tbody>');
      if (entries) {
        $.each(entries, function() {
          buf.push('<tr><td width="150">');
          buf.push(this.title.$t);
          buf.push('</td>');
          buf.push('<td width="150">');
          buf.push(this.gd$where[0].valueString);
          buf.push('</td>');
          buf.push('<td><span>');
          when = this.gd$when[0];
          buf.push(dateFormat(createDateFromIso8601(when.startTime), prefFormat));
          buf.push("</span> to <span style='clear:both;'>");
          buf.push(dateFormat(createDateFromIso8601(when.endTime), prefFormat));
          buf.push('</span></td></tr>');
        });
      } else {
        buf.push('<tr><td colspan="3">No events scheduled</td></tr>');
      }
      
      
      buf.push('</tbody></table></div>');
      return buf.join("");
    }

  };
})();




var lsb = (function(){

  var slideshows = {};
  
  return {
    
      
    initSlideshows: function() {
      var sss = $(".lsb-slideshow"), i;
      for (i=0; i < sss.length; i++) {
        var ss = $(sss[i]);
        var ssObj = new lsb.Slideshow(ss);
        if (ss.id) {
          slideshows[ss.id] = ssObj;
        }
      }
    },
    
  
    getSlideshow: function(id) {
      return slideshows[id];
    }
    
  };

})();

lsb.Slideshow = function(slideshowElem, params) {
  /**
  Required Params:
  slideshowElem: the HTML DOM object that is a list of slides (.lsb-slides)
  */

  if (!(this instanceof lsb.Slideshow)) {
    return new lsb.Slideshow();
  }
  
  
  
  params = params | {};
  var i,
    hasSlides=false, 
    slides = [],
    duration = params.duration | 3000,
    transSpeed = params.transitionSpeed | 2000,
    position = params.startPostion | 0,
    
  transOut = function() {
    slides[position].fadeOut(transSpeed, transIn);
    //slides[position].animate({opacity: 0}, transSpeed, "linear", transIn);
    position = (position === slides.length - 1) ? 0 : position + 1;
  },

  transIn = function() {
    //slides[position - 1]
    //slides[position].animate({opacity: 1.0}, transSpeed).animate({opacity: 1.0}, duration, "linear", transOut);
    slides[position].fadeIn(transSpeed).animate({opacity: 1.0}, duration, "linear", transOut);
  };
  
  var elems = slideshowElem.children(), elem;
  for (i=0; i < elems.length; i++) {
    elem = elems[i];
    elem.style.display = "none";
    elem.style.listStyleType = "none";
    slides.push($(elem));
  }
  
  //target.animate({opacity: 0}, 1000, "linear", transIn);
  transIn();
};


