﻿// Ham thu vien lien quan moduleID lay ra va thiet lap cac thong so voi module Create by TuanN 12/2009
ModuleUtils = { // ModuleID_Search_List_XMl_fPage_pPage_Index_Category_Tablink_fDetail_ArticleId_Path_flag
    GetModuleID: function(collectionParam) {
        var arr = collectionParam.split('||');
        return arr[0];
    },
    //lay ra ham search
    GetFuncSearch: function(collectionParam) {
        var arr = collectionParam.split('||');
        return arr[1];
    },
    //lay ra ham list
    GetFuncList: function(collectionParam) {
        var arr = collectionParam.split('||');
        return arr[2];
    },
    //lay ra file xml lisst
    GetXmlList: function(collectionParam) {
        var arr = collectionParam.split('||');
        return arr[3];
    },
    //lay ra so luong bai tin trang dau
    GetNumberOfRecordFirstPage: function(collectionParam) {
        var arr = collectionParam.split('||');
        return arr[4];
    },
    //so luong bai tin moi trang
    GetNumberOfRecordPerPage: function(collectionParam) {
        var arr = collectionParam.split('||');
        return arr[5];
    },
    //lay ra ham phan trang
    GetFuncPaging: function(collectionParam) {
        var arr = collectionParam.split('||');
        return arr[6];
    },
    // lay ra chuyen muc
    GetCategory: function(collectionParam) {
        var arr = collectionParam.split('||');
        return arr[7];
    },
    //Lay ra tablink den bai tin chi tiet
    GetTabLink: function(collectionParam) {
        var arr = collectionParam.split('||');
        return arr[8];
    },
    // lay ra ham chi tiet
    GetFuncDetail: function(collectionParam) {
        var arr = collectionParam.split('||');
        return arr[9];
    },
    // lay ra articleid
    GetArticleID: function(collectionParam) {
        var arr = collectionParam.split('||');
        return arr[10];
    },
    SetArticleID: function(NewArticleId, ModuleID) {
        ModuleUtils.UpdateValue(NewArticleId, 10, ModuleID);
    },
    // lay ra file xml detail
    GetXmlDetail: function(collectionParam) {
        var arr = collectionParam.split('||');
        return arr[11];
    },
    SetXmlDetail: function(NewXml, ModuleID) {
        ModuleUtils.UpdateValue(NewXml, 11, ModuleID);
    },
    // Lay ra kieu sap xep
    GetOrder: function(collectionParam) {
        var arr = collectionParam.split('||');
        return arr[12];
    },
    // Sap xep tang dan hay giam dan
    GetOrderBy: function(collectionParam) {
        var arr = collectionParam.split('||');
        return arr[13];
    },
    // lay ra floorid
    GetFloorID: function(collectionParam) {
        var arr = collectionParam.split('||');
        return arr[14];
    },
    // lay ra co trang thai detail hay list 1 detail 0 list
    GetDetailModule: function(collectionParam) {
        var arr = collectionParam.split('||');
        return arr[15];
    },

    // Lay ra kieu hien thi la trang chua hay tin trang thuong
    GetDisplayType: function(collectionParam) {
        var arr = collectionParam.split('||');
        return arr[16];
    },
    // Lay ra so bai tin  co anh
    GetNumberOfPicture: function(collectionParam) {
        var arr = collectionParam.split('||');
        return arr[17];
    },
    // lay ra co trang thai detail hay list 1 detail 0 list
    GetFlag: function(collectionParam) {
        var arr = collectionParam.split('||');
        return arr[18];
    },
    // Thiet lap co
    SetFlag: function(NewFlag, ModuleID) {
        ModuleUtils.UpdateValue(NewFlag, 18, ModuleID);
    },
    //Thiet Lap gia tri cho Module Detail
    SetDetailValue: function(ArticleID, XmlDetail, ModuleID) {
    //alert(ArticleID + XmlDetail + ModuleID);
    var ObjectModuleName = '#ObjectModuleID' + ModuleID;
    var OldCollectionParam = $(ObjectModuleName).text();
        var arr = OldCollectionParam.split('||');
        var NewCollectionParam = arr[0];
        for (i = 1; i < 10; i++) {
            NewCollectionParam += "||" + arr[i];
        }
        //neu bang 10 va 11
        NewCollectionParam += "||" + ArticleID;
        NewCollectionParam += "||" + XmlDetail;
        for (i = 12; i < arr.length - 1; i++) {
            NewCollectionParam += "||" + arr[i];
        }
        NewCollectionParam += "||1";
        //alert("Old:" + OldCollectionParam + "New:" + NewCollectionParam);
        $(ObjectModuleName).html('');
        $(ObjectModuleName).html(NewCollectionParam);

    },
    //Cap nhat gia tri 
    UpdateValue: function(NewValue, Positision, ModuleID) {
        var ObjectModuleName = '#ObjectModuleID' + ModuleID;
        var OldCollectionParam = $(ObjectModuleName).text();
        var arr = OldCollectionParam.split('||');
        var NewCollectionParam = arr[0];
        for (i = 1; i < arr.length; i++) {
            if (i == parseInt(Positision)) {
                NewCollectionParam += "||" + NewValue;
            }
            else {
                NewCollectionParam += "||" + arr[i];
            }
        }
        $(ObjectModuleName).html('');
        $(ObjectModuleName).html(NewCollectionParam);
    }
}


var Pretab = AGBB.request("tabid");
var PreModuleid = '';
AGBB.App = $.extend({
    Domain: 'Files',
    layout: 'TSS',
    path: '/DesktopModules/AG.Article',
    skin: 'TSS',
    XmlDetail: '/ArticleFiles/Portal0/',
    version: '1.0',
    modules: {},
    currentPage: false,
    maxModuleId: 0,
    currentModule: null,
    configPath: '.xml',
    option: {},
    tabid: '67',
    //Khoi tao ajax chua dung
    init: function(ID, moduleID) {
        if (typeof (AGBB.allLinks) == 'undefined') {
            AGBB.allLinks = {};
            var ContentAGBB = '#ArticleList' + moduleID;
            //alert(ContentAGBB);
            var loader = jQuery('<div ><img src="' + '/Portals/0/Images/Icon/loading.gif" alt="loading..." /></div>')
				        .css({ position: "absolute", top: "1em", left: "1em" })
				        .appendTo(ContentAGBB)
				        .hide();
            jQuery().ajaxStart(function() {
                loader.show();
            }).ajaxStop(function() {
                loader.hide();
            }).ajaxError(function(a, b, e) {
                //throw e;
            });
        };
        //  AGBB.App.loadTemplate(Template, moduleID);
    },
    TemplatePath: '/App/Template/',
    //Load template
    loadTemplate: function(template, moduleID) {
        var ContentAGBB = "ContentAGBB" + moduleID;
        AGBB.loadData(ContentAGBB, AGBB.App.path + AGBB.App.TemplatePath + template + '.htm');
    },
    //Set tempate
    setTemplate: function(NewTempalte, moduleID) {
        var url = location.hash.replace('#', '');
        if (url.length > 0) {
            var i = url.indexOf(moduleID)
            if (i == -1) {
                var temp = location.hash.replace('#', '');
                location.hash = '#' + temp + ',' + NewTempalte + '_' + moduleID;
            }
            else {
                var newURL = StringUtils.ReplaceById(NewTempalte, moduleID, url);
                if (newURL.length > 0) {
                    //alert("new " + newURL);
                    location.hash = '#' + newURL;
                }
            }
        }
        else {
            location.hash = '#' + NewTempalte + '_' + moduleID;
        }
    },
    //Load bai tin chi tiet
    setTemplateDetail: function(ArticleId, Path, ModuleId) {
        var temp = location.hash.replace('#', '');
        PreModuleid = ModuleId; location.hash = '#' + 'AD,' + ModuleId + ',' + ArticleId + ',' + Path;
        //               // Luu thong tin ve duong dan file xml chi tiet
        //               ModuleUtils.SetXmlDetail(Path, ModuleId);
        //                //Thiet lap co sang trang thai 1 trang thai hien thi template chi tiet 
        //                ModuleUtils.SetFlag('1', ModuleId);
        //                ModuleUtils.SetArticleID(ArticleId, ModuleId);
        //  ModuleUtils.SetDetailValue(ArticleId, Path, ModuleId);

    },
    // Tu trang chu link den bai tin chi tiet
    goToDetail: function(uRL, articleID, DetailModule, XmlDetail) {
        var URL = "http://" + location.host + "\/" + uRL + "#AD," + DetailModule + "," + articleID + "," + XmlDetail;
        // alert(URL); // 

        //  ModuleUtils.SetDetailValue(articleID,XmlDetail, DetailModule);
        document.location.href = URL;
    },
    //Load du lieu vao file danh sach tin

    FillData: function(URL, Page, ModuleID) {
        var ObjectModuleName = '#ObjectModuleID' + ModuleID;
        var CollectionParam = $(ObjectModuleName).text();
        var FuncList = ModuleUtils.GetFuncList(CollectionParam);
        //Load ham list
        switch (FuncList) {
            case 'LoadData1': AGBB.ArticleList.LoadData1(URL, Page, ModuleID); break;
            case 'LoadDataNoPaging1': AGBB.ArticleList.LoadDataNoPaging1(URL, Page, ModuleID); break;
            case 'LoadArticleListHome': AGBB.ArticleList.LoadArticleListHome(URL, Page, ModuleID); break;
            case 'LoadArticleListNoSource': AGBB.ArticleList.LoadArticleListNoSource(URL, Page, ModuleID); break;
            case 'LoadHomeListTitle': AGBB.ArticleList.LoadHomeListTitle(URL, Page, ModuleID); break;

            default:
                break;
        }

    },
    LoadAllData: function(URL, Page, ModuleID) {
        var ObjectModuleName = '#ObjectModuleID' + ModuleID;
        var CollectionParam = $(ObjectModuleName).text();
        var FuncList = ModuleUtils.GetFuncList(CollectionParam);
        var FuncSearch = ModuleUtils.GetFuncSearch(CollectionParam);
        var FuncIndex = ModuleUtils.GetFuncPaging(CollectionParam);

        //load innite search
        switch (FuncSearch) {
            case 'SearchBySymbol': AGBB.InnitSearch.SearchBySymbol(ModuleID); break;
            case 'SearchByBeginDateEndDate': AGBB.InnitSearch.SearchByBeginDateEndDate(ModuleID); break;
            case 'SearchByFloor': AGBB.InnitSearch.SearchByFloor(ModuleID); break;
            case 'SearchBySource': AGBB.InnitSearch.SearchBySource(ModuleID); break;
            case 'SearchAdvanced': AGBB.InnitSearch.SearchAdvanced(ModuleID); break;
            case 'SearchByDayMonthYear': AGBB.InnitSearch.SearchByDayMonthYear(ModuleID); break;
            default: break;
        }
        switch (FuncIndex) {
            case 'LoadIndex7': AGBB.InnitSearch.LoadIndex7(ModuleID); break;
            case 'LoadIndex9': AGBB.InnitSearch.LoadIndex9(ModuleID); break;
            case 'LoadIndex9AndBottom': AGBB.InnitSearch.LoadIndex9AndBottom(ModuleID); break;
            default: break;
        }
        //Load ham list
        switch (FuncList) {
            case 'LoadData1': AGBB.ArticleList.LoadData1(URL, Page, ModuleID); break;
            case 'LoadDataNoPaging1': AGBB.ArticleList.LoadDataNoPaging1(URL, Page, ModuleID); break;
            case 'LoadArticleListHome': AGBB.ArticleList.LoadArticleListHome(URL, Page, ModuleID); break;
            case 'LoadArticleListNoSource': AGBB.ArticleList.LoadArticleListNoSource(URL, Page, ModuleID); break;
            case 'LoadHomeListTitle': AGBB.ArticleList.LoadHomeListTitle(URL, Page, ModuleID); break;

            default:
                break;
        }

    },
    //Load du lieu vao file danh sach tin
    FillToDetailData: function(ModuleID) {
        var ObjectModuleName = '#ObjectModuleID' + ModuleID;
        var CollectionParam = $(ObjectModuleName).text();
        var FuncDetail = ModuleUtils.GetFuncDetail(CollectionParam);
        var XMLDetail = ModuleUtils.GetXmlDetail(CollectionParam);
        var ArticleID = ModuleUtils.GetArticleID(CollectionParam);
        //alert(CollectionParam);
        switch (FuncDetail) {
            case 'LoadNextArticle': AGBB.ArticleDetail.LoadNextArticle(ArticleID, XMLDetail, ModuleID); break;
            case 'LoadNextAndAferArticle': AGBB.ArticleDetail.LoadNextAndAferArticle(ArticleID, XMLDetail, ModuleID); break;
            default:
                AGBB.ArticleDetail.LoadNextAndAferArticle(ArticleID, XMLDetail, ModuleID);
                break;
        }
    },

    // Load du lieu theo module
    loadModule: function(ModuleID) {
        var ObjectModuleName = '#ObjectModuleID' + ModuleID;
        var CollectionParam = $(ObjectModuleName).text();
        var Flag = ModuleUtils.GetFlag(CollectionParam);
        // alert(CollectionParam);
        //Neu co bang 1 load Module chi tiet
        if (Flag == '1') {
            //alert("1");
            AGBB.App.FillToDetailData(ModuleID);

        }
        else {
            //alert("2");
            //Load Modules list
            //Neu co search thi load search
            //Neu co list thi load list
            var Url = ModuleUtils.GetXmlList(CollectionParam);
            AGBB.App.FillData(Url, '1', ModuleID);
            //Neu co phan trang thi load phan trang
        }
    }


});



var prevUrlHistory = '';
setInterval('checkUrlHistory()', 1000);
function checkUrlHistory() {
    var temp = location.hash.replace('#', '');
    if (temp == '' && PreModuleid != '') {
        ModuleUtils.SetFlag('0', PreModuleid);
        AGBB.App.loadModule(PreModuleid);
        PreModuleid = '';
    }
    else
        if (prevUrlHistory != temp) {
        //  alert("tempaa: " + temp + "privious : " + prevUrlHistory);
        prevUrlHistory = temp;
        var arrArticle = new Array();
        arrArticle = temp.split(',');
        //co 2 kieu template type la AL: danh sach, AD: chi tiet 
        var templateType = arrArticle[0];
        var Moduleid = arrArticle[1];
        if (templateType == 'AL') {
            ModuleUtils.SetFlag('0', Moduleid);
         //alert("Template list:" + Moduleid);
        }
        else {
            ModuleUtils.SetDetailValue(arrArticle[2], arrArticle[3], Moduleid);
           
         //alert("Template Chi tiet:" + Moduleid); 

        }
        AGBB.App.loadModule(Moduleid);

    }
};



