/**
 * コンテンツ連動AdSence
 */
function google_ad_request_done(google_ads) {
    QLife.GoogleAds.requestDone(google_ads);
}
/**
 * 検索向けAdSence
 */
function google_afs_request_done(google_ads) {
    QLife.GoogleAds.afsRequestDone(google_ads);
}

if (typeof(QLife) == 'undefined') {
    var QLife = {};
}

var google_adnum = 0;

QLife.GoogleAds = {
    /**
     * 広告タイプ - 病院詳細
     */
    ADS_HOSPITAL : 1,
    /**
     * 広告タイプ - サイドバー
     */
    ADS_SIDEBAR : 2,
    /**
     * 検索ページ 3件タイプ
     */
    ADS_SEARCH3 : 3,
    /**
     * 検索ページ 4件タイプ
     */
    ADS_SEARCH4 : 4,
    /**
     * 検索ページ サイドバー
     */
    ADS_SEARCH_SIDEBAR : 5,
    /**
     * (2010-02) トップ
     */
    ADS_TOP : 6,
    /**
     * 広告タイプ
     */
    adsType : null,
    /**
     * 出力した広告ユニットの数
     */
    unitCount : 0,
    /**
     * 広告タイプを設定
     */
    setType : function(adsType) {
        this.adsType = adsType;
    },
    /**
     * 
     */
    requestDone : function(google_ads) {
        if (google_ads.length == 0) {
            return;
        }
        // 表示した広告ユニットの数が3のとき、終了
        if (this.unitCount == 3) {
            return;
        }
        this.unitCount++;
        
        var s = '';
        var adsType = google_ads[0].type;
        if (adsType == 'flash') {
        	// ■コンテンツ連動：Flash広告
        } else if (adsType == 'image') {
        	// ■コンテンツ連動：画像広告
            s += '<a style="color: #000; font-weight: bold; text-decoration: none;" ' +
                'href="' + google_info.feedback_url + '">Ads by Google</a>';
        	s += '<a href="' + google_ads[0].url + '">' +
        		'<img border="0" src="' + google_ads[0].image_url + '"' +
                ' width="' + google_ads[0].image_width + '" height="' + google_ads[0].image_height + '"></a>';
        } else if (adsType == 'html') {
        	// HTML広告
            s += google_ads[0].snippet;
        } else {
        	// ■コンテンツ連動：テキスト広告
        	// 広告開始部
            if (this.adsType == this.ADS_HOSPITAL) {
                // 病院詳細 
                s += '<p class="g_ads_texttype"><a style="color: #000; text-decoration: none;" href="' + google_info.feedback_url + '">Ads by Google</a></p>' +
                    '<dl class="g_ads_texttype">';
            } else if (this.adsType == this.ADS_SIDEBAR) {
                // サイドバー
                s += '<p class="g_ads_texttype_s"><a style="color: #000; text-decoration: none;" href="' + google_info.feedback_url + '">Ads by Google</a></p>' +
                '<dl class="g_ads_texttype_s">';
            } else if (this.adsType == this.ADS_TOP) {
                // トップ
                s += '<p class="g_ads_texttype">' +
                    '<a href="' + google_info.feedback_url + '" style="color: #000; text-decoration: none;">' +
                    'Ads by Google</a></p>' +
                    '<dl>';
            } else {
                return;
            }
            // 広告本文
            for (var i = 0 ; i < google_ads.length ; i++) {
                if (this.adsType == this.ADS_HOSPITAL) {
                    // 病院詳細
                    s += '<dt><a href="' + google_ads[i].url + '">' + google_ads[i].line1 + '</a> ' +
                        '<span><a href="' + google_ads[i].url + '">' + google_ads[i].visible_url + '</a></span></dt>' +
                        '<dd>' + google_ads[i].line2 + google_ads[i].line3 + '</dd>';
                } else if (this.adsType == this.ADS_SIDEBAR) {
                    // サイドバー
                    s += '<dt><a href="' + google_ads[i].url + '">' + google_ads[i].line1 + '</a></dt>' +
                        '<dd>' + google_ads[i].line2 + google_ads[i].line3 + '<span><br />' +
                        '<a href="' + google_ads[i].url + '">' + google_ads[i].visible_url + '</a></span></dd>';
                } else if (this.adsType == this.ADS_TOP) {
                    // トップ
                    s += '<dt><a href="' + google_ads[i].url + '">' + google_ads[i].line1 + '</a>' +
                        '<span><a href="' + google_ads[i].url + '">' + google_ads[i].visible_url + '</a></span></dt>' +
                        '<dd>' + google_ads[i].line2 + google_ads[i].line3 + '</dd>';
                }
            }
            // 広告終端部
            if (this.adsType == this.ADS_HOSPITAL) {
                // 病院詳細
                s += '</dl>';
            } else if (this.adsType == this.ADS_SIDEBAR) {
                // サイドバー
                s += '</dl>';
            } else if (this.adsType == this.ADS_TOP) {
                // トップ
                s += '</dl>';
            }
        }
        document.write(s);
        // CPCカウント
        if (google_ads[0].bidtype == 'CPC') {
        	google_adnum += google_ads.length;
        }
    },
    /**
     * Ads By Google (afs) URL
     */
    URL_AFS_BYGGL : 'https://www.google.com/adsense/support/bin/request.py?contact=afs_violation',
    AFS_ADS_BOTTOM : 4,
    AFS_ADS_MIDDLE : 3,
    AFS_ADS_SIDEBAR : 3,
    /**
     * 検索連動AdSenceリクエスト応答
     */
    afsRequestDone : function(google_ads) {
        if (google_ads.length == 0) {
            return;
        }
        // 表示した広告ユニットの数が3のとき、終了
        if (this.unitCount == 3) {
            return;
        }
        this.unitCount += 3;
        
        //
        var htmlMiddle = '', htmlBottom = '', htmlSidebar = '';
        // 出力広告数(narrow)
        var narrowCount = 0;
        for (var i = 0, adsLen = google_ads.length ; i < adsLen ; i++) {
            var adsType = google_ads[i].type;
            if (adsType == 'text/wide') {
                // wide型: すべてページ下部広告
                htmlBottom += '<dt><a href="' + google_ads[i].url + '" target="_blank">' + google_ads[i].line1 + '</a> ' +
                    '<span><a href="' + google_ads[i].url + '" target="_blank">' + google_ads[i].visible_url + '</a></span></dt>' +
                    '<dd>' + google_ads[i].line2 + '</dd>';
            } else if (adsType == 'text/narrow') {
                // 検索ページ 3件タイプ(narrow)
                if (narrowCount < this.AFS_ADS_MIDDLE) {
                    htmlMiddle += '<dl>' +
                        '<dt><a href="' + google_ads[i].url + '" target="_blank">' + google_ads[i].line1 + '</a></dt>' +
                        '<dd>' + google_ads[i].line2 + google_ads[i].line3 + '<br />' +
                        '<span><a href="' + google_ads[i].url + '" target="_blank">' + google_ads[i].visible_url + '</a></span></dd>' +
                        '</dl>';
                } else {
                    // サイドバー
                    htmlSidebar += '<dt><a href="' + google_ads[i].url + '" target="_blank">' + google_ads[i].line1 + '</a></dt>' +
                        '<dd>' + google_ads[i].line2 + google_ads[i].line3 + '<span><br />' +
                        '<a href="' + google_ads[i].url + '" target="_blank">' + google_ads[i].visible_url + '</a></span></dd>';
                }
                narrowCount++;
            }
        }
        // 広告終端部
        // ページ中央(n3)
        if (htmlMiddle != '') {
            htmlMiddle = '<p><a target="_blank" style="color: #000; text-decoration: none;" href="' +
                this.URL_AFS_BYGGL + '">Ads by Google</a></p>' +
                htmlMiddle;
        }
        // ページ下段(w4)
        if (htmlBottom != '') {
            htmlBottom = '<p class="g_ads_texttype">' +
                '<a target="_blank" style="color: #000; text-decoration: none;" href="' + this.URL_AFS_BYGGL + '">Ads by Google</a></p>' +
                '<dl class="g_ads_texttype">' +
                htmlBottom +
                '</dl>';
        }
        // サイドバー(n3)
        if (htmlSidebar != '') {
            htmlSidebar = '<p class="g_ads_texttype_s">' +
                '<a target="_blank" style="color: #000; text-decoration: none;" href="https://www.google.com/adsense/support/bin/request.py?contact=afs_violation">Ads by Google</a></p>' +
                '<dl class="g_ads_texttype_s">' +
                htmlSidebar +
                '</dl>';
        }
        // 広告出力
        if ($('ggl-afs-middle') != null && htmlMiddle != '') {
            $('ggl-afs-middle').innerHTML = htmlMiddle;
        }
        if ($('ggl-afs-bottom') != null && htmlBottom != '') {
            $('ggl-afs-bottom').innerHTML = htmlBottom;
        }
        if ($('ggl-afs-sidebar') != null && htmlSidebar != '') {
            $('ggl-afs-sidebar').innerHTML = htmlSidebar;
        }
    },
    /**
     * テスト環境のとき、trueを返す
     */
    isTestEnv : function() {
        return ! String(location.href).match(/https*:\/\/www\.qlife\.jp/);
    }
}
