var jsonData;
var callback_error;
var SearchSimilarAdv = function() {
	this.url = null;
    this.page = 1;
    this.data = null;
    this.index = 0;
    this.limit = 5;
    this.max = 0;
    this.view = new Array();
	this.adv_ids = $("input:hidden[name^='similar_adv_id']");
	this.cmp_ids = $("input:hidden[name^='similar_cmp_id']");
	this.cmp_dep_ids = $("input:hidden[name^='similar_cmp_dep_id']");
	this.pref_ids = $("input:hidden[name^='similar_pref_id']");
	this.city_ids = $("input:hidden[name^='similar_city_id']");
	this.ocp_ids = $("input:hidden[name^='similar_ocp_id']");
    this.from = $("input:hidden[name='similar_from']");
    
    // 取得したパラメータでURLを作成
	this.makeUrl = function() {
	    //#96 begin
		this.url = '/?act=public_getsimilaradv';
		//#96 end
        for (var i = 0; i < this.adv_ids.length; i++) {
            this.url += "&ai[]=" + this.adv_ids[i].value;
        }
        for (var i = 0; i < this.cmp_ids.length; i++) {
            this.url += "&ci[]=" + this.cmp_ids[i].value;
        }
        for (var i = 0; i < this.cmp_dep_ids.length; i++) {
            this.url += "&cdi[]=" + this.cmp_dep_ids[i].value;
        }
        for (var i = 0; i < this.pref_ids.length; i++) {
            this.url += "&pref[]=" + this.pref_ids[i].value;
        }
        for (var i = 0; i < this.city_ids.length; i++) {
            this.url += "&city[]=" + this.city_ids[i].value;
        }
        for (var i = 0; i < this.ocp_ids.length; i++) {
            this.url += "&ocp[]=" + this.ocp_ids[i].value;
        }

        this.url += "&from=" + this.from[0].value;
        return this.url;
	}
    
    this.createHtml = function(data, count, url) {
        this.index = count;
        var item = data;
        var advurl = url + '/detail/' + item.cmp_id + '/' + item.adv_id + '/' + item.cmp_dep_id + '.html?code=sim'
        $(".similar_adv_center ul").append('<li style="float: left;"><div style="width: 104px; margin: 5px 0px 5px 10px">' +
                                           '<p style="font-size: 10px; width:84px; height: 30px;"><a href="' + advurl + '">' + item.cmp_name + '</a></p>' +
                                           '<p style="width:84px;height: 90px;"><a href="' + advurl + '"><img src="' + item.image + '" width="104" height="78"></a></p>' +
                                           '<p style="font-size: 10px; width:84px; height: 30px;"><a href="' + advurl + '">' + item.adv_top_position + '</a></p></div></li>');
    }
    
    // ページの描画
    this.viewPage = function() {
        var page_s = (this.page == 1) ? 1 : (this.page - 1) * this.limit + 1;
        var page_e = (this.data[this.page * this.limit] == undefined) ? this.data.length : this.page * this.limit;
        $("#similar_adv_num").empty();
        $("#similar_adv_num").append(this.data.length+"件中"+page_s+"-"+page_e+"件を表示");
        $(".similar_adv_center ul").empty();
        var url = location.href.match("^(http|https):\/\/[^\/]+");
        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[0]);
                }
            }
            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[0]);
                }
            }
        }
    }
     
    // ajaxでデータを取得   	
	this.getSimilarAdv = function() {
		$.ajax({
            url: this.makeUrl(),
            async: false,
            dataType : 'json',
            success: function(json){
                jsonData = json;
            },
            error: function(){
                callback_error = 1;
            }
        });
        // エラーでない場合
        if (callback_error != 1) {
            this.data = jsonData;
            this.max = Math.ceil(this.data.length / this.limit);
            this.viewPage();
        }
	}
    
    // 次のページ
    this.nextPage = function() {
        this.page++; 
        if (this.data[this.index+1] == undefined) { this.page = 1; }
        this.viewPage();
    }
    // 前のページ
    this.prevPage = function() {
        this.page--;
        if (this.page < 1) { this.page = this.max; }
        this.viewPage();
    }
}

var searchSimilarAdv = new SearchSimilarAdv;

$(function() {
	searchSimilarAdv.getSimilarAdv();
    $("#page_next").click(function() {
        searchSimilarAdv.nextPage();
    });
    $("#page_prev").click(function() {
        searchSimilarAdv.prevPage();
    });
});
