$(function(){
    $('div.blockPager').hide();
    $('div#jobList:last').after("<div class='nextPageLoading' style='border: 1px solid #ccc; padding: 10px; display:none; text-align: center;'>"
        +"<img src='/img/search/loading.gif' alt='' width='32px' height='32px' class='loading' /></div>");


    //AutoPagarize
    $.autopager({
        nextLink   : 'div.searchListPager a:last.next',
        pageElement: 'div#jobList',
        
        // before matched element, page contents will be inserted. (optional)             
        //insertBefore: 'div.searchListPager',
        
        // where page loading will be excuted. pixels from end of page. (optional) 
        pagingPoint: 1000,
        
        // a function to be executed when next page was loaded. (optional) 
        // receive "this" as a element of page content.
//        load: function(i) {
//        },
    
        // a function to be executed when page content was inserted. (optional)
        // receive "this" as a element of page content.
        success: function(i) {
            $(this).fadeIn('slow');
            $(this).find('div.blockPager').hide();
            $('div.nextPageLoading').hide();

            // 読み込んだ部分のページ数を調べる
            var pageClass = $(this).find("div.unitJobOffer").attr("class").match(/page[0-9]/);

            if (pageClass.length > 0) {
                // Ajaxで読み込んだdiv.jobListItem a に対して、リンクをクリック時にpageを追加する
                memoPageNumberForBackToSearchResult("div.unitJobOffer." + pageClass);
            }
        },
        beforeLoad: function(i){
            $('div.nextPageLoading').show();
        }
        
    });
});

/**
 * 検索結果画面から詳細画面を表示するときに検索画面に戻れる必要がある
 * autoPagerizeを使うと、Ajaxで読み込んだページに対して、JavaScriptの処理を掛けるのが
 * jQuery1.3以前では難しいので、autoPagerizeを読み込んだときのコールバックで、
 * 求人情報詳細のURLにページ番号を追加する処理をさせる
 * jobItemExp の指定例：
 *    ページ読み込み時： div.jobListItem
 *    Ajax読み込みのコールバック：div.jobListItem.page11 (ページ番号は可変)
 */
function memoPageNumberForBackToSearchResult(jobItemExp) {
    jQuery(jobItemExp).each(function(){
        var jobItem = jQuery(this);
        var page = jobItem.find('input:hidden[name=page]').val();
        jobItem.find('a').click(function(){
            // 求人情報詳細から、検索結果一覧に戻るときのページ数を設定する
            jQuery.cookie('job_detail_on_page', page, {
                path: '/'
            });
        });
    });
}

// 初期設定
jQuery(function(){
    // 検索結果から求人情報詳細にジャンプするときにページ番号を付与する
    memoPageNumberForBackToSearchResult("div.jobListItem");
});
