//=============================================================================================
//
// javascript EnterMove.js
//
//
// ���� 2006/08/xx
// ��� 2006/10/05 ���K�\���𗘗p�����@�ɕύX
// �_������
// ��� 2006/10/11 �^�O���C���[�W�̂Ƃ��ɂ��킹�ďC��
//
// �O�� 2006/10/18 �ړ�����click�����select�Ăяo����
//
// �l�� 2006/11/16 next_id��prev_id�Ŏw�肵��id��next_cmp��prev_cmp�̎O�Ԗڂ̈�Ƃ��ė^����悤�ɕύX
//
// �ܔ� 2006/12/14 �L�q�~�X�ɂ��߂鏈�����ꍇ�ɂ���Ă͋@�\���Ȃ������̂��C��
//
// �Z�� 2006/12/26 ���W�I�{�b�N�X��select�Ȃǂ̂��߂�enteronly��lj�
//
//=============================================================================================
//
// �G���^�[���蓙����������B
// ���łɏ㉺�ړ���
//
/* ���p��@
���炩���� javascript�Ɉȉ��̂悤�Ɉړ����������Ώۂ̏��Ԃ��L�q
var mover = new moveInputField([{'id':'company_zip'},
{'id':'company_name'},
{'id':'company_kana'}]);
HTML�͂��̂悤�ɋL�q
�����I�Ɏ��Ɉړ�����I�u�W�F�N�g���w�肷��ɂ͈ȉ��̂悤�ɋL�q
*next_id , prev_id�Ŗ����I�ɐ���
var mover = new moveInputField([{'id':'company_zip','next_id':'company_kana'},
{'id':'company_name'},
{'id':'company_kana'}]);
���ׂ���������������ꍇ��next_cmp�������́Aprev_cmp���g�����䂷��
�ȉ��̗�ł́A���݂̃t�H�[��(company_zip)�̒��g�͂Ȃ��ꍇ�A�ړ����Ȃ��Ƃ��������ł���
*next_cmp , prev_cmp�ňړ��������I�ɐ���
�e���\�b�h�̈�́A���݂̃I�u�W�F�N�g
var mover = new moveInputField([{'id':'company_zip' ,'next_cmp':'function(targObj,no,next_id){return (targObj.value == "") ? "" : "company_name";}'},
{'id':'company_name'},
{'id':'company_kana'}]);
nect_cmp��prev_cmp�̈�͈ȉ��̂Ƃ���
����@�ΏۂƂȂ�I�u�W�F�N�g
����@�I�u�W�F�N�g�h�c�̍Ō�̐���
��O��@���܂��͑O��id
*** Enter����̒��� ***
Form��Input��type��image�̏ꍇ,�T�u�~�b�g����Ă��܂��̂Œ��ӂ��K�v
���炩�̕�@�ŁAEnter�ł̃T�u�~�b�g����������@���K�v
IE6�̏ꍇ�͂��߂�input type="image"�ɔ�ԁi�H�j�̂ł��̃^�O��onFocus��imfSubmitCancel��lj������ok�����E�E�E
*/
var DEF_NEXT = 0;
var DEF_PREV = 1;
//JSON�ŃL�[�̈Ӗ������߂�
var KEY_MOVE =
[
{'key' : 13 , 'state' : DEF_NEXT}, //�G���^�[
{'key' : 40 , 'state' : DEF_NEXT}, //���J�[�\��
{'key' : 38 , 'state' : DEF_PREV} //��J�[�\��
];
//�ŋ߃t�H�[�J�X�����I�u�W�F�N�g���i�[
var SAIKIN_FOCUS_SHITA_OBJ = null;
//�ꎞ�I�ɕۑ�����event
var CHACHE_EVENT;
//---------------------------------------------------------------------------------------------
//���@�O�F moveInputField
//��@���F list JSON�L�@�ɂ�郊�X�g
//�߂�l�F �Ȃ�
//�@�@�\�F
//---------------------------------------------------------------------------------------------
function moveInputField(list,keymove)
{
this.List = list;
this.Object = null;
this.KeyMove = (keymove) ? keymove : KEY_MOVE;
//---------------------------------------------------------------------------------------------
//���@�O�F onMove
//��@���F obj_id ���݂̃I�u�W�F�N�g��
//�@�@�@�@ event �L�[�C�x���g�Ŏg�p����3
//�@�@�@�@ enteronly �G���^�[�L�[�̂ݗL��
//�߂�l�F �Ȃ�
//�@�@�\�F ��͏�Ԃɂ���Ė��O�ƈ�v����I�u�W�F�N�g�ֈړ�
//---------------------------------------------------------------------------------------------
moveInputField.prototype.onMove = function(obj_id,event,enteronly)
{
var MoveType = -1;
if (enteronly)
{
if (event.keyCode == 13)
MoveType = DEF_NEXT;
}
else
{
//�L�[�ɍ��v���邩���ׂ�
for (var i = 0;i < this.KeyMove.length;i++)
{
if (this.KeyMove[i].key == event.keyCode)
{
MoveType = this.KeyMove[i].state;
break;
}
}
}
//Next,Prev�Ƃ��ɍ��v���Ȃ��ꍇ�͏I��
if (MoveType == -1)
return null;
var targetObj = document.getElementById(obj_id);
//�ꎞ�I�ɕۑ�
setEvent(event);
//���v�����玟�̏����Ɉڂ�
for (var i = 0;i < this.List.length;i++)
{
//���K�\���Ń}�b�`������
if (obj_id.match(this.List[i].id + "(\\d*)"))
{
var Obj = null;
switch(MoveType)
{
case DEF_NEXT:
//�O�U/�P�P/�P�U�@id�������C���i�C���^�[�t�F�C�X�̕ύX�����j
//����id�ׂ�
var next_id = (this.List[i].next_id) ? this.List[i].next_id : this.List[(i+1)%this.List.length].id;
//���ւ̔�r���������邩�H
if (this.List[i].next_cmp)
Obj = eval('('+ this.List[i].next_cmp +')(targetObj , eval(RegExp.$1) ,"'+next_id+'");');
//���X�g�̎���
else
Obj = next_id;
break;
case DEF_PREV:
//�O�U/�P�P/�P�U�@id�������C���i�C���^�[�t�F�C�X�̕ύX�����j
//�O��id�ׂ�
var prev_id = (this.List[i].prev_id) ? this.List[i].prev_id : this.List[(i+this.List.length-1)%this.List.length].id;
if (this.List[i].prev_cmp)
Obj = eval('('+ this.List[i].prev_cmp +')(targetObj , eval(RegExp.$1) ,"'+prev_id+'");');
//���X�g�̈�O�ցi�}�C�i�X�ɂȂ�Ȃ��悤�ɒ����j
else
//�O�U/�P�Q/�P�S�@�L�q�~�X���C��
Obj = prev_id;
break;
}
//�I�u�W�F�N�g���擾
Obj = document.getElementById(Obj);
if (Obj != null)
{
//�O�U/�P�O/�P�W�@������ӂ�
// Obj.click();
// if (event.keyCode != 13 || enteronly)
Obj.focus();
// Obj.select();
SAIKIN_FOCUS_SHITA_OBJ = this.Object = Obj;
return Obj;
}
}
}
return false;
};
//---------------------------------------------------------------------------------------------
//���@�O�F selectingObject
//��@���F �Ȃ�
//�߂�l�F ���ݑI�𒆂̃I�u�W�F�N�g
//�@�@�\�F ���ݑI�𒆂̃I�u�W�F�N�g�̎擾
//---------------------------------------------------------------------------------------------
moveInputField.prototype.selectingObject = function()
{
return this.Object;
};
};
//---------------------------------------------------------------------------------------------
//���@�O�F imfSubmitCancel
//��@���F �Ȃ�
//�߂�l�F �Ȃ�
//�@�@�\�F moveInputField�Ƃ��킹�Ďg��
// input�^�O�� type="image" �̏ꍇ�t�H�[�J�X���Ƃ��Ȃ��悤�ɂ��邽�߂Ɏg��
// �� ;
//---------------------------------------------------------------------------------------------
function imfSubmitCancel()
{
if (SAIKIN_FOCUS_SHITA_OBJ != null)
{
SAIKIN_FOCUS_SHITA_OBJ.focus();
SAIKIN_FOCUS_SHITA_OBJ = null;
}
}
//---------------------------------------------------------------------------------------------
//���@�O�F getEvent
//��@���F �Ȃ�
//�߂�l�F �Ȃ�
//�@�@�\�F IE�ł͂ǂ��ł�event���擾�ł��邪FireFox���ł͂ł��Ȃ��̂ňꎞ�I�ɕۑ�����
// ���������e����ɐ������Ƃ͌���Ȃ�
//---------------------------------------------------------------------------------------------
function getEvent()
{
return CHACHE_EVENT;
}
//---------------------------------------------------------------------------------------------
//���@�O�F setEvent
//��@���F �Ȃ�
//�߂�l�F �Ȃ�
//�@�@�\�F event�����g�������Ƃ��ɂ�����Ăяo���ĕۑ����A�ʂ̂Ƃ���Ŏg��
//---------------------------------------------------------------------------------------------
function setEvent(event)
{
CHACHE_EVENT = event;
}