var vblock = function(_pID, _roomUser, _type) {
  var _now, _cate, _loaded, _rendered_media, _rendered_author;
  var _pID, _roomUser, _type;
  this._init(_pID, _roomUser, _type);
}

vblock.prototype = {
  changeBlock: function(i) {
    if(i==this._now) return false;
    $("cvb"+this._now).className="label";
    $("cvb"+i).className="label1";
    $S("cvb"+this._now).backgroundImage="url(/i/label_1b.gif)";
    $S("cvb"+i).backgroundImage="url(/i/label_1.gif)";
    $S("relate_"+this._cate[this._now]).display="none";
    this._now=i;
    $S("relate_"+this._cate[this._now]).display="block";
    eval("this._render_"+this._cate[i]+"();");

    return false;
  },

  render_all: function(i) {
    if(i==0 && !this._rendered_media)
      this._render_media();
    else if(i==3  && !this._rendered_author)
      this._render_author();

    return false;
  },

  _init: function(_pID, _roomUser, _type) {
    this._cate = new Array("media", "playlist", "dig", "author");
    this._pID = _pID;
    this._roomUser = _roomUser;
    this._rendered_media = false;
    this._rendered_author = false;
    this._type = _type;
    if(this._type=="single") {
      this._now = 0;
      this._loaded = new Array(true, false, false, false);
    } else if(this._type == "playlist") {
      this._now = 3;
      this._loaded = new Array(false, false, false, true);
    }
  },

  _media_element: function(d) {
    var vbody=$_("div", "vbody_"+d[1]);
//    var pic=getThumb();
    vbody.className="vbody";
    vbody.innerHTML='<div class="l"><div class="photo"><a href="/m/'+d[1]+'"> \
      <img alt="" src="'+d[0]+'" width="100" height="75" /></a> \
      </div></div> \
      <div class="l" style="margin:15px 0 0 0;"> \
      <div class="blue_13 marginh" > \
      <a href="/m/'+d[1]+'"> \
      '+((d[2].length > 12) ? (d[2].substr(0, 12) + "...") : d[2]) +'</a></div> \
      <div class="black_12 marginh"> \
        <img src="/i/icon_5.gif" alt="" width="18" height="18" align="absmiddle" /> \
        發表作者：<a href="/'+d[3]+'" class="main_text_12" target="_blank">'+d[3]+'</a></div> \
        <div class="black_12 marginh"> \
        <img src="/i/icon_6.gif" alt="" width="18" height="18" align="absmiddle" /> \
          人氣：'+d[4]+'</span> | \
          播放長度：'+d[5]+'</span></div> \
        </div>';
    return vbody;
  },

  _render_media: function() {
    if(this._rendered_media) return false;
    this._rendered_media=true;
    makeRequest();
    http_request.onreadystatechange = function() {
      if (http_request.readyState == 4) {
        if (http_request.status == 200) {
//          $(d).innerHTML=http_request.responseText;
          var a=http_request.responseText;
          a=a.parseJSON();
          for(var i=0;i<20;i++) { 
            if(a[i] == null) break;
            var d=new Array(a[i].pic_url, a[i].podcast_id, a[i].podcast_title, a[i].room_user, a[i].podcast_view, a[i].podcast_file_duration);
            $("relate_media_content").appendChild(v._media_element(d)); 
          }
try {
          if(parseInt(a.count)>20) { $("media_count1").innerHTML="20"; $S("media_all_view").display="block";}
          else { $("media_count1").innerHTML=a.count; $S("media_all_view").display="none"; }
          $("media_count2").innerHTML=a.count;
} catch(e) {}
        }
      }
    }

    var u;
    if(this._type == "playlist" && this._now==0/* render all relate media */)
      u="/media_relate.php?op=allmedia&pID="+this._pID;
    else
      u="/media_relate.php?op="+this._cate[this._now]+"&pID="+this._pID;

    http_request.open('GET', u, true);
    http_request.send(null);

    return;
  },

  _render_playlist: function() {
    if(!this._loaded[this._now])
      this._ajaxload();
    return;
  },

  _render_dig: function() {
    if(!this._loaded[this._now])
      this._ajaxload();
    return;
  },

  _render_author: function() { 
    if(!this._loaded[this._now]) {
//      this._ajaxload("pID="+this._pID+"&room_user="+this._roomUser);
      this._loaded[this._now]=true;
      makeRequest();
      http_request.onreadystatechange = function() {
        if (http_request.readyState == 4) {
          if (http_request.status == 200) {
//            $(d).innerHTML=http_request.responseText;
            var c=0;
            var b;
            var a=http_request.responseText;
            a=a.parseJSON();

            var d=$_("div", "_author_nowplay");
            d.className = "vbody vNowPlaying";
            d.innerHTML=$("nowPlay").innerHTML;
            $("relate_author_content").appendChild(d);
            for(var i=0;i<a.count;i++) { 
              if(a[i] == null) break;
              var e=new Array(
                    getThumb(a[i].podcast_file_name, a[i].pic_mask, a[i].server_id, 1), a[i].podcast_id, a[i].podcast_title, 
                              v._roomUser, a[i].podcast_view, a[i].podcast_file_duration);
              $("relate_author_content").appendChild(v._media_element(e));
            }
            if(parseInt(a.count)>20) { $("author_count1").innerHTML="20"; $S("author_all_view").display="block";} 
            else { $("author_count1").innerHTML=a.count; $S("author_all_view").display="none"; }
            $("author_count2").innerHTML=a.count;
             
          }
        }
      }

    var u="/media_relate.php?op="+this._cate[this._now]+"&pID="+this._pID+"&room_user="+this._roomUser;
    http_request.open('GET', u, true);
    http_request.send(null);
    }

    return;
  },

  _ajaxload: function() {
    makeRequest();
    var d="relate_"+this._cate[this._now];
    http_request.onreadystatechange = function() {
      if (http_request.readyState == 4) {
        if (http_request.status == 200) {
          $(d).innerHTML=http_request.responseText;
        }
      }
    }

    var u="/media_relate.php?op="+this._cate[this._now]+"&pID="+this._pID;
    http_request.open('GET', u, true);
    http_request.send(null);
  }

}
