/*
 *1	初期処理
 */

//var CA_LF = "\n";
/*
 *1	jQuery.ready
 */
jQuery(document).ready(function(){
	jQuery(window)
	.resize(me.common.resize)
	.resize();
	
	me.init();
	if (me.page){
		if (me.page.init){
			me.page.init();
		}
	}
	
	jQuery(window).resize();
});


/*
 *1	window.me
 */
window.me = {
	/*
	 *2	param
	 */
	param : {
		/*
		 *3 search
		 */
		search : {
			lastQuery : ''
		}
	}
	/*
	 *2	parts
	 */
	,
	parts : {}
	/*
	 *2	init
	 */
	,
	init : function(){
		aulta.utility.skypeout();
		
	}
	,
	/*
	 *2	common
	 */
	common : {
		/*
		 *3	resize
		 */
		resize : function(){
			var windowW = jQuery(window).aultaWidth()
				, windowH = jQuery(window).aultaHeight()
				;
			if (me.page){
				if (me.page.resize){
					me.page.resize();
				}
			}
		}
	}
	,
	/*
	 *2 bbs
	 */
	bbs : {
		/*
		 *
		 */
		init : {
			run : function(){
			
				aulta.addBody.emojiList();
				
				
				var s = '';
				s += '<ul>';
					s += '<li><a href="/info/kiyaku/">利用規約</a>/<a href="/info/instructions/">注意事項</a>/<a href="/info/instructions/">カテゴリのローカルルール</a>を熟読して下さい。</li>';
					s += '<li><span style="color:red;">ｽﾚｯﾄﾞの先頭付近</span>に有益な情報があるかもしれませんので確認をお勧めします。</li>';
					s += '<li>';
						s += '<span style="color:#ff0000;">宣伝/広告/求人を目的とした投稿は規定の広告料を請求します</span>';
					s += '</li>';
					s += '<li>他の利用者に対して[お前][死ね][殺す]は禁止語句です。</li>';
					s += '<li>投稿内容に対する責任は投稿者が負います。</li>';
					s += '<li>不適切な投稿は予告なく削除します。</li>';
				s += '</ul>';
				jQuery('body')
				.append(
					jQuery('<div>').attr('id', 'dialog_bbs_instructions').css('text-align', 'left')
					.html(s)
				);
				jQuery('#dialog_bbs_instructions')
				.dialog({
					title : '投稿について',
					autoOpen : false,
					width : 500,
					buttons : {
						'閉じる' : function(){jQuery(this).dialog('close');}
					}
				});
			}
		}
		,
		/*
		 *3 info
		 */
		info : {
			/*
			 *4 regist
			 */
			regist : function(){
				return jQuery('<div>')
					.addClass('main_area')
					.addClass('bbs_list')
					.css('color', 'black')
					.css('background-color', '#FFE4E1')
					.html('投稿を行うためにはログインが必要です。')
					.append(
						jQuery('<input type="button" value="詳しくはこちら" onclick="document.location.href = \'/info/\';" />')
						//.click(function(){
						//	document.location.href = '/info/';
						//})
					);
			}
		}
		,
		/*
		 *3 res
		 */
		res : {
			/*
			 *4 click
			 */
			click : function(thisObj, jq, threadNo, resNo, withParent){
				if (jq.css('display') == 'block'){
					jQuery(thisObj).val('レスを書く');
					jq.hide(300);
					if (withParent) jq.parent().hide(300);
				} else {
					jQuery(thisObj).val('レスフォームを隠す');
					if (jq.text().length == 0){
						me.bbs.res.createResForm(jq, threadNo, resNo);
					}
					if (withParent) jq.parent().show();
					jq.show(300);
				}
			}
			,
			/*
			 *4 createResForm
			 */
			createResForm : function(jqThis, threadNo, resNo){
				var text = ''
					, formId = 'res_form' + threadNo + '_' + resNo;
				if (resNo > 0) text = '>>' + resNo + "さん\n";
				jqThis
				.append(
					jQuery('<form>')
					.attr('id', formId)
					.append(jQuery('<h4>', {text : '本文'}))
					.append(jQuery('<textarea name="Note"></textarea>').html(text).addClass('res_body'))
					.append(
						jQuery('<div>').addClass('cbox').addClass('res_info')
						.append(
							jQuery('<div>').addClass('res_left')
							.append(
								jQuery('<div>').addClass('area')
								.append(jQuery('<h4>', {text : '名前'}).append(jQuery('<span>').text('省略可')))
								.append(jQuery('<input type="text" name="UserName" value="' + me.page.param.username + '" />'))
							)
							.append(
								jQuery('<div>').addClass('area')
								.append(jQuery('<h4>', {text : 'トリップ'}).append(jQuery('<span>').text('省略可')))
								.append(jQuery('<input type="text" name="UserTrip" value="' + me.page.param.trip + '" />'))
							)
						)
						.append(
							jQuery('<div>').addClass('res_buttons')
							.append(
								jQuery('<input type="button" />').val('絵文字')
								.click(function(){
									jQuery('#dialog_emoji_list')
									.attr('objectkey_key', formId)
									.dialog('close')
									.dialog('open')
									.uiDialogPosSet(200, 0);
								})
							)
							.append(
								jQuery('<input type="button" />').val('注意事項を読む(※必読)').css('color', 'red')
								.click(function(){
									jQuery('#dialog_bbs_instructions')
									.dialog('close')
									.dialog('open')
									.uiDialogPosSet(0, 0);
								})
							)
							.append(
								jQuery('<input type="button" rel="' + formId + '" />').val('投稿する')
								.click(function(){
									me.bbs.res.save(jQuery(this).attr('rel') );
								})
							)
						)
					)
					.append(
						jQuery('<div>')
						.append(jQuery('<input id="res_sage_' + formId + '" type="checkbox" name="FlgSage" />').val('1'))
						.append(jQuery('<label>').attr('for', 'res_sage_' + formId).text('sage(スレを上げない)'))
					)
					.append(
						jQuery('<div>')
						.append(jQuery('<input id="res_myid_' + formId + '" type="checkbox" name="FlgVisibleUserId" />').val('1'))
						.append(jQuery('<label>').attr('for', 'res_myid_' + formId).text('MyIDを表示（※意味の分からない人はチェックしないでください。）'))
					)
					.append(
						jQuery('<input type="hidden" name="threadno" value="' + threadNo + '" />')
					)
				);
				jQuery('#' + formId + ' input[type="text"]').addClass('textbox');
				jQuery('#' + formId + ' textarea').addClass('textbox');
				jQuery('#' + formId + ' input[type="checkbox"]').parent().addClass('checkbox');
				jQuery('#' + formId + ' input[type="radio"]').parent().addClass('radiobox');
				jQuery('#' + formId + ' input[type="button"]').addClass('button');
				jQuery('#' + formId).aultaFormAddEvent();
			}
			,
			/*
			 *4 save
			 */
			save : function(formId){
				if ( ! confirm('投稿してもよろしいですか？')) return;
				jQuery.ajax({
					type: 'POST',
					url: '/ajax/' + me.page.param.url.write + aulta.text.time(),
					data: 'ajax=ajax'
						+ '&command=write_res'
						+ '&pagemax=' + me.page.param.pagemax
						+ '&direct=' + me.page.param.direct
						+ jQuery('form#' + formId).aultaGetFormParam(),
					cache: false,
					success: function(html){
						var jq = jQuery(html);
						if (jq.attr('rel') == '1'){
							alert(jq.text());
							setTimeout(function(){
								jQuery('form#' + formId).parent().parent().find('.button_res').click();
							}, 1000);
						} else if (jq.attr('rel') == '2'){
							alert(jq.text());
							document.location.href = './';
						} else {
							var bbsListTop = jQuery('.bbs_list').eq(2).offset().top - 100,
								classname = 'new_' + (new Date()).getTime();
							me.page.param.pagemax = jq.attr('pagemax');
							me.page.param.username = jq.attr('user_name');
							me.page.param.trip = jq.attr('trip');
							jQuery('.bbs_list').eq(1)
							.after(
								jQuery('<div>').addClass('bbs_list main_area').addClass(classname)
								.hide()
								.append(
									jq.find('#latest').html()
								)
							)
							;
							jQuery('form#' + formId).find('textarea[name="Note"]').val('');
							jQuery('form#' + formId).find('input[name="FlgSage"]').attr('checked', '').parent().css('color', 'black');
							jQuery('form#' + formId).find('input[name="FlgVisibleUserId"]').attr('checked', '').parent().css('color', 'black');
							me.page.bbs.initResForm(jQuery('.' + classname));
							jQuery('html,body').animate({ scrollTop: bbsListTop }, 'slow', null, function(){
								jQuery('.bbs_list').eq(2).show(500);
							});
						}
					},
					error : function(msg, status){
						var s = status + "\n\n" + '通信エラーが発生しました。';
						alert(s);
					}
				});
				jQuery('form#' + formId).parent().parent().find('.button_res').click();
			}
		}
		,
		/*
		 *3 link
		 */
		link : {
			/*
			 *4 init
			 */
			init : function(jqObject){
				jqObject.find('a[rel="in"]')
				.click(me.bbs.link.dialog)
				;
				jqObject.find('a[rel="jump"]')
				.click(function(){
					if (this.href.indexOf('url=http%3A%2F%2F' + location.hostname) > 0){
						document.location.href = this.href;
					} else {
						window.open(this.href);
					}
					return false;
				})
				;
				jqObject.find('a[rel="move"]')
				.click(function(){
					return confirm(jQuery(this).text() + "\n\nこのページから移動しますが、よろしいですか？");
				})
				;
			}
			,
			/*
			 *3 dialog
			 */
			dialog : function(){
				var id = 'link_dialog_' + (new Date()).getTime();
				jQuery('html,body').scrollTop(
					aulta.utility.bodyScrollTop() + 20	//	元のダイアログと重なるのを防ぐ
				);
				jQuery('body')
				.append(
					jQuery('<div>').attr('id', id).css('text-align', 'left')
					.append(aulta.text.loading)
				)
				;
				jQuery('#' + id)
				.dialog({
					autoOpen: false,
					modal : false,
					width: 580,
					height:300,
					title : '読込み中です・・・',
					buttons: {
						'閉じる' : function(){jQuery(this).dialog("close");}
					}
				})
				;
				jQuery('#' + id).dialog('open').uiDialogPosSet(100, 0);
				jQuery.ajax({
					type: 'POST',
					url: '/ajax/' + me.page.param.url.read + aulta.text.time(),
					data: 'ajax=ajax'
						+ '&command=dialog'
						+ '&href=' + jQuery(this).attr('href'),
					cache: false,
					success: function(html){
						var jq = jQuery(html);
						if (jq.attr('rel') == '1'){
							alert(jq.text());
							jQuery('#' + id).dialog('close');
						} else {
							jQuery('#' + id).parent().find('.ui-dialog-title').text('>>' + jq.attr('no'));
							jQuery('#' + id)
							.empty()
							.append(jq.children());
							jQuery('#' + id + ' .res .info').css('font-size', '12px');
							me.bbs.link.init(jQuery('#' + id));
						}
					},
					error : function(msg, status){
						var s = status + "\n\n" + '通信エラーが発生しました。';
						alert(s);
						jQuery('#' + id).dialog('close');
					}
				});
				return false;
			}
		}
	}
	/****/
};


