/*
 * @title		로그인폼 스크립트
 * @author		이주원
 * @date		2007.10. 8
 * @update		수정날짜(수정자)
 * @description	
 */

var checker = null;

function _init()
{
	var frm		= $("frmLogin");
	if (frm)
	{
		checker = new _form.checker(frm);
		checker.add({input:frm.user_id, type:'string', message:'아이디를 입력해 주세요.'});
		checker.add({input:frm.user_password, type:'string', message:'비밀번호를 입력해 주세요'});

		frm.user_id.focus();
		return;
		
		/* ▼  로그인시 capslock 체크*/
		var Ftcapslock = false;
		var Ftshift = false;

		Object.extend(_form.protect,
		{
			capslock_help : function(input)
			{
				this.set(input,
					function(Event)
					{
						var keycode = _event.keycode(Event);
						if(keycode == 16)
						{
							Ftshift = true;
						}
					},
					function(Event)
					{
						passwordCheck(Event);
					}
				);
				$('user_password').onblur = function(Event)
				{
					Object.extend($('capslock_help'),_item.layer).behind();
				}
				$('user_password').onkeyup = function(Event)
				{
					var keycode = _event.keycode(Event);
					if(keycode == 16)
					{
						Ftshift = false;
					}

					if (Ftshift == true && keycode ==9 )
					{
						Ftshift = false;
					}
				}
				$('user_password').onkeypress = function(Event)
				{
					Ftcapslock = false;
					var keycode = _event.keycode(Event);
					if((keycode >= 65 && keycode <= 90) && !Ftshift)  
					{   
						Ftcapslock = true;
					}   
					else if((keycode >= 97 && keycode <= 122) && Ftshift)
					{   
						Ftcapslock = true;
					}
				}
			}
		});

		Object.extend(_form.protect,
		{
			user_id : function(input)
			{
				$('user_id').onfocus = function(Event)
				{
					Object.extend($('capslock_help'),_item.layer).behind();
				}
			}
		});

		_form.protect.capslock_help(frm.user_password);
		_form.protect.user_id(frm.user_id);
		
		function passwordCheck(Event)
		{
			var keycode = _event.keycode(Event);
			if(keycode == 16)
			{
				Ftshift = false;
			}

			if(frm.user_password.value.length > 0 && Ftcapslock && !Ftshift)
			{
				Object.extend($('capslock_help'),_item.layer).show();
				make_caps_login('capslock_help','Caps-lock'); 
			}
			else
			{
				Object.extend($('capslock_help'),_item.layer).behind();
			}
		}
		/* ▲ 로그인시 capslock 체크 */
	}
	
	frm = $("frmError");
	if(frm)
	{
 		checker = new _form.checker(frm);
		checker.add({input:frm.user_id,type:'userid',range:{min:2,max:6},message:'아이디를 정확하게 입력해 주세요.'});
		checker.add({input:frm.user_name,type:'hangul',range:{min:2,max:6},message:'이름을 정확하게 입력해 주세요.'});
		checker.add({custom:function() {

			if(this.user_juminA.value.isEmpty() || this.user_juminB.value.isEmpty())
			{
				alert('주민등록번호를 입력해 주세요');
				this.user_juminA.value = '';
				this.user_juminB.value = '';
				this.user_juminA.focus();
				return false;
			}
			try
			{
				var str = String(this.user_juminA.value) + String(this.user_juminB.value);
				if (str.length!=13)	
					throw 'invalid';
				var strTmp = (str.substring(6,7)<=2) ? '19' : '20';

				if (!String(strTmp + str.substring(0,2) + str.substring(2,4) + str.substring(4,6)).isDate())
					throw 'invalid';

				var fCheckSum = 0;
				fCheckSum = str.substring(0,1)*2 + str.substring(1,2)*3 + str.substring(2,3)*4 + str.substring(3,4)*5;
				fCheckSum+= str.substring(4,5)*6 + str.substring(5,6)*7;
				fCheckSum+= str.substring(6,7)*8 + str.substring(7,8)*9 + str.substring(8,9)*2 + str.substring(9,10)*3;
				fCheckSum+= str.substring(10,11)*4 + str.substring(11,12)*5;
				fCheckSum = (11-(fCheckSum%11))%10;
				if(fCheckSum!=str.substring(12,13)) { throw 'invalid' }
			}
			catch(error)
			{
				alert('잘못된 주민등록번호입니다.');
				this.user_juminA.value = '';
				this.user_juminB.value = '';
				this.user_juminA.focus();
				return false;
			}

			return true;
		 }
		});
 
		Object.extend(_form.protect,{
			hangul2 : function(input)
			{
				this.set(input,function(Event) {
					var keycode = _event.keycode(Event);
					if(_form.protect.functioncheck(keycode)) { return true }
					if(keycode==229)				{ return true }
					alert('이름은 한글로 입력해 주세요');
					_event.stop();
					return false;
				},
				null,
				function(Event) {
					var value	= this.value.replace(/[^가-힣]/g,'');
					this.value	= value;
				});
			}
		});
		_form.protect.userid(frm.user_id);
		_form.protect.number(frm.user_juminA);
		_form.protect.number(frm.user_juminB);
		_form.protect.hangul2(frm.user_name);
		frm.user_id.focus();
	}
}

function center_reference(type) {
	Object.extend(checker, {
		OnSubmit: function()
		{
			/* ▼ 휴대폰인증 일경우 */
			  if ('errcode' in this && (this.errcode.value=="21" || this.errcode.value=="5" || this.errcode.value=="31")) //연속 5회이상
			  {
				  if(type == 'mobile') {
					_window.open("login_error","",440,400);
					this.setAttribute("target","login_error");
					this.setAttribute("action","/certify/ini_login_err/user_certify_form.html");
					this.setAttribute("method","post");
					return true;
				  } else if(type == 'reference') {
					_window.open("login_error_reference","",650,480);
					this.setAttribute("target","login_error_reference");
					this.setAttribute("action","/portal/customer/user/lose/counsel_jumin_steal.html");
					this.setAttribute("method","post");
					return true;
				  }
			  }
			/* ▲ 휴대폰인증 일경우 */
		}
	});
	checker.send_manual.call(checker);
}
