﻿/*******************************************************************************
 *   동화기업 홈페이지 프로젝트
 *------------------------------------------------------------------------------
 * @(#)common.js
 * @author PIXELBIT
 * @version 1.0, 2005/10/19
 *
 * 1.Description   : Common Script
 * 2.Page Type     : Java Script
 * 3.Update Source :
 *       <2005/10/19><K.W.Y>:<init version>
 ******************************************************************************/


/*------------------------------------------------------------------------------
	문자열 관련 함수
------------------------------------------------------------------------------*/
/**
 *  특정 문자로 왼쪽 채우는 함수
 *
 * @param source 원본문자열
 * @param target_length
 * @param ch
 */
function lpad(source,target_length,ch)
{
	if ( source==null )
	{
		source	= "";
		return source;
	}
	else
	{
		source=ltrim(source);
		var ch_size=target_length-source.length;
		var chs="";
		if(ch_size<=0)
			return source;
		for(var i=0;i<ch_size;i++){
			chs+="0";
		}
		return chs+source;
	}
}

/**
 *  특정 문자로 오른쪽 채우는 함수
 *
 * @param source 원본문자열
 * @param target_length
 * @param ch
 */
function rpad(source,target_length,ch)
{
	if ( source==null )
	{
		source	= "";
		return source;
	}
	else
	{
		source=rtrim(source);
		var ch_size=target_length-source.length;
		var chs="";
		if(ch_size<=0)
			return source;
		for(var i=0;i<ch_size;i++){
			chs+="0";
		}
		return source+chs;
	}
}

/**
 *  입력된 문자의 왼쪽 공백을 제거하고 리턴
 *
 * @param source 원본문자열
 */
function ltrim(source)
{
	var i = 0;
	var j = source.length - 1;

	if(source==null) return "";

	for(j = source.length - 1; j >= 0; j--)
	{
		if (source.substr(j, 1) != ' ' && source.substr(j, 1) != '\t') 	break;
	}

	if (i <= j)
		return source.substr(i, (j+1)-i);
	else
		return "";
}

/**
 *  입력된 문자의 오른쪽 공백을 제거하고 리턴
 *
 * @param source 원본문자열
 */
function rtrim(source)
{
	var i = 0;
	var j = source.length - 1;

	if (source==null) return "";

	for(j = source.length - 1; j >= 0; j--)
	{
		if (source.substr(j, 1) != ' ' && source.substr(j, 1) != '\t') 	break;
	}

	if (i <= j)
		return source.substr(i, (j+1)-i);
	else
		return "";
}

/**
 *  입력된 문자의 앞뒤 공백을 제거하고 리턴
 *
 * @param source 원본문자열
 */
function trim(source)
{
	if(source==null) return "";

	return rtrim(ltrim(source));
}

/**
 *  문자열 변환
 *
 * @param source 		대상 문자열
 * @param expression	변환할 문자열
 * @param replaced string
 */
function replace(source, expression, replace)
{
	var pos = 0;
	var pre_str = "";
	var post_str = "";
	pos = source.indexOf(expression)

	while (pos != -1)
	{
		pre_str = source.substr(0,pos) ;
		post_str = source.substr(pos+expression.length, source.length) ;
		source = pre_str + replace + post_str;
		pos = source.indexOf(expression) ;
	}

	return source;
}

/**
 *  배열의 각 항목의 값을 지정된 Delimiter로 연결문자 생성
 *
 * @param array	1차원배열
 * @param Delimiter	분리character("" 인 경우All concatenation)
 * @param String
 */
function join(array, delimiter)
{
	var temp = '';

	if (array.length == 0) 	return '';

	if (delimiter.length == 0) delimiter = ' ';

	for (var i = 0; i < array.length; i++)
	{
		temp = temp + array[i]
		if (i < array.length - 1) temp = temp + delimiter;
	}
	return temp;
}

/**
 * Delimiter로 연결된 문자의 배열 변환
 *
 * @param Expression	문자열("" 인 경우 빈배열 리턴)
 * @param Delimiter	분리character("" 인 경우 단일값 배열 리턴)
 * @return 1차원배열
 */
function split(expression, delimiter)
{
	var temp = expression;
	var a, b = 0;
	var array = new Array();

	if (delimiter.length == 0)
	{
		array[0] = expression;
		return (array);
	}

	if (expression.length == 0)
	{
		array[0] = expression;
		return (array);
	}

	delimiter = delimiter.charAt(0);

	for (var i = 0; i < expression.length; i++)
	{
		a = temp.indexOf(delimiter);
		if (a == -1)
		{
			array[i] = temp;
			break;
		}
		else
		{
			b = (b + a) + 1;
			var temp2 = temp.substring(0, a);
			array[i] = temp2;
			temp = expression.substr(b, expression.length - temp2.length);
		}
	}

	return (array);
}


/**
 * 한글길이 체크
 *
 * @param s string
 * @return length
 */
function getByteLength(s)
{
   if (s == null) return 0;

   var len = 0;

   for (var i = 0; i < s.length; i++)
   {
      var c = escape(s.charAt(i));
      if (c.length == 1) len ++;
      else if (c.indexOf("%u") != -1) len += 2;
      else if (c.indexOf("%") != -1) len += c.length / 3;
   }

   return len;
}

/**
 * 지정된 문자를 지정개수만큼 반복한 문자열 생성
 *
 * @param Number 반복수(1 이하의 값인 경우 false 리턴)
 * @param Character 반복문자(문자열인 경우 첫번째 문자를 사용,
 *                    null 인 경우 false 리턴)
 * @return 반복문자열
 */
function getIteratedChar(Number, Character)
{
	var temp = '';

	if (Number < 1) return (false);
	if (Character.length == 0) 	return (false);

	if (Character.length > 1) Character = Character.charAt(0);

	for (var i = 0; i < Number; i++)
	{
		temp = temp + Character
	}

	return temp;
}

/*------------------------------------------------------------------------------
	숫자 관련 함수
------------------------------------------------------------------------------*/

/**
 * Returns a Boolean value indicating whether an expression can be evaluated as a number.
 *
 * @param source	처리할 Nemeric String	ex) 15,656.00
 * @return boolean
 */
function isNumber(source)
{
	source = source.toLowerCase();

	refString = "0123456789,.-";

	if (source.length < 1) return (false);

	for (var i = 0; i < source.length; i++)
	{
		var ch = source.substr(i, 1)
		var a = refString.indexOf(ch, 0)
		if (a == -1) return (false);
	}
	return true;
}

/**
 * 숫자에서 코마 제거
 *
 * @param source	처리할 Nemeric String
 */
function stripComma(source)
{
	if (source.length == 0) return "";

	return source.replace( /,/g, "" );
}

/**
 * 숫자에 1000 단위 코마
 *
 * @param source	처리할 Nemeric String
 */
function putComma(source)
{
	if (source.length == 0) return "";
	source = stripComma(source);
	if(! isNumber(source)) return "";

	var sign = "";
	if(source.indexOf("-")==0)
	{
		sign = "-";
		source = replace(source, "-", "");
	}

	var tempValue = "";
	var iIndex = source.indexOf(".");
	if(-1 == iIndex) iIndex = source.length;

	for(iIndexComma = iIndex-3; iIndexComma >0;iIndexComma = iIndex-3)
	{
		tempValue = "";
		tempValue += source.substring(0,iIndexComma);
		tempValue += ",";
		tempValue += source.substring(iIndexComma);
		source = tempValue;
		iIndex = iIndexComma;
	}
	return sign + source;
}

/**
 * Numeric String 의 Number Formatting
 *
 * @param expression	대상 숫자
 * @param iNumDecimals	보여줄 소수점이하 자리수
 * @return formatted string
 */
function formatNumber(expression, iNumDecimals)
{
	var dbInVal = expression.replace( /,/g, "" );
	var bNegative = false;
	var iInVal = 0;
	var strInVal
	var strWhole = "", strDec = "";
	var strTemp = "", strOut = "";
	var iLen = 0;

	if (iNumDecimals == null) iNumDecimals = 0;

	if (dbInVal < 0)
	{
		bNegative = true;
		dbInVal *= -1;
	}

	dbInVal = dbInVal * Math.pow(10, iNumDecimals)
	iInVal = parseInt(dbInVal);
	if ((dbInVal - iInVal) >= .5) 	iInVal++;
	strInVal = iInVal + "";
	strWhole = strInVal.substring(0, (strInVal.length - iNumDecimals));
	strDec = strInVal.substring((strInVal.length - iNumDecimals), strInVal.length);


	while (strDec.length < iNumDecimals)
	{
		strDec = "0" + strDec;
	}

	iLen = strWhole.length;
	if (iLen >= 3)
	{
		while (iLen > 0)
		{
			strTemp = strWhole.substring(iLen - 3, iLen);
			if (strTemp.length == 3)
			{
				strOut = "," + strTemp + strOut;
				iLen -= 3;
			}
			else
			{
				strOut = strTemp + strOut;
				iLen = 0;
			}
		}
		if (strOut.substring(0, 1) == ",")
			strWhole = strOut.substring(1, strOut.length);
		else
			strWhole = strOut;
	}

	if (strWhole == "") strWhole = "0";

	if (bNegative)
		return "-" + strWhole + "." + strDec;
	else
		return strWhole + ((iNumDecimals!=0)?".":"") + strDec;

}


/*------------------------------------------------------------------------------
	날짜 관련 함수
------------------------------------------------------------------------------*/

/**
 * 유효하는(존재하는) date 인지 체크
 * ex) -isDate("20050101")
 *     -isDate("20050101", true)
 *     -var date = form.date.value; //'20010231'
 *      if (!isDate(date)) {
 *         alert("올바른 날짜가 아닙니다.");
 *      }
 *
 * @param	date	date string
 * @param	exOption(optional) true/false
 */
function isDate(date, exOption)
{
	date = date.replace( /\/|\-/g, "" );
	if(date.length!=8) return false;

  var year  = date.substring(0,4);
  var month = date.substring(4,6);
  var day   = date.substring(6,8);
  var min_year = 1900;

	if(exOption==null) exOption = false;
	if(exOption) min_year = 0;

  if (parseInt(year,10) >= min_year && isValidMonth(month) && isValidDay(year,month,day) )
  {
      return true;
  }
  return false;
}

/**
 * 유효하는(존재하는) time 인지 체크
 * ex) -isDate("1225")
 *     -isDate("12:25")
 *
 * @param	time	time string
 */
function isTime(time)
{
	time = time.replace( /\/|\:/g, "" );
	if(time.length<4) return false;

  var hour  = time.substring(0,2);
  var minute = time.substring(2,4);

  if (isValidHour(hour) && isValidMin(minute) )
  {
      return true;
  }

  return false;
}

/**
 * 유효한(존재하는) 월(月)인지 체크
 *
 * @param	mm	month string
 */
function isValidMonth(mm)
{
    var m = parseInt(mm,10);
    return (m >= 1 && m <= 12);
}

/**
 * 유효한(존재하는) 일(日)인지 체크
 *
 * @param	yyyy	year string
 * @param	mm	month string
 * @param	dd	date string
 */
function isValidDay(yyyy, mm, dd)
{
    var m = parseInt(mm,10) - 1;
    var d = parseInt(dd,10);

    var end = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
    if ((yyyy % 4 == 0 && yyyy % 100 != 0) || yyyy % 400 == 0) {
        end[1] = 29;
    }

    return (d >= 1 && d <= end[m]);
}

/**
 * 유효한(존재하는) 시(時)인지 체크
 *
 * @param	hh	hour string
 */
function isValidHour(hh)
{
	var h = parseInt(hh,10);
	return (h >= 0 && h <= 24);
}

/**
 * 유효한(존재하는) 분(分)인지 체크
 *
 * @param	mi	minute string
 */
function isValidMin(mi)
{
    var m = parseInt(mi,10);
    return (m >= 0 && m <= 60);
}

/**
 * Time 형식인지 체크(느슨한 체크)
 *
 * @param	time	hour string
 */
function isValidTimeFormat(time)
{
    return (!isNaN(time) && time.length == 12);
}


/**
 * 유효하는(존재하는) Time 인지 체크
 * ex) var time = form.time.value; //'200102310000'
 *     if (!isValidTime(time)) {
 *         alert("올바른 날짜가 아닙니다.");
 *     }
 */
function isValidTime(time)
{
    var year  = time.substring(0,4);
    var month = time.substring(4,6);
    var day   = time.substring(6,8);
    var hour  = time.substring(8,10);
    var min   = time.substring(10,12);

    if (parseInt(year,10) >= 1900  && isValidMonth(month) &&
        isValidDay(year,month,day) && isValidHour(hour)   &&
        isValidMin(min)) {
        return true;
    }
    return false;
}

/**
 * Time 스트링을 자바스크립트 Date 객체로 변환
 * parameter time: Time 형식의 String
 */
function toTimeObject(time) { //parseTime(time)
    var year  = time.substr(0,4);
    var month = time.substr(4,2) - 1; // 1월=0,12월=11
    var day   = time.substr(6,2);
    var hour  = time.substr(8,2);
    var min   = time.substr(10,2);

    return new Date(year,month,day,hour,min);
}

/**
 * 자바스크립트 Date 객체를 Time 스트링으로 변환
 * parameter date: JavaScript Date Object
 */
function toTimeString(date){
    var year  = date.getFullYear();
    var month = date.getMonth() + 1; // 1월=0,12월=11이므로 1 더함
    var day   = date.getDate();
    var hour  = date.getHours();
    var min   = date.getMinutes();

    if (("" + month).length == 1) { month = "0" + month; }
    if (("" + day).length   == 1) { day   = "0" + day;   }
    if (("" + hour).length  == 1) { hour  = "0" + hour;  }
    if (("" + min).length   == 1) { min   = "0" + min;   }

    return ("" + year + month + day + hour + min)
}


/**
 * Time 스트링을 자바스크립트 Date 객체로 변환
 *
 * @param	date	Time 형식의 String
 */
function toDateObject(date)
{
    var year  = date.substr(0,4);
    var month = date.substr(4,2) - 1; // 1월=0,12월=11
    var day   = date.substr(6,2);

    return new Date(year,month,day);
}

/**
 * Time이 현재시각 이후(미래)인지 체크
 */
function isFutureTime(time) {
    return (toTimeObject(time) > new Date());
}

/**
 * Time이 현재시각 이전(과거)인지 체크
 */
function isPastTime(time) {
    return (toTimeObject(time) < new Date());
}

/**
 * 주어진 Time 과 y년 m월 d일 h시 차이나는 Time을 리턴
 * ex) var time = form.time.value; //'20000101000'
 *     alert(shiftTime(time,0,0,-100,0));
 *     => 2000/01/01 00:00 으로부터 100일 전 Time
 */
function shiftTime(time,y,m,d,h) { //moveTime(time,y,m,d,h)
    var date = toTimeObject(time);

    date.setFullYear(date.getFullYear() + y); //y년을 더함
    date.setMonth(date.getMonth() + m);       //m월을 더함
    date.setDate(date.getDate() + d);         //d일을 더함
    date.setHours(date.getHours() + h);       //h시를 더함

    return toTimeString(date);
}


/**
 * 자바스크립트 Date 객체를 Time 스트링으로 변환
 *
 * @param	date	JavaScript Date Object
 */
function toDateString(date)
{
    var year  = date.getFullYear();
    var month = date.getMonth() + 1; // 1월=0,12월=11이므로 1 더함
    var day   = date.getDate();

    if (("" + month).length == 1) { month = "0" + month; }
    if (("" + day).length   == 1) { day   = "0" + day;   }

    return ("" + year + month + day);
}

/**
 * 날짜 더하기
 * ex) var date = form.date.value; //'20000101'
 *     alert(addDate(time,0,-2,0));
 *     => 2000/01/01 으로부터 2달전 일자
 *
 * @param	date
 * @param	y
 * @param	m
 * @param	d
 */
function addDate(date,y,m,d)
{
    var source = toDateObject(date);

    source.setFullYear(source.getFullYear() + y); //y년을 더함
    source.setMonth(source.getMonth() + m);       //m월을 더함
    source.setDate(source.getDate() + d);         //d일을 더함

    return toDateString(source);
}

/**
 * 두 날짜가 몇 개월 차이나는지 구함
 * date1이 date2보다 크면(미래면) minus(-)
 *
 * @param	date1
 * @param	date2
 */
function getMonthInterval(date1,date2)
{
    var source1 = toDateObject(date1);
    var source2 = toDateObject(date2);

    var years  = source2.getFullYear() - source1.getFullYear();
    var months = source2.getMonth() - source1.getMonth();
    var days   = source2.getDate() - source1.getDate();

    return (years * 12 + months + (days >= 0 ? 0 : -1) );
}

/**
 * 두 날짜가 며칠 차이나는지 구함
 * date1이 date2보다 크면(미래면) minus(-)
 *
 * @param	date1
 * @param	date2
 */
function getDayInterval(date1,date2)
{
    var source1 = toDateObject(date1);
    var source2 = toDateObject(date2);
    var day   	= 1000 * 3600 * 24; //24시간

    return parseInt((source2 - source1) / day, 10);
}

/**
 * 두 Time이 몇 시간 차이나는지 구함
 * time1이 time2보다 크면(미래면) minus(-)
 */
function getHourInterval(time1,time2) {
    var date1 = toTimeObject(time1);
    var date2 = toTimeObject(time2);
    var hour  = 1000 * 3600; //1시간

    return parseInt((date2 - date1) / hour, 10);
}

/**
 * 현재 시각을 Time 형식으로 리턴
 */
function getCurrentTime() {
    return toTimeString(new Date());
}

/**
 * 현재 시각과 y년 m월 d일 h시 차이나는 Time을 리턴
 */
function getRelativeTime(y,m,d,h) {
    return shiftTime(getCurrentTime(),y,m,d,h);
}

/**
 * 현재 年을 YYYY형식으로 리턴
 */
function getYear()
{
    return getCurrentTime().substr(0,4);
}

/**
 * 현재 月을 MM형식으로 리턴
 */
function getMonth()
{
    return getCurrentTime().substr(4,2);
}

/**
 * 현재 日을 DD형식으로 리턴
 */
function getDay()
{
    return getCurrentTime().substr(6,2);
}

/**
 * 현재 時를 HH형식으로 리턴
 */
function getHour() {
    return getCurrentTime().substr(8,2);
}

/**
 * 오늘이 무슨 요일이야?
 * ex) alert('오늘은 ' + getDayOfWeek() + '요일입니다.');
 */
function getDayOfWeek()
{
    var now = new Date();

    var day = now.getDay(); //일요일=0,월요일=1,...,토요일=6
    var week = new Array('일','월','화','수','목','금','토');

    return week[day];
}

/**
 * 해당월의 마지막날을 구한다.
 *
 * @param year
 * @param month
 * @return day string
 */
function getDaysOfMonth(year,month)
{
	if(month < 1 || month >12)
		return -1;

	if(month == 2){
		if((year% 4 == 0 && year % 100 !=0)|| year%400==0)
			return 29;
		else
			return 28;
	}else if(month==4||month==6||month==9||month==11){
		return 30;
	}else{
		return 31;
	}
}

/**
 * 날짜 비교
 *
 * @param src_date
 * @param comp_date
 * @return int  1 : src_date > comp_date
 *              0 : src_date == comp_date
 *             -1 : src_date < comp_date
 *             -2 : error(date자료가 아님)
 */
function compareDate(src_date,comp_date)
{
	if(! (isDate(src_date.replace( /\/|\-/g, "")) && isDate(comp_date.replace( /\/|\-/g, "") ) ) )
		return -2;

	if(src_date>comp_date)
		return 1;
	else if (src_date==comp_date)
		return 0;
	else
		return -1;
}

/**
 * 날짜 형식 지정
 *
 * @param date	date string
 */
function formatDateStr(date)
{
	date = date.toString().replace( /\/|\-/g, "" );

	if( date=="" ) return "";
	if(! isDate(date) ) return "";

	date=date.substring(0,4)+DATE_SEPERATOR+date.substring(4,6)+DATE_SEPERATOR+date.substring(6,8);
	return date;
}

/**
 * 시간 형식 지정
 *
 * @param date	time string('HHMM' or 'HHMMSS')
 */
function formatTimeStr(timeStr)
{
	var formatedStr = "";
	if (timeStr == null) return "";

	timeStr = replace(timeStr.toString(),":","");

	if(timeStr=="") return "";
	if(isNaN(timeStr)||(timeStr.length < 4)) return "";
	if(!isValidHour(timeStr.substring(0,2)) || !isValidMin(timeStr.substring(2,4))) return "";

	if (timeStr.length == 6)
	if(!isValidMin(timeStr.substring(4,6))) return "";

	formatedStr=timeStr.substring(0,2)+":"+timeStr.substring(2,4);

	if (timeStr.length == 6)
		formatedStr= formatedStr + ":"+timeStr.substring(4,6);

	return formatedStr;
}

/**
 * 두 날짜 비교
 *
 * @param string sourceDate	원래 Date String
 * @param string compDate	비교할 Date String
 * @return int	-2(값없음), -3(좌측값 Date아님), -4(우측값 Date아님 )
 *              0(동일), 1(좌측값큼), -1(우측값큼)
 */
function compareDates(sourceDate, compDate)
{
	if(sourceDate==null || compDate==null) return -2;
	if(sourceDate.length==0 || compDate.length==0) return -2;

	sourceDate = sourceDate.replace( /\/|\-|\./g, "" );
	compDate = compDate.replace( /\/|\-|\./g, "" );

	if( ! isDate(sourceDate)) return -3;
	if( ! isDate(compDate)) return -4;

	var year, month, day;

	year = sourceDate.substr(0,4);
	month = sourceDate.substr(4,2);
	day = sourceDate.substr(6,2);
	var objSourceDate = new Date( year, month-1, day );

	year = compDate.substr(0,4);
	month = compDate.substr(4,2);
	day = compDate.substr(6,2);
	var objCompDate = new Date( year, month-1, day );

	if (objSourceDate.getTime() > objCompDate.getTime()) return 1;
	else if (objSourceDate.getTime() == objCompDate.getTime()) return 0;
	else return -1
}

/*------------------------------------------------------------------------------
	쿠키 관련 함수
------------------------------------------------------------------------------*/

/**
 * 쿠키 쓰기
 *
 * @param name		쿠키명
 * @param value		쿠키값
 * @param expiredays	만료일
 */
function setCookie( name, value, expiredays )
{
	var todayDate = new Date();
	todayDate.setDate( todayDate.getDate() + expiredays );
	document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";"
}

/**
 * 쿠키 읽기
 *
 * @param name		쿠키명
 * @return string	쿠키값
 */
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 MM_swapImgRestore()  //v3.0
{
	var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d)	//v3.0
{
	var p,i,x;
	if(!d) d=document;
	if((p=n.indexOf("?"))>0&&parent.frames.length) {d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	if(!(x=d[n])&&d.all) x=d.all[n];
	for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	return x;
}

function MM_swapImage()	//v3.0
{
	var i,j=0,x;
	a=MM_swapImage.arguments;
	document.MM_sr=new Array;
	for(i=0;i<(a.length-2);i+=3)
		if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_preloadImages()	//v3.0
{
	var d=document;
	if(d.images){
		if(!d.MM_p) d.MM_p=new Array();
		var i,j=d.MM_p.length,a=MM_preloadImages.arguments;
		for(i=0; i<a.length; i++)
			if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}
	}
}


function openTech()
{
	window.open("../popup/teac.html" , 'tech' , 'left = 250 , top = 300 , width = 600 , height =845');
}

/*------------------------------------------------------------------------------
	하단 콤보박스 지우기 보이기 함수들
------------------------------------------------------------------------------*/
function hidecbo()
{
	var cbo1 = document.all.select3 ;
	obj = cbo1.style;
	obj.display = 'none';

}
function showcbo()
{
var cbo1 = document.all.select3 ;
	obj = cbo1.style;
	obj.display = 'block';
}

/*------------------------------------------------------------------------------
	기타 함수들
------------------------------------------------------------------------------*/

/**
 * 주민등록번호 체크
 *
 * @param jumin_no 주민등록번호 문자열
 * @return boolean
 */
function isValidPersonID(jumin_no)
{
	jumin_no = jumin_no.replace( /\-/g, "" );
	if(jumin_no.length < 13) return false;

	var a = new Array(6)
	var b = new Array(7)
	var tot=0
	var c=0

	var sJumin0 = jumin_no.substring(0,6);
	var sJumin1 = jumin_no.substring(6,13);

	var genderType = sJumin1.substring(0,1);
	if(genderType!="1"&&genderType!="2"&&genderType!="3"&&genderType!="4" ) return false;

	for(var i=1;i<7;i++)
	{
		a[i]=sJumin0.substring(i-1,i);
		b[i]=sJumin1.substring(i-1,i);

		if(i<3)
			c=Number(b[i])*(i+7);
		else
			c=Number(b[i])*((i+9)%10);

		tot = tot + Number(a[i])*(i+1) + c;
	}

	b[7]=sJumin1.substring(6,7);

	if(Number(b[7]) != ((11-(tot%11))%10))
		return false;
	else
		return true;;
}


/**
 * 사업자번호 체크
 *
 * @param sCorpNo 사업자등록번호 문자열(10자리)
 * @return boolean
 */
function isValidCorpNo(sCorpNo)
{
	var chkRule = "137137135";
	var step1, step2, step3, step4, step5, step6, step7;

	step1 = 0;

	for (var i=0; i<7; i++)
	{
		step1 = step1 + (sCorpNo.substring(i, i+1) * chkRule.substring(i, i+1));
	}

	step2 = step1 % 10;
	step3 = (sCorpNo.substring(7, 8) * chkRule.substring(7, 8)) % 10;
	step4 = sCorpNo.substring(8, 9) * chkRule.substring(8, 9);
	step5 = Math.round(step4 / 10 - 0.5);
	step6 = step4 - (step5 * 10);
	step7 = (10 - ((step2 + step3 + step5 + step6) % 10)) % 10;

	if (sCorpNo.substring(9, 10) != step7)
		return false;
	else
		return true;
}

/**
 * 우편번호 형식 지정
 *
 * @param zip	우편번호 문자열(6자리)
 * @return 우편번호(123-456)
 */
function formatZip(zip)
{
	var zipData="";

	zipData=zip;

	zipData = replace(zipData.toString(),"-","");
	if(zipData==""){
		return "";
	}
	if(isNaN(zipData)|| zipData.length!=6) {
		zipData = "";
		return zipData;
	}
	zipData=zipData.substring(0,3)+"-"+zipData.substring(3,6);
	return zipData;

}

/* 공백 체크 함수 */
function space(str)
{
	var index,len
	while(true)
	{
		index = str.indexOf(" ");
		if (index == -1)
		break;
		len = str.length;
		str = str.substring(0,index) + str.substring((index + 1),len);
	}
	return str.length;
}

/* 새창 열기 */
function openWin(pageUrl, pageName, pageOption)
{
	window.open(pageUrl, pageName, pageOption);
}

/* 이메일 체크 */
function MailCheck(ObjMail)
{
	if (ObjMail.search(/(\S+)@(\S+)\.(\S+)/) == -1 )
	{
	    return false;
	}
	return true;
}


/* 숫자 + 영문자  */
function NumericAlphabetChk(obj)
{
	var l = obj.value.length;
	var deny_pattern = /[^(a-zA-Z0-9)]/;

	if(deny_pattern.test(obj.value))
	{
		return false;
	}

	var engValue;
	var intValue;
	var j;
	for(i=0;i<=l;i++){
		if(i==l){
			j = 1
		}
		else{
			j = i+1
		}

		if(isNaN(obj.value.substring(i,j)) == true){
			engValue = true ;
		}
		if(isNaN(obj.value.substring(i,j)) == false){
			intValue = true ;
		}

	}

	if(engValue && intValue){
		return true
	}
	else{
		return false;
	}
}

/* 로그인이 필요할시 */
function noMem(objForm)
{
	alert("회원전용입니다.")
	objForm.action = "/pages/service/membership/login.asp"
	objForm.submit();
}

/* 다음 필드로 넘김 */
function nextFld(obj, next_obj, len)
{
	if(obj.value.length == len)
	{
		next_obj.focus();
	}
}

/* Disabled*/

function clkDisable(gbn, obj)
{
	if(gbn == "enable")
		obj.disabled = false;
	else
		obj.disabled = true;
}

/*******************************************************************

	flashWrite - 플래시 임베디드 문제 해결 스크립트

	url	 		:	파일 이름
	w			:	넓이
	h			:	높이
	id			:	아이디
	bg			:	배경색
	vars		:	변수
	win		:	윈도우모드

*******************************************************************/
function flashWrite(url,w,h,id,bg,vars,win){
	var flashStr=
	"<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0' width='"+w+"' height='"+h+"' id='"+id+"' align='middle'>"+
	"<param name='allowScriptAccess' value='always' />"+
	"<param name='movie' value='"+url+"' />"+
	"<param name='FlashVars' value='"+vars+"' />"+
	"<param name='wmode' value='"+win+"' />"+
	"<param name='menu' value='false' />"+
	"<param name='quality' value='high' />"+
	"<param name='bgcolor' value='"+bg+"' />"+
	"<embed src='"+url+"' FlashVars='"+vars+"' wmode='"+win+"' menu='false' quality='high' bgcolor='"+bg+"' width='"+w+"' height='"+h+"' name='"+id+"' align='middle' allowScriptAccess='always' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' />"+
	"</object>";

	document.write(flashStr);
}

/**
 * List 페이지의 페이징 스크립트
 * 팝업에서 메인 윈도우로 포커스를 옮길 수 없도록 할 경우..
 *
 * @param		form			submit할 form name
 * @param		currentpage		현재 페이지(메타 엔진에서 셋팅
 * @param		currentblock	현재 블록
 *
 * ex) goPaging('frmSearch','1','1');
 */
function goPaging( form, currentpage )
{
	var oForm = eval("document."+form);
	var target = "_self";

	//var oCurrentPage 	  = document.createElement("<INPUT type=hidden name=curpage value="+currentpage+">" );
	//var oCurrentBlock 	= document.createElement("<INPUT type=hidden name=curblock value="+currentblock+">" );

	//oForm.insertAdjacentElement("afterBegin", oCurrentPage);
	//oForm.insertAdjacentElement("afterBegin", oCurrentBlock);

	//if (arguments[3] != null && arguments[3] != "") target = arguments[3];

	oForm.curpage.value = currentpage;
	oForm.target = target;
	oForm.submit();
}


/**
 *  브라우저 알아내기
 *
 * @return 브라우저명
 */
function getBrowser()
{
	var browser;

	if(new RegExp(/Firefox/).test(navigator.userAgent)){
		browser = "FF"; // (파이어폭스)
	}
	else if(new RegExp(/Netscape/).test(navigator.userAgent)){
		browser = "NS"; // (넷스케이프)
	}
	else if(new RegExp(/MSIE/).test(navigator.userAgent)){
		browser = "IE"; // (익스플로러)
	}

	return browser;
}


/**
 *  이벤트 Attatch
 * ex) addEvent(document.body,"onclick", hiddenCalendar);
 */
function addEvent(obj,eve,fnc)
{
	if(getBrowser()=="IE")
	{
		obj.attachEvent(eve , fnc);
	}
	else
	{
		eve = eve.replace("on","");
		obj.addEventListener(eve , fnc, false) ;
	}
}

/**
 *  이벤트 Remove
 * ex) removeEvent(document.body,"onclick", hiddenCalendar);
 */
function removeEvent(obj,eve,fnc)
{
	if(getBrowser()=="IE")
	{
		obj.detachEvent(eve , fnc);
	}
	else
	{
		eve=eve.replace("on","");
		obj.removeEventListener(eve , fnc, false);
	}
}

/* 동화뮤지업 링크 */
 function cybertour() {
 var theURL = "http://www.dongwha.co.kr/cybertour/sub3/sub3-4.htm";
 window.open(theURL,'cyber_tour','width=862, height=623,left=100,top=50, toolbar=no, location=no, menubar=no, status=no, resizable=no');
 }
  function cybertour_exhibit(dir_url) {
 var theURL = "http://www.dongwha.co.kr/cybertour/sub3/sub3-5.asp?dir_url="+dir_url;
 window.open(theURL,'cyber_tour','width=862, height=623,left=100,top=50, toolbar=no, location=no, menubar=no, status=no, resizable=no');
 }
  function cybertour_museum(dir_url) {
 var theURL = "http://www.dongwha.co.kr/cybertour/sub3/sub3-4.asp?dir_url="+dir_url;
 window.open(theURL,'cyber_tour','width=862, height=623,left=100,top=50, toolbar=no, location=no, menubar=no, status=no, resizable=no');
 }

/* 웹진 링크 */
function goWebzine()
{
	window.open("http://newsletter.dongwha.co.kr/vr/vrdata/open_ibook.asp?filekey=dongwha200917172349.html", "", "");
}

/* 제품선택요령 업다운 메뉴 스크립트 */
function clickshow(num)   
{   
 
		for (i=1;i<6;i++)   
		{   
			var menu=eval("document.all.block"+i+".style");                                                        
			if (num==i)   
				{   
					if (menu.display=="block")   
					{ 
						menu.display="none";     
					}   
					else {   
						menu.display="block";      
					}   
			}   
			else
				{   
					
						menu.display="none";     
					 
			}   
		}   
}   

