var isjQuery = typeof jQuery == 'undefined';
(new Image).src = '/images/common/loader.gif'; // load loader image
var AudPlayer = function(){
};
var playerClassNames = ['.osusume_trans', '.player'];

///////////////////////////////////////////////////////////////////////////////
var displayAud = function(){ return false; };
var stopAud = function(){ return false;  };
///////////////////////////////////////////////////////////////////////////////


var setPlayer = function(elm){
  if (elm.getAttribute('alreadyDone')) return false;
  var width = 1;
  var height = 1;
  var pCode = '';
  var oCodes = '';
  pCode = elm.getAttribute('code');
  oCodes = elm.getAttribute('codes');
  var tagStr = '<object id="externalPkg' + pCode + '"  classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="' +  width + '" height="' + height + '"><param name="movie" value="/player_0/ototoy_player.swf?PACKAGE='+ pCode + '"><param name="quality" value="high"><param name="flashVars" value="PACKAGE='+ pCode+ '"><param name="wmode" value="transparent"><embed src="/player_0/ototoy_player.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="' + width + '" height="'+ height + '" flashVars="PACKAGE='+ pCode+ '" wmode="transparent" allowScriptAccess="always""></embed></object>';
  elm.style.cursor = "pointer";
  elm.style.textAlign = "center";
  elm.innerHTML += tagStr;
  loadTrack(elm);
  elm.setAttribute("alreadyDone", true);
};
var loadTrack = function(elm){
  var embed = elm.getElementsByTagName('embed');
  if (typeof embed != 'undefined' && embed.length > 0) embed[0].loading = true;
  var img = elm.getElementsByTagName('img');
  if (typeof img != 'undefined' && img){
    img[0].src = "/images/common/loader.gif";
    img[0].style.width = '16px';
    img[0].style.height = '16px';
    img[0].style.margin = '30px';
  }
};
var setNoAudioStatus = function(id){
  var elm = document.getElementById(id);
  var jacket = elm.parentNode.parentNode.getElementsByTagName('img')[0];
  if (!jacket.parentNode.nodeName.match(/a/i)){
    if (elm.parentNode.parentNode.getElementsByTagName('a').length){
      if (!elm.parentNode.parentNode.getElementsByTagName('a')[0].href == 'javascript:void(0);'){
        var a = elm.parentNode.parentNode.getElementsByTagName('a')[0].cloneNode(false);
      }else{
        var a = document.createElement('a');
        a.href = id.match(/Pkg/) ? '/_/default/p/' + id.replace(/externalPkg/, '') : '/opus/index.php/' + id.replace(/externalOpus/, '');
      }
    }else{
      var a = elm.parentNode.parentNode.parentNode.getElementsByTagName('a')[0].cloneNode(false);
    }
    a.appendChild(jacket.cloneNode(true));
    jacket.parentNode.replaceChild(a, jacket);
  }
  var parent = elm.parentNode;
  while (parent.firstChild) parent.removeChild(parent.firstChild);
};
var setLoaded = function(id){
  var elm = document.getElementById(id);
  var img = elm.parentNode.getElementsByTagName('img');
  if (typeof img != 'undefined' && img && !img[0].src.match(/pausebtn/)){
    img[0].src = "/player_0/assets/playbtn_mini.png";
    img[0].style.width = '26px';
    img[0].style.height = '26px';
    img[0].style.margin = '26px 0 0 0';
  }
  var jacket = elm.parentNode.parentNode.getElementsByTagName('img')[0];
  var e_p = elm.parentNode;
  if (parseInt(e_p.style.width.replace(/px/, '')) > 28){
    e_p.style.width = '28px';
    e_p.style.margin = '0 auto';
    e_p.style.height = '28px';
  }
  if (!jacket.parentNode.nodeName.match(/a/i)){
    if (elm.parentNode.parentNode.getElementsByTagName('a').length){
      if (!elm.parentNode.parentNode.getElementsByTagName('a')[0].href == 'javascript:void(0);'){
        var a = elm.parentNode.parentNode.getElementsByTagName('a')[0].cloneNode(false);
      }else{
        var a = document.createElement('a');
        a.href = id.match(/Pkg/) ? '/_/default/p/' + id.replace(/externalPkg/, '') : '/opus/index.php/' + id.replace(/externalOpus/, '');
      }
    }else{
      var a = elm.parentNode.parentNode.parentNode.getElementsByTagName('a')[0].cloneNode(false);
    }
    a.appendChild(jacket.cloneNode(true));
    jacket.parentNode.replaceChild(a, jacket);
  }
  // switchTrack(elm.nodeName.match(/object/i) ? elm.parentNode : elm.parentNode.parentNode);
};
var switchTrack = function(elm){
  var img = null;
  var player = elm.getElementsByTagName('embed');
  var targets = document.getElementsByTagName("embed");
  if (typeof targets == 'undefined' || targets.length == 0){
    player = elm.getElementsByTagName('object');
    targets = document.getElementsByTagName('object');
  }
  if (!player.length) return false;
  player = player[0];
  for (var i = 0; i < targets.length; i++){
    if (typeof targets[i].isPlay == 'undefined') continue;
    if (targets[i].nodeName.match(/object/i)){
      var target_p = targets[i].parentNode;
      if (targets[i].isPlay() && elm.getAttribute('code') != target_p.getAttribute('code')){
        img = target_p.getElementsByTagName('img');
        if (typeof img != 'undefined' && img) img[0].src = '/player_0/assets/playbtn_mini.png';
        targets[i].stopSound();
      }
    }else{
      var target_p = targets[i].parentNode.parentNode;
      if (targets[i].isPlay() && elm.getAttribute('code') != target_p.getAttribute('code')){
        img = target_p.getElementsByTagName('img');
        if (typeof img != 'undefined' && img){
          img[0].src = '/player_0/assets/playbtn_mini.png';
        }
        targets[i].stopSound();
      }
    }
  }
  img = elm.getElementsByTagName('img');
  if (typeof img != 'undefined' && img){
    if (player.isPlay()) img[0].src = '/player_0/assets/playbtn_mini.png';
    else img[0].src = '/player_0/assets/pausebtn_mini.png';
  }
  player.playSound();
};
if (isjQuery){ // prototype
  Event.observe(window, 'load', function(){
    for (var i = 0; i < playerClassNames.length; i++){
      $$(playerClassNames[i]).each(function(d,p){
        Event.observe(d, 'mouseover', function(e){
          var elm = !this.nodeName.match(/div/i) ? Event.element(e) : this;
          return setPlayer(elm);
        });
        Event.observe(d, 'click', function(e){
          var elm = !this.nodeName.match(/div/i) ? Event.element(e) : this;
          switchTrack(elm);
        });
      });
    }
  });
}else{ // jQuery
  $(function(){
    for (var i = 0; i < playerClassNames.length; i++){
      $(playerClassNames[i]).map(function(p, d){
        var elm = $(d);
        elm.hover(function(e){ setPlayer(this); });
        elm.click(function(e){ switchTrack(this); });
      });
    }
  });
}
