﻿/*
* jQuery alertpopads plugin
*/

(function($) {
    $.fn.addFavorite = function(settings) {
        //设定参数
        settings = jQuery.extend({
            _sourceRID: '',  //收藏的资源RID
            _sourceType: 0  //收藏的资源类型
        }, settings);

        var jQueryMatchedObj = this; //使用组件的对象
        var waitSecond;

        //初始化操作
        function _initialize() {
            _clearOld();
            _start();
            return false; // 防止打开链接
        }

        function _isFavorite() {
            $.ajax({
                url: '/WService/DataSubmit.asmx/IsFavoriteResource',
                type: 'POST',
                contentType: "application/json",
                data: "{rid:'" + settings._sourceRID + "'}",
                dataType: 'json',
                success: function(result) {
                    if (result.d.length == 0) {
                        _initialize();
                        return false;
                    }

                    if (result.d == "用户未登录！") {
                        window.location.href = "/logon.aspx?returnurl=" + window.location.href;
                    }
                    else {
                        alert(result.d);
                        return false;
                    }
                },
                error: function(data) {
                    return false;
                }
            });
            return false;
        }

        function _clearOld() {
            if ($('#popSubmitWindow').length > 0)
                $('#popSubmitWindow').remove();
        }

        function _start() {
            _buildArea();
            _setStylePoint();
            _loadTags();
            _boundEvent();
            //_showAlertPop();
            //_windowEvent();
        }

        function _buildArea() {
            var popHtml = "";
            popHtml += '<div id="popSubmitWindow" style="width:400px;border:1px solid #708E2F;background-color:#ffffff; ">';
            popHtml += '<h1 style="color:#fff;padding:3px;font-size:12px;font-weight:bold;margin:0;background:#708E2F url(/images/bg_footer.gif) repeat-x top left;">添加收藏<a href="javascript:void(0);" id="favAreaClose" style="display:inline-block;width:8px;height:8px;background:url(/images/my/tag_del.gif) no-repeat left -8px;position:absolute;right:10px;padding:0px;top:7px;overflow:hidden;"></a></h1>';
            popHtml += '<table id="inputfavinfo" width="100%"><tr>';
            popHtml += '<td style="padding:5px;font-size:12px;width:60px;color:#666;vertical-align:top;padding-top:8px;"><label style="display:block;text-align:right;">标签:</label></td>';
            popHtml += '<td style="padding:5px;font-size:12px;">';
            popHtml += '<input style="width:250px;border:1px solid #999;padding:2px;height:19px;line-height:19px;" type="text" value="" id="membertagslist" />';
            popHtml += '<a href="###"></a>';
            popHtml += '<span style="color:#999;display:block;margin:4px 0 0 0;">多个标签请用,号分开。不设标签请留空</span>';
            popHtml += '</td></tr><tr>';
            popHtml += '<td style="padding:5px;font-size:12px;color:#666;vertical-align:top;"><label style="display:block;text-align:right;">常用标签:</label></td>';
            popHtml += '<td style="padding:5px;font-size:12px;" id="memberTagsArea"><img src="/Images/loading.gif" tag="loading..." />载入标签中</td>';
            popHtml += '</tr><tr>';
            popHtml += '<td style="padding:5px;font-size:12px;color:#666;vertical-align:top;padding-top:8px;"><label style="display:block;text-align:right;">备注:</label></td>';
            popHtml += '<td style="padding:5px;font-size:12px;"><textarea style="border:1px solid #999;padding:2px;width:250px;" rows="2" name="" id="inputfavmemo"></textarea></td>';
            popHtml += '</tr><tr>';
            popHtml += '<td colspan="2" style="padding:5px;font-size:12px;text-align:center;"><input style="cursor:pointer;margin:0 10px; background:url(/images/my/btn_bg.png) repeat-x top left; border:1px solid #B3B3B3; padding:3px; width:60px;" type="button" value="确认" id="btnSaveFav" /><input id="btnFavAreaClose" style="cursor:pointer;margin:0 10px;background:url(/images/my/btn_bg.png) repeat-x top left; border:1px solid #B3B3B3; padding:3px; width:40px;" type="button" value="取消" /></td>';
            popHtml += '</tr></table></div>';

            $('body').append(popHtml);
        }

        //设置初始化位置
        function _setStylePoint() {
            $showarea = $('#popSubmitWindow');
            var awidth = $showarea.width();
            var aheight = $showarea.height();

            var de = document.documentElement;
            var w = window.innerWidth || self.innerWidth || (de && de.clientWidth) || document.body.clientWidth;
            var h = window.innerHeight || self.innerHeight || (de && de.clientHeight) || document.body.clientHeight;
            var scollX = de.scrollLeft;
            var scollY = de.scrollTop;

            if ((w - awidth) > 0) areaX = (w - awidth) / 2;
            if ((h - aheight) > 0) areaY = (h - aheight) / 2;

            $showarea.css({ position: 'absolute', left: areaX + scollX + "px", top: areaY + scollY + "px" });
        }

        //载入标签列表
        function _loadTags() {
            $areaobj = $('#memberTagsArea');
            $.ajax({
                url: '/WService/DataSubmit.asmx/GetMemberHotTags',
                type: 'POST',
                contentType: "application/json",
                data: "{tagCount:10}",
                dataType: 'json',
                success: function(result) {
                    $areaobj.empty();
                    if (result.d.length > 0) {
                        var arrarytags = result.d.split(',');
                        var strval = "";
                        $.each(arrarytags, function(i, n) {
                            strval += '<a style="margin:0 8px 8px 0;display:inline-block; color:#FF9900" href="javascript:void(0);" class="memberhottag">' + n + '</a>';
                        });
                        $areaobj.append(strval);
                    }
                    else {
                        $areaobj.append("没有常用标签");
                    }
                    _boundTagsEvent();
                },
                error: function(data) {
                    $areaobj.empty();
                    $areaobj.append("没有常用标签");
                }
            });
        }

        //标签事件绑定
        function _boundTagsEvent() {
            $('.memberhottag').click(function(e) {
                var selval = $(e.target).text();
                var inputval = $('#membertagslist').val();
                var arrayval = inputval.split(',');
                if (jQuery.inArray(selval, arrayval) != -1) return;

                if (inputval.length > 0) {
                    $('#membertagslist').val(inputval + ',' + selval);
                }
                else {
                    $('#membertagslist').val(selval);
                }
            });
        }

        //保存收藏
        function _savefav() {
            var taglist = $('#membertagslist').val();
            var memo = $('#inputfavmemo').val();

            taglist = _jsonReplaceKeyWord(taglist);
            memo = _jsonReplaceKeyWord(memo);
            var senddata = "{rid:'" + settings._sourceRID + "', infoType:'" + settings._sourceType + "', tagList:'" + taglist + "', memo:'" + memo + "'}";
            var msg = '<img src="/Images/loading.gif" tag="loading..." />正在保存收藏...';
            _errorMessage(msg, 2);
            $.ajax({
                url: '/WService/DataSubmit.asmx/AddMemberFavorite',
                type: 'POST',
                contentType: "application/json",
                data: senddata,
                dataType: 'json',
                success: function(result) {
                    if (result.d.length != 0) {
                        _errorMessage(result.d, 1);
                        return;
                    }
                    var msg = "收藏添加成功！";
                    _errorMessage(msg, 0);
                },
                error: function(data) {
                    var msg = "收藏添加失败，请返回重试！";
                    _errorMessage(msg, 1);
                }
            });
        }

        function _errorMessage(msg, type) {
            $showarea = $('#popSubmitWindow');
            $('#inputfavinfo').remove();
            var errorHtml = '';

            errorHtml += '<table id="inputfavinfo" width="100%"><tr><td style="padding:5px;font-size:12px;text-align:center;" height="80px">';
            errorHtml += '<span style="color:#FF6600; font-size:14px;letter-spacing:2px;"><strong>' + msg + '</strong></span>';
            errorHtml += '</td></tr><tr><td style="padding-bottom:15px;font-size:12px;text-align:center;"> ';
            if (type == 1) {
                errorHtml += '<input style="cursor:pointer; margin:0 10px; background:url(/images/my/btn_bg.png) repeat-x top left; border:1px solid #B3B3B3; padding:3px" type="button" value="返回" id="btnResetAddFav" />';
                errorHtml += '<input style="cursor:pointer;margin:0 10px; background:url(/images/my/btn_bg.png) repeat-x top left; border:1px solid #B3B3B3; padding:3px" type="button" value="取消" onclick="$(\'#popSubmitWindow\').remove();" />';
            }
            else if (type == 0) {
                errorHtml += '<span id="waitSecondText" style="margin:0 3px;">10</span>秒钟后自动关闭...<br /><br />';
                errorHtml += '<input style="cursor:pointer;margin:0 10px; background:url(/images/my/btn_bg.png) repeat-x top left; border:1px solid #B3B3B3; padding:3px" type="button" value="查看我的收藏" onclick="window.location.href=\'/my/myfavorites.aspx?tp=' + settings._sourceType + '\';"></a>'
                errorHtml += '<input style="cursor:pointer;margin:0 10px; background:url(/images/my/btn_bg.png) repeat-x top left; border:1px solid #B3B3B3; padding:3px" type="button" value="关闭" onclick="$(\'#popSubmitWindow\').remove();" ></a>'
                waitSecond = 10;
                _closeCutDown();
            }
            errorHtml += '</td></tr></table>';
            $showarea.append(errorHtml);
            if (type == 1) $('#btnResetAddFav').click(_initialize);
        }

        function _closeCutDown() {
            if (waitSecond > 0) {
                $('#waitSecondText').text(waitSecond);
                waitSecond--;
                window.setTimeout(_closeCutDown, 1000);
                return;
            }
            _closePop();
        }

        //事件绑定
        function _boundEvent() {
            $('#favAreaClose').click(_closePop);
            $('#btnFavAreaClose').click(_closePop);
            $('#btnSaveFav').click(_savefav);
        }

        //关闭提示
        function _closePop() {
            $('#popSubmitWindow').remove();
        }

        function _jsonReplaceKeyWord(textVal) {
            textVal = textVal.replace(/\\/g, "\\\\");
            textVal = textVal.replace(/\'/g, "\\'");
            textVal = textVal.replace(/\"/g, "\\\"");
            return textVal;
        }

        settings._sourceRID = _sourceRID;
        settings._sourceType = _favoriteType;
        _isFavorite();
    };
})(jQuery);