
PlaylistEditor=function(playlistID,trackCount,userType,version){this.init=function(){var h=trackCount*24+95+60;var peso=new SWFObject("/PlaylistEditorv2.swf?v="+version,"flpleditor","602",h,"9","#ffffff");peso.addParam('scale','noscale');peso.addParam('salign','t');peso.addParam('wmode','opaque');peso.addVariable('id',playlistID);peso.addVariable('userType',userType);peso.addVariable('_winId',_winId);peso.write("pleditor");}
this.init();}
var caddyID=null;var caddyFormat=null;var caddyBitrate=null;DownloadListEditor=function(_caddyID,trackCount,userType,version,format,bitrate){this.init=function(){caddyID=_caddyID;caddyFormat=format;caddyBitrate=bitrate;var h=trackCount*24+95+60;var peso=new SWFObject("/DownloadlistEditorv2.swf?v="+version,"flpleditor","602",h,"9","#ffffff");peso.addParam('scale','noscale');peso.addParam('salign','t');peso.addParam('wmode','opaque');peso.addVariable('id',caddyID);peso.addVariable('playlistOrigin','caddy');peso.addVariable('userType',userType);peso.addVariable('_winId',_winId);peso.write("pleditor");}
this.init();}
downloadPlaylistTrack=function(cb,id){if(_alcManager){_alcManager.initPanel(cb,'dltrk','','');}}
downloadPlaylist=function(id){if(_alcManager){_alcManager.initPanel(id,'dlpl','','');}}
downloadCaddyTrack=function(cb){if(_alcManager){_alcManager.initPanel(caddyID+'~'+caddyFormat+'_'+caddyBitrate+'~'+cb,'dlcadtrk','208','')}}
downloadCaddyTracks=function(selectedTracks){if(_alcManager){if(selectedTracks==''){_alcManager.initPanel(caddyID+'~'+caddyFormat+'_'+caddyBitrate,'dlcad','208','')}
else{_alcManager.initPanel(caddyID+'~'+caddyFormat+'_'+caddyBitrate+'@'+selectedTracks,'dlcad','208','')}}}
downloadFixed=function(){try{if(parent!=self){parent.dlfixed=1;}}catch(e){};}
playlistOver=function(o){var c=o.className;var cNew=c;if(c.split(" ")[0]=="t2")
cNew="t2 tover";else
cNew="t1 tover";o.className=cNew;var im=gel(o.id+'_imgdel');im.src=im.src.split('_del.gif').join('_del_over.gif');}
playlistOut=function(o){var c=o.className;var cNew=c;if(c.split(" ")[0]=="t2")
cNew="t2";else
cNew="t1";if(o.id==this.playingTrackID)cNew+=" tplaying";o.className=cNew;var im=gel(o.id+'_imgdel');im.src=im.src.split('_del_over.gif').join('_del.gif');}
AlbumTrack=function(){}
AlbumTrack.prototype={barCode:"",features:0,timing:0,sel:0,dsbl:0,price:0}
AlbumInfo=function(){}
AlbumInfo.prototype={barCode:"",features:0,streamTiming:0,downloadTiming:0,price:0}
PlaylistInfo=function(){}
PlaylistInfo.prototype={id:"",features:0,streamTiming:0,downloadTiming:0}
AlbumManager=function(){this.albumInfo=new AlbumInfo();this.playlistInfo=new PlaylistInfo();this.currentTracks=[];this.selectedTracks={};this.aj=new ajax();this.playingTrackID=null;this.playingBarCode=null;this.fader=new Fader();var me=this;this.aj.setResultHandler(function(data){me.onDiscData(data)});}
AlbumManager.prototype={albumType:'alb',navdcur:0,navdtot:0,navdtotdisc:0,currentDisc:0,selCount:0,currentSelCount:0,disabledCount:0,downloadMode:null,initNavDiscs:function(c,t,d,currentDisc){this.navdcur=Number(c);this.navdtot=Number(t);this.navdtotdisc=Number(d);this.currentDisc=Number(currentDisc);},navDiscs:function(w){var sl;if(this.navdcur<=0&&w<0)this.navdcur=this.navdtot-1;else if(this.navdcur==(this.navdtot-1)&&w>0)this.navdcur=0;else this.navdcur+=w;for(var n=0;n<this.navdtot;n++){if(sl=gel('discnav_'+n)){if(n==this.navdcur)sl.style.display='inline';else sl.style.display='none';}}
return false;},setDownloadMode:function(downloadMode){this.downloadMode=downloadMode;},refreshCurrentDiscInfo:function(){var o;for(var d=1;d<=this.navdtotdisc;d++){if(o=gel('discnavd_'+d)){if(d==this.currentDisc)
o.className='tldiscsel';else
o.className='';}}
this.refreshAllAlt(false);},refreshAllAlt:function(allSel){var selectAllTip="";if(allSel)selectAllTip+="Désélectionner ";else selectAllTip+="Sélectionner ";selectAllTip+="tous les titres";if(this.navdtotdisc>1){selectAllTip+=" du CD "+this.currentDisc;}
if(o=gel('tchkall'))
o.title=selectAllTip;if(o=gel('tchkallim'))
o.alt=selectAllTip;},trackOver:function(o){var c=o.className;var cNew=c;if(c.split(" ")[0]=="t2")
cNew="t2 tover";else
cNew="t1 tover";if(/tselect/.test(c))cNew+=" tselect";if(o.id==this.playingTrackID)cNew+=" tplaying";o.className=cNew;},trackOut:function(o){var c=o.className;var cNew=c;if(c.split(" ")[0]=="t2")
cNew="t2";else
cNew="t1";if(/tselect/.test(c))cNew+=" tselect";if(o.id==this.playingTrackID)cNew+=" tplaying";o.className=cNew;},focusBarcode:function(focusBarcode,playState){this.playingTrackID=null;var trackBarcode,oTrack,trackDomID,tDom,classNames,playingClassNames,offClassNames;var dump=[];for(var i=0;i<this.currentTracks.length;i++){oTrack=this.currentTracks[i];trackDomID='tr-'+i+'-'+oTrack.barCode;if(tDom=gel(trackDomID)){classNames=tDom.className.split(/\s+/);offClassNames=[];playingClassNames=[];for(var c=0;c<classNames.length;c++){if(classNames[c]!='tplaying'){offClassNames.push(classNames[c]);playingClassNames.push(classNames[c]);}}
playingClassNames.push('tplaying');if(playState==2&&oTrack.barCode==focusBarcode){this.playingTrackID=trackDomID;this.playingBarCode=oTrack.barCode;tDom.className=playingClassNames.join(' ');}
else{tDom.className=offClassNames.join(' ');}
dump.push(tDom.id+': '+tDom.className);}}},albClickCheck:function(){var o,i,ochk;var totalCount=this.currentTracks.length;var selStack=[];var unselStack=[];var allSel=false;this.currentSelCount=0;for(i=0;i<totalCount;i++){if(o=gel('trchk-'+i)){if(o.checked){selStack.push(o);this.currentSelCount++;}
else{unselStack.push(o);}}}
if(this.currentSelCount==totalCount-this.disabledCount){allSel=false;for(i=0;i<selStack.length;i++)
selStack[i].click();}
else{allSel=true;for(i=0;i<unselStack.length;i++)
unselStack[i].click();}
return false;},trackClick:function(o,ev){if(window.event)srcEle=window.event.srcElement;else if(ev)srcEle=ev.target;if(srcEle&&srcEle.tagName){var t=srcEle.tagName.toUpperCase();if(t=='DIV'||t=='TD'||t=='TR'){var ochk;var idx=o.id.split("-")[1];if(ochk=gel('trchk-'+idx)){ochk.click();}}}
return true;},trackClickCheck:function(o){var ot;var idx=o.id.split("-")[1];try{ot=o.parentNode.parentNode.parentNode;}catch(e){};if(o.checked){this.addSelectedTrack(idx);o.title="Désélectionner ce titre";if(ot)ot.className=ot.className+' tselect';}
else{this.delSelectedTrack(idx);o.title="Sélectionner ce titre";if(ot)ot.className=ot.className.split('tselect').join(' ');}
if(ot)ot.title=o.title;},addSelectedTrack:function(idx){var checkedTrack=this.currentTracks[idx];var barCode=checkedTrack.barCode;this.selectedTracks[barCode]=checkedTrack;this.currentSelCount++;this.refreshSelection();this.refreshAllCheck();},delSelectedTrack:function(idx){var checkedTrack=this.currentTracks[idx];var barCode=checkedTrack.barCode;delete this.selectedTracks[barCode];this.currentSelCount--;this.refreshSelection();this.refreshAllCheck();},refreshSelection:function(){var o,ochk;this.selCount=0;var streamTotalTiming=0;var downloadTotalTiming=0;var downloadTotalPrice=0;for(var barCode in this.selectedTracks){var f=this.selectedTracks[barCode].features;if(this.testStream(f))
streamTotalTiming+=this.selectedTracks[barCode].timing;if(this.testDownload(f))
downloadTotalTiming+=this.selectedTracks[barCode].timing;downloadTotalPrice+=this.selectedTracks[barCode].price;this.selCount++;}
if(this.selCount==0){streamTotalTiming=this.albumInfo.streamTiming;downloadTotalTiming=this.albumInfo.downloadTiming;downloadTotalPrice=this.albumInfo.price;}
if(this.selCount==this.currentTracks.length-this.disabledCount&&downloadTotalPrice>this.albumInfo.price&&this.albumInfo.price>0){downloadTotalPrice=this.albumInfo.price;}
this.showSelectionInfo(this.selCount,streamTotalTiming,downloadTotalTiming,downloadTotalPrice);},refreshAllCheck:function(){if(this.currentSelCount==this.currentTracks.length-this.disabledCount){if(ochk=gel('tchkall'))ochk.checked=true;this.refreshAllAlt(true);}
else{if(ochk=gel('tchkall'))ochk.checked=false;this.refreshAllAlt(false);}},showSelectionInfo:function(selCount,sTiming,dTiming,dPrice){var o,stxt;var allSel=false;var zoneTip,numTip,itemTip="la sélection";if(selCount==0||(this.navdtotdisc<=1&&selCount==this.currentTracks.length-this.disabledCount)){allSel=true;itemTip="tous les titres";}
if(selCount>0){numTip=" ("+selCount+" titre"+(selCount>1?"s":"")+")";}
else{numTip="";}
var fades=[];if(o=gel('footstream')){zoneTip="Ecouter "+itemTip+numTip;if(sTiming==0){o.style.display='none';}
else{fades.push('footstream');o.style.display='block';if(o=gel('footstreamtext')){stxt="ECOUTER ";if(allSel)stxt+="TOUS LES TITRES";else if(selCount==1)stxt+="1 TITRE";else stxt+=selCount+" TITRES";o.innerHTML=stxt;o.title=zoneTip;}
if(o=gel('footstreamtiming')){o.innerHTML="("+this.formatTiming(sTiming)+")";o.title=zoneTip;}
if(o=gel('footstreamimg')){o.title=zoneTip;}}}
if(o=gel('footpl')){zoneTip="Ajouter "+itemTip+" à une playlist ou à mes favoris"+numTip;if(sTiming==0){o.style.display='none';}
else{fades.push('footpl');o.style.display='block';if(o=gel('footpltext')){o.innerHTML=this.formatTiming(sTiming);o.title=zoneTip;}
if(o=gel('footplimg')){o.title=zoneTip;}}}
if(o=gel('footdl')){if(this.downloadMode=='Buy'){zoneTip="Acheter "+itemTip+numTip;}
else{zoneTip="Télécharger "+itemTip+numTip;}
if(dTiming==0){o.style.display='none';}
else{fades.push('footdl');o.style.display='block';if(o=gel('footdltext')){if(this.downloadMode=='Buy'){if(dPrice<=0){o.innerHTML='';}
else{o.innerHTML=this.formatPrice(dPrice);}}
else{o.innerHTML=this.formatSize(dTiming);}
o.title=zoneTip;}
if(o=gel('footdlimg')){o.title=zoneTip;}}}
this.fader.setTargets(fades);this.fader.fade(100,25,400,1);},testDownload:function(f){return((f&1)!=0||(f&32768)!=0);},testStream:function(f){return((f&512)!=0);},formatTiming:function(sec){if(sec<=0)
return sec;else if(sec<60)
return sec+"s";else if(sec<3600){m=Math.floor(sec/60);s=sec-60*m;return m+":"+(s<10?"0":"")+s;}
else{h=Math.floor(sec/3600);m=Math.floor((sec-3600*h)/60);return h+"h"+(m<10?"0":"")+m+"mn";}},formatSize:function(sec){if(sec<=0)return sec;var kbytes=sec*23.7;var mbytes=kbytes/1024;mbytes=Math.round(mbytes);return mbytes+" Mo";},formatPrice:function(cents){var rcents=cents%100;var eur=(cents-rcents)/100;if(rcents<10){rcents='0'+rcents;}
return eur+','+rcents+'&nbsp;&euro;';},initAlbum:function(_albInfo,_tracks){this.albumInfo.barCode=_albInfo.barCode;this.albumInfo.features=Number(_albInfo.features);this.albumInfo.streamTiming=Number(_albInfo.stiming);this.albumInfo.downloadTiming=Number(_albInfo.dtiming);this.albumInfo.price=Number(_albInfo.price);this.initTracks(_tracks);},initPlaylist:function(_playlistInfo,_tracks){this.albumType='playlist';this.playlistInfo.id=Number(_playlistInfo.id);this.initTracks(_tracks);},initTracks:function(_tracks){this.currentTracks=[];this.disabledCount=0;this.currentSelCount=0;for(var i=0;i<_tracks.length;i++){var t=_tracks[i];var oTrack=new AlbumTrack();oTrack.barCode=t.barCode;oTrack.features=Number(t.features);oTrack.timing=Number(t.timing);oTrack.price=Number(t.price);if(this.selectedTracks[t.barCode])
oTrack.sel=1;else
oTrack.sel=Number(t.sel);oTrack.dsbl=Number(t.dsbl);if(oTrack.dsbl==1){this.disabledCount++;}
else if(oTrack.sel==1){this.currentSelCount++;var ochk=gel('trchk-'+i);if(ochk)ochk.checked=true;var otrk=gel('tr-'+i+'-'+t.barCode);if(otrk)otrk.className=otrk.className+" tselect";}
this.currentTracks.push(oTrack);}
var ochkall;if(this.currentSelCount==this.currentTracks.length-this.disabledCount){if(ochkall=gel('tchkall')){ochkall.checked=true;}
this.refreshAllAlt(true);}},onDiscData:function(data){this.showLoading(false);if(data!=""){var splitPos=data.indexOf("\n");var tracksHtml=data.substr(splitPos+1);this.renderHtmlTracks(tracksHtml);var tracksJs=data.substr(0,splitPos);var _tracks=tracksJs.split("#");var tObj;for(var i=0;i<_tracks.length;i++){eval("tObj="+_tracks[i]);_tracks[i]=tObj;}
this.refreshCurrentDiscInfo();this.initTracks(_tracks);if(this.playingBarCode!=null){this.focusBarcode(this.playingBarCode,2);}}},renderHtmlTracks:function(tracksHtml){var tlholder,ochkall;if(tlholder=gel('disctl')){tlholder.innerHTML=tracksHtml;if(ochkall=gel('tchkall')){ochkall.checked=false;}}},changeDisc:function(discIndex,discBarcode){if(discIndex!=this.currentDisc){this.aj.abort();this.showLoading(true);this.aj.call("albtracks.ajax.php?cb="+discBarcode);this.currentDisc=discIndex;}
return false;},showLoading:function(isLoading){var links,tl,i,cursorType;if(tl=gel('_tl')){links=tl.getElementsByTagName('A');}
if(isLoading){cursorType='wait';document.body.style.cursor=cursorType;}
else{cursorType='pointer';document.body.style.cursor='default';}
for(i=0;i<links.length;i++)
links.item(i).style.cursor=cursorType;},processSelection:function(actionType,params){var selType='trks';if(this.albumType=='playlist'){var refTracks=this.selectedTracks;var useID=false;if(this.selCount==0||(this.navdtotdisc<=1&&this.selCount==this.currentTracks.length)){selType='playlist';if(actionType=='playlist'){refTracks=[];for(var t=0;t<this.currentTracks.length;t++){refTracks[this.currentTracks[t]['barCode']]=1;}}
else{useID=true;}}
if(!useID){var selectedBarcodes=[];for(var barCode in refTracks){selectedBarcodes.push(barCode);}}
switch(actionType){case'stream':if(selType=='playlist')
streamPlaylist(this.playlistInfo['id']);else
streamTrks(this.albumInfo['barCode']+"-"+selectedBarcodes.join("x"));break;case'playlist':_mylibMngr.openAddTrack(selectedBarcodes.join("x"));break;case'download':if(selType=='playlist')
_alcManager.initPanel(this.playlistInfo['id'],'dlpl','','');else
_alcManager.initPanel(selectedBarcodes.join("x"),'dltrks','','');break;}}
else{if(this.selCount==0||(this.navdtotdisc<=1&&this.selCount==this.currentTracks.length)){selType='alb';}
else{var selectedBarcodes=[];for(var barCode in this.selectedTracks){if(selType=='playlist'){selectedBarcodes.push(barCode);}
else{selectedBarcodes.push(barCode.substr(14));}}
selectedBarcodes.sort();}
switch(actionType){case'stream':if(selType=='alb')
streamCD(this.albumInfo['barCode']);else
streamTrks(this.albumInfo['barCode']+"-"+selectedBarcodes.join("x"));break;case'playlist':if(selType=='alb')
_mylibMngr.openAddTrack(this.albumInfo['barCode']);else
_mylibMngr.openAddTrack(this.albumInfo['barCode']+"-"+selectedBarcodes.join("x"));break;case'download':if(selType=='alb')
_alcManager.initPanel(this.albumInfo['barCode'],'dlalb','','');else
_alcManager.initPanel(this.albumInfo['barCode']+"-"+selectedBarcodes.join("x"),'dltrks','','');break;}}
return false;},getAzSimilar:function(barCode){var az_aj=new ajax();az_aj.call('amazon.ajax.php?cb='+barCode);return false;}}
var _albManager=new AlbumManager();