$(function(){
	getOverElm();
	if($.browser.msie || $.browser.opera)
		$('.corner').corner().parent().corner();
	//else
	//	$('.corner').corners().parent().css('padding','2px').corners();
	r3Child();
	r5Child();
	$('#pagetop a').click(function(){
		$(this).blur();
		if(!$.browser.opera)
			$('html,body').animate({ scrollTop: 0 }, 'slow','easeOutCubic');
		else
			$('html,body').attr('scrollTop',0)
		return false;
	});
	tileInit();
	noteHeightLine();
	/*
	$('.imgBox').each(function(){
		$(this).find('img').load((function(e){
			return function(){
				var pt;
				var pb;
				var h = this.height;
				var pad = ($(e).width() - h);
				if(pad % 2 > 0) {
					pt = Math.ceil(pad/2);
					pb = Math.floor(pad/2);
				}
				else {
					pt = pad/2;
					pb = pad/2;
				}
				$(e).css({'padding-top':pt,'padding-bottom':pb});
			}
		})(this));
	});
	*/
	//$('#pagetop').hide();
	//$('.imgBox a').lightBox();
	$('input[@type = image]').each(function(){
		if($(this).attr('name') == 'submit') $(this).before('<input type="hidden" name="submit" value="1" />');
	});
});
var addEvent = function (elm, evName, func) {
	if(elm.addEventListener) {
		elm.addEventListener(evName,func,false);
	}
	else if(window.attachEvent) {
		elm.attachEvent('on'+evName,function(){func.apply(elm);});
	}
}
var noteHeightLine = function() {
	if($('.notesBox').size() > 0) {
		var arr = new Array();
		$('.notesBox .m').each(function(){arr.push(this)});
		var id = setInterval(function(){
			for(var i in arr) {
				var self = $(arr[i]);
				var t = self.height() % 24;
				if(t != 0) 
					self.css('padding-bottom',24 - t);
			}
		},40);
	}
}
var resize = function(){
	$('#new_photo dt img,#photo_list dt img').each(function(){
		var $self = $(this);
		var w = $self.width();
		var h = $self.height();
		var t;
		var d;
		if(w <= 68 && h <= 68) {
			return;
		}
		
		if(w > h) {
			t = w;
		}
		else {
			t = h;
		}
		d = t / 68;
		w = w / d;
		h = h / d;
		$self.width(w).height(h);
	})
}
addEvent(window,'load',resize);
var r5Child = function(){
	var n = 0;
	$('.r5 > li').each(function(){
		n++;
		if(n % 5 === 0) 
			$(this).css('margin-right','0');
	});
}
var r3Child = function(){
	var n = 0;
	$('.r3 > li').each(function(){
		n++;
		if(n % 3 === 0) 
			$(this).css('margin-right','0');
	});
}
var tileInit = function(){
	var n = 0;
	$('.tile_list li').each(function(){
		n++;
		switch(n) {
			case 1:
				$(this).addClass('odd');
				break;
			case 2:
				$(this).addClass('even');
				n = 0;
				break;
		}
	});
}
addEvent(window,'load',function(){
	//VerticalAlign();
	$('#pagetop').show().css('padding-top',$('#ft').offset().top - $('#pagetop').offset().top + 10);
	/*
	$('#wide #exchange .notesBox > .m').each(function(){
		var h = $(this).height();
		var t = h % 24;
		$(this).css('padding-bottom',24 + 24 - t);
	});
	*/
});

var VerticalAlign = function(){
	var pad;
	var pt;
	var pb;
	$('.imgBox').each(function(){
		pad = ($(this).width() - $(this).height());
		if(pad % 2 > 0) {
			pt = Math.ceil(pad/2);
			pb = Math.floor(pad/2);
		}
		else {
			pt = pad/2;
			pb = pad/2;
		}
		$(this).css({'padding-top':pt,'padding-bottom':pb});
	});
}
var Over = function (e){
	var src;
	var s;
	var type;
	if(e.src.indexOf('/blank.gif') > -1) {
		this.flag = true;
		src = e.style.filter;
		src = src.replace('.png','_on.png');
	}
	else {
		src = e.src.split('/');
		s = src[src.length - 1];
		s = s.split('.');
		type = s[1];
		s = s[0];
		src[src.length - 1] = s + '_on.' + type;
		src= src.join('/');
	}
	this.img = new Image().src = src;
	this.target = e;
	if(type == 'png' && navigator.appVersion.indexOf('MSIE 6') != -1) {
		this.flag = true;
		this.src = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+e.src+"')";
		this.osrc = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"')";
	}
	else if(this.flag) {
		this.src = e.style.filter;
		this.osrc = src;
	}
	else {
		this.src = e.src;
		this.osrc = src;
	}
	var self = this;
	addEvent(e,'mouseover',function(){self.over(self)});
	addEvent(e,'mouseout',function(){self.out(self)});
}
Over.prototype = {
	over	:	function(self){
		self.flag ? self.target.style.filter = self.osrc : self.target.src = self.osrc;
	},
	out		:	function(self) {
		self.flag ? self.target.style.filter = self.src : self.target.src = self.src;
	}
}

var getOverElm = function(){
	/*
	var els = document.getElementsByTagName('*');
	for(i=0;i<els.length;++i){
		if(els[i].className.indexOf('Over') > -1) {
			var el = els[i];
			new Over(els[i]);
		}
	}
	*/
	$('.Over').each(function(){new Over(this);});
}
var graph = function(){
	var $dd = $('#graphBox dd');
	var canvas = new Array;
	var c;
	$('#graphBox dd').each(function(){
		c = document.createElement('canvas');
		c.width = 300;
		c.height = 16;
		if($.browser.msie) c = G_vmlCanvasManager.initElement(c);
		$(this).find('span').before(c);
		canvas.push(c);
	});
	var ctx = new Array;
	var img = new Image();
	var max = new Array;
	for(var i = 0; i < arguments.length;++i) {
		max[i] = arguments[i];
	}
	img.src = '/img/ranking/graph.gif';
	var context;
	var bg = new Image();
	bg.src = '/img/ranking/graph_bg.gif';
	var isImg = false;
	var isBg = false;
	var bgComp = false;
	var interval = function(self){
		var count = 0;
		var m = img.width;
		var id = setInterval(function(){
			if(count >= self.max) 
				clearInterval(id);
			self.context.drawImage(img,count * m,0);
			count++;
		},20);
	}
	var timeOut = function (){
		setTimeout(function(){
			if(!isBg) return;
			bgComp = true;
			for(i = 0; i < canvas.length;++i) {
				context = canvas[i].getContext('2d');
				context.drawImage(bg,0,0);
				ctx[i] = {
					context : context,
					max		: max[i]
				}
			}
			clearTimeout();
			setTimeout(function(){
				if(!isImg && !bgComp) return;
				ctx.each(function(self){
					if(self.max > 0) interval(self);
				});
				clearTimeout();
			},10);
		},10);
	}
	if($.browser.msie) {
		isBg = true;
		isImg = true;
		timeOut();
	}
	addEvent(bg,'load',function(){
		isBg = true;
		timeOut();
	})
	addEvent(img,'load',function(){
		isImg = true;
	})
}

var allCheck = function (form,checkbox) {
	addEvent(window,'load',function(){
		var f = document[form];
		var all = f['all'];
		var targets = f[checkbox];
		var trigger = document.getElementById('trigger');
		addEvent(all,'click',function(){
			var c = this.checked;
			if(targets.length) 
				for(var i = 0; i < targets.length; ++i)
					targets[i].checked = c;
			else targets.checked = c;
		});
		addEvent(trigger,'click',function(){f.submit();})
	});
}
var photoReqest = function(){
	var $trigger = $('#insertPhoto');
	$trigger.before('<div id="photoArea"></div>');
	var $area = $('#photoArea');
	var loader = new Image();
	loader.src = '/img/ajax/ajax-loader.gif';
	var ph = ($area.height() - loader.height)/2;
	var pw = ($area.width() - loader.width)/2;
	var $loader = $(loader)
	$loader.css({'position':'relative','top':ph,'left':pw}).hide();
	$area.append(loader);
	var params ={
		start : 0
	}
	var edit = 0;
	var num = 1;
	$('#photo1 dd input,#photo2 dd input,#photo3 dd input').each(function(){
		if(this.value) {
				$(this).parent().parent().parent().show();
				$(this).parent().append('<div class="btnBox alignL"><div class="l"><img src="/img/common/btn/edit_orange.gif" class="Over edit" style="cursor:pointer;" /></div><div class="r"><img src="/img/common/btn/del_orange.gif" class="Over del" style="cursor:pointer;" ></div></div>').find('img.edit').click((function(n){
					return function(){editHandler(n)};
				})(num));
				$(this).parent().find('img.del').click((function(n){
					return function(){delHandler(n)};
				})(num));
				$(this).parent().find('img.del,img.edit').each(function(){
					new Over(this);
				})
			num++;
		}
	})
	var isTrigger = true;
	
	//非同期コールバック処理
	var callBack = function(){
		r3Child();
		heightLine();
		$loader.hide();
		$('.close').click(function(){
			$area.fadeOut();
		})
		$area.find('ul li img').click(function(){
			$area.fadeOut();
			if(!edit && num > 3) return;
			if(edit) {
				var e = 'input[@name = photo'+edit+']';
				var def = $('#photo'+edit+' dd img:first');
				$(e).attr('value',this.name);
				if(this.style.filter && navigator.appVersion.indexOf('MSIE 6') != -1) {
					def.css({'filter':this.style.filter,'width':this.style.width,'height':this.style.height});
				}
				else if(def.css('filter')) {
					def.css({'filter':'','width':'','height':''});
				}
				def.attr('src',this.src).attr('alt',this.alt);
				edit = 0;
			}
			else {
				var e = 'input[@name = photo'+num+']';
				$(e).attr('value',this.name);
				var img = new Image();
				if(this.style.filter && navigator.appVersion.indexOf('MSIE 6') != -1) {
					img.style.filter = this.style.filter;
					img.style.width = this.style.width;
					img.style.height = this.style.height;
				}
				img.src = this.src;
				img.alt = this.alt;
				var e = '#photo'+num+' dd';
				$(e).append(img).append('<div class="btnBox alignL"><div class="l"><img src="/img/common/btn/edit_orange.gif" class="Over edit" style="cursor:pointer;" /></div><div class="r"><img src="/img/common/btn/del_orange.gif" class="Over del" style="cursor:pointer;" ></div></div>').find('img.edit').click((function(n){
					return function(){editHandler(n)};
				})(num));
				$(e).find('img.del').click((function(n){
					return function(){delHandler(n)};
				})(num));
				$(e).find('img.del,img.edit').each(function(){
					new Over(this);
				})
				$('#photo'+num).show();
				num++;
				if(num > 3) {
					isTrigger = false;
				}
			}
		});
		pagerAction();
		r3Child();
	}
	//編集ボタン処理
	var editHandler = function(n){
		$area.css({
			position	:	'absolute',
			left		:	$(window).width() / 2 -250 + 'px',
			top			:	$trigger.offset().top -420 + 'px'
		});
		$area.fadeIn();
			ajaxLoad($area,'/index.php/Mypage/Diary/PhotoList',params,callBack);
		edit = n;
	}
	//削除ボタン処理
	var delHandler = function(n){
		var input;
		/*
		switch(num) {
			case 2:
				input = $('#photo1 dd input').clone();
				input.attr('value','');
				$('#photo1 dd').html(input);
				$('#photo1').hide();
				break;
			case 3:
				if(num - 1== n) {
					input = $('#photo2 dd input').clone();
					input.attr('value','');
					$('#photo2 dd').html(input);
					$('#photo2').hide();
				}
				else {
					$('#photo1 dd input').attr('value',$('#photo2 input').attr('value'));
					$('#photo1 dd img:first').attr({'src':$('#photo2 dd img:first').attr('src'),'alt':$('#photo2 dd img:first').attr('alt')}).css({'filter':$('#photo2 dd img:first').css('filter'),'width':$('#photo2 dd img:first').css('width'),'height':$('#photo2 dd img:first').css('height')});
					input = $('#photo2 dd input').clone();
					input.attr('value','');
					$('#photo2 dd').html(input);
					$('#photo2').hide();
				}
				break;
			case 4:
				if(num - 1 == n) {
					input = $('#photo3 dd input').clone();
					input.attr('value','');
					$('#photo3 dd').html(input);
					$('#photo3').hide();
				}
				else if(n == 2){
					$('#photo2 dd input').attr('value',$('#photo3 input').attr('value'));
					$('#photo2 dd img:first').attr({'src':$('#photo3 dd img:first').attr('src'),'alt':$('#photo3 dd img:first').attr('alt')}).css({'filter':$('#photo3 dd img:first').css('filter'),'width':$('#photo3 dd img:first').css('width'),'height':$('#photo3 dd img:first').css('height')});
					input = $('#photo3 dd input').clone();
					input.attr('value','');
					$('#photo3 dd').html(input);
					$('#photo3').hide();
				}
				else {
					$('#photo1 dd input').attr('value',$('#photo2 input').attr('value'));
					$('#photo1 dd img:first').attr({'src':$('#photo2 dd img:first').attr('src'),'alt':$('#photo2 dd img:first').attr('alt')}).css({'filter':$('#photo2 dd img:first').css('filter'),'width':$('#photo2 dd img:first').css('width'),'height':$('#photo2 dd img:first').css('height')});
					$('#photo2 dd input').attr('value',$('#photo3 input').attr('value'));
					$('#photo2 dd img:first').attr({'src':$('#photo3 dd img:first').attr('src'),'alt':$('#photo3 dd img:first').attr('alt')}).css({'filter':$('#photo3 dd img:first').css('filter'),'width':$('#photo3 dd img:first').css('width'),'height':$('#photo3 dd img:first').css('height')});
					input = $('#photo3 dd input').clone();
					input.attr('value','');
					$('#photo3 dd').html(input);
					$('#photo3').hide();
				}
				isTrigger = true;
				break;
		}
		num--;
		*/
		if(num == n + 1) {
			input = $('#photo'+n+' dd input').clone();
			input.attr('value','');
			$('#photo'+n+' dd').html(input);
			$('#photo'+n).hide();
		}
		else {
			for(var i = n;i < num-1;++i) {
				$('#photo'+i+' dd input').attr('value',$('#photo'+(i + 1)+' input').attr('value'));
				$('#photo'+i+' dd img:first').attr({'src':$('#photo'+(i + 1)+' dd img:first').attr('src'),'alt':$('#photo'+(i + 1)+' dd img:first').attr('alt')}).css({'filter':$('#photo'+(i + 1)+' dd img:first').css('filter'),'width':$('#photo'+(i + 1)+' dd img:first').css('width'),'height':$('#photo'+(i + 1)+' dd img:first').css('height')});
				if(i == num - 2) {
					input = $('#photo'+(i + 1)+' dd input').clone();
					input.attr('value','');
					$('#photo'+(i + 1)+' dd').html(input);
					$('#photo'+(i + 1)+'').hide();
				}
			}
		}
		isTrigger = true;
		num--;
	}
	//ページャの設定
	var pagerAction = function(){
		$area.find('.pager a').click(function(){
			var params = {
				start : $(this).attr('jump')
			}
			ajaxLoad($area,'/index.php/Mypage/Diary/PhotoList',params,callBack);
		})
	}
	//非同期処理
	var ajaxLoad= function($target,url,params,func) {
		$target.load(url,params,func);
		$loader.show();
	}
	//ajaxLoad($area,'/index.php/Mypage/Diary/PhotoList',params,callBack);
	$trigger.click(function(){
		if(!isTrigger) return;
		if($area.css('display') == 'none') {
			$area.css({
				position	:	'absolute',
				left		:	$(window).width() / 2 -250 + 'px',
				top			:	$trigger.offset().top -420 + 'px'
			});
			ajaxLoad($area,'/index.php/Mypage/Diary/PhotoList',params,callBack);
			$area.fadeIn();
		}
		else {
			$area.fadeOut();
		}
	})
}
var memberReqest = function(counter){
	var $trigger = $('#insertMember');
	$trigger.before('<div id="photoArea"></div>');
	var $area = $('#photoArea');
	var loader = new Image();
	loader.src = '/img/ajax/ajax-loader.gif';
	var ph = ($area.height() - loader.height)/2;
	var pw = ($area.width() - loader.width)/2;
	var $loader = $(loader)
	$loader.css({'position':'relative','top':ph,'left':pw}).hide();
	$area.append(loader);
	var params ={
		start : 0
	}
	var edit = 0;
	var num;
	counter ? num = counter + 1: num = 2;
	if(counter) {
	}
	$('#photo1 dd input,#photo2 dd input,#photo3 dd input,#photo4 dd input,#photo5 dd input').each(function(){
		if(this.value) {
				$(this).parent().parent().parent().show();
				if(this.name.indexOf('member') > -1) {
					$(this).parent().append('<div class="btnBox alignL"><div class="l"><img src="/img/common/btn/edit_orange.gif" class="Over edit" style="cursor:pointer;" /></div><div class="r"><img src="/img/common/btn/del_orange.gif" class="Over del" style="cursor:pointer;" ></div></div>').find('img.edit').click((function(n){
						return function(){editHandler(n)};
					})(num));
					$(this).parent().find('img.del').click((function(n){
						return function(){delHandler(n)};
					})(num));
					$(this).parent().find('img.del,img.edit').each(function(){
						new Over(this);
					})
				}
			num++;
		}
	})
	var isTrigger = true;
	
	//var top = $(window).height()/2 - $area.height()/2 + 'px'
	//非同期コールバック処理
	var callBack = function(){
		r3Child();
		var isDouble = false;
		var idArr = new Array;
		$('#photo1 dd input,#photo2 dd input,#photo3 dd input,#photo4 dd input,#photo5 dd input').each(function(){
			if(this.value) idArr.push(this.value);
		});
		heightLine();
		$loader.hide();
		$('.close').click(function(){
			$area.fadeOut();
		})
		$area.find('ul li img').click(function(){
			if(isDouble) return;
			isDouble = true;
			if(this.className.indexOf('selected') > - 1) return;
			
			$area.fadeOut();
			if(!edit && num > 5) return;
			if(edit) {
				var e = 'input[@name = member'+edit+']';
				var def = $('#photo'+edit+' dd .w50 img');
				$('#photo'+edit+' dd .clearfix .r').html(this.alt);
				$(e).attr('value',this.name);
				if(this.style.filter && navigator.appVersion.indexOf('MSIE 6') != -1) {
					def.css({'filter':this.style.filter,'width':this.style.width,'height':this.style.height});
				}
				else if(def.css('filter')) {
					def.css({'filter':'','width':'','height':''});
				}
				def.attr('src',this.src).attr('alt',this.alt);
				edit = 0;
			}
			else {
				var e = 'input[@name = member'+num+']';
				$(e).attr('value',this.name);
				var span = document.createElement('span');
				span.className = 'w50';
				var img = new Image();
				if(this.style.filter && navigator.appVersion.indexOf('MSIE 6') != -1) {
					img.style.filter = this.style.filter;
					img.style.width = this.style.width;
					img.style.height = this.style.height;
				}
				img.src = this.src;
				img.alt = this.alt;
				var e = '#photo'+num+' dd';
				$(e).append('<div class="clearfix"><div class="l"></div><div class="r">'+this.alt+'</div></div>')
				$(span).append(img);
				$(e).find('.clearfix .l').append(span)
				$(e).append('<div class="btnBox alignL"><div class="l"><img src="/img/common/btn/edit_orange.gif" class="Over edit" style="cursor:pointer;" /></div><div class="r"><img src="/img/common/btn/del_orange.gif" class="Over del" style="cursor:pointer;" ></div></div>').find('img.edit').click((function(n){
					return function(){editHandler(n)};
				})(num));
				$(e).find('img.del').click((function(n){
					return function(){delHandler(n)};
				})(num));
				$(e).find('img.del,img.edit').each(function(){
					new Over(this);
				})
				$('#photo'+num).show();
				num++;
				if(num > 5) {
					isTrigger = false;
				}
			}
		}).each(function(){
				for(var i in idArr) {
					if(this.name == idArr[i]) $(this).addClass('selected');
				}
			});
		pagerAction();
		r3Child();
	}
	//編集ボタン処理
	var editHandler = function(n){
		var left = $(window).width() / 2 -250 + 'px';
		var top = $trigger.offset().top -420 + 'px';
		if(top < 0) top = 50;
		$area.css({
			position	:	'absolute',
			left		:	left,
			top			:	top
		});
		$area.fadeIn();
			ajaxLoad($area,'/index.php/Exchange/MemberList',params,callBack);
		edit = n;
	}
	//削除ボタン処理
	var delHandler = function(n){
		var input;
		if(num == n + 1) {
			input = $('#photo'+n+' dd input').clone();
			input.attr('value','');
			$('#photo'+n+' dd').html(input);
			$('#photo'+n).hide();
		}
		else {
			for(var i = n;i < num-1;++i) {
				$('#photo'+i+' dd input').attr('value',$('#photo'+(i + 1)+' input').attr('value'));
				$('#photo'+i+' dd .w50 img').attr({'src':$('#photo'+(i + 1)+' dd .w50 img').attr('src'),'alt':$('#photo'+(i + 1)+' dd .w50 img').attr('alt')}).css({'filter':$('#photo'+(i + 1)+' dd .w50 img').css('filter'),'width':$('#photo'+(i + 1)+' dd w50 img').css('width'),'height':$('#photo'+(i + 1)+' dd .w50 img').css('height')});
				$('#photo'+i+' dd .clearfix .r').html($('#photo'+i+' dd .w50 img').attr('alt'));
				if(i == num - 2) {
					input = $('#photo'+(i + 1)+' dd input').clone();
					input.attr('value','');
					$('#photo'+(i + 1)+' dd').html(input);
					$('#photo'+(i + 1)+'').hide();
				}
			}
		}
		isTrigger = true;
		num--;
	}
	//ページャの設定
	var pagerAction = function(){
		$area.find('.pager a').click(function(){
			var params = {
				start : $(this).attr('jump')
			}
			ajaxLoad($area,'/index.php/Exchange/MemberList',params,callBack);
		})
	}
	//非同期処理
	var ajaxLoad= function($target,url,params,func) {
		$target.load(url,params,func);
		$loader.show();
	}
	//ajaxLoad($area,'/index.php/Mypage/Diary/PhotoList',params,callBack);
	$trigger.click(function(){
		var left = $(window).width() / 2 -250 + 'px';
		var top = $trigger.offset().top -420 + 'px';
		if(top < 0) top = 50;
		if(!isTrigger) return;
		if($area.css('display') == 'none') {
			$area.css({
				position	:	'absolute',
				left		:	left,
				top			:	top
			});
			ajaxLoad($area,'/index.php/Exchange/MemberList',params,callBack);
			$area.fadeIn();
		}
		else {
			$area.fadeOut();
		}
	})
}
///////////////Array each function///////////////////

Array.prototype.each = function (func) {
	for (var i=0;i < this.length;i++) func(this[i]);
}

/*sample
someArray.each(
	function(e) {print(e)}
);
*/


///////////////Array select function//////////////////

Array.prototype.select = function (func) {
	var a = new Array();
	for(var i= 0; i < this.length; i++) {
		if(func(this[i])) {
			a.push(this[i]);
		}
	}
	return a;
}

/*sample
var selectArray = someArray.select (
	function(e) {return e.length == 4}
);
*/

///////////////Array collect function/////////////////

Array.prototype.collect = function (func) {
	var a = new Array();
	for (var i=0;i < this.length; i++) {
		a.push(func(this[i]));
	}
	return a;
}

/*sample
var collectArray = someArray.collect (
	function (e) {return e.charAt(0);}
);
*/

