//XMLPreLoader Class

var XMLPreLoader = Class.create();
XMLPreLoader.prototype = {
  initialize : function (url, func) {
    this.xmldat = new JKL.ParseXML(url);
    this.myfunc = func;
    this.xmldat.async(this.myfunc);
  },
  parse : function () {
    this.xmldat.parse();
  }
}

//写真関係 pper:表示数 pnow:現在のページ pagemax:ページ最大数
var pper = 8;
var pnow = 1;
var pagemax = 10;
var nowPhoto = 1;
var prevPhoto = 0;
var showPhotoFlg = 0;
var imgCount = 0;
var streamShowFlg = 0;


//////////////////////////////Flickr関係//////////////////////////////

function photoLoad(x) {
	
	var page = x.items.item.page;
	var pmax = x.items.item.pagemax;
	
  pagemax = pmax;
  if (document.getElementById("photo-box-inner-"+page)) {
  } else {
     if (page == 1) {
        document.getElementById("photo-box-inner").innerHTML = "";
     }
    var nd = document.createElement("div");
    nd.setAttribute("id", "photo-box-inner-"+page);
    nd.setAttribute("class",  "photo-box-inner-page");
    document.getElementById("photo-box-inner").appendChild(nd);
	var s = "";
        var j = "";
	for (var i = 0; i < x["items"]["photo"].length; i++) {
		j = x.items.photo[i];
		
		s += '<img src="'+j.url+'" class="photo-img" ';
		s += 'onmouseover="flickrPhotoOver(this)" onmouseout="flickrPhotoOut(this)" ';
		s += 'onclick="topPhotoLoadJS('+j.id+')" ';
		s += 'id="'+j.id+'">';
	}
    nd.innerHTML = s;
  }
}
function topPhotoLoad(x) {
    var s = x.items.item.url;
	var page = x.items.item.page;
	var pmax = x.items.item.pagemax;
    var wt = document.getElementById("top-flickr-wait");
    var im = document.getElementById("top-flickr-img"+nowPhoto);
   if (im) {
     im.onload();
    } else {
       im = document.createElement("img");
	   document.getElementById("top-flickr-img-box").appendChild(im);
       im.setAttribute("id", "top-flickr-img"+nowPhoto);
	   	   im.style.display="none";
       im.style.position="absolute";
       im.onclick = function() {
         if (nowPhoto >= pmax) {
             topPhotoLoadJS(1);
         } else {
             topPhotoLoadJS(nowPhoto + 1);
         }
       }
    im.onload = function() {
        if (imgCount == 1) {
          new Effect.Appear(im,{queue:{scope:'ffade',position:'end'},duration:0.5,beforeStart:function(){wt.style.display="none";}, afterFinish:function(){showPhotoFlg = 0;}});
        } else {
		  var previnner = document.getElementById("top-flickr-img"+prevPhoto);
          new Effect.Fade(previnner, {queue:{scope:'ffade'},to:0,duration:0.3,afterFinish:function(){    wt.style.display="none";}});
          new Effect.Appear(im,{queue:{scope:'ffade',position:'end'},duration:0.5, afterFinish:function(){previnner.style.display="none"; showPhotoFlg = 0;}});
        }
    }
	    im.setAttribute("src", s);
	}
}

//Loading画面の表示
function topPhotoLoading() {
    var np = document.getElementById("top-flickr-img"+nowPhoto);
	var wt = document.getElementById("top-flickr-wait");
      if (imgCount != 1) {
          new Effect.Fade(np, {queue:{scope:'ffade'},to:0.5,duration:0.3,afterFinish:function(){    wt.style.display="block";}});
      } else {
        wt.style.display="block";
      }
}

//サ ネイルのajax
function loadjs(per, page) {

	var url_str = "http://www.erwindraft.com/xml/ps.php?per="+per+"&page="+page;
	
	var ThumbPhotoXMLPreLoader = new XMLPreLoader(url_str, photoLoad);
	ThumbPhotoXMLPreLoader.parse();
}
//トップページのajax
function topPhotoLoadJS(p) {
  if (showPhotoFlg == 0) {
    if (imgCount != 0 && nowPhoto == p) {
	} else {
        showPhotoFlg = 1;
		imgCount++;
        topPhotoLoading();
         prevPhoto = nowPhoto;
		nowPhoto = p;
		//alert(nowPhoto);
		 var url_str = "http://www.erwindraft.com/xml/psb.php?page="+nowPhoto;
       // if (nowPhoto==0) url_str += "&tag=nowcover";
		var CoverPhotoXMLPreLoader = new XMLPreLoader(url_str, topPhotoLoad);
		CoverPhotoXMLPreLoader.parse();
     }
  }
}

//photoページ遷移
function photoPageMove(mode) {
  if (streamShowFlg == 0) {
	if (mode == 'next' && pnow < pagemax) {
                streamShowFlg = 1;
		pnow++;
		loadjs(pper, pnow);
		new Effect.MoveBy(document.getElementById('photo-box-inner'), -72, 0,  {queue:{scope:'pmove', position:'end',limit:1}, afterFinish:function(){streamShowFlg = 0;}});
	} else if (mode == "prev" && pnow > 1)  {
                streamShowFlg = 1;
                pnow = pnow - 1;
                if (pnow < 1) {
                   pnow = 1;
                } else {
		        new Effect.MoveBy(document.getElementById('photo-box-inner'), 72, 0, {queue:{scope:'pmove', position:'end',limit:1}, afterFinish:function(){streamShowFlg = 0;}});
                }
        } else {
        }
   }
}

//サ ネイルマウスオーバー時の透過
function flickrPhotoOver(obj) {
  new Effect.Fade(obj, {to:0.7,duration:0.15});
}
function flickrPhotoOut(obj) {
  new Effect.Appear(obj, {to:1,duration:0.5});
}
//////////////////////////////Flickr関係//////////////////////////////




//////////////////////////////RECENT関係//////////////////////////////
//RSSを受信時に起動するコールバック関数
function EntryXMLonLoaded(x) {
	var data = '<ul class="reent-list">'
	var cnt = 0;

	for(var i = 0; i < x["feed"]["entry"].length; i++) {
		//出力用HTMLを作る
		data += '<li><a href="'+x.feed.entry[i].link.href+'">'

		//24文字に制限
		data += x.feed.entry[i].title.substr(0,50)
		data += '</a>'
		data += '<br />'
		var buf = x.feed.entry[i].summary
		if (buf != null) {
			data += '<div class="small-gray">' + buf.substr(0, 64) + '・・</div>';
		}
		data += ''

		//時間を取り出す
		var time = x.feed.entry[i].issued
		time = time.split("T").join(" ").split("+")[0]
		data += '<span class=small-gray>posted '+time+'</span></li>'
			
		if (cnt >= 6) { break; }
		cnt++;
	}
	data += '</ul>';
	document.getElementById('entry_list_container').innerHTML = data;
}

function CommentXMLonLoaded(x) {
	var data = '<ul class="reent-list">';
	var cnt = 0;

	for(var i = 0; i < x["feed"]["comment"].length; i++) {
		//出力用HTMLを作る
		data += '<li><a href="'+x.feed.comment[i].link.href+'">';

		//24文字に制限
		data += x.feed.comment[i].title.substr(0,50);
		data += '</a>';
		data += '<br />';
		var buf = x.feed.comment[i].author;
		if (buf != null) {
			data += '<div class="small-gray">by ' + buf.substr(0, 64) + '</div>';
		}
		data += '</li>';
		cnt++;
	}
	data += '</ul>';
	document.getElementById('comment_list_container').innerHTML = data;
}
//////////////////////////////RECENT関係//////////////////////////////




//////////////////////////////その他関係//////////////////////////////
function MakePassword(iPasswordLength){
	var sCharaList = 'abcdefghijkmnpqrstwxyz2345689';
	var iCharaIndex = 0;
	// パスワードの長さ
	var iPasswordCnt = 0;
	var sPassword = "";
	
	// パスワードの長さ け繰り返す。
	for (PasswordCnt = 0; iPasswordCnt < iPasswordLength; iPasswordCnt++){
		// 文字リスト番号を取得する。
		iCharaIndex = Math.floor(Math.random() * sCharaList.length);
		
		// 文字リストからランダ な一文字を取得し、パスワードに追 する。
		sPassword = "" + sPassword + sCharaList.charAt(iCharaIndex);
	}
	return sPassword;
}

//addLoadEvent
function addLoadEvent(func)
{	
	var oldonload = window.onload;
	if (typeof window.onload != 'function'){
    	window.onload = func;
	} else {
		window.onload = function(){
		oldonload();
		func();
		}
	}
}

//body.onload
function bodyOnload() {

	//var EntryXMLPreLoader = new XMLPreLoader('/util/getxml.php?xml=http://ieiriblog.jugem.jp/atom.xml?rd='+MakePassword(6), EntryXMLonLoaded);
	//EntryXMLPreLoader.parse();
	//var CommentXMLPreLoader = new XMLPreLoader('/util/getxml.php?xml=http://ieiriblog.jugem.jp/?tid=45&rd='+MakePassword(6), CommentXMLonLoaded);
	//CommentXMLPreLoader.parse();	  //EntryXMLpreLoader('/util/getxml.php?xml=http://ieiriblog.jugem.jp/atom.xml?rd='+MakePassword(6));
//CommentXMLpreLoader('/util/getxml.php?xml=http://ieiriblog.jugem.jp/?tid=45&rd='+MakePassword(6));

	loadjs(pper,pnow);
	topPhotoLoadJS(0);
}
//////////////////////////////その他関係//////////////////////////////


addLoadEvent(bodyOnload);

