﻿
//原作者：Justin
//出处：http://justinw.cnblogs.com/
//备注：如有问题，可以优先到 http://www.cnblogs.com/justinw/archive/2010/03/30/1700190.html 留言提问。
//改写人：zhangkang
//链接地址：http://www.zhangkang.net

   function getmonth(){
   var dt=new Date();
   var m=dt.getMonth();
   switch(m)
   {
        case 0:m="一";break;
        case 1:m="二";break;
        case 2:m="三";break;
        case 3:m="四";break;
        case 4:m="五";break;
        case 5:m="六";break;
        case 6:m="七";break;
        case 7:m="八";break;
        case 8:m="九";break;
        case 9:m="十";break;
        case 10:m="十一";break;
        case 11:m="十二";break;
   }
   return m;
   }
//--begin--jMsg---
jMsg = function() {
    var chkRecomend = false;
}

jMsg.prototype = {
    //初始化动作
    initialize: function() {
        //jMsg.loadEvent(this.combat);
        this.msgDIV();
        //setTimeout("jMsg.ClickCat()", 15000);
    },
//    dispose: function() {
//        //todoSomething...
//    },
    //提交留言信息
    post: function(msg) {
        //这里通过判断HaveUp标志位，来防止反复提交相同留言。
        if (window.top.HaveUp) {
            alert('您已经留过言了！谢谢朋友 ：）');
            return false;
        }
        if (msg.trim().length == 0) {
            alert('怎么也得留一个字吧！');
            return false;
        }
        else if (msg.trim().length > 140) {
            alert('这枚同学，快捷留言最多支持140个字符！');
            return false;
        }

        var txt = document.getElementById('comment');
        if (txt != null) {
            txt.style.backgroundColor = "#E4F5FF";
            var date = new Date();
            txt.value = msg;
            txt.focus();
            //如果提交过一次快捷留言，HaveUp就设置为true
            //每次重新进入页面，HaveUp就会被初始化。
            window.top.HaveUp = true;
            //这是提交留言用的方法，通过这里正是提交留言。
            var cf= document.forms['commentform'];
            cf.action="http://sunshiyan.com/wp-comments-post.php"
            try{
            if(cf.author.value=='')
            cf.author.value=getmonth()+"月的路人甲"
            if(cf.email.value=='')
            cf.email.value="xxx@xxx.com"
            if(cf.url.value=='')
            cf.url.value='http://www.zhangkang.net'
            }
            catch(err){}
            cf.submit.click();
           
            this.setMsgText("");
            return true;
        }

    },
    //提交留言的同时推荐
    superPost: function(msg) {
   // this.post(msg);
        var dftMsg = "文章不错，支持！";
        if (dftMsg == msg) {
            //感觉这个提示框有点过多，暂时交互模式没有更好的办法。
            if (!confirm("您确定不再说点别的了吗，跟别人说一样的多没个性呀！：）想说点别的，点取消吧！")) {
                this.setMsgText("");
                return;
            }
        }
       if (this.post(msg)) {
        }
    },
    //快捷留言的浮动导航条
    msgDIV: function() {
        //是否出现浮动条。
        if (!(window.location.href.indexOf("?p=") > -1)) return;
        if(!(window.location.href.indexOf("?p=180") <= -1)) return;

        var browser=navigator.appName 
        var b_version=navigator.appVersion 
        var version=b_version.split(";"); 
        var trim_Version=version[1].replace(/[ ]/g,""); 
        if(trim_Version!="MSIE6.0") 
        document.write(this.getMsgBoxHTML());
    },
    getMsgBoxHTML: function() {
        var _HTML = "";
        _HTML += "<div id=\"msgDiv\" style=\"position: fixed;width:140px; right: 12px; bottom: 0; z-index: 9; margin: 0px; padding: 0px; border: 0px solid rgb(204, 204, 204);\" showMsg = 1>";
        _HTML += "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
        _HTML += "<tbody>";
        _HTML += "<tr><td><img style=\"cursor:pointer\" title=\"弹出/隐藏快捷留言栏！\" onclick=\"jMsg.ClickCat()\" src=\"http://www.cnblogs.com/images/cnblogs_com/justinw/25027/o_blackcat.gif\" ></td></tr>";
        _HTML += "<tr><td><textarea id=\"jmsg\" title=\"使用快捷留言，想说就说！\" style=\"border-color:navy;background-color:white;width:140px;height:140px\">文章不错，支持！</textarea></td></tr>";
        _HTML += "<tr><td style=\"background-color:white; padding-top:3px\"><input title=\"Alt+Enter\" name=\"postjMsg\" type=\"submit\"onclick=\"$jMsg.superPost($jMsg.getMsgText());return false;\" value=\"提交\" style=\"width:142px;height:30px;\"/>";
        _HTML += "</tr>";
        _HTML += "</tbody></table>";
        _HTML += "</div>";
        return _HTML;
    },
    setMsgText: function(txt) {
        var area = document.getElementById("jmsg");
        area.value = txt;
        area.focus();
    },
    getMsgText: function() {
        var area = document.getElementById("jmsg");
        return area.value;
    },
    setChkRecomend: function(val) {
        this.chkRecomend = val;
    }
}

//附加onload事件
jMsg.loadEvent = function(fn) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = fn;
    } else {
        window.onload = function() {
            oldonload();
            fn();
        }
    }
}

//附加事件
jMsg.addEvent = function(obj, type, fn) {
    if (obj.addEventListener)
        obj.addEventListener(type, fn, true);
    else if (obj.attachEvent) {
        obj.attachEvent("on" + type, function() {
            fn();
        });
    }
}

//通过ClassName找到DOM元素
jMsg.getElementsByClassName = function(n) {
    var el = [],
        _el = document.getElementsByTagName('*');
    for (var i = 0; i < _el.length; i++) {
        if (_el[i].className == n) {
            el[el.length] = _el[i];
        }
    }
    return el;
}

jMsg.ClickCat=function() {
    var div = document.getElementById("msgDiv");
    var tag = div.getAttribute("showmsg");
    if (tag == 1) {
        div.style.bottom = "-180px";
        div.setAttribute("showmsg", 0);
    }
    else {
        div.style.bottom = "0";
        div.setAttribute("showmsg", 1);
    }
}

String.prototype.trim = function() {
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

//--end--jMsg---
//todo:提供设置是否显示浮动条的接口
//todo:提供完全自定义浮动条内容的接口
//todo:提供浮动以外的交互模式接口
var $jMsg = new jMsg();
$jMsg.initialize();
