﻿if (iDevCenter == null)
    var iDevCenter = new Object();

if (iDevCenter.Links == null)
    iDevCenter.Links = new Object();

/// <summary>
/// 
/// </summary>
iDevCenter.Links.Link = function() {

    /// <summary>
    /// 
    /// </summary>
    this.ToggleVote = function() {

        var _this = this;

        this.imgProgress.show();

        var request = new Object();
        request.LinkID = this.ID;

        var parameters = new Object();
        parameters.method = "post";
        parameters.postBody = Object.toJSON(request);
        parameters.onSuccess = Vote_OnSuccess;
        parameters.onException = Vote_OnError;
        parameters.onFailure = Vote_OnError;
        parameters.onComplete = Vote_OnComplete;

        var ajax = new Ajax.Request("/links/service.aspx?action=togglevote", parameters);

        function Vote_OnSuccess(transport) {

            var response = transport.responseText.evalJSON();

            _this.lblVoteCount.innerHTML = response.TotalVoteCount;
            _this.lnkVoteBox.removeClassName("vote-green");
            _this.lnkVoteBox.removeClassName("votes-green");
            _this.lnkVoteBox.removeClassName("vote-gray");
            _this.lnkVoteBox.removeClassName("votes-gray");
            
            if (response.MemberVoteCount != 0) {

                if (response.TotalVoteCount <= 1)
                    _this.lnkVoteBox.addClassName("vote-green");
                else
                    _this.lnkVoteBox.addClassName("votes-green");

                _this.lnkVoteBox.writeAttribute("title", "کلیک کنید تا رای خود را پس بگیرید");
            }
            else {

                if (response.TotalVoteCount <= 1)
                    _this.lnkVoteBox.addClassName("vote-gray");
                else
                    _this.lnkVoteBox.addClassName("votes-gray");

                _this.lnkVoteBox.writeAttribute("title", "کلیک کنید تا رای بدهید");
            }
        }

        function Vote_OnError() {

            var url = "/link/" + _this.ID + "/vote/?returnurl=" + document.location;

            document.location = url;
        }

        function Vote_OnComplete() {

            _this.imgProgress.hide();
        }
    }

    /// <summary>
    /// 
    /// </summary>
    this.Report = function() {

        var _this = this;

        var request = new Object();
        request.LinkID = this.ID;

        var parameters = new Object();
        parameters.method = "post";
        parameters.postBody = Object.toJSON(request);
        parameters.onSuccess = Report_OnSuccess;
        parameters.onException = Report_OnError;
        parameters.onFailure = Report_OnError;

        var ajax = new Ajax.Request("/links/service.aspx?action=report", parameters);

        function Report_OnSuccess(transport) {

            _this.lnkReport.hide();
            _this.lblReportSubmitted.show();
        }

        function Report_OnError() {

            var url = "/link/" + _this.ID + "/report/?returnurl=" + document.location;

            document.location = url;
        }
    }
}
