﻿/**************************************************************************

File Name : common.js

                
1. 20090625

**************************************************************************/

//document.domain = "ufotown.com";

//======================================================
//--- Description : 사이트에서 사용될 Js 전역변수 선언
var STAT_CODE_GOOGLE	= "UA-4982517-4";
var CIRCLE_SERVER_URL	= "http://circle.ufotown.com";
var PLAZA_SERVER_URL	= "http://plaza.ufotown.com";		// 이거만 써요~~~
var WWW_PLAZA_URL 		= "http://plaza.ufotown.com";		// PLAZA_SERVER_URL 과 겹침  WWW_PLAZA_URL 쓰는사람 연락바람. (이동훈:alpig@danal.com)
var WWW_DOMAIN_URL 		= "http://www.ufotown.com";
var CIRCLE_IMG_URL 		= "http://img.ufotown.com";
var CIRCLE_IMG2_URL 	= "http://svcimg.ufotown.com/UFO_IMAGE";
var UFO_IMG_WEB			= "http://svcimg.ufotown.com";
//======================================================

function go_login_parent(ret)
{
	//parent.top.location.href= WWW_DOMAIN_URL + '/member/login/login.asp?return_url='+escape(ret)
}

/*
function go_login(ret)
{
	ret = $("input#returl").val();
	top.location.href= WWW_DOMAIN_URL + '/member/login/login.asp?' + ret;
}
*/
///////////////////////////////////////////////////////////////////////////
// Function Name	: go_login(returl, flg)
// Parameter Info	: 
// Return Info		: returl(url), flg(1:ifr 아님, 2:ifr 인경우)
// Description		: 서클 로그인
///////////////////////////////////////////////////////////////////////////
function go_login(returl, flg)
{
	var ret;

	if (flg == 1)
	{
			if ($("input#returl").val() == "")
			{
				ret = returl;
			}
			else
			{
				ret = $("input#returl").val();
			}	
	}
	else
	{
			if (parent.$("input#returl").val() == "")
			{
				ret = returl;
			}
			else
			{
				ret = parent.$("input#returl").val();
			}	
	}


	top.location.href= WWW_DOMAIN_URL + '/member/login/login.asp?return_url=' + escape(ret) + '&n_flag=1';
}

///////////////////////////////////////////////////////////////////////////
// Function Name	: Null 체크, trim 공백 제거
// Parameter Info	: 
// Return Info		: 
// Description		: 공백여부와 공백제거
///////////////////////////////////////////////////////////////////////////
String.prototype.isNull = function() {
    if (this == null || this.trim() == "") return true;
    else return false;
}

String.prototype.trim = function() {
    return this.replace(/(^\s*)|(\s*$)/gi, "");
}
///////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////
// Function Name	: Win_pop(newwin,w,h, name)
// Parameter Info	: 
// Return Info		: None
// Description		: Key 값이 있는 팝업
///////////////////////////////////////////////////////////////////////////
function Win_pop(newwin, w, h, name) {
    var winl = (screen.width - w) / 2;
    var wint = (screen.height - h) / 2;
    winprops = 'width=' + w + ',height=' + h + ',top=' + wint + ',left=' + winl + ',resizable=no,scrollbars=no,status=no,menu=no';
    win = window.open(newwin, name, winprops)
    if (!win) { alert("팝업차단상태입니다. 팝업허용을 하셔야 서비스를 이용할 수 있습니다."); return; }
    if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}

function Win_pos_pop(newwin, w, h, name, pw, ph) {
    winprops = 'width=' + w + ',height=' + h + ',top=' + ph + ',left=' + pw + ',resizable=no,scrollbars=no,status=no,menu=no';
    win = window.open(newwin, name, winprops);
    if (!win) { alert("팝업차단상태입니다. 팝업허용을 하셔야 서비스를 이용할 수 있습니다."); return; }
    if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}
///////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////
// Function Name	: 
// Parameter Info	: 
// Return Info		: 
// Description		: 허용된 byte만큼 입력도중 실시간으로 string자르기
//                    <textArea>등에 사용하면 됩니다.
//                    onKeyup="checkByte(this,제한할byte수,"현재byte정보뿌려줄영역의ID");"
//                    마지막 인자는 선택사항입니다.
//                    ex)  onKeyup="checkByte(this,200,'nowByteShowArea');"
//                    바이트만 계산하고 싶다면 getBytes(sString) 을 쓰면 된다
///////////////////////////////////////////////////////////////////////////
function getBytes(sString) {
    var c = 0;
    for (var i = 0; i < sString.length; i++) {
        c += parseInt(getByte(sString.charAt(i)));
    }
    return c;
}
function getByte(sChar) {
    var c = 0;
    var u = escape(sChar);
    if (u.length < 4) { // 반각문자 : 기본적인 영문, 숫자, 특수기호
        c++; // + 1byte
    } else {
        var s = parseInt(sChar.charCodeAt(0));
        if (((s >= 65377) && (s <= 65500)) || ((s >= 65512) && (s <= 65518))) // 반각문자 유니코드 10진수 범위 : 한국어, 일본어, 특수문자
            c++; // + 1byte
        else // 전각문자 : 위 조건을 제외한 모든 문자
            c += 2; // + 2byte
    }
    return c;
}
function cutOverText(obj, maxByte, viewAreaID) {
    var sString = obj.value;
    var c = 0;
    for (var i = 0; i < sString.length; i++) {
        c += parseInt(getByte(sString.charAt(i)));
        if (c > maxByte) {
            obj.value = sString.substring(0, i);
            break;
        }
    }
    showNowByte(obj.value, viewAreaID);
}
function showNowByte(sString, viewAreaID) {
    var vArea = document.getElementById(viewAreaID);
    if (vArea) vArea.innerHTML = getBytes(sString);
}
function checkByte(obj, maxByte, viewAreaID) {
    var sString = obj.value;
    showNowByte(sString, viewAreaID);
    if (getBytes(sString) > maxByte) {
        alert("최대 " + maxByte + "Byte(한글 " + (maxByte / 2) + "자/영문 " + maxByte + "자)까지만 입력하실 수 있습니다.");
        cutOverText(obj, maxByte, viewAreaID);
    }
}
///////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////
// Function Name	: 
// Parameter Info	: 
// Return Info		:
// Description		: 플래시 사용함수
//                    ex) val obj = new SelFlash(); obj.Default('', 100, 100 , '');
//                    Default : 기본값으로 모든 html 엘리먼트 위로 flash 가 나타납니다.
//                    Transparent : flash 를 투명하게 하여 flash 아래의 html 엘리먼트가 화면상에 나오게 됩니다. -- 배경투명
//                    Opaque : flash 위에 html 엘리먼트를 위치 시킬때 사용합니다.
///////////////////////////////////////////////////////////////////////////
function SelFlash() {
    var Default = null;
    var Transparent = null;
    var Opaque = null;
}
SelFlash.prototype.Default = function(src, width, height, param) {
    param = param || "";
    document.writeln("<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0\" width=\"" + width + "\" height=\"" + height + "\">");
    document.writeln("	<param name=\"movie\" value=\"" + src + "?" + param + "\">");
    document.writeln("  <param name='allowScriptAccess' value='always' />");
    document.writeln("  <param name='allowFullScreen' value='true' />");
    document.writeln("	<embed src=\"" + src + "?" + param + "\" quality=\"high\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" width=\"" + width + "\" height=\"" + height + "\"></embed>");
    document.writeln("</object>");
}
SelFlash.prototype.Transparent = function(src, width, height, param) {
    param = param || "";
    document.writeln("<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0\" width=\"" + width + "\" height=\"" + height + "\">");
    document.writeln("	<param name=\"movie\" value=\"" + src + "\">");
    document.writeln("	<param name=\"flashVars\" value=\"" + param + "\">");
    document.writeln("  <param name='allowScriptAccess' value='always' />");
    document.writeln("  <param name='allowFullScreen' value='true' />");
    document.writeln("	<param name='wmode' value='transparent' />");
    document.writeln("	<embed src=\"" + src + "?" + param + "\" quality=\"high\" wmode=\"transparent\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" width=\"" + width + "\" height=\"" + height + "\"></embed>");
    document.writeln("</object>");
}
SelFlash.prototype.Opaque = function(src, width, height, param) {
    param = param || "";
    document.writeln("<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0\" width=\"" + width + "\" height=\"" + height + "\">");
    document.writeln("	<param name=\"movie\" value=\"" + src + "\">");
    document.writeln("	<param name=\"flashVars\" value=\"" + param + "\">");
    document.writeln("  <param name='allowScriptAccess' value='always' />");
    document.writeln("  <param name='allowFullScreen' value='true' />");
    document.writeln("	<param name='wmode' value='opaque' />");
    document.writeln("	<embed src=\"" + src + "?" + param + "\" quality=\"high\" wmode=\"opaque\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" width=\"" + width + "\" height=\"" + height + "\"></embed>");
    document.writeln("</object>");
}
///////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////
//	Function Name	: setComma, delComma
//	Parameter Info	: 
//	Return Info		: 
//	Description		: 통화 형식 변형
//                    setComma : 숫자에 콤마를 추가
//                    delComma : 숫자에 콤마를 삭제
///////////////////////////////////////////////////////////////////////////
String.prototype.setComma = function() {
    numstr = String(this);
    numstr = numstr.delComma();
    var re0 = /^(-?\d+)(\d{3})($|\..*$)/;
    if (re0.test(numstr))
        return numstr.replace(re0, function(str, p1, p2, p3) { return p1.setComma() + "," + p2 + p3; });
    else
        return numstr;
}
String.prototype.delComma = function() {
    numstr = String(this);
    if (numstr == '') return '0';
    else if (numstr == '-') return '0';
    else if (numstr == '0-') return '-0';
    numstr = numstr.replace(/[^\d\.-]/g, '');
    numstr = String(numstr.match(/^-?\d*\.?\d*/));
    numstr = numstr.replace(/^(-?)(\d*)(.*)/, function(str, p1, p2, p3) { p2 = (p2 > 0) ? String(parseInt(p2, 10)) : '0'; return p1 + p2 + p3; });
    return numstr;
}
///////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////
//	Function Name	: Reduce
//	Parameter Info	: 
//	Return Info		: 
//	Description		: 말줄임
///////////////////////////////////////////////////////////////////////////
String.prototype.Reduce = function(num) {
    if (this.length > num) {
        return this.substring(0, num) + "...";
    }
    return this;
}
///////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////
//	Function Name	: GetFileName, GetExtensionCheck
//	Parameter Info	: AllowExt - 허용할 확장자 (gif|jpg|jpeg|bmp)
//	Return Info		: 
//	Description		: 파일명 얻기, 확장자체크
///////////////////////////////////////////////////////////////////////////
String.prototype.GetFileName = function() {
    var pVar = "";
    for (i = this.length; i > 0; i--) {
        if (this.charAt(i - 1) == "\\") break;
        pVar = this.charAt(i - 1) + pVar;
    }
    return pVar;
}
String.prototype.GetExtensionCheck = function(AllowExt) {
    return this.toLowerCase().match("[^= '\]*\.(" + AllowExt.toLowerCase() + ")");
}
///////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////
//	Function Name	: setCookie()
//	Parameter Info	:  name :팝업이름/ expiredays: 비 오픈 일 수
//	Return Info		: 
//	Description		: name 팝업이름으로 expiredays 값 만큼의 쿠키를 저장한다.
//                    setCookie, setCookie_time 쿠키 저장
//                    getCookie 쿠키 가져오기 
////////////////////////////////////////////////////////////////////////////
function setCookie(name, value, expiredays, domain) {
    var todayDate = new Date();
    if (expiredays) {
        todayDate.setDate(todayDate.getDate() + expiredays);
    }
    document.cookie = name + "=" + escape(value) + "; path=/;" +
	((expiredays != null) ? " expires=" + todayDate.toGMTString() + ";" : "") +
	((domain != null) ? " domain=" + domain + ";" : "");
}

function setCookie_Time(name, value, expireTimes, domain) {
    var todayDate = new Date();
    if (expireTimes) {
        todayDate.setTime(todayDate.getTime() + (1000 * 60 * 60 * expireTimes));
    }
    document.cookie = name + "=" + escape(value) + "; path=/;" +
	((expiredays != null) ? " expires=" + todayDate.toGMTString() + ";" : "") +
	((domain != null) ? " domain=" + domain + ";" : "");
}
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 Name	: KeyCode
//	Parameter Info	: 
//	Return Info		:
//	Description		: onkeydown="if( Keycode(event) ==13) login();" 
///////////////////////////////////////////////////////////////////////////
function Keycode(e) {
    var result;
    if (window.event)
        result = window.event.keyCode;
    else if (e)
        result = e.which;
    return result;
}
///////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////
//	Function Name	: clipboard
//	Parameter Info	: 
//	Return Info		:
//	Description		: 클립보드저장
///////////////////////////////////////////////////////////////////////////
function clipboard(meintext, viewText) {
	if (window.clipboardData) {
		window.clipboardData.setData("Text", meintext);
	}else if (window.netscape) {
		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
		var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
		if (!clip) return;
		var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
		if (!trans) return;
		trans.addDataFlavor('text/unicode');
		var str = new Object();
		var len = new Object();
		var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
		var copytext=meintext;
		str.data=copytext;
		trans.setTransferData("text/unicode",str,copytext.length*2);
		var clipid=Components.interfaces.nsIClipboard;
		if (!clip) return false;
		clip.setData(trans,null,clipid.kGlobalClipboard);
	}

	if (viewText == null)
	{
		viewText = true;
	}
	
	var msg = (viewText ? meintext + " " : "")
		+ "주소가 복사되었습니다.\n\n"
		+ "웹 브라우저에 붙여넣기(CTRL + V) 하시면 됩니다.";
	alert(msg);
}

///////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////
// Function Name       : isSSNInter
// Parameter Info      : 
// Return Info         : 
// Description         : 주민등록번호 체크 - 국내인,외국인 통합
///////////////////////////////////////////////////////////////////////////
function isSSNInter(ssn1, ssn2) {
    var chk = 0;

    if (ssn1.length == 6) {
        if (ssn2.length == 7) {
            if (ssn2.substring(0, 1) == 5 || ssn2.substring(0, 1) == 6) {
                var sum = 0;
                var odd = 0;
                var reg_no;

                reg_no = ssn1 + ssn2;

                buf = new Array(13);
                for (i = 0; i < 13; i++) buf[i] = parseInt(reg_no.charAt(i));

                odd = buf[7] * 10 + buf[8];

                if (odd % 2 != 0) {
                    return false;
                }

                if ((buf[11] != 6) && (buf[11] != 7) && (buf[11] != 8) && (buf[11] != 9)) {
                    return false;
                }

                multipliers = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5];
                for (i = 0, sum = 0; i < 12; i++) sum += (buf[i] *= multipliers[i]);

                sum = 11 - (sum % 11);

                if (sum >= 10) sum -= 10;

                sum += 2;

                if (sum >= 10) sum -= 10;

                if (sum != buf[12]) {
                    return false;
                }
                else {
                    return true;
                }
            }

            for (var i = 0; i <= 5; i++) { chk = chk + ((i % 8 + 2) * parseInt(ssn1.substring(i, i + 1))) }
            for (var i = 6; i <= 11; i++) { chk = chk + ((i % 8 + 2) * parseInt(ssn2.substring(i - 6, i - 5))) }
            chk = 11 - (chk % 11);
            chk = chk % 10;

            if (chk != ssn2.substring(6, 7)) {
                return false;
            } else return true;
        } else return false;
    } else return false;
}
///////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////
// Function Name       : isBusinessNum
// Parameter Info      : 
// Return Info         : 
// Description         : 사업자등록번호 체크
///////////////////////////////////////////////////////////////////////////
function isBusinessNum(saup1, saup2, saup3) {

    var checkID = new Array(1, 3, 7, 1, 3, 7, 1, 3, 5, 1);
    var bizID = "" + saup1 + saup2 + saup3;
    var i, Sum = 0, c2, remander;

    for (i = 0; i <= 7; i++) Sum += checkID[i] * bizID.charAt(i);

    c2 = "0" + (checkID[8] * bizID.charAt(8));
    c2 = c2.substring(c2.length - 2, c2.length);

    Sum += Math.floor(c2.charAt(0)) + Math.floor(c2.charAt(1));

    remander = (10 - (Sum % 10)) % 10;

    if (Math.floor(bizID.charAt(9)) != remander) {
        return false;
    }
    return true;
}
///////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////
//	Function Name	: ConvertToYYYYMMDD
//	Parameter Info	: 
//	Return Info		: 
//	Description		: YYYYMMDD 형식 변환
///////////////////////////////////////////////////////////////////////////
function ConvertToYYYYMMDD(date) {
    var str = null;
    var month = date.getMonth() + 1;
    var day = date.getDate();

    if (month < 10) month = "0" + month;
    if (day < 10) day = "0" + day;

    str = date.getYear() + "" + month + "" + day;

    return str;
}
///////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////
//	Function Name	: autoFocus
//	Parameter Info	: 
//	Return Info		: 
//	Description		: 자동포커스
///////////////////////////////////////////////////////////////////////////
function autoFocus(frm) {
    for (i = 0; i < frm.length; i++) {
        if (frm[i].type == "text" || frm[i].type == "password") {
            frm[i].focus();
            break;
        }
    }
}
///////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////
//	Function Name	: GET url
//	Parameter Info	: 
//	Return Info		: 
//	Description		: 
///////////////////////////////////////////////////////////////////////////
function GetSearchQuery(strName) {
    var oLocation = location.href;

    if (oLocation.indexOf('?') > 0) {
        var strUri = oLocation.split('?');
        var strParam = strUri[1].split('&');

        for (var i = 0; i < strParam.length; i++) {
            if (strParam[i].indexOf('=') > 0) {
                var strQuery = strParam[i].split('=');

                // 0에는 parameter 이름, 1에는 값이 저장된다.
                if (strQuery[0] == strName)
                    return strQuery[1];
            }
        }
    }

    // 찾고자하는 변수가 없는 경우 빈문자열 반환한다.
    return "";
}
///////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////
//	Function Name	: 체크박스 전체 활성 및 비활성
//	Parameter Info	: 
//	Return Info		: 
//	Description		: 
///////////////////////////////////////////////////////////////////////////
function goAllCheck() {
    if ($("#chkAll").is(":checked"))
        $("input:checkbox").attr("checked", "checked");
    else
        $("input:checkbox").attr("checked", "");
}

function goItemCheck() {
    if ($("input:checkbox:not(:checked):not(#chkAll)").length == 0)
        $("#chkAll").attr("checked", "checked");
    else
        $("#chkAll").attr("checked", "");
}

// 선택 되어진 체크박스 존재 여부
function goSelectedCheck(msg) {
    if ($("input:checkbox:checked:not(#chkAll)").length == 0) {
        alert(msg);
        return false;
    }

    return true;
}

// 선택 되어진 체크박스 값 가져오기
function getSelectedValue() {
    var items = "";
    $("input:checkbox:checked:not(#chkAll)").each(function() {
        items += $(this).val() + ",";
    });

    if ($.trim(items) != "") items = items.substr(0, items.length - 1);

    return items;
}
///////////////////////////////////////////////////////////////////////////




///////////////////////////////////////////////////////////////////////////
//	Function Name	: iframe Resize
//	Parameter Info	:  obj (iframe.id / name) ,  minHeight(최소 프래임 높이값)
//	Return Info		: 
//	Description		: 
///////////////////////////////////////////////////////////////////////////
function resizeIfr(obj, minHeight) {
	minHeight = minHeight || 10;
	try {
		var getHeightByElement = function(body) {
			var last = body.lastChild;
			try {
				while (last && last.nodeType != 1 || !last.offsetTop) last = last.previousSibling;
				return last.offsetTop+last.offsetHeight;
			} catch(e) {
				return 0;
			}
		}
				
		var doc = obj.contentDocument || obj.contentWindow.document;
		if (doc.location.href == 'about:blank') {
			obj.style.height = minHeight+'px';
			return;
		}
		
		//var h = Math.max(doc.body.scrollHeight,getHeightByElement(doc.body));
		//var h = doc.body.scrollHeight;
		if (/MSIE/.test(navigator.userAgent)) {
			var h = doc.body.scrollHeight;
			// ie8에선 ie7과 비교시 약 15px 더 적게 값이 적용됨. if(window.JSON) h+=15;
		} else {
			var s = doc.body.appendChild(document.createElement('DIV'))
			s.style.clear = 'both';

			var h = s.offsetTop;
			s.parentNode.removeChild(s);
		}
		
		//if (/MSIE/.test(navigator.userAgent)) h += doc.body.offsetHeight - doc.body.clientHeight;
		if (h < minHeight) h = minHeight;

		obj.style.height = h + 'px';
		if (typeof resizeIfr.check == 'undefined') resizeIfr.check = 0;
		if (typeof obj._check == 'undefined') obj._check = 0;

		//if (obj._check < 5) {
			//obj._check++;
			setTimeout(function(){ resizeIfr(obj,minHeight) }, 500); // check 5 times for IE bug
		//} else {
			//obj._check = 0;
		//}	
	} catch (e) { 
		//alert(e);
	}
}

function autoResize()
{
	var bw	= parseInt(document.documentElement.scrollWidth);
	var bh	= parseInt(document.documentElement.scrollHeight);
	var ww	= bw+10;
	var wh	= bh+47;

	if (navigator.userAgent.indexOf("MSIE") != -1)
	{
		if (navigator.userAgent.indexOf("MSIE 7") != -1)
		{
			wh += 25;
		}
	}
	//alert(ww);
	//alert(wh);
}

function ifrWindowReSize(arg)
{	
	if (navigator.appName == "Microsoft Internet Explorer")
	{
		arg.height = eval(arg.name+".document.documentElement.scrollHeight")-10;
	}
}



//======================================================
//--- Description : 체킹된 내용 실행전 confirm (firefox검증)
//--- Func Name : confirm_chking(obj,action_url,msg)
//--- Param : obj(form object, action url, alert msg)
//--- Make Date : 2008/09/22
//--- Author : kdy
//======================================================
function confirm_chking(obj,action_url,msg){
	var  check_nums = obj.elements.length;
	
	for (var i = 0; i < check_nums; i++) {
		if (obj.elements[i].checked == true) {
			break;
		}
   }

   if (i == check_nums) {
		alert('선택해 주십시오.');
   }    
   else {
	   if (msg =='')
	   {
			obj.method="post";
			obj.action=action_url;
			obj.submit();
	   }
	   else
	   {
			flag = confirm(msg)
			if(flag == true){
			
				obj.method="post";
				obj.action=action_url;
				obj.submit();
			}
	   }
   }
}
//======================================================


//======================================================
//--- Description : 체크박스 전체선택/전체해제 (firefox검증)
//--- Func Name : set_all_nothing(obj, currEl, chkEl)
//--- Param : obj(form object, this, check box name)
//--- Make Date : 2008/09/22
//--- Author : kdy
//======================================================
function set_all_nothing(obj, currEl, chkEl)
{
	if (currEl.checked == true)
		select_all(obj,chkEl);
	else
		select_cancel(obj,chkEl);
}
//======================================================


//======================================================
//--- Description : 체크박스 전체선택 (firefox검증)
//--- Func Name : select_all(obj, chkEl)
//--- Param : obj(form object, check box name)
//--- Make Date : 2008/09/22
//--- Author : kdy
//======================================================
function select_all(obj,chkEl)
{
	for (var k=0; k<obj.elements.length; k++)
	{
		if (obj.elements[k].name == chkEl)
		{
			if (obj.elements[k].checked == false)
			{
				obj.elements[k].click();
			}
		}
	}
}
//======================================================


//======================================================
//--- Description : 체크박스 전체해제 (firefox검증)
//--- Func Name : select_cancel(obj, chkEl)
//--- Param : obj(form object, check box name)
//--- Make Date : 2008/09/22
//--- Author : kdy
//======================================================
function select_cancel(obj,chkEl)
{
	for (var k=0; k<obj.elements.length; k++)
	{
		if (obj.elements[k].name == chkEl)
		{
			if (obj.elements[k].checked == true)
			{
				obj.elements[k].click();
			}
		}
	}
}
//======================================================



//======================================================
//--- Description : text check (firefox검증)
//--- Func Name :chkText(field, name)
//--- Param : obj(object element, hname element)
//--- Make Date : 2008/09/22
//--- Author : kdy
//======================================================
function chkText(field, name)
{ 
       if(field.value.length < 1){ 
              alert(name); 
              field.focus(); 
              return false; 
       } 
	   
       if(!chkForbid(field, field.value)) return false; 

       return true; 
}
//======================================================


//======================================================
//--- Description : forbid text check (firefox검증)
//--- Func Name : chkForbid(field, str)
//--- Param : obj(object element, check string)
//--- Make Date : 2008/09/22
//--- Author : kdy
//======================================================
function chkForbid(field, str){
	
	var nonStr = ";,+,select,delete,insert,truncate,union,@@";		
	splitStr = nonStr.split(",")	

	str = str.toLowerCase();

	for(i=0; i<splitStr.length; i++){

		if ( str.indexOf(splitStr[i])  != -1 ){
			alert('['+splitStr[i]+']는 처리할수 없는 단어 입니다.');
            field.focus(); 
			return false;
		}	
	}
	return true;
}
//======================================================


//======================================================
//--- Description : hiddle check (firefox검증)
//--- Func Name : chkHidden( field, name)
//--- Param : obj(object element, hname element)
//--- Make Date : 2008/09/22
//--- Author : kdy
//======================================================
function chkHidden(field, name)
{ 
       if(field.value.length < 1){ 
              alert(name); 
              return false; 
       } 
       return true; 
}
//======================================================


//======================================================
//--- Description : checkbox check (firefox검증)
//--- Func Name : chkCheckbox(obj, chkEl, name)
//--- Param : obj(form object, object element, hname element)
//--- Make Date : 2008/09/22
//--- Author : kdy
//======================================================
function chkCheckbox(obj, chkEl, name)
{
	for (var k=0; k<obj.elements.length; k++)
	{
		if (obj.elements[k].name == chkEl.name)
		{
			if (obj.elements[k].checked)
			{
				return true;
			}
		}
	}
	alert(name); 
    chkEl.focus(); 
    return false; 
}
//======================================================


//======================================================
//--- Description : radio check (firefox검증)
//--- Func Name : chkRadio(obj, chkEl, name)
//--- Param : obj(form object, object element, hname element)
//--- Make Date : 2008/09/22
//--- Author : kdy
//======================================================
function chkRadio(obj, chkEl, name)
{
	for (var k=0; k<obj.elements.length; k++)
	{
		if (obj.elements[k].name == chkEl.name)
		{
			if (obj.elements[k].checked)
			{
				return true;
			}
		}
	}
	alert(name); 
    chkEl.focus(); 
    return false; 
} 
//======================================================


//======================================================
//--- Description : patten check (firefox검증)
//--- Func Name : confirm_btn(field,patten)
//--- Param : obj(object element, option element)
//--- Make Date : 2008/09/22
//--- Author : kdy
//======================================================
function chkPatten(field,patten)
{ 
    var regNum =/^[0-9]+$/; 
    var regPhone =/^[0-9]{2,3}-[0-9]{3,4}-[0-9]{4}$/; 
    var regMail =/^[_a-zA-Z0-9-]+@[._a-zA-Z0-9-]+\.[a-zA-Z]+$/; 
    var regDomain =/^[.a-zA-Z0-9-]+.[a-zA-Z]+$/; 
    var regAlpha =/^[a-zA-Z]+$/; 
    var regHost =/^[a-zA-Z-]+$/; 
    var regHangul =/[가-힣]/; 
    var regHangulEng =/[가-힣a-zA-Z]/; 
    var regHangulOnly =/^[가-힣]*$/; 
    var regId = /^[a-zA-Z]{1}[a-zA-Z0-9_-]{4,14}$/; 
    var regDate =/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/; 

    patten = eval(patten); 
    if(!patten.test(field.value)){ 
       alert(field.value + "는 올바른 형식이 아닙니다."); 
        field.focus(); 
        return false; 
    } 
    return true; 
}
//======================================================


//======================================================
//--- Description : 특수 문자 체크 
//--- Func Name : chkNonChar(text)
//--- Param : text(체크할구문)
//--- Make Date : 2009/01/13
//--- Author : wildbear
//======================================================
function chkNonChar(text)
{
	var nonchar = '`@#$%&\|<>;",';
	
	var i ; 
	for ( i=0; i < text.length; i++ )  {
		if( nonchar.indexOf(text.substring(i,i+1)) > 0) {
			break ; 
		}
	}
	if ( i != text.length ) {
		return false ; 
	}
	else{
		return true ;
	} 
	
	return false;
}

//======================================================
//--- Description : only number (firefox검증)
//--- Func Name : OnlyNumber()
//--- Param : -
//--- Make Date : 2008/09/22
//--- Author : kdy
//======================================================
function OnlyNumber(e)
{ 
	e = e || window.event;
	var key;
	
	if  (e.keyCode) key = e.keyCode;
	else if (e.which) key = e.which;

	if (!(key==8 || key==9 || key==13 || key==144 || (key>=48 && key <=57)))
	{
		if (e.returnValue)
		{
			e.returnValue = false;
			e.cancelBubble = true;
		}

		if (e.preventDefault)
		{
			e.preventDefault();
			e.stopPropagation();
		}

		event.returnValue = false;
	}
}
//======================================================


//======================================================
//--- Description : form check (firefox검증)
//--- Func Name : check_form(obj)
//--- Param : obj(form object)
//--- Make Date : 2008/09/22
//--- Author : kdy
//======================================================
function check_form(obj) {
       var i,currEl;
       for(i = 0; i < obj.elements.length; i++){ 
              currEl = obj.elements[i]; 
		
              if (currEl.getAttribute("required") != null)
              { 
                     if(currEl.type.toUpperCase() == "TEXT" || currEl.tagName.toUpperCase() == "SELECT" || currEl.tagName.toUpperCase() == "TEXTAREA" ||currEl.type.toUpperCase() == "PASSWORD" )
                     { 
                            if(!chkText(currEl,currEl.getAttribute("hname"))) return false; 

                     } else if(currEl.type.toUpperCase() == "FILE"){ 
                            if(!chkFile(currEl,currEl.getAttribute("hname"))) return false;

                     }else if(currEl.type.toUpperCase() == "CHECKBOX"){ 
                            if(!chkCheckbox(obj,currEl, currEl.getAttribute("hname"))) return false; 

                     } else if(currEl.type.toUpperCase() == "RADIO"){ 
                            if(!chkRadio(obj,currEl, currEl.getAttribute("hname"))) return false; 

                     } else if(currEl.type.toUpperCase() == "HIDDEN"){ 
                            if(!chkHidden(currEl,currEl.getAttribute("hname"))) return false; 

                     }
              }
              if(currEl.getAttribute("option") != null && currEl.value.length > 0){ 
                     if(!chkPatten(currEl,currEl.getAttribute("option"))) return false; 
              } 
       }
		return;
}
//======================================================

//======================================================
//--- Description : 공통 AJAX 요청
//--- Func Name : callAjax
//--- Param : -
//--- Make Date : 2009-07-22
//--- Author : 김민정
//======================================================
function callAjax(sendUrl, arg, onSuccess, onFailure, method, returnType)
{
	var beginTime = new Date();
		beginTime = beginTime.getTime();
	method = method.toLowerCase();
	if (method != "post" && method != "get")
	{
		method = "get";
	}
	returnType = returnType.toLowerCase();
	if (returnType != "text" && returnType != "json")
	{
		returnType = "text";
	}
	$.ajax({
		type		: method,
		url			: sendUrl,
		contentType	: "application/x-www-form-urlencoded; charset=utf-8",
		data		: arg,
		dataType	: "text",
		error		: function(xhr, status)
		{
			onFailure(status);
		},
		success		: function(resultData)
		{
			var endTime = new Date();
				endTime = endTime.getTime();
			var runningTime = ((endTime - beginTime) / 1000);
			if (runningTime > 3)
			{
				//alert("Time out: " + runningTime);
			}
			var returnData = resultData;
			if (returnType == "json")
			{
				try
				{
					returnData = JSON.parse(returnData);
				}
				catch (e)
				{
					alert(	"Error name: " + e["name"]
							+ "\n\nError message: " + e["message"]
							+ "\n\nTypeof: " + typeof returnData);
				}
			}

			// 2009-10-14: 비동기호출 통계 추적 추가(김민정)
			// 2009-11-12: 비동기호출 통계 추적 제거(김민정)
			/*if (arg != null)
			{
				var params = "?callType=func"
				var breakParams = $.param(arg);
				if (breakParams != "")
				{
					params += "&" + breakParams;
				}
				if (g_unum == "333589")
				{
					alert(sendUrl + params);
				}
				try
				{
					var pageTracker = _gat._getTracker(STAT_CODE_GOOGLE);
					pageTracker._trackPageview(sendUrl + params);
				}
				catch(err)
				{
				}
			}*/

			onSuccess(returnData);
		},
		beforeSend	: function()
		{
			//	alert("Requesting...");
		},
		complete	: function()
		{
			//	alert("Completed...");
		}
	});
}

//======================================================
//--- Description : 문자열 인코딩
//--- Func Name : encodeUri
//--- Param : -
//--- Make Date : 2009-07-22
//--- Author : 김민정
//======================================================
String.prototype.encodeUri = function()
{
	var SAFECHARS = "0123456789" +     
					"ABCDEFGHIJKLMNOPQRSTUVWXYZ" + 
					"abcdefghijklmnopqrstuvwxyz" +
					"-_.!~*'()";    
	var HEX = "0123456789ABCDEF";
	var plaintext = encodeURI(this);
	var encoded = "";
	for (var i = 0; i < plaintext.length; i++ ) {
		var ch = plaintext.charAt(i);
		if (ch == " ") {
			encoded += ch;    /* x-www-urlencoded, rather than %20 */
		} else if (SAFECHARS.indexOf(ch) != -1) {
			encoded += ch;
		} else {
			var charCode = ch.charCodeAt(0);
			if (charCode > 255) {
				encoded += ch;
			} else {
				encoded += "%";
				encoded += HEX.charAt((charCode >> 4) & 0xF);
				encoded += HEX.charAt(charCode & 0xF);
			}
		}
	}
	return encoded;
	//return encodeURI(this);
}

//======================================================
//--- Description : 문자열 디코딩
//--- Func Name : decodeUri
//--- Param : -
//--- Make Date : 2009-07-22
//--- Author : 김민정
//======================================================
String.prototype.decodeUri = function()
{
	var txt = decodeURI(this);
	if (txt==undefined || txt==null || txt=="")
	{
		return txt;
	}
	var HEXCHARS = "0123456789ABCDEFabcdef"; 
	var encoded = txt;
	var plaintext = "";
	var i = 0;
	while (i < encoded.length) {
		var ch = encoded.charAt(i);
		if (ch == "+") {
			plaintext += " ";
			i++;
		} else if (ch == "%") {
			if (i < (encoded.length-2) && HEXCHARS.indexOf(encoded.charAt(i+1)) != -1 && HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
				plaintext += unescape( encoded.substr(i,3) );
				i += 3;
			} else {
				plaintext += ch;
				i++;
			}
		} else {
			plaintext += ch;
			i++;
		}
	}
	return plaintext;
	//return decodeURI(this);
}


//======================================================
//--- Description : png 이미지 반투명 
//--- Func Name : setPng24
//--- Param : -
//--- Make Date : 2009-08-04
//--- Author : 강성민
//======================================================

function setPng24(obj) { 
    obj.width=obj.height=1; 
    obj.className=obj.className.replace(/\bpng24\b/i,''); 
    obj.style.filter = 
    "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+ obj.src +"',sizingMethod='image');" 
    return ''; 
} 

/*
=====================================================
Description	: 레벨 아이콘 가져오기
Name		: getLevelIcon
Param       : grdCode	사용자 레벨코드
			: size 아이콘 사이즈(s:Small | b:Big)
Make Date	: 2009-07-17
Author		: 김민정
=====================================================
*/
function getLevelIcon(grdCode, size, ext)
{
	if (grdCode==null || grdCode=="")
	{
		return "";
	}
	if (ext == null)
	{
		ext = "gif";
	}
	var tmpCode;
	/*if (grdCode.substr(3,1)=="0")
	{
		tmpCode = 1;
	}
	else
	{*/
		tmpCode = grdCode.substr(3,1);
		tmpCode = parseInt(tmpCode, 10) + 1;
	/*}*/
	var grdImgPath = CIRCLE_IMG2_URL+"/common/level/ico_level_"+size+"_0"+tmpCode+"_0"+grdCode.substr(4,1)+"." + ext;
	return grdImgPath;
}

/*
=====================================================
Description	: 레벨 이름 가져오기
Name		: getLevelDesc
Param       : grdCode	사용자 레벨코드
Make Date	: 2009-08-05
Author		: 김민정
=====================================================
*/
function getLevelDesc(grdCode)
{
	if (grdCode==null || grdCode=="")
	{
		return "";
	}
	var tmpName;
	switch (parseInt(grdCode.substr(3,1), 10) + 1)
	{
		case 2: tmpName = "혜성"; break;
		case 3: tmpName = "소행성"; break;
		case 4: tmpName = "행성"; break;
		case 5: tmpName = "성운"; break;
		case 6: tmpName = "은하"; break;
		default: tmpName = "별똥별"; break;
	}
	return tmpName;
}

/*
=====================================================
Description	: 프로필 이미지 가져오기
Name		: getProfileImage
Param       : cnum	사용자 써클 고유번호
			: unum	사용자 고유번호
			: flag	이미지 구분(1:Default | 2:Thumbnail(78*78) | 3:Thumbnail2(50*50))
Make Date	: 2009-07-17
Author		: 김민정
=====================================================
*/
function getProfileImage(cnum, unum, flag)
{
	var tmpNum;
	var tmpPos;
	for (var i=0; i<unum.length; i++)
	{
		tmpNum = unum.substring(i,unum.length).substr(0,1);
		if (tmpNum != 0)
		{
			tmpPos = i;
			break;
		}
	}
	unum = unum.substring(tmpPos,unum.length);
	cnum = parseInt(cnum, 10);
	var imgPath = (parseInt(cnum/10000, 10)+1) + "0000/"+cnum+"_"+unum;
		switch (flag)
		{
			case "1": imgPath += ".jpg"; break;
			case "2": imgPath += "_vst_s.jpg"; break;
			case "3": imgPath += "_my_s.jpg"; break;
			case "4": imgPath += "_common_s.jpg"; break;
			case "5": imgPath += "_f.jpg"; break;
			default: imgPath += "_s.jpg"; break;
		}
		imgPath = CIRCLE_IMG_URL+"/UFO_CIRCLE/UPLOAD/profile/"+imgPath+"?"+(new Date().getSeconds());
	return imgPath;
}

function isIE6()
{
	if ($.browser.msie && $.browser.version == "6.0")
	{
		return true;
	}
	return false;
}
