//****************************************
//		addEventListener
//****************************************
var dom = new Object;dom.event = new Object;
dom.event.addEventListener = function(elm,type,func,useCapture){
    if(! elm){return false;}
    if(! useCapture){
    useCapture = false;}
    if(elm.addEventListener){
        elm.addEventListener(type,func,false);
    }else if(elm.attachEvent){
        elm.attachEvent("on"+type,func);
        }else{
            return false;
            }
        return true;
};

dom.event.removeEventListener = function(elm,type,func,useCapture){
    if(! elm){return false;}
    if(! useCapture){
    useCapture = false();
    }
    if(elm.removeEventListener){
        elm.removeEventListener(type,func,false);
    }else if(elm.datachEvent){
        elm.datachEvent("on"+type,func);
        }else{
            return false;
            }
        return true;
};

dom.event.stopPropagation = function(evt){
    if(evt && evt.stopPropagation){
    evt.stopPropagation();
    }else if(window.event){
        window.event.cancelBubble = true;
    }
}

//****************************************
//		XMLHttpRequest
//****************************************

// 非同期でリクエスト
function sendRequest( url, callback, method, data ){
  // XMLHttpRequestオブジェクト生成
  var req = createXMLHTTP();
  if( !req ){ return; }
  // レスポンスデータ受信時に呼び出すイベントハンドラ
  req.onreadystatechange = function(){
    getResponse( req, callback );
  }
  // GETメソッドの場合はURLの後にクエリパラメータをつける
  if(method.toUpperCase() == 'GET' && data.length > 0){
    url += '?'+ data;
    data = '';
  }
  // 指定したURLに接続
  req.open( method, url, true );
  // POSTデータ用ヘッダ
  req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
  // HTTPリクエストを送信
  req.send( data );
}
// XMLHttpRequestオブジェクト生成
function createXMLHTTP(){
  if( window.XMLHttpRequest ){ // IE以外
    return new XMLHttpRequest();
  }
  else if( window.ActiveXObject ){ // IE用(バージョンにより異なる)
    try {
      return new ActiveXObject("MSXML2.XMLHTTP");
    }
    catch (e) {
      try {
        return new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch(e2) {
        return null;
      }
    }
  }
  return null
}
// レスポンスデータ受信
function getResponse( req, callback ){
  if( req.readyState == 4 ){ // 受信完了
    // 指定されたコールバック関数を呼ぶ
    if( req.responseText ){
      callback(req);
    }
  }
}

//****************************************
//		Load Event
//****************************************
dom.event.addEventListener(window,"load",function(){
	//prettyPrint();
	if(document.getElementsByTagName("code")){
		contente();
	}
	if(document.getElementById("relational")){
		bRelation();
	}
});

//****************************************
//		Blog Relation
//****************************************

var bRelation = function (){
    sendRequest("/blog/atom.xml",brDisp,"GET","");
}
var brDisp = function (req){
	var entry = req.responseXML.getElementsByTagName("entry");
	var put = document.getElementById("relational");
	var rHead = document.createElement("h2");
	var rHtx = document.createTextNode("新着記事");
	rHead.appendChild(rHtx);
	put.appendChild(rHead);
	var rUl = document.createElement("ul");
	for(var i=0;i<6;i++){
		var rLi = document.createElement("li");
		var titleTx = entry[i].getElementsByTagName("title")[0].childNodes[0].nodeValue;
		var titleCt = document.createTextNode(titleTx);
		var a = document.createElement("a");
		var link = entry[i].getElementsByTagName("link")[0].getAttribute("href");
		a.href = link;
		a.appendChild(titleCt);
		rLi.appendChild(a);
		rUl.appendChild(rLi);
	}
	put.appendChild(rUl);
	
}
// set contenteditable
var contente = function(){
	var c = document.getElementsByTagName("code");
	for(var i=0;i<c.length;i++){
		c[i].setAttribute("contenteditable","true"); 
	}
}

