﻿
/* Master */

function ApplicationLoadHandler(sender, args)
{
    var form = Sys.WebForms.PageRequestManager.getInstance()._form;
    form._initialAction = GetAction();
    form.action = GetAction();
}

function GetAction()
{
    var url = window.location.href;
    return url.replace(window.location.hash , "");
} 

function BeginRequestHandler(sender, args)
{
    $find("ProgressPopup").show();
}

function EndRequestHandler(sender, args)
{
    $find("ProgressPopup").hide();
    
    if (args.get_error() != undefined)
    {
        MessageBox("发生错误", args.get_error().message.split(":", 2)[1]);
        args.set_errorHandled(true);
        return;
    }
    
    window.scrollTo(0, 0);
}

function LayoutSidebars()
{
    var elements = document.getElementsByTagName("*");
    
    var sidebarExp = new RegExp("\\bsidebar\\b");
    var rightbarExp = new RegExp("\\brightbar\\b");
    
    for (i = 0; i < elements.length; i++)
    {
        var element = elements[i];
        if (sidebarExp.test(element.className)
            || rightbarExp.test(element.className))
        {
            element.style.height = element.parentNode.offsetHeight + 'px';
        }
    }
}

/* Selection */       

function _SelectAll(prefix, postfix)
{
     var oArr = _GetColl(prefix, postfix);
     for( var o in oArr )
     {
      oArr[o].checked = true;
     }
}

function _SelectNone(prefix, postfix)
{
     var oArr = _GetColl(prefix, postfix);
     for( var o in oArr )
     {
      oArr[o].checked = false;
     }
}

function _RevSelect(prefix, postfix)
{
     var oArr = _GetColl(prefix, postfix);
     for( var o in oArr )
     {
      oArr[o].checked = !oArr[o].checked;
     }
}

function _GetColl(prefix, postfix)
{
     var i = 0;
     var oArr = new Array();
     while( true)
     {
      var o = getObj(prefix + '_ctrl' + i + '_' + postfix);
      if( o != null )
      {
       oArr.push( o );
      }
      else
      {
       break;
      }
      i++;
     }
     
     return oArr;
}

function getObj( objID )
{
     return document.getElementById( objID );
}

/* VoteBar */

function IncreaseOpposed(postID, voteBarID)
{
    DynamicPopulate.IncreaseOpposed(postID, IncreaseVoteCallback, null, voteBarID);
}

function IncreaseAgreed(postID, voteBarID)
{
    DynamicPopulate.IncreaseAgreed(postID, IncreaseVoteCallback, null, voteBarID);
}

function IncreaseVoteCallback(result, userContext)
{
    if (result == null)
    {
        return;
    }
    
    var agreedNumLabel = document.getElementById(userContext + '_agreedNum');
    agreedNumLabel.innerHTML = result[0];
            
    var opposedNumLabel = document.getElementById(userContext + '_opposedNum');
    opposedNumLabel.innerHTML = result[1];
    
    var agreedCell = document.getElementById(userContext + '_agreed');
    agreedCell.style.width = (100 - GetOpposedPercent(result[1], result[0])) + "%";
    
    var opposedCell = document.getElementById(userContext + '_opposed');
    opposedCell.style.width = GetOpposedPercent(result[1], result[0]) + "%";
    
    agreedCell.style.backgroundColor = result[2];
}

function GetOpposedPercent(opposed, agreed)
{
    if (opposed + agreed == 0)
    {
        return 50;
    }

    return opposed * 100 / (opposed + agreed);
}