/**
 * Form Validator (Method Type), Version 0.0.3 (2009.3.21 - 2011.3.2)
 *
 * Code Generator : Maeng Joon-Young (http://www.maengis.com)
 */

// 반드시 값을 입력해야 함
String.prototype.isempty = function () {
	return (this.split(" ").join("") == "") ? true : false;
}

// 숫자만 입력 가능함
String.prototype.isnum = function () {
	return (/^[0-9]+$/.test(this)) ? true : false;
}

// 알파벳만 입력 가능함
String.prototype.isalpha = function () {
	return (/^[a-zA-Z]+$/.test(this)) ? true : false;
}

// 숫자와 알파벳 혼용만 입력 가능함
String.prototype.isalnum = function () {
	return (/^[0-9]*[0-9]$/.test(this) || /^[a-zA-Z]*[a-zA-Z]$/.test(this)) ? false : true;
}

// 한글만 입력 가능함
String.prototype.iskorean = function () {
	return (/^[가-힣]+$/.test(this)) ? true : false;
}

// 사이트 주소(http)만 입력 가능함
String.prototype.ishttp = function () {
	return (/^((http(s?))\:\/\/)([0-9a-zA-Z\-]+\.)+[a-zA-Z]{2,6}(\:[0-9]+)?(\/\S*)?$/.test(this.toLowerCase())) ? true : false;
}

// 전자우편주소만 입력 가능함
String.prototype.isemail = function () {
	return (/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.([a-z]){2,4})$/.test(this)) ? true : false;
}

// 범위내 숫자만 입력 가능함
String.prototype.numrange = function (min, max) {
	min = (!min) ? 0 : min;
	max = (!max) ? 100 : max;

	return (parseInt(this) < min || parseInt(this) > max) ? false : true;
}

// 주민등록번호 확인
String.prototype.isssn = function () {
	var ssnCheck = 0;

	for (var i = 0; i < 12; i++) {
		ssnCheck += (i % 8 + 2) * this.charAt(i);
	}

	ssnCheck = (11 - ssnCheck % 11) % 10;

	return (ssnCheck == this.charAt(12)) ? true : false;
}

// 인자로 받은 바이트만큼만 입력 가능함
String.prototype.bytes = function (value) {
	value = (!value) ? 80 : value;
	var bytes = 0;
	var cnt = this.length;

	for (var i = 0; i < cnt; i++) {
		bytes += (this.charCodeAt(i) > 128) ? 2 : 1;
	}

	return (bytes <= value) ? true : false;
}

// 인자로 받은 확장자만 허용함
String.prototype.extcheck = function (extArray) {
	var fileArray = this.split('.');
	var fileEx = fileArray[fileArray.length - 1].toLowerCase();
	
	var cnt = extArray.length;

	var result = false;

	for (i = 0; i < cnt; i++) {
		if (extArray[i] == fileEx) {
			result = true;
		}
	}
	
	return result;
}

// SQL이 포함되어 있나 확인
String.prototype.sqlcheck = function () {
	var sqlFilterPat_01 = /delete\s+from/gi;
	var sqlFilterPat_02 = /drop\s+database/gi;
	var sqlFilterPat_03 = /drop\s+table/gi;
	var sqlFilterPat_04 = /drop\s+column/gi;
	var sqlFilterPat_05 = /drop\s+procedure/gi;
	var sqlFilterPat_06 = /create\s+table/gi;
	var sqlFilterPat_07 = /update\s+.*\s+set/gi;
	var sqlFilterPat_08 = /insert\s+into.*\s+values/gi;
	var sqlFilterPat_09 = /select\s+.*\s+from/gi;
	var sqlFilterPat_10 = /bulk\s+insert/gi;
	var sqlFilterPat_11 = /union\s+select/gi;
	var sqlFilterPat_12 = /or.+1\s*=\s*1/gi;
	var sqlFilterPat_13 = /alter\s+table/gi;
	var sqlFilterPat_14 = /into\s+outfile/gi;
	var sqlFilterPat_15 = /load\s+data/gi;

	var result = false;

	result = sqlFilterPat_01.test(this);

	if (result == false) {
		result = sqlFilterPat_02.test(this);
	}

	if (result == false) {
		result = sqlFilterPat_03.test(this);
	}

	if (result == false) {
		result = sqlFilterPat_04.test(this);
	}

	if (result == false) {
		result = sqlFilterPat_05.test(this);
	}

	if (result == false) {
		result = sqlFilterPat_06.test(this);
	}

	if (result == false) {
		result = sqlFilterPat_07.test(this);
	}

	if (result == false) {
		result = sqlFilterPat_08.test(this);
	}

	if (result == false) {
		result = sqlFilterPat_09.test(this);
	}

	if (result == false) {
		result = sqlFilterPat_10.test(this);
	}

	if (result == false) {
		result = sqlFilterPat_11.test(this);
	}

	if (result == false) {
		result = sqlFilterPat_12.test(this);
	}

	if (result == false) {
		result = sqlFilterPat_13.test(this);
	}

	if (result == false) {
		result = sqlFilterPat_14.test(this);
	}

	if (result == false) {
		result = sqlFilterPat_15.test(this);
	}
	
	return result;
}
