﻿var NewsService = new Object();

function NewsService() { }

NewsService.URI = env.serviceURI;

NewsService.HTMLencode = function(str) {
    return $('#encodeDiv').text(str).html().toString();
}

NewsService.BeforeAdd = function() {
    $('#StatContent').html("正在提交...");
    $('#proggif').show();
}

NewsService.OnAddSucceed = function() {
    $('#StatContent').html("提交成功");
    $('#proggif').hide();
}

NewsService.OnAddFail = function() {
    $('#StatContent').html("提交失败,请检查数据格式");
    $('#proggif').hide();
}

NewsService.Add = function(obj) {
    NewsService.BeforeAdd();
    var xmlstr = "<news>";
    for (k in obj) {
        if (Object.hasOwnProperty.call(obj, k)) {
            var elem = "<" + k + ">" + this.HTMLencode(obj[k]) + "</" + k + ">";
            xmlstr += elem;
        }
    }
    xmlstr += "</news>";
    $.ajax({
        url: this.URI,
        type: "POST",
        dataType: "xml",
        contentType: "application/xml",
        data: xmlstr,
        success: function(data, stat) {
            NewsService.OnAddFail();
        },
        error: function(xhr, data, stat) {
            if (xhr.status == 201) {
                NewsService.OnAddSucceed();
            }
            else {
                NewsService.OnAddFail();
            }
        }
    });
}

NewsService.BeforeLoad = function() {
    $('#StatContent').html("正在读取...");
    $('#proggif').show();
}

NewsService.OnLoadSucceed = function(data, stat) {
    $('#ContentArea').html(data.content);
    $('#StatContent').html("读取完成");
    $('#proggif').hide();
}

NewsService.OnLoadFail = function(xhr, data, stat) {
    $('#StatContent').html("读取新闻失败，请稍候再试");
    $('#proggif').hide();
}


NewsService.Load = function(id) {
    NewsService.BeforeLoad();
    $.ajax({
        url:this.URI + "/" + id + "/?expandLevel=2",
        type: "GET",
        dataType: "json",
        success: NewsService.OnLoadSucceed,
        error: NewsService.OnLoadFail
    });
}

NewsService.BeforeLoadList = function() {
    $('#StatContent').html("正在读取列表...");
    $('#proggif').show();
}

NewsService.OnLoadListSucceed = function(data, stat) {
    var i;
    var str = "";
    for (i = 0; i < data.news.length; ++i) {
        var n = data.news[i];
        str += "标题:";
        str += n.title;
        str += "<br/>日期:";
        str += n.created;
        str += '<br/><a onclick="NewsService.Delete(' + n.id + ')">删除</a>';
        str += "<br/><br/><br/>";
    }
    $('#ContentArea').html(str);
    $('#StatContent').html("读取完成");
    $('#proggif').hide();
}

NewsService.OnLoadListFail = function(xhr, data, stat) {
    $('#StatContent').html("读取新闻列表失败，请稍候再试");
    $('#proggif').hide();
}


NewsService.LoadList = function(param) {
    var serviceURI;
    if (param == null) {
        serviceURI = this.URI;
    }
    else {
        serviceURI = this.URI + param;
    }
    NewsService.BeforeLoadList();
    $.ajax({
        url: serviceURI,
        type: "GET",
        dataType: "json",
        success: NewsService.OnLoadListSucceed,
        error: NewsService.OnLoadListFail
    });
}

NewsService.BeforeDelete = function() {
    $('#StatContent').html("正在删除...");
    $('#proggif').show();
}

NewsService.OnDeleteSucceed = function() {
    $('#StatContent').html("删除成功");
    $('#proggif').hide();
}

NewsService.OnDeleteFail = function() {
    $('#StatContent').html("删除失败，请检查参数或稍候再试");
    $('#proggif').hide();
}

NewsService.Delete = function(id) {
    NewsService.BeforeDelete();
    $.ajax({
        url: this.URI + "/" + id,
        type: "DELETE",
        success: function() {
            NewsService.OnDeleteFail();
        },
        error: function(xhr, data, stat) {
            if (xhr.status == 204) {
                NewsService.OnDeleteSucceed();
            }
            else {
                NewsService.OnDeleteFail();
            }
        }
    });
}