﻿var _cmtInput = {
    ulCmtId: function(dynId) {
        return "#ulCmt_" + _dynFilt.dynName + "_" + dynId;
    },
    liCmtInput: function(dynName) {
        if (dynName) { return '#liCmtInput_' + dynName; }
        return '#liCmtInput_' + _dynFilt.dynName;
    },
    ulCmtInput: function(dynId) {
        if (dynId) { return "#ulInput_" + _dynFilt.dynName + "_" + dynId; }
        return "#ulInput_" + _dynFilt.dynName + "_" + _cmtInput.prevDynId;
    },
    prevDynId: "",
    changeVal: function(val) {
        var input = $(_cmtInput.liCmtInput()).find('.com-input');
        sodaoCheck._word(input, 'curCmtWord');
    },
    afterAdd: function(html) {
        var liInput = $(_cmtInput.liCmtInput());
        liInput.find('#btnNewCmt').attr('disabled', '');
        liInput.find('.com-input').val('');
        liInput.find('#curCmtWord').html('0')
        var ulCmt = $(_cmtInput.ulCmtId(_cmtInput.prevDynId)).html(html);
        if (ulCmt.css("display") == "none") { ulCmt.fadeIn("fast"); }
        _cmtInput.sending = false;
    },
    load: function(dynId, oc, ctp, _dynName) {
        if (_dynName && _dynName != '') { _dynFilt.dynName = _dynName; }
        var ajax = {
            url: '/home/comment/list?rtp=dyn&oc=' + oc + '&cmtt=' + ctp, type: 'GET', dataType: 'html', cache: false,
            success: function(html, statusText) {
                if (html != "0") {
                    var ulCmt = $(_cmtInput.ulCmtId(dynId)).html(html);
                    if (ulCmt.css("display") == "none") { ulCmt.fadeIn("fast"); }
                } else {
                    sDialog.error("回复时发生错误，请稍候再试...", "回复错误", 300, 50);
                }
            }
        };
        $.ajax(ajax);
    },
    hide: function(dynId, lnk) {
        if ($(lnk).html() == "收起回复") {
            $(_cmtInput.ulCmtId(dynId)).slideUp("fast");
            var ulCmtInput = $(_cmtInput.ulCmtInput(dynId));
            if (ulCmtInput.children('.input-normal').css('display') == "none") {
                ulCmtInput.children('.input-normal').css('display', "");
                ulCmtInput.children('.input-show').css('display', "none");
            }
            $(lnk).html("展开回复");
        } else {
            this.expand(dynId, lnk);
        }
        return false;
    },
    expand: function(dynId, lnk) {
        var liCmt = $(_cmtInput.ulCmtId(dynId));
        if (liCmt.html() != "") {
            liCmt.slideDown("fast");
        }
        $(lnk).html("收起回复");
        return false;
    },
    mouseLeave: false,
    sending: false,
    cmtOver: function() { this.mouseLeave = false; },
    cmtSubmit: function(event) {
        var event = window.event ? window.event : event;
        if (event.keyCode == 13 && !this.sending) { $(_cmtInput.liCmtInput()).find('#btnNewCmt').get(0).click(); };
    },
    replyClick: function(obj, _dynName) {
        _dynFilt.dynName = _dynName;
        var p = $(obj).parent().parent();
        var cmtp = p.find('div.movement-comment');
        var _input = p.find('.com-input');
        if (cmtp.css('display') == 'none') {
            cmtp.css('display', '');
        }
        _input.focus();
        setTimeout(function() {
            var liInput = $(_cmtInput.liCmtInput());
            if (liInput.attr('id')) {
                var textarea = p.find("textarea.com-input").get(0);
                textarea.focus();
            }
        }, 100);
        return false;
    },
    cmtClick: function(dynId, dynSource, cmtTyp, dynMd, _dynName, _oUser, _oClass) {
        if (_dynName) { _dynFilt.dynName = _dynName; }
        if (this.prevDynId != "") {
            var ulPrev = $(_cmtInput.ulCmtInput());
            ulPrev.children('.input-normal').css('display', '');
        }
        var ulInput = $(_cmtInput.ulCmtInput(dynId));
        ulInput.children('.input-normal').css('display', 'none');
        var liInput = $(_cmtInput.liCmtInput()).appendTo(ulInput).css('display', '');
        liInput.unbind("mouseleave");
        liInput.bind("mouseleave", function() {
            _cmtInput.mouseLeave = true;
        });
        var _input = liInput.find('.com-input');
        if (this.prevDynId != dynId) {
            _input.val("");
            ulInput.find('#curCmtWord').html('0');
        }
        _input.focus();
        this.prevDynId = dynId;
        if (liInput.find(".comment-expression").html() == "") {
            SoDaoExpressionBox.init(_input, this.changeVal);
        }
        _cmtInput.curReplyName = "";
        _cmtInput.curReplyNick = "";
        var btnNewCmt = liInput.find('#btnNewCmt');
        btnNewCmt.unbind('click');
        btnNewCmt.bind("click", function() {
            var liInput = $(_cmtInput.liCmtInput());
            var input = liInput.find('.com-input');
            if (input.val().trim() == "") {
                input.val('');
                sDialog.activeMsg(this, '请输入你要发表的内容', 'T', 150, 2500, 'slide-R');
                return false;
            }
            var max = parseInt(input.attr('maxlength'));
            var wds = parseInt(liInput.find('#curCmtWord').html());
            if (wds > max) {
                sDialog.activeMsg(this, '发表的内容请少于' + max + '个字', 'T', 160, 2500, 'slide-R');
                return;
            }
            _cmtInput.sending = true;
            $(this).attr('disabled', 'disabled');
            $(this).attr('r2un', _cmtInput.curReplyName);
            $(this).attr('r2uni', _cmtInput.curReplyNick);
            $(this).attr('rid', _cmtInput.curRootId);
            SoDaoComment.addComment(this, dynSource, dynMd, cmtTyp, 'dyn', _cmtInput.afterAdd, _oUser, _oClass);
        });
    },
    cmtBlur: function(obj) {
        if (this.mouseLeave && $(obj).val() == "") {
            var ulPrev = $(_cmtInput.ulCmtInput());
            ulPrev.children('.input-normal').css('display', '');
            $(_cmtInput.liCmtInput()).css('display', 'none');
        }
    },
    curReplyName: "",
    curReplyNick: "",
    curRootId: "",
    cmtInitReply: function(textArea, unk) {
        var val = $(textArea).val();
        if (val.startWith('回复.{1,20}：?')) {
            var reg = new RegExp('^回复.{1,20}：', "ig");
            $(textArea).val(val.replace(reg, '回复' + unk + '：'));
        } else {
            $(textArea).val('回复' + unk + '：' + val);
        }
    },
    cmtReply: function(obj, un, unk) {
        var p = $(obj).parents('li[rid]').parent().parent();
        var rid = "";
        if (p != null && p != "undefined") {
            rid = $(obj).parents('li[rid]').attr("rid");
            if (rid.length <= 2) { rid = ""; }
        }
        var input = p.find("input.com-input").get(0);
        var liInput = p.find("li.input-normal");
        if (typeof input == "object") {
            if (liInput.css("display") != "none") {
                input.focus();
                setTimeout(function() {
                    var liInput = $(_cmtInput.liCmtInput());
                    if (liInput.attr('id')) {
                        var textarea = p.find("textarea.com-input").get(0);
                        _cmtInput.cmtInitReply(textarea, unk);
                    }
                }, 150);
            }
            var textarea = p.find("textarea.com-input").get(0);
            if (typeof textarea == "object") {
                setTimeout(function() {
                    textarea.focus(); _cmtInput.cmtInitReply(textarea, unk);
                }, 150);
            }
        }
        setTimeout(function() {
            _cmtInput.curReplyName = un;
            _cmtInput.curReplyNick = unk;
            _cmtInput.curRootId = rid;
        }, 200);
        return false;
    },
    curTimes: new Array(),
    everyCount: 8,
    loadCount: function(dynName) {
        if (!this.curTimes[dynName]) { this.curTimes[dynName] = 1; }
        if (sources[dynName]) {
            if (sources[dynName].length > (this.everyCount * (this.curTimes[dynName] - 1))) {
                var dyns = '', socs = '', cmtts = '';
                for (var a = this.everyCount * (this.curTimes[dynName] - 1); a < this.everyCount * this.curTimes[dynName]; a++) {
                    if (a < sources[dynName].length) {
                        if (a > 0) { dyns += ','; socs += ','; cmtts += ','; }
                        dyns += sources[dynName][a].dyn;
                        socs += sources[dynName][a].code;
                        cmtts += sources[dynName][a].cmtt;
                    }
                }
                var ajax = {
                    url: '/home/comment/DynCountList', type: 'GET', dataType: 'json', cache: false,
                    data: { dyns: dyns, source: socs, cmtts: cmtts },
                    success: function(json, statusText) {
                        for (var a = 0; a < json.length; a++) {
                            _cmtInput.addCmtCount(json[a], dynName);
                        }
                    }
                };
                if(dynName!="zone")
                {
                   $.ajax(ajax);
                }
                else
                {
                    var ajax2 = {
                        url: '/zone/UserZoneDynamic/' + this.dynName,type: 'GET', dataType: 'json', cache: false,
                        success: function(json, statusText) {
                            for (var a = 0; a < json.length; a++) {
                                _cmtInput.addCmtCount(json[a], dynName);
                            }
                        }
                    };
                    $.ajax(ajax2);
                }
                this.curTimes[dynName] += 1;
                setTimeout("_cmtInput.loadCount('" + dynName + "')", 5000);
            } else {
                this.curTimes[dynName] = 1; //re init
            }
        }
    },
    addCmtCount: function(item, _dynName) {
        var liCmt = $(_cmtInput.ulCmtId(item.dyn));
        if (liCmt.html() == "") {
            if (item.fun != '') {
                var fli = $('<li rid="1"/>').appendTo(liCmt);
                var fhdiv = $('<div/>').attr('class', 'user-avatar-small').appendTo(fli);
                var fua = $('<a target="_blank"/>').attr("href", item.fus).appendTo(fhdiv);
                fua.append('<img src="' + item.fuh + '" alt="' + item.fnk + '" width="32" height="32" />');
                fua.append('<span class="cr-box-small"></span>');
                if (item.fdl) {
                    $('<a href="#" class="close"/>').bind("click", item, function(event) {
                        delConfirm.showCmt(this, event.data.cid, event.data.fid, event.data.fmd, event.data.ctp, null, event.data.fun); return false;
                    }).append('删除').appendTo(fli);
                }
                var fp = $('<p/>').appendTo(fli);
                fp.append('<a href="' + item.fus + '" target="_blank">' + item.fnk + '</a>');
                fp.append(' - <span class="date">' + item.ftm + '</span> - ');
                $('<a href="#"/>').bind("click", item, function(event) {
                    _cmtInput.cmtReply($(this), event.data.fun, event.data.fnk); return false;
                }).append('回复').appendTo(fp);
                fp.append("<br/>").append(item.fct);
            }
            if (item.ctc > 2) {
                var lim = $('<li/>').attr('class', 'mor-link').appendTo(liCmt);
                var moreText = '还有<span style="color:#b00">' + (item.ctc - 2).toString() + '</span>条评论...';
                if (item.ctc > 100) {
                    moreText += '查看最新<span style="color:#b00">100</span>条';
                } else {
                    moreText += '查看全部';
                }
                $('<a href="#"/>').bind("click", item, function(event) {
                    _cmtInput.load(event.data.dyn, event.data.cid, event.data.ctp, _dynName); return false;
                }).append(moreText).appendTo(lim);
            }
            if (item.lun != '' && item.lid != item.fid) {
                var lli = $('<li rid="2"/>').appendTo(liCmt);
                var lhdiv = $('<div/>').attr('class', 'user-avatar-small').appendTo(lli);
                var lua = $('<a target="_blank"/>').attr("href", item.lus).appendTo(lhdiv);
                lua.append('<img src="' + item.luh + '" alt="' + item.lnk + '" width="32" height="32" />');
                lua.append('<span class="cr-box-small"></span>');
                if (item.ldl) {
                    $('<a href="#" class="close"/>').bind("click", item, function(event) {
                        delConfirm.showCmt(this, event.data.cid, event.data.lid, event.data.lmd, event.data.ctp, null, event.data.lun); return false;
                    }).append('删除').appendTo(lli);
                }
                var lp = $('<p/>').appendTo(lli);
                lp.append('<a href="' + item.lus + '" target="_blank">' + item.lnk + '</a>');
                lp.append(' - <span class="date">' + item.ltm + '</span> - ');
                $('<a href="#"/>').bind("click", item, function(event) {
                    _cmtInput.cmtReply($(this), event.data.lun, event.data.lnk); return false;
                }).append('回复').appendTo(lp);
                lp.append("<br/>").append(item.lct);
            }
            var _prevDiv = liCmt.parent().prev();
            if (_prevDiv.attr("class") == "movement-foot") {
                _prevDiv.find('span').html('(' + item.ctc + ')');
            }
        }
        liCmt.parent().css("display", "");
        if (liCmt.css("display") == "none") { liCmt.slideDown("fast"); }
        return false;
    }
};

var _dynFilt = {
    fClick: false,
    fDynId: "",
    showOp: function(obj) {
        $(obj).find('span.feeds-time').css("display", "none");
        $(obj).find('span.feeds-opt').css("display", "");
        if (this.fClick && this.fDynId == $(obj).attr('id')) {
            $(obj).find('div.filter-shield').css("display", "");
        } else {
            $(obj).find('div.filter-shield').css("display", "none");
            $(obj).find("a[class^='icon-filter-simple']").attr("class", "icon-filter-simple");
            this.fClick = false;
        }
        this.fDynId = $(obj).attr('id');
        $(obj).unbind("mouseleave");
        $(obj).bind("mouseleave", function() {
            $(this).find('span.feeds-time').css("display", "");
            $(this).find('span.feeds-opt').css("display", "none");
            $(this).find('div.filter-shield').css("display", "none");
        });
    },
    doFUser: function(json) {
        var ajax = {
            url: "/home/privacy/DynamicFilterUser", type: "POST", dataType: "text", cache: false, data: { users: json.user },
            success: function(html) {
                if (html == "ok") {
                    sDialog.info("恭喜你，过滤成功<br/><br/>以后用户“" + json.nick + "”的所有动态将不显示在你的好友动态中<br/><br/>显示隐藏的动态请点击：<a href='/home/privacy/dynamicFilter'>动态过滤设置</a>", '好友动态过滤成功', 350, 100);
                } else {
                    sDialog.error(html, '好友动态过滤失败', 350, 50);
                }
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                sDialog.error("错误信息" + errorThrown, '操作失败', 300, 50);
            }
        };
        $.ajax(ajax);
    },
    fUser: function(user, nickName) {
        sDialog.confirm('你确定要将“' + decodeURIComponent(nickName) + '”的全部动态信息隐藏吗？', _dynFilt.doFUser, undefined, { user: user, nick: decodeURIComponent(nickName) });
    },
    doFType: function(json) {
        var ajax = {
            url: "/home/privacy/DynamicFilterType/" + json.type, type: "GET", dataType: "text", cache: false,
            success: function(html) {
                if (html == "ok") {
                    sDialog.info("以后所有“" + json.name + "”类的动态将不显示在你的好友动态中", '动态分类过滤成功', 350, 50);
                } else {
                    sDialog.error(html, '动态分类过滤失败', 300, 50);
                }
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                sDialog.error("错误信息" + errorThrown, '操作失败', 300, 50);
            }
        };
        $.ajax(ajax);
    },
    fType: function(typ, typName) {
        sDialog.confirm('你确定要将所有关于“' + typName + '”类的动态信息隐藏吗？', _dynFilt.doFType, undefined, { type: typ, name: typName });
    },
    show: function(obj, user, nick, typ, typName) {
        var filtDiv = $(obj).parents("div.title-box").children('.filter-shield');
        filtDiv.slideDown("fast", function() { });
        $(obj).attr('class', 'icon-filter-simple-on');
        this.fClick = true;
        filtDiv.unbind("mouseleave");
        filtDiv.bind("mouseleave", function() {
            _dynFilt.hide(this);
        });
        if (filtDiv.html() == "") {
            var ul = $('<ul/>').appendTo(filtDiv);
            var li1 = $("<li/>").appendTo(ul);
            $('<a href="#"/>').bind("mouseover", function() {
                $(this).parent().attr("class", "on");
            }).bind("mouseout", function() {
                $(this).parent().attr("class", "");
            }).bind("click", function() {
                _dynFilt.hide($(this).parent().parent().parent());
                _dynFilt.fUser(user, nick);
                return false;
            }).append("隐藏此人信息").appendTo(li1);

            var li2 = $("<li/>").appendTo(ul);
            $('<a href="#"/>').bind("mouseover", function() {
                $(this).parent().attr("class", "on");
            }).bind("mouseout", function() {
                $(this).parent().attr("class", "");
            }).bind("click", function() {
                _dynFilt.hide($(this).parent().parent().parent());
                _dynFilt.fType(typ, typName);
                return false;
            }).append("隐藏此类信息").appendTo(li2);
        }
        return false;
    },
    hide: function(obj) {
        $(obj).slideUp("fast", function() {
            _dynFilt.fClick = false;
            $(this).parent().find("a.icon-filter-simple-on").attr("class", "icon-filter-simple").blur();
        });
    },
    delDyn: function(obj, dynId, pSelStr, dynMd, dynAction) {
        sDialog.loading("动态删除中，请稍候...");
        var ajax = {
            url: dynAction + dynId, data: { dmd: dynMd }, type: 'GET', dataType: 'text', cache: false,
            success: function(html) {
                sDialog.hideLoading("动态删除中，请稍候...");
                //if (html == 'ok') {
                    var pNode = $(obj).parents('#' + pSelStr + dynId);
                    pNode.slideUp("fast", function() {
                        var _liInput = pNode.find(_cmtInput.liCmtInput());
                        if (_liInput.attr('id')) {
                            _liInput.appendTo(document.body);
                        }
                        pNode.remove();
                    });
//                } else {
//                    
//                    sDialog.error(html, "错误", 250, 50);
//                }
            }
        }
        $.ajax(ajax);
    },
    addCount: function(_dynName, added) {
        if (this.dynCount[_dynName]) {
            this.dynCount[_dynName] = this.dynCount[_dynName] + added;
        } else {
            this.dynCount[_dynName] = added;
        }
    },
    canDispMore: function() {//是否需要显示更多动态按钮
        var _page = this.page[this.dynName];
        if (_page > this.maxPage) {
            return false;
        }

        var _count = 0;
        if (this.dynCount[this.dynName]) {
            _count = this.dynCount[this.dynName];
        }

        if (_count < (_page - 1) * this.pageSize) {
            return false;
        }
        return true;
    },
    page: new Array(),
    pageSize: 35,
    maxPage: 5, //最大允许页数
    dynType: new Array(), //dynamic type,0=All,1=blog
    dynName: "",
    cmtLoaded: new Array(), //评论载入情况
    dynCount: new Array(), //记录条数
    userName: "",
    load: function(loadCallback) {
        var _ulFilt = $('#ul' + _dynFilt.dynName);
        _ulFilt.parent().children("ul").css("display", "none");
        _ulFilt.css("display", "");
        if (!_dynFilt.cmtLoaded[_dynFilt.dynName]) {
            var _dynTyp = _dynFilt.dynType[_dynFilt.dynName];
            if (_dynTyp == null || _dynTyp == "undefined") { _dynTyp = "0"; }
            var _curPage = _dynFilt.page[_dynFilt.dynName];
            if (_curPage == null || _curPage == "undefined") { _curPage = 1; }
            var ajax = {
                url: '/homeindex/dynamic/' + this.dynName, data: { dyn: _dynTyp, pg: _curPage, ps: this.pageSize, name: this.userName }, type: 'GET', dataType: 'html', cache: false,
                success: function(html, statusText) {
                    sDialog.hideLoading();                    
                    if (_curPage == 1) {
                        $('#ul' + _dynFilt.dynName).html(html);
                    } else {
                        $('#ul' + _dynFilt.dynName).append(html);
                    }                    
                    _dynFilt.page[_dynFilt.dynName] = _curPage + 1; //当前页数
                    _cmtInput.currentTimes = 1; //init times
                    _cmtInput.loadCount(_dynFilt.dynName);
                    _dynFilt.cmtLoaded[_dynFilt.dynName] = true; //mark dyn loaded
                    if (loadCallback) { loadCallback(); }
                }
            };
            if(_dynFilt.dynName!="zone")
            {
               $.ajax(ajax);
            }
            else
            {
               var ajax2 = {
                url: '/zone/UserZoneDynamic/' + this.dynName, data: { pg: _curPage }, type: 'GET', dataType: 'html', cache: false,
                success: function(html, statusText) {
                    sDialog.hideLoading();                    
                    if (_curPage == 1) {
                        $('#ul' + _dynFilt.dynName).html(html);
                    } else {
                        $('#ul' + _dynFilt.dynName).append(html);
                    }                    
                    _dynFilt.page[_dynFilt.dynName] = _curPage + 1; //当前页数
                    if (loadCallback) { loadCallback(); }
                }
               };
               
              $.ajax(ajax2);
            }
        } else {
            if (loadCallback) { loadCallback(); }
        }
    },
    reload: function(loadCallback) {
        _dynFilt.cmtLoaded[_dynFilt.dynName] = false;
        _dynFilt.load(loadCallback);
    },
    loadAdded: function() {
        var _maxDid = _dynFilt.maxDynId();
        var options = { num: 5, dyn: _maxDid, name: _dynFilt.dynName };
        var ajax = {
            url: '/homeindex/DynamicLastest/' + this.dynName, data: options, type: 'GET', dataType: 'html', cache: false,
            success: function(html, statusText) {
                if (html.trim() != "" && html.trim() != "ok") {
                    var div = $("<div/>").append(html);
                    var m = this.url.match(/\/(\w+)\?/g); //get dyn type
                    var ulDyn = $('#ul' + RegExp.$1);
                    div.children('li').each(function() {
                        $(this).css("display", "none").prependTo(ulDyn).slideDown('normal');
                    });
                }
                setTimeout("_dynFilt.loadAdded()", 45000);
            }
        };
        $.ajax(ajax);
    },
    maxDynId: function() {
        var fstLi = $('#ul' + _dynFilt.dynName).children("li:first-child");
        if (fstLi.attr("id")) {
            return fstLi.attr("id").replace("dyn", ""); //get max dynid
        }
        return 0;
    }
};

//引导
var UGuide = {
    guideId: "divGuide",
    guideCssLeft: "introduction i-",
    current: -1,
    guideList: { data:
        [
        //{ text: "都是有文化的银，每天少不了要看看本地信息滴", depend: "news", show: "right" },
        {text: "做任务赚积分，虽说咱不差钱，存积分换大礼还是必须滴", depend: "task", show: "right" },
        { text: "记录生活点滴，不管是杯具还是洗具，你想啥就说啥！", depend: "divRecord", show: "top" },
        { text: "好友的动态要关注  美女帅哥的动态也不能落下", depend: "divMovement", show: "bottom" },
        { text: "记得多传点照片，那些风花雪月总是让人回味", depend: "liAppAlbum", show: "left" },
        { text: "哥们儿，最近在哪儿寂寞呢？发来大家分享下", depend: "liAppShare", show: "left" },
        { text: "添加各类应用，你想怎么玩就怎么玩", depend: "divAppAdd", show: "left" },
        { text: "最后，别忘记认识同楼、同小区和身边的TA！", depend: "relation", show: "right" }
        ]
    },
    getBorderDiv: function(dependId) {
        var obj = $('#' + dependId);
        var xy = obj.offset();
        var _divb = $('#divGuideMask');
        if (!_divb.attr("id")) {
            _divb = $("<div></div>").attr("id", "divGuideMask").css({ border: "2px solid #ff0000", position: "absolute", background: "#000", opacity: 0, zIndex: sDialog.zIndex }).appendTo(document.body);
        }
        _divb.css({ left: xy.left - 1, top: xy.top - 1, width: obj.outerWidth(), height: obj.outerHeight() });
        return _divb;
    },
    setMaskDiv: function(options) {
        var _md1, _md2, _md3, _md4;
        _md1 = $('#gMaskDiv1');
        if (!_md1.attr("id")) {
            _md1 = $('<div class="gMaskClass"></div>').attr("id", "gMaskDiv1").appendTo(document.body);
        }
        _md2 = $('#gMaskDiv2');
        if (!_md2.attr("id")) {
            _md2 = $('<div class="gMaskClass"></div>').attr("id", "gMaskDiv2").appendTo(document.body);
        }
        _md3 = $('#gMaskDiv3');
        if (!_md3.attr("id")) {
            _md3 = $('<div class="gMaskClass"></div>').attr("id", "gMaskDiv3").appendTo(document.body);
        }
        _md4 = $('#gMaskDiv4');
        if (!_md4.attr("id")) {
            _md4 = $('<div class="gMaskClass"></div>').attr("id", "gMaskDiv4").appendTo(document.body);
        }
        //mask
        _md1.css({
            opacity: 0.6,
            left: 0,
            top: 0,
            width: $(document).width(),
            height: options.top
        });
        _md2.css({
            opacity: 0.6,
            top: options.bottom,
            width: $(document).width(),
            height: $(document).height() - options.bottom
        });
        _md3.css({
            opacity: 0.6,
            top: options.top,
            width: options.left,
            height: options.height
        });
        _md4.css({
            opacity: 0.6,
            top: options.top,
            left: options.right,
            width: $(document).width() - options.right,
            height: options.height
        });
    },
    show: function(_index) {
        var json = this.guideList.data[_index];
        if (json.depend == "") {
            this.next();
            return;
        }
        if (!$('#' + json.depend).attr("id")) {
            this.next();
            return;
        }
        var _divb = this.getBorderDiv(json.depend);
        var _divg = $('#' + this.guideId);
        var _divgp = _divg.find('#pContent');
        _divgp.html(json.text);
        _divg.attr("class", this.guideCssLeft + json.show);

        var left = parseInt(_divb.css("left"));
        var top = parseInt(_divb.css("top"));
        var right = left + _divb.outerWidth();
        var bottom = top + _divb.outerHeight();

        if (json.show == "right") {
            _divg.css({ left: left - 15 - _divg.outerWidth(), top: top });
        } else if (json.show == "left") {
            _divg.css({ left: right + 15, top: top });
        }
        else if (json.show == "top") {
            _divg.css({ left: left, top: bottom + 15 });
        } else if (json.show == "bottom") {
            _divg.css({ left: left, top: top - 15 - _divg.outerHeight() });
        }
        //mask        
        this.setMaskDiv({ left: left, top: top, right: right, bottom: bottom, width: _divb.outerWidth(), height: _divb.outerHeight() });
        _divg.find("em").html((_index + 1).toString() + "/" + this.guideList.data.length);
        _divg.css({ "zIndex": sDialog.getZIndex(), display: "" });
        try {        
            setTimeout(function() { _divg.find("#txtFocus").focus(); }, 100);
        } catch (e) { }
    },
    next: function() {
        this.current++;
        if (this.current >= this.guideList.data.length) {
            this.current = this.guideList.data.length - 1;
            this.close();
            sDialog.info("介绍完了，就这么简单，开始你的搜道之旅吧！", "完成提示", 300, 50, 2500);
            return;
        }
        this.show(this.current);
    },
    prev: function() {
        this.current--;
        if (this.current < 0) {
            this.current = 0;
        }
        this.show(this.current);
    },
    close: function() {
        $('.gMaskClass').fadeOut("normal", function() { $(this).remove(); });
        var _divb = $('#divGuideMask');
        _divb.fadeOut();
        var _divGuide = $('#' + this.guideId);
        _divGuide.fadeOut();
        return false;
    }
};