function validate_email(id, lang) {
		
	var email = $(id).value;
		
	if ( email == "" ) {
		if ( lang == 'en' ) {
			alert("Please enter an email");
		} else if ( lang == 'ja' ) {
			alert("メールアドレスを入力してください。");
		}		
		return false;
	}
	else if ( !/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email) ) {
		if ( lang == 'en' ) {
			alert("Please enter a valid email");
		} else if ( lang == 'ja' ) {
			alert("有効なメールアドレスを入力してください。");
		}
		return false;
		
	} else {

		var url = '/include/validation.php';
		var params = 'email=' + email;
		var ajax = new Ajax.Request( url, {method:'post', parameters: params, onSuccess: function(t) {
			
			$('email_input_hidden').value = t.responseText;
			if ( t.responseText == "taken" ) {
				if ( lang == 'en' ) {
					alert("Sorry this email has already been registered.");
				} else if ( lang == 'ja' ) {
					alert("このメールアドレは、アカウントにすでに登録されています。");
				}
			} else if ( t.responseText == "free" ) {
				Element.hide('step1_link_off');
				Element.show('step1_link');
			}		
			} } );
	}
	var userval = $('email_input_hidden').value;
	if ( userval == "free" ) {
		return true;
	} else if ( userval == "taken" ) {
		return false;
	}

}

function cal_nav(year, month, user) {

		var url = '/components/calendar.php';
		var params = 'year=' + year + '&month=' + month + '&user=' + user + '&ajax=true';
		var ajax =  new Ajax.Updater( 'calendar' ,url, {method:'get', parameters: params, onSuccess:function() {
				} });

}

function past_chal_cal_nav(year, month) {

		var url = '/components/past_chal_calendar.php';
		var params = 'year=' + year + '&month=' + month + '&ajax=true';
		var ajax =  new Ajax.Updater( 'calendar' ,url, {method:'get', parameters: params, onSuccess:function() {
				} });

}


function rotate(post_id, filename, angle) {
	var url = '/include/rotate_image.php';
	var params = 'post_id=' + post_id + '&filename=' + filename + '&angle=' + angle;
	var ajax =  new Ajax.Updater('image_holder', url, {method:'post', parameters: params, onSuccess:function(){}});
}


function delete_post(id, username, page, lang) {
	if ( lang == 'en' ) {
		var really = confirm("Are you sure you want to delete this post?");
	} else if ( lang == 'ja' ) {
		var really = confirm("ポストを削除？");
	}
	if (really == true) {
		var url = '/include/delete_post.php';
		var params = 'id=' + id + '&username=' + username;
		var ajax =  new Ajax.Request(url, {method:'post', parameters: params, onSuccess:function() {
			if ( page == 'listpage' ) {
				Effect.Fade('post' + id );
			} else {
				window.location = '/' + username + '/';
			}
			
		}});
	} else {
		return false;
	}
}


function qrcode_gen() {
	
		var email = $('qs_email').value;
			
		var url = '/include/qs_emailsaver.php';
		var params = 'email=' + email;
		var ajax =  new Ajax.Updater('step2',  url, {method:'post', parameters: params, onSuccess:function() {
		} });
}

function qs_pu(email_prefix) {
		var url = '/include/qs_postchecker.php';
		var params = 'email_prefix=' + email_prefix;
		new Ajax.PeriodicalUpdater('step3', url , {method:'post', parameters: params, asynchronous:true, frequency:5 });
}

function toggle_comments(id) {
	if ( Element.visible(id) ) {
		Effect.SlideUp(id);
	} else {
		Effect.SlideDown(id);
	}
}

function toggle_thumbsize(id, path, file, width, height) {
	if ( Element.hasClassName( 'post' + id + '_thumb', 'post_image' ) ) {
		//Effect.Fade('post01_text', {duration: 0.2});
		$('post' + id + '_text').morph('color: #fff;', {duration: 0.2});
		Effect.Fade('post' + id + '_thumb_img', {duration: 0.2, afterFinish:function(){
			$('post' + id + '_thumb').morph('width: ' + width + 'px; height: ' + height + 'px', {duration: 0.8, afterFinish:function(){
			  Element.removeClassName( 'post' + id + '_thumb' , 'post_image');
				Element.addClassName( 'post' + id + '_thumb' , 'post_image_enlarged');
				$('post' + id + '_thumb_img').src = path + file;
				$('enlarge_post' + id).src = '/shared/images/icon_arrow_ul.gif';
				Effect.Appear('post' + id + '_thumb_img', {duration: 0.2});
				//Effect.Appear('post01_text', {duration: 0.2});
				$('post' + id + '_text').morph('color: #333;', {duration: 0.2});
			}});

		}});

	} else {
		$('post' + id + '_text').morph('color: #fff;', {duration: 0.2});
		//Effect.Fade('post01_text', {duration: 0.2});
		Effect.Fade('post' + id + '_thumb_img', {duration: 0.2, afterFinish:function(){
			$('post' + id + '_thumb').morph('width: 120px; height: 120px', {duration: 0.8, afterFinish:function(){
				Element.removeClassName( 'post' + id + '_thumb' , 'post_image_enlarged');
				Element.addClassName( 'post' + id + '_thumb' , 'post_image');
				$('post' + id + '_thumb_img').src = path + "thumbs/l-" + file;
				$('enlarge_post' + id).src = '/shared/images/icon_arrow_dr.gif';
				Effect.Appear('post' + id + '_thumb_img', {duration: 0.2});
				//Effect.Appear('post01_text', {duration: 0.2});
				$('post' + id + '_text').morph('color: #333;', {duration: 0.2});
			}});


		}});
	}
}


function entry_info( id, action ) {
	if ( action == 'show' ) {
		$('entry_' + id ).style.background = "#000"; 
		Effect.Appear('entry_' + id + '_info', { duration: 0.2 });
		//$('entry_' + id + '_info').morph('opacity: 1.0;	filter: alpha(opacity=100);', {duration: 0.2});
		//Element.addClassName( 'entry_' + id + '_info' , 'opacity100');
	} else {
		$('entry_' + id ).style.background = "#333"; 
		Effect.Fade('entry_' + id + '_info', { duration: 0.2 });
		//$('entry_' + id + '_info').morph('opacity: 0;	filter: alpha(opacity=0);', {duration: 0.2});
		//Element.addClassName( 'entry_' + id + '_info' , 'opacity0');
	}

}


function add_rating(post_id, username, rating) {
		var url = '/include/add_rating.php';
		var params = 'post_id=' + post_id + '&username=' + username + '&rating=' + rating;
		
		var ajax =  new Ajax.Updater('rate_wrapper_' + post_id, url, {method:'post', parameters: params, onComplete:function(){ 
			Element.hide('rate_post_' + post_id);
			$('rate_wrapper_' + post_id + '_msg').innerHTML = "Rating added!";
			setTimeout( 'Effect.Fade(\'rate_wrapper_' + post_id + '_msg\', {duration: 0.5});', 1500   );
		}});
		
}


function post_sortby(order) {
	new Ajax.Request('/include/sortby_cookie.php', {method:'post', postBody:'sortby=' + order, onComplete:function(){
		location.reload(true);
	}});
}

function challenge_sortby(order) {
	new Ajax.Request('/include/sortby_cookie.php', {method:'post', postBody:'challenge_sortby=' + order, onComplete:function(){
		location.reload(true);
	}});
}


function edit_post(user, title_url) {
	//save changes here
	window.location = '/' + user + '/edit/' + title_url + '/';
}

function save_post_edits(status) {
		if ( status == 'unpublish' ) {
			//Element.hide('subheader_published');
			//Element.show('subheader_draft');
			$('publish_button').innerHTML = '<input class="edit_form_button" type="submit" value="Publish" onclick="$(\'status\').value = \'publish\';" />';
		}	else if ( status == 'publish' ) {
			//Element.show('subheader_published');
			//Element.hide('subheader_draft');
			$('publish_button').innerHTML = '<input class="edit_form_button" type="button" value="Unpublish" onclick="$(\'status\').value = \'unpublish\'; save_post_edits(\'unpublish\');" />';
		}	
		var url = '/include/save_edits.php';
		var post_id = escape($('post_id').value);
		var username = escape($('username').value);
		var title = escape($('title_input').value);
		var datetime = escape($('datetime_input').value);
		var text = escape($('text_input').value);
		var ajax =  new Ajax.Updater('form_msg', url, {method:'post', parameters:Form.serialize('edit_form'), onComplete:function(){
			if ( status == 'publish_new' ) {
				window.location = '/' + username + '/';
			}	
			var ajax2 =  new Ajax.Updater('edit_post_list', '/components/edit_post_list.php', {method:'post', parameters: 'reload=true&post_id=' + post_id, onComplete:function(){ }});
		}});
}

function delete_comment(post_id, id, username, lang, view) {
	if ( lang == 'en' ) {
		var really = confirm("Are you sure you want to delete this comment?");
		var comment_txt = 'Comments: ';
	} else if ( lang == 'ja' ) {
		var really = confirm("コメントを削除？");
		var comment_txt = 'コメント: ';
	}
	if (really == true) {
		var url = '/include/delete_comment.php';
		var params = 'post_id=' + post_id + '&id=' + id + '&username=' + username;
		var ajax =  new Ajax.Request(url, {method:'post', parameters: params, onSuccess:function() {
			Effect.Fade('comment' + id );

			if ( view == 'view' ) {
				comment_txt = '';
				var counter = $('comment_count_post' + post_id );
			} else {
				var counter = $('view_comment_header');
			}
			
			var comment_count_str = counter.innerHTML;
			comment_count = comment_count_str.match(/\d+/g);
			var com_count = comment_count[0] * 1;
			var new_comment_count_str = comment_txt + (com_count - 1);
			counter.innerHTML = new_comment_count_str;
					
							
				} });
	} else {
		return false;
	}
}


function replace_image(filename, randhash, post_id, user) {
	var html = '<span id="image_holder"><img id="current_image" class="post_l_thumb" src="/shared/images/user_files/' + user + '/' + filename + '?q=' + randhash + '"  alt="' + filename + '" /></span><span id="icon_drawer" style="display: none;" >Rotate<img id="rotate_ccw_icon" src="/shared/images/icon_rotate_ccw.gif" onclick="rotate( \'' + post_id + '\', \'' + filename + '\', \'90\' )"><img id="rotate_cw_icon" src="/shared/images/icon_rotate_cw.gif" onclick="rotate( \'' + post_id + '\', \'' + filename + '\', \'-90\')" /></span>';
	parent.document.getElementById('edit_image').innerHTML = html;

	parent.document.getElementById('publish_button').disabled=false;
	parent.document.getElementById('save_button').disabled=false;
	
}


function replace_img(id, filename, size) {
	var src = '/shared/images/avatar_files/thumbs/' + size + '-' + filename;
	parent.document.getElementById( id ).src = src;
}

function replace_bodybg( filename ) {
	var src = '/shared/images/wallpaper/' + filename;
	parent.document.body.style.background = '#303030 url(' + src + ') top left repeat';
}

function group_image_true() {
	parent.document.getElementById('image_true').value = 'true';
}


function save_new_post() {
		var url = '/include/save_edits.php';

		var post_id = escape($('post_id').value);
		var username = escape($('username').value);
		var title = escape($('title_input').value);
		var datetime = escape($('datetime_input').value);
		var text = escape($('text_input').value);
		var ajax =  new Ajax.Updater('form_msg', url, {method:'post', parameters:Form.serialize('edit_form'), onComplete:function(){
		}});
}

function reset_challenge_form() {
	$('new_challenge_keyword').value = "";
	$('new_challenge_form_msg').innerHTML = "";
	Element.hide('new_challenge_form_msg');
	$('new_challenge_keyword').style.background = '#ffc';
}


function challenge_check() {

		var url = '/include/challenge_check.php';
		
		var keyword = escape($('new_challenge_keyword').value);
		var lang = escape($('new_challenge_lang').value);

		if ( keyword == '' ) {
			if ( lang == 'en' ) {
				var msg = 'Please enter a key word!';
			} else if ( lang == 'ja' ) {
				var msg = 'キーワードを入力してください。';
			}
			Element.show('new_challenge_form_msg');
			$('new_challenge_form_msg').innerHTML = msg;
			$('new_challenge_keyword').style.background = '#fcc';
			$('new_challenge_keyword').focus();
		} else if ( keyword.length < 3 ) {
			if ( lang == 'en' ) {
				var msg = 'A keyword must be a minimum of 3 characters.';
			} else if ( lang == 'ja' ) {
				var msg = '3字から、キーワードを入力してください。';
			}
			Element.show('new_challenge_form_msg');
			$('new_challenge_form_msg').innerHTML = msg;
			$('new_challenge_keyword').style.background = '#fcc';
			$('new_challenge_keyword').focus();
		} else if ( keyword.length > 80 ) {
			if ( lang == 'en' ) {
				var msg = 'A keyword can only contain a maximum of 80 characters.';
			} else if ( lang == 'ja' ) {
				var msg = '13字まで、キーワードを入力してください。';
			}
			Element.show('new_challenge_form_msg');
			$('new_challenge_form_msg').innerHTML = msg;
			$('new_challenge_keyword').style.background = '#fcc';
			$('new_challenge_keyword').focus();
		} else {
			var ajax = new Ajax.Request( url, {method:'post', parameters: Form.serialize('new_challenge_form'), onComplete:function(t){
				if ( t.responseText == "too_many" ) {
					if ( lang == 'en' ) {
						var msg = 'Sorry, you can only add up to 3 challenges per hour.';
					} else if ( lang == 'ja' ) {
						var msg = '一時間に３チャレンジまでです。';
					}					
					$('new_challenge_form_msg').innerHTML = msg;
					$('new_challenge_keyword').style.background = '#ffc';
					$('new_challenge_keyword').value = "";
				} else if ( t.responseText != "ok" ) {
					Element.show('new_challenge_form_msg');
					$('new_challenge_form_msg').innerHTML = t.responseText;
					$('new_challenge_keyword').style.background = '#fcc';
					$('new_challenge_keyword').focus();
				} else {
					add_new_challenge();
					$('new_challenge_keyword').value = "";
					$('new_challenge_keyword').style.background = '#ffc';
				}			
			}});
		}
}


function add_new_challenge() {

		var url = '/include/add_new_challenge.php';
		var lang = escape($('new_challenge_lang').value);

		var ajax = new Ajax.Updater( 'challenge_postits', url, {method:'post', parameters: Form.serialize('new_challenge_form'), onComplete:function(){
			if ( lang == 'en' ) {
				var msg = 'Challenge successfully added!';
			} else if ( lang == 'ja' ) {
				var msg = 'チャレンジを参加されました!';
			}
			Element.show('new_challenge_form_msg');
			$('new_challenge_form_msg').innerHTML = msg;
			Effect.Shake('justadded');
		}});

}

function empty() {

}

function add_vote(id, voter, current_vote) {
		var url = '/include/add_vote.php';
		var params = 'c_id=' + id + '&voter=' + voter;
		var ajax =  new Ajax.Updater('top10_challenge_list', url, {method:'post', parameters: params, onComplete:function(){
			if ( current_vote >= 20 ) {
				current_vote = 20;
			}
			var new_fontsize = 'font-size: ' + (10 + (current_vote * 2)).toString() + 'px';
			$('challenge_postit_' + id).morph( new_fontsize, {duration: 0.4});
			$('challenge_postit_' + id).style.cursor = 'default';
			Element.removeClassName('challenge_postit_' + id, 'not_voted');
			Element.addClassName('challenge_postit_' + id, 'voted');
			$('challenge_postit_' + id + '_votes').innerHTML = (current_vote*1) + 1;

			new Effect.Highlight('queue_' + id, { duration: 1.5 });
			
			$('challenge_postit_' + id).onclick = empty();
		}});
}



function postit_hover(id, action) {
	
	if ( action == 'on' ) {
		Element.show('challenge_postit_info_' + id);
		//Element.removeClassName('challenge_postit_' + id, 'challenge_postit');
		//Element.addClassName('challenge_postit_' + id, 'challenge_postit_hover');
	} else {
		Element.hide('challenge_postit_info_' + id);
		//Element.removeClassName('challenge_postit_' + id, 'challenge_postit_hover');
		//Element.addClassName('challenge_postit_' + id, 'challenge_postit');
	}
	
}

function fp_recent_random(sort) {

	if ( sort == 'friends' ) {

	var url = '/components/fp_friends_posts.php';

	} else if ( sort == 'recent' ) {

	var url = '/components/fp_recent_posts.php';

	} else {

	var url = '/components/fp_random_posts.php';

	}

	var params = 'ajax=true';
	var ajax =  new Ajax.Updater('fp_recent_random', url, {method:'post', parameters: params});

}

function friends_everyones_posts(sort) {

	if ( sort == 'friends' ) {

	var url = '/components/fp_friends_posts.php';

	} else if ( sort == 'recent' ) {

	var url = '/components/fp_recent_posts.php';

	}

	var params = 'ajax=true';
	var ajax =  new Ajax.Updater('friends_everyones_posts', url, {method:'post', parameters: params});

}




function fp_intro_quickstart_toggle(banner) {

	if ( banner == 'quickstart') {
		Element.hide('fp_intro');
		Element.show('fp_quickstart');
	} else {
		Element.hide('fp_quickstart');
		Element.show('fp_intro');
	}

}

function add_entry_vote(id, prefix, voter, entry_user, lang) {
		var url = '/include/add_entry_vote.php';
		var span = prefix + id + '_votes';
		var params = 'post_id=' + id + '&voter=' + voter + '&entry_user=' + entry_user + '&span=' + span;
		var ajax =  new Ajax.Updater(span, url, {method:'post', parameters: params, onComplete:function(t){
			if ( prefix == 'post_' ) {
				Element.removeClassName( prefix + id + '_voterlink', 'green');
				Element.addClassName( prefix + id + '_voterlink', 'pink');
				if ( t.responseText == 1 ) {
					if ( lang == 'en' ) {
						$('voter_label').innerHTML = 'vote';
					}
				} else if ( t.responseText == 2 ) {
					if ( lang == 'en' ) {
						$('voter_label').innerHTML = 'votes';
					}
				}
			} else {				
				Element.removeClassName( prefix + id + '_voterlink', 'voter');
				Element.addClassName( prefix + id + '_voterlink', 'voter_voted');
			}
			new Effect.Pulsate(span, {pulses: 4});

		}});
}


function edit_post_list_pag(list, id) {
		var url = '/components/edit_post_list.php';
		var params = 'reload=true&list=' + list + '&id=' + id;
		var ajax =  new Ajax.Updater('edit_post_list', url, {method:'post', parameters: params, onComplete:function(){}});
}

function friends_list_pag(list, user) {
		var url = '/components/friends_list.php';
		var params = 'reload=true&list=' + list + '&user=' + user;
		var ajax =  new Ajax.Updater('friends', url, {method:'post', parameters: params, onComplete:function(){}});
}

function challenge_list_pag(list, user) {
		var url = '/components/challenges_list.php';
		var params = 'reload=true&list=' + list + '&user=' + user;
		var ajax =  new Ajax.Updater('challenges_entered', url, {method:'post', parameters: params, onComplete:function(){}});
}

function group_list_pag(list, user) {
		var url = '/components/group_list.php';
		var params = 'reload=true&list=' + list + '&user=' + user;
		var ajax =  new Ajax.Updater('groups', url, {method:'post', parameters: params, onComplete:function(){}});
}

function add_friend(username, friend) {
		var url = '/include/add_friend.php';
		var params = 'username=' + username + '&friend=' + friend;
		var ajax =  new Ajax.Updater('mypikki_header_info', url, {method:'post', parameters: params, onComplete:function(){}});
}

function members_list_pag(list, group_id) {
		var url = '/components/group_member_list.php';
		var params = 'reload=true&list=' + list + '&group_id=' + group_id;
		var ajax =  new Ajax.Updater('members', url, {method:'post', parameters: params, onComplete:function(){}});
}



function change_friend_status(username, friend, status, lang) {

		if ( status == 'accept_sent' ) {
			if ( lang == 'en' ) {
				var msg = 'Add ' + friend + ' to your friends?';
			} else {
				var msg = '友達リストに追加しますか?';
			}			
		} else if ( status == 'declined' ) {
			if ( lang == 'en' ) {
				var msg = 'Decline ' + friend + '\'s offer of friendship?';
			} else {
				var msg = 'リクエストを拒否しますか？';
			}			
		}
	
		var response = confirm(msg)
		
		if ( response ) {
			var url = '/include/change_friend_status.php';
			var params = 'username=' + username + '&friend=' + friend + '&status=' + status;
			var ajax =  new Ajax.Request( url, {method:'post', parameters: params, onComplete:function(){
				if ( status == 'accept_sent' ) {
					Element.hide('accept_decline_' + friend);
					Element.removeClassName('friend_' + friend, 'pending');
				} else {
					Effect.Fade('friend_' + friend);
				}
			}});
		} else {
			return false;
		}
}


function vote_hover(state, id, vote) {
	if ( state == "on") {
		//$('entry_' + id).style.background = "transparent url(/shared/images/small_thumb_border_pink.gif) 0 0 no-repeat;";
		$('entry_' + id + '_voter').style.color = "#ff0066";
		$('entry_' + id + '_voter').innerHTML = 'Vote?';
	} else {
		//$('entry_' + id).style.background = "transparent url(/shared/images/small_thumb_border.gif) 0 0 no-repeat;";
		$('entry_' + id + '_voter').style.color = "#333";
		$('entry_' + id + '_voter').innerHTML = vote;
	}
}

function chal_list_pag(page) {
		var url = '/components/challenges_list.php';
		var params = 'page=' + page;
		var ajax =  new Ajax.Updater('challenges_entered', url, {method:'post', parameters: params, onComplete:function(){}});
}


function report(type, id, lang) {
	if ( lang == 'en' ) {
		var msg = 'Report this ' + type + ' to the administrators?';
	} else if ( lang == 'ja' ) {
		if ( type == 'post' ) {
			type_ja = 'ポスト';
		} else {
			type_ja = 'チャレンジ';
		}
		var msg = 'この' + type_ja + 'について、不適切な内容についてを管理者に通報致しますか？';
	}
	var really = confirm(msg);
	if (really == true) {
		var url = '/include/report_mailer.php';
		var params = 'type=' + type + '&id=' + id;
		if ( type == 'challenge' ) {
			var update_element = 'challenge_info_';
		} else {
			var update_element = 'post_report_';
		}
		var ajax =  new Ajax.Updater( update_element + id, url, {method:'post', parameters: params, onComplete:function(){
			if ( type == 'challenge' ) {
				var post_it = 'challenge_postit_info_' + id;
				Element.show(post_it);
				setTimeout('Effect.Fade( \'' + post_it + '\', {duration: 0.5 } );', 2000);
			} else {
				
			}			
		}});
	}
}


function loginarea_msg(lang) {
	window.scrollTo(0,0);
	if ( lang == 'en' ) {
		var msg = 'Please login to vote!';
	} else {
		var msg = 'ログインして下さい。';
	}	
	$('user_login_error').innerHTML = '<span style="color: #ff0000;" >' + msg + '</span>';
	new Effect.Pulsate('user_login_error', {pulses: 4});
}


function toggle_qrcode(id, action) {	
	if ( action == 'show' ) {
		Element.hide('qrcode_link');
		Element.hide('qrcode_small_' + id);
		Element.show('qrcode_large_' + id);
	} else {
		Element.show('qrcode_link');
		Element.show('qrcode_small_' + id);
		Element.hide('qrcode_large_' + id);
	}
}

function send_invite(lang) {
	Form.disable('invite_form_form');
	var email = $('invite_email').value
		
	if ( email == "" ) {
		if ( lang == "en" ) {
			alert('Please enter an email address.');
		} else {
			alert('メールアドレスを入力してください。');
		}
    Element.setStyle( 'invite_email', {background:'#ffcccc'} );
		return false;
	}
	else if ( !/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email) ) {
		if ( lang == "en" ) {
			alert('Please enter a valid email address.');
		} else {
			alert('有効なメールアドレスを入力してください。');
		}
    Element.setStyle('invite_email', {background:'#ffcccc'} );
		return false;
	}
	else {
		
		var url = '/include/invite_mailer.php';
		var params = 'email=' + email;
		var ajax =  new Ajax.Updater('invites_left', url, {method:'post', parameters: params, onComplete:function(){
		Element.hide('invite_form_input');
		}});
	}

}

function validate_group(lang) {
	var title = $('title').value;
	var desc = $('desc').value;

	var empty_title = title.replace(/^\s*/, "");
	var empty_desc = desc.replace(/^\s*/, "");
		
	if ( $('image_true').value != 'true' ) {
		if ( lang == "en" ) {
			alert('Please upload or select an image!');
		} else {
			alert('イメージを選んで下さい。');
		}
		return false;
	} else if ( empty_title == '' ) {
		if ( lang == "en" ) {
			alert('Please enter a title.');
		} else {
			alert('タイトルを入力してください。');
		}
		return false;
	} else if ( empty_desc == '' ) {
		if ( lang == "en" ) {
			alert('Please enter a description.');
		} else {
			alert('記述を入力してください。');
		}
		return false;
	} else {
		return true;
	}
}


function add_group_member( id, url2) {
		var url = '/include/add_group_member.php';
		var params = 'group_id=' + id;
		var ajax = new Ajax.Request( url, { method:'post', parameters: params, onComplete:function(){
				window.location = url2;
		}});
}


function toggle_topicform() {
	if ( Element.visible( 'add_topic') ) {
		Effect.BlindUp('add_topic', {duration: 0.5});
	} else {
		Effect.BlindDown('add_topic', {duration: 0.5});
	}
}

function add_group_topic(lang) {
		var title = $('topic_title').value;
		var desc = $('topic_desc').value;
		if ( title == '' ) {
			if ( lang == "en" ) {
				alert('Please enter a title.');
			} else {
				alert('タイトルを入力してください。');
			}
			return false;
		} else if ( desc == '' ) {
			if ( lang == "en" ) {
				alert('Please enter a description.');
			} else {
				alert('記述を入力してください。');
			}
			return false;
		} else {	
			var url = '/include/add_topic.php';
			var ajax = new Ajax.Updater('topic_list', url, {method:'post', parameters:Form.serialize('add_topic'), onComplete:function(){
				$('add_topic').reset();
				Effect.BlindUp('add_topic', {duration: 0.5});
			}});
		}
}

function add_group_comment(form, lang, reply) {
		var desc = $( form + '_body').value;
		var empty_desc = desc.replace(/^\s*/, "");

		if ( reply != 'reply' ) {
			var comment_count = ($('comment_count').value*1) + 1;
			var comments_per_page = $('comments_per_page').value;  
			var current_page = $('current_page').value;
			var group_url =  $('group_url').value;
			var topic_url =  $('topic_url').value;
		} else {
			var comment_count = '';
			var comments_per_page = '';  
			var current_page = '';
		}
	
		if ( empty_desc == '' ) {
			if ( lang == "en" ) {
				alert('Please enter a comment.');
			} else {
				alert('コメントを入力してください。');
			}
			return false;
		} else {	
			var url = '/include/add_group_comment.php';
			
			if ( comment_count > ( comments_per_page * current_page ) ) {

			var ajax = new Ajax.Request( url, {method:'post', parameters:Form.serialize(form), onComplete:function(){

				window.location = '/groups/' + group_url + '/topics/' + topic_url + '/page-' + ( (current_page*1) + 1 ) + '/';
							
			}});				
	
			} else {

			var ajax = new Ajax.Updater('comments_bubbles', url, {method:'post', parameters:Form.serialize(form), onComplete:function(){
				if ( reply != 'reply' ) {
					$( form + '_body').value = '';
					$('comment_count').value = ($('comment_count').value * 1) + 1;
				}
			}});
	
			}
		
		}
}


function toggle_reply_form(id) {
	if ( Element.visible( id ) ) {
		Effect.BlindUp( id, {duration: 0.5});
	} else {
		Effect.BlindDown( id, {duration: 0.5} );
	}
}

function add2group(post_id, lang) {
	var url = '/include/add_photo2group.php';
	var group_id = $('add2group_select').value;
	var params = 'post_id=' + post_id + '&group_id=' + group_id;
	var ajax = new Ajax.Updater('add2group_select', url, {method:'post', parameters: params, onComplete:function(){
		if ( lang == 'en' ) {
			$('add2group_msg').innerHTML = 'This photo has been successfully added!';
		} else if ( lang == 'ja' ) {
			$('add2group_msg').innerHTML = 'グループに参加しました！';
		}		
		Effect.BlindDown('add2group_msg', {duration: 0.5} );
		setTimeout( 'Effect.BlindUp(\'add2group_msg\', {duration: 0.5} );', 4000 )		
	}});	
}



function remove_temp_photos(group_id, group_url) {

		var url = '/include/remove_temp_photos.php';
		var params = 'group_id=' + group_id;
		var ajax = new Ajax.Request( url, {method:'post', parameters: params, onComplete:function(){
	
			window.location = '/groups/' + group_url + '/addphotos/';
	
		}});
}



function delete_group_comment( comment_id, lang, group_id ) {

	if ( lang == 'en' ) {
		var really = confirm("Are you sure you want to delete this comment?");
	} else if ( lang == 'ja' ) {
		var really = confirm("コメントを削除？");
	}
	if (really == true) {
		var url = '/include/delete_group_comment.php';
		var params = 'comment_id=' + comment_id + '&group_id=' + group_id;
		var ajax = new Ajax.Request( url, {method:'post', parameters: params, onComplete:function(){
	
			Effect.Fade('comment' + comment_id);
	
		}});
	}
}


function my_stuff_select(view) {
		
	Element.addClassName('my_stuff_nav_' + view, 'selected');
	Element.show(view);

	if ( view == 'friends' ) {
		if ( Element.visible( 'groups' ) ) {
			Element.hide('groups');
			Element.removeClassName('my_stuff_nav_groups', 'selected');
		} else {
			Element.hide('challenges_entered');
			Element.removeClassName('my_stuff_nav_challenges_entered', 'selected');
		}

	} else if ( view == 'groups' ) {
		if ( Element.visible( 'friends' ) ) {
			Element.hide('friends');
			Element.removeClassName('my_stuff_nav_friends', 'selected');
		} else {
			Element.hide('challenges_entered');
			Element.removeClassName('my_stuff_nav_challenges_entered', 'selected');
		}
	} else if ( view == 'challenges_entered' ) {
		if ( Element.visible( 'friends' ) ) {
			Element.hide('friends');
			Element.removeClassName('my_stuff_nav_friends', 'selected');
		} else {
			Element.hide('groups');
			Element.removeClassName('my_stuff_nav_groups', 'selected');
		}
	}
	
}

function hideshow() {
		
	Element.show('groups');


}

function character_count(max_chara, lang, textarea, counter) {
	var string = $(textarea).value;
	var chara_no = string.length;
	var chara_left = max_chara - chara_no;

	if ( chara_no > max_chara ) {
		var chara_over = chara_no - max_chara;		
		if ( lang == 'en' ) {
			$(counter).innerHTML = chara_over + ' characters over the limit. Your profile text will be truncated.';
		} else if ( lang == 'ja' ) {
			$(counter).innerHTML = chara_over + '文字多い。プロファイル記述を切り詰められます。';
		}		
	} else {
		if ( lang == 'en' ) {
			$(counter).innerHTML = 'Characters left: ' + chara_left;
		} else if ( lang == 'ja' ) {
			$(counter).innerHTML = '残り文字: ' + chara_left;
		}	
	}

}


function toggle_edit_group_desc(lang) {

	if ( lang == 'en' ) {
		var toggle_html_close = '<img src="/shared/images/icon_close.gif" class="icon" alt="close icon" />Close';
		var toggle_html_open = '<img src="/shared/images/icon_edit.gif" class="icon" alt="edit icon" />Edit description';
	} else {
		var toggle_html_close = '<img src="/shared/images/icon_close.gif" class="icon" alt="close icon" />閉じる';
		var toggle_html_open = '<img src="/shared/images/icon_edit.gif" class="icon" alt="edit icon" />編集記述';
	}

	
	if ( Element.visible( 'view_group_desc' ) ) {
		Effect.BlindUp('view_group_desc', { duration: 0.5, afterFinish:function(){
			
			Effect.BlindDown('form_wrapper', {duration: 0.8, afterFinish:function(){

				Effect.Appear('edit_group_desc', { duration: 0.0 });

				$('toggle_edit_group_desc').innerHTML = toggle_html_close;

			}});
	
		}});
				
	} else {

		Effect.Fade('edit_group_desc', { duration: 0.0, afterFinish:function(){

			Effect.BlindUp('form_wrapper', {duration: 0.8, afterFinish:function(){
			
				Effect.BlindDown('view_group_desc', { duration: 0.5 });

				$('toggle_edit_group_desc').innerHTML = toggle_html_open;
			
			}});

		}} );

		

	}
}

