PKMedia = {
  Rated : false,	// don't need to set this var to false when response

  rateMedia : function (media_id, rate)
  {
    if (PKMedia.rated) {
      return;
    }
    PKMedia.rated = true;

    var url = "/media/rate";
    var params =  PKUtil.authenticityToken() + "&id=" + media_id + "&rate=" + rate;
    
    var rateToStartHtml = function (rate)
    {
      var stars = [];
      if (rate <= 24)
        stars = [0, 0, 5];
      else if (rate >= 25 && rate <= 74)
        stars = [0, 1, 4];
      else if (rate >= 75 && rate <= 124)
        stars = [1, 0, 4];
      else if (rate >= 125 && rate <= 174)
        stars = [1, 1, 3];
      else if (rate >= 175 && rate <= 224)
        stars = [2, 0, 3];
      else if (rate >= 225 && rate <= 274)
        stars = [2, 1, 2];
      else if (rate >= 275 && rate <= 324)
        stars = [3, 0, 2];
      else if (rate >= 325 && rate <= 374)
        stars = [3, 1, 1];
      else if (rate >= 375 && rate <= 424)
        stars = [4, 0, 1];
      else if (rate >= 425 && rate <= 474)
        stars = [4, 1, 0];
      else
        stars = [5, 0, 0];

      var html = "";
      var i = 0;
      for (i = 0; i < stars[0]; ++i)
      { html += '<img src="/images/rate_stars/full.gif" border="0"/>'; }
      for (i = 0; i < stars[1]; ++i)
      { html += '<img src="/images/rate_stars/half.gif" border="0"/>'; }
      for (i = 0; i < stars[2]; ++i) 
      { html += '<img src="/images/rate_stars/hollow.gif" border="0"/>'; }
      return html;
    };
    
    var rateMediaResult = function (rsp)
    {
      var result = rsp.responseText.evalJSON();
      alert(NativeText.get("successful_rating"));
      var html = NativeText.get("rating"); 
      html += rateToStartHtml(result.rate);
      html += "&nbsp;(" + result.rated_count + NativeText.get("rating_times");
      $("rate_li").innerHTML = html;
    };

    var rateMediaFailed = function (rsp)
    {
      alert(NativeText.get("failure_rating"));
    };    
    
    new Ajax.Request(url,
      {
        method: "post",
        postBody: params,
        onSuccess: rateMediaResult,
        onFailure: rateMediaFailed		
      }
    );	
  },


  commentingMedia : false,
  commentingMediaId : 0,

  commentMedia : function (media_id)
  {
    $("comment_content").focus();
    var content = $("comment_content").value.replace(/^\s*/, "").replace(/\s*$/, "");
    var verify_code_name = "comment_media_verify";
    var verify_code = $F(verify_code_name);

    if (content == "") {
      $("message").innerHTML = NativeText.get("fill_comment");
      return;
    }
    if (verify_code.length != 4 || !PKUtil.validateVerifyCode(verify_code)) {
      $("message").innerHTML = NativeText.get("invalid_verify_code");
      PKUtil.getVerifyImage(verify_code_name, 14, 20, 20);
      $(verify_code_name).value = ""
      return;
    }
    if (PKMedia.commentingMedia) {
      return;
    }
    PKMedia.commentingMedia = true;
    PKMedia.commentingMediaId = media_id;
    var url = "/media/comment";
    var params =  PKUtil.authenticityToken() + "&id=" + media_id + 
      "&content=" + content + "&verify_code=" + verify_code + 
      "&verify_code_name=" + verify_code_name;
  
    var commentMediaResult = function (rsp)
    {
      var verify_code_name = "comment_media_verify";
      r = rsp.responseText.evalJSON();
      if (r.result) {
        $("comment_content").value = "";
        $(verify_code_name).value = "";
        $("message").innerHTML = "";
        PKUtil.retrievePage("/media/list_comments/" + PKMedia.commentingMediaId + "/1", "media_comments_div");
      } else {
        $("message").innerHTML = r.message;
      }
      PKUtil.getVerifyImage(verify_code_name, 14, 20, 20);
      PKMedia.commentingMedia = false;
    }

    var commentMediaFailed = function (rsp)
    {
      $("message").innerHTML = NativeText.get("cant_access_server");
      PKMedia.commentingMedia = false;	
    }
  
    new Ajax.Request(url,
      {
        method: "post",
        postBody: params,
        onSuccess: commentMediaResult,
        onFailure: commentMediaFailed		
      }
    );	
  },

  fillSendingInfo : function (name, number, email)
  {
  //	$('receiver_number').value = number;
    $('receiver_name').value = name;
    $('receiver_email').value = email;
    $('using_contact').value = "1";
  },

  sendingMedia : false,

  sendMedia : function (media_id)
  {
    if (PKMedia.sendingMedia) {
      $("send_message").innerHTML = NativeText.get("media_sending");
      return;
    }

    var verify_code_name = "send_media_verify";
//	var receiver_number = $("receiver_number").value;
    var receiver_number = "";
    var receiver_email = $F("receiver_email");
    var receiver_name = $F("receiver_name");
    var sender_name = $F("sender_name");
    var verify_code = $F(verify_code_name);

    if (receiver_number == "" && receiver_email == "") {
//		$("send_message").innerHTML = NativeText.get("fill_number_or_email");
      $("send_message").innerHTML = NativeText.get("fill_email");
      return;
    }
    if (receiver_number != "" && !PKUtil.validatePhoneNumber(receiver_number)) {
      $("send_message").innerHTML = NativeText.get("invalid_number");
      return;
    }
    if (receiver_email != "" && !/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(receiver_email)) {
      $("send_message").innerHTML = NativeText.get("invalid_email");
      return;
    }	
    if (!PKUtil.validateName(receiver_name) || receiver_name.length > 16) {
      $("send_message").innerHTML = NativeText.get("invalid_receiver_name");
      return;
    }
    if (!PKUtil.validateName(sender_name) || receiver_name.length > 16) {
      $("send_message").innerHTML = NativeText.get("invalid_sender_name");
      return;		
    }
    if (!PKUtil.validateVerifyCode(verify_code)) {
      $("send_message").innerHTML = NativeText.get("invalid_verify_code");
      $(verify_code_name).value = ""
      return;
    }

    PKMedia.sendingMedia = true;

    var url = "/media/send_to_core";
    var params = PKUtil.authenticityToken() + 
            "&receiver_number=" + receiver_number + "&receiver_name=" + receiver_name + "&receiver_email=" + receiver_email +
            "&sender_name=" + sender_name + "&verify_code=" + verify_code + "&media_id=" + media_id + "&verify_code_name=" + verify_code_name;

    var sendMediaResult = function (rsp)
    {
      var verify_code_name = "send_media_verify";
      PKMedia.sendingMedia = false;
      var result = rsp.responseText.evalJSON();
      if (result.result == "success") {
        alert(NativeText.get("send_successfully"));
        PKUtil.closeModal();
      } else {
        $("send_message").innerHTML = result.message + "<br/>";
        $(verify_code_name).value = "";
        PKUtil.getVerifyImage(verify_code_name, 14, 20, 20);
      }
    }

    var sendMediaFailure = function (rsp)
    {
      PKMedia.sendingMedia = false;
      $("send_message").innerHTML = NativeText.get("cant_access_server");
    }

    new Ajax.Request(url,
      {
        method: "post",
        postBody: params,
        onSuccess: sendMediaResult,
        onFailure: sendMediaFailure		
      }
    );
  },

  mediaIds : new Hash,

  deleteMedia : function (media_id, page)
  {
    if (!confirm(NativeText.get("delete_confirm"))) {
      return;
    }

    var url = "/media/delete";
    var params = PKUtil.authenticityToken() + "&id=" + media_id;
    new Ajax.Request(url,
      {
        method: "post",
        postBody: params,
        onSuccess: function(rsp){ PKUtil.retrievePage("/my_pktoon/creation/" + page, "inner_page");},
        onFailure: function(rsp) { alert(NativeText.get("delete_failed")); }		
      }
    );
  },

  changeMediaSecurity : function (media_id, security)
  {
    var url = "/media/change_security";
    var params = PKUtil.authenticityToken() + "&id=" + media_id + "&security=" + security;
    new Ajax.Request(url,
      {
        method: "post",
        postBody: params,
        onSuccess: function(){
                var html = ""
                if (security == "public") {
                  html = "<a href=\"javascript:void(0);\" onclick=\"javascript:PKMedia.changeMediaSecurity(" + media_id + ", 'private');\" class=\"a6\">"+NativeText.get("set_to_private")+"</a>";
                }
                else {
                  html = "<a href=\"javascript:void(0);\" onclick=\"javascript:PKMedia.changeMediaSecurity(" + media_id + ", 'public');\" class=\"a6\">"+NativeText.get("set_to_public")+"</a>";
                }
                $("media_public_span" + media_id).innerHTML = html;
        },
        onFailure: function() { alert("设置失败"); }		
      }
    );
  }
};