﻿function PlayerVideo(_playerEmbedId) {
    this.playerEmbedId = _playerEmbedId;
    this.playerObject = null;
    this.produtosPlaylist = null;
    this.moveToProduto = null;

    this.loopProdutosShow = null;

    // Inicializa a Playlist
    this.Initialize = function(_produtosPlaylist) {
        /*if (navigator.appName.indexOf("Microsoft") != -1) {
        // IE
        this.playerObject = document[this.playerEmbedId];
        } else {
        this.playerObject = document[this.playerEmbedId];
        }*/

        if (navigator.appName.indexOf("Microsoft") != -1) {
            // return window[this.playerEmbedId];
            this.playerObject = document[this.playerEmbedId];
            //mozilla
        } else if (document[this.playerEmbedId]) {
            this.playerObject = document[this.playerEmbedId];
            // other
        } else {
            this.playerObject = document.getElementById(this.playerEmbedId);
        }

        // Use as funcoes abaixo para registrar os listeners dos eventos do player
        // Passe o nome da funcao JS que devera ser chamada para cada evento
        //this.playerObject.createStartListener("onStart1");
        this.playerObject.createPlayListener("OfertaMediaPlayer.onVideoResume()");
        this.playerObject.createPauseListener("OfertaMediaPlayer.onVideoPause()");
        this.playerObject.createStopListener("OfertaMediaPlayer.onVideoStop()");

        // Indica a Playlist de Produtos
        this.produtosPlaylist = _produtosPlaylist;

        // Inicia o Controle de Loop para o Time Code
        OfertaMediaPlayer.TimeCodeLoop();
    }
    this.SetProdutoToMove = function(_index) {
        this.moveToProduto = _index;
    }

    this.ShowStatusPlayer = function() {
        return this.playerObject.getPlayerState();
    }


    // Açoes do Player
    this.StartPlay = function(_index) {
        if (_index != null) {
            // Verifica se o Item é um Produto com TimeCode
            if (this.produtosPlaylist[_index] != "") {
                clearTimeout(this.loopProdutosShow);
                // Esconde o Div com as Fotos
                $('#ctl00_content_playerFotoID').attr('style', 'display:none; position:absolute;');
                // Esconde o Player
                $('#ctl00_content_playerVideoId').attr('style', 'visibility:visible; position:absolute;');
                // Comeca a Tocar na Posicao Indicada
                this.playerObject.setTimeToSeek(Number(this.produtosPlaylist[_index])+4);
                this.ResumePlay();
            } else {
                clearTimeout(this.loopProdutosShow);
                // É um Produto Foto
                // Esconde o Player
                $('#ctl00_content_playerVideoId').attr('style', 'visibility:hidden; position:absolute;');
                // Mostra o Div com as Fotos
                $('#ctl00_content_playerFotoID').attr('style', 'display:block; position:absolute;');
                // Indica quais os Produtos devem ficar ativos
                OfertaMediaPlayer.GetSlideShowPlaylist(false);
                // Indica que agora é um Media Tipo 2
                OfertaMediaPlayer.SetMediaType(2);
                // Inicia o Play no Item indicado
                OfertaMediaPlayer.SetItemToPlay(_index);
            }
        }
    }
    // Executa por Acao JS
    this.PausePlay = function() {
        clearTimeout(this.loopProdutosShow);
        this.playerObject.doPause();
    }
    // Executa no Botao Pause do Player
    this.onPausePlay = function() {
        clearTimeout(this.loopProdutosShow);
    }
    
    // Executa por Acao JS
    this.ResumePlay = function() {
        clearTimeout(this.loopProdutosShow);
        this.playerObject.doPlay();
        OfertaMediaPlayer.TimeCodeLoop();
    }
    // Executa no Botao Play do Player
    this.onResumePlay = function() {
        clearTimeout(this.loopProdutosShow);
        OfertaMediaPlayer.TimeCodeLoop();
    }    
    
    // Executa no Listener de Stop (Fim do Video)
    this.onStopPlay = function() {
        clearTimeout(this.loopProdutosShow);
        // Verifica se tem fotos para exibir
        if (OfertaMediaPlayer.hasPhoto) {
            OfertaMediaPlayer.playerSlideShow = null;
            OfertaMediaPlayer.itemToPlay = null;
            // Esconde o Player
            $('#ctl00_content_playerVideoId').attr('style', 'visibility:hidden; position:absolute;');
            // Mostra o Div com as Fotos
            $('#ctl00_content_playerFotoID').attr('style', 'display:block; position:absolute;');
            // Indica que agora é um Media Tipo 2
            OfertaMediaPlayer.SetMediaType(2);
            // Inicia o Slide Show
            OfertaMediaPlayer.Start();
        } else {
            // Verifica se um Proximo Item na Playlist
            OfertaMediaPlayer.GetNextOfertaToPlay();
        }
    }


    // Verica timecode
    this.TimeCodeLoop = function() {
        var index = jQuery.inArray(this.playerObject.getCurrentTime() + '', this.produtosPlaylist);

        if (this.moveToProduto != null) {
            if (this.playerObject.getCurrentTime() != 0) {
                if (this.moveToProduto < 0) {
                    OfertaMediaPlayer.Pause();
                    $('#ctl00_content_playerVideoId').attr('style', 'visibility:hidden; position:absolute;');
                    // Mostra o Div com as Fotos
                    $('#ctl00_content_playerFotoID').attr('style', 'display:block; position:absolute;');
                    OfertaMediaPlayer.itemToPlay = this.moveToProduto * -1;
                    OfertaMediaPlayer.ShowItemInfo(Number(this.moveToProduto * -1));
                    OfertaMediaPlayer.mediaType = 2;
                    OfertaMediaPlayer.Start();
                } else {
                    index = this.moveToProduto;
                    this.playerObject.setTimeToSeek(Number(index));
                }
                this.moveToProduto = null;
            }
        } else {
            if (Number(index) > -1) {
                OfertaMediaPlayer.ShowItemInfo(Number(index));
            }
        }
        this.loopProdutosShow = setTimeout(function() {
            OfertaMediaPlayer.TimeCodeLoop();
        }, 1000);

    }

    this.GetCurrentTime = function() {
        return this.playerObject.getCurrentTime();
    }

    // Reseta o Player para o ponto inicial
    this.ResetPlayerStartPoint = function() {
        clearTimeout(this.loopProdutosShow);
        this.playerObject.setTimeToSeek(-1);
        this.playerObject.doPlay();
        OfertaMediaPlayer.TimeCodeLoop();
    }
}