
//var whir = "";

if (!window.whir) window.whir = {};
whir.ajaxData=function(url,param,successFun,failFun)
{
    $.ajax({
        url:url,
        type: "POST",
        contentType: 'application/json',
        dataType: 'json',
        data: JSON.stringify(param),
        success: function (data) {
            if(data.code==200)
            {
                if(successFun!=null)
                {
                    successFun(data.info);
                }
            }
            else
            {
                if(failFun!=null)
                {
                    failFun(data);
                }
            }

        },
        error:function()
        {alert('请求异常！请稍候再试');}

    });
}

whir.buildSearchData = function (url, param, templateId, targetDom,callback) {
    pageData(url, param, function(res){
        render(templateId, res.info.items, targetDom,callback);
        totalCount = res.info.totalCount
        $('#paginator').jqPaginator({
            first: '<li class="first"><a href="javascript:void(0);">首页</a></li>',
            prev: '<li class="prev"><a href="javascript:void(0);" >上一页</a></li>',
            next: '<li class="next"><a href="javascript:void(0);">下一页</a></li>',
            last: '<li class="last"><a href="javascript:void(0);">末页</a></li> <li class="last"><a href="javascript:;">  共 {{totalCounts}} 条，{{totalPages}}页</a></li>',
            page: '<li class="page"><a href="javascript:void(0);">{{page}}</a></li>',
            totalCounts: totalCount,
            currentPage: param.currentPage,
            pageSize: param.pageSize,
            onPageChange: function (num, type) {
                if (type === 'init') return
                param.currentPage = num;
                // param.pageSize = pageSize
                pageData(url, param, function(res){
                    $('#paginator').jqPaginator('option', {
                        totalCounts: res.info.totalCount,
                        currentPage: num,
                        pageSize: pageSize,
                    });
                    data=res.info.items;
                    data.pageIndex=num;
                    data.pageSize=pageSize;
                    //debugger;
                    //console.log(res.info.items);
                    render(templateId, data, targetDom,callback)
                })
            }
        });
    })
}

whir.buildPageData = function (url, param, templateId, targetDom,callback) {
    pageData(url, param, function(res){
        render(templateId, res.info.list, targetDom,callback);
        totalCount = res.info.totalCount
        $('#paginator').jqPaginator({
            first: '<li class="first"><a href="javascript:void(0);">首页</a></li>',
            prev: '<li class="prev"><a href="javascript:void(0);" >上一页</a></li>',
            next: '<li class="next"><a href="javascript:void(0);">下一页</a></li>',
            last: '<li class="last"><a href="javascript:void(0);">末页</a></li> <li class="last"><a href="javascript:;">  共 {{totalCounts}} 条，{{totalPages}}页</a></li>',
            page: '<li class="page"><a href="javascript:void(0);">{{page}}</a></li>',
            totalCounts: totalCount,
            currentPage: param.currentPage,
            pageSize: param.pageSize,
            onPageChange: function (num, type) {
                if (type === 'init') return
                param.currentPage = num;
                // param.pageSize = pageSize
                pageData(url, param, function(res){
                    $('#paginator').jqPaginator('option', {
                        totalCounts: res.info.totalCount,
                        currentPage: num,
                        pageSize: pageSize,
                    });
                    data=res.info.list;
                    data.pageIndex=num;
                    data.pageSize=pageSize;
                    //debugger;
                    //console.log(res.info.items);
                    render(templateId, data, targetDom,callback)
                })
            }
        });
    })
}

function render(templateId, data, targetDom, fn) {
    //data.pageIndex=11;
    //console.log(data);
    if (data != null && data != undefined) {

        var html = template(templateId, data);
        targetDom.innerHTML = html;
    }
    if (!fn) return
    fn()
}

function pageData(url, param, callback) {
    if(param.searchParam==undefined)
    {param.searchParam={};}
    $.ajax({
        url: url + '?siteId='+param.siteid+'&columnId='+param.columnId+'&subId='+param.subId+'&pageNumber=' + (param.currentPage - 1) + '&pageSize=' + param.pageSize,
        type: "POST",
        contentType: 'application/json',
        dataType: 'json',
        data: JSON.stringify(param.searchParam),
        success: function (data) {
            if (data.info.totalCount == 0) {
                data.info.totalCount = 1
            }
            callback(data)
        }
    })
}


template.helper('dateFormat', function (date, format) {

    if (typeof date === "string") {
        var mts = date.match(/(\/Date(\d+)\/)/);
        if (mts && mts.length >= 3) {
            date = parseInt(mts[2]);
        }
    }
    date = new Date(date);
    if (!date || date.toUTCString() == "Invalid Date") {
        return "";
    }

    var map = {
        "M": date.getMonth() + 1, //月份
        "d": date.getDate(), //日
        "h": date.getHours(), //小时
        "m": date.getMinutes(), //分
        "s": date.getSeconds(), //秒
        "q": Math.floor((date.getMonth() + 3) / 3), //季度
        "S": date.getMilliseconds() //毫秒
    };


    format = format.replace(/([yMdhmsqS])+/g, function(all, t){
        var v = map[t];
        if(v !== undefined){
            if(all.length > 1){
                v = '0' + v;
                v = v.substr(v.length-2);
            }
            return v;
        }
        else if(t === 'y'){
            return (date.getFullYear() + '').substr(4 - all.length);
        }
        return all;
    });
    return format;
});

template.helper("json",function(str){
    return JSON.parse(str);
});

