                                                                                                                                                                                                                                                                                                                        
var playerVar = null;


var Native = {};
Native.UID = 0;

var Swiff = function(path, options){
  //if (!Swiff.fixed) Swiff.fix();
  var instance = 'Swiff_' + Native.UID++;
  options = $merge({
    id: instance,
    height: 1,
    width: 1,
    container: null,
    properties: {},
    params: {
      quality: 'high',
      allowScriptAccess: 'always',
      swLiveConnect: true
    },
    events: {},
    vars: {}
  }, options);
  var params = options.params, vars = options.vars, id = options.id;
  var properties = $extend({height: options.height, width: options.width}, options.properties);
  Swiff.Events = {};
  Swiff.Events[instance] = {};
  for (var event in options.events){
    Swiff.Events[instance][event] = function(){
      options.events[event].call($(options.id));
    };
    vars[event] = 'Swiff.Events.' + instance + '.' + event;
  }
  params.flashVars = Object.toQueryString(vars);
  if (window.ie){
    properties.classid = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000';
    params.movie = path;
  } else {
    properties.type = 'application/x-shockwave-flash';
    properties.data = path;
  }
  var build = '<object id="' + options.id + '"';
  var embed = '<embed src="'+path+'" width="'+properties.width+'" height="'+properties.height+'"';
  for (var property in properties) build += ' ' + property + '="' + properties[property] + '"';
  build += '>';
  for (var param in params) build += '<param name="' + param + '" value="' + params[param] + '" />';
  for (var param in params) embed += ' ' + param + '="' + params[param] + '"';
  embed += '></embed>';
  build += embed + '</object>';
  return ($(options.container) || new Element('div')).innerHTML = build;
};
/*
Swiff.extend({

  Events: {},

  remote: function(obj, fn){
    var rs = obj.CallFunction('<invoke name="' + fn + '" returntype="javascript">' + __flash__argumentsToXML(arguments, 2) + '</invoke>');
    return eval(rs);
  },

  getVersion: function(){
    if (!$defined(Swiff.pluginVersion)){
      var version;
      if (navigator.plugins && navigator.mimeTypes.length){
        version = navigator.plugins["Shockwave Flash"];
        if (version && version.description) version = version.description;
      } else if (Browser.Engine.trident){
        version = $try(function(){
          return new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version");
        });
      }
      Swiff.pluginVersion = (typeof version == 'string') ? parseInt(version.match(/\d+/)[0]) : 0;
    }
    return Swiff.pluginVersion;
  },

  fix: function(){
    Swiff.fixed = true;
    window.addEvent('beforeunload', function(){
      __flash_unloadHandler = __flash_savedUnloadHandler = $empty;
    });
    if (!Browser.Engine.trident) return;
    window.addEvent('unload', function(){
      Array.each(document.getElementsByTagName('object'), function(obj){
        obj.style.display = 'none';
        for (var p in obj){
          if (typeof obj[p] == 'function') obj[p] = $empty;
        }
      });
    });
  }

});
*/

var reproductor = function(el, mp3id, fVars) {

  if (el.hasClass('playing')) {
    $('player').empty();
    el.removeClass('playing');

  } else  {
    var adminrender = "";
    var re = new RegExp("/admin/render/([^/]+)");
    var m = re.exec(location.href);
    if (m != null) {
      adminrender = "/admin/render/"+m[1];
    }
    
    playerVar = new Swiff(adminrender+'/file/player.swf?'+Math.random(), {
      width:  1, 
      height: 1, 
      container: $('player'),
      vars: {id: mp3id, fVars: '/flashvars', autoplay: 1, nocache: Math.random()}  
    });

    var players = $$('.player');
    for (var i = 0; i < players.length; i++) {
      if (players[i].hasClass('playing'))
        players[i].removeClass('playing');
    }

    el.addClass('playing');
  }

}


window.addEvent('domready', function() {

  $$('a.player').each(function(player) {
    player.onclick = function() {
      reproductor(player, player.id.replace("preview-", ""), '/flashvars');
      return false;
    }
  });

});
                                                                                                                                                                                                                