﻿var MG_SITE="http://www.mvgod.com";
var TM_SITE="http://www.19679.com";
var PORT = window.location.port;
var HOST_NAME = window.location.hostname;
var MG_URL = MG_SITE+":"+PORT;
var TM_URL = TM_SITE+":"+PORT;
var AUTH_SVR = (HOST_NAME.indexOf('mvgod')>0 ) ?  MG_URL : TM_URL;
var OTHER_SVRS=new Array(MG_URL,TM_URL);
$(function(){if($.browser.msie&&$.browser.version<7){try{document.execCommand("BackgroundImageCache",false,true)}catch(err){}}});
(function($){
  $.fn.autoCenter = function(){
    return this.each(function(){
      $(this).css("position","absolute");
      $(this).css({
                "left": $(document).scrollLeft() / 2 + $(window).width() * 0.47 - $(this).outerWidth()/2,
                "top": $(document).scrollTop() + $(window).height() * 0.3 - $(this).outerHeight()/2
        });
    });
  }
})(jQuery);
$(function(){
  gUser = function()
  {
    var _$umeta =  $("meta[id='umeta']");
    var _site_names = ['新浪微博','腾讯微博'];
    var _user = new Object();
    _user.$umeta = _$umeta;
    _user.id    = _$umeta.length ? parseInt(_$umeta.attr("uid")) : 0;
    _user.sns   = _$umeta.length ? _$umeta.attr("sns") : "";

    _user.getSnsCheckboxInfo = function(){
      if(_user.id < 1 || _user.sns == '')
      {
        return '<span class="synccfg">想将评论同步到微博? 请您先<a href="/setting/snssync">简单配置一下同步</a></span>';
      }else
      {
        var sites = _user.sns.split(",");
        var status = _$umeta.attr("status").split(",");
        var checkboxs = '';
        for(var i = 0;i < sites.length; i++)
        {
          checkboxs += '<input type="checkbox" name="snssource" value="'+sites[i]+'"';
          if(status[i] == 1)
            checkboxs += ' checked';
          checkboxs += '>' + _site_names[i];
        }
        return '<span class="synccfg">同步发送到</span>'+checkboxs +'<a href="/setting/snssync" class="synccfg">增加/修改同步配置</a>';
      }
    };
    
    _user.getCheckedSnsSourceSite = function($parentDiv)
    {
      var sourceSite = "";
      $parentDiv.find("input[name='snssource'][checked]").each(function(i){
        sourceSite = sourceSite + $(this).val() + "|";
      });

      return sourceSite;
    };
    
    return _user;
  }();
  
  gObject = function()
  {
    var _$ometa =  $("meta[id='ometa']");
    var _obj = new Object();
    _obj.ometa= _$ometa;
    _obj.id   = _$ometa.length ? parseInt(_$ometa.attr("name")) : 0;
    _obj.idE  = _$ometa.length ? _$ometa.attr("content") : "";

    return _obj;
  }();
  
  LoadingDialog = function()
  {
    var _load = new Object();
    _load.show = function()
    {
      var loadingDiv = "<div class=\"loading\"></div>";
      if($(".loading").length == 0)
        $("body").append(loadingDiv);
      $(".loading").autoCenter().show();
    };
    
    _load.hide = function()
    {
      $(".loading").hide();
    };
    return _load;
  }();

});

function isEmpty(text)
{
  return (len(text) < 1);
}

function len(text)
{
  var tx=text.replace(/^\s*|\s*$/g,"");
  return tx.replace(/[^\x00-\xff]/g,"**").length;
}

function getSiteBaseUrl()
{
  var l = window.location;
  var url = l.protocol + "//"+ l.host;
  if(l.port)
  {
     url += ":" + port;
  }
  return url;
}
// Takes an ISO time and returns a string representing how
// long ago the date represents.
function prettyCNDate(time)
{
  var date = new Date((time || "").replace(/-/g,"/").replace(/[TZ]/g," "));
  var year = date.getFullYear(); 
  if(year < new Date().getFullYear()) return time;
  var diff = (((new Date()).getTime() - date.getTime()) / 1000),
    day_diff = Math.floor(diff / 86400);

  if ( isNaN(day_diff) || day_diff < 0)
    return;
  else if ( day_diff >= 31 && day_diff <= 365)
  {
    return time.substring(5);
  }else if (day_diff > 365)
    {
    return time.substring(0,10);
    }
    
  return day_diff == 0 && (
    diff < 60 && "刚才" ||
    diff < 120 && "1分钟前" ||
    diff < 3600 && Math.floor( diff / 60 ) + "分钟前" ||
    diff < 7200 && "1小时前" ||
    diff < 86400 && Math.floor( diff / 3600 ) + "小时前") ||
    day_diff == 1 && "昨天" ||
    day_diff < 7 && day_diff + "天前" ||
    day_diff < 31 && Math.ceil( day_diff / 7 ) + "周前";
}

// If jQuery is included in the page, adds a jQuery plugin to handle it as well
if ( typeof jQuery != "undefined" )
  jQuery.fn.prettyCNDate = function()
{
  return this.each(function(){
    //alert(jQuery(this).text());
    var date = prettyCNDate(jQuery(this).text());
    //alert(date);
    if ( date )
      jQuery(this).text( date );
  });
};
jQuery.fn.onlypressnum = function()
{
  return this.each(function()
  {
    $(this).css( {
      imeMode : "disabled",
      "-moz-user-select" : "none"
    });
    $(this).bind("keypress",
      function(a) {
          if (a.ctrlKey == true || a.shiftKey == true) {
            return false
          }
          if ((a.which >= 48 && a.which <= 57
              && a.ctrlKey == false && a.shiftKey == false)
              || a.which == 0 || a.which == 8) {
            return true
          } else {
            if (a.ctrlKey == true
                && (a.which == 99 || a.which == 118)) {
              return false
            } else {
              return false
            }
          }
        }).bind("contextmenu", function() {
      return false
    }).bind("selectstart", function() {
      return false
    }).bind("drop", function() {
      return false
    }).bind("paste", function() {
      return false
    })
  });
};
function isEmail(addr)
{
  var email_reg = new RegExp(/^[_\.0-9a-zA-Z+-]+@([0-9a-zA-Z]+[0-9a-zA-Z-]*\.)+[a-zA-Z]{2,4}$/);
  return email_reg.exec(addr);
}

function getFCKLength(instanceName)
{
  var oEditor = FCKeditorAPI.GetInstance(instanceName) ;
  var oDOM = oEditor.EditorDocument ;
  var len ;
  if ( document.all )
  {
    len = oDOM.body.innerText.length ;
  }else
  {
    var r = oDOM.createRange() ;
    r.selectNodeContents( oDOM.body ) ;
    len = r.toString().replace(/(^[\s]*)|([\s]*$)/g, "").length ;
  }
  return len;
}
function RW(url){  if(url==undefined){window.location.reload(true);}else{window.location.href=url;}}
/** user login */
function ulogin(callback)
{//alert($("#lemail").val() + $("#lpwd").val());
  var email = $("#lemail").val();
  if(isEmpty(email)){$("#lemail").focus();return}
  if(isEmpty($("#lpwd").val())){$("#lpwd").focus();return}
  $.ajax({
    type:"POST",url:"/servlet/login",dataType:'json',async:false,
    data:"email="+email+"&pwd="+$("#lpwd").val()+"&autoLogin="+($("#autoLogin").attr("checked")?1:0),
    success:function(msg) {//alert(resp);
      if(msg[0]==1)
      {//if success
        $('#ulogin').dialog("close");
        var token = msg[2];
        $.cookie("LG","1",{path:"/"});
        if(callback && "0"!=callback){ callback();}else {window.location.href="/";};
        writeToken(token);
      }else if(msg[0] == 0)
      {
        $("#ulogin .error_msg").html(msg[1]);
      }else if(msg[0] == 2)
      {  //if error
        var act_str = msg[1]+'<a href="/accounts/register_complete?email='+email+'&flag=res">重新发送激活信</a>。';
        $("#ulogin .error_msg").html(act_str);
      }else if(msg[0] == 3)
      {
          $("#ulogin .error_msg").html(msg[1]);
      }
    }
  });
}
$(function(){
  var lg = $.cookie("LG");// 1 logged,-1 logouted
  var token = $.cookie("token");
  if(lg=="1" && token){
    writeToken(token);
    $.cookie("LG","0",{path:"/"});
  }else if(lg=="-1")
  {
    clearToken();
    $.cookie("LG","0",{path:"/"});
  }
});
function writeToken(token)
{//write other site cookie
  $.each(OTHER_SVRS, function(i,s){
  if(s.indexOf(document.location.hostname) > 0) return;
    var url=s+"/xaccounts/write_token.jsp?token="+encodeURIComponent(token);
    $("body").append('<script type="text/javascript" src="'+url+'"></script>')
  });
}
function clearToken()
{//clear other site cookie
  $.each(OTHER_SVRS, function(i,s){
  if(s.indexOf(document.location.hostname) > 0) return;
    var url=s+"/xaccounts/clear_token.jsp";
    $("body").append('<script type="text/javascript" src="'+url+'"></script>')
  });
}

function openLogin(callback)
{
  var login_win='<table id="ulogin" style="display:none;margin:6px 6px 6px 10px" title="请登录">';
  login_win+='<tr class="hd" height="30"><td class="f1">本地用户登录</td>';
  login_win+='<td align="center" class="f2"><span class="green">或者</span></td>';
  login_win+='<td class="f3">无需注册。。。</td></tr><tr><td class="f1"><div class="error_msg"></div>';
  login_win+='<p>邮箱：<input id="lemail" name="email" class="textbox" size="20" maxlength="32" type="text" style="ime-mode:disabled;width:145px" /></p>';
  login_win+='<p class="mt5">密码：<input id="lpwd" name="pwd" size="20" maxlength="32" class="textbox" type="password" style="width:145px"/></p>';
  login_win+='<p class="mt5"><input id="autoLogin" type="checkbox" checked name="autoLogin" /><span class="gray font12">下次自动登录</span>';
  login_win+='　　<a class="font12" href="/accounts/lostpwd">找回密码</a></p><br/>';
  login_win+='　　　　<input type="button" name="login" value="　　登录　　" class="tm-bt-button"/>　<br />';
  login_win+='<br/><span class="font12 gray">还没注册？<a href="/accounts/register">点此注册</a></span>';
  login_win+='</td><td class="sep f2" align="center"></td>';
  login_win+='<td valign="top" class="third f3"><br/>';
  login_win+='<a href="/oauth/oauth_pre_connect.jsp?opt=1&source=2" class="byQQ">使用腾讯微博登录</a><br/>';
  login_win+='<a href="/oauth/oauth_pre_connect.jsp?opt=1&source=1" class="bySina">使用新浪微博登录</a><br/><br />';
  login_win+='<ul><li class="gray font12">&bull;&nbsp;&nbsp;电视猫不会记录您的密码。</li>';
  login_win+='<li class="gray font12">&bull;&nbsp;&nbsp;登录后可以和微博同步。</li></ul>';
  login_win+='</td></tr></table>';

  if($('#ulogin').length==0)
    $('body').append(login_win);

  $('#ulogin').dialog({width:480});
  $("input[name='login']").bind("click",function(){ulogin(callback);});
  $('#ulogin').bind('dialogclose', function(event, ui) {
   if("0"==callback) history.back();//window.location.href="/";
  });
  $('#ulogin').dialog('open');
  $('#lemail').bind('focus',function(){$('#ulogin .error_msg').html('');/*$('#lemail').val('');*/});
  $('#lpwd').bind('focus',function(){$('#ulogin .error_msg').html('');$('#lpwd').val('');});
  $('body').keydown(function(event){if(event.keyCode==13)ulogin(callback);});
  var email = $.cookie("user_email");
  if(email)
  {
    $('#lemail').val(email);
    $('#lpwd').focus();
  }
}
/*
function tmbutton()
{
  $(".tm-bt-button").addClass("tm-button");
  $(".tm-bt-button").bind('mouseenter mouseleave',function(){$(this).toggleClass("tm-button-focus");});
};*/
function showFullDesc(){$(".full_desc").show();$(".desc").hide();}
function hideFullDesc(){$(".full_desc").hide();$(".desc").show();};

function initTabPannel(tabId)
{
  $.each($("#"+tabId+" a"),function(){
    the_id = $(this).attr("id");
    var $theTab = $("#t_"+the_id);
    if($(this).parent().hasClass("cur"))
    {
      $theTab.show();
    }else
    {
      $theTab.hide();
    }
    $(this).bind({
      click:function(){
        hide_tab_id = $("#"+tabId+" .cur>a")[0].id;
        the_id = $(this).attr("id");
        if(hide_tab_id==the_id) return;
        $(this).parent().addClass("cur");
        $("#"+hide_tab_id).parent().removeClass("cur");
        

        var action_name = $(this).attr("action-name");
        if(action_name != undefined && !$theTab.attr("got"))
        {
          var url = "/servlet/"+action_name;
          var isObject = $(this).attr("isobj") == 1;
          var action_data = $(this).attr("action-data");
          if(action_data != undefined && action_data.length > 0)
            url += "?" + action_data;
          if(isObject)
          {
            if(url.indexOf('?') > 0) url +="&"; else url += "?";
            url += "objectId=" + gObject.id;
          }
          LoadingDialog.show();
          $.ajax({
            type:"GET",dataType:"json",async:false,
            url:url,
            success: function(resp) {
              if(resp[0]==1)
              {
                $theTab.empty();
                $theTab.append(resp[1]).attr("got","1");
              }
          }});
        }
        LoadingDialog.hide();
        $theTab.show();
        $("#t_"+hide_tab_id).hide();
      }
    });
  });
}
function initGreenBgTabPannel(tabId,className)
{
  $.each($("#"+tabId+" a"),function(){
    the_id = $(this).attr("id");
    if($(this).hasClass(className))
    {
      $("#t_"+the_id).show();
    }else
    {
      $("#t_"+the_id).hide();
    }
    $(this).bind({
      click:function(){
        hide_tab_id = $("#"+tabId).find("a[class*='" + className +"']")[0].id;
        the_id = $(this).attr("id");
        if(hide_tab_id==the_id) return;
        $(this).addClass(className);
        $("#"+hide_tab_id).removeClass(className);
        $("#t_"+hide_tab_id).hide();
        $("#t_"+the_id).show();
      }
    });
  });
}

function showGotScoreTips()
{// show user got score after the form submit
  var score_win = '<div id="got_score_win" class="corner"></div>';
  var $gotScoreDiv = $('#got_score_win');

  if($gotScoreDiv.html()==null)
  {
    $('body').append(score_win);
    $gotScoreDiv = $("#got_score_win");
  }
  var $score_str = $(".score-tips").find("span.got");
  if($score_str.length>0)
  {
    $gotScoreDiv.html($score_str.html());
    var x = ($(window).width()-100)/2;
    var y = ($(window).height()-60)/2;
    $gotScoreDiv.css({"left":x,"top":y}).fadeIn("slow").fadeOut(3000);
  }
}

function isLeapYear(year)
{
  if ((year%400==0) || (year%100!=0) && (year%4==0))
  {
    return true;
  }
  else
  {
    return false;
  }
}

function getDayNum(year, month)
{
  if (month == 2)
  {
    if (isLeapYear(year))
  {
    return 29;
  }
  else
  {
    return 28;
  }
  }
  else if (month == 4 || month == 6 || month == 9 || month == 11)
  {
    return 30;
  }
  
  return 31;
}

function getCurDateDashString()
{
  var d = new Date();
  return d.getFullYear() + "-" + (d.getMonth() + 1) +"-"+d.getDate();
}
/**
 * @see http://www.tvfensi.com/test/test_auto.html
 */
function autoComplateLabelValue($autoLabel,$autoValue,sourceData,isSelectFirst,isHtml)
{
  $autoLabel.autocomplete({
    source: sourceData,selectFirst: isSelectFirst,html: isHtml,
    focus: function(event,ui){
      $autoValue.val("");
      return false;
    },
    select: function(event,ui){
      $(this).val(ui.item.label);
      $autoValue.val(ui.item.value);
      return false;
    }
  });
}
$(function(){
  if($("div:has('.page')").length)
  {
    var n=$(".page").find(".sum").html().replace(/[^0-9]+/g,"");
    $("input[name='totalPageNum']").val(n);
  }
});
function bdLoginEvent()
{
  $(".login").live("click",function(event){
    $(this).unbind("click").die("click"); event.preventDefault();event.stopPropagation();
    var $target;
    if(event.target.tagName=="SPAN")
    {
      $target = $(event.target).parent("a");
    }else
    {
      $target = $(event.target);
    }
    var url = $target.attr("href");var reload = $target.attr("rw");
    if(url!=undefined)
    {
      if(url.charAt(0)==='/')
      {
        openLogin(function(){window.location.href=url;});
      }else if(url.indexOf("javascript:",0) != -1 && url.length>13)
      {
        openLogin(function(){
          eval(url.substring(11));
          if(reload) RW();
        });
      }else
      {
        openLogin(RW);
      }
    }else
    {
      openLogin(RW);
    }
  });
};

function placeholerForm(formId,keyId)
{
  $F = $("#"+formId);$K = $("#"+keyId);
  if($F.length ==0||$K.length ==0) return;
  $K.css("color","#ccc");
  var tip= $K.attr("title");
  $K.val(tip).bind({click:function(){
    if($(this).val()==tip){$(this).val('');$(this).css("color","#000");};
  },blur:function(){
    if($.trim($(this).val())==''){$(this).val(tip);$(this).css("color","#ccc");}
  }});
  $F.bind("submit",function(){var w=$.trim($K.val());return w!=''&&w!=tip;});
}
$(function(){
  placeholerForm("searchform","key");
});

/* object related script */
/**
 * star rating jQuery
 */
if(window.jQuery) (function($)
{
  // IE6 Background Image Fix
  if ($.browser.msie) try { document.execCommand("BackgroundImageCache", false, true)} catch(e) {};
  // Thanks to http://www.visualjquery.com/rating/rating_redux.html
  $.fn.starRating = function(objId,logged)
  {
    var $this = $(this);
    var defaultStar = $(this).find('li[class="curRating"]');
    //alert(defaultStar.length);
    var defaultRating = defaultStar.length == 1 ? parseInt(defaultStar.text()) : 0;
    $.each($this.find("li"),function(){
      if(parseInt($(this).text()) <= defaultRating)
      {
        $(this).addClass("on");
      }
    });
    //alert(defaultRating);
    $(this).find('li a').bind({
      focus:function(){$(this).blur();},
      click:function(){if(!logged){openLogin(RW)} else {var a=objId;var b=$(this).text();rateObj(a,b);}},
      mouseover:function(){
        var curRating = parseInt($(this).text());
        //$this.next('.rating_tips').html($(this).attr('title'));
        $.each($this.find("li"),function(){
          if(parseInt($(this).text()) <= curRating)
          {
            $(this).addClass("on");
          }else
          {
            $(this).removeClass("on");
          }
        });
      },
      mouseout:function(){//$this.next('.rating_tips').html('');
        $.each($this.find("li"),function(){
          if(parseInt($(this).text()) <= defaultRating)
          {
            $(this).addClass("on");
          }else
          {
            $(this).removeClass("on");
          }
        });
      }
    })
  }
})(jQuery);

function rateObj(objectId,score)
{
  if(score == 0)
  {
    alert("请给个评价吧！");
    return false;
  }
  $.ajax({
    type:"POST",dataType:"json",
    url:"/servlet/scoreobject",
    data:"objectId="+objectId+"&score="+score,
    success: function(resp) {
      var msg = eval(resp);
      if(msg[0]==1)
      {
        //$('#rating'+objectId).remove();
        RW();
      }else if(msg[0] == -1)
      {
        openLogin(RW);
      }else
      {
        alert(msg[1]);
      }
    }
  });
}
function commentObj(objId,reload)
{
  var CMT='<div id="ucomment" class="alignlt" style="width:300px;display:none" title="我的简短评论"><textarea id="comment" rows="5" style="width:99%" maxlength="140" class="textareabox"></textarea><div class="syncwb">'+gUser.getSnsCheckboxInfo()+'</div><div class="rt">还可以输入 <span id="cc_comment"></span>字</div><input type="hidden" id="objectId"/></div>';
  if($("#ucomment").length == 0)
    $("body").append(CMT);
  $('#comment').limitText();
  $("#ucomment").dialog({
    /*modal: true,*/
    width: 460,
    buttons: {
      "确定":function() {
        var comment = $("#comment").val();
        if(!isEmpty(comment))
        {
          postComment($('#objectId').val(),comment,reload);
        }
        $(this).dialog("close").dialog( "destroy" );
      },
      "取消": function() {
          $(this).dialog("close").dialog( "destroy" );
        }
    },
    open: function(){
      $('#comment').focus();
      $("#objectId").val(objId);
      //$('#comment').limitText();
    },
    close: function(){if(reload) RW();}
  });
}

function postComment(objectId,comment,reload)
{
  if(isEmpty(comment)) return;
  var se = "&"+gObject.id + "=" + encodeURIComponent(gObject.idE)
      + "&sourceSite=" + gUser.getCheckedSnsSourceSite($('#ucomment'));
  $.ajax({
    type:"POST",dataType:"json",async:false,
    url:"/servlet/postcomment",
    data:"objectId="+objectId+"&contents="+encodeURIComponent(comment)+se,//fix '%' bug
    success: function(resp) {
      if(resp[0]==1)
      {
        RW()
      }else if(resp[0] == -1)
      {
        openLogin(RW);
      }else
      {
        alert(resp[1]);
      }
    }
  });
}
function agrComment(commentId)
{
  var cookieName = "agrc_"+commentId;
  /*if($.cookie(cookieName))
  {
  alert("这条短评你已经投过票了！");return;
  }*/
  var $ac = $("#"+cookieName);
  $.ajax({
  type:"POST",dataType:"json",
  url:"/servlet/agreecomment",
  data:"commentId="+commentId,
  success:function(resp){
      if(resp[0]==1)
      {
        $ac.html(parseInt($ac.text())+ 1);
        //$.cookie(cookieName,"1",{"expires":30});
      }else if(resp[0] == -1)
      {
        openLogin(RW);
      }else
      {
        alert(resp[1]);
      }
    }
  });
}
function agrReview(reviewId,useful)
{
  var $ac = useful ? $(".agrr_"+reviewId):$(".agrr_u"+reviewId);
  $.ajax({
  type:"POST",dataType:"json",
  url:"/servlet/agreereview",
  data:"reviewId="+reviewId + "&agree="+ (useful? 1:0),
  success:function(resp){
      if(resp[0]==1)
      {
        $.each($ac,function(){$(this).html(parseInt($(this).html())+ 1);});
      }else if(resp[0]===2)
      {
      $.each($ac,function(){$(this).html(parseInt($(this).html())+ 1);});
      var $eac = useful ? $(".agrr_u"+reviewId):$(".agrr_"+reviewId);
      $.each($eac,function(){$(this).html(parseInt($(this).html())- 1);});
      }else if(resp[0] == -1)
      {
        openLogin(RW);
      }else
      {
        alert(resp[1]);
      }
    }
  });
}
function viewFullReview(flag,reviewId,objectId)
{
  var $short = $("#short_"+reviewId+flag); 
  var $full = $("#full_"+reviewId+flag); 
  
  $.ajax({
    type:"POST",dataType:"json",async:false,
    url:"/servlet/getreview",
    data:"reviewId="+reviewId +"&objectId="+objectId+"&flag="+flag,
    success:function(resp){
      if(resp[0]==1)
      {
        $short.hide();
        $full.find(">a").css("margin-left","10px");
        $full.prepend(resp[1]);
        $full.show();
        $full.attr("got","1");
        $full.find("a.hide").bind("click",function(){
          $short.show();
          $full.hide();
        });
      }else
      {
        alert(resp[1]);
      }
    }
  });
}
/** to bind event for comments & reviews in object show page.eg:drama_summary.jsp */
function bdCommentEvents()
{
  $("a[comid]").live("click",function(){agrComment($(this).attr('comid'));$(this).blur();});
}
function bdViewReviewEvents()
{
  //var $ra = $(".revlst .f1 a[revid],.revlst .f3 a[revid]");
  $("a[revid][flag][oid]").live("click",function(){
    var reviewId =$(this).attr('revid');
    var flag =$(this).attr('flag');
    var objectId =$(this).attr('oid');
    var $short = $("#short_"+reviewId+flag); 
    var $full = $("#full_"+reviewId+flag); 
    
    if($full.attr("got"))
    {
      $short.toggle();$full.toggle();
    }else
    {
      viewFullReview(flag,reviewId,objectId);
    }
    
    var $arrowBtn = $("#_"+reviewId+"t");
    if($arrowBtn.length > 0)
    {
      var img = $arrowBtn.children("img")[0];
      if($full.is(":visible"))
      {
        img.src = img.src.replace("arrow1","arrow2");
        img.alt="-";img.title="收起全文";
      }else
      {
        img.src = img.src.replace("arrow2","arrow1");
        img.alt="+";img.title="展开全文";
      }

      $arrowBtn.blur();
    }
  });
}
function bCREvents()
{
  bdCommentEvents();
  bdViewReviewEvents();
  bdReplyEvent();
}
function changeReviewReplyNum($replyDiv, increment)
{
  $.each($replyDiv.siblings(".desc2").find(".replyCount"),function(){
    var count = parseInt($(this).text().replace(new RegExp("[^0-9]+"),"")) + increment;
    $(this).text("回复(" + count + ")");
  });
}
function delReviewThread()
{
  if(!confirm("确认删除这条回复吗？")) return;
  var $delLink = $(this);
  var threadId = $delLink.attr("delid");
  var typeKey = $delLink.attr("typekey");
  var params = "threadId="+threadId;
  var servletName = "remove"+typeKey+"thread";
  var $replyDiv = $delLink.closest(".replybox");
  $.ajax({
  type:"POST",dataType:"json",
  url:"/servlet/"+servletName,
  data:params,
  success: function(resp) {
    if(resp[0] == 1)
    {
      $delLink.closest("li").remove();
      changeReviewReplyNum($replyDiv,-1);
    }else if(resp[0] == -1)
    {
      openLogin(RW);
    }else
    {
      alert(resp[1]);
    }
  }
  });
}
function bdReplyEvent()
{
  //$(".revlst li > a[delid][class*='del'],.replylst li > a[delid][class*='del']").live("click",delReviewThread);
  $(".replylist li a[delid][class*='del']").live("click",delReviewThread);
  $(".replyCount").live("click",function(event){
    //idkey, resid, objid
    event.preventDefault();event.stopPropagation();
    var objkey = $(this).attr("objkey");
    var resId = $(this).attr("resid");
    var objectId = $(this).attr("objid");
    var $parentDiv = $(this).closest(".desc2").parent();
    var $replyDiv = $parentDiv.children(".replybox");
    if($replyDiv.length > 0 )
    {
      $replyDiv.toggle();
      if($replyDiv.is(":visible"))
      {
        $replyDiv.find("textarea").val("").focus().removeAttr("thread");
      }
    }else
    {
      var servletName,params;
      if(objkey == 'review')
      {
        servletName = "GetReviewRepliesWithTextAreaServlet";
        params = "reviewId="+resId +"&objectId="+objectId;
      }else if(objkey == 'comment')
      {
        servletName = "GetCommentRepliesWithTextAreaServlet";
        params = "commentId="+resId +"&objectId="+objectId;
      }else
      {
        return false;
      }
      $.ajax({
        type:"POST",dataType:"json",url:"/servlet/"+servletName, data:params,
        success: function(resp) {
          if(resp[0] == 1)
          {//alert(resp);
            $replyDiv = $parentDiv.children(".replybox");
            if($replyDiv.length > 0) return false;
            
            $parentDiv.append(resp[1]);
            $replyDiv = $parentDiv.children(".replybox");
            var $replyTextBox = $replyDiv.find("textarea").TextAreaExpander(20,120).focus();
            $replyDiv.find("a.combtn").click(function(){
              var contents = $.trim($replyTextBox.val());
              if(contents.length > 0)
              {
                postReply($replyDiv,resId,contents,objkey);
              }
              $replyTextBox.focus();
            });
          }else if(resp[0] == -1)
          {
            openLogin(RW);
          }else
          {
            alert(resp[1]);
          }
        }
      });
    }
  });

  $(".replylist .content").live('mouseenter mouseleave',function(){
    $(this).find(".op span,a[delid]").toggle();
  });
  //ajax reply list
  $(".rmain .replylist a[threadid],.revlst .replylist a[threadid],.culst .replylist a[threadid]").live('click',function(e){
    if($(this).hasClass("login")) {openLogin();return false;}
    
    var threadId = $(this).attr("threadid");
    var $user =$(this).closest(".content").children("a.user");
    var $replyTextBox = $(this).closest(".replybox").find("textarea");
    $replyTextBox.attr("thread",threadId);
    var originText = $replyTextBox.val();
    if(originText == '' || originText.substring(0,3)!='回复@')
    {
      originText = '回复@'+$user.text()+':' + originText;
    }else
    {
      originText = originText.replace(new RegExp("回复@[^:]+:"),'回复@'+$user.text()+':');
    }
    $replyTextBox.val(originText).focus();
    setPosToEnd($replyTextBox[0]);
  });

  //review show page
  $(".review_thread_div .replylist a[threadid]").live('click',function(e){
    if($(this).hasClass("login")) {openLogin();return false;}
    
    var threadId = $(this).attr("threadid");
    var $user =$(this).closest(".content").children("a.user");
    var $replyTextBox = $("#replyform textarea");
    $("#replyform input[name='threadId']").val(threadId);
    var originText = $replyTextBox.val();
    if(originText == '' || originText.substring(0,3)!='回复@')
    {
      originText = '回复@'+$user.text()+':' + originText;
    }else
    {
      originText = originText.replace(new RegExp("回复@[^:]+:"),'回复@'+$user.text()+':');
    }
    $replyTextBox.val(originText).focus();
    setPosToEnd($replyTextBox[0]);
  });
};

function postReply($replyDiv,resId,contents,objkey)
{
  var $replyTextBox = $replyDiv.find("textarea.textbox");
  var threadId = $replyTextBox.attr("thread");
  if(threadId == undefined) threadId = 0;
  
  var sourceSite = gUser.getCheckedSnsSourceSite($replyDiv);
  var servletName,params;
  if(objkey == 'review')
  {    
    servletName = "PostReivewReplyServlet";
    params = "reviewId="+resId +"&threadId="+threadId;
  }else if(objkey == 'comment')
  {
    var objtype = $replyTextBox.attr("objtype");
    var resid = $replyTextBox.attr("resid");
    servletName = "PostCommentReplyServlet";
    params = "commentId="+resId +"&threadId="+threadId+"&typeId=" + objtype + "&resId=" + resid;
  }else
  {
    return false;
  }

  params += "&contents=" + encodeURIComponent(contents)+"&sourceSite="+sourceSite;
  
  $.ajax({
    type:"POST",dataType:"json",async:false,
    url:"/servlet/"+servletName,data:params,
    success: function(resp) {
      if(resp[0] == 1)
      {//alert(resp);
        $replyTextBox.val("").removeAttr("thread");
        $replyDiv.find(".replylist").prepend(resp[1]);
        changeReviewReplyNum($replyDiv,1);
      }else if(resp[0] == -1)
      {
        openLogin(RW);
      }else
      {
        alert(resp[1]);
      }
    }
  });
}
function validForm()
{
  if(isEmpty($("#title").val())) {alert("请写个标题吧！"); $("#title").focus();return false;}
  if($("#reivewFrm :radio:checked").length == 0) {alert("请给个评价吧！");return false;}
  var c = len($("#contents").val());
  if(c==0){alert("请填写您的评论内容！"); $("#contents").focus();return false;}
  if(c < 140) 
  {
    if(!confirm("少于140字的评论将被做为简短评论发表，是否同意？"))
    {
      return false;
    }
  }
  $("#post").attr("disabled", "disabled");
  $("#post").val(" 正在保存... ");
  return true;
}
function validatePostReplyForm(f)
{
  $("#rplerr").fadeOut();
  var length = len($("#contents").val());
  if (length < 1)
  {
    $("#contents").focus();
    return false;
  }
  if (length > 1500)
  {
    $("#rplerr").fadeIn();
    return false;
  }

  $("#post").attr("disabled", "disabled");
  $("#post").val(" 正在保存... ");
  return true;
}
function o_bookmark(typeId,resourceId)
{
  var $fav = $("#favo"+resourceId);
  var add = $fav.attr("op")=="1";
  var action = add ? "favobject":"delfavobject";
  $.ajax({
    type: "POST",
    url: "/servlet/"+action,async:false,
    data: "typeid="+typeId+"&resourceid="+resourceId,
    dataType:'json',
    success : function(resp){
      if(resp[0]==1)
      {
        if(add)
        {
          $fav.attr("op","0");
          $fav.children("span").text("取消关注");
        }else
        {
          $fav.attr("op","1");
          $fav.children("span").text("关注");
        }
      }else if(resp[0] == -1)
      {
        openLogin(RW);
      }else
      {
        alert(resp[1]);
      }
    }
  });
};
/*
 * 举报按钮有两种表现形式：1 是不动的Link，2 是mouse over上去后才显示出Link
 * 1. 固定按钮Link用法: <a href="javascript:;" id="review-23" class="report nl">举报</a>
 * id="review-23" 表示这一个针对review的举报，其reviewId=23。为了在发送举报时提供被举报内容的作者信息，页面显示作者Link时
 * 其a 必须有个id属性，id属性形式规定为：id="author-xxx"，这里xxx和举报Link　id属性中的reviewId对应
 * 如：<a id="author-23" href=...
 * class="report" 表示这是一个举报Link，页面事件脚本会根据这个class name绑定click事件
 * 2. mouse over后出现Link用法: <div class="rpt_data">xxxx <div class="report" id="review-23"></div></div>
 * 使用页面必须加载这个JS文件。
 * 特别说明：为了在发送举报数据的同时提供被举报数据的作者信息供参考，需给显示作者的Link增加一个id="author-xxx"属性，
 * xxx为数据块的resoure id,如上面review的 id 23。
 */
function reportTB(e)
{
  var $rptLink = $(e.target);
  var rptId = $rptLink.attr("id"),info='',obj_type='',obj_id=0;
  if(rptId)
  {
    var rptObj=rptId.split("-");//review-xxxx
    obj_type=rptObj[0];
    obj_id=rptObj[1];

    info = "<p>Object type:" + obj_type +", object Id:" + obj_id +"</p>";
    //alert(info);
  }
  //user info
  var $author = $("a[flag='author-"+obj_id+"']").first();
  if($author.length == 0)
  {
    $author = $rptLink.closest(".r").find("a.author:eq(0)");
  }
  if($author.length > 0)
    info += "<p>User:<a href=\"" + $author.attr("href") + "\">" + $author.html()+ "</a></p>";
  //title, url
  var track_url , title;
  var $title = $rptLink.closest(".r").find("h3 a:eq(0)");
  if($title.length == 0)
    $title = $rptLink.closest(".rmain").find("a[class*='reviewtitle']");
  if($title.length > 0)
  {
    track_url = $title.attr("href");
    title = $title.text();
  }else
  {
    $title = $rptLink.closest(".content_wrap").find("span.floor");//for topic thread list
    if($title.length > 0) title = $("h1").html() + "[" + $title.text() + "]";
  }

  track_url = track_url || document.location;
  title = title || $("h1").html();
 
  //alert(title + "|" + track_url +"\n" + info);
  postReportTB(title,track_url,info);
}
function postReportTB(title,track_url,extInfo)
{
  var report_form='<div id="report" class="alignlt" style="display:none" title="举报"><div class="clear mt10">请选择您举报的类别（<span class="red">必选</span>）：<table class="grid" style="width:100%"><tr><td><input id="Arpt" value="101" name="chocla" type="radio"><label for="Arpt">广告或垃圾信息</label></td><td><input id="Brpt" value="102" name="chocla" type="radio"><label for="Brpt">色情、淫秽或低俗内容</label></td></tr><tr><td><input id="Crpt" value="103" name="chocla" type="radio"><label for="Crpt">激进时政或意识形态话题</label></td><td><input id="Drpt" value="104" name="chocla" type="radio"><label for="Drpt">中奖等欺诈信息</label></td></tr><tr><td><input id="Erpt" value="105" name="chocla" type="radio"><label for="Erpt">骚扰、谩骂等不雅词句、人身攻击</label></td><td></td></tr></table></div><br />您可以填写更多举例说明：<textarea id="rptReason" rows="5" style="width:99%"></textarea><span class="orange" style="display:none"><b>感谢举报！</b></span></div>';

  var $rptDiv = $("#report");
  //if(!$rptDiv) 
  $("body").append(report_form);
  $("#report").dialog({
    //modal: true, // IE6 bug, page content will be hided.
    width: 465,
    buttons: {
      "确定":function() {
        var typeId=$("#report input[type='radio']:checked").val();
        if(typeId)
        {
          var desc = encodeURIComponent($("#rptReason").val());
          //alert(title);
          desc = extInfo+desc;
          //alert(desc);return;
          $.ajax({
            type:"POST",url: "/servlet/issuereport",
            processData: false,async:false,
            data: "typeId="+typeId+"&title="+encodeURIComponent(title)+"&desc="+desc+"&owner="+track_url,
            dataType:'json',
            success: function(resp){
            if(resp[0] == -1)
              {
                openLogin(RW);
              }else if(resp[0]!=1)
              {
                alert(resp[1]);
              }
            },error: function(){
              $(this).dialog("close");
            }
          });
          $the=$(this);//fix FF4
          $(".orange").show().fadeOut("slow",function(){
          $the.dialog("close");});
        }else
        {
          $("#report .red").fadeOut().fadeIn();
        }
      },
      "取消": function() {
        $(this).dialog("close");
      }
    },
    open: function(){
      $(".orange").hide();
      //$('#rpt_title').html($("h1").html()/* + '<br/>'+$(".topic .sub-i").html()*/);
      $('#rptReason').val('').focus();
      $("#report input[type='radio']").attr("checked",false);
    },
    close: function(){$("#rptReason").val('');}
  });
}

function bindShareAndReportEventsInlist(selector)
{
  $(selector).live("mouseenter", function(e)
  {
    var $rtpWrap =  $(this).find(".report-wrap");
    var $rptLink = $rtpWrap.children("a");
    //alert($rptLink.length);
    if($rptLink.length===0)
    {
      $rtpWrap.append('<a href="javascript:;" class="report">举报</a>');
    }

    var $sharetoWrap =  $(this).find(".shareto-wrap");
    var $sharetoLink = $sharetoWrap.children("a");
    if($sharetoLink.length===0)
    {
      $sharetoWrap.append('<a href="javascript:;" class="link-share in-list">分享到</a>');
      //alert($sharetoWrap.text());
    }

    var $wrapDiv = $(this).find(".inlist_menu");
    if($wrapDiv.find("a._top").length===0)
    {
      $wrapDiv.append('|<span><a href="#" class="_top">TOP</a></span>');
    }
    $wrapDiv.css("visibility","visible");
  })
  .live("mouseleave", function(e)
  {
    $(this).find(".inlist_menu").css("visibility","hidden");
  });
};
function openErrorRpt()
{
  var error_report_win = '<div id="errrpt" title="建议或错误报告" style="display:none">';
  error_report_win += '<div class="article">感谢您给电视猫提供宝贵意见！</div><br/><table class="font12">';
  error_report_win += '<tr><td align="right" nowrap>当前页面标题：</td><td><span id="ptitle" class="gray"></span></td></tr>';
  error_report_win += '<tr><td valign="top" nowrap>当前页面地址：</td><td><div id="purl" class="gray" style="overflow: hidden;width:380px"></div></td></tr>';
  error_report_win += '<tr><td align="right">问题或建议：</td>';
  error_report_win += '<td><input id="errTitle" name="errTitle" autofocus="true" class="textbox" maxlength="50" size="50" type="text"/></td>';
  error_report_win += '</tr><tr><td valign="top">详细说明：</td>';
  error_report_win += '<td><textarea id="error" name="error" class="textareabox" rows="8" style="width:350px"></textarea></td>';
  error_report_win += '</tr><tr><td><span class="orange" style="display:none">感谢您的报告！</span></td><td align="center">';
  error_report_win += '<input type="button" value="提交" id="submitBtn" class="tm-bt-button" /></td></tr>';
  error_report_win += '</table></div>';

  if(  $("#errrpt").length==0 )
  {
    $("body").append(error_report_win);
  }
  $("#errrpt").dialog({width:500});
  $("#errTitle").val('');
  $("#error").val('');
  $("#ptitle").text($("h1").text());
  $("#purl").text(window.location.href);
  $('#submitBtn').bind('click',function(){
    var title = $("#errTitle").val();
    var error = $("#error").val();
    if(isEmpty(title))
    {
        alert("请输入概述 ，50字以内！");
        $("#errTitle").focus();
        return false;
    }
    if(isEmpty(error))
    {
        alert("请输入详细说明！");
        $("#error").focus();            
        return false;
    }
    if($("#redurl").val()=='null')
    {
      $("#redurl").val(document.referrer);
    }
    $.ajax({
      type:"POST",url: "/servlet/issuereport",
      processData: false,async:false,
      data: "typeId=201&title="+encodeURIComponent(title)+"&desc="+error+"&owner="+window.location.href,
      dataType:'json',
      success: function(resp){
        var status = resp[0];
        if(status==1)
        {
          $("#errrpt .orange").show().fadeOut(1000,function(){$("#errrpt").dialog("close");});
        }else if(status == -1)
        {
          openLogin(RW);
        }else if(status!=1)
        {
          alert(resp[1]);
        }
      },error: function(){
        $(this).dialog("close");
      }
    });
  });
};
function bindErrorReportEvent()
{
  $.each($(".rpt"),function()
  {
    if(!$(this).hasClass("login"))
    {
      $(this).bind("click",openErrorRpt);
    }
  });
}
function bindReportEvent()
{
  $(".report").live("click",function(e){
    if(!$(this).hasClass("login"))
    {
      reportTB(e);
    }
  });
}
$(function()
{
  bindShareAndReportEventsInlist(".desc2,.thread_list li");
  bindErrorReportEvent();
  bindReportEvent();
});

/*
 * 分享按钮，可以指定分享数据标题，地址，图片等。
 * <a href="javascript:;" data-title="关于飞翔的华丽冒险 (电视猫评论 - 关于电视栏目《实话实说》)" 
 * 　　data-url="http://xxx" class="button-share in-list" data-pic="htp://domain.com/xxx.jpg">分享到</a>
 * 
 * class： "button-share" 表示是显示为一个按钮; "link-share" 表示显示为一个链接
 * 
 * class: "in-list"表示使用在数据列表中。当使用在列表中时，一行数据的最外层div
 * 可以有一个class="r",且有一个h3做为一行数据的标题，如：
 * <div class="r"><h3><a href="xxx" title="aaaa">AAAAA</a></h3> ....<a href="javascript:;" 
 * class="button-share in-list">分享到</a></div>
 * 那么分享数据被使用的优先顺序是：
 * 1. 不使用在列表中时
 *   data-title > h1; data-url > window.location.href（当前页面的URL）
 *   data-desc > article.text
 * 2. 用在列表中时
 *   data-title > div.r h3 a.text; data-url > div.r h3 a.href > 当前页面的URL
 *   data-desc > div.r .desc.text
 *   
 * data-pic > #mainpic img.src 
 * 
 */
$(function(){
  var DESC_LIMIT_LEN = 140;
  var decode = decodeURIComponent, encode = encodeURIComponent, locale_url = encode(window.location.href);
  var h1 = $("h1").text() || "";
  var $thumbs = $("#mainpic").find("img"),thumb_url = $thumbs.length ? $thumbs[0].src : '';
  var shareto = function(title,url,pic_src,content)
  {
    var TD = "http://www.tvmao.com/share_link.jsp?vendor=";
    var long_title = content.length > 0 ? [ title, content ].join(" ") : title;
    if (long_title.length > DESC_LIMIT_LEN) long_title.substring(0, DESC_LIMIT_LEN);
    var toRenren = TD + "bshare_renren&url=http://www.connect.renren.com/share/sharer?url=" + url, 
        toKaixin = TD + "bshare_kx&url=http://www.kaixin001.com/repaste/bshare.php?rtitle=" + encode(title)
              + "&rcontent=" + encode(content) + "&rurl=" + url,
        toSina = "javascript:void((function(s,d,e,r,l,p,t,z,c){var%20f='http://v.t.sina.com.cn/share/share.php?appkey=3619752581',u=z||d.location,p=['&url=',e(u),'&title=',e(t||d.title),'&source=',e(r),'&sourceUrl=',e(l),'&content=',c||'gb2312','&pic=',e(p||'')].join('');function%20a(){var%20_url='"
              + TD + "bshare_sina&url='+[f,p].join('');if(!window.open(_url,'mb',['toolbar=0,status=0,resizable=1,width=440,height=430,left=',(s.width-440)/2,',top=',(s.height-430)/2].join('')))u.href=_url;};if(/Firefox/.test(navigator.userAgent))setTimeout(a,0);else%20a();})(screen,document,encodeURIComponent,'','','"
              + pic_src + "','" + decode(long_title) + "','" + decode(url) + "','utf-8'));",
        toMsn = TD + "bshare_msn&url=http://profile.live.com/badge?url=" + url + "&title="
              + encode(title) + "&description=" + encode(content) + "&screenshot=" + (pic_src || ""), 
        toQQ = TD + "bshare_qq&url=http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url="
              + url + "&title=" + encode(title),
        toTengxun = "javascript:void((function(){var f=encodeURI('" + title + "');var c='" + url + "';var e=encodeURI('ecec092e04154eda8b108fb934fb4819');var b=encodeURI('"
              + pic_src + "');var a='';var d='http://v.t.qq.com/share/share.php?url='+c+'&appkey='+e+'&site='+a+'&pic='+b+'&title='+f;window.open('"
              + TD + "bshare_tx&url=' + d,'','width=700, height=680, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, location=yes, resizable=no, status=no')})());",
        toSohu = "javascript:void((function(s,d,e,r,l,p,t,z,c){var f='http://t.sohu.com/third/post.jsp?',u=z||d.location,p=['&url=',e(u),'&title=',e(t||d.title),'&content=',c||'gb2312','&pic=',e(p||'')].join('');function%20a(){if(!window.open('"
              + TD + "bshare_sohu&url=' + [f,p].join(''),'mb',['toolbar=0,status=0,resizable=1,width=660,height=470,left=',(s.width-660)/2,',top=',(s.height-470)/2].join('')))u.href=[f,p].join('');};if(/Firefox/.test(navigator.userAgent))setTimeout(a,0);else%20a();})(screen,document,encodeURIComponent,'','','','"
              + decode(long_title) + "','" + decode(url) + "','utf-8'));",
        toLink = "javascript:;";
    var sources = new Array();
    sources[0] = new Array("toSina",'',toSina,"新浪微博");
    sources[1] = new Array("toTengxun",'',toTengxun,"腾讯微博");
    sources[2] = new Array("toSohu",'',toSohu,"搜狐微博");
    sources[3] = new Array("toKaixin",'target="_blank"',toKaixin,"开心网");
    sources[4] = new Array("toRenren",'target="_blank"',toRenren,"人人网");
    sources[5] = new Array("toMsn",'target="_blank"',toMsn,"MSN空间");
    sources[6] = new Array("toQQ",'target="_blank"',toQQ,"QQ空间");
    sources[7] = new Array("toLink",'',toLink,"复制链接地址");
    var divstr = '<ul class="sharelinks">';
    for(var i in sources)
    {
      divstr += '<li class="' + sources[i][0] + '"><a ' + sources[i][1]+' href="' + sources[i][2] + '">' + sources[i][3] + '</a></li>';
    }
    divstr += '</ul>';
    
    return divstr;
  };
  var copyUrl = function (url)
  {
    var copyDiv = '<div id="copyUrl" title="复制链接地址："><p class="mt10 font12">点击此框中的任意位置可选中链接地址，按 “Ctrl + C”即可复制。<br/>您可以将此地址粘贴到邮件或发送给聊天的朋友。</p>';
    copyDiv += '<input class="copybox mt10" style="width:96%;height:20px;padding:2px;" type="text" readonly="readonly" onclick="this.focus(); this.select();"  value="'+url+'"></div>';
    var $copyDiv = $("#copyUrl");
    if( $copyDiv.html()==null)
    {
      $("body").append(copyDiv);
      $copyDiv = $('#copyUrl');
    }
    $copyDiv.dialog({width: 400,
      open: function(event, ui){$copyDiv.children("input").select()},
      close: function(event,ui){$copyDiv.remove()}
    });
  };
  $("body").click(function(event)
  {
    var $shareButton = $(event.target), $shareDiv, _title, _url, _pic, _desc;
    //if(!$shareButton.is("a")) return false;
    var isShareButton = $shareButton.hasClass("button-share") || $shareButton.hasClass("link-share");
    if(!isShareButton)
    {//兼容<a href="javascript:;" class="link-share share"><span>分享到</span></a>
      isShareButton = $shareButton.parent().hasClass("button-share") || $shareButton.parent().hasClass("link-share")
      if(isShareButton) $shareButton = $shareButton.parent();
    }
    if(isShareButton)
    {
      event.preventDefault();
      event.stopPropagation();

      //alert($shareButton.attr("data-title"));
      if($shareButton.hasClass("sharing-on"))
      {//if click current button ,close the dialog
        $shareDiv = $("#shareSources");
        $shareDiv.removeClass("sharing-on");
        if($shareDiv && $shareDiv.dialog("isOpen")){$shareDiv.dialog("close");}
      }else
      {
        if($(".sharing-on").length>0)
        {//close opened dialog
          $shareDiv = $("#shareSources");
          $shareDiv.removeClass("sharing-on");
          if($shareDiv && $shareDiv.dialog("isOpen")){$shareDiv.dialog("close");}
        }
        
        $shareDiv = $("#shareSources");
        if($shareDiv.length == 0)
        {
          $("body").append('<div id="shareSources" title="分享到。。。"></div>');
          $shareDiv = $("#shareSources");
        }
        _desc = $shareButton.attr("data-desc") || "";
        _url = $shareButton.attr("data-url") || "";
        _title = $shareButton.attr("data-title") || "";
        var $desc,$title;
        if($shareButton.hasClass("in-list"))
        {
          if(_title.length == 0)
          {
            $title = $shareButton.closest(".r").find("h3 a:eq(0)");
            if($title.length === 0)
            {
              _title = h1;
            }else
            {
              if(_url.length == 0) _url = $title.attr("href");
              _title = $title.text();
            }
          }
          if(_url.length == 0) _url = locale_url;
          if(_url.charAt(0)==='/') _url = (function (){var a=window.location,b=a.protocol+"//"+a.host;a.port&&(b+=":"+port);return b})() + _url;
          if(_desc.length === 0)
          {
            $desc = $shareButton.parents(".desc,.desc2");
            if($desc.length > 0) _desc = $desc.text();
            else
            {
              $desc = $shareButton.closest(".r").find(".desc,.desc2");
              if($desc.length > 0) _desc = $desc.text();
            }            
          }
        }else
        {
          $desc = $("article,.article");
          if($desc.length > 0) _desc = $.trim($desc.text());
        }
        if(_title.length == 0) _title = h1;
        if(_url.length == 0) _url = locale_url;
        if(_url.charAt(0)==='/') _url = (function (){var a=window.location,b=a.protocol+"//"+a.host;a.port&&(b+=":"+port);return b})() + _url;

        if(_desc.length > 0)
        {
          _desc = _desc.replace(/\r\n|\r|\n/g,"");
          _desc = _desc.substring(0,Math.min(DESC_LIMIT_LEN,_desc.length));
        }
        //alert(_desc);
        _pic = $shareButton.attr("data-pic") || thumb_url;
        $shareDiv.html(shareto(_title, _url, _pic, _desc));
        $(".toLink").bind("click",function(){copyUrl(decode(_url));});
        var position = $shareButton.position();
        $shareDiv.dialog({
          close: function(event, ui) {
            $shareButton.removeClass("sharing-on");
          }
        });
        $shareButton.addClass("sharing-on");
      }
    }else
    {
      if($shareButton[0].tagName.toLowerCase()==="a" && $shareButton.parent('[class^="to"]').length > 0)
      {//click a sharing link, close dialog
        $(".sharing-on").removeClass("sharing-on");
        $shareDiv = $("#shareSources");
        if($shareDiv && $shareDiv.dialog("isOpen")){$shareDiv.dialog("close");}
      }
    }
    $(window).bind("resize",function(){
      if ( !($.browser.msie && $.browser.version < 7))//exist bug in IE6,cancel reposition
        $( "#shareSources" ).dialog( "option", "position", 'center' );
    });
  });
});
var setPosToEnd = function(o){ 
  if (o.setSelectionRange) { 
      setTimeout(function(){
      o.setSelectionRange(o.value.length, o.value.length);  
      o.focus();} ,0);
  }else if (o.createTextRange) {
    var textrange=o.createTextRange();
    textrange.moveStart("character",o.value.length);
    textrange.moveEnd("character",0);
    textrange.select();
  }
};

function yellowTipsPos()
{
  var $topyellow = $(".top_yellow_tip");
  var $yellowdiv = $(".yellow_div");
  if($topyellow.length < 1) return;
  $yellowdiv.show();
  var topDivTop = $topyellow.position().top;
  //$yellowdiv.offset({top:topDivTop});
  $(window).scroll(function(){
   var scrollTop = $(this).scrollTop();
    if(scrollTop > topDivTop)
    {
      $yellowdiv.offset({top:scrollTop});
    }else
    {
      $yellowdiv.offset({top:topDivTop});
    }
  });
  $topyellow.find(".close").bind("click",function(){$yellowdiv.hide();});
}
$(function(){yellowTipsPos();});
