// Namespace
if(typeof(JBPRESSns)=='undefined'){
 var JBPRESSns={
  util:{},      // Other Utility Function
  cls:{},       // Class
  show:{},      // Element show Function
  mv:{},        // Element move Function
  cb:{},        // Callback Function
  eom:null      // End Mark
 };
}

// シンプルタブグループ
JBPRESSns.cls.simpleTabGroup = Class.create(ISMEDIAns.cls.tabGroup,{
 initialize: function($super,options){
  $super(options);
  this.activeClass = this.options['activeClass'] || 'active';
  this.inactiveClass = this.options['inactiveClass'] || 'inactive';
  // ナビゲーション背景情報
  this.naviContainer = this.options['naviContainer'] || 'navi-menu';
  this.activating = function(){
   for (var i=1; i<=this.count; i++){
    if (i==this.activeid) {
     $(this.tab + i ).className = this.activeClass;
    } else {
     $(this.tab + i ).className = this.inactiveClass;
    }
   }
  };
 },
 eom:null
});

// ポップアップウインドウのキーワード関連記事検索
JBPRESSns.cb.popup = function(_data){
 var html = '';
 var work = '';
 var title = '';
 var anchortitle = '';
 if (_data.length != 0) {
  _data.each(function(a){
   // Title整形
   work = a.title + '　' + a.subtitle;
   work = work.replace(/<\/?[^>]+>/gi,'');
   anchortitle = work;
   title = (work.length>14) ? work.substring(0,13)+'&hellip;' : work;
   html += '\n<li><a href="' + a.url + '" title="' + anchortitle + '">' + title + '<\/a><\/li>';
  });
 }
 return (html != '') ? html : '<li>検索結果なし<\/li>';
};
// ポップアップウインドウのキーワードWiki検索
JBPRESSns.cb.popupWiki = function(_data){
  var html = '';
  if ((_data != null)&&(_data.length != 0)) {
    html = '<h5>用語<br \/><span style="font-size:9px;">出典: フリー百科事典『ウィキペディア』<\/span><\/h5>\n<ul>';
    _data.each(function(a){
      html += '<li><a href="';
      html += a.url;
      html += '" title="' + a.body.stripTags();
      html += '" target="_blank">' + a.title;
      html += '<\/a><\/li>\n';
    });
    html += '<\/ul>';
  }
  return html;
};
// 記事中キーワード
JBPRESSns.show.popupBalloon = function(event){
 var o = Event.element(event);
 var w = o.innerHTML;
 var posX = Position.cumulativeOffset(o)[0];       // popupエレメントのX位置
 var posY = Position.cumulativeOffset(o)[1];       // popupエレメントのY位置
 var backport = ((document.compatMode != 'CSS1Compat')||(document.documentMode == 7)) ? true : false;
 var offsetTop = (backport) ? o.offsetTop + $('main-contents').offsetTop : o.offsetTop;
 if(navigator.userAgent.match(/AppleWebKit\/\d.+Safari\/\d.+/)){
  offsetTop = o.offsetTop + $('main-contents').offsetTop;
 }

 var offsetLeft = (backport) ? o.offsetLeft + 50 : o.offsetLeft;
 offsetLeft = (offsetLeft<450) ? offsetLeft + 10 : 450;
 var p = $('popup-win');
 var html = '';
 html += '<div id="popup-win-title">';
 html += '<img src="/common/images/v1/articlenav/closex.gif" alt="close" onclick="JBPRESSns.show.popupPuff();" /><\/div>\n';
 html += '<div id="popup-win-body-wrapper"><div id="popup-win-body">\n';
 html += '<h5><span class="searchword">';
 html += '[<a href="http://jbpress.ismedia.jp/search/word/' + encodeURIComponent(w) + '" target="_blank">';
 html += w +'<\/a>]<\/span>の関連記事<\/h5>\n<ul id="popup-win-result">';
 html += '\n<li><img src="http://jbpress.ismedia.jp/common/images/v1/loading.gif" alt="loading" \/><\/li>';
 html += '\n<\/ul>\n' + '<span class="more">';
 html += '<a href="http://jbpress.ismedia.jp/search/word/' + encodeURIComponent(w) + '" target="_blank">';
 html += '&raquo;MORE<\/a><\/span><br clear="all" />\n';
 html += '<div id="popup-win-wikiresult"><\/div>';
 html += '<\/div><\/div>';
 p.innerHTML = html;
 Element.setStyle(p,{
  zIndex:'1000',
  top: offsetTop + 20 + 'px',
  left: offsetLeft + 'px',
  display: 'block'
 });
 p.setOpacity(0.0);
 new Effect.Opacity(p,{from:0.0,to:1.0,duration:0.5});
 Event.observe(document,'click',JBPRESSns.show.popupPuff);
 try{
  JBPRESSns.cb.popup['exe'] = function(_data){
   $('popup-win-result').innerHTML = JBPRESSns.cb.popup(_data);
   try{
    JBPRESSns.cb.popup['tag'].remove();
    delete JBPRESSns.cb.popup['tag'];
    delete JBPRESSns.cb.popup['exe'];
   }catch(e){}
  };
  JBPRESSns.cb.popup['tag'] = new ISMEDIAns.util.jsonScript('keyword','JBPRESSns["cb"]["popup"]["exe"]',w);
  JBPRESSns.cb.popupWiki['exe'] = function(_data){
   $('popup-win-wikiresult').innerHTML = JBPRESSns.cb.popupWiki(_data);
   try{
    JBPRESSns.cb.popupWiki['tag'].remove();
    delete JBPRESSns.cb.popupWiki['tag'];
    delete JBPRESSns.cb.popupWiki['exe'];
   }catch(e){}
  };
  var wikiurl = 'http://wikipedia.simpleapi.net/api?keyword=' + encodeURIComponent(w) + '&output=json&callback=JBPRESSns.cb.popupWiki.exe';
  JBPRESSns.cb.popupWiki['tag'] = new ISMEDIAns.util.outerScript(wikiurl);
 }catch(e){}
 Event.stop(event);
};

// ポップアップの非表示とドキュメントクリックイベントのアンバインド
JBPRESSns.show.popupPuff = function(){
 $('popup-win').hide();
 Event.stopObserving(document,'click',JBPRESSns.show.popupPuff);
};

//ブックマーク
function BMdelicious(_url,_title){ISMEDIAns.util.bm.delicious(_url,_title);}
function BMdigg(_url,_title){ISMEDIAns.util.bm.digg(_url,_title);}
function BMhatena(_url,_title){ISMEDIAns.util.bm.hatena(_url,_title);}
function BMnewsing(_url,_title){ISMEDIAns.util.bm.newsing(_url,_title);}
function BMyahoo(_url,_title){ISMEDIAns.util.bm.yahoo(_url,_title);}
function BMgoo(_url,_title){ISMEDIAns.util.bm.goo(_url,_title);}
function BMlivedoor(_url,_title){ISMEDIAns.util.bm.livedoor(_url,_title);}
function BMfurl(_url,_title){ISMEDIAns.util.bm.furl(_url,_title);}
function BMstumbleupon(_url,_title){ISMEDIAns.util.bm.stumbleupon(_url,_title);}
function BMgoogle(){ISMEDIAns.util.bm.google();}
function BMgoogleR(){ISMEDIAns.util.bm.googleR();}
function BMfriendfeed(_url,_title){ISMEDIAns.util.bm.friendfeed(_url,_title);}
function BMmixi(_url,_key){ISMEDIAns.util.bm.mixi(_url,_key);}

//スタイルシート切り替えと印刷用ページ
function setActiveStyleSheet(title){ISMEDIAns.util.setFontStyleSheet(title);}
function printWindow(url,w,h){ISMEDIAns.util.openWindow(url,w,h);}

// TOPフューチャー
JBPRESSns.util.featureBackground = function(event){
 try{
  var o = Event.element(event);
  if (o.tagName.toLowerCase() != 'li') {
   o = o.parentNode;
   if (o.tagName.toLowerCase() != 'li') {
    o = o.parentNode;
    if (o.tagName.toLowerCase() != 'li') {
     o = o.parentNode;
     if (o.tagName.toLowerCase() != 'li') {
      o = o.parentNode;
     }
    }
   }
  }
  var lo = $$('#feature ul li');
  for(var i=0;i<lo.length;i++){
   lo[i].className = '';
  }
  o.className='current';
  var ig = o.getElementsByTagName('img')[0];
  var igsrc = 'url(' + ig.src + ')';
  if (igsrc != $('feature-background').style.backgroundImage ){
   new Effect.Fade('feature-background',{from:1.0,to:0.0,duration:0.1,
    afterFinishInternal:function(effect){
     $('feature-background').style.backgroundImage = igsrc;
     new Effect.Appear('feature-background',{from:0.0,to:1.0,duration:0.1});
    }
   });
  }
  Event.stop(event);
 }catch(e){}
};

// TOPアイコンリバース
JBPRESSns.util.grayIcon = function(event){
 try{
 var o = Event.element(event);
 if (o.tagName.toLowerCase() != 'li') {
  o = o.parentNode;
  if (o.tagName.toLowerCase() != 'li') {
   o = o.parentNode;
   if (o.tagName.toLowerCase() != 'li') {
    o = o.parentNode;
   }
  }
 }
 var ig = o.getElementsByTagName('img')[0];
 var igsrc = ig.src;
 if (igsrc.match('mwimgs')){
  if (event.type=='mouseover'){
   igsrc = igsrc.replace('/40g/','/40/');
   ig.src = igsrc;
  } else if (event.type=='mouseout'){
   igsrc = igsrc.replace('/40/','/40g/');
   ig.src = igsrc;
  }
 }
 }catch(e){}
};

JBPRESSns.cls.lastBalloon = Class.create({
 // 初期化(対象エレメント,{height:表示後の高さ,just:表示基準の百分率})
 initialize: function(element,options){
  this.options = options||{};	// 引数
  this.element = $(element);	// 吹き出しエレメント
  this.showHeight = this.options['height'];	// 表示後の高さ
  this.just = this.options['just'];	// 表示する基準
  this.posY = Position.cumulativeOffset(this.element)[1];	// 吹き出しエレメントの位置
  this.cover = document[('CSS1Compat' == document.compatMode) ? 'documentElement' : 'body']; //　座標取得の為のオブジェクト確認
  this.eventAppear = this.appear.bindAsEventListener(this);	// イベント
  Event.observe(window,'scroll',this.eventAppear);	// スクロールイベント
  this.appear();
 },
 // スクロール位置
 scrollY: function(){return this.cover.scrollTop || window.pageYOffset;},
 // 現在表示領域の百分率
 scaler: function(){return ((this.posY - this.scrollY()) / this.cover.clientHeight) * 100;},
 // バルーン表示
 appear:function(event){
  if (this.scaler() < this.just){
   this.fix();
   this.element.style.display = 'none';
   this.element.style.visibility='visible';
   this.element.style.height = this.showHeight;
   Effect.BlindDown(this.element,{delay:0,duration:3});
  }
 },
 // 表示後処理
 fix: function(){
  Event.stopObserving(window,'scroll',this.eventAppear);
  this.element.style.position='relative';	// Chrome対応
 },
 eom:null
});

//TOPコメントリスト
//JBPRESSns.cb.topCommentList = function(_data){
// var html = '';
// if(_data.length != 0) {
//  for(var i=0;i<5;i++){
//   html += '<h4><a href="' + _data[i].ref_url + '">' + _data[i].title + '<\/a>';
//   html += '&nbsp;(<a href="' + _data[i].user_page + '" target="_blank">' + _data[i].nickname + '<\/a>)<\/h4>\n';
//  }
// }
// return html;
//};

// AFPBB連携
var blogEntries = function(_pack){
 var html = '';
 if ($('trackbacklist') != undefined) {
  if (_pack.entries.length>0){
   var _data = _pack.entries;
   var title = '';
   var beforetitle = '';
   for (var i=0;i<5;i++){
    title = _data[i].entry_full;
    if (title.length > 20){
        title = title.substring(0,20) + '&hellip;';
    }
    html += '<h4><a href="' + _data[i].link + '" target="_blank">' + title + '<\/a><\/h4>';
   }
   $('trackbacklist').innerHTML = html;
  }
 }
 if (($('trackbackfulllist') != undefined)&&(_pack.list_href != undefined)) {
  var fullhtml = '';
  if (_pack.entries.length>0){
   for (var i=0;i<_pack.entries.length;i++){
    var _data = _pack.entries;
    fullhtml += '<li class="clearfix">\n';
    fullhtml += '<img src="' + _data[i].provider_logo_src + '" alt="' + _data[i].provider + '" \/>';
    fullhtml += '<a href="' + _data[i].link + '" title="' + _data[i].blog_full + '">' + _data[i].entry_full + '<\/a>\n';
    fullhtml += '<\/li>\n';
   }
   fullhtml += '<li class="clearfix"><a style="float:right;text-align:right;" href="' + _pack.list_href + '" target="_blank">&raquo;MORE<\/a><\/li>\n';
   $('trackbackfulllist').innerHTML = fullhtml;
   $('trackback').style.display = 'block';
   new Effect.SlideDown('trackbackfulllist');
  }
 }
 try{
  ISMEDIAns.util.outerScript['tag'].remove();
 }catch(e){}
};

// Read Cookie
JBPRESSns.util.rCookie = function(_name) {
 var neq = _name + '=';
 var ca = document.cookie.split(';');
 for(var i=0; i<ca.length; i++) {
  var c = ca[i];
  while (c.charAt(0)==' ') { c = c.substring(1,c.length); }
  if (c.indexOf(neq) == 0) { return c.substring(neq.length,c.length); }
 }
 return null;
}
// Write Cookie
JBPRESSns.util.wCookie = function(_name,_value,_expire) {
 var d = new Date()
 d.setTime(d.getTime()+_expire);
 var expires = '; expires=' + d.toGMTString();
 var domain = '; domain=' + location.hostname;
 document.cookie = _name + '=' + _value  + expires + domain + '; path=/';
}

Event.observe(window,'load',function(e){
 (function(){
  ISMEDIAns.util.initFontStyle();

  // 記事用サイトナビゲーションタブ切替
  if ($('sitenavi-menu1') != undefined){
   if(typeof(JBPRESSns.util.sitenavi)=='undefined'){
    JBPRESSns.util.sitenavi = {};
   }
   var Sns = JBPRESSns.util.sitenavi;
   Sns.menu = new JBPRESSns.cls.simpleTabGroup({
    tab:'sitenavi-menu',
    detailsuffix:'-box',
    count:7,
    activeClass:'reverse',
    inactiveClass:'normal',
    naviContainer:'navi-menu',
    useContinue:false
   });

   // サイトナビゲーションデフォルト値
   Sns.defaultMenuIndex = 0;
   if ($('sitenavi-menu1').className == 'reverse') {Sns.defaultMenuIndex = 1;}
   if ($('sitenavi-menu2').className == 'reverse') {Sns.defaultMenuIndex = 2;}
   if ($('sitenavi-menu3').className == 'reverse') {Sns.defaultMenuIndex = 3;}
   if ($('sitenavi-menu4').className == 'reverse') {Sns.defaultMenuIndex = 4;}
   if ($('sitenavi-menu5').className == 'reverse') {Sns.defaultMenuIndex = 5;}
   if ($('sitenavi-menu6').className == 'reverse') {Sns.defaultMenuIndex = 6;}
   if ($('sitenavi-menu7').className == 'reverse') {Sns.defaultMenuIndex = 7;}
//   if ($('sitenavi-menu8').className == 'reverse') {Sns.defaultMenuIndex = 8;}
//   if ($('sitenavi-menu9').className == 'reverse') {Sns.defaultMenuIndex = 9;}

   // サイトナビゲーションデフォルトリバース
   Sns.setDefaultMenu = function(event){
    var checkINmenu = function(n,navi){
     var node = n;
     while(node&&node!=navi) node = node.parentNode;
     return Boolean(node);
    }
    var navi = $('navi-menu');
    try{
     var r = event.relatedTarget || event.toElement;
     if (!checkINmenu(r,navi)) {
      if (Sns.defaultMenuIndex != 0) {
       Sns.menu.activate(Sns.defaultMenuIndex)();
      } else {
       Sns.menu.activate(1)();
       $('sitenavi-menu1').className = 'normal';
      }
     }
    }catch(err){
     if (Sns.defaultMenuIndex != 0) {
      Sns.menu.activate(Sns.defaultMenuIndex)();
     } else {
      Sns.menu.activate(1)();
      $('sitenavi-menu1').className = 'normal';
     }
    }
   }

   Sns.menuTask = null;
   Sns.sensitivity = 100;
   Event.observe('navi-menu','mouseout',function(e){Sns.menuTask = Sns.setDefaultMenu.later(Sns.sensitivity)(e);},true);
   Event.observe('navi-menu','mouseover',function(e){try{Sns.menuTask.cancel();}catch(err){}},true);
  }

  // TOPフューチャー背景
  if ($('feature') != undefined) {
   var lo = $$('#feature ul li');
   for(var i=0;i<lo.length;i++){
    Event.observe(lo[i],'mouseover',function(event){
     JBPRESSns.util.featureBackgroundTask = JBPRESSns.util.featureBackground.later(200)(event);
    },false);
    Event.observe(lo[i],'mouseout',function(event){
     try{JBPRESSns.util.featureBackgroundTask.cancel();}catch(e){}
    },false);
   }
  }

  // TOPページアイコンリバース
  if ($('latest') != undefined) {
   var lo = $$('#latest ul li');
   for(var i=0;i<lo.length;i++){
    Event.observe(lo[i],'mouseover',function(event){JBPRESSns.util.grayIcon(event);},false);
    Event.observe(lo[i],'mouseout',function(event){JBPRESSns.util.grayIcon(event);},false);
   }
  }

  // TOPページコメントリスト
//  if ($('commentlist') != undefined){
//   try{
//    JBPRESSns.cb.topCommentList['exe'] = function(_data){
//     try{
//      $('commentlist').innerHTML = JBPRESSns.cb.topCommentList(_data.feedbacks);
//      JBPRESSns.cb.topCommentList['tag'].remove();
//     }catch(e){}
//    }
//    JBPRESSns.cb.topCommentList['tag'] = new ISMEDIAns.util.jsonScript('feedbacks_all','JBPRESSns["cb"]["topCommentList"]["exe"]','');
//   }catch(e){}
//  }

  // TOPページトラックバックリスト
  if ($('trackbacklist') != undefined){
   try{
    ISMEDIAns.util.outerScript['tag'] = new ISMEDIAns.util.outerScript('http://jss.afpbb.com/mbsv/all_entry_parts/jbpress/jbpress.php');
   }catch(e){}
  }
  
  // サブコンテンツのタブ切替
  if ($('SCtab1') != undefined){
   new ISMEDIAns.cls.simpleTabGrouping({
    tab:'SCtab',
    detail:'SC',
    count:2,
    activeid:1,
    bgImagePathPrefix:'/common/images/v3/common/SCtab',
    bgImagePathJoint:'-'
   });
  }

  // 記事末尾バルーン表示
  // 2011.02.15 temporary inactivity
  // if (($('article-end') != undefined)&&($('sub-column') != undefined)){
  //  var h = Position.cumulativeOffset($('article-end'))[1];
  //  $('sub-column').style.height = h+300+'px';
  //  new JBPRESSns.cls.lastBalloon('article-end',{height:'auto',just:80});
  // }

  // 記事中キーワードポップアップ表示
  if ($('popup-win') != undefined){
   var w = $$('span.popup-word');
   for(var i=0; i<w.length; i++){
    // スタイル設定
    w[i].style.borderBottom = 'dotted 1px brown'
    w[i].style.cursor = 'pointer'
    Event.observe(w[i],'click',function(event){
     JBPRESSns.show.popupBalloon(event);
    },true);
   }
  }

 })(); 
},true);

