//PVT忘年会ID 17

/**
 *	スタート
 */
/*---------------------------------------------------------------------------------------------------------
	
--------------------------------------------------------------------------------------------------------- */
$(document).ready(function(){
	

	$.U = new $.myUtil();//ユーティリティ
	$.IF = new $.myIF();//IF
	
	
	
	
	$.D = new $.myDialog();//ダイアログ
	
	$.DC = new $.DataContainer();
	$.M = new $.Main();
	$.topIMG = new $.Topimg($("#picHolder"));
	$.EventV = new $.EventView();
	
	/*---------------------------------------------------------------------------------------
		リサイズイベント
	---------------------------------------------------------------------------------------*/
	$(window).bind("resize", function(){
		$.topIMG.onResize();
		$.EventV.onResize();
	});
	
	
});


/*	
	Main
*/
(
	function() {
		
		$.Main = function() { //コンストラクタ
			var me = this;
			me.IF_loginCheck(function(){
			
			});
		}
		
		var P = $.Main.prototype;
		
		
		P.EndRollTimer = 0;
		/*---------------------------------------------------------------------------------------------------------*/
		P.init = function(){
			var me = this;
			
		
			//データコンテナのテーブルデータを初期化
			$.DC.resetTableData();
			
			$.IF.getInitData(function(d){
			
				for(var item in d.ret){
					if(d.ret.hasOwnProperty(item)){
						$.DC.table[item] = d.ret[item];
					}
				}
				
				
				$.topIMG.init(function(){
					$.EventV.init();
				});
				
				
				
				//me.onResize();
				
				
			});

			
							
										
			
						
			
			/*---------------------------------------------------------------------------------------
				ログイン
			---------------------------------------------------------------------------------------*/
			$("#btn_login").unbind("click").bind("click",function(e){ e.preventDefault(); e.stopPropagation();
				
				var mail = $("#input_login_mail input").val();
				if(!mail) return;
				
				$.IF.login(mail, function(d){
					
					if(d.ret.type == "ok"){
						me.onLogin(d.ret.userData);
					} else if(d.ret.type == "nodata"){
						alert("そのアドレスは登録されてないね");
					}
				});
			});
			
			/*---------------------------------------------------------------------------------------
				登録する
			---------------------------------------------------------------------------------------*/
			$("#btn_showRegistView").unbind("click").bind("click",function(e){ e.preventDefault(); e.stopPropagation();
				
				$("#registHolder").show();
				$("#loginHolder").hide();
				
				/*---------------------------------------------------------------------------------------
					登録開始
				---------------------------------------------------------------------------------------*/
				$("#btn_regist_start").unbind("click").bind("click",function(e){ e.preventDefault(); e.stopPropagation();
					me.startRegist(function(){
						closeFunc();
					});
				});
				
				
				/*---------------------------------------------------------------------------------------
					登録キャンセル
				---------------------------------------------------------------------------------------*/
				$("#btn_regist_cancel").unbind("click").bind("click",function(e){ e.preventDefault(); e.stopPropagation();
					closeFunc();
				});
				
				/*---------------------------------------------------------------------------------------
					closeFunc
				---------------------------------------------------------------------------------------*/
				function closeFunc(){
					$("#registHolder").hide();
					$("#loginHolder").show();
				}
			});
			
									
			/*---------------------------------------------------------------------------------------
				
			---------------------------------------------------------------------------------------*/
			$(".btn_iine button").live("click",function(e){ e.preventDefault(); e.stopPropagation();
				var member_id = "";
				var eventpost_id = $(this).parents(".post").attr("num");
				$.IF.good(member_id, eventpost_id,function(d){
					if(d.type == "ok"){
						$.DC.iine = d.iine;
						me.updateGood(eventpost_id);
						//alert("グッド！");
						
					}
				});
				var post = $(this).parents(".post");
				post.find(".btn_iine").hide();
				post.find(".post_good").hide();
			});
			
			

			
			
		}
		
		
		
		/*---------------------------------------------------------------------------------------------------------*/
		P.IF_loginCheck = function(callback){
			var me = this;
			$.IF.loginCheck(function(d){
				
				if(d.ret.userData){
					me.onLogin(d.ret.userData);
				} else {
					me.onLogout();
				
				}
				if(callback) callback();
			});	
		}
		
		/*---------------------------------------------------------------------------------------------------------*/
		P.onLogin = function(udata){
			var me = this;
			$.DC.setLoginUserData(udata);
			
			var udata = $.DC.getLoginUserData();
			


			var node = "<div id='loginOKHolder'><p>よーこそ "+udata.name+"<button id='btn_logout'>logout</button></p></div>";
			$("#loginHolder").hide().after(node);
			
			
			/*---------------------------------------------------------------------------------------
				
			---------------------------------------------------------------------------------------*/
			$("#btn_logout").bind("click", function(e){ 
				
				$.IF.logout(function(d){
					if(d.ret.type == "ok"){
						me.onLogout();
					} else {
						alert("ログアウトしっぱい");
					}
					
				});
				
			});
			
			this.init();
		}
		
		/*---------------------------------------------------------------------------------------------------------*/
		P.onLogout = function(){
			$.DC.setLoginUserData(null);
			$("#loginOKHolder").remove();
			$("#loginHolder").show();
			
			this.init();
		}
		
		
				
		
		
		
				
		/*---------------------------------------------------------------------------------------------------------*/
		P.startRegist = function(callback){
			
			console.log("startRegist");
			var name = $("#input_regist_name input").val().trim();
			var mail = $("#input_regist_mail input").val().trim();
			
			if(!name || !mail) return;
			
			
			$.IF.regist(name, mail,function(d){
				
				if(d.alertStr){
					alert(d.alertStr);
				} else if(d.ret.type == "existError"){	
					alert("登録済みのアドレスだね");
				} else if(d.ret.type == "ok"){
					if(callback) callback();
					alert("ありがとう。登録アドレスにメールがいったかな。");
				} else {
					alert("なんかエラーです");
				}
			});
			
		}
		
		
		
		/*---------------------------------------------------------------------------------------------------------*/
		P.makePost = function(member_id, event_id, callback){
			var me = this;
			$.IF.getPost(member_id, event_id,  function(d){
				
				var node = "";
				var ary = d.ary.concat().reverse().slice(0,5);
				me.postDataAry = ary;
				for(var i=0; i < ary.length; i++) {
					var d = ary[i];
					
					node += me.getPostNode(d);
				}
				
				//$("#picHolder").empty().append(node);
				//$(".eventPostHolder").empty().append(node);
				
				//初期座標
				$(".post").each(function(){
					var self = $(this);
					var x = Math.random()*1200;
					self.css("left", x);
				});
				
				if(callback) callback();
			});
					
		}
		
		
		
		
		
		
		
		
		/*---------------------------------------------------------------------------------------------------------*/
		P.startEndRoll = function(flg){
			var me = this;
			
			if(flg) {
				
				var node = getTxt();
				var rollTxt = $("#rollTxt");
				rollTxt.empty().append(node);
				rollTxt.css("top", $(window).height()).show();
				
				var y = $(window).height();
				clearInterval(me.EndRollTimer);
				me.EndRollTimer = setInterval(function(){
					y--;
					if(y < -rollTxt.height()) {
						y = $(window).height();
						
						var node = getTxt();
						rollTxt.empty().append(node);
				
					}
					rollTxt.css("top", y);
				}, 10);
			} else {
				clearInterval(me.EndRollTimer);
			}
			
			/*---------------------------------------------------------------------------------------------------------*/
			function getTxt(){
				
				var goodPostDataAry = [];
				var ary = me.postDataAry;
				for(var i=0; i < ary.length; i++) {
					var d = ary[i];
					d.good = 0;
					d.goodForSort = "";
					for(var v=0; v < $.DC.iine.length; v++) {
						var iineD = $.DC.iine[v];	
						if(parseInt(iineD.eventpost_id,10) == parseInt(d.id,10)){
							d.good++;
						}
					}
					
					d.goodForSort = $.U.keta(d.good, 4);
					if(d.good > 0){
						goodPostDataAry.push(d);
					}
					
					//console.log("d.good　"+d.id+"    "+d.good+"  "+d.goodForSort);
				}
				
				//ソート
				goodPostDataAry = $.U.asort(goodPostDataAry, "goodForSort").reverse();
				
								
				var node = "";
				var ary = goodPostDataAry;
				for(var i=0; i < ary.length; i++) {
					var d = ary[i];
					//node += "<p>"+d.title+"</p>";
					var good = d.good;
					var url = me.getImgUrl(d.imgurl);
					node += "<p>"+d.body.replaceAll("\n", "<br>")+"</p>";
					node += "<div class='roll_img'><img src='"+url+"' width='' height='' alt='' title=''><span class='roll_good'>"+good+"Good!</span></div>";
				}
				return node;
			}
		}
	}
)();


/*	
	Event
*/
(
	function() {
		
		$.EventView = function() { //コンストラクタ
			
			
			this.holder = $("#eventHolder");
			$.EventLine.setHolder(this.holder);
			
		}
		
		var P = $.EventView.prototype;
		P.holder  = null;
		P.lines = [];
		P.ary = [];
		
		/*---------------------------------------------------------------------------------------------------------*/
		P.init = function(){
			var me = this;
			var holder = me.holder;
			holder.empty();
			
			//データを初期化
			$.DC.resetTableData("event");
			$.DC.resetTableData("event_comment");
			$.DC.resetTableData("event_member");
			
			
			
			$.IF.getEvent(null, function(d){
				
				
				for(var item in d.ret){
					if(d.ret.hasOwnProperty(item)){
						$.DC.table[item] = d.ret[item];
					}
				}
				
				
				
				me.ary = $.DC.getData("event");
				if(me.ary.length > 0){
					me.makeList();
				}
				
				var udata = $.DC.getLoginUserData();
				if(udata){
					var node = "";
					node += "<div id='addEvent'><button id='btn_addEvent'>new Event</button></div>";			
					holder.append(node);
				}
	
				me.setBtnAction();
			});
			
			
			
		}
		
		/*---------------------------------------------------------------------------------------------------------*/
		P.onResize = function(){
			var me = this;
			

		}
		
		/*---------------------------------------------------------------------------------------------------------*/
		P.setBtnAction = function(){
			var me = this;
			
			
			/*---------------------------------------------------------------------------------------
				コメント表示切り替え
			---------------------------------------------------------------------------------------*/
			$("thead .event_com .btn_comExpand").die("click").live("click",function(e){ e.preventDefault(); e.stopPropagation();
				var self = $( this);
				
				var event = self.parents(".event");
				var eventComHolder = event.find(".eventComHolder");
				if(eventComHolder.css("max-height") == "none"){
					eventComHolder.css("max-height", "500px");
					$.DC.LS("comExpand", 0);
				} else {
					eventComHolder.css("max-height", "none");
					$.DC.LS("comExpand", 1);
				}
				return false;
				
			});
			
			
			
			
			/*---------------------------------------------------------------------------------------
				イベント追加
			---------------------------------------------------------------------------------------*/
			$("#btn_addEvent").unbind("click").bind("click",function(e){ e.preventDefault(); e.stopPropagation();
				var self = $( this);
				
				if(!$.DC.logined) return;
				
				
				var p = {};
				p.title = "新規イベント";
				p.member_id = $.DC.getLoginUserData().id;
				p.description = "";
				
				$.IF.updateEvent(null, p, function(d){
					if(d.alertStr){
						alert(d.alertStr);
						
					} else if(d.ret.type == "ok"){
						
						$.U.onComplete("ホンジツの新規イベントを作成しました");
						
						$.EventV.init();
						
					} else {
						alert("しっぱい");
					} 
				
				});
				return false;
				
			});
		}
		
		/*---------------------------------------------------------------------------------------------------------*/
		P.makeList = function(){
			var me = this;
			
			me.lines = [];
			me.holder.empty();
			
			for(var i=0, len = me.ary.length ; i < len; i++) {
				var d = me.ary[i];
				var line = new $.EventLine(d.id);	
				me.lines.push(line);
			}
			
		}
		
		/*---------------------------------------------------------------------------------------------------------*/
		//指定イベントラインの投稿を更新
		P.updateLinePost = function(event_id){
			var me = this;
			var ary = me.lines;
			for(var i=0, len = ary.length ; i < len; i++) {
				var line = ary[i];
				if(line.mydata.id == event_id){
					line.updatePost();
					break;
				}
			}
		}
		
	}
)();



/*	
	EventLine
*/
(
	function() {
		
		$.EventLine = function(event_id, isopen) { //コンストラクタ
			this.mydata = $.DC.getData("event",event_id);
			this.makeNode(isopen);
			this.setBtnAction();
			
			//開発
			//if(event_id == 86) this.updatePost();
			this.updatePost();
		}
		
		var P = $.EventLine.prototype;
		P.node = "";
		P.mydata = null;
		P.today = null;
		
		P.postDataAry = [];
		P.updeteTimer = 0;
		P.postMax = 4;
		P.postPosAry = [];
		P.postRetsuMax = 5;
		//P.picH = 225;
		//P.picW = 300;
		P.picH = 77;
		P.picW = 110;
		
		
		//static
		$.EventLine.holder = null;
		$.EventLine.setHolder = function(holder){
			$.EventLine.holder = holder;
		}
		
		/*---------------------------------------------------------------------------------------------------------*/
		P.makeNode = function(isopen){
			
			
			var me = this;
			var holder = $.EventLine.holder;
			
			if(!P.today){
				P.today = parseInt($.U.getTodayStr(),10);
			}
			
			var d = this.mydata;
			var past = "";
			if(d.date < P.today){
				past = " event_past";
			}
			var event_id = d.id;
			
			var udata = $.DC.getLoginUserData();
			
			
			if(holder.find("article[event_id="+event_id+"]").length == 0){
				//holder.append("<article class='event"+past+"' event_id='"+event_id+"'></article>");
				holder.prepend("<article class='event"+past+"' event_id='"+event_id+"'></article>");
			}
			var targetNode = holder.find("article[event_id="+event_id+"]");
			
			
			var node = "";
				var date = d.date.replaceAll("_", "");
				date = $.U.getDateStrWithSplit(date, ".");
				
				//タイトル
				node += "<div class='eventTitle clearfix'>";
					node += "<p class='eventTitle_title'><span class='eventTitle_date'>"+date+"</span><span class='eventTitle_str'>"+d.title+"</span></p>";
					
					//node += "<div class='eventPostHolder'></div>";
					
				node += "</div>";
				
				
				
				//詳細
				node += "<div class='eventDetail'>";
				
				node += "<div class='eventPostHolder'></div>";
				
				//投稿画像
				//node += "<div class='eventPostHolder'></div>";
				
				node += "<table class='eventDetailTbl'>";
					node += "<tr>";
					node += "<thead>";
						node += "<td class='event_description'><p>ABOUT</p></td>";
						node += "<td class='event_com'><p>COMMENT<a class='btn_comExpand' href='javascript:void(0);'>expand</a></p></td>";
						node += "<td class='event_member'><p>MEMBER</p></td>";
					node += "<thead>";
					node += "<tbody>";
						node += "<td class='event_description clearfix'>";
							node += "<p class='event_description_str'>";
							node += d.description.htmlEscapeAndStrToHTML();
							node += "</p>";
							
							node += "<div class='eventDetail_member'>created by "+$.DC.getMemberNameWithNode(d.member_id);+"</div>";

						node += "</td>";
						
						node += "<td class='event_com'>";
							var com = "";
							var ary = $.DC.getEventCom(d.id).reverse().asort("id").asort("date");

							
							for(var v=0, len2 = ary.length ; v < len2; v++) {
								var eventComD = ary[v];
								var LR = v%2 == 0 ? "L" : "R";
								var classLR = " eventCom_"+LR;
								com += "<div class='eventCom clearfix"+classLR+"' member_id='"+eventComD.member_id+"'>";
									com += 	"<div class='eventCom_com'>"+eventComD.comment.htmlEscapeAndStrToHTML();
										
										com += "<img class='fuki' src='images/fuki_"+LR+".png' width='18' height='13' alt='' title=''>";
									com += "</div>";
									
									var name = $.DC.getMember(eventComD.member_id).name;
									if(LR == "L"){
										name += "<span class='eventCom_date'>（"+$.U.dateForHTML(eventComD.date)+"）</span>";
									} else {
										name = "<span class='eventCom_date'>（"+$.U.dateForHTML(eventComD.date)+"）</span>" + name;
									}
									com += 	"<p class='eventCom_member'>"+name+"</p>";
								com += "</div>";
								
								
							}
							node += "<div class='eventComHolder clearfix'>"+com+"</div>";
							node += me.getComInputNode();
						node += "</td>";
						node += "<td class='event_member'></td>";
					node += "<tbody>";
					node += "</tr>";
				node += "</table>";
				
				//参加するボタン
				//if(udata) node += "<div class='joinHolder'><a href='javascript:void(0);'>参加する</a></div>";
				
				node += "</div>";	
			
			targetNode.empty().append(node);
			
			var eventComHolder = targetNode.find(".eventComHolder");
			
			if(isopen){
				targetNode.find(".eventDetail").show();
				//スクロール
				
				eventComHolder.scrollTop(eventComHolder.height());	
			}
			
			var comExpand = $.DC.LS("comExpand");
			
			if(comExpand == 1){
				eventComHolder.css("max-height", "none");
			}
			
			//カラー
			if(udata){
				var eventCom = targetNode.find(".eventCom[member_id="+udata.id+"]");
				eventCom.addClass("eventCom_owener");
				//fuki_R_owner.png
				
				eventCom.each(function(){
					var self2 = $(this);
					var src = self2.find("img").attr("src").replace(".png", "_owner.png");
					self2.find("img").attr("src", src);
				});
			}
			//参加メンバ
			me.updateJoinStatus(event_id);
			
		}
		
		/*---------------------------------------------------------------------------------------------------------*/
		P.updatePost = function(){
			var me = this;
			var event_id = this.mydata.id;
			var event = $(".event[event_id="+event_id+"]");
			var eventPostHolder = event.find(".eventPostHolder");
			me.updatePostData(function(){
				
				var node = "";
				var ary = $.DC.getEventPost(event_id);
				
				me.postDataAry = ary;
				
				for(var i=0, len = ary.length ; i < len; i++) {
					var d = ary[i];
					node += me.getPostNode(d);
				}
				eventPostHolder.empty().append(node);
				
				/*

				//初期座標
				eventPostHolder.find(".post").each(function(){
					var self = $(this);
					var x = -500 + Math.random()*1200;
					
					var y = 300 + Math.random()*300;
					self.css("left", x).css("top", y);
				});
*/
				
				//セルフポジションへ
				me.updatePostPositionAndMove();
			});
		}
		
		/*---------------------------------------------------------------------------------------------------------*/
		P.updatePostData = function(callback){
			var me = this;
			var member_id = "";
			var event_id = this.mydata.id;
			
			//開発
			event_id = 0;
			
			$.IF.getPost(member_id, event_id,  function(d){
				
				var node = "";
				var ary = d.ary;
				for(var i=0, len = ary.length ; i < len; i++) {
					$.DC.setData("eventpost", ary[i]);
				}
				
				
				if(callback) callback();
			});
					
		}
		
		
		/*---------------------------------------------------------------------------------------------------------*/
		P.getPostNode = function(d){
			var me = this;
			var node = "";
			var memberD = $.DC.getData("member",d.member_id);
			var username = "とうろくなし人";
			if(memberD){
				username = memberD.name;
			}
			
			var url = me.getImgUrl(d.imgurl);
			var date = d.date.replaceAll("_", ".");
			
			var body = d.body;
			var good = me.getGood(d.id);
			var picmode = "";
			if(me.picMode == "Big"){
				picmode = "postBig";
			} else {
				picmode = "postSmall";
			}
			
			node += "<div class='post "+picmode+"' num='"+d.id+"' good='"+good+"''>";
				node += "<div class='postimg'><img src='"+url+"' width='"+P.picW+"' height='"+P.picH+"' alt='' title=''></div>";
				
				node += "";
				node += "<p class='posttime'>"+date+"</p>";
				node += "<p class='postusername'>"+username+"</p>";
				node += "<p class='postbody'>"+body+"</p>";
				node += "<p class='btn_iine'><button>グッドね</button></p>";
				node += "<p class='post_good'>Good : "+good+"</p>";
				
			node += "</div>";
			return node;
		}
		
		/*---------------------------------------------------------------------------------------------------------*/
		P.getImgUrl = function(url){
			//var url = url.replace(/(.+?)\.(.+)/, "$1_endth.$2");
			var url = url.replace("/normal/", "/th/");
			
			if($.isLocal) url = "http://toshick.com/"+url;
			
			return url;
		}
		
		
		/*---------------------------------------------------------------------------------------------------------*/
		P.updateGood = function(post_id){
			var me = this;
			//node += "<p class='post_good'>Good : "+me.getGood(d.id)+"</p>";
			var good = me.getGood(post_id);
			$(".post[num="+post_id+"] .post_good").empty().append("Good : "+good).attr("good", good);;
			
		}
		/*---------------------------------------------------------------------------------------------------------*/
		P.getGood = function(post_id){
			var me = this;
			var count = 0;
			/*
var ary = $.DC.iine;
			for(var i=0; i < ary.length; i++) {
				var d = ary[i];
				if(d.eventpost_id == post_id){
					count++;
				}
			}
*/
			return count;
		}
		
		/*---------------------------------------------------------------------------------------------------------*/
		P.updatePostPositionAndMove = function(){
			this.updatePostPositionAry();
			this.moveToSelfPosition();
		}
		/*---------------------------------------------------------------------------------------------------------*/
		P.updatePostPositionAry = function(){
			var me = this;
			var gyo = 0;
			var retsu = 0;
			var retsuMax = me.postRetsuMax;
			var picH = me.picH;
			var picW = me.picW;;
			var ary = me.postDataAry;
			me.postPosAry = [];
			for(var i=0, len = ary.length; i < len; i++) {
				var d = ary[i];
				
				var x = retsu*picW;
				//var y = gyo*picH;
				var y = 0;
				
				me.postPosAry.push({x:x, y:y});
				
				retsu++
				/*
				if(retsu == retsuMax && i < len-1){
					gyo++;
					retsu = 0;
				}
				*/
			}
			//gyo++;
			
			//$("#picHolder").css("height", gyo*picH);
		}
		
		/*---------------------------------------------------------------------------------------------------------*/
		P.moveToSelfPosition = function(){
			var me = this;
			var event_id = this.mydata.id;
			var event = $(".event[event_id="+event_id+"]");
			var eventPostHolder = event.find(".eventPostHolder");
			
			var posAry = me.postPosAry.concat();
			var count = 0;
			eventPostHolder.find(".post").each(function(){
				var self = $(this);
				var pos = posAry.shift();
				count += 50;
				
				var delay = Math.round(count);
				
				self.css({position:"absolute", top:pos.y, left:pos.x});
				//self.stop(false, false).css("position","absolute").delay(delay).animate({ top : pos.y, left : pos.x}, {duration: 'slow', easing: 'easeInOutCubic', complete:function(){}});

				
			});
			
		}
		
		/*---------------------------------------------------------------------------------------------------------*/
		P.updateJoinStatus = function(event_id){
			var me = this;
			
			
			var event = $(".event[event_id="+event_id+"]");
			var node = "";
			//参加する
			node += getJoinMemberNode(1);
			//参加しない
			node += getJoinMemberNode(2);
			//保留
			node += getJoinMemberNode(3);
			
			node += "<div class='getPostURL'>";
				node += "<p class='btn_getPostURL'>投稿用アドレスを取得</p>";
				node += "<p class='getPostURL_str'>このイベントに対して投稿ができます。その投稿はメインエリアにも出ます。</p>";
			node += "</div>";
			
			event.find("tbody .event_member").empty().append(node);
			
			
			/*-----------------------------------------------------------
				参加メンバブロックを取得
			------------------------------------------------------------*/
			function getJoinMemberNode(status_id){
				var node = "";
				var ary = $.DC.getEventMember(event_id, status_id);
				
				node += "<div class='event_memberBlock'>";
					node += "<div class='event_memberHolder'>";
						node += "<div class='event_memberType' status_id='"+status_id+"'>"+$.DC.getData("joinstatus", status_id).label+"</div>";
						node += "<div class='event_memberList'>";
						
						if(!ary || ary.length == 0){
						
							node += "";
						} else {
							for(var v=0, len2 = ary.length ; v < len2; v++) {
								var eventMemD = ary[v];
								node +=	"<p>"+$.DC.getMemberNameWithNode(eventMemD.member_id)+"</p>";
								
							}
						}
						node += "</div>";
						
						
					node += "</div>";
				node += "</div>";
				return node;
			}
			
			
			
			/*---------------------------------------------------------------------------------------
				投稿用URLの取得
			---------------------------------------------------------------------------------------*/
			event.find(".btn_getPostURL").unbind("click").bind("click",function(e){ e.preventDefault(); e.stopPropagation();
				var self = $( this);
				
				me.getPostURL();
				
				return false;
				
			});
			


		}
		
		/*---------------------------------------------------------------------------------------------------------*/
		P.setBtnAction = function(){
			var me = this;
			
			var editableEvent = false;
			var udata = $.DC.getLoginUserData();
			if(udata && this.mydata.member_id == udata.id) editableEvent = true;
			
			
			
			
			var holder = $.EventLine.holder;
						
			
			/*---------------------------------------------------------------------------------------
				イベントオープン
			---------------------------------------------------------------------------------------*/
			holder.find(".eventTitle").unbind("click").bind("click",function(e){ e.preventDefault(); e.stopPropagation();
				var self = $( this);
				var eventDetail = self.parents(".event").find(".eventDetail");
				
				
				if(eventDetail.css("display") == "none"){
				
					eventDetail.slideDown("fast");
					
					
					
				} else {
					eventDetail.slideUp("fast");
					
					
				}
				
				
				return false;
				
			});
			
			/*---------------------------------------------------------------------------------------
				コメント入力
			---------------------------------------------------------------------------------------*/
			holder.find(".eventComInput .btn_edit_ok").unbind("click").bind("click",function(e){ e.preventDefault(); e.stopPropagation();
				var self = $( this);
				var eventComInput = self.parents(".eventComInput");
				
				var str = eventComInput.find("textarea").val().trim();
				if(!str) return;
				
				var udata = $.DC.getLoginUserData();
				var p = {};
				p.comment = str;
				p.member_id = udata.id;
				p.event_id = self.parents(".event").attr("event_id");
				
				$.IF.updateEventComment(null, p , function(d){
					if(d.ret.type == "ok"){
						
						var insertData = d.ret.insertData;
						//d.ret.insertData
						$.DC.setData("event_comment",insertData);
						new $.EventLine(insertData.event_id, true);
						
					} else {
						alert("ダメポ");
					}
					
				});
				
			});
			
			/*---------------------------------------------------------------------------------------
				参加状態を変更
			---------------------------------------------------------------------------------------*/	
			$(".event_memberType").die("click").live("click",function(e){ e.preventDefault(); e.stopPropagation();
				var self = $( this);
				var status_id = self.attr("status_id");
				var udata = $.DC.getLoginUserData();
				
				if(!udata) {
					$.U.onComplete("ログインせな");
					return;
				}
				
				var member_id = udata.id;
				var event_id = self.parents(".event").attr("event_id");
				var joinstatus_id = status_id;
								
				$.IF.updateEventMember(member_id, event_id, joinstatus_id, function(d){
					if(d.ret.type == "ok"){
						$.DC.setData("event_member", d.ret.targetData);
						me.updateJoinStatus(event_id);
					} else {
						alert("しっぱい");
					}
				});
				
				return false;
			});
			
			
			/*-------------------------------------------------------------------------------*/
			//ここ以降は編集可能な人だけが通る
			if(!editableEvent) return;
			
			
			//自分のイベントはカラー変更
			holder.find(".eventTitle").css({color:"#8e4923"});
			
			/*---------------------------------------------------------------------------------------
				イベントタイトル編集
			---------------------------------------------------------------------------------------*/		
			holder.find(".eventTitle_title").unbind("click").bind("click",function(e){ e.preventDefault(); e.stopPropagation();
				var self = $( this);
				return false;
				
			});
			holder.find(".eventTitle_title").unbind("dblclick").bind("dblclick",function(e){ e.preventDefault(); e.stopPropagation();
				var self = $( this);
				
				//作成者かチェック
				var udata = $.DC.getLoginUserData();
				var event = self.parents(".event");
				var event_id = event.attr("event_id");
				var eventD = $.DC.getData("event", event_id);
				if(eventD.member_id != udata.id) return;
				
				var eventTitle = self.parents(".eventTitle");
				eventTitle.unbind("click").css({cursor:"default"});
				
				var eventTitle_title = event.find(".eventTitle_title").hide();
				var ori_str = eventTitle_title.find(".eventTitle_str").html().strFromHTML();
				var ori_date = eventTitle_title.find(".eventTitle_date").html().strFromHTML();
				
				var node = "<div class='editHolder clearfix'>";
					node += "<p class='editHolder_L'>";
					node += "<span class='eventTitle_date'>date:<input class='eventTitle_input_date' value='"+ori_date+"'></span>";
					node += "title:<input class='eventTitle_input_title' value='"+ori_str+"'>";
						node += "<button class='btn_edit_ok'>OK</button><button class='btn_edit_cancel'>Cancel</button>";
					node += "</p>";
					node += "<p class='editHolder_R'>";
						node += "<button class='btn_edit_del'>Del</button>";
					node += "</p>";
				node += "</div>";
				
				eventTitle_title.after(node);
				//デイトピッカ
				event.find(".eventTitle_input_date").datepicker({ dateFormat: 'yy.mm.dd' }).datepicker( "setDate" , ori_date );
				
				
				
				var editHolder = event.find(".editHolder");
				var event_id = event.attr("event_id");
				
				/*---------------------------------------------------------------------------------------
					btn_edit_ok
				---------------------------------------------------------------------------------------*/
				editHolder.find(".btn_edit_ok").bind("click",function(e){ e.preventDefault(); e.stopPropagation();
					var self2 = $( this);
					
					var str = editHolder.find(".eventTitle_input_title").val().trim();
					if(!str) return;
					
					
					var p = {};
					p.title = str;
					p.date = editHolder.find(".eventTitle_input_date").val().trim().replace(/[^0-9]/g, "");
					
					
					$.IF.updateEvent(event_id, p , function(d){
						if(d.ret.type == "ok"){
							//var upD = d.ret.updateData;
							//f_close(upD.title.htmlEscapeAndStrToHTML(), $.U.dateForHTML(upD.date.htmlEscapeAndStrToHTML()));
							$.EventV.init();
						} else {
							alert("ダメポ");
						}
						
					});
					
					return false;
					
				});
				
				/*---------------------------------------------------------------------------------------
					btn_edit_cancel
				---------------------------------------------------------------------------------------*/
				editHolder.find(".btn_edit_cancel").bind("click",function(e){ e.preventDefault(); e.stopPropagation();
					var self2 = $( this);
					f_close();
					return false;
					
				});
				
				/*---------------------------------------------------------------------------------------
					btn_edit_del
				---------------------------------------------------------------------------------------*/
				editHolder.find(".btn_edit_del").bind("click",function(e){ e.preventDefault(); e.stopPropagation();
					me.makeEventDeleteUI(this);					
					return false;
					
				});
				
				/*---------------------------------------------------------------------------------------
					f_close
				---------------------------------------------------------------------------------------*/
				function f_close(title, date){
					
					if(title) eventTitle_title.find(".eventTitle_str").empty().append(title);
					if(date) eventTitle_title.find(".eventTitle_date").empty().append(date);
					
					eventTitle_title.show();
					eventTitle.css({cursor:"pointer"}).find(".editHolder").remove();
					
					me.setBtnAction();
				}
				
				
				
				return false;
				
			});
		
			/*---------------------------------------------------------------------------------------
				イベント説明
			---------------------------------------------------------------------------------------*/
			holder.find("tbody .event_description").unbind("dblclick").bind("dblclick",function(e){ e.preventDefault(); e.stopPropagation();
				var self = $( this);
				
				
				//作成者かチェック
				var udata = $.DC.getLoginUserData();
				var event = self.parents(".event");
				var event_id = event.attr("event_id");
				var eventD = $.DC.getData("event", event_id);
				if(eventD.member_id != udata.id) return;
				
				
				self.unbind("dblclick");
				
				var event_description_str = self.find(".event_description_str");
				var ori = event_description_str.html();
				var myH = event_description_str.outerHeight();
				if(myH < 100) myH = 100;
				
				var node = "<div class='editHolder'>";
					node += "<p><textarea>"+ori.strFromHTML()+"</textarea></p>";
					node += "<div>";
						node += "<button class='btn_edit_ok'>OK</button><button class='btn_edit_cancel'>Cancel</button>";
					node += "</div>";
				node += "</div>";
				
				self.find(".event_description_str").hide();
				self.find(".eventDetail_member").hide();
				self.css({"min-height": myH}).append(node);
				self.find("textarea").css({"height": myH});
				
				/*---------------------------------------------------------------------------------------
					btn_edit_ok
				---------------------------------------------------------------------------------------*/
				self.find(".btn_edit_ok").bind("click",function(e){ e.preventDefault(); e.stopPropagation();
					var self2 = $( this);
					
					var str = self.find("textarea").val().trim();
					if(!str) return;
					
					var event_id = self.parents(".event").attr("event_id");
					var p = {};
					p.description = str;
					
					$.IF.updateEvent(event_id, p , function(d){
						if(d.ret.type == "ok"){
							f_close(d.ret.updateData.description.htmlEscapeAndStrToHTML());
						} else {
							alert("ダメポ");
						}
						
					});
					
					return false;
					
				});
				
				/*---------------------------------------------------------------------------------------
					btn_edit_cancel
				---------------------------------------------------------------------------------------*/
				self.find(".btn_edit_cancel").bind("click",function(e){ e.preventDefault(); e.stopPropagation();
					var self2 = $( this);
					f_close();
					return false;
					
				});
				
				/*---------------------------------------------------------------------------------------
					f_close
				---------------------------------------------------------------------------------------*/
				function f_close(str){
				
					if(str) {
						event_description_str.empty().append(str);
					} 
					self.css({"min-height": "inherit"}).find(".editHolder").remove();
					event_description_str.show();
					self.find(".eventDetail_member").show();
					me.setBtnAction();
				}
			});
			
			
			
		}
		
		
		/*---------------------------------------------------------------------------------------------------------*/
		P.makeEventDeleteUI = function(torriger){
			var me = this;
			var event = $(torriger).parents(".event");
			var event_id = event.attr("event_id");
			
			var node = "";
			node += "<div class='editHolder_Del_cover'></div>";
			node += "<div class='editHolder_Del_cont'>";
				node += "<table class='editHolder_Del_continside'>";
					node += "<tr><td>";
					node += "<p>このイベントを削除するよ<button class='btn_edit_ok'>Delete OK</button><button class='btn_edit_cancel'>Cancel</button></p>";
					node += "</td></tr>";
				node += "</table>";
			node += "</div>";
			event.append(node);
			
			var editHolder_Del_cover = event.find(".editHolder_Del_cover");
			var editHolder_Del_cont = event.find(".editHolder_Del_cont");
			/*---------------------------------------------------------------------------------------
				btn_edit_ok
			---------------------------------------------------------------------------------------*/
			editHolder_Del_cont.find(".btn_edit_ok").bind("click",function(e){ e.preventDefault(); e.stopPropagation();
				var self2 = $( this);
				
				
				$.IF.delEvent(event_id, function(d){
					if(d.ret.type == "ok"){
						$.EventV.init();
					} else {
						alert("ダメポ");
					}
					
				});
				
				return false;
				
			});
			
			/*---------------------------------------------------------------------------------------
				btn_edit_cancel
			---------------------------------------------------------------------------------------*/
			editHolder_Del_cont.find(".btn_edit_cancel").bind("click",function(e){ e.preventDefault(); e.stopPropagation();
				var self2 = $( this);
				f_close();
				return false;
				
			});
			
			/*---------------------------------------------------------------------------------------
				f_close
			---------------------------------------------------------------------------------------*/
			function f_close(){
				editHolder_Del_cover.remove();
				editHolder_Del_cont.remove();
				
			}
		}
		
		/*---------------------------------------------------------------------------------------------------------*/
		P.getComInputNode = function(){
			
			if(!$.DC.logined) return "";
			
			var node = "<div class='eventComInput'>";
				node += "<p><textarea></textarea></p>";
				node += "<p><button class='btn_edit_ok'>OK</button><button class='btn_edit_cancel'>Cancel</button></p>";
			node += "</div>";
			return node;
		}
		
		/*---------------------------------------------------------------------------------------------------------*/
		//投稿用メールアドレス取得
		P.getPostURL = function(){
			var udata = $.DC.getLoginUserData();
			if(!udata) {
				$.U.onComplete("ログインしてこのイベントに参加セナ");
				return;
			
			}
			
			var event_id = this.mydata.id
			var flg = $.DC.isLoginUserJoiningEvent(event_id);
			if(flg){
				$.IF.sendEventPostURL(udata.id, event_id, function(d){
					if(d.ret.type == "ok"){
						$.U.onComplete("投稿用メールアドレスをメールで送ったよ");
					} else {
						$.U.onComplete("しっぱいだ");
					}
				
				});
				
			} else {
				$.U.onComplete("このイベントに参加セナ");
			}
		}
	}
)();
