﻿var Screenshots = {
    debug: false,
    page: 1,
    listSize: 5,
    category: 0,
    currentImage: 0,
    
    Init: function() {
        if (this.debug) {
            $("body").append('<textarea id="logviewer" style="color:#fff;background:#000;width:450px;height:100%;position:absolute;top:0px;left:0px;z-index:100000;"></textarea>');
            this.log('Init() end');
        }
    },
    log: function(message) {
        var msg = message +' | page='+ this.page +', image='+ this.currentImage;
        if (this.debug)
            $("#logviewer").val($("#logviewer").val() +'\n'+ msg);
    },
    
    CurrentCategory: function() { return this.Category[this.category]; },
    Count: function() { return this.CurrentCategory().Images.length; },
    LastPage: function() { return Math.ceil(this.Count() / this.listSize); },
    LastImageNo: function() { return this.Count() - 1; },
    ImageUrl: function() { return this.CurrentCategory().ImageUrl + this.CurrentCategory().Images[this.currentImage].ViewSize; },
    ThumbnailUrl: function(no) {
        if ((no >= 0) == false)
            no = this.currentImage;  // 리스트 표시를 위해서 no를 지정하는 경우가 아니면 현재값 제공
        
        return this.CurrentCategory().ImageUrl + this.CurrentCategory().Images[no].Thumbnail;
    },
    IsNew: function(no) {
        if ((no >= 0) == false)
            no = this.currentImage;  // 리스트 표시를 위해서 no를 지정하는 경우가 아니면 현재값 제공
        
        return this.CurrentCategory().Images[no].IsNew;
    },
    FullsizeUrl: function() { return this.CurrentCategory().ImageUrl + this.CurrentCategory().Images[this.currentImage].FullSize; },
    DownloadUrl: function() { return this.CurrentCategory().DownloadUrl; },
    SetCategory:function(no, imageNo) {
        this.log('SetCategory(no='+no+', imageNo='+imageNo+') begin');
        // 카테고리 탭의 선택 표시 처리
        $("div.tab_pos ul li.selected").removeClass("selected");
        $("#tab_"+ no).addClass("selected");
        
        this.category = no;
        if (imageNo >= 0) {
            this.currentImage = imageNo;
        }
        this.SyncPage();
        this.log('SetCategory(no='+no+', imageNo='+imageNo+') end');
    },
    ListNode: function(no) {
        var html = '<li><a href="javascript:Screenshots.Show('+ no +');" onfocus="blur();"><img src="'+ this.ThumbnailUrl(no) +'" alt="" width="120" height="76" class="v_top" />'
//        if (this.IsNew(no) == true) {
//            html += '<img src="http://design.heroes.nexon.com/images/bul/ico_n.gif" alt="N" class="ico_img" />';
//        }
        html += '<span class="frame" title=""></span></a></li>';
        return html;
    },
    DisplayList:function() {
        this.log('DisplayList() begin');
        
        var start = (this.page - 1) * this.listSize;
        var end = start + this.listSize - 1;
        if (end >= this.Count())
            end = this.Count() - 1;
    
        $("div.img_scroll_list ul").text("");
        for (var i = start; i <= end; i++) {
            $("div.img_scroll_list ul").append(this.ListNode(i));
        }
    
        $("#lastPage").text(this.LastPage());
        $("#currentPage").text(this.page);
        
        this.log('DisplayList() end');
    },
    DisplayPrevList: function() {
        this.log('DisplayPrevList() begin');
        
        this.page -= 1;
        if (this.page < 1)
            this.page = this.LastPage();
        
        this.currentImage = this.page * this.listSize - 1;
        if (this.currentImage > this.LastImageNo())
            this.currentImage = this.LastImageNo();
            
        this.DisplayList();
        this.log('DisplayPrevList() end');
    },
    DisplayNextList: function() {
        this.log('DisplayNextList() begin');
        
        this.page += 1;
        if (this.page > this.LastPage())
            this.page = 1;
        
        this.currentImage = (this.page - 1) * this.listSize;
        this.DisplayList();
        
        this.log('DisplayNextList() end');
    },    
    ShowPrevImage: function() {
        this.log('ShowPrevImage() begin');
        
        this.currentImage -= 1;
        if (this.currentImage < 0)
            this.currentImage = this.LastImageNo();
        
        this.SyncPage();
        this.DisplayList();
        this.Show();
        
        this.log('ShowPrevImage() end');
    },
    ShowNextImage: function() {
        this.log('ShowNextImage() begin');
        
        this.currentImage += 1;
        if (this.currentImage > this.LastImageNo())
            this.currentImage = 0;
        
        this.SyncPage();
        this.DisplayList();
        this.Show();
        
        this.log('ShowNextImage() end');
    },
    SyncPage: function() {
        this.log('SyncPage() begin');
        
        this.page = Math.floor(this.currentImage / this.listSize) + 1;
        
        this.log('SyncPage() end');
    },
    Show:function(no) {
        this.log('Show('+no+') begin');
    
        if (no >= 0) 
            this.currentImage = no;

        $("#sshot_viewer").attr("src", this.ImageUrl());
        $("div.img_scroll_list ul li.selected").removeClass("selected");
        $("div.img_scroll_list ul li").eq(this.currentImage % this.listSize).addClass("selected");
        
        this.log('Show('+no+') end');
    },
    ShowFullsize:function() {   
        openimg(this.FullsizeUrl());
    },
    Download:function() {
        window.open(this.DownloadUrl());
    },
    Category:[
        { DownloadUrl:'http://husky.nexon.com/pds/screenshot/HuskyExpress_CBT_screenshot.zip',
            ImageUrl:'http://s.nx.com/s2/game/husky/cbt/Pds/',
            Images:[
                {Thumbnail:'cbt_thumnail_019.jpg', ViewSize:'cbt_019.jpg', FullSize:'cbt_019.jpg', IsNew:false}
                ,{Thumbnail:'cbt_thumnail_020.jpg', ViewSize:'cbt_020.jpg', FullSize:'cbt_020.jpg', IsNew:false}
                ,{Thumbnail:'cbt_thumnail_021.jpg', ViewSize:'cbt_021.jpg', FullSize:'cbt_021.jpg', IsNew:false}
                ,{Thumbnail:'cbt_thumnail_022.jpg', ViewSize:'cbt_022.jpg', FullSize:'cbt_022.jpg', IsNew:false}
                ,{Thumbnail:'cbt_thumnail_023.jpg', ViewSize:'cbt_023.jpg', FullSize:'cbt_023.jpg', IsNew:false}
                ,{Thumbnail:'cbt_thumnail_024.jpg', ViewSize:'cbt_024.jpg', FullSize:'cbt_024.jpg', IsNew:false}
                ,{Thumbnail:'cbt_thumnail_025.jpg', ViewSize:'cbt_025.jpg', FullSize:'cbt_025.jpg', IsNew:false}
                ,{Thumbnail:'cbt_thumnail_015.jpg', ViewSize:'cbt_015.jpg', FullSize:'cbt_015.jpg', IsNew:false}
                ,{Thumbnail:'cbt_thumnail_016.jpg', ViewSize:'cbt_016.jpg', FullSize:'cbt_016.jpg', IsNew:false}
                ,{Thumbnail:'cbt_thumnail_017.jpg', ViewSize:'cbt_017.jpg', FullSize:'cbt_017.jpg', IsNew:false}
                ,{Thumbnail:'cbt_thumnail_018.jpg', ViewSize:'cbt_018.jpg', FullSize:'cbt_018.jpg', IsNew:false}
                ,{Thumbnail:'cbt_thumnail_008.jpg', ViewSize:'cbt_008.jpg', FullSize:'cbt_008.jpg', IsNew:false}
                ,{Thumbnail:'cbt_thumnail_009.jpg', ViewSize:'cbt_009.jpg', FullSize:'cbt_009.jpg', IsNew:false}
                ,{Thumbnail:'cbt_thumnail_010.jpg', ViewSize:'cbt_010.jpg', FullSize:'cbt_010.jpg', IsNew:false}
                ,{Thumbnail:'cbt_thumnail_011.jpg', ViewSize:'cbt_011.jpg', FullSize:'cbt_011.jpg', IsNew:false}
                ,{Thumbnail:'cbt_thumnail_012.jpg', ViewSize:'cbt_012.jpg', FullSize:'cbt_012.jpg', IsNew:false}
                ,{Thumbnail:'cbt_thumnail_013.jpg', ViewSize:'cbt_013.jpg', FullSize:'cbt_013.jpg', IsNew:false}
                ,{Thumbnail:'cbt_thumnail_014.jpg', ViewSize:'cbt_014.jpg', FullSize:'cbt_014.jpg', IsNew:false}
                ,{Thumbnail:'cbt_thumnail_001.jpg', ViewSize:'cbt_001.jpg', FullSize:'cbt_001.jpg', IsNew:false}
                ,{Thumbnail:'cbt_thumnail_002.jpg', ViewSize:'cbt_002.jpg', FullSize:'cbt_002.jpg', IsNew:false}
                ,{Thumbnail:'cbt_thumnail_003.jpg', ViewSize:'cbt_003.jpg', FullSize:'cbt_003.jpg', IsNew:false}
                ,{Thumbnail:'cbt_thumnail_004.jpg', ViewSize:'cbt_004.jpg', FullSize:'cbt_004.jpg', IsNew:false}
                ,{Thumbnail:'cbt_thumnail_005.jpg', ViewSize:'cbt_005.jpg', FullSize:'cbt_005.jpg', IsNew:false}
                ,{Thumbnail:'cbt_thumnail_006.jpg', ViewSize:'cbt_006.jpg', FullSize:'cbt_006.jpg', IsNew:false}
                ,{Thumbnail:'cbt_thumnail_007.jpg', ViewSize:'cbt_007.jpg', FullSize:'cbt_007.jpg', IsNew:false}
            ]
        },
        {DownloadUrl:'http://husky.nexon.com/pds/screenshot/HuskyExpress_GSTAR_screenshot.zip',
            ImageUrl:'http://s.nx.com/s2/game/husky/cbt/Pds/',
            Images:[
                {Thumbnail:'2008_thumnail_001.jpg', ViewSize:'2008_001.jpg', FullSize:'2008_001.jpg', IsNew:false}
                ,{Thumbnail:'2008_thumnail_002.jpg', ViewSize:'2008_002.jpg', FullSize:'2008_002.jpg', IsNew:false}
                ,{Thumbnail:'2008_thumnail_003.jpg', ViewSize:'2008_003.jpg', FullSize:'2008_003.jpg', IsNew:false}
                ,{Thumbnail:'2008_thumnail_004.jpg', ViewSize:'2008_004.jpg', FullSize:'2008_004.jpg', IsNew:false}
                ,{Thumbnail:'2008_thumnail_005.jpg', ViewSize:'2008_005.jpg', FullSize:'2008_005.jpg', IsNew:false}
                ,{Thumbnail:'2008_thumnail_006.jpg', ViewSize:'2008_006.jpg', FullSize:'2008_006.jpg', IsNew:false}
                ,{Thumbnail:'2008_thumnail_007.jpg', ViewSize:'2008_007.jpg', FullSize:'2008_007.jpg', IsNew:false}
                ,{Thumbnail:'2008_thumnail_008.jpg', ViewSize:'2008_008.jpg', FullSize:'2008_008.jpg', IsNew:false}
            ]
        }
    ]
}
