/* ******************************************************************************************
* Filename		: common.js
* Regist Date	: 2005.04.19
* Company		: Cidow / www.cidow.com 
* Author		: 이현택 / bluehiker@cidow.com
* Description	: 각종 자바스크립트 모음
* Function 		: 
******************************************************************************************* */

// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// validateion check
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

// 공백  판단
function isNull(obj, msg) {
	if(obj.value.replace(/\s/g, "") == "") {
		if(msg)
			alert(msg);
		
		obj.focus();
		return true;
	}
	return false;
}

// 같은 값인지 판단
function isSame(obj1, obj2, msg) {
	var str1 = obj1.value;
	var str2 = obj2.value;

	if(str1 != str2) {
		if(msg)
			alert(msg);
		
		obj2.value = "";
		obj2.focus();
		return true;
	}

	return false;
}

// 길이판단
function isShort(obj, len, msg) {
	var str = obj.value;
	if(str.length < len) {
		if(msg) {
			alert(msg);	
		}
		obj.focus();
		obj.select();
		return true;
	}
	return false;
}

// 숫자 판단
function isNumber(obj) {
	var str = obj.value;

	for(var i=0; i < str.length; i++) {
		if(!(('0' <= str.charAt(i) && str.charAt(i) <= '9') || str.charAt(i) == "-")) {
			alert ("숫자만 입력가능합니다..");
			obj.value = "";
			obj.focus();					
			return false;
		}
	}
	return true;
}

// 알파벳 판단
function isAlphabet(obj) {
	var str = obj.value;
	if(str.length == 0)
		return false;

	str = str.toUpperCase();
	str = str.replace(/\s/g, "");
	for(var i=0; i < str.length; i++) {
		if(!('A' <= str.charAt(i) && str.charAt(i) <= 'Z')) {
			alert ("영어만 입력가능합니다..");
			obj.focus();			
			return false;
		}
	}
	return true;
}

// 숫자 or 알파벳 판단
function isAlphaNumeric(obj) {
	var str = obj.value;
	if(str.length == 0)
		return false;

	str = str.toUpperCase();
	for(var i=0; i < str.length; i++) {
		if(!(('A' <= str.charAt(i) && str.charAt(i) <= 'Z') ||
			('0' <= str.charAt(i) && str.charAt(i) <= '9')))
			return false;
	}
	return true;
}

// 숫자에 "," 표시하기
function formatCurrency(obj) {
	if(obj.value.length = 0)
		return

	if(isNumber(obj)) {
		var cutNum = 3;
		var tempArray = new Array();
		var returnValue = "";

		for(i = 0; i < obj.value.length/cutNum; i++) 
			tempArray[i] = obj.value.substring(obj.value.length - cutNum * (i+1), obj.value.length - cutNum * i);

		for(i = tempArray.length-1; i >= 0; i--) {
			if(i > 0) 
				returnValue = returnValue + tempArray[i] + ",";
			else
				returnValue = returnValue + tempArray[i];
		}

		obj.value = returnValue;
	}
}


/* #################################################################################
 * id, password, email check
 ################################################################################# */
// 아이디 판단
function isID(obj) {
	var str = obj.value;
	str = str.toUpperCase();
	
	if(str.length < 4 || str.length > 20) {
		alert ("이용자 아이디는 4~20자 사이로 입력하여 주시기 바랍니다.");
		obj.focus();		
		return true;
	}
	if(!('A' <= str.charAt(0) && str.charAt(0) <= 'Z')) {
		alert ("이용자 아이디는 반드시 영문으로 시작해야 합니다.");
		obj.focus();
		return true;	
	}	
	if(!isAlphaNumeric(obj)) {
		alert ("이용자 아이디는 반드시 영문과 숫자만 허용됩니다.");
		obj.focus();
		return true;	
	}

	return false;
}

// 비밀번호 판단
function isPASS(obj) {
	var str = obj.value;
	str = str.toUpperCase();
	
	if(str.length < 4 || str.length > 20) {
		alert ("비밀번호는 4~20자 사이로 입력하여 주시기 바랍니다.");
		obj.focus();		
		return true;
	}
	if(!('A' <= str.charAt(0) && str.charAt(0) <= 'Z')) {
		alert ("비밀번호는 반드시 영문으로 시작해야 합니다.");
		obj.focus();
		return true;	
	}	
	if(!isAlphaNumeric(obj)) {
		alert ("비밀번호는 반드시 영문과 숫자만 허용됩니다.");
		obj.focus();
		return true;	
	}

	return false;
}

// 이메일 판단
function isEmail(obj) {
	var str = obj.value;

	str = str.toUpperCase();
	for(var i=0; i < str.length; i++) {
		if(!(('A' <= str.charAt(i) && str.charAt(i) <= 'Z') ||
			('0' <= str.charAt(i) && str.charAt(i) <= '9') ||
			( str.charAt(i) == '@') || ( str.charAt(i) == '.'))) {
				alert("이메일을 정확히 입력하십시요");
				obj.focus();
				return true;
		}
	}
				
	var i = str.indexOf("@");
	if(i < 0) {
		alert("이메일을 정확히 입력하십시요");
		obj.focus();
		return true;
	}
	
	var j = str.indexOf(".");
	if(i < 0) {
		alert("이메일을 정확히 입력하십시요");
		obj.focus();
		return true;
	}
	if(i > j) {
		alert("이메일을 정확히 입력하십시요");
		obj.focus();
		return true;
	}
		
	return false;
}

// 다음이메일 판단
function isDaumEmail(obj) {
	var str = obj.value.toUpperCase();
	var i = str.indexOf("@");

	if (str.substring(i+1) == "DAUM.NET") 	{
		alert("다음이메일은 저희 메일서비스시 필터링되어 전달이 되지 않습니다.\n\n다른 메일계정을 입력하여 주시기 바랍니다.");
		obj.value = "";
		obj.focus();
		return false;
	}
	if (str.substring(i+1) == "HANMAIL.NET") 	{
		alert("HANMAIL은 저희 메일서비스시 필터링되어 전달이 되지 않습니다.\n\n다른 메일계정을 입력하여 주시기 바랍니다.");
		obj.value = "";
		obj.focus();
		return false;
	}		
	return true;
}


/* #################################################################################
 * ssn check
 ################################################################################# */
// 주민번호 판단 및 생년월일 자동입력
function ssnCheck1(obj1, obj2, obj3, obj4, obj5) {
	var str = obj1.value.length;
	if(str == 6) {
		if(isNumber(obj1)) {
			var str = obj1.value;
			var temp1=str.substring(0,2);
			var temp2=str.substring(2,4);
			var temp3=str.substring(4,6);

			if( temp1 < 30 )
				obj3.value = "20"+temp1; 
			else 
				obj3.value = "19"+temp1; 
			obj4.value = temp2;
			obj5.value = temp3;
			
			obj2.focus();
		}
		else {
			obj3.value = "";
			obj4.value = "";
			obj5.value = "";
		}		
	}
}

// 주민번호 체크
function ssnCheck2(obj1, obj2) {
	if(isNumber(obj2))
		isSSN(obj1, obj2);
}
		
//주민번호 유효성 확인...
function isSSN(obj1, obj2) {
	var birthday = obj1.value;
	var num = obj2.value;

	if(birthday.length != 6) {
		alert("앞 주민번호를 6자리로 정확히 입력하십시요");
		obj1.focus();
		return true;
	}
	if(num.length != 7) {
		alert("뒤 주민번호를 7자리로 정확히 입력하십시요");
		obj2.focus();
		return true;
	}
	var hap = 0;
	for(var i=0; i < 6; i++) {
		var temp = birthday.charAt(i) * (i+2);
		hap += temp;
	}

	var n1 = num.charAt(0);
	var n2 = num.charAt(1);
	var n3 = num.charAt(2);
	var n4 = num.charAt(3);
	var n5 = num.charAt(4);
	var n6 = num.charAt(5);
	var n7 = num.charAt(6);

	hap += n1*8+n2*9+n3*2+n4*3+n5*4+n6*5;
	hap %= 11;
	hap = 11 - hap;
	hap %= 10;
	if(hap != n7) {
		alert("주민번호를 정확히 입력하십시요");
		obj1.value = "";
		obj2.value = "";
		obj1.focus();
		return true;
	}
	
	return false;
}

/* #################################################################################
 * image check
 ################################################################################# */
// 첨부파일이 그림파일인지 판단
function attachFileCheck(obj)
{
	var str = obj.value;

	var i = str.indexOf(".");
	if(i < 0) 
	{
		alert("첨부할 이미지를 정확히 선택하십시요");
		obj.focus();
		return true;
	}

	if(str != "" ) 
	{
		var str1 = str.split(".");
		var str2 = str1[str1.length-1];
		if(!(str2 == "jpeg" || str2 =="gif" || str2 =="jpg"|| str2=="png" || str2 == "bmp")) 
		{
			alert("첨부할 이미지의 파일 형식이 일치하지 않습니다.");
			return true;
		}
		else
			return false;
	}
	else 
	{
		alert("첨부할 이미지를 선택해주세요");
		return true;
	}
}