/*--------------------------------------------------------------------------------------*
 *
 * PointShop Plus
 *
 * Copyright (c) 1999 ~ 2011 nbizsoft corporation.
 *
 * http://www.pointshop.co.kr
 * http://www.nbizsoft.com
 *
 *--------------------------------------------------------------------------------------
 * Registered Program under Korea Computer Program Protection Act.
 * Registered No :: 2001-01-26-1829
 *--------------------------------------------------------------------------------------
 * Àú ÀÛ ±Ç :: Æ÷ÀÎÆ®¼¥ASP´Â ÄÄÇ»ÅÍÇÁ·Î±×·¥º¸È£¹ý Á¦23Á¶ ÀÇÇÏ¿© µî·ÏµÈ ÇÁ·Î±×·¥ÀÔ´Ï´Ù.
 * µî·Ï¹øÈ£ :: 2001-01-26-1829
 *--------------------------------------------------------------------------------------*/

function MakeInt( val )
{
	for (var i=0; i<val.length; i++) {
		if ( val.charAt(i) != '0' ) {
			return parseInt(val.substring( i, val.length ));
		}
	}
	return 0;
}

function isDigit(val, allowable)
{
	var valid = true;
	var cmp = "0123456789" + allowable;

	for (var i=0; i<val.length; i++) {
		if (cmp.indexOf(val.charAt(i)) < 0) {
			valid = false;
			break;
		}
	}
	return valid;
}

function ObjectIsNumber( vObject, vLen, vTitle )
{
	var vRequire = '';

	if ( vObject.type == "hidden" ) return true;

	if ( isDigit( vObject.value, "-+" ) && vObject.value.length >= vLen ) { return true; }

	if ( vLen > 0 ) vRequire = "\n\n'"+vTitle+"' Ç×¸ñÀº ÇÊ¼öÇ×¸ñÀÔ´Ï´Ù.";

	alert( "'" + vTitle + "' Ç×¸ñÀº Á¤¼ö¸¸ ÀÔ·Â °¡´ÉÇÕ´Ï´Ù." + vRequire );
	vObject.focus();

	return false;
}

function ObjectIsFloatNumber( vObject, vLen, vTitle )
{
	var vRequire = '';

	if ( isDigit( vObject.value, "-+." ) && vObject.value.length >= vLen ) { return true; }

	if ( vLen > 0 ) vRequire = "\n\n'"+vTitle+"' Ç×¸ñÀº ÇÊ¼öÇ×¸ñÀÔ´Ï´Ù.";

	alert( "'" + vTitle + "' Ç×¸ñÀº ½Ç¼ö¸¸ ÀÔ·Â °¡´ÉÇÕ´Ï´Ù." + vRequire );
	vObject.focus();

	return false;
}

function ObjectIsKorean( vObject, vLen, vTitle )
{
	var vRequire = '';

	if ( isKorean( vObject.value ) && vObject.value.length >= vLen ) { return true; }

	if ( vLen > 0 ) vRequire = "\n\n'"+vTitle+"' Ç×¸ñÀº ÇÊ¼öÇ×¸ñÀÔ´Ï´Ù.";

	alert( "'" + vTitle + "' Ç×¸ñÀº ÇÑ±Û¸¸ ÀÔ·Â °¡´ÉÇÕ´Ï´Ù." + vRequire );
	vObject.focus();

	return false;
}

function ObjectIsAlphabet( vObject, vLen, vTitle )
{
	var vRequire = '';

	if ( isAlphabet( vObject.value ) && vObject.value.length >= vLen ) { return true; }

	if ( vLen > 0 ) vRequire = "\n\n'"+vTitle+"' Ç×¸ñÀº ÇÊ¼öÇ×¸ñÀÔ´Ï´Ù.";

	alert( "'" + vTitle + "' Ç×¸ñÀº ¿µ¹®¸¸ ÀÔ·Â °¡´ÉÇÕ´Ï´Ù." + vRequire );
	vObject.focus();

	return false;
}

//
// ID ´Â ¼ýÀÚ,¿µ¹®,±×¸®°í ÂÀ~ ±îÁö °¡´É!
//
function isUserId(val)
{
	var valid = true;
	var cmp = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567890.";

	if ( val.length < 4 ) return false;

	for (var i=0; i<val.length; i++) {
		if (cmp.indexOf(val.charAt(i)) < 0) {
			valid = false;
			break;
		}
	}
	return valid;
}

function isAlphabet(val)
{
	var valid = true;
	var cmp = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

	for (var i=0; i<val.length; i++) {
		if (cmp.indexOf(val.charAt(i)) < 0) {
			valid = false;
			break;
		}
	}
	return valid;
}

function isKorean(str) 
{
	var re = /[a-zA-Z0-9\s~!@#\$%^&\*\(\)_\+\{\}|:"<>\?`\-=\[\]\\;',\.\/]/;
	if (re.test(str))
		return false;
	return true;
}

function isEMail(str)
{
	if ( str.search(/(^\..*)|(.*\.$)/) != -1 || str.search(/\S+@(\S+)\.(\S+)/) == -1 ) {
        alert("ÀüÀÚ¿ìÆíÁÖ¼ÒÀÇ Çü½ÄÀº '°èÁ¤@[È£½ºÆ®|µµ¸ÞÀÎ]'°ú °°ÀÌ ±¸¼ºµÇ¾î¾ß ÇÏ¸ç,\r\n¾çÂÊ¿¡ '.'ÀÌ ±âÀçµÇ¾î¼­´Â ¾ÈµË´Ï´Ù.");
        return false ;
    }
	return true;
}

function isDenyEMail(str, denymails)
{
    if ( str.search(/(^\..*)|(.*\.$)/) != -1 || str.search(/\S+@(\S+)\.(\S+)/) == -1 ) {
        alert("¿Ã¹Ù¸¥ ÀÌ¸ÞÀÏ ÁÖ¼Ò¸¦ ÀÔ·ÂÇØ ÁÖ½Ê½Ã¿À.\r\n\r\nÀÌ¸ÞÀÏÁÖ¼Ò Çü½ÄÀº '°èÁ¤@[È£½ºÆ®|µµ¸ÞÀÎ]'°ú °°ÀÌ ±¸¼ºµÇ¾î¾ß ÇÏ¸ç,\r\n¾çÂÊ¿¡ '.'ÀÌ ±âÀçµÇ¾î¼­´Â ¾ÈµË´Ï´Ù.");
        return false;
    }


    if ( denymails ) {

        ar_email = str.split( "@" );

        if ( denymails.charAt( ";" ) ) {

            ar_denymail = denymails.split( ";" );

			for ( var i = 0; i < ar_denymail.length; i++ ) {

                if ( ar_email[1].toLowerCase() == ar_denymail[i] ) {
                    alert( ar_denymail[i] + " ÀÌ¸ÞÀÏ ÁÖ¼Ò´Â ¸ÞÀÏ¼ö½ÅÀÌ µÇÁö ¾Ê½À´Ï´Ù.\r\n\r\n´Ù¸¥ ¸ÞÀÏÁÖ¼Ò¸¦ ÀÔ·ÂÇØ ÁÖ¼¼¿ä." );
                    return false;
                }

			}

        } else {

            if ( ar_email[1].toLowerCase() == denymails ) {
                alert( denymails + " ÀÌ¸ÞÀÏ ÁÖ¼Ò´Â ¸ÞÀÏ¼ö½ÅÀÌ µÇÁö ¾Ê½À´Ï´Ù.\r\n\r\n´Ù¸¥ ¸ÞÀÏÁÖ¼Ò¸¦ ÀÔ·ÂÇØ ÁÖ¼¼¿ä." );
                return false;
            }
        }
    }

    return true;
}


function isCivilNo(it)
{
	var idtot=0;
	var idadd="234567892345";

	if ( it == "7777771111111" )
        return true;
	
	for (var i=0; i<12; i++) {
		idtot = idtot+parseInt(it.substring(i,i+1))*parseInt(idadd.substring(i,i+1));
	}
	idtot=11-(idtot%11);
	if (idtot==10) {
		idtot=0;
	} else if(idtot==11) {
		idtot=1;
	}
	if (parseInt(it.substring(12,13))!=idtot) 
		return false;

	return true;
}

/* Source Code Hidding... */
function OnEventRightMouseClick()
{
	if ( ( event.button == 2 || event.button == 3 ) ) {
		// don't view my source!!
	}
}

function srcInstall()
{
	document.onmousedown = OnEventRightMouseClick;

	if ( navigator.appName == "Netscape" ) {
		document.captureEvents( Event.MOUSEDOWN );
		document.onmousedown = checkClick;
	
		function checkClick( ev ) {
			if ( ev.which != 1 ) {
				// don't view my source!!
				return false;
			}
		}
	}
}

function Make1K( pValue )
{
    var strValue = new String( pValue );
    var sLen = strValue.length;
    var sValue = "";
    var sVal3  = "";

    if ( sLen < 3 )
        return strValue + ' ¿ø';

    var iCnt = 0;
    for ( var i = sLen; i > 0 ; i-- ) {

        sValue = sValue + strValue.substring( i-1, i );

        if ( ++iCnt == 3 && i > 1 ) {
            sValue = sValue + ',';
            iCnt = 0;
        }
    }

    var sVal2 = new String( sValue );

    for ( i = sVal2.length ; i > 0; i-- ) {
        sVal3 = sVal3 + sVal2.substring( i-1, i );
    }

    return ( sVal3 + ' ¿ø' );
}

// -------------------------------------------------------------------------
// ÇÊ¼öÀÔ·Â»çÇ× Á¡°Ë 
// -------------------------------------------------------------------------
function __CheckPhoneInputs(field)
{
	if ( __iCountryCode == 'int' ) {
		if ( jQuery('input[name='+field+']').val().length < 1 )
			return false;
	} else {
		if ( jQuery('input[name='+field+'b]').val().length < 3 || jQuery('input[name='+field+'c]').val().length < 3 )
			return false;
	}

	return true;
}

function __CheckRequireObject( objForm, String )
{
	var bChecked = false;

	__initApplFormData();

	for ( var i = 0; i < __arApplForm.length; i++ ) {

        if ( __arApplForm[i].type == "CIVILNO" && !__arApplForm[i].require ) {
                if ( objForm.ucivil1.value.length > 0 || objForm.ucivil2.value.length > 0 ) {
                        if ( !isCivilNo( objForm.ucivil1.value + objForm.ucivil2.value ) ) {
                                alert("¿Ã¹Ù¸¥ "+ __arApplForm[i].name + "(À»)¸¦ ÀÔ·ÂÇØ ÁÖ½Ê½Ã¿À.");
                                objForm.ucivil1.focus();
                                return false;
                        }
                }
        }

		if ( !__arApplForm[i].require ) continue;

		switch ( __arApplForm[i].type ) {
		case "USERID":
			if ( !isUserId( objForm.elements[ __arApplForm[i].field ].value ) ) {
				alert( __arApplForm[i].name + "´Â ¿µ¹®°ú ¼ýÀÚ¸¸ °¡´ÉÇÕ´Ï´Ù. (4~12ÀÚ)" );
				objForm.elements[ __arApplForm[i].field ].focus();
				return false;
			}
			break;

		case "PASSWORD":
			if ( objForm.upass1.value.length < 4 ) {
				alert( __arApplForm[i].name + "´Â 4ÀÚ ÀÌ»óÀ¸·Î ¼³Á¤ÇØ ÁÖ½Ê½Ã¿À." );
				objForm.upass1.focus();
				return;
			}
			if ( objForm.upass1.value != objForm.upass2.value ) {
				alert( __arApplForm[i].name + "¿Í "+ __arApplForm[i].name +" È®ÀÎÀÌ ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù." );
				objForm.upass2.focus();
				return;
			}
			break;

		case "CIVILNO":
			if ( !isCivilNo( objForm.ucivil1.value + objForm.ucivil2.value ) ) {
				alert("¿Ã¹Ù¸¥ "+ __arApplForm[i].name + "(À»)¸¦ ÀÔ·ÂÇØ ÁÖ½Ê½Ã¿À.");
				objForm.ucivil1.focus();
				return false;
			}
			break;
		case "EMAIL":

			if ( objForm.elements['oEmailDom'] ) {
				var szTempEmail = objForm.elements[ __arApplForm[i].field ].value + "@" + objForm.oEmailDom.options[objForm.oEmailDom.selectedIndex].value;
			} else {
				var szTempEmail = objForm.elements[ __arApplForm[i].field ].value;
			}
					//objForm.elements[ __arApplForm[i].field ].value,
	
			if ( typeof _exceptDom === "undefined" ) {
				var _exceptDom = '';
			}
	
			if ( !isDenyEMail( szTempEmail, _exceptDom ) ) {
				objForm.elements[ __arApplForm[i].field ].focus();
				return false;
			}
			break;

		case "ADDR":
			if ( objForm.uaddrpost.value.length < 1 ) {
				alert( __arApplForm[i].name + "Àº(´Â) ÇÊ¼öÇ×¸ñ ÀÔ´Ï´Ù." );
				objForm.uaddrpost.focus();
				return false;
			}
			// »ó¼¼ÁÖ¼Ò 
			// -----------------------------------------------
			if ( objForm.uaddr.value.length < 1 ) {
				alert( __arApplForm[i].name + "Àº(´Â) ÇÊ¼öÇ×¸ñ ÀÔ´Ï´Ù." );
				objForm.uaddr.focus();
				return false;
			}
			break;


		case "PHONE":
		case "CELLPHONE":
			if ( !__CheckPhoneInputs( __arApplForm[i].field ) ) {
				alert( "ÀüÈ­¹øÈ£(¶Ç´Â ÈÞ´ëÀüÈ­¹øÈ£) Ç×¸ñÀ» ÀÔ·ÂÇØ ÁÖ½Ê½Ã¿À." );
				return false;
			}
			break;

		case "BIRTHDAY":
			if ( !ObjectIsNumber( objForm.ubirth_yy, 4, __arApplForm[i].name ) )
				return false;
			if ( !ObjectIsNumber( objForm.ubirth_mm, 1, __arApplForm[i].name ) )
				return false;
			if ( !ObjectIsNumber( objForm.ubirth_dd, 1, __arApplForm[i].name ) )
				return false;
			if ( jQuery('input[name=ubirth_leap]').length ) {
				if ( !jQuery('input[name=ubirth_leap]:checked').length ) {
					alert( '»ýÀÏÀÇ À½·Â ¶Ç´Â ¾ç·ÂÀ» ¼±ÅÃÇØ ÁÖ½Ê½Ã¿À.');				
					return false;
				}
			}
			break;

		case "DATE":
			break;

		case "TEXTKR":
			return ObjectIsKorean( objForm.elements[ __arApplForm[i].field ], 2,  __arApplForm[i].name );
			break;
		// -----------------------------------------------
		// HTML Style
		// -----------------------------------------------
		case "RADIO":
		case "CHECKBOX":
			bChecked = false;
			for ( var j = 0; j < objForm.elements[ __arApplForm[i].field ].length; j++ ) {
				if ( objForm.elements[ __arApplForm[i].field ][j].checked ) {
					bChecked = true;
				}
			}

			if ( !bChecked ) {
				alert( __arApplForm[i].name + "Àº(´Â) ÇÊ¼öÇ×¸ñÀ¸·Î ÇÑ°¡Áö¸¦ ²À ¼±ÅÃÇÏ¼Å¾ßÇÕ´Ï´Ù." );
				objForm.elements[ __arApplForm[i].field ][0].focus();
				return false;
			}
			break;

		case "UNIQUE":
		case "TEXTAREA":
		case "TEXT":
			if ( objForm.elements[ __arApplForm[i].field ].value.length < 2 ) {
				alert( __arApplForm[i].name + "Àº(´Â) ÇÊ¼öÇ×¸ñ ÀÔ´Ï´Ù." );
				objForm.elements[ __arApplForm[i].field ].focus();
				return false;
			}
			/**
			 * 2010.04.02 jja TEXT Å¸ÀÔÀÇ °æ¿ì  °Ë»çÇ×¸ñÀÌ ´Ù¸¥µ¥ °Ë»çÇÏ´Â °úÁ¤ ºüÁ®ÀÖÀ½ Ãß°¡
			 */ 
            switch( __arApplForm[i].ctype ) {
                case 1:
                    if ( isDigit( objForm.elements[ __arApplForm[i].field ].value ) ) {
                        alert( __arApplForm[i].name + "Àº(´Â) ÇÑ±Û°ú ¿µ¹®¸¸ °¡´ÉÇÕ´Ï´Ù." );
                        objForm.elements[ __arApplForm[i].field ].focus();
                        return false;
                    }
                    break;
                case 2:
                    if ( !ObjectIsNumber( objForm.elements[ __arApplForm[i].field ], 2,  __arApplForm[i].name ) ) return false;
                    break;
                case 3:
                    if ( !ObjectIsFloatNumber( objForm.elements[ __arApplForm[i].field ], 2,  __arApplForm[i].name ) ) return false;;
                    break;
                case 4:
                    if ( !ObjectIsKorean( objForm.elements[ __arApplForm[i].field ], 2,  __arApplForm[i].name ) ) return false;
                    break;
                case 5:
                    if ( !ObjectIsAlphabet(  objForm.elements[ __arApplForm[i].field ], 2,  __arApplForm[i].name ) ) return false;
                    break;
                default:
                    break;
            }
			
			break;
		case "SELECT" :
			nIndex = objForm.elements[ __arApplForm[i].field ].selectedIndex;
			if ( objForm.elements[ __arApplForm[i].field ].options[nIndex].value == "" ) {
				alert( __arApplForm[i].name + "Àº(´Â) ÇÊ¼öÇ×¸ñÀ¸·Î ÇÑ°¡Áö¸¦ ²À ¼±ÅÃÇÏ¼Å¾ßÇÕ´Ï´Ù." );
				objForm.elements[ __arApplForm[i].field ].focus();
				return false;
			}
			break;

		default:
			alert( "È¸¿ø°¡ÀÔ Æû¿¡ ¿À·ù°¡ ÀÖ½À´Ï´Ù. :: " + __arApplForm[i].field + " :: " + __arApplForm[i].type );
			break;
		}

	}

	return true;
}
