// コンフリクト防止
var j = jQuery.noConflict();
var jsonData;
var callback_error = 0;
var AdvViewHistory = function(){
    this.cookies = document.cookie.split(" ");
    this.advs = null;
    this.url = null;
    this.params = new Array();
    this.data = new Array();
    this.limit = 3;
    this.index = 0;
    this.page = 1;
    this.offset = 12;
    this.getMessage = function() {
        var url = this.getUrl();
        var message = "まだ求人広告が見られていません。 <br/>";
        message += '<a href="' + url + '/?act=public_help_browser" target="_blank">>履歴が表示されない場合は</a>';
        return message;
    }
    this.getUrl = function() {
        var url = location.href.match("^(http|https):\/\/[^\/]+");
        return url[0];
    }
        
    // cookieを取得して分割
    this.getCookies = function(){
        if (this.cookies.length > 0) {
            for (var i = 0; i < this.cookies.length; i++) {
                if (this.cookies[i].match("ADV_VIEW_HISTORY=.*")) {
                    this.advs = decodeURIComponent(this.cookies[i].replace("ADV_VIEW_HISTORY=", ""));
                }
            }
            if (this.advs) {
                var str = this.advs.split(",");
                for (var i = 0; i < str.length; i++) {
                    var replace_str = str[i].replace(/[;]/, "");
                    var adv = replace_str.split("|");
                    this.params[i] = {};
                    this.params[i].adv_id = adv[0];
                    this.params[i].cmp_id = adv[1];
                    this.params[i].cmp_dep_id = adv[2];
                    this.params[i].date = adv[3];
                }
            }
        }
    }
    
    // cookieを削除
    this.delCookies = function() {
        var cookie = ["ADV_VIEW_HISTORY"];
        cookie.push("=; path=");
        cookie.push("/");
        cookie.push("; expires=Fri, 31-Dec-1999 23:59:59 GMT");   
        document.cookie = cookie.join("");
        j("#check_detail_view").empty();
        j("#check_detail_view").append(this.getMessage());
        j("#check_detail_view").css("height", "107px");
        j("#check_detail_view_next").attr("src", "/img/kj/btn_check_next.gif");
        j("#check_detail_view_prev").attr("src", "/img/kj/btn_check_prev.gif");
        this.data = new Array();
    }
    
    // URLを作成
    this.makeUrl = function(){
        var access = this.getUrl();
        this.url = access + '?act=public_getadvviewhistory';
        for (var i = 0; i < this.params.length; i++) {
            this.url += "&ai[]=" + this.params[i].adv_id;
        }
        for (var i = 0; i < this.params.length; i++) {
            this.url += "&ci[]=" + this.params[i].cmp_id;
        }
        for (var i = 0; i < this.params.length; i++) {
            this.url += "&cdi[]=" + this.params[i].cmp_dep_id;
        }
        return this.url;
    }
    
    // ajaxでデータを取得      
    this.getAdvViewHistory = function(){
        var message = this.getMessage();
        j.ajax({
            url: this.makeUrl(),
            async: false,
            dataType: 'json',
            cache: false,
            success: function(json){
                jsonData = json;
            },
            error: function(){
                callback_error = 1;
                j("#check_detail_view").append(message);
            }
        });
        // エラーでない場合
        if (callback_error != 1) {
            this.data = jsonData;
            this.max = Math.ceil(this.data.length / this.limit);
            this.viewPage();
        }
    }
            
    this.createHtml = function(data, count, url) {
        this.index = count;
        var item = data;
        var link = url + "/detail/" + data.cmp_id + "/" + data.adv_id + "/" + data.cmp_dep_id + ".html?code=his";
        j("#check_detail_view").append('<dl>' +
                                       '<dt><a href="' + link + '">' + data.cmp_name + '</a></dt>' +
                                       '<dd><a href="' + link + '">' + data.cmp_dep_name + '</a></dd>' +
                                       '<dd class="btn"><a href="' + url + "/kj/?act=consumer_mypage_apply_confirm&code=his" + "&adv_id=" + data.adv_id + "&dep_id=" + data.cmp_dep_id + '&entryapply=1"><img src="/img/kj/btn_apply.gif" alt="今すぐ応募" width="84" height="20" class="btnNowRequest"></a></dd></dl>');
		    j(".btnNowRequest").mouseover(function(){ j(this).attr("src","/img/kj/btn_apply_ov.gif") }).mouseout(function(){ j(this).attr("src","/img/kj/btn_apply.gif") });
    }
    // ページの描画
    this.viewPage = function() {
        var page_s = (this.page == 1) ? 1 : (this.page - 1) * this.limit;
        var page_e = (this.data[this.page * this.limit] == undefined) ? this.data.length : this.page * this.limit;
        j("#check_detail_view").empty();
        if (this.data.length < 1) {
            j("#check_detail_view").append(this.getMessage());
        }
        var url = this.getUrl();
        for (var i = 0; i < this.data.length; i++) {
            if (this.page == 1) {
                if (i < this.page * this.limit && 
                    i < (this.page * this.limit) + this.limit) {
                    this.createHtml(this.data[i], i, url);
                }
            }
            else {
                if (i >= (this.page - 1) * this.limit && 
                    i < this.page * this.limit && 
                    i < (this.page * this.limit) + this.limit) {
                    this.createHtml(this.data[i], i, url);
                }
            }
        }
        
        // 次がある場合は画像を変更
        if (this.data.length > 0) {
            if (this.page == this.max) {
                j("#check_detail_view_next").attr("src", "/img/kj/btn_check_next.gif").mouseover(function(){ j(this).attr("src","/img/kj/btn_check_next.gif");}).mouseout(function(){ j(this).attr("src","/img/kj/btn_check_next.gif");});
            }
            else {
                j("#check_detail_view_next").attr("src", "/img/kj/btn_check_next_ov.gif").mouseover(function(){ j(this).attr("src","/img/kj/btn_check_next_on_ov.gif");}).mouseout(function(){ j(this).attr("src","/img/kj/btn_check_next_ov.gif");});
            }
            
            // 前がある場合は画像変更
            if (this.page == 1) {
                j("#check_detail_view_prev").attr("src", "/img/kj/btn_check_prev.gif").mouseover(function(){ j(this).attr("src","/img/kj/btn_check_prev.gif");}).mouseout(function(){ j(this).attr("src","/img/kj/btn_check_prev.gif");});
            }
            else {
                j("#check_detail_view_prev").attr("src", "/img/kj/btn_check_prev_ov.gif").mouseover(function(){ j(this).attr("src","/img/kj/btn_check_prev_on_ov.gif");}).mouseout(function(){ j(this).attr("src","/img/kj/btn_check_prev_ov.gif");});
            }
        }
        // 枠の高さ
        if (this.data.length >= 3) {
            j("#check_detail_view").css("height", "321px");
        } else if (this.data.length == 2) {
            j("#check_detail_view").css("height", "214px");
        } else if (this.data.length == 1) {
            j("#check_detail_view").css("height", "107px");
        }
    }
    
    // 次のページ
    this.nextPage = function() {
        this.page++; 
        if (this.page > this.max) { this.page = this.max; }
        if (this.page <= this.max) {
            this.viewPage();
        }
    }
    // 前のページ
    this.prevPage = function() {
        this.page--;
        if (this.page < 1) { this.page = 1; }
        if (this.page >= 1) {
            this.viewPage();
        }
    }
    
}

var advViewHistory = new AdvViewHistory;


$(function(){
    advViewHistory.getCookies();
    advViewHistory.getAdvViewHistory();
    j("#check_detail_view_clear").click(function(){
         advViewHistory.delCookies();
         j("#check_detail_view_next").attr("src", "/img/kj/btn_check_next.gif").mouseover(function(){ j(this).attr("src","/img/kj/btn_check_next.gif");}).mouseout(function(){ j(this).attr("src","/img/kj/btn_check_next.gif");});
         j("#check_detail_view_prev").attr("src", "/img/kj/btn_check_prev.gif").mouseover(function(){ j(this).attr("src","/img/kj/btn_check_prev.gif");}).mouseout(function(){ j(this).attr("src","/img/kj/btn_check_prev.gif");});
    });
    j("#check_detail_view_prev").click(function(){
        advViewHistory.prevPage();
    });
    j("#check_detail_view_next").click(function(){
        advViewHistory.nextPage();
    });
    // CSSを適用
    j("#check_detail_view").css("max-height", "321px");
    j("#check_detail_view").css("min-height", "107px");
    j("#check_detail_view").css("min-width", "144px");
    j("#check_detail_view").css("max-width", "144px");
});