/*******************************************************************************
* 폼 유효성 검사에 사용되는 패턴 정의
*******************************************************************************/
var patterns = new Array();
patterns["num"] = /^[0-9]+$/;
patterns["han"] = /^[가-힁]+$/;
patterns["eng"] = /^[a-zA-Z]+$/;
patterns["eng_num"] = /^[0-9a-zA-Z]+$/;
patterns["email"] = /^[_a-zA-Z0-9-]+@[._a-zA-Z0-9-]+.[a-zA-Z]+$/;
patterns["url"] = /^[.a-zA-Z0-9-]+.[a-zA-Z]+$/;
patterns["img"] = /.+(.jpg|.gif|.bmp|.png|.jpeg)+$/gi;
/*******************************************************************************
* 이미지 체크
*******************************************************************************/
function isImg(str)
{
if(str.match(patterns["img"]))
return true;
else
return false;
}
/*******************************************************************************
* 숫자 체크
*******************************************************************************/
function isNum(str)
{
if(str.match(patterns["num"]))
return true;
else
return false;
}
/*******************************************************************************
* 한글 체크
*******************************************************************************/
function isHan(str)
{
if(str.match(patterns["han"]))
return true;
else
return false;
}
/*******************************************************************************
* 영문 체크
*******************************************************************************/
function isEng(str)
{
if(str.match(patterns["eng"]))
return true;
else
return false;
}
/*******************************************************************************
* 영문숫자 체크
*******************************************************************************/
function isEngNum(str)
{
if(str.match(patterns["eng_num"]))
return true;
else
return false;
}
/*******************************************************************************
* 메일 체크
*******************************************************************************/
function isEmail(str)
{
if(str.match(patterns["email"]))
return true;
else
return false;
}
/*******************************************************************************
* URL 체크
*******************************************************************************/
function isUrl(str)
{
if(str.match(patterns["url"]))
return true;
else
return false;
}
/*******************************************************************************
* 공백인지
*******************************************************************************/
function isEmpty(str)
{
if(getLength(trim(str)) <= 0)
return true;
else
return false;
}
/*******************************************************************************
* 공백제거
*******************************************************************************/
function trim(str)
{
return str.replace(/^s+|s+$/g, "");
}
/*******************************************************************************
* 숫자만 가능
*******************************************************************************/
function delChar(obj)
{
obj.value = obj.value.replace(/[^0-9]+/g, "");
}
/*******************************************************************************
* 체크박스 선택
*******************************************************************************/
var checkall_flag = false;
function checkAll(form, obj_name)
{
var length = form.elements.length;
for (var i = 0; i < length; i++)
{
if(form.elements[i].name == obj_name)
form.elements[i].checked = !checkall_flag;
}
checkall_flag = !checkall_flag;
}
function checkEx(form, obj_name)
{
var length = form.elements.length;
for (var i = 0; i < length; i++)
{
if(form.elements[i].name == obj_name)
form.elements[i].checked = !form.elements[i].checked;
}
}
/*******************************************************************************
* 체크박스 선택되어 있는지
*******************************************************************************/
function isChecked(form, obj_name)
{
var is_checked_flag = false;
var length = form.elements.length;
for (var i = 0; i < length; i++)
{
if(form.elements[i].name == obj_name && form.elements[i].checked == true)
{
is_checked_flag = true;
break;
}
}
return is_checked_flag;
}
/*******************************************************************************
* 메세지 박스 초기화
*******************************************************************************/
function checkMsg(obj)
{
if(trim(obj.value) == "여기에 메세지를 입력하세요.")
{
obj.value = "";
}
}
/*******************************************************************************
* 바이트 체크 80bytes 이상
*******************************************************************************/
function checkBytes(form)
{
var page = 0;
var body_length = getLength(form.body.value);
form.bytes.value = body_length;
if(body_length)
page = parseInt(body_length / 80);
if(body_length % 80)
page += 1;
if(typeof(form.page) != "undefined")
form.page.value = page;
}
/*******************************************************************************
* 바이트 체크 80bytes 까지
*******************************************************************************/
function checkBytes2(form, max_length)
{
var page = 0;
var body_length = getLength(form.body.value);
if(body_length > max_length)
{
alert(max_length + "bytes 이상 입력할 수 없습니다.");
form.body.value = stringCut(form.body.value, max_length);
body_length = getLength(form.body.value);
}
if(body_length)
page = parseInt(body_length / 80);
if(body_length % 80)
page += 1;
if(typeof(form.page) != "undefined")
form.page.value = page;
form.bytes.value = body_length;
}
/*******************************************************************************
* 문자열 자르기
*******************************************************************************/
function stringCut(str, max_length)
{
var str, msg;
var length = 0;
var tmp;
var count = 0;
length = str.length;
for(var i = 0; i < length; i++)
{
tmp = str.charAt(i);
if(escape(tmp).length > 4)
count += 2;
else
if(escape(tmp) != "%0D")
count++;
if(count > max_length)
break;
}
return str.substring(0, i);
}
/*******************************************************************************
* 문자열 길이를 리턴한다.
*******************************************************************************/
function getLength(str)
{
var length = 0;
for(var i = 0; i < str.length; i++)
{
if(escape(str.charAt(i)).length >= 4)
length += 2;
else
if(escape(str.charAt(i)) != "%0D")
length++;
}
return length;
}
/*******************************************************************************
* 쿠키값 리턴
*
* name - 쿠키명
*******************************************************************************/
function getCookie(name)
{
var label = name + "=";
var label_len = label.length;
var cookie_len = document.cookie.length;
var i = 0;
while (i < cookie_len)
{
var j = i + label_len;
if (document.cookie.substring(i, j) == label)
{
var cookie_end = document.cookie.indexOf(";", j);
if (cookie_end == -1)
cookie_end = document.cookie.length;
return unescape(document.cookie.substring(j, cookie_end));
}
i++;
}
return "";
}
/*******************************************************************************
* 쿠키설정
*
* name - 쿠키명
* value - 값
* expiredays - 시간 (일단위)
*******************************************************************************/
function setCookie( name, value, expiredays )
{
var today = new Date();
today.setDate( today.getDate() + expiredays );
document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + today.toGMTString() + ";";
}