(function(e,d){function c(h){return function(j){var i=h[j];if(i===d){if(typeof h._others==="function"){return h._others(j)}i=h._others}if(i===true){i=j}return i}}function f(j){var h=j.length;convertionObject={};while(h--){if(typeof j[h]!=="string"){continue}convertionObject[j[h]]=true}return convertionObject}function g(t,z,s,i){var l=this,w,h=0,v=false,p=false,j;this.addListener=function q(A){if(!v){s.push(A)}else{y(A)}};function y(A){if(A[1]===0){return}if(A[1]!==d){A[1]--}try{A[0].apply(t,w)}catch(B){e.setTimeout(function(){throw B},0)}}this.whenFinished=function x(A){delete (this.whenFinished);j=A;r()};function r(){if(p&&typeof j==="function"){var A=j;j=d;e.setTimeout(function(){A.call(t)},0)}}function k(){if(v&&h===0){p=true;r()}}function o(){h++}function m(){if(!p){h--;k()}}function n(){for(var A=0;A<s.length;A++){y(s[A])}v=true;k()}function u(){w=[{type:z,wait:o,continuer:m}];for(var A=0;A<i.length;A++){w.push(i[A])}e.setTimeout(n,0)}u()}function b(j,i){var n=this,o=[],m;function l(t){if(t===o.length-1){o.length--}else{var u,s=o.slice(0,t);for(u=t+1;u<o.length;u++){s.push(o[u])}o=s}}this.addListener=function h(t){var s=t[2]&&(m!==d);t.length=2;if(!(s&&t[1]===1)){o.push(t)}if(s){m.addListener(t)}};this.trigger=function k(){var s=o.length;while(s--){if(o[s][1]<=0){l(s)}}m=new g(j,i,o.slice(),o.slice.call(arguments));return m};this.unbind=function q(u){if(u===d){o=[]}else{var s=n.listenerIndexes(u);for(var t=s.length-1;t>=0;t--){if(u===o[s[t]][0]){l(t)}}}};this.resetTriggeredState=function p(){m=d};this.listenerIndexes=function r(u){var s=[];for(var t=0;t<o.length;t++){if(u===o[t][0]){s.push(t)}}return s}}function a(h){if(!(this instanceof a)){throw new Error('Must be called with the "new" keyword.')}var r=this,v={},k=[],l=[];this.addEventListeners=function j(x){for(var w in x){if(x[w]){r.addEventListener(w,x[w])}}};function n(y,w,x){k.push({listener:y,iterations:w,rattrapage:x})}this.addEventListener=function m(w,A,y,z){var x;if(w.indexOf(" ")!==-1){w=w.split(" ")}else{if(w==="*"){n(A,y,z);w=[];for(x in v){w.push(x)}}}if(w instanceof Array){x=w.length;while(x--){r.addEventListener(w[x],A,y,z)}return}if(z===d&&typeof y==="boolean"){z=y;y=d}if(y!==d&&typeof y!=="number"){throw new Error("Event listener's iterations must be undefined or a number")}if(z!==d&&typeof z!=="boolean"){throw new Error("Event listener's rattrapage must be undefined or a boolean")}if(A instanceof Array){if(typeof A[0]==="function"&&((A[1]===d)||((typeof A[1])==="number"))&&((A[2]===d)||((typeof A[2])==="boolean"))&&A.length<=3){if(A[1]===d){A[1]=y}if(A[2]===d){A[2]=z!==false}r.getEvent(w).addListener(A)}else{for(x=0;x<A.length;x++){if(A[x]===d){continue}else{if(!(A[x] instanceof Array||typeof A[x]==="function")){throw new Error("Invalid Event listener format")}}r.addEventListener(w,A[x],y,z)}}}else{if(typeof A!=="function"){throw new Error("Event listener must be a function")}r.addEventListener(w,[A,y,z!==false])}};this.trigger=function i(w){return r.getEvent(w).trigger.apply(h,[].slice.call(arguments,1))};this.unbind=function u(w,x){if(v[w] instanceof b){v[w].unbind(x)}};this.resetTriggeredState=function s(w){if(v[w] instanceof b){v[w].resetTriggeredState();var x=l.length;while(x--){l[x](w)}}};this.onResetTriggeredState=function o(w){l.push(w)};this.getEvent=function q(w){if(v[w]===d){v[w]=new b(h,w);var x=k.length;while(x--){r.addEventListener(w,k[x].listener,k[x].iterations,k[x].rattrapage)}}return v[w]};this.extend=function p(w,x){if(typeof x!=="function"){if(typeof x==="string"){x=x.split(" ")}if(x instanceof Array){x=f(x)}if(typeof x==="object"){x=c(x)}else{x=d}}w.addEventListener("*",function(y){var A=arguments.length,B=x?x(y.type):y.type,z=[B];if(!B){return}if(typeof B!=="string"||B.indexOf(" ")!==-1){throw new Error("nom d'événement invalide")}while(A-->1){z[A]=arguments[A]}y.wait();r.trigger.apply(r,z).whenFinished(y.continuer)});w.onResetTriggeredState(function(y){r.resetTriggeredState(x?x(y):y)})};function t(w){if(h===d){h=r}else{h.addEventListener=r.addEventListener;h.addEventListeners=r.addEventListeners;h.unbind=r.unbind;h.onResetTriggeredState=r.onResetTriggeredState}for(var x=1;x<w.length;x++){r.addEventListeners(w[x])}}t(arguments)}e.EventsManager=e.EventsManager||a}(this));(function(d,c){if(!d.EventsManager){throw new Error("Dépendence non satisfaite : EventsManager")}var a={onChange:"changed",onTrue:"toTrue",onFalse:"toFalse"};function b(f){if(!(this instanceof b)){throw new Error('Must use "new" keyword to create BinaryState instance')}var k=this,m=new EventsManager(this),o=false,g;this.value=(arguments.length===1&&f===c)?c:f===true;function l(){m.trigger(a.onChange,k.value).whenFinished(g);g=c;o=false}this.setTrue=function n(p){k.setValue(true,p)};this.setFalse=function i(p){k.setValue(false,p)};this.toggle=function j(p){k.setValue(!k.value,p)};this.setValue=function h(p,q){p=p==true;if(k.value!==p){m.resetTriggeredState(a.onChange);if(o){m.addEventListener(a.onChange,function(){k[p?"setTrue":"setFalse"](q)},1)}else{o=true;k.value=p;m.resetTriggeredState(a[p?"onFalse":"onTrue"]);g=q;m.trigger(a[p?"onTrue":"onFalse"]).whenFinished(l)}}};this.toString=function e(){return k.value}}d.BinaryState=d.BinaryState||b}(this));(function(l,e,b){(function(E){for(var D in E){if(!E[D]){throw new Error("Dépendence non satisfaite : "+D)}}}({jQuery:!!e,EventsManager:!!l.EventsManager,BinaryState:!!l.BinaryState}));var C="/appftv/webservices/video/getInfosVideo.php?src=cappuccino&video-type=liste&template=ftvi&template-format=vignette&id-externe=",B="/appftv/webservices/video/getInfosVideo.php?src=cappuccino&video-type=simple&template=ftvi&template-format=complet&id-externe=",w="/appftv/webservices/video/lecture.php?id-video-ext=",p={"":"mms://a988.v101995.c10199.e.vm.akamaistream.net/7/988/10199/3f97c7e6/ftvigrp.download.akamai.com/10199/cappuccino/production/publication","france-dom-tom":"mms://videozones.francetv.fr"},x={"":"rtmp://video-rtmp.francetv.fr/ondemand/mp4:cappuccino/publication","france-dom-tom":"rtmp://videozones-rtmp.francetv.fr/ondemand/mp4:cappuccino/publication"},d="http://info.francetelevisions.fr/ref/images/",m="http://info.francetelevisions.fr/?id-video=",s=/^\/geoloc(\/([^\/]*)\/.*)$/,h=40,r=3,j=500,g=false,n=false,t={},u={},c={};function o(al,aE,F){var Q=this,ab,an=0,aA=e([]);function E(){Q.lastRequestError.value=b;Q.objetExists.value=b;Q.objetPublished.value=b;Q.requesting.setTrue()}function T(){Q.lastRequestError.setFalse();Q.reponseRecu.setTrue();Q.objetExists.setValue(aA!==b);if(Q.objetExists.value){Q.objetPublished.setValue(aA.children("statut").text()==="online");aA.children().each(function(){if(this.childNodes.length===1&&this.childNodes[0].nodeType===4){Q[this.nodeName]=e(this).text()}})}}function aD(aF){aA=(aF.length!==0)?aF:b;Q.requesting.setFalse(T)}function S(){Q.requesting.setFalse();Q.lastRequestError.setTrue();if(an++<r){l.setTimeout(am,j)}else{an=r}}function am(){k(Q)}function aw(){ab=new l.EventsManager(Q,F);Q.requesting=new l.BinaryState();Q.reponseRecu=new l.BinaryState();Q.lastRequestError=new l.BinaryState(b);Q.objetExists=new l.BinaryState(b);Q.objetPublished=new l.BinaryState(b);ab.extend(Q.requesting,{toTrue:"requesting",toFalse:"requestFinished"});ab.extend(Q.lastRequestError,{toTrue:"requestError",toFalse:"requestSuccess"});ab.extend(Q.reponseRecu,{toTrue:"reponseRecu"});ab.extend(Q.objetExists,{toTrue:"objetCappuReady",toFalse:"noObjetCappu"});aE=!!aE;c[al]={setRequesting:E,setRequestSuccess:aD,setRequestError:S};am()}this.toString=function K(){return al};this.getRawData=function aC(){return aA?aA.clone():aA};this.exists=function D(){return Q.objetExists.value};this.isPublished=function W(){return Q.objetPublished.value};this.isDirect=function Y(){return aA.find("> type > libelle").text()==="LIEN_EXTERNE"&&Q.duree!=="00:00:00"};this.isDirectFinished=function av(aG){if(!(aG instanceof Date)){throw new Error("La date courrante (synchronisée avec le serveur) doit être fournie en paramètre")}var aI=Q.getDatesDiffusions(),aH,aF;if(aI.length){aH=Q.getDuree().split(":");aF=(aI[aI.length-1]*1)+(aH[0]*3600)+(aH[1]*60)+(aH[2]*1);aG=Math.floor(aG/1000);return aG>=aF}return true};this.isComplet=function aj(){return aE};this.setComplet=function ay(){if(!aE){aE=true;Q.refreshData()}};this.refreshData=function I(){an=r;am()};this.registerPlayCount=function N(){l.ObjetCappu.registerPlayCount(al)};this.getIdExterne=this.getId=function R(){return al};this.getType=function aa(){return aA.children("type").children("libelle").text()};this.getTypeEditorial=function M(){return aA.children("type-editorial").children("libelle").text()};this.getTitreCourt=function O(){return aA.children("titre-public").text()};this.getTitreLong=function af(){return aA.children("accroche").text()};this.getCategories=function H(){return aA.children("categories").children("categorie").map(function(){return{id:e(this).children("id").text(),"nom-public":e(this).children("nom-public").text()}}).get()};this.getCategorie=function G(){return Q.getCategories()[0]};this.getDuree=function U(){return aA.children("duree").text()};this.getChaines=function aB(aF){aF=aF===true;return aA.children("chaines").children("chaine").map(function(){var aG=e(this).children(aF?"id":"libelle").text();return aF?1*aG:aG}).get()};this.getChainesIds=function V(){return Q.getChaines(true)};this.getImages=function ai(){return aA.children("images").children("image").map(function(){return d+e(this).children("url").text()}).get()};this.getDatePublication=function ag(){return aA.children("dates").children("publication").text()};this.getDateDepublication=function Z(){return aA.children("dates").children("depublication").text()};this.getDatesDiffusions=function ah(){return aA.children("dates").children("diffusions").children("diffusion").children("date").map(function(){return e(this).text()}).get()};this.getGeolocalisation=function P(){return aA.children("geolocalisation").text()};this.getRegion=function ac(){return aA.children("region").text()};this.getMotsCles=function ax(){return aA.children("mots-cles").children("mot-cle").map(function(){return e(this).children("libelle").text()}).get()};this.getSources=function L(){return aA.children("sources").children("source").map(function(){return e(this).children("nom").text()}).get()};this.getAuteurs=function at(){return aA.children("auteurs").children("auteur").map(function(){return e(this).children("nom-prenom").text()}).get()};this.getVignette=function ae(){return Q.getImages()[0]};this.getURL=function ao(){return m+al};this.getFichiers=function ap(aF){aF=aF!==false;if(aA.find("> type > libelle").text()==="LIEN_EXTERNE"){aF=false}return aA.children("fichiers").children("fichier").map(function(){var aK,aH,aJ,aG="",aI=e(this).children("chemin").text();if(aF){aH=s.exec(aI);aJ=aH?aH[2]:"";if(e(this).children("extension").text()==="MP4"){aK=x}else{aK=p;aI=aH?aH[1]:aI}aG=aK[aJ]||aK[""]}return{position:e(this).children("position").text(),url:aG+aI+e(this).children("nom").text()}}).get()};this.getUrlFlux=function aq(){return(Q.getFichiers()[0]||{}).url};this.getUrlSmooth=function au(){return(Q.isDirect()&&aA.children("sites").children("site").filter(function(){return !!e(this).children("libelle:contains(URL_SMOOTH)").length}).eq(0).children("url").text())||b};this.getExtensions=function ad(aF){return aA.children("fichiers").children("fichier").map(function(){var aG=e(this).children("extension").text();if(aF===true){aG=aG.toLowerCase()}return aG}).get()};this.getChapitres=function az(){return aA.children("sequences").children("sequence").map(function(){return{position:e(this).children("position").text(),titre:e(this).children("titre").text(),resume:e(this).children("resume").text(),debut:e(this).children("timecode-debut").text(),fin:e(this).children("timecode-fin").text()}}).get()};this.getLiens=function ak(){return aA.children("sites").children("site").map(function(){return{position:e(this).children("position").text(),libelle:e(this).children("libelle").text(),url:e(this).children("url").text()}}).get()};this.getSignaletiqueCSA=function X(){return aA.children("signaletique-csa").text()};this.getResume=function ar(){return aA.children("resume").text()};this.getSousTitres=function J(){return aA.children("sous-titrage").children("fichier-sous-titres").filter(function(){return !!e(this).children("nom:contains(synthe)").length}).map(function(){return"sami:http://cappuccino.francetv.fr/ref/soustitres/"+e(this).children("url").text()}).get()};aw()}function k(D){var E=D.getId();if(t[E]!==b){return}t[E]=D;c[E].setRequesting();q()}function q(){if(g||n){return}var F,E=[],D=false;n={};for(F in t){if(t[F].isComplet()){if(E.length!==0){continue}D=true}n[F]=t[F];E.push(F);delete (t[F]);if(D||E.length>=h){break}}if(!E.length){n=false;return}if(E.length===1&&!E[0]){z(e([]));return}E=(D?B:C)+E.join("+OR+");e.ajax({url:E,dataType:"xml",timeout:15000,success:z,error:f,complete:y})}function z(E){var F,D=e("video",E.documentElement||E);for(F in n){c[F].setRequestSuccess(D.filter(function(){return(e(this).children("id-externe").text()===F)}))}}function f(E,D){for(var F in n){c[F].setRequestError(E,D)}}function y(){n=false;q()}l.ObjetCappu=l.ObjetCappu||{get:function i(H,F,G){if(H instanceof Array){var E,D=[];for(E=0;E<H.length;E++){D.push(l.ObjetCappu.get(H[E],F,G))}return D}if(typeof F==="boolean"){G=F;F=b}else{G=G===true}if(u[H]===b){u[H]=new o(H,G,F)}else{if(F!==b){u[H].addEventListeners(F)}if(G){u[H].setComplet()}}return u[H]},pauseRequests:function v(D){g=D!==false;q()},playRequests:function a(){l.ObjetCappu.pauseRequests(false)},registerPlayCount:function A(D){if(u[D]===b){throw new Error("ObjetCappu non instancié, impossible de décompter une lecture")}e.ajax({url:w+D,dataType:"text",timeout:4000})}}}(this,this.jQuery));
