﻿var requestUrl = '/Inc/InfoHandler.ashx';
var aix2RequestUrl = '/Inc/Aix2Handler.ashx';
var userReqUrl = '/Inc/UserHandler.ashx';

$(document).ready(function () {
   

   

});



/*================用户处理====================*/

//检阅读查权限
function CheckReadRole() {
    if (typeof (__allowAnonymous) != 'undefined' && __allowAnonymous != true) {
        $.getJSON(requestUrl, { reqType: 'InfoAuthority', categoryId: __cateid }, function (data) {
            if (!data['Flag']) {
                var msg = $('<div></div>')
                .css({ margin: '30px auto', width: '50%', border: 'solid 2px #666', backgroundColor: '#fff', textAlign: 'center', padding: '10px' })
                .html(data['Content']);
                $('body').empty();
                $('body').append(msg);
            }
        });
    }
}


//用户登录
function UserLogin(userName, pwd, logonTemplate, loginTarget,loginedTarget) {


    $.post(userReqUrl, {
        reqType: 'Login', userName: userName, userPwd: pwd
    }, function (data) {
        if (data["Flag"]) {
            //成功登录处理
            var template = logonTemplate;

            //页面控件处理
            $('#' + loginTarget).hide();
            var inputs = $('#' + loginTarget).find(':text,:password');
            inputs.val('');

            //修改登录状态
            LoginStatus(logonTemplate, loginedTarget, loginedTarget);
        }
        else
            alert(data["Content"]);
    }, 'json')
}
function Logout(loginTarget, loginedTarget) {
    $.post(userReqUrl, {
        reqType: 'Logout'
    }, function (data) {
        if (data["Flag"]) {
            //成功登录处理
            $('#' + loginTarget).show();
            $('#' + loginedTarget).hide();
        }
        else
            alert(data["Content"]);
    }, 'json')
}

//用户登录状态
function LoginStatus(logonTemplate, loginTarget, loginedTarget) {

    $.getJSON(userReqUrl, {
        reqType: 'GetUserInfo'
    }, function (data) {
        if (data["ID"] > 0) {
            //成功登录处理
            
            var template = logonTemplate;
            var fields = GetFields(template);
            $('#' + loginTarget).hide();
            $('#' + loginedTarget).html(HTMLDeCode(UserItemFileDebug(data, fields, template)))
                .show();
        }
    })
}

//增加浏览次数
function AddUserHits(target, userId) {
    $('#' + target).text(lan.System['loading']);
    $.post(userReqUrl, { id: userId, reqType: 'AddHits' }, function (data) {
        $('#' + target).html(data);
    })
}


//用户字段解析
function UserItemFileDebug(itemData, fields, itemHtml) {
    var str = String(itemHtml);
    for (var i = 0; i < fields.length; i++) {
        str = str.replace('[field:' + fields[i] + '/]', GetJsonValByName(itemData,  fields[i]));
    }
    return str;
}

/*================用户处理结束====================*/


//读取信息列表
function GetInfoList(typex, cateid, pro, max, targetWrap, tempStr) {
    var str = '';
    $.getJSON(requestUrl, { reqType: typex, categoryId: cateid, max: max, p: pro }, function (data) {
        //alert(requestUrl);
        var itemHtml = HTMLDeCode(tempStr);
        var fields = GetFields(itemHtml);

        var msg = [data.length];
        for (var i in data) {
            str += ItemFileDebug(data[i], fields, itemHtml);
        }

        str = str.replace(/&amp;/g, '&');
        $('#' + targetWrap).html(str);
    });
}

//提交信息
function InserInfo(entity) {
    if (entity.categoryId > 0) {
        $.post(requestUrl, {
            reqType: 'Insert', title: entity.title, status: entity.status, content: entity.content, categoryId: entity.categoryId, subtitle: entity.subtitle,
            author: entity.author, from: entity.from, keyword: entity.keyword, picurl: entity.picurl, link: entity.link, subcontent: entity.subcontent,
            attach0: entity.attach0, attach1: entity.attach1, attach2: entity.attach2, stars: entity.stars
        }, function (data) {
            alert(data["Content"]);
        }, 'json')
    }
    else
        alert('栏目ID不得为空！');
}

//提交信息(图文，Uploadify的辅助方法)
function InserUploadStart(obj, entity) {
    //alert('click');
    obj.uploadifySettings('postData', {
        reqType: 'Insert', uploadFlg: true,
        title: entity.title, status: entity.status, content: entity.content, categoryId: entity.categoryId, subtitle: entity.subtitle,
        author: entity.author, from: entity.from, keyword: entity.keyword, picurl: entity.picurl, link: entity.link, subcontent: entity.subcontent,
        attach0: entity.attach0, attach1: entity.attach1, attach2: entity.attach2, stars: entity.stars, content0: entity.content0
    });
}




function GetJsonValByName(data, propertyName) {
    var result = '';
    var id = Number(0);
    $.each(data, function (k, subContent) {
        if (propertyName == k) {
            result = subContent;
            
            return false;
        }
        else if (k == '_id')
            id = parseInt(subContent);

    });
    if (propertyName == '_pageurl') {
        if (global_stat && info_stat) {
            result = 'Content_' + id + '_0.html';
        }
        else
            result = 'Content-' + id + '-0.html';

    }
    return result;
}

//增加浏览次数
function AddInfoHits(target, articleId) {
    $('#' + target).text(lan.System['loading']);
    $.post(requestUrl, { id: articleId, reqType: 'AddHits' }, function(data) {
        $('#' + target).html(data);
    })
}

/*
=======================NewsComment======================
*/

//读取信息评论
function GetInfoComment(target, pageIndex) {
    var articleId = $('#hidden_id').val();
    $('#' + target).text(lan.System['loading']);
    $.getJSON(requestUrl, { reqType: 'CommentList', id: articleId, p: pageIndex }, function (data) {

        var msg = '';
        //最后一个对象为分页
        var counter = Number(1);
        var hasData = false;
        for (var i in data) {


            if (counter < data.length) {
                
                msg +=  AnalyzeCommentTemplate(viewCommentListItem, data[i]);
                if (!hasData) hasData = true;
                counter++;
            }
            else {
                if (hasData) {
                    var pagerString = data[i].Content;
                    msg += '<div class="clearfloat"></div>';
                    msg += '<div class="pager">';
                    msg += pagerString;
                    msg += '</div>';
                }
                else
                    msg = lan.Comment['emptyMsg'];
            }
        }
        msg += '';
        $('#' + target).html(msg);
    });
    CommentCheckUser();
}

//发表评论
function PostComment() {
    var name = $('#comment_username');
    var email = $('#comment_email');
    var content = $('#comment_content');
    var flg = Boolean(true);
    if (name.val() == '') {
        name.next().html(lan.Icons['warning'] + lan.Comment['validateNullName']);
        name.next('span').show();
        flg = false;
    }
    else {
        name.next('span').hide();
    }
    if (email.val() == '') {
        email.next().html(lan.Icons['warning'] + lan.Comment['validateNullEmail']);
        email.next('span').show();
        flg = false;
    }
    else {
        
        if (!IsValidMail(email.val())) {
            email.next().html(lan.Icons['warning'] + lan.Comment['validateFormatEmail']);
            email.next('span').show();
            flg = false;
        }
        else
            email.next('span').hide();
    }
    if (content.val() == '') {
        content.next().html(lan.Icons['warning'] + lan.Comment['validateNullContent']);
        content.next('span').show();
        flg = false;
    }
    else
        content.next('span').hide();


    if (flg) {
        $.post(requestUrl, { reqType: 'PostComment', id: $('#hidden_id').val(), email: HtmlEnCode(email.val()), name: HtmlEnCode(name.val()), content: HtmlEnCode(content.val()) }, function (data) {

            if (data["Flag"]) {
                alert(data["Content"]);
                GetInfoComment('comment_list', 0, 10);               
            }
            else
                alert(data["Content"]);
        }, 'json');
    }
}

function CommentCheckUser() {

    $.getJSON(userReqUrl, { reqType: 'GetUserName' }, function (data) {

        if (data['Flag']) {
            var content = String(data['Content']);
            $('#comment_username').val(content.split(',')[0])
                .attr('disabled', 'disabled');
            $('#comment_email').val(content.split(',')[1])
                .attr('disabled', 'disabled');
        }
        else {
            $('#comment_username').val('')
                .attr('disabled','');
            $('#comment_email').val('')
                .attr('disabled','');
        }
        $('#comment_content').val('');
    });
}

//返回行的最终代码
function ItemFileDebug(itemData, fields, itemHtml) {
    var str = String(itemHtml);
    for (var i = 0; i < fields.length; i++) {
        str = str.replace('[field:' + fields[i] + '/]', GetJsonValByName(itemData, '_' + fields[i].toLocaleLowerCase()));
    }
    return str;
}

//获取行模板的原始字段数组
function GetFields(str) {
    var data = str;
    var flag = "gi";
    var tempReg = /[\[]field:([\w\.]+)([^]]+)?\/]/gi;
    var arrMactches = data.match(tempReg)

    var result = new Array();
    if (arrMactches != null) {
        for (var i = 0; i < arrMactches.length; i++) {
            var m = arrMactches[i];
            var f = m.replace('[field:', '');
            f = f.replace('/]', '');
            result[i] = f;
        }
    }

    return result;


}


//留言板
function GetMsg(target, pageIndex) {

    $('#' + target).text(lan.System['loading']);

    $.getJSON(aix2RequestUrl, { reqType: 'MsgList', p: pageIndex }, function (data) {
        //var msg = [data.length];
        //alert(data + ',' + data.length);
        var msg = '';

        //最后一个对象为分页
        var counter = Number(1);
        var hasData = false;

        for (var i in data) {

            if (counter < data.length) {
                msg += AnalyzeMsgTemplate(msgListTemplate, data[i], counter);
                if (!hasData) hasData = true;
                counter++;
            }
            else {
                if (hasData) {
                    var pagerString = data[i]._content;
                    msg += '<div class="clearfloat"></div>';
                    msg += '<div class="pager">';
                    msg += pagerString;
                    msg += '</div>';
                }
                else
                    msg = lan.Msg['emptyMsg'];
            }
        }
        msg += '';
        $('#' + target).html(msg);
    });
}



//发表评论
function PostMsg(relativeId) {
    var name = $('#msg_username');
    var email = $('#msg_email');
    var content = $('#msg_content');
    var title = $('#msg_title');
    var flg = Boolean(true);
    if (name.val() == '') {
        name.next('span').show();
        flg = false;
    }
    else {
        name.next('span').hide();
    }
    if (title.val() == '') {
        title.next('span').show();
        flg = false;
    }
    else {
        title.next('span').hide();
    }
    if (email.val() == '') {
        email.next('span').show();
        flg = false;
    }
    else {
        email.next('span').hide();
        if (!IsValidMail(email.val())) {
            $(email.nextAll('span')[1]).show();
            flg = false;
        }
        else
            $(email.nextAll('span')[1]).hide();
    }
    if (content.val() == '') {
        content.next('span').show();
        flg = false;
    }
    else
        content.next('span').hide();


    if (flg) {
        $.post(aix2RequestUrl, { reqType: 'PostMsg', relativeId: relativeId, email: email.val(), name: name.val(), title: title.val(), content: content.val() }, function(data) {

            if (data["Flag"]) {
                alert(data["Content"]);
                GetMsg('msg_list', 0);
                title.val('');
                name.val('');
                email.val('');
                content.val('');
            }
            else
                alert(data["Content"]);
        }, 'json');
    }
}


//属性
function entities() {
    this.Information = ({
        title:'',
        status:false, 
        content:'', 
        categoryId:-1, 
        subtitle:'', 
        author:'', 
        from:'', 
        keyword:'', 
        picurl:'', 
        link:'', 
        subcontent:'', 
        attach0:'', 
        attach1:'', 
        attach2:'', 
        stars:0
    });
}


//解析信息评论模板
function AnalyzeCommentTemplate(template, data, counter) {
    var content = viewCommentListItem.join('');
    content = content.replace('#counter#', 1);
    content = content.replace('#username#', data['UserName']);
    content = content.replace('#email#', data['Email']);
    content = content.replace('#inputdatetime#', ChangeDateFormat(data['InputDateTime']));
    content = content.replace('#content#', data['Content']);
    return content;
}

//解析留言板评论模板
function AnalyzeMsgTemplate(template, data,counter) {

    var content = msgListTemplate.join('');
    content = content.replace('#counter#', counter);
    content = content.replace('#username#', data._username);
    content = content.replace('#inputdatetime#', ChangeDateFormat(data._inputdatetime));
    content = content.replace('#title#', data._title);
    content = content.replace('#email#', data._email);
    content = content.replace('#content#', data._content);
    if (data._replycontent != '') {
        content = content.replace('#reply#', msgReplyTemplate.replace('#reply#', data._replyconten));
    }
    else
        content = content.replace('#reply#', '');
    return content;

   
}


function HTMLDeCode(str) {
    var s = "";
    if (str.length == 0) return "";
    s = str; //.replace(/&gt;/g, "&")
    s = s.replace(/&lt;/g, "<");
    s = s.replace(/&gt;/g, ">");
    s = s.replace(/&nbsp;/g, "    ");
    s = s.replace(/'/g, "\'");
    s = s.replace(/&quot;/g, "\"");
    s = s.replace(/<br>/g, "\n");
    return s;
}   
