/*
 * Copyright (c) HanaroDream, Inc. All rights reserved.
 *
 * Original author : ÀüÇý¿µ <thinko@dreamx.com>
 * Maintainer     :  ÀüÇý¿µ <thinko@dreamx.com >
 * Date: 2005-07-21
 * Desc: ÀÏ¹ÝÀû ½ºÅ©¸³Æ®
 		  
 * $Header$
 */


//****************************************************************************
// Char c°¡ ¿µ¹®ÀÚ ÀÎÁö Ã¼Å©
// RETURN : true/false
// ***************************************************************************
function isLetterChar(c)
{
	return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) )
}

//****************************************************************************
// Char c°¡ ¼ýÀÚ ÀÎÁö Ã¼Å©
// RETURN : true/false
// ***************************************************************************
function isDigitChar(c)
{
	return ((c >= "0") && (c <= "9"))
}
//****************************************************************************
// Char  C°¡ whitechar ÀÎÁö Ã¼Å©
//****************************************************************************
function isWhiteChar(c)
{
	 return (c == ' ' || c == '\t' || c == '\n' || c == '\r')
}
//****************************************************************************
//* char ch °¡ ÇÑ±ÛÀÎÁö  Ã¼Å© 
// RETURN : true/false
//****************************************************************************
function isKoreanChar( ch )
{
	var chStr = escape(ch); //ISO-Latin-1 ¹®ÀÚ¼ÂÀ¸·Î º¯°æ
	if (chStr.length < 2)
		return false;

	//ÇÑ±Û ==> %uAC00 ~ %uD7A3
	if (chStr.substring(0, 2) == '%u')
	{
			if (chStr.substring(2,4) == '00')
					return false;
			else
					return true;         //ÇÑ±Û
	}
	else if (chStr.substring(0,1) == '%')
	{
			if (parseInt(chStr.substring(1,3), 16) > 127)
					return true;        //ÇÑ±Û
			else
					return false;
	}
	else
			return false;
}

//************************************************
// str ÀÌ °ø¹éÀÌ³ª NULL ÀÌ¸é TRUE ¾Æ´Ï¸é FALSE  *
//************************************************
function isEmpty(str) {
	if( str != null )
	{
		for( i=0 ; i < str.length ; i++)
		{
			if( !isWhiteChar( str.charAt(i) ) )
				return false;
		}
	}
	return ((str == null) || (str.length == 0));
}

//****************************************************************************
// str ÀÌ °ø¹éÀÌ³ª ÅÜ , ¸®ÅÏ ¹®ÀÚµé·Î ½ÇÁ¦¹®ÀÚ°¡ ¾øÀ»°æ¿ì TRUE ¾Æ´Ï¸é FALSE *
//****************************************************************************
function isWhitespace (str) {
	var whitespace = " \t\n\r";
	var i;
	if (isEmpty(str)) {
		return true;
	}
	for (i = 0; i < str.length; i++) {
		var chr = str.charAt(i);
		if (whitespace.indexOf(chr) == -1) {
			return false;
		}
	}
	return true;
}

//***************************************************************************
// strnumber°¡ À¯È¿ÇÑ ¼ýÀÚÅ¸ÀÔÀÎÁö Ã¼Å©					
// ÆÄ¶ó¸ÞÅÍ : strnumber(Ã¼Å©ÇÒ ¹®ÀÚ¿­)
//            exceptstr(¼ýÀÚÀÌ¿Ü¿¡ Çã¿ë °¡´ÉÇÑ ¹®ÀÚ¿­)
// RETURN : true/false
//****************************************************************************

function isNumber( strnumber, exceptstr)
{
	var i, j;

	for( i=0; i<strnumber.length ; i++)
	{

		if(  isDigitChar( strnumber.charAt(i) ) )
			continue;
		for(j=0; j<exceptstr.length; j++)
		{
			if( strnumber.charAt(i) == exceptstr.charAt(j) )
				break;
		}
		if( j == exceptstr.length ) 
			return false;
	}

	return true;
}

//****************************************************************************
// str ÀÌ ¿µ¹®,¼ýÀÚ Á¶ÇÕÀ¸·Î strSize º¸´Ù ÀÛÀºÁö Ã¼Å©
// RETURN : true/false
// ***************************************************************************
function isAlphaNumeric( str , strSize )
{
	var i;

	if ( str.length > strSize )
		return false

	for (i = 0; i < str.length; i++) {
		var c = str.charAt(i);
		if (!(isLetterChar(c) || isDigitChar(c)))
			return false;
	}

	return true;
}

//****************************************************************************
//* obj°¡ object ÀÎÁö Ã¼Å© 
// RETURN : true/false
//****************************************************************************
function isExistObject(obj){
	if (document.all[obj] == '[object]' || obj == '[object]'){
		return true;
	}
	else{
		return false;
	}
}

//****************************************************************************
// str ¹®ÀÚ¿­ÀÇ ¾çÂÊ(¿ÞÂÊ, ¿À¸¥ÂÊ) °ø¹éÀ» Á¦°ÅÇÑ °á°ú¸¦ ¸®ÅÏÇÏ´Â ÇÔ¼ö
// RETURN : string
// ***************************************************************************
function leftRightTrim( str ){
   var search = 0
   while ( str.charAt(search) == " "){
		search = search + 1
	}
	
	str = str.substring(search, (str.length))
	search = str.length - 1
	while ( str.charAt(search) ==" "){
	   search = search - 1
	}

   return str.substring(0, search + 1)         
}

//****************************************************************************
//* toUtf
//****************************************************************************
function toUtf(strUrl)
{
	var p1,p2;
	p1 = strUrl.lastIndexOf("/");
	if (p1 == -1)
		p1 = 0;
	p2 = strUrl.lastIndexOf(".");
	if (p2 == -1)
		return strUrl;
	return strUrl.substring(0,p1+1) + escape(strUrl.substring(p1+1,p2)) + strUrl.substring(p2,strUrl.length);
}

//****************************************************************************
//* utfpatch
//****************************************************************************
function utfpatch()
{
	var imageCount = document.images.length;
	documentImages = document.images;
	for (i=0;i<imageCount;i++)
		if (!documentImages[i].complete){
			documentImages[i].src = toUtf(documentImages[i].src);
		}
}

//****************************************************************************
//* document ¿¡ ·ÎµåµÈ ¸ðµç ÀÌ¹ÌÁöµéÀÇ width¸¦ sizeº¸´Ù ÀÛ°Ô ¼³Á¤
//****************************************************************************
function resizeImages( size )
{
	var imageCount = document.images.length;
	documentImages = document.images;
	for (i=0;i<imageCount;i++) {
		if (documentImages[i].width > size) {
			documentImages[i].width=size;
		}
	}
}

//****************************************************************************
//* strÀÌ ¿Ã¹Ù¸¥ ÀÌ¹ÌÁöÆÄÀÏ ÀÌ¸§ ÀÎÁö Ã¼Å© 
//****************************************************************************
function isImageNameOk(str) {
		
	var iLen = 0;
	var iLast = str.lastIndexOf(".");
	var strExtension = str.substring(iLast + 1 , iLast + 4);
				
	if ((iLen = str.length) > 0) {
		for(var i = 0; i < iLen; i++) {
			if (str.charAt(i) == '=' || str.charAt(i) == ',') {
				alert("[ÀÌ¹ÌÁö]ÀÇ ÆÄÀÏ¸í¿¡ '='ÀÌ³ª ','ÀÌ Æ÷ÇÔµÇ ÀÖÀ¸¸é ¾ÈµË´Ï´Ù.");
				return false;
			}
		}
	}
			
	if ((strExtension.toLowerCase() != "jpg") && (strExtension.toLowerCase() != "gif")) {
			alert("È®ÀåÀÚ°¡ jpg È¤Àº gif ÀÎ ÀÌ¹ÌÁö ÆÄÀÏ¸¸ Ã·ºÎ °¡´ÉÇÕ´Ï´Ù.");
			return false;	
	}

	return true;
}


//****************************************************************************
//* À¥ÆäÀÌÁö¿¡¼­ ÀÌ¹ÌÁö ¹Ì¸® ºÒ·¯¿À±â 
//	»ç¿ë¿¹: preload("test.gif", "test2.gif")
//****************************************************************************
function preloadImage() {
	if (!document.images) return;
		var ar = new Array();
		var arguments = preloadImage.arguments;
		for (var i = 0; i < arguments.length; i++) {
			ar[i] = new Image();
			ar[i].src = arguments[i];
	}
}


//*****************************************************************************
//* ¹ÙÀÌÆ® Ã¼Å©
//*****************************************************************************
function strChkToByte(str)
{
	var nbytes = 0;

	for (i=0; i<str.length; i++)
	{
		var ch = str.charAt(i);
		if(escape(ch).length > 4) 
		{
			nbytes += 2;
		}
		else if (ch == '\n') 
		{
			if (str.charAt(i-1) != '\r') 
			{
				nbytes += 1;
			}
		} 
		else if (ch == '<' || ch == '>') 
		{
			nbytes += 4;
		} 
		else
		{
			nbytes += 1;
		}
	}

	return nbytes;
}


//*****************************************************************************
//* HTML TAG Á¦°Å
//*****************************************************************************
function stripHTMLtag(string) {
   var objStrip = new RegExp();
   objStrip = /[<][^>]*[>]/gi;
   return string.replace(objStrip, "");
}


//*****************************************************************************
//* input ¿¡¼­ max_byte¸¦ ÃÊ°úÇÏ´Â byte ¼ö¸¦ ¸®ÅÏ
//*****************************************************************************
function getMaxByteOver(input_name, max_byte)
{
    var input_name_str, byte_count=0, input_name_length=0, one_str, ext_byte;
	input_name_str = new String(input_name.value);
	input_name_length = input_name_str.length;
	
	for (i = 0; i < input_name_length; i++)
	{
		one_str = input_name_str.charAt(i);
		if (parseInt(one_str.charCodeAt(0)) > 128)
		{
			byte_count += 2;
		}
		else if (one_str != '\r')
		{
			byte_count++;
		}
	}

	if (byte_count > max_byte)
		ext_byte = byte_count - max_byte;
	else
		ext_byte = 0

	return ext_byte;
}


//*****************************************************************************
//* input ¿¡¼­ max_byte¸¦ ÃÊ°úÇÏ´Â byte ¼ö¸¦ ÀÚ¸§
//*****************************************************************************
function setMaxBypeOverCut(input_name, max_byte)
{
	var input_name_str, byte_count = 0, input_name_length=0, one_str;
	
	input_name_str = new String(input_name.value);
	input_name_length = input_name_str.length;
	
	for (i = 0; i < input_name_length; i++)
	{
		if (byte_count < max_byte)
		{
			one_str = input_name_str.charAt(i);
			if (parseInt(one_str.charCodeAt(0)) > 128)
			{
				byte_count += 2;
			}
			else if (one_str != '\r')
			{
				byte_count++;
			}
		}               
		else
		{
			input_name_str = input_name_str.substring(0, i);
			alert( max_byte + "byte ¸¦ ÃÊ°úÇØ¼­ ÀÔ·ÂÇÒ¼ö ¾ø½À´Ï´Ù.");
			break;
		}
	}
	
	if ((max_byte%2) == 1)
	{
		input_name_length = (input_name_str.length-1);
		if (escape(input_name_str.charAt(input_name_length)).length > 4)
		{
			input_name_str = input_name_str.substring(0, input_name_length);
		}
	}

	input_name.value = input_name_str;	
}

//*****************************************************************************
//* opener reload and self.close
//*****************************************************************************
function OpenerReloadClose()
{
	if(opener == "[object]")
		opener.location.reload();
	self.close();
}

function setCookie(name, value, expiredays, domain)
{
	var todayDate = new Date();
	todayDate.setDate( todayDate.getDate() + expiredays );	
	todayDate.setHours(0);
	todayDate.setMinutes(0);
	todayDate.setSeconds(0);
	parent.document.cookie = name + "=" + escape( value ) + "; path=/;domain="+ domain +"; expires=" + todayDate.toGMTString() + ";"
}