(function() {
    var $C = YAHOO.util.Connect;
    var $D = YAHOO.util.Dom;
    var $E = YAHOO.util.Event;
    var _4 = YAHOO.util.KeyListener;
    var _5 = YAHOO.env.ua.ie;
    var _6 = (_5 == 6);
    var _7 = YAHOO.env.ua.gecko;
    var _8 = YAHOO.env.ua.webkit;
    var _9 = YAHOO.env.ua.opera;
    var _a = YAHOO.lang.isString;
    FF.cfg = {
        textlimit: {
            new_post: 240,
            privatenew_post: 140,
            help: 140,
            pro_bas_detail: 200,
            pro_int_misc: 200,
            pro_int_music: 200,
            pro_int_movie: 200,
            pro_int_books: 200,
            pro_int_sports: 200,
            pro_int_persons: 200
        },
        cityselector: {
            pro_bas_province: ["pro_bas_city", "city"],
            pro_bas_homeprovince: ["pro_bas_homecity", "homecity"]
        },
        formpattern: {
            dregister: {
                requiredlist: "email, realname, loginpass, verifypass",
                verifylist: {
                    "verifypass": "loginpass"
                },
                relist: "email, loginpass",
                charlist: {
                    "realname": 12
                }
            },
            login: {
                requiredlist: "loginname, loginpass"
            },
            reset: {
                requiredlist: "email",
                relist: "email"
            },
            invite: {
                requiredlist: "sendto"
            },
            setloginname: {
                requiredlist: "newname"
            },
            setpassword: {
                requiredlist: "loginpass, newpass, verifypass",
                verifylist: {
                    "verifypass": "newpass"
                },
                relist: "loginpass, newpass, verifypass"
            },
            setrealname: {
                requiredlist: "realname",
                charlist: {
                    "realname": 12
                }
            },
            setemail: {
                requiredlist: "email",
                relist: "email"
            },
            setim: {
                requiredlist: "msn",
                relist: "msn"
            },
            setmobile: {
                requiredlist: "mobile",
                relist: "mobile"
            }
        },
        formtip: {
            "s-status": {
                "ct": "\u8f93\u5165\u6587\u5b57\u67e5\u627e\u6d88\u606f"
            },
            "s-user": {
                "rn": "\u8f93\u5165\u6635\u79f0\u67e5\u627e\u7528\u6237"
            },
            sharepanel: {
                "u": "http://"
            }
        },
        formfocus: "login, register, reset, new_post, help",
        re: {
            loginpass: /^[\x21-\x7e]{4,32}$/ig,
            newpass: /^[\x21-\x7e]{4,32}$/ig,
            verifypass: /^[\x21-\x7e]{4,32}$/ig,
            email: /^[\w\.\-\+]+@([\w\-]+\.)+[a-z]{2,4}$/ig,
            msn: /^[\w\.\-\+]+@([\w\-]+\.)+[a-z]{2,4}$/ig,
            mobile: /(^1(3|5|8)[0-9]{9}$)|(^0060[0-9]{9}$)/
        }
    };
    FF.Form = function(_b) {
        this.form = {};
        this.url = "";
    };
    FF.Form.prototype = {
        mkForm: function(_c, _d, _e, _f) {
            _c = _c || "post";
            _d = _d || window.location.href;
            var el = document.createElement("form");
            this.form = el;
            el.setAttribute("method", _c);
            el.setAttribute("action", _d);
            if (_e) {
                for (var itm in _e) {
                    el.appendChild(this.getInputByMap([itm, _e[itm], "hidden"]));
                }
            }
            if (!_f) {
                YAHOO.util.Dom.setStyle(el, "display", "none");
            }
            document.body.appendChild(el);
        },
        getInputByMap: function(map) {
            var _13 = map.shift(),
            _14 = map.shift(),
            _15 = map.shift();
            return this.createInputEl(_13, _14, _15);
        },
        createInputEl: function(_16, _17, _18) {
            var el = document.createElement("input");
            if (_16) {
                el.setAttribute("name", _16);
            }
            if (_17) {
                el.setAttribute("value", _17);
            }
            el.setAttribute("type", _18 || "hidden");
            return el;
        },
        appendInputElement: function(_1a, _1b, _1c) {
            var el = this.createInputEl(_1a, _1b, _1c);
            if (this.form) {
                this.form.appendChild(el);
            }
        },
        post: function(_1e, fn) {
            if (_1e) {
                YAHOO.util.Connect.setForm(this.form);
                if (this.url == "") {
                    this.url = window.location.href;
                }
                var cb = {
                    success: function(o) {
                        var res = o.responseText;
                        var r = new FF.response(res);
                        r.show();
                        if (fn) {
                            fn();
                        }
                    },
                    failure: function(o) {},
                    timeout: 5000
                };
                $C.asyncRequest("post", this.url, cb);
            } else {
                this.form.submit();
            }
        }
    };
    FF.ajax_prompt = function(pos, _26) {
        this.pos = pos;
        var _27 = document.createElement("span");
        this.id = YAHOO.util.Dom.generateId(_27);
        YAHOO.util.Dom.addClass(_27, "ajaxprompt");
        document.body.appendChild(_27);
        YAHOO.util.Dom.setX(_27, pos[0] + 5);
        YAHOO.util.Dom.setY(_27, pos[1] + 5);
        var _28 = document.createTextNode(_26);
        _27.appendChild(_28);
        this.container = _27;
    };
    FF.ajax_prompt.prototype = {
        change: function(_29) {
            this.text = _29;
            YAHOO.util.Dom.get(this.id).firstChild.nodeValue = this.text;
        },
        off: function() {
            disappear(this.id, 1.5);
        }
    };
    FF.sysmsg = function(_2a) {
        if (_2a) {
            this.new_post = _2a;
        } else {
            this.new_post = this.get();
        }
    };
    FF.sysmsg.prototype = {
        show: function() {
            var arr = YAHOO.util.Dom.getElementsByClassName("sysmsg");
            if (arr.length > 0) {
                function f(el) {
                    el.parentNode.removeChild(el);
                }
                YAHOO.util.Dom.batch(arr, f);
            }
            var msg = document.createElement("div");
            YAHOO.util.Dom.addClass(msg, "sysmsg");
            var _2e = document.createTextNode(this.new_post);
            msg.appendChild(_2e);
            var _2f = YAHOO.util.Dom.get("main");
            YAHOO.util.Dom.insertBefore(msg, _2f);
        },
        get: function() {
            var _30 = document.cookie;
            var pos = _30.indexOf("sm=");
            if (pos != -1) {
                var _32 = pos + 3;
                var end = _30.indexOf(";", _32);
                if (end == -1) {
                    end = _30.length;
                }
                var _34 = _30.substring(_32, end);
                _34 = _34.replace(/-/g, "+").replace(/_/g, "/");
                for (var i = 3 - (_34.length % 4); i > 0; i--) {
                    _34 += "=";
                }
                _34 = utf8to16(BASE64_decode(unescape(_34)));
                document.cookie = "sm=;";
                return _34;
            } else {
                return "";
            }
        }
    };
    FF.response = function(str) {
        var p = 0,
        q = 0;
        var _39 = str.slice(p, p = str.indexOf(":", p));
        if (_39 == "success") {
            this.status = true;
        } else {
            if (_39 == "failure") {
                this.status = false;
            } else {
                this.status = "unknown";
            }
        }
        var _3a = str.slice(++p, q = str.indexOf(":", p + 1));
        if (this.status != "unknown") {
            if (_3a == "tip") {
                this.type = "tip";
                this.posttext = str.substring(q + 1);
            } else {
                if (_3a == "msg") {
                    this.type = "msg";
                    this.posttext = str.substring(q + 1);
                } else {
                    if (_3a == "pop") {
                        this.type = "pop";
                        this.posttext = str.substring(q + 1);
                    } else {
                        this.type == "msg";
                        this.posttext = str.substring(p + 1);
                    }
                }
            }
        } else {
            this.type = "msg";
            this.posttext = str;
        }
    };
    FF.response.prototype = {
        show: function() {
            switch (this.type) {
            case "tip":
                break;
            case "msg":
                var msg = new FF.sysmsg();
                if (msg.new_post == "") {
                    msg.new_post = this.posttext;
                }
                msg.show();
                break;
            case "pop":
                var obj = unserialize(utf16to8(this.posttext));
                this.createTag("div", "poverlay", null, "root");
                var win = this.createTag("div", "pwindow", null, "root");
                var _3e = document.createElement("h4");
                _3e.appendChild(document.createTextNode(obj["title"]));
                win.appendChild(_3e);
                var _3f = document.createElement("div");
                YAHOO.util.Dom.addClass(_3f, "ff");
                _3f.innerHTML = obj["posttext"];
                win.appendChild(_3f);
                var _40 = document.createElement("div");
                YAHOO.util.Dom.addClass(_40, "act");
                win.appendChild(_40);
                var _41 = {
                    "type": "button",
                    "class": "formbutton",
                    "name": "button",
                    "value": "\u786e\u5b9a"
                };
                var _42 = this.createTag("input", null, _41, _40);
                YAHOO.util.Event.on(_42, "click",
                function() {
                    win.parentNode.removeChild(win);
                    disappear("poverlay", 0.3);
                    window.location.href = window.location.href;
                });
                break;
            default:
                break;
            }
        },
        createTag: function(_43, id, _45, _46) {
            var tag = document.createElement(_43);
            if (id) {
                tag.setAttribute("id", id);
            }
            if (_45) {
                for (var itm in _45) {
                    if (itm == "class") {
                        YAHOO.util.Dom.addClass(tag, _45[itm]);
                    } else {
                        tag.setAttribute(itm, _45[itm]);
                    }
                }
            }
            if (_46) {
                if (_46 == "root") {
                    document.body.appendChild(tag);
                } else {
                    _46.appendChild(tag);
                }
            }
            return tag;
        }
    };
    function post_form(el) {
        var ev = null;
        if (post_form.arguments.length == 2) {
            ev = post_form.arguments[1];
        }
        if (YAHOO.util.Dom.hasClass(el, "as")) {
            if (ev) {
                YAHOO.util.Event.preventDefault(ev);
            }
            as(el);
        } else {
            if (el.getAttribute("id") == "login" && el["former"]) {
                if (ev) {
                    YAHOO.util.Event.preventDefault(ev);
                }
                var _4b = new FF.Form();
                _4b.form = el;
                _4b.url = "/login";
                _4b.appendInputElement("ajax", "yes");
                var _4c = el["former"].value;
                function fn() {
                    post_former(_4c);
                }
                _4b.post(true, fn);
            } else {
                if (!ev) {
                    el.submit();
                }
            }
        }
    }
    function as(el) {
        var _4e = new FF.Form();
        _4e.form = el;
        _4e.appendInputElement("ajax", "yes");
        _4e.post(true);
    }
    function post_former(str) {
        str = BASE64_decode(str);
        var _50 = new FF.Form();
        var o = unserialize(str);
        _50.mkForm(o["method"], o["url"], o["data"]);
        if (_50.form.getAttribute("method").toLowerCase() == "get") {
            window.location.href = _50.form.getAttribute("action");
        } else {
            _50.post();
        }
    }
    function disappear(el, _53) {
        el = YAHOO.util.Dom.get(el);
        var _54 = new YAHOO.util.Anim(el, {
            opacity: {
                to: "0"
            }
        },
        _53, YAHOO.util.Easing.easeInStrong);
        _54.onComplete.subscribe(function() {
            el.parentNode.removeChild(el);
        });
        _54.animate();
    }
    function utf16to8(str) {
        var out, i, len, c;
        out = "";
        len = str.length;
        for (i = 0; i < len; i++) {
            c = str.charCodeAt(i);
            if ((c >= 1) && (c <= 127)) {
                out += str.charAt(i);
            } else {
                if (c > 2047) {
                    out += String.fromCharCode(224 | ((c >> 12) & 15));
                    out += String.fromCharCode(128 | ((c >> 6) & 63));
                    out += String.fromCharCode(128 | ((c >> 0) & 63));
                } else {
                    out += String.fromCharCode(192 | ((c >> 6) & 31));
                    out += String.fromCharCode(128 | ((c >> 0) & 63));
                }
            }
        }
        return out;
    }
    function utf8to16(str) {
        var out, i, len, c;
        var _5f, _60;
        out = "";
        len = str.length;
        i = 0;
        while (i < len) {
            c = str.charCodeAt(i++);
            switch (c >> 4) {
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
            case 6:
            case 7:
                out += str.charAt(i - 1);
                break;
            case 12:
            case 13:
                _5f = str.charCodeAt(i++);
                out += String.fromCharCode(((c & 31) << 6) | (_5f & 63));
                break;
            case 14:
                _5f = str.charCodeAt(i++);
                _60 = str.charCodeAt(i++);
                out += String.fromCharCode(((c & 15) << 12) | ((_5f & 63) << 6) | ((_60 & 63) << 0));
                break;
            default:
                break;
            }
        }
        return out;
    }
    function BASE64_encode(src) {
        var _62 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
        var str = new Array();
        var ch1, ch2, ch3;
        var pos = 0;
        while (pos + 3 <= src.length) {
            ch1 = src.charCodeAt(pos++);
            ch2 = src.charCodeAt(pos++);
            ch3 = src.charCodeAt(pos++);
            str.push(_62.charAt(ch1 >> 2), _62.charAt(((ch1 << 4) + (ch2 >> 4)) & 63));
            str.push(_62.charAt(((ch2 << 2) + (ch3 >> 6)) & 63), _62.charAt(ch3 & 63));
        }
        if (pos < src.length) {
            ch1 = src.charCodeAt(pos++);
            str.push(_62.charAt(ch1 >> 2));
            if (pos < src.length) {
                ch2 = src.charCodeAt(pos);
                str.push(_62.charAt(((ch1 << 4) + (ch2 >> 4)) & 63));
                str.push(_62.charAt(ch2 << 2 & 63), "=");
            } else {
                str.push(_62.charAt(ch1 << 4 & 63), "==");
            }
        }
        return str.join("");
    }
    function BASE64_decode(src) {
        var _69 = new Array( - 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);
        var str = new Array();
        var ch1, ch2, ch3, ch4;
        var pos = 0;
        src = src.replace(/[^A-Za-z0-9\+\/]/g, "");
        while (pos + 4 <= src.length) {
            ch1 = _69[src.charCodeAt(pos++)];
            ch2 = _69[src.charCodeAt(pos++)];
            ch3 = _69[src.charCodeAt(pos++)];
            ch4 = _69[src.charCodeAt(pos++)];
            str.push(String.fromCharCode((ch1 << 2 & 255) + (ch2 >> 4), (ch2 << 4 & 255) + (ch3 >> 2), (ch3 << 6 & 255) + ch4));
        }
        if (pos + 1 < src.length) {
            ch1 = _69[src.charCodeAt(pos++)];
            ch2 = _69[src.charCodeAt(pos++)];
            if (pos < src.length) {
                ch3 = _69[src.charCodeAt(pos)];
                str.push(String.fromCharCode((ch1 << 2 & 255) + (ch2 >> 4), (ch2 << 4 & 255) + (ch3 >> 2)));
            } else {
                str.push(String.fromCharCode((ch1 << 2 & 255) + (ch2 >> 4)));
            }
        }
        return str.join("");
    }
    function unserialize(ss) {
        var p = 0,
        ht = [],
        hv = 1;
        var _74 = function() {
            p++;
            return null;
        };
        var _75 = function() {
            p++;
            var b = (ss.charAt(p++) == "1");
            p++;
            return b;
        };
        var _77 = function() {
            p++;
            var i = parseInt(ss.substring(p, p = ss.indexOf(";", p)), 10);
            p++;
            return i;
        };
        var _79 = function() {
            p++;
            var d = ss.substring(p, p = ss.indexOf(";", p));
            switch (d) {
            case "NAN":
                d = NaN;
                break;
            case "INF":
                d = Number.POSITIVE_INFINITY;
                break;
            case "-INF":
                d = Number.NEGATIVE_INFINITY;
                break;
            default:
                d = parseFloat(d);
                break;
            }
            p++;
            return d;
        };
        var _7b = function() {
            p++;
            var l = parseInt(ss.substring(p, p = ss.indexOf(":", p)), 10);
            p += 2;
            var s = utf8to16(ss.substring(p, p += l));
            p += 2;
            return s;
        };
        var _7e = function() {
            p++;
            var n = parseInt(ss.substring(p, p = ss.indexOf(":", p)), 10);
            p += 2;
            var a = [];
            ht[hv++] = a;
            for (var i = 0; i < n; i++) {
                var k;
                switch (ss.charAt(p++)) {
                case "i":
                    k = _77();
                    break;
                case "s":
                    k = _7b();
                    break;
                case "U":
                    k = _83();
                    break;
                default:
                    return false;
                }
                a[k] = _84();
            }
            p++;
            return a;
        };
        var _85 = function() {
            var k, a = [];
            for (var i = 0; i < 7; i++) {
                p++;
                k = _7b();
                p++;
                a[k] = _77();
            }
            var dt = new Date(a["year"], a["month"] - 1, a["day"], a["hour"], a["minute"], a["second"], a["millisecond"]);
            ht[hv++] = dt;
            return dt;
        };
        var _8a = function() {
            p++;
            var l = parseInt(ss.substring(p, p = ss.indexOf(":", p)), 10);
            p += 2;
            var cn = utf8to16(ss.substring(p, p += l));
            p += 2;
            var n = parseInt(ss.substring(p, p = ss.indexOf(":", p)), 10);
            p += 2;
            if (cn == "Date" && n == 7) {
                return _85();
            }
            if (eval(["typeof(", cn, ") == \"undefined\""].join(""))) {
                eval(["function ", cn, "(){}"].join(""));
            }
            var o = eval(["new ", cn, "()"].join(""));
            ht[hv++] = o;
            for (var i = 0; i < n; i++) {
                var k;
                switch (ss.charAt(p++)) {
                case "s":
                    k = _7b();
                    break;
                case "U":
                    k = _83();
                    break;
                default:
                    return false;
                }
                if (k.charAt(0) == "\x00") {
                    k = k.substring(k.indexOf("\x00", 1) + 1, k.length);
                }
                o[k] = _84();
            }
            p++;
            if (typeof(o.__wakeup) == "function") {
                o.__wakeup();
            }
            return o;
        };
        var _91 = function() {
            p++;
            var l = parseInt(ss.substring(p, p = ss.indexOf(":", p)), 10);
            p += 2;
            var cn = utf8to16(ss.substring(p, p += l));
            p += 2;
            var n = parseInt(ss.substring(p, p = ss.indexOf(":", p)), 10);
            p += 2;
            if (eval(["typeof(", cn, ") == \"undefined\""].join(""))) {
                eval(["function ", cn, "(){}"].join(""));
            }
            var o = eval(["new ", cn, "()"].join(""));
            ht[hv++] = o;
            if (typeof(o.unserialize) != "function") {
                p += n;
            } else {
                o.unserialize(ss.substring(p, p += n));
            }
            p++;
            return o;
        };
        var _83 = function() {
            p++;
            var l = parseInt(ss.substring(p, p = ss.indexOf(":", p)), 10);
            p += 2;
            var sb = [];
            for (var i = 0; i < l; i++) {
                if ((sb[i] = ss.charAt(p++)) == "\\") {
                    sb[i] = String.fromCharCode(parseInt(ss.substring(p, p += 4), 16));
                }
            }
            p += 2;
            return sb.join("");
        };
        var _99 = function() {
            p++;
            var r = parseInt(ss.substring(p, p = ss.indexOf(";", p)), 10);
            p++;
            return ht[r];
        };
        var _84 = function() {
            switch (ss.charAt(p++)) {
            case "N":
                return ht[hv++] = _74();
            case "b":
                return ht[hv++] = _75();
            case "i":
                return ht[hv++] = _77();
            case "d":
                return ht[hv++] = _79();
            case "s":
                return ht[hv++] = _7b();
            case "U":
                return ht[hv++] = _83();
            case "r":
                return ht[hv++] = _99();
            case "a":
                return _7e();
            case "O":
                return _8a();
            case "C":
                return _91();
            case "R":
                return _99();
            default:
                return false;
            }
        };
        return _84();
    }
    function reflow() {
        if (YAHOO.env.ua.ie) {
            document.body.style.zoom = document.body.style.zoom == "1" ? "100%": "1";
        }
    }
    function initInfos() {
        var el = YAHOO.util.Dom.get("user_infos");
        if (!el) {
            return;
        }
        var _9c = false,
        _9d = YAHOO.util.Dom.getElementsByClassName("collapse", "li", el),
        _9e = _9d.length > 0 ? true: false,
        _9f = YAHOO.util.Dom.get("bio");
        if (_9f) {
            var _a0 = _9f.getElementsByTagName("span")[0];
            var _a1 = _a0.innerText || _a0.textContent;
            if (_a1.length > 60) {
                _9c = true;
            }
        }
        if (_9e || _9c) {
            if (_9c) {
                var _a2 = _a0.innerHTML;
                var _a3 = _a1.substring(0, 50).replace(/</, "&lt;");
                _a0.innerHTML = _a3;
            }
            var _a4 = document.createElement("a");
            _a4.appendChild(document.createTextNode("(\u66f4\u591a...)"));
            _a4.setAttribute("title", "\u70b9\u51fb\u5c55\u5f00");
            _a4.setAttribute("href", "javascript:void 0");
            if (_9f) {
                _a4.style.marginLeft = ".5em";
                _9f.appendChild(_a4);
            } else {
                el.appendChild(_a4);
            }
            var _a5 = document.createElement("a");
            _a5.appendChild(document.createTextNode("(\u6536\u8d77...)"));
            _a5.setAttribute("title", "\u70b9\u51fb\u6536\u8d77");
            _a5.setAttribute("href", "javascript:void 0");
            _a5.style.display = "none";
            el.appendChild(_a5);
            YAHOO.util.Event.on(_a4, "click",
            function(e) {
                if (_9c) {
                    _a0.innerHTML = _a2;
                }
                YAHOO.util.Dom.addClass(el, "visible");
                YAHOO.util.Dom.removeClass(_9d, "collapse");
                this.style.display = "none";
                _a5.style.display = "inline";
            });
            YAHOO.util.Event.on(_a5, "click",
            function(e) {
                if (_9c) {
                    _a0.innerHTML = _a3;
                }
                YAHOO.util.Dom.removeClass(el, "visible");
                YAHOO.util.Dom.addClass(_9d, "collapse");
                this.style.display = "none";
                _a4.style.display = "inline";
            });
        }
    }
    function initSearch() {
        var $D = YAHOO.util.Dom;
        var $E = YAHOO.util.Event;
        var el = $D.get("search-switch");
        var _ab = $D.get("searchr-form");
        if (_ab) {
            $E.on(_ab, "submit",
            function(e) {
                $E.stopEvent(e);
                window.location.href = "/q/" + encodeURIComponent(this.q.value);
            });
        }
        if (!el) {
            return;
        }
        var frm = $D.get("searchpanel");
        var _ae = $D.get("keyword");
        var _af = el.getElementsByTagName("a");
        $E.on(_af, "click",
        function(ev) {
            if ($D.hasClass(this, "current")) {
                _ae.focus();
                $E.preventDefault(ev);
            } else {
                var _b1 = this.id.substring(7);
                $D.removeClass(_af, "current");
                $D.addClass(this, "current");
                _ae.name = _b1;
                if (YAHOO.lang.trim(_ae.value) != "") {
                    sendRequest(ev);
                } else {
                    $E.preventDefault(ev);
                }
            }
        });
        $E.on(frm, "submit", sendRequest);
        function sendRequest(e) {
            if (e) {
                $E.stopEvent(e);
            }
            if (_ae.name == "q") {
                var url = "/q/" + encodeURIComponent(_ae.value);
                window.location.href = url;
            } else {
                frm.submit();
            }
        }
    }
    function initClick() {
        $E.on(document, "click", handle);
        function handle(ev) {
            if (ev.button == 0) {
                var _b5 = $E.getTarget(ev);
                if (_b5.tagName.toLowerCase() == "img") {
                    _b5 = $D.getAncestorBy(_b5);
                }
                if (_b5.tagName.toLowerCase() == "a" && $D.hasClass(_b5, "post_act")) {
                    $E.stopEvent(ev);
                    dispatch(_b5);
                } else {
                    if ($D.hasClass(_b5, "auto-select")) {
                        _b5.select();
                    } else {
                        if ($D.hasClass(_b5, "sharebtn")) {
                            $E.stopEvent(ev);
                            if (((window.location.href.indexOf("/home") != -1) || (window.location.href.indexOf("/shares") != -1)) && confirm("\u628a\u672c\u6309\u94ae\u6dfb\u52a0\u5230\u6d4f\u89c8\u5668\u7684\u5de5\u5177\u680f\u4e0a\uff0c\u5c31\u53ef\u4ee5\u5feb\u901f\u4e0e\u4f60\u7684\u597d\u53cb\u5206\u4eab\u7f51\u9875\u3002\r\n\u662f\u5426\u67e5\u770b\u8be6\u7ec6\u7684\u64cd\u4f5c\u6307\u5357\uff1f")) {
                                window.location.href = "http://help.fanfou.com/share_button.html";
                            }
                        }
                    }
                }
            }
        }
        function dispatch(el) {
            var url = el.getAttribute("href"),
            arr = {};
            var pos = url.lastIndexOf("/");
            var _ba = url.substring(0, pos).lastIndexOf("/");
            if ($D.hasClass(el, "sp")) {
                var _bb = url.substring(pos + 1);
                arr["action"] = _bb;
            } else {
                var _bc = url.substring(pos + 1);
                var _bb = url.substring(_ba + 1, pos);
                var _bd = _bb.split(".")[0];
                arr["action"] = _bb;
                arr[_bd] = _bc;
            }
            var _be = el.getAttribute("token"),
            _bf = "&token=" + _be;
            arr["token"] = _be;
            if (_bb == "favorite.add") {
                var _c0 = "action=" + _bb + "&" + _bd + "=" + _bc + "&ajax=yes" + _bf;
                var _c1 = el.parentNode;
                var _c2 = new FF.ajax_prompt($D.getXY(el), "\u6b63\u5728\u52a0\u5165\u6536\u85cf...");
                $C.asyncRequest("post", "/" + _bb, {
                    success: function(o) {
                        var res = FF.util.getEvalRes(o);
                        if (res.status) {
                            _c2.change(res.msg);
                            _c2.off();
                            var _c5 = $D.getAncestorByTagName(el, "li");
                            if (_c5) {
                                var _c6 = document.createElement("span");
                                $D.addClass(_c6, "star");
                                _c6.setAttribute("title", "\u5df2\u6536\u85cf");
                                _c6.appendChild(document.createTextNode("\u5df2\u6536\u85cf"));
                                _c1.appendChild(_c6);
                            }
                            $D.addClass(el, "faved");
                            el.setAttribute("href", url.replace(/favorite\.add/, "favorite.del"));
                            el.setAttribute("title", "\u53d6\u6d88\u6536\u85cf");
                            el.firstChild.nodeValue = "\u53d6\u6d88\u6536\u85cf";
                        } else {
                            _c2.change(res.msg);
                            _c2.off();
                        }
                    },
                    failure: function(o) {
                        _c2.change("\u670d\u52a1\u5f02\u5e38\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5");
                        _c2.off();
                    },
                    timeout: 5000
                },
                _c0);
            } else {
                if (_bb == "favorite.del") {
                    var _c0 = "action=" + _bb + "&" + _bd + "=" + _bc + "&ajax=yes" + _bf;
                    var _c1 = el.parentNode;
                    var _c2 = new FF.ajax_prompt($D.getXY(el), "\u6b63\u5728\u53d6\u6d88\u6536\u85cf...");
                    $C.asyncRequest("post", "/" + _bb, {
                        success: function(o) {
                            var res = FF.util.getEvalRes(o);
                            if (res.status) {
                                _c2.change(res.msg);
                                _c2.off();
                                var _ca = $D.getAncestorByTagName(el, "ol");
                                if (_ca && $D.hasClass(_ca, "self")) {
                                    FF.util.yFadeRemove(_c1, "li");
                                } else {
                                    $D.getElementsByClassName("star", "span", _c1,
                                    function() {
                                        this.parentNode.removeChild(this);
                                    });
                                    $D.removeClass(el, "faved");
                                    el.setAttribute("href", url.replace(/favorite\.del/, "favorite.add"));
                                    el.setAttribute("title", "\u6dfb\u52a0\u5230\u6211\u7684\u6536\u85cf");
                                    el.firstChild.nodeValue = "\u6536\u85cf";
                                }
                            } else {
                                _c2.change(res.msg);
                                _c2.off();
                            }
                        },
                        failure: function(o) {
                            _c2.change("\u670d\u52a1\u5f02\u5e38\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5");
                            _c2.off();
                        },
                        timeout: 5000
                    },
                    _c0);
                } else {
                    if (_bb == "photo.share") {
                        var _c0 = "action=" + _bb + "&" + _bd + "=" + _bc + "&ajax=yes" + _bf;
                        var _c2 = new FF.ajax_prompt($D.getXY(el), "\u6b63\u5728\u52a0\u5165\u6536\u85cf...");
                        $C.asyncRequest("post", "/" + _bb, {
                            success: function(o) {
                                var res = o.responseText;
                                if (res.substring(0, 7) == "success") {
                                    var str = res.substring(8);
                                    _c2.change(str);
                                    _c2.off();
                                } else {
                                    if (res.substring(0, 7) == "failure") {
                                        var str = res.substring(8);
                                        _c2.change(str);
                                        _c2.off();
                                    } else {
                                        _c2.change("\u670d\u52a1\u5f02\u5e38\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5");
                                        _c2.off();
                                    }
                                }
                            },
                            failure: function(o) {
                                _c2.change("\u670d\u52a1\u5f02\u5e38\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5");
                                _c2.off();
                            },
                            timeout: 5000
                        },
                        _c0);
                    } else {
                        if (_bb == "notice.addall") {
                            var str = "\u4f60\u786e\u5b9a\u8981\u5173\u6ce8\u5168\u90e8\u4eba\u5417\uff1f";
                            doPostAction(arr, str);
                        } else {
                            if (_bb == "notice.hideall") {
                                var str = "\u4f60\u786e\u5b9a\u8981\u9690\u85cf\u6240\u6709\u901a\u77e5\u5417\uff1f";
                                if (!confirm(str)) {
                                    return;
                                }
                                var _c0 = "action=notice.hideall&ajax=yes" + _bf,
                                url = "/notice.hideall";
                                var _d1 = $D.get("newsfeed");
                                _d1.parentNode.removeChild(_d1);
                                $C.asyncRequest("post", url, {
                                    success: function(o) {},
                                    failure: function(o) {},
                                    timeout: 5000
                                },
                                _c0);
                            } else {
                                if (_bb == "notice.ignore") {
                                    var _c0 = "action=notice.ignore&notice=" + _bc + "&ajax=yes" + _bf,
                                    url = "/notice.ignore";
                                    var _d1 = $D.getAncestorByTagName(el, "li");
                                    if ($D.getAncestorByTagName(_d1, "ul").getElementsByTagName("li").length == 1) {
                                        _d1 = $D.get("newsfeed");
                                    }
                                    _d1.parentNode.removeChild(_d1);
                                    reflow();
                                    $C.asyncRequest("post", url, {
                                        success: function(o) {},
                                        failure: function(o) {},
                                        timeout: 5000
                                    },
                                    _c0);
                                    return;
                                } else {
                                    if (_bb == "tip.hide") {
                                        var _c0 = "action=tip.hide&tip=" + _bc + "&ajax=yes" + _bf,
                                        url = "/tip.hide";
                                        var _d1 = $D.get("systip");
                                        _d1.parentNode.removeChild(_d1);
                                        reflow();
                                        $C.asyncRequest("post", url, {
                                            success: function(o) {},
                                            failure: function(o) {},
                                            timeout: 5000
                                        },
                                        _c0);
                                    } else {
                                        if (_bb == "msg.del") {
                                            FF.app.Stream.remove(el, arr, "\u4f60\u786e\u5b9a\u8981\u5220\u9664\u8fd9\u6761\u6d88\u606f\u5417\uff1f");
                                        } else {
                                            if (_bb == "share.del") {
                                                FF.app.Stream.remove(el, arr, "\u4f60\u786e\u5b9a\u8981\u5220\u9664\u8fd9\u4e2a\u6536\u85cf\u5417\uff1f");
                                            } else {
                                                if (_bb == "photo.del") {
                                                    FF.app.Stream.remove(el, arr, "\u4f60\u786e\u5b9a\u8981\u5220\u9664\u8fd9\u5f20\u7167\u7247\u5417\uff1f");
                                                } else {
                                                    if (_bb == "friend.remove") {
                                                        FF.app.Stream.remove(el, arr, "\u4f60\u786e\u5b9a\u8981\u53d6\u6d88\u5173\u6ce8\u5417\uff1f");
                                                    } else {
                                                        if (_bb == "follower.remove") {
                                                            FF.app.Stream.remove(el, arr, "\u4f60\u786e\u5b9a\u8981\u5220\u9664\u5417\uff1f");
                                                        } else {
                                                            if (_bb == "user.block") {
                                                                var _d8 = el.getAttribute("sname");
                                                                var str = "\u786e\u5b9a\u628a " + _d8 + " \u52a0\u5165\u9ed1\u540d\u5355\u5417\uff1f\u52a0\u5165\u9ed1\u540d\u5355\u540e\u4ed6\u65e2\u4e0d\u80fd\u67e5\u770b\u4f60\u7684\u4fe1\u606f\uff0c\u4e5f\u4e0d\u80fd\u7ed9\u4f60\u53d1\u79c1\u4fe1\u3002";
                                                                doPostAction(arr, str);
                                                            } else {
                                                                if (_bb == "privatemsg.del") {
                                                                    FF.app.Stream.remove(el, arr, "\u4f60\u786e\u5b9a\u8981\u5220\u9664\u8fd9\u6761\u79c1\u4fe1\u5417\uff1f");
                                                                } else {
                                                                    doPostAction(arr);
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        function doPostAction(_d9, _da) {
            if (_da && !confirm(_da)) {
                return;
            }
            var act = new FF.Form();
            act.mkForm("post", window.location.href, _d9);
            act.post();
        }
    }
    function initForm() {
        var _dc = document.getElementsByTagName("form");
        if (_dc.length == 0) {
            return;
        }
        var _dd = false,
        tip = false;
        function canFocus(el) {
            var _e0 = el.getAttribute("type");
            var _e1 = el.tagName;
            if (!_e0 || !_e1) {
                return false;
            }
            return _e0.toLowerCase() == "text" || _e0.toLowerCase() == "textarea";
        }
        function focus(el) {
            if (canFocus(el)) {
                el.focus();
            }
        }
        for (var i = 0; i < _dc.length; i++) {
            var fm = _dc[i];
            var id = fm.getAttribute("id");
            if (!_dd && id && FF.cfg.formfocus.indexOf(id) != -1) {
                if (!fm.elements[0].value) {
                    focus(fm.elements[0]);
                } else {
                    focus(fm.elements[1]);
                }
                _dd = true;
            }
            if (YAHOO.util.Dom.hasClass(fm, "limit")) {
                FieldLimit(fm);
            }
            if (FF.cfg.formpattern[id]) {
                chkform(fm);
            }
            if (FF.cfg.formtip[id]) {
                var tip = true;
            }
            for (var j = 0; j < fm.elements.length; j++) {
                var _e7 = fm.elements[j];
                if (FF.cfg.textlimit[_e7.getAttribute("id")]) {
                    YAHOO.util.Event.on(_e7, "keyup",
                    function() {
                        textLimit(this, FF.cfg.textlimit[this.id]);
                    });
                }
                if (tip && FF.cfg.formtip[id][_e7.name]) {
                    var _e8 = FF.cfg.formtip[id][_e7.name];
                    setFieldTip(_e7, fm, _e8);
                }
                if (_e7.type == "submit" && _e7.name == "remove") {
                    YAHOO.util.Event.on(_e7, "click",
                    function(ev) {
                        if (!confirm("\u4f60\u786e\u5b9a\u8981" + this.value + "\u5417\uff1f")) {
                            YAHOO.util.Event.preventDefault(ev);
                        }
                    });
                }
                if ($D.hasClass(_e7, "qs")) {
                    FF.app.Post.init(_e7, fm);
                }
            }
        }
        function textLimit(el, _eb) {
            if (el.value.length > _eb) {
                el.value = el.value.slice(0, _eb);
                var _ec = YAHOO.util.Dom.getElementsByClassName("hint", "span", YAHOO.util.Dom.getAncestorBy(el));
                if (_ec.length > 0) {
                    YAHOO.util.Dom.removeClass(_ec[0], "hidden");
                }
            }
        }
        function FieldLimit(el) {
            var _ee = FF.cfg.textlimit[el.getAttribute("id")];
            var _ef = el.posttext;
            var _f0 = YAHOO.util.Dom.getElementsByClassName("tip", "p", el)[0];
            var _f1 = "";
            function textCount() {
                if (this.value == _f1) {
                    return;
                } else {
                    _f1 = this.value;
                }
                var btn = YAHOO.util.Dom.getElementsByClassName("formbutton", "input", el)[0];
                if (this.value.length == 0) {
                    btn.disabled = true;
                    YAHOO.util.Dom.addClass(btn, "forbidden");
                } else {
                    btn.disabled = false;
                    YAHOO.util.Dom.removeClass(btn, "forbidden");
                }
                if (this.value.length <= _ee) {
                    _f0.innerHTML = "\u53ef\u4ee5\u8f93\u5165 <span class=\"counter\">" + (_ee - this.value.length) + "</span> \u5b57";
                    if (YAHOO.util.Dom.hasClass(_f0, "caution")) {
                        YAHOO.util.Dom.removeClass(_f0, "caution");
                    }
                } else {
                    _f0.innerHTML = "\u5df2\u7ecf\u8d85\u51fa <span class=\"counter\">" + (this.value.length - _ee) + "</span> \u5b57";
                    if (!YAHOO.util.Dom.hasClass(_f0, "caution")) {
                        YAHOO.util.Dom.addClass(_f0, "caution");
                    }
                }
            }
            var _f3 = window.setInterval(function() {
                textCount.call(_ef);
            },
            50);
            YAHOO.util.Event.onDOMReady(textCount, null, _ef);
        }
        function setFieldTip(_f4, _f5, _f6) {
            function __add(el, str) {
                if (el.value == "") {
                    el.value = str;
                    YAHOO.util.Dom.addClass(el, "empty");
                }
            }
            function __rm(el, str) {
                if (el.value == str) {
                    el.value = "";
                }
                YAHOO.util.Dom.removeClass(el, "empty");
            }
            YAHOO.util.Event.on(_f4, "focus",
            function() {
                __rm(_f4, _f6);
            });
            YAHOO.util.Event.on(_f4, "blur",
            function() {
                __rm(_f4, _f6);
                __add(_f4, _f6);
            });
            YAHOO.util.Event.on(_f5, "submit",
            function() {
                __rm(_f4, _f6);
            });
            __add(_f4, _f6);
        }
        var _fb = YAHOO.util.Dom.getElementsByClassName("format-email", "input", "container");
        if (_fb.length > 0) {
            function Levenshtein_Distance(s, t) {
                var n = s.length;
                var m = t.length;
                var d = [];
                var i;
                var j;
                var s_i;
                var t_j;
                var cost;
                if (n == 0) {
                    return m;
                }
                if (m == 0) {
                    return n;
                }
                for (i = 0; i <= n; i++) {
                    d[i] = [];
                    d[i][0] = i;
                }
                for (j = 0; j <= m; j++) {
                    d[0][j] = j;
                }
                for (i = 1; i <= n; i++) {
                    s_i = s.charAt(i - 1);
                    for (j = 1; j <= m; j++) {
                        t_j = t.charAt(j - 1);
                        if (s_i == t_j) {
                            cost = 0;
                        } else {
                            cost = 1;
                        }
                        d[i][j] = Minimum(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + cost);
                    }
                }
                return d[n][m];
            }
            function Levenshtein_Distance_Percent(s, t) {
                var l = s.length > t.length ? s.length: t.length;
                var d = Levenshtein_Distance(s, t);
                return (1 - d / l).toFixed(4);
            }
            function Minimum(a, b, c) {
                return a < b ? (a < c ? a: c) : (b < c ? b: c);
            }
            function findSimilarest(_10d) {
                var arr = _10d.split("@");
                var _10f = 0.6;
                var _110 = ["gmail.com", "163.com", "hotmail.com", "126.com", "qq.com", "yahoo.com.cn", "sina.com", "sohu.com", "msn.com", "tom.com", "21cn.com", "live.com", "yahoo.com", "yeah.net", "foxmail.com", "vip.sina.com", "eyou.com", "263.net", "sina.com.cn", "citiz.net", "live.cn", "56.com", "yahoo.com.tw", "vip.163.com", "188.com", "baidu.com", "xmu.edu.cn", "sogou.com", "mails.tsinghua.edu.cn", "live.it", "fudan.edu.cn", "yahoo.com.hk", "tencent.com", "wozone.cn", "vip.sohu.net", "googlemail.com", "gd165.com", "discuz.com"];
                var _111 = arr[1];
                _111 = _111.toLowerCase();
                var max = 0;
                var _113 = -1;
                for (i in _110) {
                    var dist = Levenshtein_Distance_Percent(_111, _110[i]);
                    if (dist > max) {
                        max = dist;
                        _113 = i;
                    }
                }
                if (max > _10f) {
                    arr[1] = _110[_113];
                    var ret = arr.join("@");
                    return ret;
                } else {
                    return null;
                }
            }
            function checkEmail() {
                var _116 = YAHOO.lang.trim(this.value);
                if (_116 == 0 || _116.split("@").length != 2) {
                    return;
                }
                var _117 = findSimilarest(_116);
                if (_117 == _116 || _117 == null) {
                    if (document.getElementById("email-suggest")) {
                        var tip = document.getElementById("email-tip");
                        tip.parentNode.removeChild(tip);
                        var _119 = document.getElementById("icon-question");
                        _119.parentNode.removeChild(_119);
                        YAHOO.util.Dom.removeClass(this, "input-question");
                    }
                } else {
                    YAHOO.util.Dom.addClass(this, "input-question");
                    if (document.getElementById("email-suggest")) {
                        var _11a = document.getElementById("email-suggest");
                        _11a.lastChild.nodeValue = _117;
                    } else {
                        var _11b = YAHOO.util.Dom.getAncestorBy(this);
                        YAHOO.util.Dom.setStyle(_11b, "position", "relative");
                        var tip = document.createElement("p");
                        tip.setAttribute("id", "email-tip");
                        YAHOO.util.Dom.addClass(tip, "input-tip");
                        _11b.appendChild(tip);
                        tip.appendChild(document.createTextNode("\u4f60\u662f\u5426\u60f3\u8f93\u5165"));
                        var _11c = YAHOO.util.Dom.getRegion(this);
                        var _11d = _11c["right"] - _11c["left"] - 23;
                        var _11e = _11c["bottom"] - _11c["top"];
                        YAHOO.util.Dom.setX(tip, _11c["left"]);
                        YAHOO.util.Dom.setY(tip, _11c["bottom"] - 1);
                        YAHOO.util.Dom.setStyle(tip, "width", _11d + "px");
                        var _11a = document.createElement("strong");
                        _11a.setAttribute("id", "email-suggest");
                        _11a.setAttribute("title", "\u6211\u8981\u4f7f\u7528\u6b64email");
                        _11a.appendChild(document.createTextNode(_117));
                        tip.appendChild(_11a);
                        YAHOO.util.Dom.setStyle(_11a, "cursor", "pointer");
                        var _11f = document.createElement("a");
                        YAHOO.util.Dom.addClass(_11f, "close");
                        _11f.setAttribute("href", "#");
                        _11f.setAttribute("title", "\u5173\u95ed");
                        _11f.appendChild(document.createTextNode("\u5173\u95ed"));
                        tip.appendChild(_11f);
                        var _119 = document.createElement("a");
                        _119.setAttribute("id", "icon-question");
                        _119.setAttribute("href", "#");
                        _119.setAttribute("title", "\u4f60\u8f93\u5165\u7684email\u53ef\u80fd\u5b58\u5728\u95ee\u9898...");
                        _119.appendChild(document.createTextNode("\u4f60\u8f93\u5165\u7684email\u53ef\u80fd\u5b58\u5728\u95ee\u9898..."));
                        _11b.appendChild(_119);
                        YAHOO.util.Dom.setStyle(_119, "position", "absolute");
                        YAHOO.util.Dom.setStyle(_119, "overflow", "hidden");
                        YAHOO.util.Dom.setStyle(_119, "display", "block");
                        YAHOO.util.Dom.setStyle(_119, "width", "18px");
                        YAHOO.util.Dom.setStyle(_119, "height", "18px");
                        YAHOO.util.Dom.setStyle(_119, "text-indent", "-999em");
                        YAHOO.util.Dom.setX(_119, _11c["right"] - 21);
                        YAHOO.util.Dom.setY(_119, _11c["top"] + 3);
                        YAHOO.util.Event.on(_11a, "click",
                        function(ev) {
                            YAHOO.util.Event.preventDefault(ev);
                            this.value = _117;
                            _11b.removeChild(tip);
                            _11b.removeChild(_119);
                            YAHOO.util.Dom.removeClass(this, "input-question");
                        },
                        this, true);
                        YAHOO.util.Event.on(_11f, "click",
                        function(ev) {
                            YAHOO.util.Event.preventDefault(ev);
                            YAHOO.util.Dom.setStyle(tip, "display", "none");
                        });
                        YAHOO.util.Event.on(_119, "click",
                        function(ev) {
                            YAHOO.util.Event.preventDefault(ev);
                            YAHOO.util.Dom.setStyle(tip, "display", "block");
                        });
                    }
                }
            }
            YAHOO.util.Dom.batch(_fb,
            function(el) {
                YAHOO.util.Event.on(el, "blur", checkEmail);
            });
        }
    }
    function chkform(fm) {
        var $C = YAHOO.util.Connect;
        var $D = YAHOO.util.Dom;
        var $E = YAHOO.util.Event;
        var _128 = false;
        var id = fm.getAttribute("id");
        var _12a = FF.cfg.formpattern[id].relist;
        var _12b = FF.cfg.formpattern[id].verifylist;
        var _12c = FF.cfg.formpattern[id].requiredlist;
        var _12d = FF.cfg.formpattern[id].charlist;
        function markError(_12e) {
            $D.addClass($D.getAncestorBy(_12e), "error");
        }
        function fixError(_12f) {
            $D.removeClass($D.getAncestorBy(_12f), "error");
        }
        function chkRE(s, r) {
            r.lastIndex = 0;
            if (s.length && !r.test(s)) {
                return false;
            } else {
                return true;
            }
        }
        function verify(s, s2) {
            if (((!_128 && s.length) || (_128 || s.length)) && s != s2) {
                return false;
            } else {
                return true;
            }
        }
        function chkRequired(s, b) {
            if (s.length == 0) {
                return false;
            } else {
                if (b) {
                    return true;
                } else {
                    return "i";
                }
            }
        }
        function chkLength(s, n) {
            var num = 0;
            for (var i = 0; i < s.length; i++) {
                if (s.charCodeAt(i) < 128) {
                    num++;
                } else {
                    num += 2;
                }
            }
            if (num > n) {
                return false;
            } else {
                return true;
            }
        }
        function chkPattern() {
            for (var i = 0; i < fm.elements.length; i++) {
                var f = fm[i];
                var name = f.getAttribute("name");
                if (name == "") {
                    continue;
                }
                var str = YAHOO.lang.trim(f.value);
                var _13e = true;
                if (_12a && _12a.indexOf(name) != -1) {
                    if (name == "mobile") {
                        str = str.replace(/[\s-]+/g, "");
                    } ! chkRE(str, FF.cfg.re[name]) ? markError(f) : fixError(f);
                    _13e = false;
                }
                if (_12b && _12b[name]) { ! verify(f.value, fm[_12b[name]].value) ? markError(f) : fixError(f);
                    _13e = false;
                }
                if (_12d && _12d[name]) { ! chkLength(str, _12d[name]) ? markError(f) : fixError(f);
                    _13e = false;
                }
                if (_12c && _128 && (_12c.indexOf(name) != -1)) {
                    var sw = chkRequired(f.value, _13e);
                    if (sw == "i") {} else { ! sw ? markError(f) : fixError(f);
                    }
                }
            }
        }
        $D.batch(fm.elements,
        function(el) {
            $E.on(el, "focus",
            function() {
                $D.addClass($D.getAncestorBy(this), "inputting");
            });
            $E.on(el, "blur",
            function() {
                $D.removeClass($D.getAncestorBy(this), "inputting");
                chkPattern();
            });
        });
        $E.on(fm, "submit",
        function(ev) {
            _128 = true;
            chkPattern();
            var _142 = $D.getElementsByClassName("error", "p", fm);
            if (_142.length > 0) {
                alert("\u4fe1\u606f\u586b\u5199\u6709\u8bef\uff0c\u8bf7\u68c0\u67e5");
                $E.preventDefault(ev);
                return;
            }
            post_form(fm, ev);
        });
    }
    FF.ga = {
        init: function() {
            var s = document.createElement("script");
            s.type = "text/javascript";
            s.src = "http://www.google-analytics.com/ga.js";
            document.getElementsByTagName("head")[0].appendChild(s);
            var _144, _145 = 0,
            _146 = window.setInterval(function() {
                if (_145 > 599) {
                    window.clearInterval(_146);
                }
                if (!_144) {
                    try {
                        _144 = _gat._getTracker("UA-1805418-1");
                        _144._initData();
                        FF.gat = _144;
                    } catch(ex) {}
                } else {
                    window.clearInterval(_146);
                    FF.ga.setRules(_144);
                }++_145;
            },
            200);
        },
        setRules: function(_147) {
            var l = window.location.href,
            h = window.location.host,
            host = h.match(/^(?:www\.)?(\w+\.com)/);
            host = (host && host.length > 1) ? host[1] : "fanfou.com";
            _147._setDomainName(host);
            if (FF.gaCode) {
                var code = "/" + FF.gaCode;
            } else {
                var code = l.replace(new RegExp("^http://" + host + "/"), "");
            }
            _147._trackPageview(code);
        },
        trackClick: function(code) {
            if (!FF.gat) {
                return;
            }
            FF.gat._trackPageview(code);
        }
    };
    YAHOO.util.Event.onDOMReady(function() {
        initClick();
        FF.widget.Trends.init();
        FF.ga.init();
    });
    YAHOO.util.Event.onContentReady("container", initInfos);
    YAHOO.util.Event.onContentReady("container", initSearch);
    YAHOO.util.Event.onContentReady("container", FF.widget.initStream);
    YAHOO.util.Event.onContentReady("container", initForm);
})();