[quote=oblack]sys kunti thanks yagh.. gw dah pake wvm na 

walau agak kekiri kalu di view tp gpp its ok deh 

[/quote]
itu masalah tracker.cssnya harus di edit kalo gak salah....
[quote=oblack]oia bagi quick commentnya dong sys.. punya gw gk bisa kalu langsung klik SUBMIT
malah larinya ke post comment gk langsung terkirim kek sys punya 

share yagh 

[/quote]
kalo masalah post comment
ini scriptnya taruh di [b]eksternal js[/b] kasih nama [b]forcomment.js[/b]
[spoiler]/*
* Name: Friendster Quick Testimonial Box
* version: 4.0.2
* Copyright (c) 2007-2008 FeRuZZ <http://profiles.friendster.com/feruzz>
* Support: 
http://tempek.net78.net
* Updates: September 1, 2008
* Cross-Browser Compatibility
*/
//-----------------------------
/*global testi, document, window, location, navigator, event*/
(function () {
    testi = {
        /* private property */
        $doc: document,
        $win: window,
        $linker: [],
        $max: 5000,
        $time: 2000,
        $timer: 5,
        $speed: 10,
        $locHost: location.hostname,
        $ie: /*@cc_on!@*/false,
        $evtbs: true,
        $onsc: false,
        $fader: 1000,
        $dir: "http://i94.photobucket.com/albums/l116/feruzz/",
        $dircss: "http://www.stormpages.com/",
        details: {
            photo: null,
            name: null
        },
        regexp: {
            photo: /imgblock200"><a[\S\s]*?>([\S\s]*?)<\/div>/i,
            name: /controlpanel_header">([\S\s]*?)<a[\S\s]*?><\/a><a\s*name="controlpanel/i
        },
        Style: {
            "postimage": ["bold", "italic", "underline", "line-through", "left", "center", "right"]
        },
        addEvent: function (obj, type, fn) {
            if (typeof obj === "string") {
                obj = testi.$(obj);
            }
            if (!obj) {
                return;
            }
            if (obj.addEventListener) {
                obj.addEventListener(type, fn, false);
            } else if (obj.attachEvent) {
                obj["e" + type + fn] = fn;
                obj[type + fn] = function () {
                    obj["e" + type + fn](testi.$win.event);
                };
                obj.attachEvent("on" + type, obj[type + fn]);
            } else {
                obj["on" + type] = obj["e" + type + fn];
            }
        },
        removeEvent: function (obj, type, fn) {
            if (typeof obj === "string") {
                obj = testi.$(obj);
            }
            if (!obj) {
                return;
            }
            try {
                obj.removeEventListener(type, fn, false);
            } catch (e) {
                try {
                    obj.detachEvent("on" + type, fn);
                } catch (er) {
                    obj["on" + type] = null;
                }
            }
        },
        cancelEvent: function (e) {
            e = e ? e : testi.$win.event;
            if (e.stopPropagation) {
                e.stopPropagation();
            }
            if (e.preventDefault) {
                e.preventDefault();
            }
            e.cancelBubble = true;
            e.cancel = true;
            e.returnValue = false;
            return false;
        },
        init: function () {
            /*global pageOwnerFName, pageViewerID, pageOwnerID*/
            var mf = "no", cs = testi.$("controlPanelButtons").innerHTML,
            sf = cs.search(/Add as Friend/), qt, ol, k, l, x, y, cl, r, s, ob;
            if (sf > 0) {
                mf = "yes";
            }
            if (pageViewerID !== "" && mf === "no") {
                qt = [];
                ol = testi.$doc.links;
                try {
                    for (x = 0, y = ol.length; x < y; x += 1) {
                        if (ol[x].innerHTML.match(/Post a Comment|Add Comment/)) {
                            qt.push(ol[x]); 
                        }
                    }
                    testi.$linker = qt;
                    cl = qt.length;
                    try {
                        for (r = 0, s = cl; r < s; r += 1) {
                            ob = function ob() {
                                qt[r].href = "#quicktesti";
                                qt[r].onclick = function () {
                                    testi.openForm();
                                };
                            }();
                        }
                    } catch (e) {}
                    if (![].push) {
                        Array.prototype.push = function () {
                            for (k in arguments) {
                                if (Object.hasOwnProperty.call(arguments, k)) {
                                    this[this.length] = arguments[k];
                                }
                            }
                            return this.length;
                        };
                    }
                    testi.exCSS(testi.$dircss + "tempek/script/komen.css");
                    return ob;
                } catch (er) {
                    testi.$linker = null;
                }
            }
        },
        openForm: function () {
            var cf = false, smlist, smdiv, sm, hs, mdash, c, x, sty;
            for (x in testi.$linker) {
                if (Object.hasOwnProperty.call(testi.$linker, x)) {
                    testi.$linker[x].onclick = testi.$linker[x].href = "#quicktesti";
                }
            }
            try {
                testi.$doc.execCommand("BackgroundImageCache", false, true);
            } catch (errs) {
                cf = true;
            }
            smlist = ["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", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43",
            "44", "45", "46", "47", "48", "52", "53", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "76", "77", "78"];
            /*global smileys*/
            smileys = [];
            for (sm in smlist) {
                if (Object.hasOwnProperty.call(smlist, sm)) {
                    smileys[smlist[sm]] = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/" + smlist[sm] + ".gif";
                }
            }
            smdiv = testi.$doc.createElement("div");
            smdiv.className = "smileysdiv";
            testi.changeText(smdiv, "");
            for (sm in smlist) {
                if (Object.hasOwnProperty.call(smlist, sm)) {
                    smdiv.innerHTML += "<span class=\"smbox\"><a href=\"#null\" onclick=\"testi.rtxt('::" + smlist[sm] + "::', testi.$('komen')); return false;\">" +
                    "<img class=\"smiley\" title=\"" + smlist[sm] + "\" src=\"" + smileys[smlist[sm]] + "\"></a></span>";
                }
            }
            hs = "&nb" + "sp;";
            mdash = "&md" + "ash;";
            c = "<div class=\"quicktestiprev\">";
            c += "<form id=\"testimonial_form_undoable\" name=\"testimonial_form\" method=\"post\" onsubmit=\"return checkFormSubmit('testimonial_form');\">";
            c += "<div id=\"commentprevbox\"><div id=\"prevComment\"></div></div>";
            c += "<input type=\"hidden\" name=\"testimonial_firstname\" value=\"" + pageOwnerFName + "\">";
            c += "<input type=\"hidden\" name=\"testimonial_uid\" value=\"" + pageViewerID + "\">";
            c += "<input type=\"hidden\" name=\"_submitted\" value=\"1\">";
            c += "<table class=\"formtable\" cellpadding=\"0\" cellspacing=\"0\"><tr>";
            c += "<td class=\"field\"><span class=\"q\">To:</span></td><td class=\"value\"><div id=\"outputphoto\"></div><div align=\"center\" id=\"outputname\"></div></td>";
            c += "<td class=\"value\"><span class=\"q\">Friendster" + hs + "ID" + hs + ":</span>" + hs + "<input type=\"text\" id=\"txtsearchfs\" value=\"" + pageOwnerID + "\" onkeypress=\"return testi.numkey(event);testi.showPress(event);\" onkeyup=\"testi.mainphoto();\" onblur=\"testi.mainphoto();\" maxlength=\"9\"></td>";
            c += "</tr></table>";
            c += "<table class=\"formtable\" cellpadding=\"0\" cellspacing=\"0\"><tr>";
            for (sty in testi.Style) {
                if (Object.hasOwnProperty.call(testi.Style, sty)) {
                    c += "<td><a href=\"#null\"><img src=\"" + testi.$dir + "testi/bold.gif\" name=\"bold\" onclick=\"testi.insertTag(testi.$doc.testimonial_form.komen, '<span style=font-weight:" + testi.Style[sty][0] + ">','</span>');return false;\" class=\"" + sty + "\" title=\"Bold\"></a></td>";
                    c += "<td><a href=\"#null\"><img src=\"" + testi.$dir + "testi/italics.gif\" name=\"italic\" onclick=\"testi.insertTag(testi.$doc.testimonial_form.komen, '<span style=font-style:" + testi.Style[sty][1] + ">','</span>');return false;\" class=\"" + sty + "\" title=\"Italic\"></a></td>";
                    c += "<td><a href=\"#null\"><img src=\"" + testi.$dir + "testi/underline.gif\" name=\"underline\" onclick=\"testi.insertTag(testi.$doc.testimonial_form.komen, '<span style=text-decoration:" + testi.Style[sty][2] + ">','</span>');return false;\" class=\"" + sty + "\" title=\"Underline\"></a></td>";
                    c += "<td><a href=\"#null\"><img src=\"" + testi.$dir + "testi/superscript.gif\" name=\"superscript\" onclick=\"testi.insertTag(testi.$doc.testimonial_form.komen, '<big>','</big>');return false;\" class=\"" + sty + "\" title=\"Superscript\"></a></td>";
                    c += "<td><a href=\"#null\"><img src=\"" + testi.$dir + "testi/subscript.gif\" name=\"subscript\" onclick=\"testi.insertTag(testi.$doc.testimonial_form.komen, '<small>','</small>');return false;\" class=\"" + sty + "\" title=\"Subscript\"></a></td>";
                    c += "<td><a href=\"#null\"><img src=\"" + testi.$dir + "testi/strikethrough.gif\" name=\"strikethrough\" onclick=\"testi.insertTag(testi.$doc.testimonial_form.komen, '<span style=text-decoration:" + testi.Style[sty][3] + ">','</span>');return false;\" class=\"" + sty + "\" title=\"Strikethrough\"></a></td>";
                    c += "<td><a href=\"#null\"><img src=\"" + testi.$dir + "testi/justify_left.gif\" name=\"left\" onclick=\"testi.insertTag(testi.$doc.testimonial_form.komen, '<div style=text-align:" + testi.Style[sty][4] + ">','</div>');return false;\" class=\"" + sty + "\" title=\"Justifyleft\"></a></td>";
                    c += "<td><a href=\"#null\"><img src=\"" + testi.$dir + "testi/justify_center.gif\" name=\"center\" onclick=\"testi.insertTag(testi.$doc.testimonial_form.komen, '<div style=text-align:" + testi.Style[sty][5] + ">','</div>');return false;\" class=\"" + sty + "\" title=\"Justifycenter\"></a></td>";
                    c += "<td><a href=\"#null\"><img src=\"" + testi.$dir + "testi/justify_right.gif\" name=\"right\" onclick=\"testi.insertTag(testi.$doc.testimonial_form.komen, '<div style=text-align:" + testi.Style[sty][6] + ">','</div>');return false;\" class=\"" + sty + "\" title=\"Justifyright\"></a></td>";
                    c += "<td><a href=\"#null\"><img src=\"" + testi.$dir + "testi/hr.gif\" name=\"horizontalrule\" onclick=\"testi.insertTag(testi.$doc.testimonial_form.komen, '','<hr style=width:100%;height:2px>');return false;\" class=\"" + sty + "\" title=\"Horizontal Rule\"></a></td>";
                    c += "<td><a href=\"#null\"><img src=\"" + testi.$dir + "testi/undo.gif\" name=\"Undo\" onfocus=\"this.blur();\" onclick=\"testi.undo(this);\" id=\"Undo\" class=\"" + sty + "\" title=\"Undo (CTRL+Z)\"></a></td>";
                    c += "<td><a href=\"#null\"><img src=\"" + testi.$dir + "testi/redo.gif\" name=\"Redo\" onfocus=\"this.blur();\" onclick=\"testi.redo(this);\" id=\"Redo\" class=\"" + sty + "\" title=\"Redo (CTRL+Y)\"></a></td>";
                }
            }
            c += "<table class=\"formtable\" cellpadding=\"0\" cellspacing=\"0\"><tr><td>";
            c += "<select name=\"fnt_size\" id=\"fnt_size\" onchange=\"testi.insertTag(testi.$doc.testimonial_form.komen, '<span style=font-size:' + testi.$('testimonial_form').fnt_size.options[fnt_size.selectedIndex].value + '>', '</span>'); testi.$('testimonial_form').fnt_size.options[0].selected=true\">";
            c += "<option value=\"\">Font Size";
            c += "<option value=\"10px\">Size 1";
            c += "<option value=\"12px\">Size 2";
            c += "<option value=\"14px\">Size 3";
            c += "<option value=\"16px\">Size 4";
            c += "<option value=\"18px\">Size 5";
            c += "<option value=\"20px\">Size 6";
            c += "<option value=\"22px\">Size 7";
            c += "</select></td><td>";
            c += "<select name=\"fnt_face\" id=\"fnt_face\" onchange=\"testi.insertTag(testi.$doc.testimonial_form.komen, '<span style=font-family:' + testi.$('testimonial_form').fnt_face.options[fnt_face.selectedIndex].value + '>', '</span>'); testi.$('testimonial_form').fnt_face.options[0].selected=true\">";
            c += "<option value=\"\">Font";
            c += "<option value=\"Verdana\" style=\"font-family:verdana\">verdana";
            c += "<option value=\"Monospace\" style=\"font-family:monospace\">monospace";
            c += "<option value=\"Century\" style=\"font-family:century\">century";
            c += "<option value=\"Courier New\" style=\"font-family:courier new; courier\">courier new";
            c += "</select>";
            c += "<td id=\"keyTargetheader\" colspan=\"1\">Target:</td>";
            c += "<td id=\"keyTarget\" colspan=\"1\">" + mdash + "</td>";
            c += "<td id=\"characterheader\" colspan=\"1\">Character:</td>";
            c += "<td id=\"character\" colspan=\"1\">" + mdash + "</td>";
            c += "</td></tr></table>";
            c += "<table class=\"formtable\" cellpadding=\"0\" cellspacing=\"0\"><tr><td class=\"value\">";
            c += "<div id=\"textDiv\">";
            c += "<textarea id=\"komen\" tabindex=\"4\" name=\"body\" onfocus=\"testi.showPress(event);testi.xbg('komen', '#e5fff3', null);\" onkeypress=\"testi.showPress(event);\" onkeydown=\"testi.livecomprev();testi.it(this, event);testi.cl(testi.$('komen'), testi.$('minputcount'));\" onkeyup=\"testi.livecomprev();testi.cl(testi.$('komen'), testi.$('minputcount'));\" onblur=\"testi.livecomprev();testi.clearCells();testi.xbg('komen', '#ddd', null);\"></textarea>";
            c += "<div id=\"handleBottom\" style=\"top:102px;\"></div></div>";
            c += "</td></tr></table>";
            c += "<table class=\"formtable\" cellpadding=\"0\" cellspacing=\"0\"><tr>";
            c += "<td><a href=\"#null\" onclick=\"testi.rform(testi.$('komen'));testi.livecomprev();testi.sendAction();\" class=\"submitButton\"><span style=\"color:#fff\">Submit</span></a></td>";
            c += "<td><a href=\"#null\" onclick=\"testi.cf();\" class=\"submitButton\"><span style=\"color:#fff\">Close</span></a></td>";
            c += "<td><a href=\"#null\" onclick=\"testi.boxFX('Smileys');\" id=\"SmileyButton\" class=\"submitButton\"><span style=\"color:#fff\">Smileys</span></a></td>";
            c += "<td><span class=\"q\">Characters" + hs + "remaining" + hs + "</span><input id=\"minputcount\" readonly maxlength=\"4\" size=\"4\" value=\"" + testi.$max + "\" name=\"inputcount\">" + hs + hs;
            c += "<span class=\"q\" id=\"wc\" style=\"color:red\"></span>";
            c += "</td></tr></table>";
            c += "<div id=\"Smileys\" style=\"width:465px;display:none;\" align=\"center\">" + smdiv.innerHTML + "</div>";
            c += "</form></div>";
            testi.testiBox("Quick Testimonial", c, "quicktesti", "18", "above");
            testi.$win.location.href = "#quicktesti";
            testi.mainphoto();
            testi.db(testi.$("handleBottom"), null, new testi.Pos(0, 15), new testi.Pos(0, 500), null, testi.doHeight, null, false);
            testi.undoredo();
        },
        anaconda: function (htm) {
            var idVal = testi.$("txtsearchfs").value, m, val, ao;
            if (testi.trimX(htm) === "") {
                try {
                    throw new Error("Empty xmlresponse! Unable to parse your details!");
                } catch (ey) {
                    testi.$win.alert(ey);
                }
                return;
            } else if (htm) {
                for (val in testi.details) {
                    if (Object.hasOwnProperty.call(testi.details, val)) {
                        try {
                            testi.details[val] = new RegExp(testi.regexp[val]).exec(htm)[1];
                        } catch (e) {
                            testi.details[val] = "";
                        }
                    }
                }
                ao = [
                    ["outputphoto", testi.details.photo.replace(/<img/g, "<a href=\"http://" + testi.$locHost + "/" + idVal + "\" target=\"_blank\"><img")],
                    ["outputname", "<a href=\"http://" + testi.$locHost + "/" + idVal + "\" target=\"_blank\">" + testi.details.name + "</a>"]
                ];
                for (m in ao) {
                    if (Object.hasOwnProperty.call(ao, m)) {
                        testi.rhtm(testi.$(ao[m][0]), ao[m][1]);
                    }
                }
            }
        },
        mainphoto: function () {
            if (testi.$("txtsearchfs") !== "") {
                var idVal = testi.$("txtsearchfs").value;
                if (testi.$win.location.href.indexOf("user.php") !== -1) {
                    testi.getRequest("http://" + testi.$locHost + "/user.php?uid=" + idVal, true, testi.anaconda, null);
                } else {
                    testi.getRequest("http://" + testi.$locHost + "/" + idVal, true, testi.anaconda, null);
                }
            }
        },
        sendAction: function () {
            var idVal, tf, cq, pc, ic;
            if (testi.$("txtsearchfs").value === "") {
                testi.showtibai("Warning", "Please insert Friendster ID!", "warning", 2);
                return false;
            } else if (testi.$("komen").value === "") {
                testi.showtibai("Warning", "Empty comment!", "warning", 2);
                return false;
            } else {
                idVal = testi.$("txtsearchfs").value;
                tf = testi.$("testimonial_form");
                tf.action = "http://www.friendster.com/testimonials.php?uid=" + idVal + "&action=add";
                tf.submit();
                testi.changeText(testi.elmsByTag("h2", testi.$("quicktesti"))[0], "Fetching comment...Please wait...");
                pc = testi.cElems("div", {
                    className: "boxcontent",
                    align: "center"
                });
                ic = testi.cElems("img", {
                    src: testi.$dir + "testi/loader1.gif"
                });
                pc.appendChild(ic);
                cq = testi.$("content_quicktesti");
                if (cq !== "") {
                    testi.replace(pc, cq);
                }
                try {
                    testi.remove("commentprevbox");
                } catch (e) {}
                testi.$win.location.href = "#quicktesti";
                return true;
            }
        },
        livecomprev: function (e) {
            var cv = testi.$("komen").value, rs, r, as, sm, ls, co;
            rs = [
                [/\r\n|\r|\n/g, "<br/>"],
                [/&l/g, "<"],
                [/&g/g, ">"],
                [/t;/g, ""]
            ];
            for (r in rs) {
                if (Object.hasOwnProperty.call(rs, r)) {
                    cv = cv.replace(rs[r][0], rs[r][1]);
                }
            }
            as = testi.$("komen").value.match(/:

\d+)?::/gim);
            if (as) {
                for (sm = 0, ls = as.length; sm < ls; sm += 1) {
                    if (smileys[as[sm].match(/\d+/)[0]] !== "undefined") {
                        as[sm] = "<img src=\"" + smileys[as[sm].match(/\d+/)[0]] + "\">";
                        testi.$("komen").value = testi.$("komen").value.replace(/:

\d+)?::/im, as[sm]);
                        //fixed
                        cv = cv.replace(/:

\d+)?::/im, as[sm]);
                    }
                }
            }
            co = testi.$("prevComment");
            co = testi.rhtm(co, cv);
        },
        rform: function (q) {
            var ar = arguments.length, os, r, i;
            if (ar > 0) {
                r = [
                    [/(&l)(t;\/*)[\x00-\x20]*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*/g, "$1$2noscript..."],
                    [/(&l)(t;\/*)[\x00-\x20]*s[\x00-\x20]*t[\x00-\x20]*y[\x00-\x20]*l[\x00-\x20]*e[\x00-\x20]*/g, "$1$2nostyle..."],
                    [/(<[^>]+[\x00-\x20\"\'])(on|xmlns)[^>]*>/g, "$1>"],
                    [/([a-z]*)[\x00-\x20]*=[\x00-\x20]*([\`\'\"]*)[\x00-\x20]*j[\x00-\x20]*a[\x00-\x20]*v[\x00-\x20]*a[\x00-\x20]*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*

g, "$1=$2nojavascript..."],
                    [/([a-z]*)[\x00-\x20]*

[\'\"]*)[\x00-\x20]*v[\x00-\x20]*b[\x00-\x20]*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*

g, "$1=$2novbscript..."],
                    [/([a-z]*)[\x00-\x20]*

[\'\"]*)[\x00-\x20]*-moz-binding[\x00-\x20]*

g, "$1=$2nomozbinding..."],
                    [/(<[^>]+)style[\x00-\x20]*=[\x00-\x20]*([\`\'\"]*)\s*expression[\x00-\x20]*\([^>]*>/g, "$1>"],
                    [/(<[^>]+)style[\x00-\x20]*=[\x00-\x20]*([\`\'\"]*)\s*behaviour[\x00-\x20]*\([^>]*>/g, "$1>"],
                    [/(<[^>]+)style[\x00-\x20]*=[\x00-\x20]*([\`\'\"]*)\s*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:*[^>]*>/g, "$1>"],
                    [/<\/*\w+:\w[^>]*>/g, ""],
                    [/(&\#*\w+)[\x00-\x20]+;/g, "$1;"],
                    [/(&\#x*)([0-9A-F]+);*/g, "$1$2;"],
                    [/(^[\/]{2}[^\n]*)|([\n]{1,}[\/]{2}[^\n]*)/g, ""]
                ];
                for (i in r) {
                    if (Object.hasOwnProperty.call(r, i)) {
                        q.value = q.value.replace(r[i][0], r[i][1]);
                    }
                }
                do {
                    os = q.value;
                    q.value = q.value.replace(/<\/*(applet|meta|xml|blink|input|form|link|style|script|embed|object|iframe|frame|frameset|ilayer|layer|bgsound|title|base)[^>]*>/g, "");
                } while (os !== q.value);
            }
            return q;
        },
        cf: function () {
            var cp = testi.$("prevComment");
            cp = testi.rhtm(cp, "");
            testi.$win.setTimeout(function () {
                testi.remove("quicktesti");
                testi.$win.location.href = "#18";
            }, testi.$time);
            testi.init();
        },
        rcomm: function () {
            var k = 0, rc = testi.elmsByClass("dtd", "td", testi.$("content_18")),
            au = testi.elmsByTag("ul", testi.$("content_18")), uc, lc, lch, rl;
            try {
                while (k < rc.length) {
                    uc = testi.elmsByTag("ul", rc[k])[0];
                    lc = testi.elmsByTag("a", testi.elmsByTag("li", uc)[0])[0];
                    lch = lc.getAttribute("href");
                    rl = testi.cElems("div", null, null);
                    rl.appendChild(testi.cElems("hr", {
                        width: "100%",
                        height: "2px"
                    }));
                    rl.appendChild(testi.cElems("span", {
                        className: "q"
                    }));
                    testi.elmsByTag("span", rl)[0].appendChild(testi.cElems("a", {
                        target: "_blank",
                        href: lch.replace(/profiles\.friendster\.com\//i, "www.friendster.com/comments.php?uid=")
                    }));
                    testi.elmsByTag("a", rl)[0].appendChild(testi.$doc.createTextNode("Reply"));
                    au[k].appendChild(rl);
                    k += 1;
                }
            } catch (e) {}
            return rc || au;
        },
        exCSS: function (x) {
            var oh = testi.elmsByTag("head", testi.$doc), oc;
            if (oh[0]) {
                if (testi.$doc.createElementNS && oh[0].tagName === "head") {
                    oc = oh[0].appendChild(testi.$doc.createElementNS("http://www.w3.org/1999/xhtml", "link"));
                } else {
                    oc = oh[0].appendChild(testi.cElems("link", {
                        rel: "stylesheet",
                        href: x,
                        type: "text/css"
                    }));
                }
            }
            return oc;
        },
        xbg: function (e, c, i) {
            if (!(e = testi.$(e))) {
                return "";
            }
            var bg = "";
            if (e.style) {
                if (testi.xStr(c)) {
                    testi.setStyles(e, {
                        backgroundColor: c
                    });
                }
                if (testi.xStr(i)) {
                    testi.setStyles(e, {
                        backgroundImage: (i !== "") ? "url(" + i + ")" : null
                    });
                }
                bg = e.style.backgroundColor;
            }
            return bg;
        },
        xStr: function (s) {
            for (var x in arguments) {
                if (Object.hasOwnProperty.call(arguments, x)) {
                    if (typeof arguments[x] !== "string") {
                        return false;
                    }
                }
            }
            return true;
        },
        cElems: function (t, a, p) {
            var el = testi.$doc.createElement(t);
            if (a) {
                testi.setAttribs(el, a);
            }
            if (p) {
                el.appendChild(p);
            }
            return el;
        },
        setAttribs: function (el, a) {
            for (var x in a) {
                if (Object.hasOwnProperty.call(a, x)) {
                    el[x] = a[x];
                }
            }
        },
        setStyles: function (el, s) {
            try {
                for (var x in s) {
                    if (Object.hasOwnProperty.call(s, x)) {
                        if (testi.$ie && x === "opacity") {
                            if (s[x] > 0.99) {
                                el.style.removeAttribute("filter");
                            } else {
                                el.style.filter = "alpha(opacity=" + (s[x] * 100) + ")";
                            }
                        } else {
                            el.style[x] = s[x];
                        }
                    }
                }
            } catch (e) {}
        },
        clearCells: function () {
            var mdash = "&md" + "ash;",
            tcs = ["keyTarget", "character"], x, tc;
            for (x in tcs) {
                if (Object.hasOwnProperty.call(tcs, x)) {
                    tc = testi.$(tcs[x]);
                    tc = testi.rhtm(tc, mdash);
                }
            }
        },
        showTarget: function (evt) {
            var kt = testi.$("keyTarget"),
            n = evt.target ? evt.target : (evt.srcElement ? evt.srcElement : null);
            if (n) {
                kt = testi.rhtm(kt, n.nodeName);
            }
            kt = null;
        },
        showPress: function (evt) {
            var cc, ct;
            evt = (evt) ? evt : ((event) ? event : null);
            if (evt) {
                testi.showTarget(evt);
                cc = evt.charCode ? evt.charCode : evt.keyCode;
                ct = testi.$("character");
                ct = testi.rhtm(ct, String.fromCharCode(cc));
            }
        },
        numkey: function (evt) {
            var cc = evt.which ? evt.which : event.keyCode;
            if (cc > 31 && (cc < 48 || cc > 57)) {
                return false;
            }
            return true;
        },
        it: function (o, e) {
            var kc = e.keyCode ? e.keyCode : e.charCode ? e.charCode : e.which, os, ss, se;
            if (kc === 9 && !e.shiftKey && !e.ctrlKey && !e.altKey) {
                os = o.scrollTop;
                if (o.setSelectionRange) {
                    ss = o.selectionStart;
                    se = o.selectionEnd;
                    o.value = o.value.substring(0, ss) + "\t" + o.value.substr(se);
                    o.setSelectionRange(ss + 1, ss + 1);
                    o.focus();
                } else if (o.createTextRange) {
                    testi.$doc.selection.createRange().text = "\t";
                    e.returnValue = false;
                }
                o.scrollTop = os;
                return testi.cancelEvent(e);
            }
            return true;
        },
        undoredo: function () {
            var f = testi.$doc.forms, i, j, bk, e, un;
            for (i in f) {
                if (Object.hasOwnProperty.call(f, i)) {
                    if (!f[i].id || (f[i].id && f[i].id.indexOf("_undoable") < 0)) {
                        continue;
                    }
                    bk = f[i].id >= 0;
                    f[i].id = f[i].id.replace(/_undoable/, "");
                    e = f[i].elements;
                    for (j = 0; j < e.length; j += 1) {
                        un = function un() {
                            var eh = "onchange", oc, fo;
                            eh = e[j].type === "text" && bk ? "onkeyup" : eh;
                            eh = e[j].type === "textarea" && bk ? "onkeyup" : eh;
                            oc = e[j][eh];
                            fo = f[i];
                            e[j][eh] = function () {
                                if (oc && testi.$evtbs) {
                                    oc();
                                }
                                testi.simpan(fo);
                                if (oc && !testi.$evtbs) {
                                    oc();
                                }
                            };
                        }();
                    }
                    testi.simpan(f[i]);
                }
            }
            return un;
        },
        simpan: function (f) {
            var a = f.cloneNode(true);
            if (a.elements.length === 0) {
                this.Safari = true;
                testi.setStyles(a, {
                    display: "none"
                });
                a.id = "fssfix";
                f.parentNode.appendChild(a);
            }
            a.fsp = f.fsp;
            testi.bacabalik(f, a);
            if (!f.fsm) {
                f.fsm = [];
                f.fsc = 0;
            }
            f.fsc += 1;
            while (f.fsm.length > f.fsc) {
                f.fsm.pop();
            }
            f.fsm[f.fsc] = a;
            testi.cq(f);
        },
        bacabalik: function (f, a) {
            var fe = f.elements, ae = a.elements, d = false, i, ap, fp;
            for (i = 0; i < fe.length; i += 1) {
                d = d || ae[i].checked !== fe[i].checked;
                ae[i].checked = fe[i].checked;
                ap = a.id === "fssfix" ? "valueHolder" : "value";
                fp = f.id === "fssfix" ? "valueHolder" : "value";
                d = d || ae[i][ap] !== fe[i][fp];
                ae[i][ap] = fe[i][fp];
            }
            return d;
        },
        cq: function (f) {
            var u = f.fsc > 1,
            r = f.fsm.length - f.fsc > 1;
            if (f.elements.Undo) {
                f.elements.Undo.disabled = !u;
            }
            if (f.elements.Redo) {
                f.elements.Redo.disabled = !r;
            }
            if (testi.$onsc) {
                testi.$onsc(f, u, r);
            }
        },
        undo: function (a, r) {
            var t, f;
            if (!r) {
                r = -1;
            }
            t = a.tagName.toLowerCase() || "";
            if (a.parentNode && t !== "form") {
                a = a.parentNode;
                return testi.undo(a, r);
            }
            if (!a.fsm) {
                return false;
            }
            f = a.fsm[a.fsc + r];
            if (!f) {
                return false;
            }
            a.fsc += r;
            if (!testi.bacabalik(f, a)) {
                return testi.undo(a, r);
            }
            testi.cq(a);
            return true;
        },
        redo: function (a) {
            return testi.undo(a, 1);
        },
        cl: function (f, cf) {
            var w = testi.$("wc");
            if (f.value.length > testi.$max) {
                f.value = f.value.substring(0, testi.$max);
            } else {
                cf.value = testi.$max - f.value.length;
            }
            if (cf.value <= 10) {
                testi.setStyles(f, {
                    color: "red"
                });
                w = testi.rhtm(w, "<blink>Warning!</blink>");
            } else {
                testi.setStyles(f, {
                    color: "black"
                });
                w = testi.rhtm(w, "");
            }
            if (testi.$doc.all) {
                testi.$win.setInterval(function () {
                    testi.btie();
                }, 500);
            }
        },
        btie: function () {
            var b = testi.$doc.all.tags("blink"), i, j;
            for (i = 0, j = b.length; i < j; i += 1) {
                testi.setStyles(b[i], {
                    visibility: b[i].style.visibility === "" ? "hidden" : ""
                });
            }
        },
        Pos: function (x, y) {
            this.X = x;
            this.Y = y;
            this.Add = function Add(val) {
                var np = new testi.Pos(this.X, this.Y);
                if (val) {
                    if (!isNaN(val.X)) {
                        np.X += val.X;
                    }
                    if (!isNaN(val.Y)) {
                        np.Y += val.Y;
                    }
                }
                return np;
            };
            this.Subtract = function Subtract(val) {
                var np = new testi.Pos(this.X, this.Y);
                if (val) {
                    if (!isNaN(val.X)) {
                        np.X -= val.X;
                    }
                    if (!isNaN(val.Y)) {
                        np.Y -= val.Y;
                    }
                }
                return np;
            };
            this.Min = function Min(val) {
                var np = new testi.Pos(this.X, this.Y);
                if (!val) {
                    return np;
                }
                if (!isNaN(val.X) && this.X > val.X) {
                    np.X = val.X;
                }
                if (!isNaN(val.Y) && this.Y > val.Y) {
                    np.Y = val.Y;
                }
                return np;  
            };
            this.Max = function Max(val) {
                var np = new testi.Pos(this.X, this.Y);
                if (!val) {
                    return np;
                }
                if (!isNaN(val.X) && this.X < val.X) {
                    np.X = val.X;
                }
                if (!isNaN(val.Y) && this.Y < val.Y) {
                    np.Y = val.Y;
                }
                return np;  
            };
            this.Bound = function Bound(lower, upper) {
                var np = this.Max(lower);
                return np.Min(upper);
            };
            this.Check = function Check() {
                var np = new testi.Pos(this.X, this.Y);
                if (isNaN(np.X)) {
                    np.X = 0;
                }
                if (isNaN(np.Y)) {
                    np.Y = 0;
                }
                return np;
            };
            this.Apply = function Apply(elem) {
                if (typeof elem === "string") {
                    elem = testi.$(elem);
                }
                if (!elem) {
                    return;
                }
                if (!isNaN(this.X)) {
                    testi.setStyles(elem, {
                        left: this.Y + "px"
                    });
                }
                if (!isNaN(this.Y)) {
                    testi.setStyles(elem, {
                        top: this.Y + "px"
                    });
                } 
            };
        },
        abCurPos: function (ev) {
            ev = ev ? ev : testi.$win.event;
            if (isNaN(testi.$win.scrollX)) {
                return new testi.Pos(ev.clientX + testi.$doc.documentElement.scrollLeft + testi.$doc.body.scrollLeft, ev.clientY + testi.$doc.documentElement.scrollTop + testi.$doc.body.scrollTop);
            } else {
                return new testi.Pos(ev.clientX + testi.$win.scrollX, ev.clientY + testi.$win.scrollY);
            }
        },
        db: function (elem, ae, lb, ub, sc, mc, ec, al) {
            var cstrtpos, elmstrtp, d = false, lst = false, dp = false, temp,
            dstrt, dgo, dsthook, dst;
            if (typeof elem === "string") {
                elem = testi.$(elem);
            }
            if (!elem) {
                return;
            }
            if (lb && ub) {
                temp = lb.Min(ub);
                ub = lb.Max(ub);
                lb = temp;
            }
            dstrt = function dstrt(ev) { 
                if (d || !lst || dp) {
                    return;
                }
                d = true;
                if (sc) {
                    sc(ev, elem);
                }
                cstrtpos = testi.abCurPos(ev);
                elmstrtp = new testi.Pos(parseInt(elem.style.left, elem.style.left), parseInt(elem.style.top, elem.style.top));
                elmstrtp = elmstrtp.Check();
                testi.addEvent(testi.$doc, "mousemove", dgo);
                testi.addEvent(testi.$doc, "mouseup", dsthook);
                return testi.cancelEvent(ev);
            };
            dgo = function dgo(ev) {
                if (!d || dp) {
                    return;
                }
                var np = testi.abCurPos(ev);
                np = np.Add(elmstrtp).Subtract(cstrtpos);
                np = np.Bound(lb, ub);
                np.Apply(elem);
                if (mc) {
                    mc(np, elem);
                }
                return testi.cancelEvent(ev);
            };
            dsthook = function dsthook(ev) {
                dst();
                return testi.cancelEvent(ev);
            };
            dst = function dst() {
                if (!d || dp) {
                    return;
                }
                testi.removeEvent(testi.$doc, "mousemove", dgo);
                testi.removeEvent(testi.$doc, "mouseup", dsthook);
                cstrtpos = null;
                elmstrtp = null;
                if (ec) {
                    ec(elem);
                }
                d = false;
            };
            this.Dispose = function Dispose() {
                if (dp) {
                    return;
                }
                this.stlt(true);
                elem = null;
                ae = null;
                lb = null;
                ub = null;
                sc = null;
                mc = null;
                ec = null;
                dp = true;
            };
            this.slt = function slt() {
                if (lst || dp) {
                    return;
                }
                lst = true;
                testi.addEvent(ae, "mousedown", dstrt);
            };
            this.stlt = function stlt(scd) {
                if (!lst || dp) {
                    return;
                }
                testi.removeEvent(ae, "mousedown", dstrt);
                lst = false;
                if (scd && d) {
                    dst();
                }
            };
            this.isd = function isd() { 
                return d;
            };
            this.isl = function isl() {
                return lst;
            };
            this.isdp = function isdp() {
                return dp;
            };
            if (typeof ae === "string") {
                ae = testi.$(ae);
            }
            if (!ae) {
                ae = elem;
            }
            if (!al) {
                this.slt();
            }
        },
        doHeight: function (np, elem) {
            var hb = testi.$("handleBottom"), hd = ["textDiv", "komen"], x;
            if (elem !== hb) {
                testi.setStyles(hb, {
                    top: np.Y + "px"
                });
            }
            for (x in hd) {
                if (Object.hasOwnProperty.call(hd, x)) {
                    testi.setStyles(testi.$(hd[x]), {
                        height: (np.Y - 5) + "px"
                    });
                }
            }
        },
        boxFX: function (eid) {
            var elem = testi.$(eid), ts = new Date();
            if (!elem) {
                return;
            }
            if (!elem.maut) {
                if (!elem.style.opacity || elem.style.opacity === "" || elem.style.opacity === "1") {
                    elem.maut = -2;
                } else {
                    elem.maut = 2;
                }
            }
            if (elem.maut !== 1 || elem.maut === -1) {
                elem.maut = elem.maut === 2 ? -1 : 1;
                elem.tempek = testi.$fader;
                testi.$win.setTimeout(function () {
                    testi.animFade((ts).getTime(), eid);
                }, 33);
            } else {
                elem.maut = elem.maut === 1 ? -1 : 1;
                elem.tempek = testi.$fader - elem.tempek;
            }
            if (elem.style.display !== "none") {
                testi.$win.setTimeout(function () {
                    testi.setStyles(elem, {
                        display: "none"
                    });
                }, testi.$fader);
            } else {
                testi.$win.setTimeout(function () {
                    testi.setStyles(elem, {
                        display: ""
                    });
                }, 33);
            }
        },
        animFade: function (lt, eid) {
            var ts = new Date(), ct = (ts).getTime(),
            et = ct - lt, elem = testi.$(eid), nov;
            if (elem.tempek <= et) {
                testi.setStyles(elem, {
                    opacity: elem.maut === 1 ? "1": "0"
                });
                testi.setStyles(elem, {
                    opacity: "alpha(opacity = " + (elem.maut === 1 ? "100": "0") + ")"
                });
                elem.maut = elem.maut === 1 ? 2 : -2;
                return;
            }
            elem.tempek -= et;
            nov = elem.tempek / testi.$fader;
            if (elem.maut === 1) {
                nov = 1 - nov;
            }
            testi.setStyles(elem, {
                opacity: nov
            });
            testi.setStyles(elem, {
                filter: "alpha(opacity = " + (nov * 100) + ")"
            });
            testi.$win.setTimeout(function () {
                testi.animFade((ts).getTime(), eid);
            }, 33);
            return elem;
        },
        itf: function () {
            var obj = (testi.elmsByTag("body", testi.$doc)[0].innerText !== undefined) ? true : false;
            return obj;
        },
        changeText: function (elem, val) {
            if (!testi.itf()) {
                elem.textContent = val;
            } else {
                elem.innerText = val;
            }
        },
        rtxt: function (text, ta) {
            var cp, begin, end, sp;
            if (typeof ta.caretPos !== "undefined" && ta.createTextRange) {
                cp = ta.caretPos;
                cp.text = cp.text.charAt(cp.text.length - 1) === " " ? text + " ": text;
                cp.select();
            } else if (typeof ta.selectionStart !== "undefined") {
                begin = ta.value.substr(0, ta.selectionStart);
                end = ta.value.substr(ta.selectionEnd);
                sp = ta.scrollTop;
                ta.value = begin + text + end;
                if (ta.setSelectionRange) {
                    ta.focus();
                    ta.setSelectionRange(begin.length + text.length, begin.length + text.length);
                }
                ta.scrollTop = sp;
            } else {
                ta.value += text;
                ta.focus(ta.value.length - 1);
            }
        },
        insertTag: function (mf, op, cs) {
            var sel, sp, ep;
            if (testi.$doc.selection && testi.$doc.selection.createRange) {
                mf.focus();
                sel = testi.$doc.selection.createRange();
                sel.text = op + sel.text + cs;
                mf.focus();
            } else if (mf.selectionStart || mf.selectionStart <= 0) {
                sp = mf.selectionStart;
                ep = mf.selectionEnd;
                mf.value = mf.value.substring(0, sp) + op + mf.value.substring(sp, ep) + cs + mf.value.substring(ep, mf.value.length);
                mf.selectionStart = mf.selectionEnd = ep + op.length + cs.length;
                mf.focus();
            } else {
                mf.value += op + cs;
                mf.focus();
            }
            return;
        },
        lebar: function () {
            return testi.$win.innerWidth ? testi.$win.innerWidth : testi.$doc.documentElement && testi.$doc.documentElement.clientWidth ?
            testi.$doc.documentElement.clientWidth : testi.$doc.body ? testi.$doc.body.clientWidth : null;
        },
        tinggi: function () {
            return testi.$win.innerHeight ? testi.$win.innerHeight : testi.$doc.documentElement && testi.$doc.documentElement.clientHeight ?
            testi.$doc.documentElement.clientHeight : testi.$doc.body ? testi.$doc.body.clientHeight : null;
        },
        PosisiAtas: function () {
            return typeof testi.$win.pageYOffset !== "undefined" ? testi.$win.pageYOffset : testi.$doc.documentElement && testi.$doc.documentElement.scrollTop ?
            testi.$doc.documentElement.scrollTop : testi.$doc.body.scrollTop ? testi.$doc.body.scrollTop : 0;
        },
        PosisiKiri: function () {
            return typeof testi.$win.pageXOffset !== "undefined" ? testi.$win.pageXOffset : testi.$doc.documentElement && testi.$doc.documentElement.scrollLeft ?
            testi.$doc.documentElement.scrollLeft : testi.$doc.body.scrollLeft ? testi.$doc.body.scrollLeft : 0;
        },
        showtibai: function (title, message, type, autohide) {
            if (!type) {
                type = "warning";
            }
            var ta, tb, tc, td, te, w, h, l, t, tw, th, tp, lp, c;
            if (!testi.$("tibai")) {
                ta = testi.cElems("div", {
                    id: "tibai"
                });
                tb = testi.cElems("div", {
                    id: "tibai-header"
                });
                tc = testi.cElems("div", {
                    id: "tibai-title"
                });
                td = testi.cElems("div", {
                    id: "tibai-content"
                });
                te = testi.cElems("div", {
                    id: "tibai-mask"
                });
                testi.$doc.body.appendChild(te);
                testi.$doc.body.appendChild(ta);
                ta.appendChild(tb);
                tb.appendChild(tc);
                ta.appendChild(td);
            } else {
                ta = testi.$("tibai");
                tb = testi.$("tibai-header");
                tc = testi.$("tibai-title");
                td = testi.$("tibai-content");
                te = testi.$("tibai-mask");
                testi.setStyles(te, {
                    visibility: "visible"
                });
                testi.setStyles(ta, {
                    visibility: "visible"
                });
            }
            testi.setStyles(ta, {
                opacity: 0.00,
                filter: "alpha(opacity=0)"
            });
            ta.alpha = 0;
            w = testi.lebar();
            h = testi.tinggi();
            l = testi.PosisiKiri();
            t = testi.PosisiAtas();
            tw = ta.offsetWidth;
            th = ta.offsetHeight;
            tp = t + (h / 2) - (th / 2);
            lp = l + (w / 2) - (tw / 2);
            testi.setStyles(ta, {
                top: tp + "px",
                left: lp + "px"
            });
            tb.className = type + "header";
            tc = testi.rhtm(tc, title);
            td.className = type;
            td = testi.rhtm(td, message);
            c = testi.$("flo_wrapper");
            testi.setStyles(te, {
                backgroundColor: "rgb(0, 0, 0)",
                height: c.offsetHeight + "px"
            });
            ta.timer = testi.$win.setInterval(function () { 
                testi.fadetibai(1);
            }, testi.$timer);
            if (autohide) {
                testi.$win.setTimeout(function () {
                    testi.hidetibai();
                }, (autohide * testi.$fader));
            }
        },
        hidetibai: function () {
            var ta = testi.$("tibai");
            testi.$win.clearInterval(ta.timer);
            ta.timer = testi.$win.setInterval(function () {
                testi.fadetibai(0);
            }, testi.$timer);
        },
        fadetibai: function (flag) {
            if (flag === -1) {
                flag = 1;
            }
            var ta = testi.$("tibai"), value;
            if (flag === 1) {
                value = ta.alpha + testi.$speed;
            } else {
                value = ta.alpha - testi.$speed;
            }
            ta.alpha = value;
            testi.setStyles(ta, {
                opacity: (value / 100),
                filter: "alpha(opacity=" + value + ")"
            });
            if (value >= 99) {
                testi.$win.clearInterval(ta.timer);
                ta.timer = null;
            } else if (value <= 1) {
                testi.setStyles(ta, {
                    visibility: "hidden"
                });
                testi.setStyles(testi.$("tibai-mask"), {
                    visibility: "hidden"
                });
                testi.$win.clearInterval(ta.timer);
            }
        },
        rhtm: function (el, htm) {
            var oe = typeof el === "string" ? testi.$(el) : el, ne;
            /*@cc_on
                @if (@_win32 || @_win64)
                    oe.innerHTML = htm;
                    return oe;
                @end 
            @*/
            ne = oe.cloneNode(false);
            ne.innerHTML = htm;
            testi.replace(ne, oe);
            return ne;
        },
        trimX: function (htm) {
            var ws = /\s/, $tart = 0, end = htm.length;
            while (ws.test(htm.charAt($tart += 1))) {
                while (ws.test(htm.charAt(end -= 1))) {
                    return htm.slice($tart - 1, end + 1);
                }
            }
        },
        $: function (e) {
            var n;
            if (e && document && typeof e === "string") {
                n = e;
                e = testi.$doc.getElementById(e);
                if (e && e.id !== n) {
                    return testi.$doc.getElementsByName(n)[1];
                }
            }
            return e;
        },
        each: function (o, cb, s) {
            var n, l;
            if (!o) {
                return 0;
            }
            s = s || o;
            if (typeof o.length !== "undefined") {
                for (n = 0, l = o.length; n < l; n += 1) {
                    if (cb.call(s, o[n], n, o) === false) {
                        return 0;
                    }
                }
            } else {
                for (n in o) {
                    if (Object.hasOwnProperty.call(o, n)) {
                        if (cb.call(s, o[n], n, o) === false) {
                            return 0;
                        }
                    }
                }
            }
            return 1;
        },
        run: function (e, f, s) {
            var o;
            if (document && typeof e === "string") {
                e = testi.$(e);
            }
            if (!e) {
                return false;
            }
            s = s || this;
            if (!e.nodeType && (e.length || e.length === 0)) {
                o = [];
                testi.each(e, function (e, i) {
                    if (e) {
                        if (typeof e === "string") {
                            e = testi.$(e);
                        }
                        o.push(f.call(s, e, i));
                    }
                });
                return o;
            }
            return f.call(s, e);
        },
        is: function (o, t) {
            var n = typeof(o);
            if (!t) {
                return n !== "undefined";
            }
            if (t === "array" && (o instanceof Array)) {
                return true;
            }
            return n === t;
        },
        replace: function (n, o, k) {
            if (testi.is(o, "array")) {
                n = n.cloneNode(true);
            }
            return testi.run(o, function (o) {
                if (k) {
                    testi.each(o.childNodes, function (c) {
                        n.appendChild(c.cloneNode(true));
                    });
                }
                return o.parentNode.replaceChild(n, o);
            });
        },
        remove: function (n, k) {
            return testi.run(n, function (n) {
                var p, g;
                p = n.parentNode;
                if (!p) {
                    return null;
                }
                if (k) {
                    testi.each(n.childNodes, function (c) {
                        p.insertBefore(c.cloneNode(true), n);
                    });
                }
                return p.removeChild(n);
            });
        },
        elmsByTag: function (t, p) {
            var list;
            t = t || "*";
            p = testi.$(p) || testi.$doc;
            if (typeof p.getElementsByTagName !== "undefined") {
                list = p.getElementsByTagName(t);
                if (t === "*" && (!list || !list.length)) {
                    list = p.all;
                }
            } else {
                if (t === "*") {
                    list = p.all;
                } else if (p.all && p.all.tags) {
                    list = p.all.tags(t);
                }
            }
            return list || [];
        },
        elmsByClass: function (sc, st, oce) {
            st = st || "*";
            oce = oce || testi.$doc;
            var oc = testi.elmsByTag(st, oce), arr = [], dl, ac, aoc, c, i, j, k, m;
            if (!oc.length && st === "*" && oce.all) {
                oc = oce.all;
            }
            dl = sc.indexOf("|") !== -1 ? "|": " ";
            ac = sc.split(dl);
            for (i = 0, j = oc.length; i < j; i += 1) {
                aoc = oc[i].className.split(" ");
                if (dl === " " && ac.length > aoc.length) {
                    continue;
                }
                c = 0;
                cl:
                for (k in aoc) {
                    if (Object.hasOwnProperty.call(aoc, k)) {
                        for (m in ac) {
                            if (Object.hasOwnProperty.call(ac, m)) {
                                if (ac[m] === aoc[k]) {
                                    c += 1;
                                }
                                if ((dl === "|" && c === 1) || (dl === " " && c === ac.length)) {
                                    arr.push(oc[i]);
                                    break cl;
                                }
                            }
                        }
                    }
                }
            }
            return arr;
        },
        testiBox: function (hd, htm, id, s, i) {
            var hn = typeof hd === "string" ? "<h2>" + hd + "</h2>" : null,
            sd, sl, ad, ut;
            sd = testi.cElems("div", {
                className: "commonbox " + id,
                id: id,
                innerHTML: hn
            });
            ad = testi.cElems("div", {
                id: "content_" + id,
                innerHTML: htm
            });
            sd.appendChild(ad);
            sl = testi.cElems("li", null, null);
            sl.appendChild(sd);
            ut = testi.$(s);
            if (i === "below") {
                ut.parentNode.appendChild(sl);
            } else if (i === "above") {
                ut.parentNode.parentNode.insertBefore(sl, ut.parentNode);
            } else {
                ut.parentNode.parentNode.appendChild(sl);
            }
            return sd;
        },
        getRequest: function (url, async, func, hp) {
            /*global ActiveXObject, XMLHttpRequest*/
            var msxml = ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP"], ct = [],
            xmlhttp, rd = false, x, k;
            for (x in msxml) {
                if (Object.hasOwnProperty.call(msxml, x)) {
                    ct[ct.length] = msxml[x];
                }
            }
            for (k in ct) {
                if (Object.hasOwnProperty.call(ct, k)) {
                    try {
                        xmlhttp = testi.$win.ActiveXObject ? new ActiveXObject(ct[k]) : new XMLHttpRequest();
                        break;
                    } catch (e) {
                        xmlhttp = null;
                    }
                }
            }
            ct = null;
            if (typeof func === "function") {
                xmlhttp.onreadystatechange = function onreadystatechange() {
                    if (!rd && xmlhttp && (xmlhttp.readyState === 4)) {
                        rd = true;
                        if ((xmlhttp.status >= 200 && xmlhttp.status < 300) || xmlhttp.status === 304 || xmlhttp.status === 1223) {
                            func(xmlhttp.responseText.replace(new RegExp("<script[^>]*>[\\S\\s]*?<\/script>", "gi"), ""), hp);
                        }
                    }
                };
            }
            xmlhttp.open("GET", url, async);
            xmlhttp.setRequestHeader("getRequest", "true");
            xmlhttp.setRequestHeader("Cache-Control", "no-cache");
            xmlhttp.setRequestHeader("X-Requested-With", "XMLHttpRequest");
            xmlhttp.setRequestHeader("If-Modified-Since", "Thu, 01 Jan 1970 00:00:00 GMT");
            xmlhttp.setRequestHeader("Accept", "text/javascript, application/javascript, text/html, application/xml, text/xml, text/plain, */*");
            xmlhttp.send(null);
        }
    };
})();
/*global pageViewerLangPref*/
if (pageViewerLangPref === "en-US") {
    testi.init();
}
testi.rcomm();
//-----------------------------[/spoiler]
lalu inject di [b]area A[/b]
dengan script ini....
[quote]var java = document.createElement("script");
java.type = "text/javascript";
java.src = "[b]
http://www.HOSTNGAN_KAMU/forcomment.js[/b]";
document.getElementsByTagName("head")[0].appendChild(java);[/quote]
edit yabf aku [b]tebelein[/b] sesuaikan dgn hostinganmu