$(function() {
	
	// 注釈を入れる
	if ($('.auto_explain').get(0)) {
		
		var exp = 'IKEA FAMILYのメールアドレス';
		var field = $('.auto_explain').get(0);
		var init_val = field.value;
		if (init_val == '' || init_val == exp) {
			field.value = exp;
			$(field).css({ color: 'gray' });
		}
		
		$('.auto_explain').click(function () {
			var val = this.value;
			if (val == exp) {
				this.value = '';
				$(field).css({ color: 'black' });
			}
		});
		
		$('.auto_explain').blur(function() {
			var val = this.value;
			if (val == '') {
				this.value = exp;
				$(field).css({ color: 'gray' });
			}
		});
	}
});

function getMinikeFlash() {
	var app = $(document).get(0)["minikeView"];
	if (!app) {
		app = $(document).get(0)["minikeGallery"];
	}
	return app;
}

function submit_login (page) {
	var form       = document.LoginForm;
	var email      = form.email.value;
	var password   = form.password.value;
	var save_login = (form.save_login && form.save_login.value) ? 1 : 0;
	
	if (!email || !password) {
		alert('ID, PASS を入力して下さい。');
		return false;
	}
	
	// フォームの無効化
	if ($('#loginarea').get(0)) {
		$('#loginarea').block({
			message: '<nobr><img src="/images/ajax-load.gif">processing...</nobr>',
			css    : {
				width: '150px',
				padding: '5px',
				border: '3px solid #FFCC33',
				'font-family': 'Arial',
				'font-size': '14px',
				color: '#ccc'
			}
		});
	}
	else if ($('#login').get(0)) {
		$('#login').block({
			message: '<nobr><img src="/images/ajax-load.gif">processing...</nobr>',
			css    : {
				width: '150px',
				padding: '5px',
				border: '3px solid #FFCC33',
				'font-family': 'Arial',
				'font-size': '14px',
				color: '#ccc'
			}
		});
	}
	else {
		document.LoginForm.email.disabled=true;
		document.LoginForm.password.disabled=true;
		if ($('#login_button').get(0)) {
			$('#login_button').get(0).disabled=true;
		}
	}
	
	$.post("/index.cgi", {
		actmode    : "LoginDo",
		email      : email,
		password   : password,
		page       : page,
		save_login : save_login,
		t          : (new Date()).getTime()
	}, function (data) {
		
		if (data.match('go_user_input')) {
			location.href = '/index.cgi?actmode=UserInput';
		}
		// コメント一覧画面でログアウトした場合は
		// リロードする
		else if (location.href.match('actmode=CommentList')) {
			location.reload();
		}
		else {
			if ($('#loginarea').get(0)) {
				$('#loginarea').html(data);
			}
			else if ($('#login').get(0)) {
				$('#login').html(data);
			}
			
			// フラッシュへ通知
			getMinikeFlash().logged_in();
		}
		
	});
	
	return false;
}

function submit_logout(page) {
	
	if (!window.confirm('ログアウトします。よろしいですか？')) {
		return;
	}
	
	if ($('#logout_button').get(0)) {
		$('#logout_button').get(0).disabled=true;
	}
	
	$.post("/index.cgi", {
		actmode : "LoginLogout",
		page    : page,
		t       : (new Date()).getTime()
	}, function (data) {
		
		// プロフィール編集画面でログアウトした場合は
		// トップへ戻る
		if (location.href.match('actmode=UserInput')) {
			location.href = '/index.cgi?actmode=Top';
		}
		// コメント一覧画面でログアウトした場合は
		// リロードする
		else if (location.href.match('actmode=CommentList')) {
			location.reload();
		}
		else {
			if ($('#loginarea').get(0)) {
				$('#loginarea').html(data);
			}
			else if ($('#login').get(0)) {
				$('#login').html(data);
			}
			
			// フラッシュへ通知
			getMinikeFlash().logged_out();
		}
	});
}


function is_login () {
	if ($('#i_am_logged_in').get(0)) {
		return true;
	}
	else {
		return false;
	}
}

function get_guide_path(html) {
	if (html == undefined) {
		html = '01.html';
	}
	return '/guide/' + html;
}

function popup_guide(html) {
	window.open(
		get_guide_path(html),
		'guide',
		'width=1024,menubar=no,toolbar=no,scrollbars=yes,resizable=yes');
}


function popup_article_input (group_type, campaignid) {
	
	if (!is_login()) {
		alert('ログインしていないため、投稿できません。ログインフォームからログインして下さい。');
		return;
	}
	
	if (group_type == undefined || group_type == '') {
		group_type = 'home';
	}
	
	if (campaignid == undefined) {
		campaignid = '';
	}
	
	window.open(
    '/index.cgi?actmode=ArticleInput&group_type=' + group_type + '&campaignid=' + campaignid,
    'article_input',
    'width=520,height=600,menubar=no,toolbar=no,scrollbars=yes');

}

function popup_article_edit (articleid) {

	if (!is_login()) {
		alert('ログインしていないため、投稿できません。ログインフォームからログインして下さい。');
		return;
	}
	
	if (articleid == undefined || new RegExp("\D").test(articleid)) {
		alert('不適切なパラメータが指定されました。');
		return;
	}
	
	window.open(
    '/index.cgi?actmode=ArticleInput&articleid=' + articleid,
    'article_edit',
    'width=520,height=600,menubar=no,toolbar=no,scrollbars=yes');
}

function get_cookie () {
	return document.cookie;
}

function get_user_agent () {
	return navigator.userAgent;
}

var myPageOpened = false;
var myPageType = "favorite";

function showMyPage() {
	if ($('div#mypage_container').get(0)) {
		if (!myPageOpened) {
			showFavorite(1);
			myPageOpened = true;
		}
		blockBackground();
		$('div#mypage_container').slideDown('slow', adjustPosition);
	}
	else {
		location.href = '/index.cgi?actmode=View&mypage=1';
	}
}

function hideMyPage() {
	unblockBackground();
	$('div#mypage_container').slideUp('slow', adjustPosition);
}

function blockBackground() {
	$.blockUI({ message: null, overlayCSS: { cursor: "default" }, baseZ: 900 });
}

function unblockBackground() {
	$.unblockUI();
}

var favorite_page = 1;
function showFavorite(page) {
	myPageType = "favorite";
	favorite_page = page;
	blockMyPage();
	$.post('/index.cgi', { actmode: 'FavoriteList', page: page }, refreshMyPage);
}

var myarticle_page = 1;
function showMyArticle(page) {
	myPageType = "myarticle";
	myarticle_page = page;
	blockMyPage();
	$.post('/index.cgi', { actmode: 'MyArticleList', page: page }, refreshMyPage);
}

var pickup_page = 1;
function showPickUp(page) {
	myPageType = "pickup";
	pickup_page = page;
	blockMyPage();
	$.post('/index.cgi', { actmode: 'PickUpList', page: page }, refreshMyPage);
}

function deleteMyPage(actmode, page) {
	var articleids = [];
	var f = $('#deleteForm').formToArray(true);
	for (var i=0; i<f.length; i++) {
		var k = f[i].name;
		if (k.indexOf('delete_') === 0) {
			articleids.push(k.substring(7));
		}
	}
	
	if (articleids.length != 0) {
		if (confirm("選択された写真を削除しますか？")) {
			blockMyPage();
			$.post('/index.cgi', { actmode: actmode, page: page, articleid: articleids.join(',') }, refreshMyPage);
			
			var app = getMinikeFlash();
			if (actmode === "MyArticleDelete") {
				app.myarticle_removed(articleids);
			}
			else if (actmode === "PickUpDelete") {
				app.pickup_removed(articleids);
			}
		}
	}
	else {
		alert("写真が選択されていません");
	}
}

function deleteFavorite(page) {
	deleteMyPage('FavoriteDelete', page);
}

function deleteMyArticle(page) {
	deleteMyPage('MyArticleDelete', page);
}

function deletePickUp(page) {
	deleteMyPage('PickUpDelete', page);
}

function permitComment(articleid, flag) {
	blockMyPage();
	var permit = flag ? 1 : 0;
	$.post('/index.cgi', { actmode: "MyArticlePermitComment", page: myarticle_page, articleid: articleid, permit: permit }, refreshMyPage);
}

function blockMyPage() {
	// フォームの無効化
	$('#mypage').block({
		message: '<nobr><img src="/images/ajax-load-large.gif"><span style="vertical-align:super">processing...</div></nobr>',
		css    : {
			width: '150px',
			padding: '5px',
			border: '3px solid #FFCC33',
			'font-family': 'Arial',
			'font-size': '16px',
			color: '#ccc'
		}
	});
}

function refreshMyPage(data) {
	$('#mypage_container').empty().append(data);
	adjustPosition();
}

var myPageTypeFunctionMap = {
	favorite:  [showFavorite, favorite_page],
	myarticle: [showMyArticle, myarticle_page],
	pickup:    [showPickUp, pickup_page]
};

function refreshMyPageBySelf() {
	if (myPageType === "favorite") {
		showFavorite(favorite_page);
	}
	else if (myPageType === "myarticle") {
		showMyArticle(myarticle_page);
	} 
	else if (myPageType === "pickup") {
		showPickUp(pickup_page);
	} 
}

function refreshMyPageByChild() {
	var parent = window.opener;
	if (parent.myPageType === "favorite") {
		parent.showFavorite(parent.favorite_page);
	}
	else if (parent.myPageType === "myarticle") {
		parent.showMyArticle(parent.myarticle_page);
	} 
	else if (parent.myPageType === "pickup") {
		parent.showPickUp(parent.pickup_page);
	} 
}

// for Safari 3 on Windows
function adjustPosition() {
	document.body.scrollTop = 0;
}

