diff -r a6c4ea119b80 -r 28d21b2123ba client/player/src/js/LdtPlayer.js
--- a/client/player/src/js/LdtPlayer.js Fri Aug 06 17:19:37 2010 +0200
+++ b/client/player/src/js/LdtPlayer.js Tue Sep 14 13:15:28 2010 +0200
@@ -1,337 +1,464 @@
-/* ----------------------------------------------------------------
- ----------------------------------------------------------------
- ----------------------------------------------------------------
-
- LDTPlayer is created by http://www.iri.centrepompidou.fr
- 2010-06-14 - version 0.08
-
- init By Samuel Huron < samuel.huron (at) cybunk (dot) com >
- use JQUERY - Compatible v1.3.2 :: Optimal 1.4
- use TOOLTIP FOR JQ -
- use JQUERY UI - for theme management
- use JWPLAYER - but you can change it with other things
- use Media Fragment - inspired by HTML5 exemple from Silvia Pfeiffer
- for #t= // http://annodex.net/~silvia/itext/mediafrag.html
-
-
-
- TODO : ////////////////////////////////////////
-
- - ajouter le share embed
- - gestion créer une annotation simple
- - bouton graphique design : pause / stop
- - gestion des tags
- - creation du mode radio
-
- ----------------------------------------------------------------
+/*
+ *
+ * Copyright 2010 Institut de recherche et d’innovation
+ * contributor(s) : Samuel Huron
+ *
+ * contact@iri.centrepompidou.fr
+ * http://www.iri.centrepompidou.fr
+ *
+ * This software is a computer program whose purpose is to show and add annotations on a video .
+ * This software is governed by the CeCILL-C license under French law and
+ * abiding by the rules of distribution of free software. You can use,
+ * modify and/ or redistribute the software under the terms of the CeCILL-C
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL-C license and that you accept its terms.
*/
+if(window.__IriSP === undefined ){ var __IriSP={};}
-/* ----------------------------------------------------------------
- ----------------------------------------------------------------
- INIT player LDT */
+// Player Configuration
+__IriSP.config = {
+ metadata:{
+ format:'cinelab',
+ src:'http://exp.iri.centrepompidou.fr/franceculture/franceculture/ldt/cljson/id/ef4dcc2e-8d3b-11df-8a24-00145ea4a2be',
+ load:'jsonp'
+ },
+ gui:{
+ width:650,
+ height:0,
+ mode:'radio',
+ container:'LdtPlayer',
+ debug:false,
+ css:'../src/css/LdtPlayer.css'
+ },
+ player:{
+ type:'jwplayer',
+ src:'../res/swf/player.swf'
+ },
+ module:null
+ };
- //LdtShareTool = "\n
\n
\n
\n Play \n next \n
\n
\n
\n Share \n Sound \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n "+LdtShareTool+"\n \n
\n
My tags
");
- }
- //DIVROOTID=divId;
- //$jIRI("#Ldt-Root").css('visibility','hidden');
- //$jIRI("#Ldt-Root").css('display','none');
- loadJson(width,height,file,MySwfPath);
- }
+
- /*
- $('#loading').ajaxStart(function() {
- $(this).show();
- $('#result').hide();
- }).ajaxStop(function() {
- $(this).hide();
- $('#result').fadeIn('slow');
- });
- */
-
+__IriSP.init = function (config){
+
+ __IriSP.config = config;
+ var metadataSrc = __IriSP.config.metadata.src;
+ var guiContainer = __IriSP.config.gui.container;
+ var guiMode = __IriSP.config.gui.mode;
+ var guiLdtShareTool = __IriSP.LdtShareTool;
+ // Localize jQuery variable
+ __IriSP.jQuery = null;
-/* ----------------------------------------------------------------
- ----------------------------------------------------------------
- LOAD JSON AND PARSE IT */
+ /******** Load jQuery if not present *********/
+ if (window.jQuery === undefined || window.jQuery.fn.jquery !== '1.4.2') {
+ var script_tag = document.createElement('script');
+ script_tag.setAttribute("type","text/javascript");
+ script_tag.setAttribute("src",__IriSP.lib.jQuery);
+ //"http://cdn.jquerytools.org/1.2.4/full/jquery.tools.min.js");
+ script_tag.onload = scriptLibHandler;
+ script_tag.onreadystatechange = function () { // Same thing but for IE
+ if (this.readyState == 'complete' || this.readyState == 'loaded') {
+ scriptLibHandler();
+
+ }
+ };
+ // Try to find the head, otherwise default to the documentElement
+ (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag);
+ } else {
+ // The jQuery version on the window is the one we want to use
+ __IriSP.jQuery = window.jQuery;
+ scriptLibHandler();
+ }
- var MyLdt;
- var MyTags;
- var Durration;
- var playerLdtWidth;
- var playerLdtHeight;
+ /******** Called once jQuery has loaded ******/
+ function scriptLibHandler() {
+
+ var script_jqUi_tooltip = document.createElement('script');
+ script_jqUi_tooltip.setAttribute("type","text/javascript");
+ script_jqUi_tooltip.setAttribute("src",__IriSP.lib.jQueryToolTip);
+ script_jqUi_tooltip.onload = scriptLoadHandler;
+ script_jqUi_tooltip.onreadystatechange = function () { // Same thing but for IE
+ if (this.readyState == 'complete' || this.readyState == 'loaded') {
+ scriptLoadHandler("jquery.tools.min.js loded");
+ }
+ };
+
+ var script_swfObj = document.createElement('script');
+ script_swfObj.setAttribute("type","text/javascript");
+ script_swfObj.setAttribute("src",__IriSP.lib.swfObject);
+ script_swfObj.onload = scriptLoadHandler;
+ script_swfObj.onreadystatechange = function () { // Same thing but for IE
+ if (this.readyState == 'complete' || this.readyState == 'loaded') {
+ scriptLoadHandler("swfobject.js loded");
+ }
+ };
+
+ var script_jqUi = document.createElement('script');
+ script_jqUi.setAttribute("type","text/javascript");
+ script_jqUi.setAttribute("src",
+ "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/jquery-ui.min.js");
+ script_jqUi.onload = scriptLoadHandler;
+ script_jqUi.onreadystatechange = function () { // Same thing but for IE
+ if (this.readyState == 'complete' || this.readyState == 'loaded') {
+ scriptLoadHandler("jquery-ui.min.js loded");
+ }
+ };
+
+
+
- $('#log').ajaxError(function(event, request, settings){
- $(this).append("
Error requesting page " + settings.url + " ");
- });
-
- function loadJson (width,height,urlJson,MySwfPath){
-
- playerLdtWidth=width;
- playerLdtHeight=height;
-
- $jIRI.ajax({
+ (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_jqUi_tooltip);
+ (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_jqUi);
+ (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_swfObj);
+
+
+ };
+
+ /******** Called once all lib are loaded ******/
+ var loadLib = 0;
+ function scriptLoadHandler(Mylib) {
+ //alert(Mylib);
+ loadLib +=1;
+ if(loadLib===3){
+ main();
+ }else {
+ // __IriSP.jQuery('#'+__IriSP.config.gui.container).html("Loading library ...");
+ }
+ };
+
+ /******** Our main function ********/
+ function main() {
+
+
+ // Make __IriSP.jQuery and restore window.jQuery
+ __IriSP.jQuery = window.jQuery.noConflict(true);
+ // Call MY Jquery
+ __IriSP.jQuery(document).ready(function($) {
+
+ /******* Load CSS *******/
+ var css_link_jquery = __IriSP.jQuery("
", {
+ rel: "stylesheet",
+ type: "text/css",
+ href: "../res/css/jq-css/themes/base/jquery.ui.all.css",
+ 'class': "dynamic_css"
+ });
+ var css_link_custom = __IriSP.jQuery("
", {
+ rel: "stylesheet",
+ type: "text/css",
+ href: __IriSP.config.gui.css ,
+ 'class': "dynamic_css"
+ });
+
+ css_link_jquery.appendTo('head');
+ css_link_custom.appendTo('head');
+
+ // to see dynamicly loaded css on IE
+ if ($.browser.msie) {
+ $('.dynamic_css').clone().appendTo('head');
+ }
+
+ //__IriSP.trace("main","ready createMyHtml");
+
+ __IriSP.createMyHtml();
+ //__IriSP.trace("main","end createMyHtml");
+
+ /******* Load Metadata *******/
+
+ __IriSP.jQuery.ajax({
dataType: 'jsonp',
- url:urlJson,
+ url:metadataSrc,
success : function(json){
- //alert("ICI : "+json);
-
- if(json == ""){
- alert("ERREUR DE CHARGEMENT JSON");
- } else {
-
-
- /* # CREATE MEDIA */
- /* # JUSTE ONE PLAYER FOR THE MOMENT */
- $jIRI("
").appendTo("#output");
- MyMedia = new Media(json.medias[0].id,json.medias[0].href,json.medias[0]["meta"]["dc:duration"],json.medias[0]['dc:title'],json.medias[0]['dc:description']);
- MyMedia.createPlayer(playerLdtWidth,playerLdtHeight,json.medias[0]["meta"]["item"]["value"],MySwfPath);
+ __IriSP.trace("ajax","success");
+
+ // START PARSING -----------------------
+ if(json === ""){
+ alert("ERREUR DE CHARGEMENT JSON");
+ } else {
+
+
+ // # CREATE MEDIA //
+ // # JUSTE ONE PLAYER FOR THE MOMENT //
+ //__IriSP.jQuery("
").appendTo("#output");
+ var MyMedia = new __IriSP.Media(
+ json.medias[0].id,
+ json.medias[0].href,
+ json.medias[0]['meta']['dc:duration'],
+ json.medias[0]['dc:title'],
+ json.medias[0]['dc:description']);
+
+ __IriSP.trace("__IriSP.MyApiPlayer",
+ __IriSP.config.gui.width+" "
+ + __IriSP.config.gui.height + " "
+ + json.medias[0].href + " "
+ + json.medias[0]['meta']['dc:duration'] + " "
+ + json.medias[0]['meta']['item']['value']);
+
+ // Create APIplayer
+ __IriSP.MyApiPlayer = new __IriSP.APIplayer(
+ __IriSP.config.gui.width,
+ __IriSP.config.gui.height,
+ json.medias[0].href,
+ json.medias[0]['meta']['dc:duration'],
+ json.medias[0]['meta']['item']['value']);
- /* # CREATE THE FIRST LINE */
- MyLdt = new Ligne (json['annotation-types'][0].id,json['annotation-types'][0]['dc:title'],json['annotation-types'][0]['dc:description'],json.medias[0]["meta"]["dc:duration"]);
+ // # CREATE THE FIRST LINE //
+ __IriSP.trace("__IriSP.init.main","__IriSP.Ligne");
+ __IriSP.MyLdt = new __IriSP.Ligne (
+ json['annotation-types'][0].id,
+ json['annotation-types'][0]['dc:title'],
+ json['annotation-types'][0]['dc:description'],
+ json.medias[0]['meta']['dc:duration']);
+
+ // CREATE THE TAG CLOUD //
+ __IriSP.trace("__IriSP.init.main","__IriSP.Tags");
+ __IriSP.MyTags = new __IriSP.Tags (json.tags);
- /* CREATE THE TAG CLOUD */
- MyTags = new Tags (json.tags);
+ // CREATE THE ANNOTATIONS //
+ // JUSTE FOR THE FIRST TYPE //
+ __IriSP.jQuery.each(json.annotations, function(i,item) {
+ if (item.meta['id-ref'] == __IriSP.MyLdt.id) {
+ //__IriSP.trace("__IriSP.init.main","__IriSP.MyLdt.addAnnotation");
+ __IriSP.MyLdt.addAnnotation(
+ item.id,
+ item.begin,
+ item.end,
+ item.media,
+ item.content.title,
+ item.content.description,
+ item.content.color,
+ item.tags);
+ }
+ //MyTags.addAnnotation(item);
+ });
+ __IriSP.jQuery.each(json.lists, function(i,item) {
+ __IriSP.trace("lists","");
+ });
+ __IriSP.jQuery.each(json.views, function(i,item) {
+ __IriSP.trace("views","");
+ });
+ }
+ // END PARSING ----------------------- //
- /* CREATE THE ANNOTATIONS */
- /* JUSTE FOR THE FIRST TYPE */
- $jIRI.each(json.annotations, function(i,item) {
- if (item.meta['id-ref'] == MyLdt.id) {
- MyLdt.addAnnotation(
- item.id,
- item.begin,
- item.end,
- item.media,
- item.content.title,
- item.content.description,
- item.content.color,
- item.tags);
- }
- MyTags.addAnnotation(item);
- });
- $jIRI.each(json.lists, function(i,item) {
- trace("lists","");
- });
- $jIRI.each(json.views, function(i,item) {
- trace("views","");
- });
- /* END PARSING ----------------------- */
- }
},error : function(data){
alert("ERROR : "+data);
}
});
- }
- function callbackLdts(json){
-
- alert("CALLBACK");
-
- }
- function trace (msg,value){
- $jIRI("
"+msg+" : "+value+"
").appendTo("#output");
- }
+
+
+ });
+ }
-
-
-
-
-
+};
-/* ----------------------------------------------------------------
- ----------------------------------------------------------------
- Class Media */
-/*
-
- "http://advene.liris.cnrs.fr/ns/frame_of_reference/ms":"o=0",
- "id":"kia_closeup",
- "url":"D:/Thibaut/Outils_techno/IRI-LignesDeTemps/media/video/kia_closeup_BQ.flv",
- "dc:creator":"tcavalie",
- "dc:created":"2010-05-04T00:00:00",
- "dc:contributor":"tcavalie",
- "dc:modified":"2010-05-04T00:00:00",
- "dc:creator.contents":"Abbas Kiarostami",
- "dc:created.contents":"1990",
- "dc:title":"Close Up is a very very long title",
- "dc:description":"Analyse de Close Up",
- "dc:duration":"689266"
- */
- function Media (id,url,duration,title,description){
- this.id = id;
- this.url = url;
- this.title = title;
- this.description = description;
- this.duration = duration;
+__IriSP.createMyHtml = function(){
+ var width = __IriSP.config.gui.width;
+
+ // AUDIO */
+ // PB dans le html : ;
+ __IriSP.jQuery( "
\n"+
+ "
\n"+
+ "
Get flash to see this player \n"+
+ "
\n"+
+ "
\n"+
+ "
\n"+
+ " Lecture / Pause \n"+
+ " Suivant \n"+
+ "
\n"+
+ "
\n"+
+ "
\n"+
+ " Partager \n"+
+ " Sound \n"+
+ "
\n"+
+ "
 \;
\n"+
+ "
\n"+
+ "
\n"+
+ "
\n"+
+ "
\n"+
+ "
\n"+
+ "
\n"+
+ "
\n"+
+ "
\n"+
+ "
\n"+
+ "
\n"+
+ "
\n"+
+ "
\n"+
+ "
\n"+
+ " \n"+
+ " "+__IriSP.LdtShareTool+"\n"+
+ " \n"+
+ "
\n"+
+ "
"+
+ "
"+
+ //"
Mots clefs :
"+
+ "
"+
+ "
").appendTo("#"+__IriSP.config.gui.container);
+
+ __IriSP.trace("__IriSP.createHtml","end");
+
+ __IriSP.jQuery("#Ldt-Annotations").width(width-(75*2));
+ __IriSP.jQuery("#Ldt-Show-Arrow-container").width(width-(75*2));
+ __IriSP.jQuery("#Ldt-ShowAnnotation-audio").width(width-10);
+ __IriSP.jQuery("#Ldt-ShowAnnotation-video").width(width-10);
+ __IriSP.jQuery("#Ldt-SaKeyword").width(width-10);
+ __IriSP.jQuery("#Ldt-controler").width(width-10);
+ __IriSP.jQuery("#Ldt-Control").attr("z-index","100");
+ __IriSP.jQuery("#Ldt-controler").hide();
+
+ __IriSP.jQuery("
").appendTo("#Ldt-ShowAnnotation-audio");
+
+ if(__IriSP.config.gui.mode=='radio'){
+ __IriSP.jQuery("#Ldt-load-container").attr("width",__IriSP.config.gui.width);
+ }
+ // Show or not the output
+ if(__IriSP.config.gui.debug===true){
+ __IriSP.jQuery("#Ldt-output").show();
+ } else {
+ __IriSP.jQuery("#Ldt-output").hide();
+ }
+
+};
- this.lignes = new Array();
- this.updatePlayer = updatePlayerMedia;
- this.getDuration = getMediaDuration;
- this.createPlayer = createPlayerMedia;
-
- trace("Media ID :",id);
- trace("Media URL :",this.url);
- trace("- content : color",url);
- trace("- content : audio",title);
- }
- function createPlayerMedia(width,height,MyStreamer,MySwfPath){
- LdtApiPlayer = new APIplayer(width,height,this.url,this.duration,MyStreamer,MySwfPath);
+__IriSP.Media = function (id,url,duration,title,description){
+ this.id = id;
+ this.url = url;
+ this.title = title;
+ this.description = description;
+ this.duration = duration;
+ this.lignes = new Array();
+
+ __IriSP.trace("__IriSP.Media","Media ID : "+id);
+ __IriSP.trace("__IriSP.Media","Media URL : "+url);
+ __IriSP.trace("__IriSP.Media","Media title : "+title);
+}
+__IriSP.Media.prototype.createPlayerMedia = function (width,height,MyStreamer,MySwfPath){
+ __IriSP.MyApiPlayer = new __IriSP.APIplayer(width,height,this.url,this.duration,MyStreamer,MySwfPath);
//createPlayer(width,height,this.url,this.duration,MyStreamer,MySwfPath);
- }
- function updatePlayerMedia(){
-
- }
- function getMediaDuration(){
+}
+__IriSP.Media.prototype.getMediaDuration = function (){
return (this.duration);
- }
- function getMediaTitle(){
+}
+__IriSP.Media.prototype.getMediaTitle = function (){
return (this.title);
- }
-
-
-
-
-
-
+}
-/* ----------------------------------------------------------------
- ----------------------------------------------------------------
- INTERFACE : SLIDER ( CONTROL BAR ) | BUTTON () */
- function createInterface (width,height,duration){
-
- //$jIRI("#Ldt-Root").css('display','visible');
- trace("CREATE INTERFACE ",width+","+height+","+duration+",");
+/* INTERFACE : SLIDER ( CONTROL BAR ) | BUTTON () */
+__IriSP.createInterface = function(width,height,duration){
+
+ __IriSP.jQuery("#Ldt-controler").show();
+ //__IriSP.jQuery("#Ldt-Root").css('display','visible');
+ __IriSP.trace("__IriSP.createInterface",width+","+height+","+duration+",");
- $jIRI(function() {
- $jIRI("#Ldt-Annotations").width(width-(75*2));
- $jIRI("#Ldt-Show-Arrow-container").width(width-(75*2));
- //$jIRI("#Ldt-Show-Arrow-container").width(width-(75*2));
- $jIRI("#Ldt-ShowAnnotation-audio").width(width-10);
- $jIRI("#Ldt-ShowAnnotation-video").width(width-10);
- $jIRI("#Ldt-SaKeyword").width(width-10);
- $jIRI("#Ldt-controler").width(width-10);
- $jIRI("#Ldt-Control").attr("z-index","100");
-
- $jIRI("#Ldt-ShowAnnotation").click(function () {
- //$jIRI(this).slideUp();
- });
+ __IriSP.jQuery("#Ldt-ShowAnnotation").click(function () {
+ //__IriSP.jQuery(this).slideUp();
+ });
- var LdtpPlayerY = $jIRI("#Ldt-PlaceHolder").attr("top");
- var LdtpPlayerX = $jIRI("#Ldt-PlaceHolder").attr("left");
-
- $jIRI("#slider-range-min").slider({ //range: "min",
- value: 0,
- min: 1,
- max: duration/1000,//1:54:52.66 = 3600+3240+
- step: 0.1,
- slide: function(event, ui) {
-
- //$jIRI("#amount").val(ui.value+" s");
- //player.sendEvent('SEEK', ui.value)
- LdtApiPlayer.seek(ui.value);
- //changePageUrlOffset(ui.value);
- //player.sendEvent('PAUSE')
- }
- });
- $jIRI("#amount").val($jIRI("#slider-range-min").slider("value")+" s");
-
- $jIRI(".Ldt-Control1 button:first").button({
- icons: {
- primary: 'ui-icon-play'
- },
- text: false
- }).next().button({
- icons: {
- primary: 'ui-icon-seek-next'
- },
- text: false
- });
-
- $jIRI(".Ldt-Control2 button:first").button({
- icons: {
- primary: 'ui-icon-transferthick-e-w'//,
- //secondary: 'ui-icon-volume-off'
- },
- text: false
- }).next().button({
- icons: {
- primary: 'ui-icon-volume-on'
- },
- text: false
- });
+ var LdtpPlayerY = __IriSP.jQuery("#Ldt-PlaceHolder").attr("top");
+ var LdtpPlayerX = __IriSP.jQuery("#Ldt-PlaceHolder").attr("left");
+ __IriSP.jQuery("#slider-range-min").slider({ //range: "min",
+ value: 0,
+ min: 1,
+ max: duration/1000,//1:54:52.66 = 3600+3240+
+ step: 0.1,
+ slide: function(event, ui) {
+
+ //__IriSP.jQuery("#amount").val(ui.value+" s");
+ //player.sendEvent('SEEK', ui.value)
+ __IriSP.MyApiPlayer.seek(ui.value);
+ //changePageUrlOffset(ui.value);
+ //player.sendEvent('PAUSE')
+ }
+ });
+ __IriSP.trace("__IriSP.createInterface","ICI");
+ __IriSP.jQuery("#amount").val(__IriSP.jQuery("#slider-range-min").slider("value")+" s");
+ __IriSP.jQuery(".Ldt-Control1 button:first").button({
+ icons: {
+ primary: 'ui-icon-play'
+ },
+ text: false
+ }).next().button({
+ icons: {
+ primary: 'ui-icon-seek-next'
+ },
+ text: false
+ });
+ __IriSP.jQuery(".Ldt-Control2 button:first").button({
+ icons: {
+ primary: 'ui-icon-transferthick-e-w'//,
+ //secondary: 'ui-icon-volume-off'
+ },
+ text: false
+ }).next().button({
+ icons: {
+ primary: 'ui-icon-volume-on'
+ },
+ text: false
+ });
+
+ // /!\ PB A MODIFIER
+ //__IriSP.MyTags.draw();
+ __IriSP.trace("__IriSP.createInterface","ICI2");
+ __IriSP.jQuery("#ldt-CtrlPlay").attr("style","background-color:#CD21C24;");
- // version radio
- //$jIRI("#Ldtplayer1").css('display','none');
- //$jIRI("#Ldt-Root").show();
- MyTags.draw();
- });
+ __IriSP.jQuery("#Ldt-load-container").hide();
+
+ if(__IriSP.config.gui.mode=="radio" & __IriSP.jQuery.browser.msie!=true){
+ __IriSP.jQuery("#Ldtplayer1").attr("height","0");
+ }
+ __IriSP.trace("__IriSP.createInterface","3");
+
+ __IriSP.trace("__IriSP.createInterface","END");
+
}
-
-
-/* ----------------------------------------------------------------
- ----------------------------------------------------------------
- UTIL */
-
-// code from http://stackoverflow.com/questions/822452/strip-html-from-text-javascript
- function stripHtml(s)
- {
- return s.replace(/\\&/g, '&').replace(/\\/g, '>').replace(/\\t/g, ' ').replace(/\\n/g, '
').replace(/'/g, ''').replace(/"/g, '"');
- }
-
-/* Conversion de couleur Decimal vers HexaDecimal || 000 si fff */
- function DEC_HEXA_COLOR(dec)
- {
- var hexa='0123456789ABCDEF',hex=''
- while (dec>15)
- {
- tmp = dec-(Math.floor(dec/16))*16;
- hex = hexa.charAt(tmp)+hex;
- dec = Math.floor(dec/16);
- }
- hex = hexa.charAt(dec)+hex;
- if (hex == "FFCC00"){ hex="";/* by default color of Ldt annotation */ }
- return(hex);
- }
-
-
-
-
-
-
-
-
-/* ----------------------------------------------------------------
- ----------------------------------------------------------------
- API player - work in progress */
- function APIplayer (width,height,url,duration,streamerPath,MySwfPath){
+/* API player - work in progress ... need refactoring of code */
+__IriSP.APIplayer = function (width,height,url,duration,streamerPath,MySwfPath){
+
this.player = null;
this.hashchangeUpdate = null;
@@ -343,512 +470,449 @@
this.streamerPath = streamerPath;
this.MySwfPath = MySwfPath;
- this.pause = APIpPause;
- this.ready = APIpReady;
- this.play = APIpPlay;
- this.seek = APIpSeek;
- this.update = APIpUpdate;
- this.mute = APIpMute;
- this.share = APIpShare;
- MyApiPlayer = this;
+ __IriSP.MyApiPlayer = this;
+
+ __IriSP.createPlayer(width,height,this.url,this.duration,this.streamerPath,this.MySwfPath);
+ __IriSP.trace("__IriSP.APIplayer","__IriSP.createPlayer");
- createPlayer(width,height,this.url,this.duration,this.streamerPath,this.MySwfPath);
-
+}
+__IriSP.APIplayer.prototype.ready = function(player){
+
+ //__IriSP.trace("__IriSP.APIplayer.prototype.APIpReady"," __IriSP.createInterface");
+ __IriSP.createInterface(this.width,this.height,this.duration);
+ __IriSP.trace("__IriSP.APIplayer.prototype.APIpReady","END __IriSP.createInterface");
+
+
+ // hashchange EVENT
+ if (window.addEventListener){
+
+ // pour FIREFOX hashchange EVENT
+ window.addEventListener("hashchange", function() {
+ var url = window.location.href;
+ var time = __IriSP.retrieveTimeFragment(url);
+ __IriSP.trace("__IriSP.APIplayer.prototype.ready",time);
+ if(__IriSP.MyApiPlayer.hashchangeUpdate==null){
+ __IriSP.MyApiPlayer.seek(time);
+ }else{
+ __IriSP.MyApiPlayer.hashchangeUpdate=null;
+ }
+ }, false);
+
+ }
+ else if (window.attachEvent){
+ // FOR IE hashchange EVENT
+
+ window.attachEvent("onhashchange", function() {
+ __IriSP.trace("hashchange",time);
+ var url = window.location.href;
+ var time = __IriSP.retrieveTimeFragment(url);
+ if(__IriSP.MyApiPlayer.hashchangeUpdate==null){
+ __IriSP.MyApiPlayer.seek(time);
+ }else{
+ __IriSP.MyApiPlayer.hashchangeUpdate=null;
+ }
+ }, false);
}
- function APIpCreate(){
-
- }
- function APIpReady(player){
- //alert("ready");
- createInterface(this.width,this.height,this.duration);
- this.player = player;
-
- // hashchange EVENT
- if (window.addEventListener){
- // pour FIREFOX hashchange EVENT
- window.addEventListener("hashchange", function() {
- var url = location.href;
- var time = retrieveTimeFragment(url);
- trace("hashchange",time);
- if(LdtApiPlayer.hashchangeUpdate==null){
- LdtApiPlayer.seek(time);
- }else{
- LdtApiPlayer.hashchangeUpdate=null;
- }
- }, false);
-
- }
- else if (window.attachEvent){
- // FOR IE hashchange EVENT
- window.attachEvent("onhashchange", function() {
- trace("hashchange",time);
- var url = location.href;
- var time = retrieveTimeFragment(url);
- if(LdtApiPlayer.hashchangeUpdate==null){
- LdtApiPlayer.seek(time);
- }else{
- LdtApiPlayer.hashchangeUpdate=null;
- }
- }, false);
- }
-
- }
- function APIpPause(){
- this.hashchangeUpdate = true;
- this.player.sendEvent('PAUSE');
- }
- function APIpPlay(){
- this.hashchangeUpdate = true;
- this.player.sendEvent('PLAY');
- }
- function APIpMute(){
- this.player.sendEvent('MUTE');
- }
- function APIpShare(network){
-
- MyMessage = "Je regarde :";
- MyURLNow = window.location.href;
- //alert(network+" : "+MyURLNow);
-
- if(network == "facebook"){
-
- //window.title =
-
- shareURL = "http://www.facebook.com/share.php?u=";
- //http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.addthis.com%2F%3Fsms_ss%3Dfacebook
-
- }else if(network == "twitter"){
-
- shareURL = "http://twitter.com/home?status="+MyMessage;
-
- }else if(network == "myspace"){
- shareURL ="http://www.myspace.com/Modules/PostTo/Pages/?u=";
-
- }else if(network == "delicious"){
- shareURL = "http://delicious.com/save?url=";
-
- }else if(network == "JamesPot"){
- alert(network+" non actif pour l'instant : "+MyURLNow);
-
- }
-
- window.location.href = shareURL+encodeURIComponent(MyURLNow);
- }
- function APIpSeek(time){
- this.player.sendEvent('SEEK', time);
- changePageUrlOffset(time);
- }
- function APIpUpdate(time){
- this.hashchangeUpdate = true;
- this.player.sendEvent('SEEK', time);
- }
- function changePageUrlOffset(time) {
- trace("changeURL",time);
- // update page url
- location.hash = "#t=" + time;
- //document.displayurl.offseturl.value = location.href;
- window.location.href = location.href;
- }
+}
+__IriSP.APIplayer.prototype.pause = function(){
+ this.hashchangeUpdate = true;
+ __IriSP.player.sendEvent('PAUSE');
+}
+__IriSP.APIplayer.prototype.play = function(){
+ this.hashchangeUpdate = true;
+ __IriSP.player.sendEvent('PLAY');
+}
+__IriSP.APIplayer.prototype.mute = function(){
+ __IriSP.player.sendEvent('MUTE');
+}
+__IriSP.APIplayer.prototype.share = function(network){
-
+ var MyMessage = "Je regarde :";
+ var MyURLNow = window.location.href;
+ var shareURL;
+ //alert(network+" : "+MyURLNow);
-/* ----------------------------------------------------------------
- ----------------------------------------------------------------
- CREER JW PLAYER creation + listener */
-
- var currentPosition = 0;
- var currentVolume = 50;
- var player = null;
- var startPosition = null;
-
- function playerReady(thePlayer) {
-
- player = window.document[thePlayer.id];
- LdtApiPlayer.ready(player);
- trace("PLAYER READY ","");
- var url = location.href;
- var time = retrieveTimeFragment(url);
- trace("PLAYER READY SEEK IF NEEDED",time);
- startPosition = time;
- addListeners();
+ if(network == "facebook"){
+ shareURL = "http://www.facebook.com/share.php?u=";
+ }else if(network == "twitter"){
+ shareURL = "http://twitter.com/home?status="+MyMessage;
+ }else if(network == "myspace"){
+ shareURL ="http://www.myspace.com/Modules/PostTo/Pages/?u=";
+ }else if(network == "delicious"){
+ shareURL = "http://delicious.com/save?url=";
+ }else if(network == "JameSpot"){
+ shareURL = "http://www.jamespot.com/?action=spotit&u=";
+ //alert(network+" non actif pour l'instant : "+MyURLNow);
}
- function addListeners() {
- if (player) {
- player.addModelListener("TIME", "positionListener");
- player.addControllerListener("VOLUME", "volumeListener");
- player.addModelListener('STATE', 'stateMonitor');
- //http://developer.longtailvideo.com/trac/wiki/Player5Events
- } else {
- setTimeout("addListeners()",100);
- }
-
- // et changer les boutons
- }
- function stateMonitor(obj) {
- if(obj.newstate == 'PAUSED')
- {
- trace("PAUSE : ","");
- changePageUrlOffset(currentPosition);
-
- } else if (obj.newstate == 'PLAYING'){
- // une fois la video prete a lire la déplacer au bon timecode
- if(startPosition!=null){
- LdtApiPlayer.update(startPosition);
- startPosition = null;
- }
- } else if (obj.newstate == 'BUFFERING'){
- trace("BUFFERING : ","");
- //changePageUrlOffset(currentPosition);
+ window.location.href = shareURL+encodeURIComponent(MyURLNow);
+}
+__IriSP.APIplayer.prototype.seek = function (time){
+ __IriSP.player.sendEvent('SEEK', time);
+ this.changePageUrlOffset(time);
+}
+__IriSP.APIplayer.prototype.update = function (time){
+ this.hashchangeUpdate = true;
+ __IriSP.player.sendEvent('SEEK', time);
+}
+__IriSP.APIplayer.prototype.changePageUrlOffset = function (time) {
+ //alert(time);
+ __IriSP.trace("__IriSP.APIplayer.prototype.changePageUrlOffset","CHANGE URL "+time);
+ window.location.hash = "#t=" + time;
+ window.location.href = window.location.href;
+}
+
+/* MEDIA FRAGMENT FUNCTION */
+
+__IriSP.jumpToTimeoffset = function (form) {
+ var time = form.time.value;
+ __IriSP.MyApiPlayer.changePageUrlOffset(time);
+}
+__IriSP.retrieveTimeFragment = function (url) {
+ var pageoffset = 0;
+ var offsettime = 0;
+
+ if (url.split("#")[1] != null) {
+ pageoffset = url.split("#")[1];
+ if (pageoffset.substring(2) != null) {
+ offsettime = pageoffset.substring(2);
}
-
- }
- function positionListener(obj) {
- currentPosition = obj.position;
- var tmp = document.getElementById("posit");
- if (tmp) { tmp.innerHTML = "position: " + currentPosition; }
- $jIRI("#slider-range-min").slider("value", obj.position);
- $jIRI("#amount").val(obj.position+" s");
- // afficher annotation
- MyLdt.checkTime(currentPosition);
}
- function volumeListener(obj) {
- currentVolume = obj.percentage;
- var tmp = document.getElementById("vol");
- if (tmp) { tmp.innerHTML = "volume: " + currentVolume; }
- }
- function createPlayer(width,height,url,duration,streamerPath,MySwfPath) {
-
- myUrlFragment = url.split(streamerPath);
- file = myUrlFragment[1];
- streamer = streamerPath;
-
- var flashvars = {
- streamer:streamer,
- file:file,
- //live:"true",
- autostart:"true",
- controlbar:"none"
- }
-
- var params = {
- allowfullscreen:"true",
- allowscriptaccess:"always",
- wmode:"transparent"
- }
-
- var attributes = {
- id:"Ldtplayer1",
- name:"Ldtplayer1"
- }
-
- swfobject.embedSWF(MySwfPath, "Ldt-PlaceHolder", width, height, "9.0.115", false, flashvars, params, attributes);
- }
+ return offsettime;
+}
+__IriSP.ignoreTimeFragment = function(url){
+ if (url.split("#")[1] != null) {
+ var pageurl= url.split("#")[0];
+ }
+ return pageurl;
+}
-
-
-
+/* CODE SPECIAL JW PLAYER creation + listener */
-/* ----------------------------------------------------------------
- ----------------------------------------------------------------
- MEDIA FRAGMENT FUNCTION*/
+__IriSP.currentPosition = 0;
+__IriSP.currentVolume = 50;
+__IriSP.player = null;
+__IriSP.startPosition = null;
+
+__IriSP.createPlayer = function (width,height,url,duration,streamerPath,MySwfPath) {
- // when the hash on the window changes, also do an offset
- // jump to time offset action
- function jumpToTimeoffset(form) {
- var time = form.time.value;
- changePageUrlOffset(time);
- }
- // parse the time hash out of the given url
- function retrieveTimeFragment(url) {
- var pageoffset = 0;
- var offsettime = 0;
-
- if (url.split("#")[1] != null) {
- pageoffset = url.split("#")[1];
- if (pageoffset.substring(2) != null) {
- offsettime = pageoffset.substring(2);
- }
- }
- return offsettime;
- }
- function ignoreTimeFragment(url){
- if (url.split("#")[1] != null) {
- pageurl= url.split("#")[0];
- }
- return pageurl;
+ __IriSP.trace("__IriSP.createPlayer","start");
+
+ __IriSP.myUrlFragment = url.split(streamerPath);
+ var file = __IriSP.myUrlFragment[1];
+ var streamer = streamerPath;
+
+ var flashvars = {
+ streamer:streamer,
+ file:file,
+ live:"true",
+ autostart:"true",
+ controlbar:"none",
+ playerready:"__IriSP.playerReady"
+ }
+
+ var params = {
+ allowfullscreen:"true",
+ allowscriptaccess:"always",
+ wmode:"transparent"
}
+ var attributes = {
+ id:"Ldtplayer1",
+ name:"Ldtplayer1"
+ }
+
+ __IriSP.trace("__IriSP.createPlayer","SWFOBJECT src:"+__IriSP.config.player.src+" " +width+" "+height);
+ swfobject.embedSWF(__IriSP.config.player.src, "Ldt-PlaceHolder", width, height, "9.0.115", false, flashvars, params, attributes);
+
+ // need a methode to
+ // re execute if this swf call does'nt work
+}
+__IriSP.playerReady = function (thePlayer) {
+
+ //__IriSP.trace("__IriSP.playerReady","PLAYER READY !!!!!!!!!!!!");
+ __IriSP.player = window.document[thePlayer.id];
+ //__IriSP.trace("__IriSP.playerReady","API CALL "+__IriSP.player);
+ __IriSP.MyApiPlayer.ready(__IriSP.player);
+ //__IriSP.trace("__IriSP.playerReady","API CALL END ");
+
+ var url = document.location.href;
+ var time = __IriSP.retrieveTimeFragment(url);
+ //__IriSP.trace("__IriSP.playerReady"," "+url+" "+time );
+ __IriSP.startPosition = time;
+ //__IriSP.trace("__IriSP.playerReady"," LISTENER LAUCHER");
+ __IriSP.addListeners();
+ //__IriSP.trace("__IriSP.playerReady"," LISTENER END");
+
+}
+__IriSP.addListeners = function () {
+ if (__IriSP.player) {
+ __IriSP.trace("__IriSP.addListeners","ADD Listener ");
+ __IriSP.player.addModelListener("TIME", "__IriSP.positionListener");
+ __IriSP.player.addControllerListener("VOLUME", "__IriSP.volumeListener");
+ __IriSP.player.addModelListener('STATE', '__IriSP.stateMonitor');
+ } else {
+ __IriSP.setTimeout("addListeners()",100);
+ }
+
+ // et changer les boutons
+}
+__IriSP.stateMonitor = function (obj) {
+
+ if(obj.newstate == 'PAUSED')
+ {
+ __IriSP.trace("__IriSP.stateMonitor","PAUSE");
+ __IriSP.MyApiPlayer.changePageUrlOffset(__IriSP.currentPosition);
+
+ } else if (obj.newstate == 'PLAYING'){
+ // une fois la video prete a lire la déplacer au bon timecode
+ if(__IriSP.startPosition!=null){
+ __IriSP.MyApiPlayer.update(__IriSP.startPosition);
+ __IriSP.startPosition = null;
+ }
+ } else if (obj.newstate == 'BUFFERING'){
+ __IriSP.trace("__IriSP.stateMonitor","BUFFERING : ");
+ //changePageUrlOffset(currentPosition);
+ }
+
+}
+__IriSP.positionListener = function(obj) {
+ //__IriSP.trace("__IriSP.positionListener",obj.position);
+ __IriSP.currentPosition = obj.position;
+ var tmp = document.getElementById("posit");
+ if (tmp) { tmp.innerHTML = "position: " + __IriSP.currentPosition; }
+ __IriSP.jQuery("#slider-range-min").slider("value", obj.position);
+ __IriSP.jQuery("#amount").val(obj.position+" s");
+ // afficher annotation
+ __IriSP.MyLdt.checkTime(__IriSP.currentPosition);
+}
+__IriSP.volumeListener = function (obj) {
+ __IriSP.currentVolume = obj.percentage;
+ var tmp = document.getElementById("vol");
+ if (tmp) { tmp.innerHTML = "volume: " + __IriSP.currentVolume; }
+}
-/* ----------------------------------------------------------------
- ----------------------------------------------------------------
- Class Ligne (annotationType) */
-/*
- "id":"dp_1",
- "dc:creator":"tcavalie",
- "dc:created":"2010-04-04T19:09:44",
- "dc:contributor":"perso",
- "dc:modified":"15/2/2008",
- "dc:title":"dqsdkljfh qklsdhf very very very long",
- "dc:description":"sdfg sdfg sdfg sdfg"
- */
-
- var LDTligne = null;
- function Ligne (){
- this.id = id;
- this.title = title;
- this.description = description;
- this.annotations = new Array();
- this.annotationOldRead = "";
- this.addAnnotation = addAnnotationligne;
- this.clickAnnotation= onClickLigneAnnotation;
- this.checkTime = checkTimeLigne;
- this.nextAnnotation = onClickNextAnnotation;
- }
- function Ligne (id,title,description,duration){
- this.id = id;
- this.title = title;
- this.description = description;
- //
- this.annotations = new Array();
- this.addAnnotation = addLigneAnnotation;
- this.checkTime = checkTimeLigne;
- this.nextAnnotation = onClickNextAnnotation;
- this.numAnnotation = numAnnotationTimeLine;
- this.duration = duration;
- LDTligne = this;
- trace("LIGNE ","créer "+LDTligne);
- }
- function addLigneAnnotation(id,begin,end,media,title,description,color,tags){
- var myAnnotation = new Annotation(id,begin,end,media,title,description,color,tags,this.duration);
- this.annotations.push(myAnnotation);
- trace("LIGNE ","add annotation ");
- }
- function onClickLigneAnnotation(id){
- //changePageUrlOffset(currentPosition);
- //player.sendEvent('SEEK', this.start);
- //trace("SEEK",this.start);
- }
- function searchLigneAnnotation(id){
- /*for (){
- }*/
- }
- function listAnnotations (){
-
- }
- function onClickNextAnnotation(){
- var annotationCibleNumber = this.numAnnotation(this.annotationOldRead)+1;
- var annotationCible = this.annotations[annotationCibleNumber];
-
- if(annotationCibleNumber
this.annotations[i].begin/1000 && time 1.4
- //$jIRI("#Ldt-SaTitle").delay(100).text(annotationTempo.title);
- //$jIRI("#Ldt-SaDescription").delay(100).text(annotationTempo.description);
- //$jIRI('#Ldt-ShowAnnotation').delay(100).slideDown();
-
- $jIRI("#Ldt-SaTitle").text(annotationTempo.title);
- $jIRI("#Ldt-SaDescription").text(annotationTempo.description);
-
- $jIRI("#Ldt-SaDescription").text(annotationTempo.description);
- $jIRI("#Ldt-SaKeywordText").html(annotationTempo.htmlTags);
-
- $jIRI('#Ldt-ShowAnnotation').slideDown();
-
-
- startPourcent = timeToPourcent((annotationTempo.begin*1+(annotationTempo.end-annotationTempo.begin)/2),annotationTempo.duration);
-
- $jIRI("#Ldt-Show-Arrow").css('left',startPourcent+'%');
- //alert(moyennePosition);
- var tempolinkurl = ignoreTimeFragment(window.location.href)+"#t="+(this.annotations[i].begin/1000);
- }
- break;
- }
-
- }
- // si il y en a pas : retractation du volet
- if( annotationTempo == -1){
- if(annotationTempo!=this.annotationOldRead){
- trace("Check : ","pas d'annotation ici ");
- $jIRI('#Ldt-ShowAnnotation').slideUp();
- this.annotationOldRead = annotationTempo;
- }
- }
-
- }
-
-
-
-
+/* UTIL */
+// code from http://stackoverflow.com/questions/822452/strip-html-from-text-javascript
+__IriSP.stripHtml = function(s){
+ return s.replace(/\\&/g, '&').replace(/\\/g, '>').replace(/\\t/g, ' ').replace(/\\n/g, ' ').replace(/'/g, ''').replace(/"/g, '"');
+}
+// conversion de couleur Decimal vers HexaDecimal || 000 si fff
+__IriSP.DEC_HEXA_COLOR = function (dec){
+ var hexa='0123456789ABCDEF',hex='';
+ var tmp;
+ while (dec>15){
+ tmp = dec-(Math.floor(dec/16))*16;
+ hex = hexa.charAt(tmp)+hex;
+ dec = Math.floor(dec/16);
+ }
+ hex = hexa.charAt(dec)+hex;
+ if (hex == "FFCC00"){ hex="";/* by default color of Ldt annotation */ }
+ return(hex);
+}
-/* ----------------------------------------------------------------
- ----------------------------------------------------------------
- CLASSE Annotation */
-/*
+/* CLASS Ligne (annotationType) */
- "begin":"767",
- "end":"785",
- "id":"dp_1_sp_3",
- "media":"kia_closeup",
- "content": {
- "mimetype":"application/x-ldt-structured",
- "title":"mon titre",
- "description":"ma description en <b>gras</b> .",
- "color":"16763904",
- "audio":{"src":"","mimetype":"audio/mp3","href":""}
- },
- "meta":
- {
- "id-ref":"dp_1",
- "dc:creator":"tcavalie",
- "dc:created":"2010-04-04T19:09:44",
- "dc:contributor":"perso",
- "dc:modified":"9/10/2007"
- }
- */
+__IriSP.LDTligne = null;
+__IriSP.Ligne = function (id,title,description,duration){
+ this.id = id;
+ this.title = title;
+ this.description = description;
+ //
+ this.annotations = new Array();
+ this.duration = duration;
+ __IriSP.LDTligne = this;
+ __IriSP.trace("__IriSP.Ligne","CREATE "+__IriSP.LDTligne);
+}
+__IriSP.Ligne.prototype.addAnnotation = function (id,begin,end,media,title,description,color,tags){
+ var myAnnotation = new __IriSP.Annotation(id,begin,end,media,title,description,color,tags,this.duration);
+ this.annotations.push(myAnnotation);
+ //__IriSP.trace("__IriSP.Ligne.prototype.addAnnotation ","add annotation "+title);
+}
+__IriSP.Ligne.prototype.onClickLigneAnnotation = function(id){
+ //changePageUrlOffset(currentPosition);
+ //player.sendEvent('SEEK', this.start);
+ //__IriSP.trace("SEEK",this.start);
+}
+__IriSP.Ligne.prototype.searchLigneAnnotation = function(id){
+ /*for (){
+ }*/
+}
+__IriSP.Ligne.prototype.listAnnotations = function(){
+
+}
+__IriSP.Ligne.prototype.nextAnnotation = function (){
+ var annotationCibleNumber = this.numAnnotation(this.annotationOldRead)+1;
+ var annotationCible = this.annotations[annotationCibleNumber];
+
+ if(annotationCibleNumber ";
- //alert(this.color+" : "+DEC_HEXA_COLOR(this.color));
+}
+__IriSP.Ligne.prototype.numAnnotation = function (annotationCible){
+ for (var i=0; i < this.annotations.length; ++i){
+ if(annotationCible == this.annotations[i]){
+ return i;
+ }
+ }
+}
+__IriSP.Ligne.prototype.checkTime = function(time){
+ var annotationTempo = -1;
+ //__IriSP.trace("__IriSP.Ligne.prototype.checkTimeLigne",time);
+
+ for (var i=0; i < this.annotations.length; ++i){
+ var annotationTempo = this.annotations[i];
+ if (time>annotationTempo.begin/1000 && time
1.4
+ //__IriSP.jQuery("#Ldt-SaTitle").delay(100).text(annotationTempo.title);
+ //__IriSP.jQuery("#Ldt-SaDescription").delay(100).text(annotationTempo.description);
+ //__IriSP.jQuery('#Ldt-ShowAnnotation').delay(100).slideDown();
+ //__IriSP.trace("__IriSP.Ligne.prototype.checkTimeLigne",annotationTempo.title+" "+annotationTempo.description );
+ __IriSP.jQuery("#Ldt-SaTitle").text(annotationTempo.title);
+ __IriSP.jQuery("#Ldt-SaDescription").text(annotationTempo.description);
+
+ __IriSP.jQuery("#Ldt-SaDescription").text(annotationTempo.description);
+ __IriSP.jQuery("#Ldt-SaKeywordText").html("Mots clefs : "+annotationTempo.htmlTags);
+
+ //__IriSP.jQuery('#Ldt-ShowAnnotation').slideDown();
+ var startPourcent = annotationTempo.timeToPourcent((annotationTempo.begin*1+(annotationTempo.end*1-annotationTempo.begin*1)/2),annotationTempo.duration*1);
+ __IriSP.jQuery("#Ldt-Show-Arrow").animate({left:startPourcent+'%'},1000);
+ //alert(startPourcent);
+ var tempolinkurl = __IriSP.ignoreTimeFragment(window.location.href)+"#t="+(this.annotations[i].begin/1000);
+ }
+ break;
+ }
- $toolTipTemplate = "";
-
-
- $jIRI(""+$AnnotationTemplate+"
").appendTo("#Ldt-Annotations");
- $jIRI("#"+this.id).tooltip({ effect: 'slide'});
-
-
- $jIRI("#"+this.id).fadeTo(0,0.3);
- $jIRI("#"+this.id).mouseover(function() {
- $jIRI("#"+this.id).animate({opacity: 0.6}, 5)
- }).mouseout(function(){
- $jIRI("#"+this.id).animate({opacity: 0.3}, 5)
- });
- //trace(" ### ","ADD ANOTATION : "+this.begin+" "+this.end+" "+stripHtml(this.title)+" | "+startPourcent+" | "+endPourcent+" | duration = "+this.duration);
-
- }
-
- function drawTagsAnnotation(){
- KeywordPattern = ' '+' ';
-
- //trace(" !? Tags : ",this.tags);
-
- if (this.tags!=undefined){
- for (var i = 0; i < this.tags.length; ++i){
-
- //this.htmlTags += ' '+MyTags.getTitle(this.tags[i]['id-ref'])+' '+" , ";
- this.htmlTags += ' '+MyTags.getTitle(this.tags[i]['id-ref'])+' '+" , ";
-
- }
+ }
+ // si il y en a pas : retractation du volet
+ if( annotationTempo == -1){
+ if(annotationTempo!=this.annotationOldRead){
+ __IriSP.trace("Check : ","pas d'annotation ici ");
+ __IriSP.jQuery('#Ldt-ShowAnnotation').slideUp();
+ this.annotationOldRead = annotationTempo;
}
}
- function tootTipAnnotation() {
- // 1 chercher le div correspondant
- // 2 y mettre les information
- return this.color + ' ' + this.type + ' apple';
- }
- function onRollOverAnnotation(){
- this.tootTip();
- }
- function timeToPourcent(time,timetotal){
- return (parseInt(Math.round(time/timetotal*100)));
- }
+}
-
+/* CLASS Annotation */
-/* ----------------------------------------------------------------
- ----------------------------------------------------------------
- CLASSE Tags */
-function Tags (object){
+__IriSP.Annotation = function (){
+ var id = null;
+ var begin = null;
+ var end = null;
+ var media = null;
+ var description = null;
+ var title = null;
+ var color = null;
+ var tags = null;
+ __IriSP.trace("annotation ","réussi")
+}
+__IriSP.Annotation = function(id,begin,end,media,title,description,color,tags,duration){
+ this.id = id;
+ this.begin = begin;
+ this.end = end;
+ this.media = media;
+ this.description = description;
+ this.title = title;
+ this.color = color;
+ this.tags = tags;
+ this.htmlTags = "";
+ this.duration = duration;
+ // draw it
+ this.draw();
+ this.drawTags();
+ //
+ __IriSP.trace("Annotation created : ",id);
+}
+__IriSP.Annotation.prototype.draw = function(){
+ //alert (this.duration);
+ var startPourcent = this.timeToPourcent(this.begin,this.duration); // temps du media
+ var endPourcent = this.timeToPourcent(this.end,this.duration)-startPourcent;
+ var titleForDiv = this.title.substr(0,55);
+
+ __IriSP.jQueryAnnotationTemplate = " ";
+ //alert(this.color+" : "+DEC_HEXA_COLOR(this.color));
+
+ __IriSP.jQuerytoolTipTemplate = "";
+
+
+ __IriSP.jQuery(""+__IriSP.jQueryAnnotationTemplate+"
").appendTo("#Ldt-Annotations");
+ // TOOLTIP BUG !
+
+ __IriSP.jQuery("#"+this.id).tooltip({ effect: 'slide'});
+
+
+ __IriSP.jQuery("#"+this.id).fadeTo(0,0.3);
+ __IriSP.jQuery("#"+this.id).mouseover(function() {
+ __IriSP.jQuery("#"+this.id).animate({opacity: 0.6}, 5)
+ }).mouseout(function(){
+ __IriSP.jQuery("#"+this.id).animate({opacity: 0.3}, 5)
+ });
+ __IriSP.trace("__IriSP.Annotation.prototype.draw","ADD ANOTATION : "+this.begin+" "+this.end+" "+__IriSP.stripHtml(this.title)+" | "+startPourcent+" | "+endPourcent+" | duration = "+this.duration);
+
+}
+__IriSP.Annotation.prototype.drawTags = function(){
+ var KeywordPattern = ' '+' ';
+
+ //__IriSP.trace(" !? Tags : ",this.tags);
+
+ if (this.tags!=undefined){
+ for (var i = 0; i < this.tags.length; ++i){
+
+ //this.htmlTags += ' '+MyTags.getTitle(this.tags[i]['id-ref'])+' '+" , ";
+ this.htmlTags += ' '+__IriSP.MyTags.getTitle(this.tags[i]['id-ref'])+' '+" , ";
+
+ }
+ }
+}
+__IriSP.Annotation.prototype.tootTipAnnotation = function() {
+ // 1 chercher le div correspondant
+ // 2 y mettre les information
+ return this.color + ' ' + this.type + ' apple';
+}
+__IriSP.Annotation.prototype.onRollOverAnnotation = function (){
+ this.tootTip();
+}
+__IriSP.Annotation.prototype.timeToPourcent = function(time,timetotal){
+ return (parseInt(Math.round(time/timetotal*100)));
+}
+
+
+/* CLASS Tags */
+
+__IriSP.Tags = function(object){
this.myTags = object;
this.htmlTags = null;
this.weigthMax = 0;
//this.mySegments = new array();
}
-Tags.prototype.addAnnotation = function (annotation){
+__IriSP.Tags.prototype.addAnnotation = function (annotation){
for (var i = 0; i < this.myTags.length; ++i){
this.myTags[i].mySegments = new Array();
if (annotation.tags!=null){
@@ -857,7 +921,7 @@
this.myTags[i].mySegments.push([annotation.begin,annotation.end,annotation.id]);
var weigthTempo = this.myTags[i].mySegments.length
var tempo = this.myTags[i].mySegments[weigthTempo-1];
- trace (" ADD Tags : "," "+this.myTags[i]['meta']['dc:title']+" "+this.myTags[i]['id']+" : "+tempo[0]+" - "+tempo[1]);
+ //__IriSP.trace ("__IriSP.Tags.prototype.addAnnotation "," "+this.myTags[i]['meta']['dc:title']+" "+this.myTags[i]['id']+" : "+tempo[0]+" - "+tempo[1]);
if (this.weigthMax < weigthTempo ){
this.weigthMax = weigthTempo;
@@ -867,7 +931,7 @@
}
}
}
-Tags.prototype.getTitle = function (id){
+__IriSP.Tags.prototype.getTitle = function (id){
for (var i = 0; i < this.myTags.length; ++i){
if(this.myTags[i]['id']==id){
return(this.myTags[i]['meta']['dc:title']);
@@ -875,11 +939,11 @@
}
}
-Tags.prototype.draw = function (){
+__IriSP.Tags.prototype.draw = function (){
- trace("########### TAG DRAW "," WELL START " );
+ __IriSP.trace("__IriSP.Tags.prototype.draw"," !!! WELL START " );
for (var i = 0; i < this.myTags.length; ++i){
- //trace(" ADD Tags : ",this.myTags[i]['id']);
+ __IriSP.trace("__IriSP.Tags.prototype.draw"," ADD Tags : "+this.myTags[i]['id']);
if(this.myTags[i]['id']!=null){
this.htmlTags += ' this.myTags[i].mySegments[j][0]){
@@ -929,28 +996,32 @@
//
// -------------------------------------------------
- leftPourCent = timeToPourcent((timeStartOffsetA*1+(timeStartOffsetB-timeStartOffsetA)/2),MyLdt.duration);
- WidthPourCent = timeToPourcent((timeEndOffsetA*1+(timeEndOffsetB-timeEndOffsetA)/2),MyLdt.duration)-startPourcent;
- $jIRI("#Ldt-Show-Tags").css('left',leftPourCent+'%');
- $jIRI("#Ldt-Show-Tags").css('width',WidthPourCent+'%');
+ leftPourCent = __IriSP.timeToPourcent((timeStartOffsetA*1+(timeStartOffsetB-timeStartOffsetA)/2),__IriSP.MyLdt.duration);
+ WidthPourCent = __IriSP.timeToPourcent((timeEndOffsetA*1+(timeEndOffsetB-timeEndOffsetA)/2),__IriSP.MyLdt.duration)-leftPourCent;
+ //WidthPourCent = timeToPourcent((timeEndOffsetA*1+(timeEndOffsetB-timeEndOffsetA)/2),MyLdt.duration)-startPourcent;
+ __IriSP.jQuery("#Ldt-Show-Tags").css('left',leftPourCent+'%');
+ __IriSP.jQuery("#Ldt-Show-Tags").css('width',WidthPourCent+'%');
// like arrow script
}
+
+/* CLASS TRACE */
-
-/* ----------------------------------------------------------------
- ----------------------------------------------------------------
- Class tracess */
+__IriSP.traceNum=0;
+__IriSP.trace = function(msg,value){
+
+ if(__IriSP.config.gui.debug===true){
+ __IriSP.traceNum += 1;
+ __IriSP.jQuery(""+__IriSP.traceNum+" - "+msg+" : "+value+"
").appendTo("#Ldt-output");
+ }
+
+}
- function Tracer (){
-
- }
- function addTrace(){
-
- }
+
+
\ No newline at end of file