﻿/*
    작성일  : 2009-11-02
    작성자  : cnc
    내  용  : 필수 입력 박스의 입력여부를 체크 합니다. 
              입력박스 태그의 ID에는 "txtName" 형식으로 접두사에 "txt" 문자를 넣으시고. Label  태그 ID에는 "lbl" 형식으로 접두사를 넣어주세요.
              필수 입력 받는 입력박스는 class="required" 속성을 넣으시면 됩니다.
*/
function Valid_Input() {
	var inputs = window.document.getElementsByTagName("input");

	for (i = 0; i < inputs.length; i++) {
	    if (inputs[i].type == "text") {
	        if (inputs[i].getAttribute("class") != null) {
	            if ((inputs[i].value == "" || inputs[i].value.length <= 0) && inputs[i].getAttribute("class").toString().indexOf("required", 0) >= 0) {
	                var id = inputs[i].id.toString().replace("txt", "");
	                var label = window.document.getElementById("lbl" + id);

	                alert(label.innerText + "은(는) 필수 입력 사항 입니다.");
	                return false;
	            }
	        }
	    }
		return true;
	}
}
/*
    작성일  : 2009-11-02
    작성자  : cnc
    내  용  : 특정길이의 내용만 입력을 받습니다.
              단, 숫자나 영문에만 이용하세요. 한글은 1자리의 문자를 쓸때. 초성, 중성, 종성으로 이루어 지기 때문에 안됩니다.
    _fromCtrl   : 입력을 받는 컨트롤의 ID
    _maxLength  : 입력받고 싶은 문자의 길이
    _toCtrl : 다음 입력을 받을 컨트롤의 ID
*/
function Valid_MaxLength(_fromCtrl, _maxLength, _toCtrl) {
	var fromCtrl = window.document.getElementById(_fromCtrl);
	if (fromCtrl.value.length == _maxLength) {
		var toCtrl = window.document.getElementById(_toCtrl);
		toCtrl.focus();
		return true;
	}
	return true;
}
/*
    작성일  : 2009-11-10
    작성자  : cnc
    내  용  : 단순 페이지 이동    
    _url    : 호출하는 페이지 url
*/
function PageMove(_url) {
    window.location.href = _url;
}
/*
    작성일  : 2009-11-10
    작성자  : cnc
    내  용  : 팝업화면을 띄웁니다.
    _name   : 팝업 페이지 이름
    _url    : 호출하는 페이지 url
    _center : 팝업화면 화면 가운데 표시여부 (가운데표시:true, 그외:false)
    _width  : 팝업화면 가로 사이즈 (단위:px)
    _height : 팝업화면 세로 사이즈 (단위:px)
    _top    : 팝업화면 상단 위치(_center 값이 true인 경우 사용하지 않음)
    _left   : 팝업화면 좌측 위치(_center 값이 true인 경우 사용하지 않음)
    _target : 타겟창 이름
*/
function PagePopUp(_name, _url, _center, _width, _height, _top, _left, _target) {
    var width = _width;
    var height = _height;
    
    // 화면 가운데 표시여부에 따라 top, left 값을 다르게 저장.
    var top, left;
    if (_center) {
        top = (window.screen.height - _height) / 2;
        left = (window.screen.width - _width) / 2;
    }
    else {
        top = _top;
        left = _left;
    }   

    var option = "directories=no";          // 디렉토리 버튼 표시 여부
    option = option + ",location=no";       // 주소 입력창 표시 여부
    option = option + ",menubar=no";        // 메뉴바 표시 여부
    option = option + ",resizable=no";      // 사용자의 윈도우 크기 조정 여부
    option = option + ",scrollbars=no";     // 페이지 크기가 윈도우의 크기를 넘어서면 스크롤바 표시 여부
    option = option + ",status=no";         // 상태표시줄 표시 여부
    option = option + ",toolbar=no";        // 툴바 표시 여부
    option = option + ",width=" + width;    // 가로 너비
    option = option + ",height=" + height   // 세로 길이
    option = option + ",top=" + top;        // 상단 위치
    option = option + ",left=" + left;      // 좌측 위치

    var child_window = window.self.open(_url, _name, option, _target);
    child_window.focus();
    return;
}

/*
작성일  : 2009-12-10
작성자  : cnc
내  용  : Div 팝업화면을 띄웁니다.
*/
function DivPopup(id, _center, _width, _height, _top, _left, _event) {
    var width = _width;
    var height = _height;
    var top = 0;
    var left = 0;
    
    if (_center) {
        top = (window.screen.height - _height) / 2;
        left = (window.screen.width - _width) / 2;
    }
    else {
        top = _event.y;
        left = _event.x;
    }
    
    var obj = window.document.getElementById(id);
    obj.style.width = width;
    obj.style.height = height;
    obj.style.top = top;
    obj.style.left = left;
    obj.style.visibility = "visible";
    return true;
}
function DivClose(id) {
    var obj = window.document.getElementById(id);
    obj.style.visibility = "hidden";
}
/*
작성일  : 2009-11-11
작성자  : cnc
내  용  : 입력문자 최소 최대 길이 입력 여부를 체크 합니다.
obj     : textbox 컨트롤
min     : 최소 입력 글자수
max     : 최대 입력 글자수
*/
function Valid_IsLength(obj, min, max) {
    if (obj.value.length < min || obj.value.length > max) {
        return false;
    }
    return true;
}
/*
    작성일  : 2009-11-11
    작성자  : cnc
    내  용  : 한글 입력을 체크 합니다.
    obj     : textbox 컨트롤
*/
function Valid_IsEnglish(obj) {    
    var pattern = /[^(a-zA-Z0-9)]/gi;    // 입력받기를 원하는 문자 패턴 생성.
    if (!pattern.test(obj.value.toLowerCase())) {
        return true;
    }
    else {
        return false; 
    }
}

/*
    작성일  : 2009-11-11
    작성자  : cnc
    내  용  : 숫자 입력을 체크 합니다.
    obj     : textbox 컨트롤
*/
function Valid_IsNumber(obj) {
    var pattern = /[^(0-9)]/gi;    // 입력받기를 원하는 문자 패턴 생성.
    if (pattern.test(obj.value)) {
        return true;
    }
    else {
        return false;
    }
}

/*
    작성일 : 2009-11-18
    작성자 : cnc
    내  용 : 문자를 입력하지 않았거나. 공백을 입력하는 것을 체크 합니다.
*/
function Valid_IsSpace(obj) {
    var pattern = /\s/gi;
    if (pattern.test(obj.value)) {
        return true;     // 공백이 입력 되었습니다.
    }
    else {
        return false;    // 공백이 입력되지 않았습니다.
    }
}

/*
    작성일 : 2009-11-18
    작성자 : cnc
    내  용 : A-Z, a-z, 0-9, _(언더스코어) 와 같은 문자가 입력되었는지 체크 합니다.
*/
function Valid_IsChar(obj) {
    var pattern = /\W/gi;
    if (pattern.test(obj.value)) {
        return true;     // 영문, 숫자만 입력되었습니다.
    }
    else {
        return false;    // 특수문자가 입력되었습니다. (한글포함)
    }
}

/*
    작성일 : 2009-11-18
    작성자 : cnc
    내  용 : 특수문자를 입력하였는지를 체크 합니다.
*/
function Valid_IsSpecialChar(obj) {
    var pattern = /[^\w(ㄱ-ㅎㅏ-ㅣ가-힣)]/gi;      // 영어, 숫자, _(언더스코어), 한글을 제외한 문자를 찾는 패턴. 고로 그외에는 특수문자라고 본다.
    if (pattern.test(obj.value)) {
        return true;    // 영어, 숫자, 한글을 제외한 특수문자가 입력 되었습니다.
    }
    else {
        return false;    // 영어, 숫자, 한글만 입력되었습니다.
    }
}

/*
작성일 : 2009-12-10
작성자 : cnc
내  용 : 공백(space key)과 하이픈(-)을 제외한 특수문자를 입력하였는지를 체크 합니다.
*/
function Valid_IsVerySpecialChar(obj) {
    var pattern = /[^\w(ㄱ-ㅎㅏ-ㅣ가-힣)" "-∼]/gi;      // 영어, 숫자, _(언더스코어), 한글을 제외한 문자를 찾는 패턴. 고로 그외에는 특수문자라고 본다.
    if (pattern.test(obj.value)) {
        return true;    // 영어, 숫자, 한글, 공백(space key), 하이픈(-)을 제외한 특수문자가 입력 되었습니다.
    }
    else {
        return false;    // 영어, 숫자, 한글, 공백(space key), 하이픈(-)만 입력되었습니다.
    }
}
/*
    작성자 : 2009-11-18
    작성자 : cnc
    내  용 : Radio Button이 체크가 되었는지를 판단 합니다.
*/
function Valid_Check_RadioBox(obj) {
    if (obj.checked) {
        return true;
    }
    else {
        return false;
    }
}

// 필수 입력 사항이 입력 되어 있는지를 확인 합니다. - CSS 수정
function Valid_Required(obj) {
    if (obj.value == "" || obj.value.length < 1) {
        return Change_RequiredCSS(obj, false);
    }
    else {
        return Change_RequiredCSS(obj, true);
    }
    return true;
}
// 필수 입력 사항에 대한 CSS를 변경 합니다.
function Change_RequiredCSS(obj, flag) {
    if (flag) {
        obj.className = "text_basic";
        var name = obj.name.toString().replace("txt", "lbl");
        var label = window.document.getElementsByName(name);
        label.item(0).className = "required";
        return flag;
    }
    else {
        obj.className = "text_yellow";
        var name = obj.name.toString().replace("txt", "lbl");
        var label = window.document.getElementsByName(name);        
        label.item(0).className = "requiredCheck";
        return flag;
    }
}

function checkContentLength (content,max_length) {
	var i;
	var string = content.value;
	var one_char;
	var str_byte = 0;
	var str_length = 0;
	
	for(i = 0 ; i < string.length ; i++) {
		// 한글자추출
		one_char = string.charAt(i);
        
		// 한글이면 2를 더한다.
		if (escape(one_char).length > 4) {
			str_byte = str_byte+2;
		}
        // 그외의 경우는 1을 더한다.
        else {
			str_byte++;
		}
		// 전체 크기가 li_max를 넘지않으면
		if(str_byte <= max_length) {
			str_length = i + 1;
		}
	}
	// 전체길이를 초과하면
	if(str_byte > max_length) {
		alert(" 글자를 초과 입력할수 없습니다. \n 초과된 내용은 자동으로 삭제 됩니다. ");
		content.value = string.substr(0, str_length);
	}
}
