// MachikuruSummary.js
// $Id: MachikuruSummary.js 8 2007-12-16 03:32:24Z kay $
// 

// 名前空間
// ==================================================================
var MachikuruSummary = new Object();


// カスタマイズ用変数
// ==================================================================
// 

// データファイルのURL。
location.href.match("([^:]+://[^/]+)/");
var baseUrl = RegExp.$1;
MachikuruSummary.dataURL   = baseUrl + '/__machikuru__/summary.js';

// 生成したイベント情報のHTMLを挿入するDIV要素のid。
MachikuruSummary.divElemID = 'machikuruEventInfo';


// MachikuruSummary.makeEventInfoHTML(data)
// ==================================================================
// サーバから返されたデータを基にHTMLを生成する。
//
// *** 生成するHTMLをカスタマイズする場合はこの関数の中身を直接
// *** 編集してください。
MachikuruSummary.makeEventInfoHTML = function (data) {
  var photo    = data.event_photo;    // 要データチェック & 例外処理
  var articles = data.event_articles; //

  var html = '';

  // 写真
  if (photo) {
    html += '<a href="'+photo.href+'" onclick="'+photo.onclick+'">';
    html += '<div align="center"><img src="'+photo.src+'"></a></div>';
    html += '<div align="center" style="font-size:10px; color:#808080;">'+photo.caption+'</div>';
  }
  
  // 記事のリスト
  if (articles && articles.length) {
    var len = articles.length;
    
    html += '<ul class="ulEvent">';
    
    for (var i = 0; i < len; ++i) {
      var article = articles[i];
      
      html += '<li><a target="_blank" href="'+article.href+'" onclick="'+article.onclick+'">'+article.title+'</a>';

      //	if (article.has_photo) {
      //	html += ' (上の写真)'
      //	}
    }
    
    html += '</ul>';
  }
  
  return html;
}


// MachikuruSummary.onXHRComplete(XHRObj)
// ==================================================================
// XHRが完了時に実行されるコールバック関数
//
MachikuruSummary.onXHRComplete = function (XHRObj) {
  var text  = XHRObj.responseText;
  var obj = null;

  try {
    var data = eval('('+text+')');
    var html = MachikuruSummary.makeEventInfoHTML(data);
    
    $(MachikuruSummary.divElemID).innerHTML = html;

  } catch (e) {
    MachikuruSummary.log(e);
  }
}

// MachikuruSummary.onXHRFailure(XHRObj)
// ==================================================================
// XHRが失敗時に実行されるコールバック関数
//
MachikuruSummary.onXHRFailure = function (XHRObj) {
  MachikuruSummary.log("XML HTTP Request failed!");
}

// MachikuruSummary.log(msg)
// ==================================================================
// デバッグ用ユーティリティ
//
MachikuruSummary.log = function (msg) {
  MachikuruSummary.lastLog = msg;
  if (console && typeof(console.log) == 'function') {
    console.log(msg);
  }
}



MachikuruSummary.opt = {
 method:		'get',
 onComplete:	MachikuruSummary.onXHRComplete,
 onFailure:	    MachikuruSummary.onXHRFailure,
 asynchronous:	true,
 requestHeaders: {"If-Modified-Since": "Thu, 01 Jun 1970 00:00:00 GMT"}
}

Event.observe(window, 'load', function () {
  new Ajax.Request(MachikuruSummary.dataURL, MachikuruSummary.opt);
})

