//<![CDATA[
/* ====================================================================================== * 
 * Project : System House ACT JavaScript Library
 * File    : http://www.system-act.com/scripts/library.js
 * Author  : System House ACT
 * History : 1.00.00 初版 ($Rev: 44 $)
 *           $Date:: 2011-09-05 16:10:22 #$ $Author: tyamaguchi $
 *
 * Copyright 2011 System House ACT All rights reserved.
 * ====================================================================================== *
 */
// System House ACT JavaScript Library空間開始
var SystemHouseACTjsLib = {};
with (SystemHouseACTjsLib) {
with ({ local: function() { return this; } }) {
with ({ local: local(), ns: SystemHouseACTjsLib }) {

/* ====================================================================================== *
 * Library空間内private変数
 * ====================================================================================== *
 */
// Twitter用変数/定数
local.twitterTag = null;
ns.twitterUrl = 'http://twitter.com/home/';
ns.twitterId  = 'systemact';

/* -------------------------------------------------------------------------------------- *
 * オブジェクトの相対水平位置を絶対水平位置へ変換する
 *
 * 引　数 : pObjTarget ... 変換対象オブジェクト
 * 戻り値 : 絶対水平位置(px)
 * -------------------------------------------------------------------------------------- *
 */
ns.ToAbsPosX = function (pObjTarget) {
  var absPos    = pObjTarget.offsetLeft;
  var objTarget = pObjTarget;
  while (objTarget = objTarget.offsetParent) {
    if (objTarget.tagName == 'body')          break;
    absPos += objTarget.offsetLeft;
  }
  return absPos;
}

/* -------------------------------------------------------------------------------------- *
 * オブジェクトの相対垂直位置を絶対垂直位置へ変換する
 *
 * 引　数 : pObjTarget ... 変換対象オブジェクト
 * 戻り値 : 絶対垂直位置(px)
 * -------------------------------------------------------------------------------------- *
 */
ns.ToAbsPosY = function(pObjTarget) {
  var absPos    = pObjTarget.offsetTop;
  var objTarget = pObjTarget;
  while (objTarget = objTarget.offsetParent) {
    if (objTarget.tagName == 'body')          break;
    absPos    += objTarget.offsetTop;
  }
  return absPos;

}
 
/* ====================================================================================== *
 * Twitter用タグを取得する
 * ====================================================================================== *
 */
ns.GetTwitterTag = function () {
  if (twitterTag == null) {
    var nodes = document.getElementsByTagName('meta');
    for (var i = 0; i < nodes.length; i++) {
      if (nodes[i].name == 'system-act.com.twittag') {
        var tags = nodes[i].content.split(/[\s,]+/);
        twitterTag = ' ';
        for (var j = 0; j < tags.length; j++) {
          twitterTag += ('#' + tags[j] + ' ');
        }
        twitterTag = twitterTag.substr(0, twitterTag.length - 1);
        return twitterTag;
      }
    }
    twitterTag = '';
  }
  return twitterTag;
};

/* ====================================================================================== *
 * bit.lyのAPIを呼び出し、短縮URLを取得する
 * ====================================================================================== *
 */
ns.GetBitLy = function() {
  var bitlyReqURL = 'http://api.bit.ly/shorten?'
  var bitlyParm   = 'version=2.0.1&format=json'
                  + '&callback=SystemHouseACTjsLib.BitLyCallBack';
  var bitlyId     = 'systemact';
  var bitlyKey    = 'R_5e73ff5e89ab2b3828ecda645fdb9eea';

  var apiURL     = bitlyReqURL + bitlyParm + '&login=' + bitlyId + '&apiKey=' + bitlyKey; 
  var elmScript  = document.createElement('script');
  elmScript.type = 'text/javascript';
  elmScript.src  = apiURL + '&longUrl=' + encodeURIComponent(location.href);
  document.body.appendChild(elmScript);
};

/* ====================================================================================== *
 * bit.lyからのコールバック関数
 *   引数 : json ... JSONオブジェクト
 * ====================================================================================== *
 */
ns.BitLyCallBack = function(json) {
  var bitlyURL = json.results[location.href]['shortUrl'];
  var twitterHref = (bitlyURL.indexOf('//bit.ly/') == -1 ? location.href : bitlyURL);
  var twitterTitle = encodeURIComponent(document.title);
  var twitterTag = encodeURIComponent(GetTwitterTag());
  
  location.href = twitterUrl + '?status=RT+%40' + twitterId
                + '+' + twitterTitle + '+' + twitterHref + twitterTag;
};

// System House ACT JavaScript Library空間終了
}}}
//]]>
