
// copied from Adobe AC_OETags.js

// Flash Player Version Detection - Rev 1.6
// Detect Client Browser type
// Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. All rights reserved.
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

function ControlVersion()
{
  var version;
  var axo;
  var e;

  // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry

  try {
    // version will be set for 7.X or greater players
    axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
    version = axo.GetVariable("$version");
  } catch (e) {
  }

  if (!version)
  {
    try {
      // version will be set for 6.X players only
      axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");

      // installed player is some revision of 6.0
      // GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
      // so we have to be careful.

      // default to the first public version
      version = "WIN 6,0,21,0";

      // throws if AllowScripAccess does not exist (introduced in 6.0r47)
      axo.AllowScriptAccess = "always";

      // safe to call for 6.0r47 or greater
      version = axo.GetVariable("$version");

    } catch (e) {
    }
  }

  if (!version)
  {
    try {
      // version will be set for 4.X or 5.X player
      axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
      version = axo.GetVariable("$version");
    } catch (e) {
    }
  }

  if (!version)
  {
    try {
      // version will be set for 3.X player
      axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
      version = "WIN 3,0,18,0";
    } catch (e) {
    }
  }

  if (!version)
  {
    try {
      // version will be set for 2.X player
      axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
      version = "WIN 2,0,0,11";
    } catch (e) {
      version = -1;
    }
  }

  return version;
}

// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
  // NS/Opera version >= 3 check for Flash plugin in plugin array
  var flashVer = -1;

  if (navigator.plugins != null && navigator.plugins.length > 0) {
    if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
      var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
      var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
      var descArray = flashDescription.split(" ");
      var tempArrayMajor = descArray[2].split(".");
      var versionMajor = tempArrayMajor[0];
      var versionMinor = tempArrayMajor[1];
      var versionRevision = descArray[3];
      if (versionRevision == "") {
        versionRevision = descArray[4];
      }
      if (versionRevision[0] == "d") {
        versionRevision = versionRevision.substring(1);
      } else if (versionRevision[0] == "r") {
        versionRevision = versionRevision.substring(1);
        if (versionRevision.indexOf("d") > 0) {
          versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
        }
      }
      var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
    }
  }
  // MSN/WebTV 2.6 supports Flash 4
  else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
  // WebTV 2.5 supports Flash 3
  else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
  // older WebTV supports Flash 2
  else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
  else if ( isIE && isWin && !isOpera ) {
    flashVer = ControlVersion();
  }
  return flashVer;
}

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
  versionStr = GetSwfVer();
  if (versionStr == -1 ) {
    return false;
  } else if (versionStr != 0) {
    if(isIE && isWin && !isOpera) {
      // Given "WIN 2,0,0,11"
      tempArray         = versionStr.split(" ");  // ["WIN", "2,0,0,11"]
      tempString        = tempArray[1];     // "2,0,0,11"
      versionArray      = tempString.split(",");  // ['2', '0', '0', '11']
    } else {
      versionArray      = versionStr.split(".");
    }
    var versionMajor      = versionArray[0];
    var versionMinor      = versionArray[1];
    var versionRevision   = versionArray[2];

          // is the major.revision >= requested major.revision AND the minor version >= requested minor
    if (versionMajor > parseFloat(reqMajorVer)) {
      return true;
    } else if (versionMajor == parseFloat(reqMajorVer)) {
      if (versionMinor > parseFloat(reqMinorVer))
        return true;
      else if (versionMinor == parseFloat(reqMinorVer)) {
        if (versionRevision >= parseFloat(reqRevision))
          return true;
      }
    }
    return false;
  }
}

function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?');
  else
    return src + ext;
}


function AC_GenerateobjStr(objAttrs, params, embedAttrs)
{
    var str = '';
    if (isIE && isWin && !isOpera)
    {
      str += '<object ';
      for (var i in objAttrs)
        str += i + '="' + objAttrs[i] + '" ';
      str += '>';
      for (var i in params)
        str += '<param name="' + i + '" value="' + params[i] + '" /> ';
      str += '</object>';
    } else {
      str += '<embed ';
      for (var i in embedAttrs)
        str += i + '="' + embedAttrs[i] + '" ';
      str += '> </embed>';
    }
    return str;
}

function AC_Generateobj(objAttrs, params, embedAttrs)
{
    document.write(AC_GenerateobjStr(objAttrs, params, embedAttrs));
}

function AC_FL_RunContent(){
  var ret =
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_FL_RunContentStr(){
  var ret =
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  return AC_GenerateobjStr(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();

    switch (currArg){
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "id":
      case "width":
      case "height":
      case "align":
      case "vspace":
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}

// ---------- WE7 -------------------------------------------------



function we7w_expand(unique) {
  document.getElementById("we7w_header"+unique).style.visibility='hidden';
  document.getElementById("we7w_header"+unique).style.display='block';
  var mel = document.getElementById('we7w_div'+unique);
  var position = we7w_getElementPosition(mel);
  mel.style.top    = position.top-271 + "px";
  mel.style.height = "327px";
  document.getElementById('PlayerWidget'+unique).style.height="306px";
}

function we7w_contract(unique) {
  var mel = document.getElementById('we7w_div'+unique);
  document.getElementById("we7w_header"+unique).style.display='none';
  var position = we7w_getElementPosition(mel);
  mel.style.top    = position.top+271+"px";
  mel.style.height = "56px";
  document.getElementById('PlayerWidget'+unique).style.height="56px";
}

function we7w_getWidget(unique) {
  return document.getElementById('PlayerWidget'+unique);
}

function we7w_show(unique, src, reload) {

  if (reload) {
    document.getElementById('widgetframe'+unique).src=src;
    return;
  }

  document.getElementById("we7w_header"+unique).style.visibility='visible';

  var mel = document.getElementById('we7w_div'+unique);

  var fe  = document.createElement('IFRAME');
  fe.id          = 'widgetframe'+unique;
  fe.name        = 'widgetframe'+unique;
  fe.scrolling   = 'NO';
  fe.frameBorder = '0';
  fe.marginHeight= '0';
  fe.marginWidth = '0';
  fe.width       = '300px';
  fe.height      = '250px';
  fe.src         = src;
  fe.style.position = "absolute";
  fe.style.top = "21px";

  //var p = document.getElementById('PlayerWidget'+unique);
  //p.style.height='56px';
  var pi = document.getElementById('we7w_player'+unique);

  mel.insertBefore(fe, pi);

  setTimeout("document.getElementById('we7w_adh"+unique+"').style.display='block'", 15000);
  document.getElementById('we7w_ph'+unique).style.display='none';
  document.getElementById("we7w_header"+unique).style.display='block';
}

function we7w_showHeader(unique) {
  document.getElementById("we7w_header"+unique).style.visibility="visible";
  document.getElementById("we7w_header"+unique).style.display='block';
}

function we7w_hideHeader(unique) {
  document.getElementById("we7w_header"+unique).style.visibility="hidden";
}

function we7w_hide(unique, small) {
  document.getElementById('PlayerWidget'+unique).style.height=small?'56px':'306px';
  var mel = document.getElementById('we7w_div'+unique);
  mel.removeChild(document.getElementById('widgetframe'+unique));
  document.getElementById('we7w_adh'+unique).style.display='none';
  document.getElementById('we7w_ph'+unique).style.display='block';
}


function we7w_init() {

  var unique = we7unique;

  var el=document.getElementsByName('we7widget')[0];
  var expand = el.className.indexOf("expand") > -1;
  var autoplay = el.className.indexOf("autoplay") > -1;
  var gigya = el.className.indexOf("gigya") > -1;
  var partner = el.className.match(/_(.*)_/);
  var tracklist = el.className.match(/tracks\((.*)\)/);
  partner = partner && partner[1];
  tracklist = tracklist && tracklist[1];
  el.setAttribute('id','we7w_div'+we7unique);
  el.setAttribute('name','');
  el.style.overflow   = "hidden";
  el.style.height     = expand?"56px":"327px";
  el.style.width      = "300px";
  el.style.color      = "#FFFFFF";
  el.style.fontFamily = "Verdana, Verdana, Geneva, sans-serif";
  el.style.fontSize   = "10px";
  el.style.position   = "relative";
  el.style.border     = "0";
  el.className = "we7w";

  var ell=el.getElementsByTagName('a')[0]
  ell.style.textDecoration = "none";
  ell.style.color="#ffffff";
  ell.style.fontFamily = "Verdana, Verdana, Geneva, sans-serif";
  ell.style.fontSize   = "10px";
  ell.style.margin     = "0";
  ell.style.padding    = "0";
  ell.style.border     = "0";
  ell.style.display    = "block";
  ell.style.width    = "248px";

  ell.className = "we7w";
  var title = ell.childNodes[0].nodeValue;
  title = title.replace("Free music - ", "");
  if (title.length>40)
    ell.childNodes[0].nodeValue = title.substr(0,28)+"...";
  else
    ell.childNodes[0].nodeValue = title;
  var elx;
  if (expand) {
    el.removeChild(ell);
    var position  = we7w_getElementPosition(el);
    el.setAttribute('id','we7w_div_ph'+we7unique)
    elx = document.createElement("div");
    elx.setAttribute('id','we7w_div'+we7unique);
    elx.style.overflow   = "hidden";
    elx.style.height     = "56px"
    elx.style.width      = "300px";
    elx.style.color      = "#FFFFFF";
    elx.style.fontFamily = "Verdana, Verdana, Geneva, sans-serif";
    elx.style.fontSize   = "10px";
    elx.style.position   = "absolute";
    elx.style.top        = position.top  + "px";
    elx.style.left       = position.left + "px";
    elx.className = "we7w";
    elx.appendChild(ell);
    el.parentNode.appendChild(elx);
    el = elx;
  }

  var params = ell.href.match(/(.*)\/(?:album|track|user|public|artist|subscriber)\/.*\?(.*)Id=(\d*).*/);

  var type = "tracklist";
  var id   = tracklist;
  var site = "http://www.we7.com";

  if (params) {
    site = params[1];
    type = params[2];
    id   = params[3];
  }
  else {
    site = ell.href;
    if (site.indexOf('#') > -1) {
      site = site.substring(0, site.indexOf('#')-1);
    }
    else {
      site = ell.href.match(/(https?:\/\/.*?)\//)[1];
    }
  }

  var ehd = document.createElement("div");
  ehd.style.position = "relative";
  ehd.style.overflow = "hidden";
  ehd.style.height   = "20px";
  ehd.style.width    = "300px";
  ehd.style.fontFamily = "Verdana, Verdana, Geneva, sans-serif";
  ehd.style.fontSize   = "10px";
  ehd.style.margin     = "0";
  ehd.style.padding    = "0";
  ehd.style.border     = "0";
  ehd.style.marginBottom = "1px";
  ehd.id = "we7w_header"+we7unique;
  ehd.className = "we7w";

  el.insertBefore(ehd, ell);

  var eht = document.createElement("div");
  eht.style.position = "absolute";
  eht.style.overflow = "hidden";
  eht.style.top      = "3px";
  eht.style.left     = "5px";
  eht.id             = "we7w_ht"+we7unique;
  eht.className = "we7w";

  el.removeChild(ell);
  eht.appendChild(ell);
  ehd.appendChild(eht);

  var tbg = document.createElement("img");
  tbg.src = site + "/images/media-player/top.gif";
  tbg.className = "we7w";

  ehd.appendChild(tbg);

  var ph = document.createElement("div");
  ph.style.position = "absolute";
  ph.style.top      = "3px";
  ph.style.right    = "48px";
  ph.id             = "we7w_ph"+we7unique;
  ph.className = "we7w";

  if (expand) ehd.style.display = "none";
  ehd.appendChild(ph);

  if (type=="album" || type=="playlist" || type=="artist" || type=="tracklist" ) {
    var img1 = document.createElement("img");
    img1.style.position = "absolute";
    img1.style.top      = "-1px";
    img1.style.right    = "-45px";
    img1.src= site + "/images/media-player/view-bg.gif"
    img1.className = "we7w";


    var cfvl = document.createElement("a");
    cfvl.href = "#";

    var img2 = document.createElement("img");
    img2.style.position = "absolute";
    img2.style.top      = "2px";
    img2.style.right    = "-24px";
    img2.style.border   = "0";
    img2.src = site + "/images/media-player/cf-view-on.gif"
    img2.className = "we7w";

    cfvl.appendChild(img2);

    var plvl = document.createElement("a");
    plvl.href = "#";

    var img3 = document.createElement("img");
    img3.style.position = "absolute";
    img3.style.top      = "2px";
    img3.style.right    = "-42px";
    img3.style.border   = "0";
    img3.src= site + "/images/media-player/pl-view-off.gif"
    img3.className = "we7w";

    plvl.appendChild(img3);

    cfvl.onclick = function() {
       we7w_getWidget(unique).switchView("cf");
       img2.src = site + "/images/media-player/cf-view-on.gif";
       img3.src= site + "/images/media-player/pl-view-off.gif";
       return false;
    };

    cfvl.onmouseover = function() { if (img2.src != site + "/images/media-player/cf-view-on.gif") img2.src = site + "/images/media-player/cf-view-hover.gif"; };
    cfvl.onmouseout  = function() { if (img2.src != site + "/images/media-player/cf-view-on.gif") img2.src = site + "/images/media-player/cf-view-off.gif"; };

    plvl.onclick = function() {
      we7w_getWidget(unique).switchView("pl");
      img3.src= site + "/images/media-player/pl-view-on.gif";
      img2.src= site + "/images/media-player/cf-view-off.gif";
      return false;
    };

    plvl.onmouseover = function() { if (img3.src != site + "/images/media-player/pl-view-on.gif") img3.src = site + "/images/media-player/pl-view-hover.gif"; };
    plvl.onmouseout  = function() { if (img3.src != site + "/images/media-player/pl-view-on.gif") img3.src = site + "/images/media-player/pl-view-off.gif"; };

    ph.appendChild(img1);
    ph.appendChild(cfvl);
    ph.appendChild(plvl);
  }

  var ha = document.createElement("div");
  ha.style.position = "absolute";
  ha.style.display  = "none";
  ha.style.top      = "3px";
  ha.style.right    = "23px";
  ha.style.fontFamily = "Verdana, Verdana, Geneva, sans-serif";
  ha.style.fontSize   = "10px";
  ha.style.margin     = "0";
  ha.style.padding    = "0";
  ha.style.border     = "0";

  ha.id             = "we7w_adh"+we7unique;
  ha.className = "we7w";

  ehd.appendChild(ha);

  var img4 = document.createElement("img");
  img4.style.position = "absolute";
  img4.style.top      = "-1px";
  img4.style.right    = "-20px";
  img4.style.border   = "0";
  img4.src = site + "/images/media-player/close-ad.gif";
  img4.className = "we7w";

  var hal = document.createElement("a");
  hal.href = "#";

  hal.onclick = function() { we7w_getWidget(unique).hideAdvert(); return false;};

  ha.appendChild(document.createTextNode("Hide advert"));
  ha.appendChild(hal);
  hal.appendChild(img4);

  var player;

  // Version check for the Flash Player that has the ability to start Player Product Install (6.0r65)
  var hasProductInstall = DetectFlashVer(6, 0, 65);

  // Version check based upon the values defined in globals
  var hasRequestedVersion = DetectFlashVer(9, 0, 28);

  // Minimum width 220 for active x under IE
  if ( hasProductInstall && !hasRequestedVersion) {

  var MMPlayerType = (isIE == true) ? "ActiveX" : "PlugIn";
  var MMredirectURL = window.location;
    document.title = document.title.slice(0, 47) + " - Flash Player Installation";
    var MMdoctitle = document.title;

  // We must have a minimum height of 140 for active x under IE
  player = AC_FL_RunContentStr(
    "src", site + "/playerProductInstall",
    "FlashVars", "MMredirectURL="+MMredirectURL+'&MMplayerType='+MMPlayerType+'&MMdoctitle='+MMdoctitle+"",
    "width", "300",
    "height", expand?"56":"306",
    "align", "middle",
    "id", "PlayerWidget"+we7unique,
    "quality", "high",
    "bgcolor", "#ffffff",
    "name", "PlayerWidget",
    "allowScriptAccess","sameDomain",
    "type", "application/x-shockwave-flash",
    "wmode", "transparent",
    "pluginspage", "http://www.adobe.com/go/getflashplayer"
  );

  } else if (hasRequestedVersion) {
  // if we've detected an acceptable version
  // embed the Flash Content SWF when all tests are passed
    var m = window.location.toString().match(/.*(?:we7wlog=)([a-z]*).*/);
    player = AC_FL_RunContentStr(
      "src", site + "/img/flash/PlayerWidget",
      "FlashVars", type+"="+id+"&amp;site="+site+"&amp;unique="+we7unique+(expand?"&amp;expand=true":"")+(partner?("&amp;partner="+partner):"")+(m?"&amp;log="+m[1]:"")+(autoplay?"&amp;autoplay=true":"")+(gigya?"&amp;gigya=true":"")+"&amp;title=" + title,
      "width", "300",
      "height", expand?"56":"306",
      "align", "middle",
      "id", "PlayerWidget"+we7unique,
      "quality", "high",
      "bgcolor", "#ffffff",
      "name", "PlayerWidget"+we7unique,
      "allowScriptAccess","always",
      "type", "application/x-shockwave-flash",
      "wmode", "transparent",
      "pluginspage", "http://www.adobe.com/go/getflashplayer"
    );

  } else {  // flash is too old or we can't detect the plugin
    player = '<a href="http://www.adobe.com/go/getflash/"><img src="'+site+'/img/widget/wnoflash'+(expand?"e":"")+'.gif"></' +'a>';
  }

  var pld = document.createElement("div");
  pld.id = "we7w_player"+we7unique;
  el.appendChild(pld);
  pld.innerHTML = player;
  pld.className = "we7w";
}

function we7w_getElementPosition(el){
  var position = _we7w_getElementPosition(el);
  if (el.parentNode.style.position=="absolute" || el.parentNode.style.position=="relative") {
    var ppos = _we7w_getElementPosition(el.parentNode);
    position.top -= ppos.top;
    position.left -= ppos.left;
  }
  return position;
}

function _we7w_getElementPosition(offsetTrail){
  var offsetLeft = 0;
  var offsetTop = 0;
  while (offsetTrail){
  offsetLeft += offsetTrail.offsetLeft;
  offsetTop += offsetTrail.offsetTop;
  offsetTrail = offsetTrail.offsetParent;
  }
  if (navigator.userAgent.indexOf('Mac') != -1 && typeof document.body.leftMargin != 'undefined'){
    offsetLeft += document.body.leftMargin;
    offsetTop += document.body.topMargin;
  }
  return {left:offsetLeft,top:offsetTop};
}

function we7w_pageReady() {
  return we7pageReady;
}

var we7unique;
var we7pageReady = false;

if (typeof(we7unique) == "undefined") {
  we7unique = 1;
  var we7old_onload = window.onload;
  window.onload = function() { we7pageReady = true; if (we7old_onload) we7old_onload(); }
  setTimeout(function() { we7pageReady = true; }, 5000);

  var head=document.getElementsByTagName('head')[0];

  var cssStr = "a.we7w, div.we7w  {background-color: transparent !important; border: 0 !important; margin: 0; padding: 0 !important; color: #FFF !important; line-height: 12px !important; text-align: left !important} "+
               "a.we7w:hover {color: #e2309b !important; background-color: transparent !important; border: 0 !important; margin: 0 !important; padding: 0 !important; line-height: 12px !important; text-align: left !important} "+
               "div.we7w img {border: 0 !important; margin: 0 !important; padding: 0 !important} ";

  var htmDiv = document.createElement('div');
  htmDiv.innerHTML = '<p>x</p><style type="text/css">'+cssStr+'</style>';

  head.appendChild(htmDiv.childNodes[1]);
}

else we7unique++;

we7w_init();

try {
  eval("PlayerWidget"+we7unique+" = document.getElementById('PlayerWidget"+we7unique+"');");
}
catch (e) {
  eval("var PlayerWidget"+we7unique+" = document.getElementById('PlayerWidget"+we7unique+"');");
}

