/**   
 * ÐšÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ð»ÐµÑ€ Ð¿Ð»ÐµÐµÑ€Ð¾Ð²
 */
var PlayerController = function() {

    /**
     * @var ID Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ð³Ð¾ Ð² Ð´Ð°Ð½Ð½Ñ‹Ð¹ Ð¼Ð¾Ð¼ÐµÐ½Ñ‚ Ð¿Ð»ÐµÐµÑ€Ð°
     */
    var activePlayer    = "";
    
    /**
     * Ð—Ð°Ñ‚Ñ‹Ñ‡ÐºÐ¸ Ð´Ð»Ñ? Ð¿Ð»ÐµÐµÑ€Ð¾Ð²
     */
    var playerStubs     = new Array();

    /**
     * Ð’Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ Ñ?Ñ?Ñ‹Ð»ÐºÑƒ Ð½Ð° Ñ„Ð»Ñ?Ñˆ Ð¾Ð±ÑŠÐµÐºÑ‚ Ð¿Ð»ÐµÐµÑ€Ð°
     *
     * @param string|int playerid
     */
    this.getPlayer = function(playerid) {
        var playerName = "player_" + playerid;
        var player = window[playerName] || document[playerName];
        return player;
    }

    /**
     * Ð¡Ð±Ñ€Ð°Ñ?Ñ‹Ð²Ð°ÐµÑ‚ Ñ?Ð¾Ñ?Ñ‚Ð¾Ñ?Ð½Ð¸Ðµ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ð»ÐµÑ€Ð°
     */
    this.resetState = function() {
        if (this.getPlayer(activePlayer)) {
            this.setPlayImage(activePlayer);
            this.hidePlayer(activePlayer);
        }
        activePlayer = "";
        playerStubs  = new Array()
    }

    /**
     * Ð’Ñ‹Ð·Ñ‹Ð²Ð°ÐµÑ‚Ñ?Ñ? Ñ„Ð»Ñ?ÑˆÐ¿Ð»ÐµÐµÑ€Ð¾Ð¼ Ð¿Ð¾ Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ð¸ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ Ð¿Ð»ÐµÐµÑ€Ð°, ÐºÐ¾Ð³Ð´Ð° Ð²Ñ?Ðµ ÐºÐ¾Ð»Ð±Ñ?ÐºÐ¸
     * Ð³Ð°Ñ€Ð°Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð¾ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ñ‹
     *
     * @param string|int playerid
     */
    this.startPlayback = function (playerid) {
        // Ð¡Ñ‚Ð°Ñ€Ñ‚ÑƒÐµÐ¼ Ð¿Ñ€Ð¾Ð¸Ð³Ñ€Ñ‹Ð²Ð°Ð½Ð¸Ðµ
        this.getPlayer(playerid).playHandler();
    }
        
    /**
     * ÐžÑ?Ñ‚Ð°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ‚ Ð»Ð¸Ð±Ð¾ Ñ?Ñ‚Ð°Ñ€Ñ‚ÑƒÐµÑ‚ Ð¿Ñ€Ð¾Ð¸Ð³Ñ€Ñ‹Ð²Ð°Ð½Ð¸Ðµ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ð¾Ð³Ð¾ Ð¿Ð»ÐµÐµÑ€Ð°
     *
     * @param string|int playerid
     * @param string username
     * @param string filename
     * @param string uploads_url
     */
    this.playPause = function(playerid, username, filename, uploads_url) {
		//alert(playerid+'\n'+username+'\n'+filename+'\n'+uploads_url+'\n');
        if (activePlayer == "") {
            this.showPlayer(playerid, username, filename, uploads_url);
            this.setPauseImage(playerid);
            activePlayer = playerid;

        } else if (activePlayer != playerid) {
            
            if (this.getPlayer(activePlayer).isPlayback()) {
                this.getPlayer(activePlayer).pauseHandler(); 
                this.setPlayImage(activePlayer);
            }
            this.hidePlayer(activePlayer);

            this.showPlayer(playerid, username, filename, uploads_url);
            this.setPauseImage(playerid);
            activePlayer = playerid;

        } else if (activePlayer == playerid) {
            if (this.getPlayer(playerid).isPlayback()) {
                this.getPlayer(playerid).pauseHandler();
                this.setPlayImage(playerid);
            } else {
                this.getPlayer(playerid).playHandler();
                this.setPauseImage(playerid);
            }   
        }
    }

    /**
     * ÐžÑ‚Ð¾Ð±Ñ€Ð°Ð¶Ð°ÐµÑ‚ (Ð´ÐµÐ»Ð°ÐµÑ‚ Ð²Ð¸Ð´Ð¸Ð¼Ñ‹Ð¼) Ð±Ð»Ð¾Ðº Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ð¾Ð³Ð¾ Ð¿Ð»ÐµÐµÑ€Ð° Ð½Ð° Ñ?Ñ‚Ñ€Ð°Ð½Ð¸Ñ†Ðµ
     *
     * @param string|int playerid
     * @param string username
     * @param string filename
     * @param string uploads_url
     */
    this.showPlayer = function(playerid, username, filename, uploads_url) {
        playerStubs[playerid] = $("flash_player_" + playerid).innerHTML;
        
        $("flash_player_" + playerid).style.marginLeft = "9px";
        $("flash_player_" + playerid).style.height = "4px";
        $("flash_player_" + playerid).style.marginTop = "6px";
        $("flash_player_" + playerid).style.display = "";
		
		//$("displ_bloc_" + playerid).style.display = "none";
        $("player_line_" + playerid).style.display = "none";

        var flashvars = {
          uploads_url:     uploads_url,
          username:        username,
          filename:        filename,
          playerid:        playerid
        };

        var params = {
          src:                  "player/player.swf?" + Math.floor(Math.random()*1000001),
          quality:              "high",
          pluginspage:          "http://www.macromedia.com/go/getflashplaye",
          align:                "middle",
          play:                 "true",
          loop:                 "true",
          scale:                "showall",
          wmode:                "transparent",
          devicefon:            "false",
          menu:                 "true",
          allowScriptAccess:    "always",
          allowFullScreen:      "false",
          movie:                "player/player.swf?" + Math.floor(Math.random()*1000001),
          salign:               ""
        };

        var attributes = {
          id:   "player_" + playerid,
          name: "player_" + playerid
        };

        swfobject.embedSWF("player/player.swf?" + Math.floor(Math.random()*1000001), "player_" + playerid, "160", "6", "9.0.0", "./expressInstall.swf", flashvars, params, attributes);
        swfobject.createCSS("#player_" + playerid, "outline: none"); 
    }

    /**
     * ÐŸÑ€Ñ?Ñ‡ÐµÑ‚ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ð¹ Ð¿Ð»ÐµÐµÑ€ Ð¸ Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ Ð·Ð°Ð³Ð»ÑƒÑˆÐºÑƒ Ð½Ð° ÐµÐ³Ð¾ Ð¼ÐµÑ?Ñ‚Ð¾. 
     *
     * @param string|int playerid
     */
    this.hidePlayer = function (playerid) {
        $("flash_player_" + playerid).style.display = "none";
        $("flash_player_" + playerid).innerHTML = playerStubs[playerid];
		
		//$("displ_bloc_" + playerid).style.display = "";
        //$("displ_bloc_" + playerid).innerHTML = "";
		
        $("player_line_" + playerid).style.display = "";
    }

    /**
     * ÐœÐµÐ½Ñ?ÐµÑ‚ ÐºÐ°Ñ€Ñ‚Ð¸Ð½ÐºÑƒ ÐºÐ½Ð¾Ð¿ÐºÐ¸ Ð½Ð° "pause"
     *
     * @param string|int playerid
     */
    this.setPauseImage = function (playerid) {
        $('player_button_' + playerid).src = "player/pause.gif";
    }

    /**
     * ÐœÐµÐ½Ñ?ÐµÑ‚ ÐºÐ°Ñ€Ñ‚Ð¸Ð½ÐºÑƒ ÐºÐ½Ð¾Ð¿ÐºÐ¸ Ð½Ð° "play"
     *
     * @param string|int playerid
     */
    this.setPlayImage = function (playerid) {
        $('player_button_' + playerid).src = "player/play.gif";
    }
}

/**
 * Ð¡Ð¾Ð·Ð´Ð°ÐµÐ¼ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ñ‹Ð¹ Ð¾Ð±ÑŠÐµÐºÑ‚ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ð»ÐµÑ€Ð° Ð¿Ð»ÐµÐµÑ€Ð¾Ð²
 */
var players = new PlayerController();
