﻿// form.js by guoo.net
// form library

// form functions start

// check functions start
function isNumber(str) {
	return str.match(/[0-9]+/g)==str;
}

function isFloat(str) {
	return str.match(/[0-9.]+/g)==str;
}

function isAlphabet(str) {
	return str.match(/[a-z]+/gi)==str;
}

function isIdChar(str) {
	return str.match(/[0-9a-z_]+/gi)==str;
}

function isNumAlpha(str) {
	return str.match(/[0-9a-z]+/gi)==str;
}

function isKorean(str) {
	for(var i=0; i<str.length; i++) {
		if(str.charCodeAt(i) < 128) return false;
	}
	return true;
}

function isEmail(str) {
	return str.match(/[a-zA-Z0-9_-]+@[a-zA-Z0-9-]+.[a-zA-Z.]+/g)==str;
}

function isBlank(str) {
	return (str.replace(/\s/g, '').length==0);
}

//by boinya 2007.03.29 - 수정사항 있음 고쳐 주세요 ^^a

function isUrl(str)
{
    return (str.match(/[\.a-zA-Z0-9-]+\.[a-zA-Z]+/g))==str;
}


function isImageFile(str)
{
    var extension_arr = 'JPG,GIF,BMP,PNG,PCX';  //대문자로 나열해주세염 구분자 ',' 잊지 마삼
    var checker = extension_arr.split(',');
    var extension = str.split('.');
    var return_msg = false;
    if (extension.length < 2)
    {
        return_msg = false;
    }
    else
    {
        for (var i=0;i<= checker.length;i++)
        {
            if (extension[1].toUpperCase() == checker[i])
            {
                return_msg = true;
            }
        }
    }
    return return_msg;
}

//어디선가 퍼옴.. 이건 체크가 제대로 될까나 ㄱ-;;
function isJumin(inputname1, inputname2) {
	var chk=0;
	var yy=inputname1.value.substring(0,2);
	var mm=inputname1.value.substring(2,4);
	var dd=inputname1.value.substring(4,6);
	var sex=inputname2.value.substring(0,1);
	if((inputname1.value.length!=6)||(yy<25||mm<1||mm>12||dd<1)) {
		inputname1.select();
		return false;
	}
	if((sex!=1&&sex!=2)||(inputname2.value.length!=7)) {
		inputname2.select();
		return false;
	}
	for(var i=0;i<=5;i++) {
		chk=chk+((i%8+2)*parseInt(inputname1.value.substring(i,i+1)));
	}
	for(var i=6;i<=11;i++) {
		chk=chk+((i%8+2)*parseInt(inputname2.value.substring(i-6,i-5)));
	}
	chk=11-(chk %11);
	chk=chk%10;
	if(chk!=inputname2.value.substring(6,7)) {
		inputname2.select();
		return false;
	}
	return true;
}
// check functions finish

// input check function start
function onlyNumber(tf) {
	tf.value = tf.value.replace(/[^0-9]/g, '');
}

function onlyAlphabet(tf) {
	tf.value = tf.value.replace(/[^a-z]/gi, '');
}

function onlyNumAlpha(tf) {
	tf.value = tf.value.replace(/[^0-9a-z]/gi, '');
}
function onlyDomain(tf) {
	tf.value = tf.value.replace(/[^0-9a-z-.]/gi, '');
}

function onlyFloat(tf) {
	tf.value = tf.value.replace(/[^0-9.]/g, '');
}
// input check function finish

// form check functions start
function checkText(obj, msg) {
	if(isBlank(obj.value.trim())) {
		alert(msg);
		obj.focus();
		return false;
	}
	return true;
}

function checkSelect(obj, msg) {
	if(isBlank(obj.value.trim())) {
		alert(msg);
		obj.focus();
		return false;
	}
	return true;
}

function checkRadio(obj, msg) {
	if(!radioValue(obj)) {
		alert(msg);
		return false;
	}
	return true;
}
// form check functions finish

function radioValue(radioObj) {
	if(radioObj) {
		for(var i=0; i<radioObj.length; i++) if(radioObj[i].checked) return radioObj[i].value;
	}
	return;
}
function selectRadio(radioObj, value) {
	if(radioObj) {
		for(var i=0; i<radioObj.length; i++) if(radioObj[i].value==value) {
			radioObj[i].checked = true;
			return;
		}
	}
	return;
}

function selectCheckbox(checkbox_name, variable){
	var checkboxes = document.getElementsByName(checkbox_name);
	if(checkboxes) {
		if(typeof variable=='undefined') {
			for(var i=0; i<checkboxes.length; i++) checkboxes[i].checked = !checkboxes[i].checked;
		}else {
			if(variable==1)
				for(var i=0; i<checkboxes.length; i++) checkboxes[i].checked = true;
			else if(variable==2)
				for(var i=0; i<checkboxes.length; i++) checkboxes[i].checked = false;
			else if(variable==3)
				for(var i=0; i<checkboxes.length; i++) checkboxes[i].checked = !checkboxes[i].checked;
		}
	}
}

function resetSelect(selectObj) {
	for(var i=0; i<selectObj.options.length; i++) selectObj.remove(i);
	selectObj.options.length = 0;
}

//2004.11.15 by guoo.net
function numberFormat(price) {
	price = "" + price;
	price = price.replace(/[^0-9.]/g, '');
	price = Math.round(parseFloat(price));
	price = "" + price;

	var length = price.length;
	for(var i=length-3; i>0; i-=3) {
		price = price.substring(0, i) + ',' + price.substring(i);
		length++
	}
	return price;
}

// table functions start
function swapTr(trObj1, trObj2) {
	var tbodyObj;
	if(typeof(trObj1)=='undefined') return null;
	if(typeof(trObj2)=='undefined') return null;
	if(trObj1.tagName!='TR') return null;
	if(trObj2.tagName!='TR') return null;
	tbodyObj = trObj1.parentNode;
	if(trObj1.rowIndex > trObj2.rowIndex)
		tbodyObj.insertBefore(trObj1, trObj2);
	else
		tbodyObj.insertBefore(trObj2, trObj1);
}

function moveTr(trObj, rowIndex) {
	var tbodyObj;
	if(typeof(trObj)=='undefined') return null;
	if(trObj.tagName!='TR') return null;
	tbodyObj = trObj.parentNode;
	if(trObj.rowIndex==rowIndex) return null;
	if(rowIndex==tbodyObj.childNodes.length)
		tbodyObj.appendChild(trObj);
	else if(trObj.rowIndex < rowIndex)
		tbodyObj.insertBefore(trObj, tbodyObj.childNodes[rowIndex]);
	else
		tbodyObj.insertBefore(trObj, tbodyObj.childNodes[rowIndex-1]);
}

function cloneTr(trObj) {
	var tbodyObj;
	var cloneTrObj;
	if(typeof(trObj)=='undefined') return null;
	if(trObj.tagName!='TR') return null;
	tbodyObj = trObj.parentNode;

	cloneTrObj = trObj.cloneNode(true);
	return cloneTrObj;
}

function recursionLeft(childObj) {
	var left = 0;
	var obj = childObj;

	while(obj && obj.tagName!='BODY') {
		if(obj.tagName!='TBODY' && obj.tagName!='FORM')
			left += obj.offsetLeft;
		obj = obj.parentNode;
	}//while

	return left;
}

function recursionTop(childObj) {
	var top = 0;
	var obj = childObj;

	while(obj && obj.tagName!='BODY') {
		if(obj.tagName!='TBODY' && obj.tagName!='TR' && obj.tagName!='FORM' && !(childObj.parentNode && obj.tagName=='DIV' && obj==childObj.parentNode)) {
			top += obj.offsetTop;
		}
		obj = obj.parentNode;
	}//while
	return top;
}

function selfUrlInLink() {
    var url = [];
    var full = location.href;
    var absolute = '';
    var query = '';
    var newQuery = '';

    var inKeyValue = [];
    var keyValue = [];
    var queryList = [];
    var queryArray = [];
    
    url = full.split('?');
    absolute = url[0];
    if(url.length > 1) query = url[1];

    queryArray = query.split('&');
    for(var i=0; i<queryArray.length; i++) {
        keyValue = queryArray[i].split('=');
        if(keyValue.length < 2) continue;
        
        for(var j=0; j<arguments.length; j++) {
            inKeyValue = arguments[j].split('=');
            if(inKeyValue.length < 2) continue;
            if(inKeyValue[0] == keyValue[0]) {
                keyValue[1] = inKeyValue[1];
                arguments[j] = '';
                break;
            }
        }
        
        if(newQuery) newQuery += '&';
        newQuery += keyValue[0] + '=' + keyValue[1];
    }
    
    for(var i=0; i<arguments.length; i++) {
        if(arguments[i]) {
            if(newQuery) newQuery += '&';
            newQuery += arguments[0];
        }
    }

    return absolute + '?' + newQuery;
}

function selfUrlOutLink() {
    var url = [];
    var full = location.href;
    var absolute = '';
    var query = '';
    var newQuery = '';
    
    url = location.href.split('?');
    absolute = url[0];
    if(url.length > 1) query = url[1];

    if(!query) {
        return location.href;
    }
    
    var queryList = query.split('&');
    var exist = false;
    var key = '';

    if(queryList.length > 0) {
        for(var j=0; j<queryList.length; j++) {
            exist = false;
            for(var i=0; i<arguments.length; i++) {
                key = queryList[j].split('=');
                if(key.length > 0) key = key[0];
                else key = '';
                if(key==arguments[i]) {
                    exist = true;
                    break;
                }
            }
            if(!exist) {
                if(newQuery) newQuery += '&';
                newQuery += queryList[j];
            }
        }
    }
    
    return absolute + '?' + newQuery;

}

// table functions finish

// form functions finish
