/** 
 * << Javascript utility functions >>
 *
 * @ Author : Kim Moon Soo 
 * @ D&Tech 7 Consulting 
 *
 */

/**
* ºê¶ó¿ìÁ®ÀÇ Å¸ÀÔÀ» ¼³Á¤
*/
var ns = (document.layers)? true:false;
var ie = (document.all)? true:false;
var doc = (ie)? document.all : document;

/**
  * ÀÔ·Â °ªÀÌ Object ÀÎÁö¸¦ ¹ÝÈ¯.
  * returns true if a is an object, and array, or a function.
  * It returns false if a is a string, a number, a boolean, or null, or undefined.
  */
function isObject(input) {
	    return (input && typeof input == 'object') || isFunction(input);
}

/**
  * ÀÔ·Â °ªÀÌ Function ÀÎÁö¸¦ ¹ÝÈ¯.
  */
function isFunction(input) {
	    return typeof input == 'function';
}

/**
* ÇÑ±ÛÀ» 2byte ·Î ÀÎ½ÄÇØ¼­ Á¦´ë·Î µÈ ±æÀÌ¸¦ ±¸ÇÔ
*/
function getByteLength(value) {
	var byteLength = 0;
	for(var inx = 0; inx < value.length; inx++){
		var oneChar = escape(value.charAt(inx));
		if(oneChar.length == 1) byteLength ++;
		else if(oneChar.indexOf("%u") != -1) byteLength += 2;
		else if(oneChar.indexOf("%") != -1) byteLength += oneChar.length/3;
	}
	return byteLength;
}

/**
* ÀÔ·Â°ªÀÌ NULLÀÎÁö Ã¼Å©
*/
function isNull(value) {
   if (value == null || value == "") {
       return true;
   }
   return false;
}

/**
* ÀÔ·Â°ª¿¡ ½ºÆäÀÌ½º ÀÌ¿ÜÀÇ ÀÇ¹ÌÀÖ´Â °ªÀÌ ÀÖ´ÂÁö Ã¼Å©
*/
function isEmpty(value) {
   if (value == null || value.replace(/ /gi,"") == "") {
       return true;
   }
   return false;
}

/**
* ÀÔ·Â°ª¿¡ Æ¯Á¤ ¹®ÀÚ(chars)°¡ ÀÖ´ÂÁö Ã¼Å©
* Æ¯Á¤ ¹®ÀÚ¸¦ Çã¿ëÇÏÁö ¾ÊÀ¸·Á ÇÒ ¶§ »ç¿ë
* ex) if (containsChars(form.name,"!,*&^%$#@~;")) {
*         alert("ÀÌ¸§ ÇÊµå¿¡´Â Æ¯¼ö ¹®ÀÚ¸¦ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.");
*     }
*/
function containsChars(value,chars) {
   for (var inx = 0; inx < value.length; inx++) {
      if (chars.indexOf(value.charAt(inx)) != -1)
          return true;
   }

   return false;
}

/**
* ÀÔ·Â°ªÀÌ Æ¯Á¤ ¹®ÀÚ(chars)¸¸À¸·Î µÇ¾îÀÖ´ÂÁö Ã¼Å©
* Æ¯Á¤ ¹®ÀÚ¸¸ Çã¿ëÇÏ·Á ÇÒ ¶§ »ç¿ë
* ex) if (!containsCharsOnly(form.blood,"ABO")) {
*         alert("Ç÷¾×Çü ÇÊµå¿¡´Â A,B,O ¹®ÀÚ¸¸ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.");
*     }
*/
function containsCharsOnly(value,chars) {
   for (var inx = 0; inx < value.length; inx++) {
      if (chars.indexOf(value.charAt(inx)) == -1)
          return false;
   }
   return true;
}

/**
* ÀÔ·Â°ªÀÌ ¾ËÆÄºªÀÎÁö Ã¼Å©
* ¾Æ·¡ isAlphabet() ºÎÅÍ isNumComma()±îÁöÀÇ ¸Þ¼Òµå°¡
* ÀÚÁÖ ¾²ÀÌ´Â °æ¿ì¿¡´Â var chars º¯¼ö¸¦
* global º¯¼ö·Î ¼±¾ðÇÏ°í »ç¿ëÇÏµµ·Ï ÇÑ´Ù.
* ex) var uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
*     var lowercase = "abcdefghijklmnopqrstuvwxyz";
*     var number    = "0123456789";
*     function isAlphaNum(input) {
*         var chars = uppercase + lowercase + number;
*         return containsCharsOnly(input,chars);
*     }
*/
function isAlphabet(value) {
   var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
   return containsCharsOnly(value,chars);
}

/**
* ÀÔ·Â°ªÀÌ ¾ËÆÄºª ´ë¹®ÀÚÀÎÁö Ã¼Å©
*/
function isUpperCase(value) {
   var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
   return containsCharsOnly(value,chars);
}

/**
* ÀÔ·Â°ªÀÌ ¾ËÆÄºª ¼Ò¹®ÀÚÀÎÁö Ã¼Å©
*/
function isLowerCase(value) {
   var chars = "abcdefghijklmnopqrstuvwxyz";
   return containsCharsOnly(value,chars);
}

/**
* ÀÔ·Â°ª¿¡ ¼ýÀÚ¸¸ ÀÖ´ÂÁö Ã¼Å©
*/
function isNumber(value) {
   var chars = "0123456789";
   return containsCharsOnly(value,chars);
}

/**
* ÀÔ·Â°ªÀÌ ¾ËÆÄºª,¼ýÀÚ·Î µÇ¾îÀÖ´ÂÁö Ã¼Å©
*/
function isAlphaNum(value) {
   var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
   return containsCharsOnly(value,chars);
}

/**
* ÀÔ·Â°ªÀÌ ¼ýÀÚ,´ë½Ã(-)·Î µÇ¾îÀÖ´ÂÁö Ã¼Å©
*/
function isNumDash(value) {
   var chars = "-0123456789";
   return containsCharsOnly(value,chars);
}

/**
* ÀÔ·Â°ªÀÌ ¼ýÀÚ,ÄÞ¸¶(,)·Î µÇ¾îÀÖ´ÂÁö Ã¼Å©
*/
function isNumComma(value) {
   var chars = ",0123456789";
   return containsCharsOnly(value,chars);
}

/**
* ÀÔ·Â°ª¿¡¼­ ÄÞ¸¶¸¦ ¾ø¾Ø´Ù.
*/
function removeComma(value) {
   return value.replace(/,/gi,"");
}

/**
* ÀÔ·Â°ªÀÌ »ç¿ëÀÚ°¡ Á¤ÀÇÇÑ Æ÷¸Ë Çü½ÄÀÎÁö Ã¼Å©
* ÀÚ¼¼ÇÑ format Çü½ÄÀº ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ 'regular expression'À» ÂüÁ¶
*/
function isValidFormat(value,format) {
   if (value.search(format) != -1) {
       return true; //¿Ã¹Ù¸¥ Æ÷¸Ë Çü½Ä
   }
   return false;
}

/**
* ÀÔ·Â°ªÀÌ ÀÌ¸ÞÀÏ Çü½ÄÀÎÁö Ã¼Å©
*/
function isValidEmail(value) {
   var format = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/;
   return isValidFormat(value, format);
}

/**
* ÀÔ·Â°ªÀÌ ÀüÈ­¹øÈ£ Çü½Ä(¼ýÀÚ-¼ýÀÚ-¼ýÀÚ)ÀÎÁö Ã¼Å©
*/
function isValidPhone(value) {
   var format = /^(\d+)-(\d+)-(\d+)$/;
   return isValidFormat(value,format);
}


/**
 * alert and redirect 
 */
function alertAndRedirect(message, ojumpurl)
{
	alert(message);
	self.location=ojumpurl;
}


/**
 * Scroll bar °¡ ¾ø´Â À©µµ¿ì¸¦ openÇÑ´Ù. 
 */
function open_window(url,popNm,width,height)
{
    window.open(url,popNm,"width="+width+",height="+height+",scrollbars=no,status=yes");
}

/**
 * Scroll bar °¡ ÀÖ´Â À©µµ¿ì¸¦ openÇÑ´Ù. 
 */
function open_window_scroll(url,popNm,width,height)
{
    window.open(url,popNm,"width="+width+",height="+height+",scrollbars=yes,status=yes");
}

/**
 * confirm ÇÑ ÈÄ¿¡, ÁÖ¾îÁø url ·Î ºÐ±âÇÑ´Ù. 
 */
function myconfirm(msg,url){
    if(confirm(msg)){
	    self.location = url;
	}
}

/**
 * blink()ÀÇ subfunction À¸·Î ´Üµ¶À¸·Î ½ÇÇàµÇÁö ¾Ê´Â´Ù.
 * 150ms ´ÜÀ§·Î ½ÇÇàµÇ¸ç 's' ¶ó´Â object ¸¦ blink ½ÃÅ²´Ù 
 */
function count() {

	var now = new Date();
	var seconds = now.getSeconds();
	if(seconds%2==1) {
		s.style.visibility="visible";
	} else { 
		s.style.visibility="hidden";
	}

	setTimeout("count()",150);
}
/**
 * Text ¸¦ ±ôºýÀÌ¸ç, count() ¿Í ¿¬µ¿µÇ¾î µ¹¾Æ°£´Ù. ( Netscape ÀÇ <blink> ÅÂ±×¸¦ simulate ) 
 */
function blink(text) {
	if(document.layers) {
		document.write('<span class=normal><blink>'+text+'</blink></span>');
	} 
	else { 
		document.write('<span class=normal id="s">'+text+'</span>');
	}
	count();
}

/**
 * Cookie ¸¦ ¼ÂÆÃÇÑ´Ù. 
 */
function setCookie (name, value){  
	var argv = setCookie.arguments;  
	var argc = setCookie.arguments.length;  
	var expires = (argc > 2) ? argv[2] : null;  
	var path = (argc > 3) ? argv[3] : null;  
	var domain = (argc > 4) ? argv[4] : null;  
	var secure = (argc > 5) ? argv[5] : false;  

	document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) +  ((domain == null) ? "" : ("; domain=" + domain)) +    ((secure == true) ? "; secure" : "");
}
/**
 * Cookie °ªÀ» °¡Á®¿Â´Ù. 
 */
function getCookie(name){
    var nameOfCookie = name + "=";
    var x = 0;
    while (x <= document.cookie.length){
        var y = (x+nameOfCookie.length);
        if ( document.cookie.substring( x, y ) == nameOfCookie ) {
            if ( (endOfCookie=document.cookie.indexOf( ";", y )) == -1 )
                endOfCookie = document.cookie.length;
            return unescape( document.cookie.substring( y, endOfCookie ) );
        }
        x = document.cookie.indexOf( " ", x ) + 1;
        if ( x == 0 )
            break;
    }
    return "";
}

/**
 * ¿øº»À¸·Î º¹¿øÇÑ´Ù.  
 */
function restore(object){
	if(object){
		object.src=object.altsrc;
		object.altsrc=null;
	}
}

/**
 * ÀÌ¹ÌÁöÀÇ src ¸¦ º¯°æÇÑ´Ù. 
 */
function change(object, dest){
	if(object){
		object.altsrc = object.src;
		object.src = dest;
	}
}

/**
 * ÁÖ¾îÁø ÅØ½ºÆ®¸¦ Å¬¸³º¸µå·Î º¹»çÇÑ´Ù. ÀÍ½ºÇÃ·Î¾î¿¡¼­¸¸ µ¿ÀÛ 
 */
function copy(copyStr){
	if(window.clipboardData.setData) {
		fResult = window.clipboardData.setData("Text", copyStr);
	}
}

/**
* ¹Ý¿Ã¸²ÇÑ´Ù -- ¼Ò¼ýÁ¡ X ÀÚ¸®±îÁö ³²±è( X+1 ÀÚ¸®¿¡¼­ ¹Ý¿Ã¸² )
*/
function round(number,X){
	return Math.round(number*Math.pow(10,X))/Math.pow(10,X);
}

