/**
 * Copyright (c) greensyn.org All rights reserved.
 * 
 * v 0.1.0 - 2008/04/15 by Fuchun
 * 
 * Requires jQuery 1.2+
 */

if( typeof Green === 'undefined' )
    var Green = {};
if( typeof Green.News === 'undefined' )
    Green.News = {};

(function($) {
    
    Green.News = {
        
        /** 发布新闻 */
        PublishNews: function(handle) {
            $.ajaxLoader().load("正在提交数据，请稍后……");
            $('#btn_add_news').attr('disabled', 'disabled');
            $('#btn_add_draft').attr('disabled', 'disabled');
            var options = $.extend({}, {
                form: '#formAddNews',
                state: 1
            }, handle || {});
            $(options.form)[0].newsState.value = options.state;
            var editor = FCKeditorAPI.GetInstance("newsContent");
            $(options.form)[0].newsContent.value = editor.GetXHTML(true);
            
            var queryString = $(options.form).formSerialize();
            $.ajax({type:'POST', url:PATH.common+'/newsaction.php',
            data:queryString,
            success:function(responseXML) {
                var rs = FUI.fn.data(responseXML);
                if(rs.state == STATE.success) {
                    $.ajaxLoader().close(function() {
                        location.href = "news_list.php?state=" + options.state;
                    });
                } else {
                    $.ajaxLoader().failure(rs.message, function() {
                        $('#btn_add_news').removeAttr('disabled');
                        $('#btn_add_draft').removeAttr('disabled');
                    });
                }
            }, dataType:'xml'});
        },
        
        /** 载入新闻列表。*/
        LoadNewsList: function(handle, flag) {
            if(typeof flag == 'undefined')
                $.ajaxLoader().load("正在载入列表……");
            var options = $.extend({}, {
                method: 'newsList',
                updateArea: '_news_list',
                state: 1,
                page: 1
            }, handle || {});
            if(typeof flag != 'undefined')
                $('#'+handle.updateArea).html('<div class="ta_c"><img src="'+PATH.image+'/ajax_loader.gif"/></div>');
            $.ajax({type:'POST', url:PATH.common+'/newsaction.php', 
            data:'method='+options.method+'&updateArea='+options.updateArea+'&state='+options.state+'&p='+options.page,
            success:function(responseText) {
                $('#'+options.updateArea).html(responseText);
                if(typeof flag == 'undefined')
                    $.ajaxLoader().close();
            }, dataType:'html'});
        },
        
        ChangeNewsState: function(handle, prompt) {
            handle = $.extend({
                method: '',
                newsId: ''
            }, handle || {});
            prompt = $.extend({text:'您确认要删除选定的新闻信息吗？'}, prompt || {});
            if($.trim(handle.newsId) == '') {
                $.ajaxLoader().failure("请选择您要删除的新闻！");
                return;
            }
            $.confirm(prompt,
            function() {
                $.ajaxLoader().load("正在更新数据……");
                $.ajax({type:'POST',url:PATH.common+'/newsaction.php',
                data:'method='+handle.method+'&newsId='+handle.newsId,
                success:function(responseXML) {
                    var rs = FUI.fn.data(responseXML);
                    if(rs.state == STATE.success) {
                        $.ajaxLoader().success("操作成功！");
                        var currPage = FUI.isNullOrEmpty($('#p').val()) ? 1 : $('#p').val();
                        var state = FUI.isNullOrEmpty($('#state').val()) ? 1 : $('#state').val();
                        Green.News.LoadNewsList({state:state, page:currPage});
                    } else {
                        $.ajaxLoader().failure(rs.message);
                    }
                }, dataType:'xml'});
            });
        },
        
        /** 重新发布新闻 */
        RePublishNews: function(newsId) {
            Green.News.ChangeNewsState({method:'resumeNews', newsId:newsId}, {text:'发布该新闻吗？'});
        },
        
        /** 逻辑删除新闻 */
        LogicDeleteNews: function(newsId) {
            Green.News.ChangeNewsState({method:'deleteNews', newsId:newsId});
        },
        
        /** 永久物理删除新闻 */
        LastingDeleteNews: function(newsId) {
            Green.News.ChangeNewsState({
                method: 'lastingDeleteNews',
                newsId: newsId
            }, {
                text:'您确认要永久删除选定的新闻信息吗？',
                content:'该过程为不过逆，将直接从数据库物理删除记录！'
            });
        }
    };
    
})(jQuery);