(function($, window){
	if(typeof ikimono == "undefined") return;
	window.jQPicasaData = [];
	var AjaxData = {
		url : "/scripts/php/picasa.php",data:{type:"album",output:"json"}, dataType : "json",
		success : function(json){window.jQPicasaData = json;}
	},
	jQIKPicasaAlbum = "#jQIKPicasaAlbum";
	if(typeof ikimono!="undefind" && ikimono.type=="list"){
		$(function(){$(jQIKPicasaAlbum).append('<img src="/images/loader.gif" id="#jQIKPicasaLoader">');});
		switch(ikimono.type){
			case "list":
			AjaxData = {
				url : AjaxData.url,data:{type:"album",output:"json"}, dataType : "json",
				beforeSend:function(){},
				success : function(json){window.jQPicasaData = json;$(jQIKPicasaAlbum).html("");$(jQIKPicasaAlbum).hide();}
			}
			break;
		}
	}
	$.ajax(AjaxData);
	var jQPicasa = window.jQPicasa = $.jQPicasa = function(vars){
		return jQPicasa.prototype.init(vars);
	}
	jQPicasa.prototype = {
		vars :{},
		init : function(vars){
			this.vars = vars;
			return this;
		},
		element :{
			listView : '<div></div>',
			topView : '<p><a href="/houkoku/album.html"></a></p>'
		},
		aspect:function(w,h){
			/* 画像 アスペクト比 計算 */
			var num1=w,num2=h,ansNum=0,i=1,s=640,bigNum,smlNum;
			if (num1 > num2) {
				bigNum = num1;
				smlNum = num2;
			}
			else {
				bigNum = num2;
				smlNum = num1;
			}
			var a = bigNum,b = smlNum;
			if(num1 > 0 && num2 > 0){
				while(i > 0){
					if(a%b == 0){
						i = 0;
						ansNum = b;
					}else{
						a = a%b;
					}
					if(i != 0){
						if(b%a == 0){
							i = 0;
							ansNum = a;
						}else{
							b = b%a;
						}
					}
				}
			}
			var aspW=(num1 / ansNum), aspH=(num2 / ansNum),
			w=s,h=Math.floor((w * aspH) / aspW);
			if (num1 < num2) h=s,w=Math.floor((h * aspW) / aspH);
			/* アスペクト比 計算*/
			return {w :w, h :h};
		},
		listView : function(){
			var $this = this;
			// this.element();
			$(document).ready(
				function(){
					var v = $this.vars,
					e = v.entry,
					c = 0,array=[];
					if(typeof v.selector=="undefind") v.selector = document.body;
					for(var i=0;i<e.length;i++){
						var k = e[i].media_group.media_keywords;
						if (typeof k == "string" && k.indexOf("公開") > -1) {
							if (k.indexOf("ベストショット") > -1) {
								array.unshift(e[i]);
							}else{
								array.push(e[i]);
							}
						}
					}
					e = array;
					relName = 'picasa';
					for(var i=0;i<e.length;i++){
						var summary = e[i].summary,
						thums = e[i].media_group.media_thumbnail[1]["@attributes"].url,
						w = Math.floor(e[i].media_group.media_thumbnail[1]["@attributes"].width*0.8),
						h = Math.floor(e[i].media_group.media_thumbnail[1]["@attributes"].height*0.8),
						k = e[i].media_group.media_keywords;
						if(typeof summary=="object") summary = "";
						summary = summary.split('\n\n');
						summary = summary[0];
						$(v.selector).append($this.element.listView);
						$(v.selector + " div:eq("+c+")").append('<a href="'+e[i].media_group.media_content["@attributes"].url+'" rel="picasa"><img src="'+thums + '" width="' + w + '" height="' + h + '"></a><p>' + summary + '</p>');
						var attr = {
							"title":e[i].summary.replace('\n\n','<br><br>').split('\n').join('<br>'),
							"rel":relName,
							"data-default-width":e[i].default_width,
							"data-default-height":e[i].default_height
						};
						if (c == 0) {
							$(v.selector + " div:eq(" + c + ")").append('<p class="crown"></p>');
							$(v.selector + " div:eq(" + c + ")").attr({"class": "bestshot"});
						}
						$(v.selector + " div:eq("+c+") a").attr(attr);
						c++;
					}
					var groupPhoto = v.selector + " div a[rel='"+relName+"']";
					$(v.selector + " div a").click(function(){
						var w=640,h=$("#cboxWrapper").height();//default size
						$(groupPhoto).colorbox({
							width : w,
							height : h,
							scrolling:false,
							// slideshow:true,
							// slideshowSpeed:6000,
							onLoad:function(){},
							onOpen:function(){
								$("#cboxOverlay").css({"filter": "alpha(opacity=50)","-moz-opacity":0.5,"opacity":0.5});
							},
							onComplete:function(){
								/* Custmize Colorbox */
								var gBtn = "#cboxClose,#cboxPrevious,#cboxNext",gPhoto="#cboxPhoto";
								$("#cboxClose,#cboxPrevious,#cboxNext").text("");
								$("#cboxClose,#cboxPrevious,#cboxNext").hide();
								/* 画像サイズの縦横を自動計算 */
								/* アスペクト比 計算*/
								var defaultDH = $this.aspect(
											Number($(this).attr("data-default-width")),
											Number($(this).attr("data-default-height"))
								);
								var ws=defaultDH.w,dws = Number($(this).attr("data-default-width")),hs=defaultDH.h,dhs=Number($(this).attr("data-default-height")),hiw = ws / dws,hih = hs / dhs;
								var w = Math.floor(hiw * dws),h = Math.floor(hih * dhs);
								
								if( hiw >= 1 || hih >= 1 ){
									w = Number($(this).attr("data-default-width"));
									h = Number($(this).attr("data-default-height"));
								}
								/* 画像サイズの縦横を自動計算 */
								
								$("#cboxPhoto").attr({width:w,height:h});
								$("#cboxPhoto").css({"margin":"0"});
								$("#cboxClose,#cboxPrevious,#cboxNext").css("z-index","1000")
								$("#cboxClose,#cboxPrevious,#cboxNext").mouseover(function(){
									$("#cboxClose,#cboxPrevious,#cboxNext").show();
								});
								$("#cboxClose,#cboxPrevious,#cboxNext").mouseout(function(){
									$("#cboxClose,#cboxPrevious,#cboxNext").hide();
								});
								$("#cboxPhoto").mouseover(function(){
									$("#cboxClose,#cboxPrevious,#cboxNext").show();
								});
								$("#cboxPhoto").mouseout(function(){
									$("#cboxClose,#cboxPrevious,#cboxNext").hide();
								});
								$("#cboxPrevious,#cboxNext").css({"top":((h-100)/2)+"px"})
								$("#cboxTitle").css("top", h+"px");
								// console.log(w, h);
								$.fn.colorbox.resize({
									width : w,
									height : h + Math.floor($("#cboxTitle").height()*1.8)
								});
							}
						});
					});
				$("#jQIKPicasaAlbum").fadeIn("50000");
				}
			);
		},
		topView : function(){
			var $this = this;
			$(
				function(){
					var v = $this.vars,
					e = v.entry;
					if(typeof v.selector=="undefind") v.selector = document.body;
					var thums,w,h;
					var thums = jQPicasaData.icon;
					$(v.selector).prepend($this.element.topView);
					$(v.selector + " p a").prepend('<img src="'+thums+'" alt="ベストショット">');
					$(v.selector + " p a img").attr({width:144, height:144});
				}
			);
		}
		
	};
})(jQuery, window);
/* XML / JSONによる */
/* 通信終了 */
$(function(){
	$(document.body).ajaxStop(
		function(){
			
			if(typeof window.jQIKData=="undefined") window.jQIKData = {};
			if(typeof window.jQIKData.rss=="undefined") window.jQIKData.rss = false;
			if( window.jQIKData.rss ) return;
			$("#jQIKLoader").hide();
			if(typeof ikimono == "undefined") return;
			var data = {};
			switch(ikimono.type){
				case "list":
					data = {
						selector : "#jQIKPicasaAlbum",
						entry : jQPicasaData.entry
					};
					$("jQIKPicasaLoader").hide();
				break;
				case "top":
					data = {
						selector : "#jQPicasaTopView",
						entry : jQPicasaData.entry
					};
				break;
			}
			var pic = new $.jQPicasa(data);
			switch(ikimono.type){
				case "list":
					pic.listView();
				break;
				case "top":
					pic.topView();
				break;
			}
			
			
		}
	);
});

/* 通信終了 */


