jQuery(document).ready(function($){
	
	changeView(true);
	
	var sharp = location.href.lastIndexOf('#');
	
	if(sharp > 0){
		var inpage_locate = location.href.substr(sharp + 1);
		if(inpage_locate == 'contact'){
			$('#contact_form_container').slideToggle();
		}else{
			showContents('#content_' + inpage_locate);
		}
	}
	
	window.validators['#name'] = "var _validate = function(){var target = $('#name');if((target.val()=='') || (target.val().length > 50)){return 'お名前（漢字）を30文字以内で入力してください';} return null;};_validate();";
	window.validators['#mail'] = "var _validate = function(){var target = $('#mail');if((target.val().length > 200) || ((target.val().length > 0) && !(is_email(target.val())))){return 'メールアドレスを200文字以内の正しい形式で入力してください';} return null;};_validate();";
	window.validators['#tel'] = "var _validate = function(){var target = $('#tel');if((target.val().length > 20) || ((target.val().length > 0) && !(is_telno(target.val())))){return '電話番号を20文字以内の正しい形式で入力してください';} return null;};_validate();";
	window.validators['#text'] = "var _validate = function(){var target = $('#text');if((target.val()=='') || (target.val().length > 4000)){return 'お問合せ内容を4000字以内で入力してください';} return null;};_validate();";

	$('#menu_top').bind('click', function(){
		showContents('#content_top');
		return false;
	});
	$('#menu_aboutus').bind('click', function(){
		showContents('#content_aboutus');
		return false;
	});
	$('#menu_service').bind('click', function(){
		showContents('#content_service');
		return false;
	});
	$('#menu_contact').bind('click', function(){
		$('#contact_form_container').slideToggle();
		return false;
	});
	
	$('#toggle_contact').bind('click', function(){
		$('#contact_form_container').slideToggle();
		return false;
	});
	$('#btn_cancel').bind('click', function(){
	
		if($('#btn_submit:visible').size() > 0){
				changeView(true);
		}else{
			$('#contact_form_container').slideUp(300, function(){
				changeView(true);
			});
		}
		return false;
	});
	
	$('#btn_confirm').bind('click', function(){
		if(!window.isValid()){
			return false;
		}
		$(':text').each(function(){
			$('#view_' + this.id).text($(this).val());
		});
		$('textarea').each(function(){
			$('#view_' + this.id).html($(this).val().nl2br());
		});
		
		changeView(false);
		return false;
	});
	
	$('#btn_submit').bind('click', function(){
		if(!window.isValid()){
			changeView(true);
			return false;
		}
		var result = $('#msg');
		result.contents().remove();
		result.append('<img src="_img/loading.gif" alt="送信中" style="vertical-align:middle;margin:6px;" />メールを送信しています...<br />');
		
		$('#form').ajaxSubmit({
			dataType: 'json'
			, success : function(data){
				
				var ret = eval(data);
				
				if(ret.success){
					result.contents().remove();
					result.append('入力内容を受付けました。<br />お問合せありがとうございました。');
					$('#contact_form_container').slideUp(300, function(){
						changeView(true);
						$('#btn_submit').css('display','none');
					});
				}else{
					result.contents().remove();
					result.append('お問い合わせの受付に失敗しました。<br />' + ret.message);
					changeView(true);
				}
			}
			, error : function(){
				result.contents().remove();
				result.append('お問い合わせの受付に失敗しました。一定時間お待ちいただいてからご利用ください。');
				changeView(true);
			}
		}); 
		return false;
	});
	
	
});

function showContents(selecter){
	if($(selecter + ':visible').size() > 0){
		return;
	}
	$('div#contents > div:visible').animate({
		'top' : '+=1500px'
	}, {
		duration : 200
		, complete : function(){
			$(this).hide()
			$(selecter).show().animate({
				'top' : '-=1500px'
			}, 200);
		}
	});
}

