document.write('<script language="javascript" type="text/javascript" src="include/base64.js"></script>');
document.write('<script language="javascript" type="text/javascript" src="include/prototype-1.6.0.3.js"></script>');
document.write('<script language="javascript" type="text/javascript" src="include/twitterapi_0.9.2ap.js"></script>');
//-----------------------------------------------------------
//-----------------------------------------------------------
var app = (document);
var moviename = "";
var latestQuery = ""; // 扱った最新のQuery

//-----------------------------------------------------------
function init(_moviename) {
  moviename = _moviename;
}

//-----------------------------------------------------------
function getUserDataFromApi(urlBaseStr, cmdStr, paramStr) {
  TwitterAPI.getDM(urlBaseStr, cmdStr, jsonpCallbackFunc, paramStr);
}
//-----------------------------------------------------------
function onTwitterButton() {
	_tweetStr = window.document.getElementById("iTextArea").value;
	_tweetStr = _tweetStr.slice(0, 140);	// 140文字
	_tweetStr = encodeURI(_tweetStr); // 文字化け防止(必須)
	window.open("http://twitter.com/home?status="+_tweetStr, null);
}
//-----------------------------------------------------------
function twTweet(_userName, _count) {
  if (arguments.length == 1) _count = 20;
  latestQuery = _userName;
  getUserDataFromApi("http://twitter.com/", "statuses/user_timeline", "id=" + _userName + "&count=" + _count);
}
//-----------------------------------------------------------
function twSearch(_searchWord,_count) {
  if (arguments.length == 1) _count = 20;
//  _searchWord =  escapeHTML(_searchWord);
  _searchWord = encodeURI(_searchWord); 
  latestQuery = _searchWord;
  getUserDataFromApi("http://search.twitter.com/", "search", "q=" + _searchWord + "&rpp=" + _count);
}

//-----------------------------------------------------------
function jsonpCallbackFunc(jsonObj) {
  if ((jsonObj.results != null) && (jsonObj.results != undefined)) {
    jsonObj = jsonObj.results;
    appendData(jsonObj,latestQuery);
//dispJsonObj(jsonObj);
  }
  var jsonStr = jsonObj.toJSON();
//  jsonStr = jsonStr.unescapeHTML(); // &gt; -> >に直す(prototype.js使用)
  jsonStr = encodeURI(jsonStr); // 文字化け防止で一応エンコードしておく
//  window.document.getElementById("iTextArea").value = jsonStr;
  //dispJson(jsonStr);
  thisMovie(moviename).fromJsToSwf(jsonStr);
}
//-----------------------------------------------------------
// すべてのデータにクエリのデータを付加(jsonObjOne.tm_query)
//-----------------------------------------------------------
function appendData(jsonObj,queryStr) {
  for (var jj in jsonObj) {
    jsonObj[jj].tm_query = queryStr;
  }
}

//-----------------------------------------------------------
function dispJson(jsonStr) {
  dispJsonObj(jsonStr.evalJSON());
}
//-----------------------------------------------------------
function dispJsonObj(jsonObj) {
  var outStr = "";
//  for (var ii = 0; ii < jsonObj.length; ++ii) {
  for (var jj in jsonObj) {
    outStr += sepalate(jsonObj[jj]) + "\n";
  }
  alert(outStr);
//  window.document.getElementById("iTextArea").value = outStr;
}
//-----------------------------------------------------------
function sepalate(iObj, tree) {
  if (arguments.length == 1) tree = 0;
  outStr = "";
  for (var jj in iObj) {
    if (typeof iObj[jj] == "object") {
      outStr += tree + ":[" + jj + "]>" + sepalate(iObj[jj], tree + 1);
    } else {
      outStr += tree + ":[" + jj + "]" + iObj[jj] + "\n";
    }
  }
  return (outStr);
}
//-----------------------------------------------------------
function setCookie(key, val) {
  document.cookie = key + "=" + escape(val) + "; expires=Tue, 31-Dec-2019 23:59:59; ";
}
//-----------------------------------------------------------
function getCookie(key) {
  retStr = "";
  key2Str = key + "=";
  cookieArr = document.cookie.split("; ");
  for (ii = 0; ii < cookieArr.length; ++ii) {
    valPos = cookieArr[ii].indexOf(key2Str);
    if (valPos >= 0) {
      retStr = unescape(cookieArr[ii].substring(valPos + key2Str.length));
      break;
    }
  }
  return retStr;
}
//-----------------------------------------------------------
function clearCookie(key) {
  document.cookie = key + "=" + "''; expires=Tue, 1-Jan-1980 00:00:00;";
}
//--------------------------------
function thisMovie(movieName) {
  if (navigator.appName.indexOf("Microsoft") != -1) {
    return window[movieName];
  } else {
    return document[movieName];
  }
}
//--------------------------------
function fromSwfToJs(_twMessId) {  // twMessId:"2010-10-11" http://search.twitter.com/advanced
  var paramStr = (_twMessId == "") ? ("&count=5&since_id=" + _twMessId) : "&count=5";
//  alert("toJavascript" + "q=" + encodeURI("name") + paramStr);
  getUserDataFromApi("http://twitter.com/", "statuses/user_timeline", "id=" + encodeURI("userName") + paramStr);
}
//--------------------------------
function toJavascriptDispText(textStr) {
  app.iForm.iTextArea.value = textStr;
}
//--------------------------------
function escapeHTML(str) {
  return str.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
}
//--------------------------------
function retrieveGETqs() {
  var qArr = new Array();
  var query = window.location.search.substring(1);
  var parms = query.split('&');
  for (var i=0; i<parms.length; i++) {
    var pos = parms[i].indexOf('=');
    if (pos > 0) {
      var key = parms[i].substring(0,pos);
      var val = parms[i].substring(pos+1);
      qArr[key] = val;
    }
  }
  return qArr;
}
//--------------------------------

