var watchArticle = {
    requestParams:{ },
    ajaxResponse:null,
    requestUrl:'/service/ajax/watch_article.html?',
    config:{
        maxHeight: 0,
        minHeight: 0,
        openRate: .5,
        closeRate: .5
    },

    init:function(){
    },

    setRequestParam:function(name, value){
        this.requestParams[name] = value;
    },

    makeRequest:function(){
        var callBack = {
            success:this.handleSuccess,
            failure:this.handleFailure,
            scope:this
        }
        for(paramName in this.requestParams){
            this.requestUrl += paramName + "=" + this.requestParams[paramName] + "&";
        }
        this.requestUrl = this.requestUrl.slice(0, this.requestUrl.length -1);
        this.request = yuiConnect.asyncRequest('GET', this.requestUrl, callBack);
    },

    handleSuccess:function(response) {
        this.ajaxResponse = YAHOO.lang.JSON.parse(response.responseText);
        if (this.ajaxResponse.success) {
            yuiDom.getElementsByClassName("watchArticle", "span", "", changeWatchArticleDisplay)
        } else {
            mm.Error.add(this.ajaxResponse.error);
            mm.Error.generateBridge();            
        }
    },

    handleFailure:function(response){
        mm.Error.add("Your request to watch this article failed.  Please try again later.");
        mm.Error.generateBridge();
    },



    watchArticle:function() {
        this.makeRequest();
    },

    initBridge:function() {
        var self = watchArticle;
        self.init();
    }
};

function watchArticleBridge(articleId) {
    var self = watchArticle;
    self.setRequestParam("articleId", articleId);
    self.watchArticle();
}


function changeWatchArticleDisplay(watchLink) {
    watchLink.innerHTML = "<img src=\"/images/watching_conv.gif\" alt=\"\"/>";
}

yuiEvent.onDOMReady(watchArticle.initBridge);