var sourcePrefix = (location && location.hostname && !location.hostname.match(/\.ap\.teacup\.com/)) ? '_test' : '';

/* GrokCustom: 媒体に応じたカスタマイズを設定するオブジェクト
*  下記の項目をカスタマイズ
*    mainAdMax: int(メインカラム広告表示件数)
*    sideAdMax: int(サイドカラム広告表示件数)
*    codec: str(メディアの文字コード)
*    srcCodec: str(メディアの文字コード)
*    grokConfig: str(grokコンフィグ)
*    grokSource: str(grokソース)
*    defaultCtxtId: Array(デフォルトgrok広告のctxtid)
*    defaultCat: Array(ctxtCat)
*    defaultSource: str(overtureコンフィグ)
*    defaultConfig: str(overtureソース)
*    getTargetText: function(){解析対象のテキストを抽出する関数}
*    showAds: function(){広告を整形、表示する関数}
*    adTimeOut: function(){広告取得タイムアウト時の処理}
*    ngAds: function(){NGフィルタにかかった場合呼ばれる関数}
*/
var GrokCustom = {
  mainAdMax: 2,
  sideAdMax: 2,
  startIndex: 6,
  adDataSize: 6,
  getMaxAdCount: function(){
    return GrokCustom.mainAdMax + GrokCustom.sideAdMax;
  },
  codec: 'shiftjis',
  srcCodec: 'Shift_JIS',
  grokSource: 'gmo_jp_autopage_cm_kw_kz'+sourcePrefix,
  grokConfig: '1150051725',
  defaultCtxtId: ['sensi001', 'sensi002', 'sensi003', 'sensi004'],
  defaultCat: ['default_fashion', 'default_education', 'default_finance', 'default_travel'],
  defaultSource: 'gmo_jp_auto_cat_ctxt'+sourcePrefix,
  defaultConfig: '6745342506',
  getTargetText: function(){
    var entryTitle = '';
    var entryBody = '';
    //GrokUtil.getElementsByClassNameはクラス名からDOMを取得するユーティリティ関数
    var titles = GrokUtil.getElementsByClassName('posttitle');
    var bodies = GrokUtil.getElementsByClassName('postbody');
    if (titles.length > 0) {
      entryTitle = GrokUtil.plainText(titles[0]);
    }
    if (bodies.length > 0) {
      entryBody = GrokUtil.plainText(bodies[0]);
    }
    var targetText = entryTitle + ' ' + entryBody;
    return targetText;
  },
  // 広告データ取得後にコールされる関数
  showAds: function(adData){
    // adData で zSr を受け取り、mainカラムとsideカラムに振り分け
    var adLength = adData.length ? Math.floor((adData.length - GrokCustom.startIndex) / GrokCustom.adDataSize) : 0;
    var mainAdLength = Math.min(GrokCustom.mainAdMax, adLength);
    var sideAdLength = Math.min(GrokCustom.sideAdMax, adLength - mainAdLength);

    var i = 0;
    // mainカラム広告データ
    var mainAdData;
    if (mainAdLength) {
      mainAdData = [];
      while (mainAdLength--) {
        mainAdData.push(new CMAd(adData, i++));
      }
    }
    // sideカラム広告データ
    var sideAdData;
    if (sideAdLength) {
      sideAdData = [];
      while (sideAdLength--) {
        sideAdData.push(new CMAd(adData, i++));
      }
    }

    // mainカラムの広告表示
    var mainAdFrame = document.getElementById('sponsored2');
    if (mainAdFrame && mainAdFrame.tagName=='DIV') {
      var mainAdContainer = mainAdFrame.parentNode;
      if (mainAdData) {
        var adtag = '';
        for (var i = 0; i < mainAdData.length; i++) {
          adtag += mainAdData[i].toString();
        }
        adtag += CMAd.sponsoredLink();
        mainAdFrame.innerHTML = adtag;
      } else {
        // mainAdDataが undefined の場合は広告エリアを非表示
        mainAdContainer.style.display='none';
      }
    }

    // sideカラムの広告表示
    var sideAdFrame = document.getElementById('sponsored');
    if (sideAdFrame && sideAdFrame.tagName=='DIV') {
      var sideAdContainer = sideAdFrame.parentNode;
      if (sideAdData) {
        var adtag = '';
        for (var i = 0; i < sideAdData.length; i++) {
          adtag += sideAdData[i].toString();
        }
        adtag += CMAd.sponsoredLink();
        sideAdFrame.innerHTML = adtag;
      } else {
        // sideAdDataが undefined の場合は広告エリアを非表示
        sideAdContainer.style.display='none';
      }
    }
  },
  adTimeOut: function(){
    CMAd.altads = 1;
    GrokCustom.showAds([
      '', '', '', '', '', ''
      , '様々なスタイルに合わせたサービスを提供中', '', 'http://www.teacup.com/', '初心者向けインターネットサービス', 'www.teacup.com', ''
      , '初心者のためのネットショップサービス', '', 'http://shop1.teacup.com/mall/', '商才発揮！モール付きレンタルショップ', 'shop1.teacup.com/mall/', ''
    ]);
  },
  ngAds: function(){
    GROK.ovrAd();
  }
};

function CMAd(adData, n) {
  n = n * GrokCustom.adDataSize + GrokCustom.startIndex;
  this.descr    = adData[n+0];
  this.clickURL = adData[n+2];
  this.title    = adData[n+3];
  this.sitehost = adData[n+4];
}
CMAd.prototype.toString = function(){
  return '<div style="cursor:pointer; margin-bottom:6px;"'
       + ' onMouseOver="status=\''+this.sitehost+'\';return true;"'
       + ' onMouseOut="status=\'\';return true"'
       + ' onClick="window.open(\''+this.clickURL+'\')"'
       + '>'
       + '<b><a href="#" onClick="return false;">'+this.title+'</a></b><br>'+this.descr+'<br>'
       + '<span style="font:10px monospace;">'+this.sitehost+'</span>'
       + '</div>'
}
CMAd.altads = 0;
CMAd.sponsoredLink = function(){
  return CMAd.altads
         ? '<div align="right"><a href="http://www.teacup.com/" target="_blank">teacup.サービス</a></div>'
         : '<div align="right"><a href="http://www.overture.co.jp/" target="_blank">スポンサーサイト</a></div>'
         ;
}


