﻿ModuleUtils = {
    GetModuleID: function (collectionParam) {
        var arr = collectionParam.split('||');
        return arr[0];
    },
    //lay ra ham search
    GetFuncSearch: function (collectionParam) {
        var arr = collectionParam.split('||');
        return arr[1];
    },
    SetFuncSearch: function (NewsFuncSearch, ModuleID) {
        ModuleUtils.UpdateValue(NewsFuncSearch, 1, ModuleID);
    },
    //lay ra ham list
    GetFuncList: function (collectionParam) {
        var arr = collectionParam.split('||');
        return arr[2];
    },
    SetXML: function (NewXML, ModuleID) {
        ModuleUtils.UpdateValue(NewXML, 3, ModuleID);
    },
    SetFuncList: function (NewsArticleList, ModuleID) {
        ModuleUtils.UpdateValue(NewsArticleList, 2, ModuleID);
    },
    //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];
    },
    GetPageForm: function (collectionParam) {
        var arr = collectionParam.split('||');
        return arr[(arr.length - 1)];
    },
    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 chu 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[19];
    },
    //Lấy màu hiển thị
    GetColor: function (collectionParam) {
        var arr = collectionParam.split('||');
        return arr[20];
    },
    //Lấy màu khi hover 
    GetHoverColor: function (collectionParam) {
        var arr = collectionParam.split('||');
        return arr[21];
    },
    // Thiet lap co
    SetFlag: function (NewFlag, ModuleID) {
        ModuleUtils.UpdateValue(NewFlag, 19, ModuleID);
    },
    //Thiet Lap gia tri cho Module Detail
    SetDetailValue: function (ArticleID, TabID, ModuleID) {
        // alert(ModuleID + ArticleID + XmlDetail);
        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 += "||" + TabID;
        for (i = 12; i < arr.length - 1; i++) {
            NewCollectionParam += "||" + arr[i];
        }
        NewCollectionParam += "||1";
        $(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);
    }
}
AGFSLib.App = $.extend({
    //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 "LoadListImagesArticlesInInformationBussiness": AGFS.Article.ArticleList.LoadListImagesArticlesInInformationBussiness(URL, Page, ModuleID); break;
            case "LoadListImagesArticlesInHSX": AGFS.Article.ArticleList.LoadListImagesArticlesInHSX(URL, Page, ModuleID); break;
            case "LoadListImagesArticlesInHNX": AGFS.Article.ArticleList.LoadListImagesArticlesInHNX(URL, Page, ModuleID); break;
            case "LoadListImagesArticlesInUPCOM": AGFS.Article.ArticleList.LoadListImagesArticlesInUPCOM(URL, Page, ModuleID); break;
            case "LoadListImagesArticlesInOTC": AGFS.Article.ArticleList.LoadListImagesArticlesInOTC(URL, Page, ModuleID); break;
            case 'LoadListArticlesWithTitleDateHour': AGFS.Article.ArticleList.LoadListArticlesWithTitleDateHour(URL, Page, ModuleID); break;
            case 'LoadListArticlesWithTitleDateHour2': AGFS.Article.ArticleList.LoadListArticlesWithTitleDateHour2(URL, Page, ModuleID); break;
            case 'LoadListArticlesWithTitle': AGFS.Article.ArticleList.LoadListArticlesWithTitle(URL, Page, ModuleID); break;
            case 'LoadListArticlesWithTitleSBS': AGFS.Article.ArticleList.LoadListArticlesWithTitleSBS(URL, Page, ModuleID); break;
            case 'LoadListArticlesWithRepostSBS': AGFS.Article.ArticleList.LoadListArticlesWithRepostSBS(URL, Page, ModuleID); break;
            case 'LoadListArticlesWithDealsTypify': AGFS.Article.ArticleList.LoadListArticlesWithDealsTypify(URL, Page, ModuleID); break;
            case 'LoadListArticlesWithSBSNews': AGFS.Article.ArticleList.LoadListArticlesWithSBSNews(URL, Page, ModuleID); break;
            case 'LoadListArticlesExpandDetail': AGFS.Article.ArticleList.LoadListArticlesExpandDetail(URL, Page, ModuleID); break;
            case 'LoadListArticlesByDates': AGFS.Article.ArticleList.LoadListArticlesByDates(URL, Page, ModuleID); break;
            case 'LoadListArticlesDisplayLead': AGFS.Article.ArticleList.LoadListArticlesDisplayLead(URL, Page, ModuleID); break;
            case 'LoadListArticlesDisplayLead_News': AGFS.Article.ArticleList.LoadListArticlesDisplayLead_News(URL, Page, ModuleID); break;
            case 'LoadListArticlesDisplayLead_3': AGFS.Article.ArticleList.LoadListArticlesDisplayLead_3(URL, Page, ModuleID); break;
            case 'LoadListImagesArticles': AGFS.Article.ArticleList.LoadListImagesArticles(URL, Page, ModuleID); break;
            case 'LoadListOverViewIntroductionArticles': AGFS.Article.ArticleList.LoadListOverViewIntroductionArticles(URL, Page, ModuleID); break;
            case 'LoadListOverViewArticles': AGFS.Article.ArticleList.LoadListOverViewArticles(URL, Page, ModuleID); break;
            case 'LoadListCompany': AGFS.Article.ArticleList.LoadListCompany(URL, Page, ModuleID); break;
            case 'LoadListHomeArtiles': AGFS.Article.ArticleList.LoadListHomeArtiles(URL, Page, ModuleID); break;
            case 'LoadListHomeArtilesVideo': AGFS.Article.ArticleList.LoadListHomeArtilesVideo(URL, Page, ModuleID); break;
            case 'LoadSBSNew': AGFS.Article.ArticleList.LoadSBSNew(URL, Page, ModuleID); break;
            case 'LoadListArticlesAndDetail': AGFS.Article.ArticleList.LoadListArticlesAndDetail(URL, Page, ModuleID); break;
            case 'LoadListArticleCareer': AGFS.Article.ArticleList.LoadListArticleCareer(URL, Page, ModuleID); break;
            case 'LoadListAwardsArticles': AGFS.Article.ArticleList.LoadListAwardsArticles(URL, Page, ModuleID); break;
            case 'LoadListHotEvent': AGFS.Article.ArticleList.LoadListHotEvent(URL, Page, ModuleID); break;
            case 'LoadListArticlesPublishedInformation': AGFS.Article.ArticleList.LoadListArticlesPublishedInformation(URL, Page, ModuleID); break;
            case 'LoadListArticlesDisplayByYear': AGFS.Article.ArticleList.LoadListArticlesDisplayByYear(URL, Page, ModuleID); break;
            case 'LoadListArticlesDisplayByTabsYear': AGFS.Article.ArticleList.LoadListArticlesDisplayByTabsYear(URL, Page, ModuleID); break;
            case 'LoadListArticlesOverViewHSX': AGFS.Article.ArticleList.LoadListArticlesOverViewHSX(URL, Page, ModuleID); break;
            case 'LoadListArticlesWithTitleAndDate': AGFS.Article.ArticleList.LoadListArticlesWithTitleAndDate(URL, Page, ModuleID); break;
            case 'LoadListArticleActive': AGFS.Article.ArticleList.LoadListArticleActive(URL, Page, ModuleID); break;
            case 'LoadListImagesHot': AGFS.Article.ArticleList.LoadListImagesHot(URL, Page, ModuleID); break;
            case 'LoadListArticlesDisplayLead_News2': AGFS.Article.ArticleList.LoadListArticlesDisplayLead_News2(URL, Page, ModuleID); break;
            case 'LoadListHistoryDevelopmentArticles': AGFS.Article.ArticleList.LoadListHistoryDevelopmentArticles(URL, Page, ModuleID); break;
            case 'LoadListArticleFAQ': AGFS.Article.ArticleList.LoadListArticleFAQ(URL, Page, ModuleID); break;
            case 'LoadListImagesArticles_2': AGFS.Article.ArticleList.LoadListImagesArticles_2(URL, Page, ModuleID); break;
            case 'LoadListArticlesDisplayInSamePage': AGFS.Article.ArticleList.LoadListArticlesDisplayInSamePage(URL, Page, ModuleID); break;
            case 'LoadListArticleShowHide': AGFS.Article.ArticleList.LoadListArticleShowHide(URL, Page, ModuleID); break;
            case 'LoadListArticlesDisplayLead_NoBorderEnd': AGFS.Article.ArticleList.LoadListArticlesDisplayLead_NoBorderEnd(URL, Page, ModuleID); break;
            case 'LoadListArticlesDisplayLead_NoBorderEnd_FullTitle': AGFS.Article.ArticleList.LoadListArticlesDisplayLead_NoBorderEnd_FullTitle(URL, Page, ModuleID); break;
            case 'LoadListArticleFullListAndContent': AGFS.Article.ArticleList.LoadListArticleFullListAndContent(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);
        switch (FuncSearch) {
            case 'SearchBySymbolInHSX': AGFS.Article.Search.SearchBySymbolInHSX(ModuleID); break;
            case 'SearchBySymbolInHNX': AGFS.Article.Search.SearchBySymbolInHSX(ModuleID); break;
            case 'SearchBySymbolInUPCOM': AGFS.Article.Search.SearchBySymbolInHSX(ModuleID); break;
            case 'SearchBySymbolInOTC': AGFS.Article.InnitSearch.SearchBySymbolInOTC(ModuleID); break;
            case 'SearchBySymbol': AGFS.Article.Search.SearchBySymbol(ModuleID); break;
            case 'SearchByBeginDateEndDate': AGFS.Article.InnitSearch.SearchByBeginDateEndDate(ModuleID); break;
            case 'SearchBySource': AGFS.Article.InnitSearch.SearchBySource(ModuleID); break;
            case 'SearchAdvanced': AGFS.Article.InnitSearch.SearchAdvanced(ModuleID); break;
            case 'SearchByDayMonthYear': AGFS.Article.InnitSearch.SearchByDayMonthYear(ModuleID); break;
            case 'SearchByCategory': AGFS.Article.InnitSearch.SearchByCategory(ModuleID); break;
            case 'SearchListArticleByYearAndCategory': AGFS.Article.InnitSearch.SearchListArticleByYearAndCategory(ModuleID); break;
            case 'SearchByStockCode': AGFS.Article.InnitSearch.SearchByStockCode(ModuleID); break;
            case 'SearchHotNewsByDate': AGFS.Article.InnitSearch.SearchHotNewsByDate(ModuleID); break;
            case 'SearchAwardByImageNote': AGFS.Article.InnitSearch.SearchAwardByImageNote(ModuleID); break;
            default: break;
        }
        switch (FuncList) {
            case "LoadListImagesArticlesInInformationBussiness": AGFS.Article.ArticleList.LoadListImagesArticlesInInformationBussiness(URL, Page, ModuleID); break;
            case "LoadListImagesArticlesInHSX": AGFS.Article.ArticleList.LoadListImagesArticlesInHSX(URL, Page, ModuleID); break;
            case "LoadListImagesArticlesInHNX": AGFS.Article.ArticleList.LoadListImagesArticlesInHNX(URL, Page, ModuleID); break;
            case "LoadListImagesArticlesInUPCOM": AGFS.Article.ArticleList.LoadListImagesArticlesInUPCOM(URL, Page, ModuleID); break;
            case "LoadListImagesArticlesInOTC": AGFS.Article.ArticleList.LoadListImagesArticlesInOTC(URL, Page, ModuleID); break;
            case 'LoadListArticlesWithTitleDateHour': AGFS.Article.ArticleList.LoadListArticlesWithTitleDateHour(URL, Page, ModuleID); break;
            case 'LoadListArticlesWithTitleDateHour2': AGFS.Article.ArticleList.LoadListArticlesWithTitleDateHour2(URL, Page, ModuleID); break;
            case 'LoadListArticlesWithTitle': AGFS.Article.ArticleList.LoadListArticlesWithTitle(URL, Page, ModuleID); break;
            case 'LoadListArticlesWithTitleSBS': AGFS.Article.ArticleList.LoadListArticlesWithTitleSBS(URL, Page, ModuleID); break;
            case 'LoadListArticlesWithRepostSBS': AGFS.Article.ArticleList.LoadListArticlesWithRepostSBS(URL, Page, ModuleID); break;
            case 'LoadListArticlesWithDealsTypify': AGFS.Article.ArticleList.LoadListArticlesWithDealsTypify(URL, Page, ModuleID); break;
            case 'LoadListArticlesWithSBSNews': AGFS.Article.ArticleList.LoadListArticlesWithSBSNews(URL, Page, ModuleID); break;
            case 'LoadListArticlesExpandDetail': AGFS.Article.ArticleList.LoadListArticlesExpandDetail(URL, Page, ModuleID); break;
            case 'LoadListArticlesByDates': AGFS.Article.ArticleList.LoadListArticlesByDates(URL, Page, ModuleID); break;
            case 'LoadListArticlesDisplayLead': AGFS.Article.ArticleList.LoadListArticlesDisplayLead(URL, Page, ModuleID); break;
            case 'LoadListArticlesDisplayLead_News': AGFS.Article.ArticleList.LoadListArticlesDisplayLead_News(URL, Page, ModuleID); break;
            case 'LoadListArticlesDisplayLead_3': AGFS.Article.ArticleList.LoadListArticlesDisplayLead_3(URL, Page, ModuleID); break;
            case 'LoadListImagesArticles': AGFS.Article.ArticleList.LoadListImagesArticles(URL, Page, ModuleID); break;
            case 'LoadListOverViewIntroductionArticles': AGFS.Article.ArticleList.LoadListOverViewIntroductionArticles(URL, Page, ModuleID); break;
            case 'LoadListOverViewArticles': AGFS.Article.ArticleList.LoadListOverViewArticles(URL, Page, ModuleID); break;
            case 'LoadListCompany': AGFS.Article.ArticleList.LoadListCompany(URL, Page, ModuleID); break;
            case 'LoadListHomeArtiles': AGFS.Article.ArticleList.LoadListHomeArtiles(URL, Page, ModuleID); break;
            case 'LoadListHomeArtilesVideo': AGFS.Article.ArticleList.LoadListHomeArtilesVideo(URL, Page, ModuleID); break;
            case 'LoadSBSNew': AGFS.Article.ArticleList.LoadSBSNew(URL, Page, ModuleID); break;
            case 'LoadListArticlesAndDetail': AGFS.Article.ArticleList.LoadListArticlesAndDetail(URL, Page, ModuleID); break;
            case 'LoadListArticleCareer': AGFS.Article.ArticleList.LoadListArticleCareer(URL, Page, ModuleID); break;
            case 'LoadListAwardsArticles': AGFS.Article.ArticleList.LoadListAwardsArticles(URL, Page, ModuleID); break;
            case 'LoadListHotEvent': AGFS.Article.ArticleList.LoadListHotEvent(URL, Page, ModuleID); break;
            case 'LoadListArticlesPublishedInformation': AGFS.Article.ArticleList.LoadListArticlesPublishedInformation(URL, Page, ModuleID); break;
            case 'LoadListArticlesDisplayByYear': AGFS.Article.ArticleList.LoadListArticlesDisplayByYear(URL, Page, ModuleID); break;
            case 'LoadListArticlesDisplayByTabsYear': AGFS.Article.ArticleList.LoadListArticlesDisplayByTabsYear(URL, Page, ModuleID); break;
            case 'LoadListArticlesOverViewHSX': AGFS.Article.ArticleList.LoadListArticlesOverViewHSX(URL, Page, ModuleID); break;
            case 'LoadListArticlesWithTitleAndDate': AGFS.Article.ArticleList.LoadListArticlesWithTitleAndDate(URL, Page, ModuleID); break;
            case 'LoadListArticlesWithTitleAndDate_2': AGFS.Article.ArticleList.LoadListArticlesWithTitleAndDate_2(URL, Page, ModuleID); break;
            case 'LoadListArticleActive': AGFS.Article.ArticleList.LoadListArticleActive(URL, Page, ModuleID); break;
            case 'LoadListImagesHot': AGFS.Article.ArticleList.LoadListImagesHot(URL, Page, ModuleID); break;
            case 'LoadListArticlesDisplayLead_News2': AGFS.Article.ArticleList.LoadListArticlesDisplayLead_News2(URL, Page, ModuleID); break;
            case 'LoadListHistoryDevelopmentArticles': AGFS.Article.ArticleList.LoadListHistoryDevelopmentArticles(URL, Page, ModuleID); break;
            case 'LoadListArticleFAQ': AGFS.Article.ArticleList.LoadListArticleFAQ(URL, Page, ModuleID); break;
            case 'LoadListImagesArticles_2': AGFS.Article.ArticleList.LoadListImagesArticles_2(URL, Page, ModuleID); break;
            case 'LoadListArticlesDisplayInSamePage': AGFS.Article.ArticleList.LoadListArticlesDisplayInSamePage(URL, Page, ModuleID); break;
            case 'LoadListArticleShowHide': AGFS.Article.ArticleList.LoadListArticleShowHide(URL, Page, ModuleID); break;
            case 'LoadListArticlesDisplayLead_NoBorderEnd_FullTitle': AGFS.Article.ArticleList.LoadListArticlesDisplayLead_NoBorderEnd_FullTitle(URL, Page, ModuleID); break;
            case 'LoadListArticleFullListAndContent': AGFS.Article.ArticleList.LoadListArticleFullListAndContent(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 TabID = ModuleUtils.GetTabLink(CollectionParam);
        var ArticleID = ModuleUtils.GetArticleID(CollectionParam);
        switch (FuncDetail) {
            case 'LoadDetailArticles': AGFS.Article.ArticleDetail.LoadDetailArticles(ArticleID, TabID, ModuleID); break;
            case 'LoadDetailArticlesInMarketNew': AGFS.Article.ArticleDetail.LoadDetailArticlesInMarketNew(ArticleID, TabID, ModuleID); break;
            case 'LoadDetailArticlesNoImage': AGFS.Article.ArticleDetail.LoadDetailArticlesNoImage(ArticleID, TabID, ModuleID); break;
            default: AGFS.Article.ArticleDetail.LoadDetailArticles(ArticleID, TabID, ModuleID); break;
        }
    },
    // Load du lieu theo module
    loadModule: function (ModuleID) {
        var ObjectModuleName = "#ObjectModuleID" + ModuleID;
        var CollectionParam = $(ObjectModuleName).text();
        var Flag = ModuleUtils.GetFlag(CollectionParam);
        if (Flag == '1') {
            AGFSLib.App.FillToDetailData(ModuleID);
        }
        else {
            var Url = ModuleUtils.GetXmlList(CollectionParam);
            AGFSLib.App.LoadAllData(Url, '1', ModuleID);
        }
    }
});
var prevUrlHistory = '';
setInterval('checkUrlHistory()', 1000);
function checkUrlHistory() {
    var currentUrlHistory = location.hash.replace('#', '');
    if (currentUrlHistory != prevUrlHistory) {
        if (currentUrlHistory == "") {
            ModuleUtils.SetFlag('0', prevUrlHistory.split(',')[1]);
            AGFSLib.App.loadModule(prevUrlHistory.split(',')[1]);
        }
        else {
            var arrArticle = currentUrlHistory.split(',');
            var templateType = arrArticle[0];
            var ModuleId = arrArticle[1];
            var arrCurrentArticleId = arrArticle[2].split('|');
            ModuleUtils.SetFlag('1', ModuleId);
            ModuleUtils.SetDetailValue(arrCurrentArticleId[0], arrArticle[2], ModuleId);
            AGFSLib.App.loadModule(ModuleId);
        }
        prevUrlHistory = currentUrlHistory;
    }
}
    
