vlnt_nmp_functions = {

    /**
    * Magic function. I know that its not good. But useful for now.
    *
    * @param string player_type Its determine what we want to get by this function.
    * @return mixed It depend of player_type:
    *               'embed' - result will be HTMLEmbedObject
    *               'installer' - result will be JS var which used for init player. Instanse of SWFObject class.
    */
    getPlayerByEventObj: function (event_obj, player_type) {
        // player_obj.id must be in format '.NMP_ID.'player_embed_ID
        var file_id = event_obj.id.match(/\d+$/);
        switch (player_type) {
            case 'embed':
                var player_embed = document.getElementById(event_obj.id);
                return player_embed;
                break;
            case 'installer':
                eval('var player_installer = '+nmp_config.nmp_id+'player_installer_' + file_id + ';');
                return player_installer;
                break;
        }
        return false;
    },
    
    /**
     *
     */
    onPlayerStateChange: function (event_obj) {
        var player_installer = this.getPlayerByEventObj(event_obj, 'installer');
        if (event_obj.newstate == "COMPLETED") {
            if (player_installer.options.redirect_url) {
                document.location.href = player_installer.options.redirect_url;
            }
        }
    }
};

/**
 * Listener for plaeyrs events
 */
function playerReady(event_obj) {
    var player_embed = vlnt_nmp_functions.getPlayerByEventObj(event_obj, 'embed');

    player_embed.addModelListener('STATE', 'vlnt_nmp_functions.onPlayerStateChange');
};


function alert_r(obj,pattern){
    var str = "";
    var t = new RegExp(pattern);
    for(r in obj){
        if(pattern && t.test(r)){
            str += r + " = " + obj[r] + "\n";
        }else if(!pattern){
            str += r + " = " + obj[r] + "\n";
        }
    }
    alert(str);
}

