var  e = window.event;
var zikEnCours;
var savPosUP=true;
var savPosDown=true;
var player2teuf;
var popupPlayer = false;
var s2tSound = false;

var s2tWarePlayer = {
    htmlElement : {
	    body		: 'body',
        playSound	: '.playSound',
        playerListAdd	: '.addToPlayerList',
        playerToggle 	: '#s2tPlayerToggle',
        playerUi 	: '.player-ui',
        playlistUi 	: '.playlist-ui',
        playlistTxt : '.playlistTxt',
        playerControl : '.player-control'
    },
    me          : this,
    playerUrl   : '/player2teuf.php',
    open        : false,
    baseUrl     : '/templates/rhuk_milkyway/s2tWarePlayer/',
    comUrl      : '/index2.php?option=com_s2tWarePlayer&task=',
    volume      : false,
    loaded      : false,
    /** visitor **/
    playList    : false,
    tempSound   : false,
    current     : false,

    constructHtml: function () {
        var playerToggleBtnSrc = '<a href="javascript:void(0)" id="s2tPlayerToggle"><img src="/templates/rhuk_milkyway/images/lecteur/logoss2t.png" alt="player2teuf" class="" /></a>';
        $j('body').append(playerToggleBtnSrc);
    },
    init : function() {
        s2tLog('-- Init player --');
        this.initBinds();
        if( playerUi.init() && playlistUi.init()) {
            this.loaded = true;
        }
        if(!this.open || !this.loaded) {
            this.openInterface();
        }
        this.loaded = true;
    },
    getSound: function(id, isPlaylist, load) {
        s2tLog('-- get sound --'); 
        id = id || 0;
        load = load || false;
        var me = this
        isPlaylist = isPlaylist || false;
        var url = s2tWarePlayer.comUrl +
                  'getSound&soundId=' + id + 
                  '&isPlaylist=' + isPlaylist       

        jQuery.ajax({
            type: "GET",
            url: url,
            success: function(element){
            var playlistJson = jQuery.parseJSON(element);
        
            s2tLog(playlistJson);
            if(popupPlayer) {
                s2tLog(playlistJson); 
                me.setPlaylist(playlistJson);
            }else{
                me.openPopup();
            }
            //playerUi.switchPlayPause(true)
        }
        });
        
    },
    setPlaylist: function (playList) {
       s2tLog('-- create playlist --');
       me = this;
        
       me.playList = playList; 
       popupPlayer.s2tWarePlayer.createPlaylist(playList);
       s2tLog(popupPlayer.s2tSound);
      
    },
    loadSound: function (idlist) {
        
        if(typeof(popupPlayer.current)!="undefined") {
            var cu = popupPlayer.current;
            if(cu){
                cu.isPlaying = 0;
                cu.unload(); 
            }
        }
               popupPlayer.current = popupPlayer.s2tSound[idlist]; 
        
        this.playSound();
    },
    playSound: function () {
        var cu = popupPlayer.current
        if (cu.bytesLoaded/cu.bytesTotal) {
           $j("#player_load_bar").css({width:"100%"}) 
        }
        $j('#player_track').html(cu.autorUsername + " - " + cu.title)
        popupPlayer.soundManager.stopAll();
        playerUi.switchPlayPause(1);
        playerUi.setVolumeFromCookie();
        cu.isPlaying = 1;

        jQuery.ajax({
            type: "GET",
            url: s2tWarePlayer.comUrl + 'playSound&idPos=' + cu.idPosition,
            success: function (rets) {
                    playlistUi.refresh();
            } 
        }); 

        cu.play();
    },
    deleteSound: function (id) {
        var sound = popupPlayer.s2tSound;
        var idPos = sound[id].idPosition;
        jQuery.ajax({
            type: "GET",
            url: s2tWarePlayer.comUrl + 'deleteSound&idPos=' + idPos,
            success: function (rets) {
                    sound[id].destruct(); 
                    delete sound[id];
                    s2tLog('--- delete sound:' + id + ' ---'); 
                    sound.splice(id,1);
                    s2tLog(popupPlayer.s2tSound);
                    playlistUi.refresh();
            } 
        }); 
    },
    destruct: function() {
        s2tLog("-- Destruct player --")
        this.closeInterface();
        s2tWare.hide();
        popupPlayer = false;
        s2tLog(popupPlayer); 
        this.open = false;
        this.volume = 50;
    },
    addToPlaylist: function (id) {
        var reg=new RegExp("[atp_]+", "g");
        var id= id.split(reg);
        jQuery.ajax({
            type: "GET",
            url: s2tWarePlayer.comUrl + 'addToPlaylist&id=' + id[1],
            success: function (json) {
                   if( popupPlayer && playlistUi.loaded) {
                          var playlistJson = jQuery.parseJSON(json);
                          popupPlayer.s2tWarePlayer.createPlaylist(playlistJson,true);
                    }
            } 
        });
    },
    loadFullPlaylist: function (id) {
        var me = this;
        var reg=new RegExp("[row_playlist_]+", "g");
        var id= id.split(reg);
        s2tLog(id);
        jQuery.ajax({
            type: "GET",
            url: s2tWarePlayer.comUrl + 'playFullPlaylist&id=' + id[1],
            success: function (rep){   
                    if(rep == "ok") {
                         me.updateSound();
                    }else{
                        alert('La playlist que tu tentes de charger est vide.');
                    }
                
                } 
        });
    },
    scrollize: function (el) {
            var tpl = $j('<div class="scrollbar"><div class="track"><div class="thumb"><div class="end"></div></div></div></div><div class="viewport"><div class="overview"></div></div>')
            var _html = el.html(); 
            tpl.find('.overview').html(_html); 
            el.html(tpl); 
            el.tinyscrollbar();
    }, 
    playPause: function (){
        var me = this
        if(popupPlayer.current != false) {
        var cu = popupPlayer.current;
            if(cu.paused){
                playerUi.switchPlayPause(true)
                //this.playSound(popupPlayer.current.idPosition);
                cu.play();
                s2tLog("Song is playing");
            }else{
                playerUi.switchPlayPause(false);
                cu.pause();
                s2tLog("Song is paused");
            }
        } else {
            this.loadSound(0);
        }
    },
    stop: function() {
        s2tLog ("Song is stopped...");

        playerUi.switchPlayPause(false);
        var cu = popupPlayer.current;
        if(cu) {
            s2tLog(cu);
            jQuery.ajax({
                type: "GET",
                url: s2tWarePlayer.comUrl + 'stopSound&idPos=' + cu.idPosition,
                success: function (rep){  
                        if(rep == "ok") {
                            cu.isPlaying = 0;
                            playlistUi.refresh();
                        } else {
                            alert('noOk');
                        }
                    } 
            });
        }
        popupPlayer.current = false;
        playerUi.resetInterface();
        popupPlayer.soundManager.stopAll(); 
    },
    next : function () {
        var tot = popupPlayer.s2tSound.length;
        var pos = popupPlayer.current.idPosition;
        if(tot-1 != pos) {
            this.loadSound(popupPlayer.current.idPosition + 1); 
        }else{
            this.loadSound(0);
        }
    },
    previous : function () {
        var tot = popupPlayer.s2tSound.length;
        var pos = popupPlayer.current.idPosition;
        if(pos != 0) {
            this.loadSound(popupPlayer.current.idPosition - 1); 
        }else{
            this.loadSound(tot-1);
        }


    },
    initBinds : function () {
        var me = this;
        _html = me.htmlElement;

        $j(_html.body).keydown(function(event){
            if(event.ctrlKey && event.shiftKey) {
                var key = event.keyCode
                switch(key){
                    case 37:
                        me.previous(); 
                        break;
                    case 39:
                        me.next(); 
                        break;
                    case 38:
                        me.playPause(); 
                        break;
                    case 40:
                        me.stop() 
                        break;
                    default:
                        return;
                } 
            }	
        });
       
   },
   openPopup : function () {
            if( popupPlayer =  window.open (this.playerUrl,'', 'height=150, width=150'))
            { return true; }
            else { return false; };
   },
   setVolume: function () {
        popupPlayer.positionXgauche = e.pageX - $j(this).offset().left;
        popupPlayer.volumeChange();
   },
   constructSup: function () {
        count = popupPlayer.countPlaylistItem ();
        for( var i =0; i < count ; i++) {
            $j('#jplayer_playlist_item_'+i).attr("href","javascript:change_playlist('"+i+"');");
        }
    },
    openInterface: function () {
        var me = this;
       
        playerUi.isOnMove = true;
        playlistUi.isOnMove = true;
        $j('.player-ui').animate({left:0},false,false,function() {
                 $j('.player-control').show().animate({opacity: 100},false,false,function(){
                    playerUi.isOnMove = false;
                     $j('.player-control').show();
                });
        });
        $j('.playlist-ui').animate({right:0},false,false,function() {
                 $j('.playlistTxt').show().animate({opacity: 100},false,false, function() {
                    playlistUi.isOnMove = false; 
                    $j('.playlistTxt').show();
                }); 
        });
        s2tWarePlayer.open = true;
   },
   closeInterface: function () {
	 var me=this
     playerUi.isOnMove = true;
     playlistUi.isOnMove = true;
     $j('.player-control').animate({opacity: 0},false,false,function() {
                 $j('.player-ui').animate({left:256},false,false,function(){
                    playerUi.isOnMove = false;
                     $j('.player-control').hide();
                });
     });
     $j('.playlistTxt').animate({opacity: 0},false,false,function() {
                 $j('.playlist-ui').animate({right:245},false,false,function() {
                    playlistUi.isOnMove = false;
                     $j('.playlistTxt').hide();
                });
     });


     s2tWarePlayer.open = false;
    },

    popupHandle: function () {
        me = this;
        if(!s2tSound) {
            s2tSound = popupPlayer.s2tSound;
        }
        if(!playlistUi.loaded) {
            playlistUi.refresh();
            playerUi.update();
        } 
        if(!me.loaded) {
            me.init();
        }
    }
};



