var nullCheck = function(flag,id,name) {
	if (!$('#'+id).val()) {
		$('#error_for_'+id).text(name+'が入力されていません。');
		return true;
	} else {
		return flag;
	}
}

var nullSelectedCheck = function(flag,id,name) {
	if (!$('#'+id).val()) {
		$('#error_for_'+id).text(name+'が選択されていません。');
		return true;
	} else {
		return flag;
	}
}

var lengthCheck = function(flag,id,num,name) {
	if ($('#'+id).val() && $('#'+id).val().length > num) {
		if (name) {
			$('#error_for_'+id).text(name+'は'+num+'文字以内で入力して下さい。('+$('#'+id).val().length+'文字入力されています)');
		} else {
			$('#error_for_'+id).text(num+'文字以内で入力して下さい。('+$('#'+id).val().length+'文字入力されています)');
		}
		return true;
	} else {
		return flag;
	}
}

var numberCheck = function(flag,id,hyphen,dot) {
	if (hyphen && dot) {
		var matches = '[^0-9\-\.]';
		var message = '半角数字とハイフン、ドット以外の文字が入力されています。';
	} else if (hyphen) {
		var matches = '[^0-9\-]';
		var message = '半角数字とハイフン以外の文字が入力されています。';
	} else if (dot) {
		var matches = '[^0-9\.]';
		var message = '半角数字とドット以外の文字が入力されています。';
	} else {
		var matches = '[^0-9]';
		var message = '半角数字以外の文字が入力されています。';
	}
	if ($('#'+id).val() && $('#'+id).val().match(matches)) {
		$('#error_for_'+id).text(message);
		return true;
	} else {
		return flag;
	}
}

var alphanumericCheck = function(flag,id) {
	if ($('#'+id).val() && $('#'+id).val().match(/[^0-9A-Za-z\-\_\/\:\~\?\=\&]/)) {
		$('#error_for_'+id).text('半角英数字以外の文字が入力されています。');
		return true;
	} else {
		return flag;
	}
}

var kanaCheck = function(flag,id,name) {
	if ($('#'+id).val() && $('#'+id).val().match(/[^ァ-ヶー]/)) {
		if (name) {
			$('#error_for_'+id).text(name+'に全角カタカナ以外の文字が入力されています。');
		} else {
			$('#error_for_'+id).text('全角カタカナ以外の文字が入力されています。');
		}
		return true;
	} else {
		return flag;
	}
}

// 2010/04/02 nishigakiuchi add start
var hiraganaCheck = function(flag,id,name) {
	if ($('#'+id).val() && $('#'+id).val().match(/[^ぁ-んー]/)) {
		if (name) {
			$('#error_for_'+id).text(name+'に全角かな以外の文字が入力されています。');
		} else {
			$('#error_for_'+id).text('全角かな以外の文字が入力されています。');
		}
		return true;
	} else {
		return flag;
	}
}
// 2010/04/02 nishigakiuchi add end


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() && !matches1 && !matches2) {
		if (name) {
			$('#error_for_'+id).text('正しくない'+name+'形式です。');
		} else {
			$('#error_for_'+id).text('正しくない番号形式です。');
		}
		return true;
	} else {
		return flag;
	}
}

var zipCheck = function(flag,id,name) {
	var matches = $('#'+id).val().match(/^\d{3}-\d{4}$|^\d{3}-\d{2}$|^\d{3}$/);
	if ($('#'+id).val() && !matches) {
		if (name) {
			$('#error_for_'+id).text('正しくない'+name+'形式です。');
		} else {
			$('#error_for_'+id).text('正しくない郵便番号形式です。');
		}
		return true;
	} else {
		return flag;
	}
}

var inputMailCheck = function(flag,id) {
	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 ($('#'+id).val() && !$('#'+id).val().match(str)) {
		$('#error_for_'+id).text('正しくないメールアドレス形式です。');
		return true;
	} else {
		return flag;
	}
}


/****************************************************************
* 機　能： 入力された値が日付でYYYY/MM/DD形式になっているか調べる
* 引　数： datestr　入力された値
* 戻り値： 正：false　不正：true
****************************************************************/
function ckDate(datestr) {

    // 正規表現による書式チェック
    if(!datestr.match(/^\d{4}\/\d{2}\/\d{2}$/)){
        return true;
    }

    var vYear = datestr.substr(0, 4) - 0;
    var vMonth = datestr.substr(5, 2) - 1; // Javascriptは、0-11で表現
    var vDay = datestr.substr(8, 2) - 0;
    // 月,日の妥当性チェック
    if(vMonth >= 0 && vMonth <= 11 && vDay >= 1 && vDay <= 31){
        var vDt = new Date(vYear, vMonth, vDay);
        if(isNaN(vDt)){
            return true;
        }else if(vDt.getFullYear() == vYear && vDt.getMonth() == vMonth && vDt.getDate() == vDay){
            return false;
        }else{
            return true;
        }
    }else{
        return true;
    }
}



function check_select_ymd(caller){
	n = caller.name;
	n = n.replace('_y','');

    var vYear = $('#' + n + '_y').val() - 0;
    var vMonth = $('#' + n + '_m').val() - 1; // Javascriptは、0-11で表現
    var vDay = $('#' + n + '_d').val() - 0;

    var c = 0;

	if (vYear == 0 && vMonth==-1 && vDay==0) {
		c = 1;
	}else{
		c = check_date_sub(vYear,vMonth,vDay);
	}

	var ret=new Array(3);

	if (c == 0){
		ret[0] = true;
		ret[1] = '* 日付の指定が正しくありません。';
	}else{
		ret[0] = false;
		ret[1] = '';
	}

	return ret;
}



function check_date_sub(vYear,vMonth,vDay){

	c = 0;

    // 月,日の妥当性チェック
    if(vMonth >= 0 && vMonth <= 11 && vDay >= 1 && vDay <= 31){
        var vDt = new Date(vYear, vMonth, vDay);
        if(isNaN(vDt)){

        }else if(vDt.getFullYear() == vYear && vDt.getMonth() == vMonth && vDt.getDate() == vDay){
            c = 1;
        }else{
            ;
        }
    }else{
        ;
    }
	return c;
}


