//mood dig
TM = {
    varsion: '1.0.0',
    id: 'TMMoodPanel',
    url: 'http://click.bbgsite.com',
    face: [
    {
        className: 'digg',
        name: 'Digg'

    },
	{
        className: 'bury',
        name: 'Bury'

    }
   ],
    chart: {
        normal: 'http://images.bbgsite.com/news/images_sec/face/20.gif',
        max: 'http://images.bbgsite.com/news/images_sec/face/019.gif'

    },
    tips: 'How does this article make you feel? (<span>{0}</span> votes in total)',
    success: 'Vote Successfully! Thank you!',
    alert: 'Do not allow to vote repeatedly',
    timeout: 'Oh,Time Out!! Please try again!',
    cookie: ''

};

function initMoodVote(channel, web_id, kind) {
    TM.cookie = '_' + web_id;
    var url = TM.url + '/mood/moodOpa.php?channel=' + channel + '&web_id=' + web_id + '&kind=' + kind + '&action=0';
    new AjajRequest(url, {
        timeout: 3000,
        onComplete: function(data) {
            Mood.id(TM.id).innerHTML = showMoodVote(channel, web_id, kind, data);
        },
        onError: function() {
            Mood.id(TM.id).innerHTML = TM.timeout;
        }
    });
}
function addMoodVote(channel, web_id, kind, item) {
    var url = TM.url + '/mood/moodOpa.php?channel=' + channel + '&web_id=' + web_id + '&kind=' + kind + '&mood=' + item + '&action=1';
    new AjajRequest(url, {
        onComplete: function(data) {
            if (data == "9") {
                Mood.cookie(TM.cookie, 1);
                initMoodVote(channel, web_id, kind);
            } else {
                Mood.cookie(TM.cookie, 1);
                initMoodVote(channel, web_id, kind);
                alert(TM.success);
            }
        },
        onError: function() {
            Mood.id(TM.id).innerHTML = TM.timeout;
        }
    });
}
function showMoodVote(channel, web_id, kind, votes) {
    var chart,
    chartHeight,
    total = 0,
    max = 0,
    bool = Mood.cookie(TM.cookie, null);
    var length = TM.face.length > 10 ? 10: 6;
    var items = [],
    params = votes.split(',');
    for (var i = 0; i < length; i++) {
        j = i + 1;
        var tmp = params[i].split('#');
        total += Number(tmp[1]);
        items[j] = Number(tmp[1]);
        if (items[j] > max) {
            max = items[j];
        }
    }
	
	var SB = ['<div class="feeling_icon">'];
    for (var i = 1; i <=TM.face.length; i++) {
		
		num = i ==1 ? 5 :3;
		//str = '\'I feel '+TM.face[i - 1].name+' for this article!\\r\\n(This comment is a quick comment by feeling autogenerated.)\'';
        chart = (max == items[i]) ? TM.chart.max: TM.chart.normal;
        chartHeight = Math.round(items[i] / total * 80);
        if (bool == 1) {
            SB.push('<a href="#nogo" onclick="votealert()" onmouseout="MoodShowTip(this,0)" onmouseover="MoodShowTip(this,1)" class="'+TM.face[i - 1].className+'"><strong>'+items[num]+'</strong><span>'+TM.face[i - 1].name+'</span></a>');
        } else {
            SB.push('<a href="#nogo" onclick="addMoodVote(' + channel + ',' + web_id + ',' + kind + ',' + num + ');" onmouseout="MoodShowTip(this,0)" onmouseover="MoodShowTip(this,1)" class="'+TM.face[i - 1].className+'"><strong>'+items[num]+'</strong><span>'+TM.face[i - 1].name+'</span></a>');
        }
    }
	SB.push('</div>');
	

    return SB.join('');
	
	
}
function votealert() {
    alert(TM.alert);
}
Mood = {
    version: '1.0.0'
};
Mood.apply = function(main, servant) {
    if (typeof servant == 'object') {
        for (ppt in servant) {
            main[ppt] = servant[ppt];
        }
    }
    return main;
}; (function() {
    if (/opera/.test(navigator.userAgent.toLowerCase())) {
        Array.prototype.concat = function() {
            var array = [];
            for (var i = 0, length = this.length; i < length; i++) {
                array.push(this[i]);
            }
            for (var i = 0, length = arguments.length; i < length; i++) {
                if (arguments[i].constructor == Array) {
                    for (var j = 0, len = arguments[i].length; j < len; j++) {
                        array.push(arguments[i][j]);
                    }
                } else {
                    array.push(arguments[i]);
                }
            }
            return array;
        };
    }
    Function.prototype.bind = function(object) {
        var __method = this;
        return function() {
            return __method.apply(object, arguments);
        }
    };
    Mood.apply(Mood, {
        id: function(id) {
            return document.getElementById(id);
        },
        cookie: function(name, value) {
            if (value == null) {
                var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)');
                if (arr = document.cookie.match(reg)) {
                    return unescape(arr[2]);
                } else {
                    return null;
                }
            } else {
                var Days = 30;
                var exp = new Date();
                exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
                document.cookie = name + '=' + escape(value) + ';expires=' + exp.toGMTString();
            }
        },
        keys: function(object) {
            var keys = [];
            for (var property in object) {
                keys.push(property);
            }
            return keys;
        },
        values: function(object) {
            var values = [];
            for (var property in object) {
                values.push(object[property]);
            }
            return values;
        },
        isFunction: function(object) {
            return typeof object == "function";
        },
        addMethods: function(source) {
            var ancestor = this.superclass && this.superclass.prototype;
            var properties = Mood.keys(source);
            if (!Mood.keys({
                toString: true
            }).length) properties.push("toString", "valueOf");
            for (var i = 0, length = properties.length; i < length; i++) {
                var property = properties[i],
                value = source[property];
                if (ancestor && Mood.isFunction(value) && value.argumentNames().first() == "$super") {
                    var method = value,
                    value = Mood.apply((function(m) {
                        return function() {
                            return ancestor[m].apply(this, arguments)
                        };
                    })(property).wrap(method), {
                        valueOf: function() {
                            return method
                        },
                        toString: function() {
                            return method.toString()
                        }
                    });
                }
                this.prototype[property] = value;
            }
            return this;
        },
        createClass: function() {
            var parent = null,
            properties = {};
            if (arguments.length > 0) {
                if (Mood.isFunction(arguments[0])) {
                    parent = arguments[0];
                    if (arguments.length > 1) {
                        properties = arguments[1];
                    }
                } else {
                    properties = arguments[0];
                }
            }
            function klass() {
                this.initialize.apply(this, arguments);
            }
            klass.superclass = parent;
            klass.subclasses = [];
            klass.addMethods = Mood.addMethods;
            if (parent) {
                var subclass = function() {};
                subclass.prototype = parent.prototype;
                klass.prototype = new subclass;
                parent.subclasses.push(klass);
            }
            klass.addMethods(properties);
            if (!klass.prototype.initialize) {
                klass.prototype.initialize = function() {};
            }
            klass.prototype.constructor = klass;
            return klass;
        }
    });
})();
var AjajRequest = Mood.createClass();
AjajRequest.List = [];
AjajRequest.CUR_ID = 0;
AjajRequest.getHtmlHead = function() {
    try {
        return document.getElementsByTagName("head").item(0);
    } catch(e) {
        return null;
    }
};
AjajRequest.onStateChange = function(id, data) {
    var ajaj = AjajRequest.List[id];
    if (ajaj) {
        ajaj.state = 1;
        ajaj.data = data;
    }
};
Mood.apply(AjajRequest.prototype, {
    initialize: function(url, options) {
        var defaults = {
            timeout: 5000,
            onComplete: null,
            onError: null
        };
        this.options = Mood.apply(defaults, options || {});
        this.id = "ajaj" + AjajRequest.CUR_ID++;
        AjajRequest.List[this.id] = this;
        this.state = 0;
        this.data = null;
        try {
            this.element = document.createElement("script");
            this.element.setAttribute("type", "text/javascript");
            this.element.setAttribute("charset", "utf-8");
            this.element.setAttribute("src", url + ((url.indexOf("?") != -1) ? "&": "?") + "r=" + ( + new Date()) + "&ajajId=" + this.id);
            AjajRequest.getHtmlHead().appendChild(this.element);
            this.escapedTime = 0;
            this.timer = setInterval(this.onTimer.bind(this), 100);
        } catch(e) {
            if (this.options.onError) this.options.onError();
        }
    },
    onTimer: function() {
        if (this.state != 0) {
            clearInterval(this.timer);
            AjajRequest.getHtmlHead().removeChild(this.element);
            AjajRequest.List[this.id] = null;
            if (this.options.onComplete) {
                this.options.onComplete(this.data);
            }
        } else {
            this.escapedTime += 100;
            if (this.escapedTime > this.options.timeout) {
                clearInterval(this.timer);
                AjajRequest.getHtmlHead().removeChild(this.element);
                AjajRequest.List[this.id] = null;
                if (this.options.onError) {
                    this.options.onError();
                }
            }
        }
    }
});

function MoodShowTip(o,n) {
	
		o.getElementsByTagName("span")[0].style.display = n?"block":"";
	}

function quickComment(str){
	if(str == "" || str == null){return;}
	bbgGet("textarea").value = str;
	document.getElementsByName('frmComment')[0].submit();
	return;
}
