$(document).ready(function(){

  $('#pageUpLink').click(function(evt){
    evt.preventDefault();
    $('html,body').animate({scrollTop:0}, 'fast');
  });

  var pageNums = 2;

  if (location.pathname.match(/~sample/)) {
    pageNums = 4;
  } else if (location.pathname.match(/deuxc/)) {
    pageNums = 3;
  }

	$("input[name=target_sel]").click(function(){
		if ($(this).val() == 'self') {
			$('.dest_need_mark').css('display','none');
		} else {
			$('.dest_need_mark').css('display','');
		}
	});

  $('#myform').submit(function(evt){
    evt.preventDefault();
    if($('#act').val() == 'confirm') {
      var page = $(this).attr('action').split('/')[pageNums];
      var flag = false;
      $('.errorMessage').empty();
      $('.error_message_sub').empty();
      // 発注処理
      if (page == 'order_form') {
        if(!$('#customer_name').val()){
          // 名前
          $('#error_for_customer_name').text('お名前が入力されていません。');
          flag = true;
        }
        if(!$('#customer_kana').val()){
          // カナ
          $('#error_for_customer_kana').text('フリガナが入力されていません。');
          flag = true;
        } else if ($('#customer_kana').val()){
          if($('#customer_kana').val().match(/[^ァ-ヶー]/)){
            $('#error_for_customer_kana').text('全角カタカナ以外の文字が入力されています。');
            flag = true;
          }
        }
        if(!$('#post_code').val()){
          // 郵便番号
          $('#error_for_post_code').text('郵便番号が入力されていません。');
          flag = true;
        }else{
          if($('#post_code').val().match(/[^0-9]/)){
            $('#error_for_post_code').text('半角数字以外の文字が入力されています。');
            flag = true;
          }
        }
        if($('#prefecture').val()=='0'){
          // 都道府県
          $('#error_for_prefecture').text('都道府県が入力されていません。');
          flag = true;
        }
        if(!$('#address').val()){
          // 住所
          $('#error_for_address').text('ご住所が入力されていません。');
          flag = true;
        }
        if(!$('#phone_no').val()){
          // 電話番号
          $('#error_for_phone_no').text('電話番号が入力されていません。');
          flag = true;
        }else{
          flag = phoneCheck(flag,'phone_no','電話番号');
        }
        if($('#fax_no').val()){
          // FAX番号
          flag = phoneCheck(flag,'fax_no','FAX番号');
        }
        if(!$('#email').val()){
          // メールアドレス
          $('#error_for_email').text('メールアドレスが入力されていません。');
          flag = true;
        }else {
          if(!inputMailCheck($('#email').val())){
            $('#error_for_email').text('正しくないメールアドレスです。');
            flag = true;
          }
        }
		if ($('#target_sel_1').attr('checked')) {

			if(!$('#customer_name_dest').val()){
				// 名前
				$('#error_for_customer_name_dest').text('お名前が入力されていません。');
				flag = true;
			}
			if(!$('#customer_kana_dest').val()){
				// カナ
				$('#error_for_customer_kana_dest').text('フリガナが入力されていません。');
				flag = true;
			} else if ($('#customer_kana_dest').val()){
				if($('#customer_kana_dest').val().match(/[^ァ-ヶー]/)){
					$('#error_for_customer_kana_dest').text('全角カタカナ以外の文字が入力されています。');
					flag = true;
				}
			}
			if(!$('#post_code_dest').val()){
				// 郵便番号
				$('#error_for_post_code_dest').text('郵便番号が入力されていません。');
				flag = true;
			}else{
				if($('#post_code_dest').val().match(/[^0-9]/)){
					$('#error_for_post_code_dest').text('半角数字以外の文字が入力されています。');
					flag = true;
				}
			}
			if($('#prefecture_dest').val()=='0'){
				// 都道府県
				$('#error_for_prefecture_dest').text('都道府県が入力されていません。');
				flag = true;
			}
			if(!$('#address_dest').val()){
				// 住所
				$('#error_for_address_dest').text('ご住所が入力されていません。');
				flag = true;
			}
			if(!$('#phone_no_dest').val()){
				// 電話番号
				$('#error_for_phone_no_dest').text('電話番号が入力されていません。');
				flag = true;
			}else{
				flag = phoneCheck(flag,'phone_no_dest','電話番号');
			}

		}
        if($("[name=target_sel]:checked").val()==undefined){
          // 届け先選択
          $('#error_for_target_sel').text('お届け先が入力されていません。');
          flag = true;
        }
        if($('#customer_kana').val()){
          // カナ（届け先）
          if($('#customer_kana').val().match(/[^ァ-ヶー]/)){
            $('#error_for_customer_kana').text('全角カタカナ以外の文字が入力されています。');
            flag = true;
          }
        }
        if($('#post_code').val()){
          // 郵便番号（届け先）
          if($('#post_code').val().match(/[^0-9]/)){
            $('#error_for_post_code').text('半角数字以外の文字が入力されています。');
            flag = true;
          }
        }
        if($('#phone_no').val()){
          // 電話番号（届け先）
          flag = phoneCheck(flag,'phone_no','電話番号');
        }
        if($("[name=gift_paper]:checked").val()=='1'){
          //のし
          if(!$('#gpaper_type').val()){
            $('#error_for_gpaper_type').text('のしの種類が入力されていません。');
            flag = true;
          }
          if($('#gpaper_kana').val()){
            if($('#gpaper_kana').val().match(/[^ァ-ヶー]/)){
              $('#error_for_gpaper_kana').text('全角カタカナ以外の文字が入力されています。');
              flag = true;
            }
          }
        }
        if ($("[name=use_point]:checked").val() == '1') {
          // ポイント
          if (!$('#use_point_num').val()) {
            $('#error_for_point').text('使用するポイント数が入力されていません。');
            flag = true;
          } else {
            if($('#use_point_num').val().match(/[^0-9]/)){
              $('#error_for_point').text('半角数字以外の文字が入力されています。');
              flag = true;
            } else {
              if ($('#use_point_num').val().toInt > $('#pointAvailable').val().toInt) {
                $('#error_for_point').text('残高以上のポイントは使用できません。');
                flag = true;
              } else {
                if ($('#use_point_num').val().toInt > $('#total_price').val().toInt) {
                  $('#error_for_point').text('合計額以上のポイントは使用できません。');
                  flag = true;
                }
              }
            }
          }
        }
      }
      // 会員登録申請
      if (page == 'customer_regist') {
        if(!$('#name').val()){
          // 氏名
          $('#error_for_name').text('氏名が入力されていません。');
          flag = true;
        }
        // フリガナ
        if(!$('#kana').val()){
    		$('#error_for_kana').text('フリガナが入力されていません。');
    		flag = true;
        }else{
        	//2010.02.19 update
        	//if($('#kana').val().match(/[^ァ-ン]/)){
        	if($('#kana').val().match(/[^ァ-ヶー]/)){
        		$('#error_for_kana').text('全角カタカナ以外の文字が入力されています。');
        		flag = true;
        	}
        }
        if(!$('#post_code').val()){
          // 郵便番号
          $('#error_for_post_code').text('郵便番号が入力されていません。');
          flag = true;
        }else{
          if($('#post_code').val().match(/[^0-9]/)){
            $('#error_for_post_code').text('半角数字以外の文字が入力されています。');
          }
        }
        if($('#prefecture').val()=='0'){
          // 都道府県
          $('#error_for_prefecture').text('都道府県が入力されていません。');
          flag = true;
        }
        if(!$('#address').val()){
          // 住所
          $('#error_for_address').text('ご住所が入力されていません。');
          flag = true;
        }
        if(!$('#phone_no').val()){
          // 電話番号
          $('#error_for_phone_no').text('電話番号が入力されていません。');
          flag = true;
        }else{
          flag = phoneCheck(flag,'phone_no','電話番号');
        }
        if(!$('#email').val()){
          // メールアドレス
          $('#error_for_email').text('メールアドレスが入力されていません。');
          flag = true;
        }else {
          if(!inputMailCheck($('#email').val())){
            $('#error_for_email').text('正しくないメールアドレスです。');
            flag = true;
          }
        }
        if(!$('#password').val()){
          // パスワード
          $('#error_for_password').text('パスワードが入力されていません。');
          flag = true;
        }else {
          if($('#password').val().match(/[[^!-^]]/)){
            $('#error_for_password').text('半角数字記号以外の文字が入力されています。');
            flag = true;
          }else{
            if($('#password').val().length < 4){
              $('#error_for_password').text('パスワードは4桁以上を設定してください。');
              flag = true;
            }
          }
        }
      }
      // 返品・交換
      if (page == 'claim') {
        if(!$('#name').val()){
          // 氏名
          $('#error_for_name').text('氏名が入力されていません。');
          flag = true;
        }
        if($('#kana').val()){
          // フリガナ
          if($('#kana').val().match(/[^ァ-ヶー]/)){
            $('#error_for_kana').text('全角カタカナ以外の文字が入力されています。');
            flag = true;
          }
        }
        if(!$('#email').val()){
          // メールアドレス
          $('#error_for_email').text('メールアドレスが入力されていません。');
          flag = true;
        }else {
          if(!inputMailCheck($('#email').val())){
            $('#error_for_email').text('正しくないメールアドレスです。');
            flag = true;
          }
        }
        if($("[name=purpose]:checked").val()==undefined){
          // 内容
          $('#error_for_purpose').text('内容が選択されていません。');
          flag = true;
        }
        // 2009.12.10 uchida add 注文番号・商品名・理由のエラーチェック追加 start
        if(!$('#order_no').val()){
        	//注文番号
        	$('#error_for_order_no').text('注文番号が入力されていません。');
        	flag = true;
        }
        if(!$('#item_name').val()){
        	//商品名
        	$('#error_for_item_name').text('商品名が入力されていません。');
        	flag = true;
        }
        if(!$('#reason').val()){
        	//理由
        	$('#error_for_reason').text('理由が入力されていません。');
        	flag = true;
        }
        // 2009.12.10 uchida add end
      }
      // メルマガ登録
      if (page == 'magazine_regist') {
        if(!$('#email').val()){
          // メールアドレス
          $('#error_for_email').text('メールアドレスが入力されていません。');
          flag = true;
        }else {
          if(!inputMailCheck($('#email').val())){
            $('#error_for_email').text('正しくないメールアドレスです。');
            flag = true;
          }
        }
      }
      // プレゼント応募
      if (page == 'present_form') {
        if(!$('#name').val()){
          // お名前
          $('#error_for_name').text('お名前が入力されていません。');
          flag = true;
        }
        if($('#kana').val()){
          // フリガナ
          if($('#kana').val().match(/[^ァ-ヶー]/)){
            $('#error_for_kana').text('全角カタカナ以外の文字が入力されています。');
            flag = true;
          }
        }
        if($('#age').val()){
          // 年齢
          if($('#age').val().match(/[^0-9]/)){
            $('#error_for_age').text('半角数字以外の文字が入力されています。');
            flag = true;
          }
        }
        if(!$('#post_code').val()){
          // 郵便番号
          $('#error_for_post_code').text('郵便番号が入力されていません。');
          flag = true;
        }else{
          if($('#post_code').val().match(/[^0-9]/)){
            $('#error_for_post_code').text('半角数字以外の文字が入力されています。');
            flag = true;
          }
        }
        if(!$('#address').val()){
          // ご住所
          $('#error_for_address').text('ご住所が入力されていません。');
          flag = true;
        }
        if(!$('#phone_no').val()){
          // 電話番号
          $('#error_for_phone_no').text('電話番号が入力されていません。');
          flag = true;
        }else{
          flag = phoneCheck(flag,'phone_no','電話番号');
          //if($('#phone_no').val().match(/[^0-9]/)){
          //  $('#error_for_phone_no').text('半角数字以外の文字が入力されています。');
          //  flag = true;
          //}
        }
        if(!$('#email').val()){
          // メールアドレス
          $('#error_for_email').text('メールアドレスが入力されていません。');
          flag = true;
        }else {
          if(!inputMailCheck($('#email').val())){
            $('#error_for_email').text('正しくないメールアドレスです。');
            flag = true;
          }
        }
      }
      if(flag) {
        errorMessageDisplay();
        return false;
      }
    }
    $('#myform')[0].submit();
  });

  $('#myform2').submit(function(evt){
    evt.preventDefault();
    if($('#act').val() == 'confirm') {
      var page = $(this).attr('action').split('/')[pageNums];
      var flag = false;
      $('.errorMessage2').empty();
      $('.error_message_sub').empty();
      // メルマガ変更
      if (page == 'magazine_regist') {
        if(!$('#old_email').val()){
          // 旧アドレス
          $('#error_for_old_email').text('旧アドレスが入力されていません。');
          flag = true;
        }
        if(!$('#new_email').val()){
          // 新アドレス
          $('#error_for_new_email').text('新アドレスが入力されていません。');
          flag = true;
        }else {
          if(!inputMailCheck($('#new_email').val())){
            $('#error_for_new_email').text('正しくないメールアドレスです。');
            flag = true;
          }
        }
      }
      if(flag) {
        errorMessageDisplay();
        return false;
      }
    }
    $('#myform2')[0].submit();
  });

});

function errorMessageDisplay() {
  $('.errorMessage').hide();
  $('.errorMessage').text('入力項目にエラーがあります。');
  $('.errorMessage').fadeIn();
}

var inputMailCheck = function(mail) {
  var str = "[A-Za-z0-9][A-Za-z0-9-_.]*[A-Za-z0-9]@([A-Za-z0-9][A-Za-z0-9-_.]*[A-Za-z0-9]\\.)+[A-Za-z]{2,}$";
  if(mail.match(str)){
    return true;
  }else{
    return false;
  }
}

var phoneCheck = function(flag,id,name) {
	var matches1 = $('#'+id).val().match(/^[0-9-]{6,9}$|^[0-9-]{12}$/);
	var matches2 = $('#'+id).val().match(/^\d{1,4}-\d{4}$|^\d{2,5}-\d{1,4}-\d{4}$/);
	if ($('#'+id).val() && !$('#'+id).val().match(/[-]/)) {
		$('#error_for_'+id).text('ハイフンを入力してください。');
		return true;
	} else if ($('#'+id).val() && !matches1 && !matches2) {
		if (name) {
			$('#error_for_'+id).text('正しくない'+name+'形式です。');
		} else {
			$('#error_for_'+id).text('正しくない番号形式です。');
		}
		return true;
	} else {
		return flag;
	}
}


