try{
	document.execCommand('BackgroundImageCache',false,true);
}
catch(e){}

//check browser
var isie=(/msie/i).test(navigator.userAgent); //ie
var isie6=(/msie 6/i).test(navigator.userAgent); //ie 6
var isie7=(/msie 7/i).test(navigator.userAgent); //ie 7
var isie8=(/msie 8/i).test(navigator.userAgent); //ie 8
var isie9=(/msie 9/i).test(navigator.userAgent); //ie 9
var isfirefox=(/firefox/i).test(navigator.userAgent); //firefox
var isapple=(/applewebkit/i).test(navigator.userAgent); //safari,chrome
var isopera=(/opera/i).test(navigator.userAgent); //opera
if(isie7 || isie8) isie6=false;
if(isie9) isie = false;

//util
var devutil={

	//popup
	pop : function(url,w,h,s){
		w=(s)? w+17 : w;
		s=(s)? 'yes' : 'no';
		var sw=screen.availWidth;
		var sh=screen.availHeight;
		var left=(sw/2)-(w/2);
		var top=(sh/2)-(h/2);
		var winname=url.substr(url.lastIndexOf('/')+1).split(/\.html|\.php/)[0];
		window.open(url,winname,'left='+left+',top='+top+',width='+w+',height='+h+',scrollbars='+s+',resizeable=no,menubar=no,status=yes,location=no,toolbar=no');
	},
	// create element
	create : function(opts){
		var rv=(isie)? '' : document.createElement(opts.tagname);
		for(var i in opts){
			if(i!='tagname'){
				if(isie) rv+=' '+((i=='classname')? 'class' : i)+'="'+opts[i]+'"';
				else rv.setAttribute((i=='classname')? 'class' : i,opts[i]);
			}
		}
		return (isie)? document.createElement('<'+opts.tagname+rv+'>') : rv;
	},

	// add event
	addevent : function(tg,name,func){
		if(tg.attachEvent) tg.attachEvent('on'+name,func);
		else tg.addEventListener(name,func,false);
	},

	add : function(tgt, typ, call) {
		if(tgt.addEventListener) {
			tgt.addEventListener(typ, call, false);
		} else if(tgt.attachEvent) {
			tgt["e"+typ+call] = call;
			tgt[typ+call] = function() { tgt["e"+typ+call]( window.event ); }
			tgt.attachEvent("on"+typ, tgt[typ+call]);
		} else {
			tgt["on"+typ] = tgt["e"+typ+call];
		}
	},
	//get scroll
	getscroll : function(){
		if(isapple) return [document.body.scrollLeft,document.body.scrollTop,document.body.scrollWidth,document.body.scrollHeight];
		else return [document.documentElement.scrollLeft,document.documentElement.scrollTop,document.documentElement.scrollWidth,document.documentElement.scrollHeight];
	},

	//set scroll
	setscroll : function(v){
		if(isapple) document.body.scrollTop=v;
		else document.documentElement.scrollTop=v;
	},

	setopacity : function(tg,v){
		if(isie) tg.style.filter='alpha(opacity='+(v*100)+')';
		else tg.style.opacity=v;
	}
	
}


$(document).ready(function(){


});

function setCookie (name, value, expires) {
  document.cookie = name + "=" + escape (value) +
    "; path=/; expires=" + expires.toGMTString();
}

function getCookie(Name) {
  var search = Name + "="
  if (document.cookie.length > 0) { // 쿠키가 설정되어 있다면
    offset = document.cookie.indexOf(search)
    if (offset != -1) { // 쿠키가 존재하면
      offset += search.length
      // set index of beginning of value
      end = document.cookie.indexOf(";", offset)
      // 쿠키 값의 마지막 위치 인덱스 번호 설정
      if (end == -1)
        end = document.cookie.length
      return unescape(document.cookie.substring(offset, end))
    }
  }
  return "";
}


/**
* 쿠키 삭제
* @param cookieName 삭제할 쿠키명
*/
function deleteCookie( cookieName )
{
	var expireDate = new Date();
	//어제 날짜를 쿠키 소멸 날짜로 설정한다.
	expireDate.setDate( expireDate.getDate() - 1 );
	document.cookie = cookieName + "= " + "; expires=" + expireDate.toGMTString() + "; path=/";
}



function cursorMove(arg,nextname,len) {
	if (arg.value.length==len) {
		nextname.focus() ;
		return;
	}
}



function trim(str){
   str = str.replace(/^\s*/,'').replace(/\s*$/,'');
   return str;
}



function fnRmspace(obj)
{
	obj.value=obj.value.replace(/ /gi, "");
}


function checkEng(str) { 
  for(var i=0;i<str.length;i++){ 
    achar = str.charCodeAt(i);  
    if( achar > 128 ){  
      return false; 
    }  
  } 
  return true;  
}

function checklength(strval, stnum, ednum)
{
	if((strval.length < parseInt(stnum)) || (strval.length > parseInt(ednum)))
	{
		return false;
	}
	else 
	{
		return true;
	}
}

function checkEngNum(field)
{
	var valid1 = "abcdefghijklmnopqrstuvwxyzABCDEFZHIJKLMNOPQRSTUVWXYZ";
	var valid2 = "0123456789";
	var int1 = 0;
	var int2 = 0;
	var temp;
	
	for (var i=0; i<field.length; i++)
	{
		temp = "" + field.substring(i, i+1);
		if (valid1.indexOf(temp) != "-1")
			int1 = int1 + 1;
		if (valid2.indexOf(temp) != "-1")
			int2 = int2 + 1;
	}

	if (valid2.indexOf(field.substring(0,1)) != "-1")
		int1 = 0;
	

	/*
	if ((int1 == 0) || (int2 == 0))
		return false;
	else
		return true;

	if ((int1 == 0) && (int2 == 0))
		return false;
	else
		return true;
	*/
	if (int1 == 0)
		return false;
	else
		return true;


}

function chkemail(strVal)
{
	//alert(strVal);
	var mailexp = /[a-z0-9]{2,}(\S+)@[a-z0-9-]{2,}\.[a-z0-9]{2,}/i; 
	if(!mailexp.test(strVal))
	{
		return false;
	}
	return true;
}


function chkPassword(strVal){
	var pwd = strVal;
	
	if(!/^[a-zA-Z0-9]{8,20}$/.test(pwd)){ 
	    alert('비밀번호는 숫자와 영문자 조합으로 8~20자리를 사용해야 합니다.'); 
	    return false;
	}
	 
	var chk_num = pwd.search(/[0-9]/g); 
	var chk_eng = pwd.search(/[a-z]/ig); 
	
	if(chk_num < 0 || chk_eng < 0){ 
		alert('비밀번호는 숫자와 영문자를 혼용하여야 합니다.'); 
		return false;
	}
	   
	if(/(\w)\1\1\1/.test(pwd)){
	    alert('비밀번호에 같은 문자를 4번 이상 사용하실 수 없습니다.'); 
	    return false;
	}
	
	return true;
}

function juminCheck(rrn) // 유효성검사. 사용법fnRRNCheck("8201011234567");
{
    if (fnrrnCheck(rrn) || fnfgnCheck(rrn)) {
        return true;
    }
    return false;
}
function fnrrnCheck(rrn) // 주민등록번호유효성검사.
{
    var sum = 0;
    if (rrn.length != 13) {
        return false;
    }
    else if (rrn.substr(6, 1) != 1 && rrn.substr(6, 1) != 2 && rrn.substr(6, 1) != 3 && rrn.substr(6, 1) != 4) {
        return false;
    }
    for (var i = 0; i < 12; i++) {
        sum += Number(rrn.substr(i, 1)) * ((i % 8) + 2);
    }
    if (((11 - (sum % 11)) % 10) == Number(rrn.substr(12, 1))) {
        return true;
    }
    return false;
}
function fnfgnCheck(rrn) // 외국인등록번호유효성검사.
{
    var sum = 0;
    if (rrn.length != 13) {
        return false;
    }
    else if (rrn.substr(6, 1) != 5 && rrn.substr(6, 1) != 6 && rrn.substr(6, 1) != 7 && rrn.substr(6, 1) != 8) {
        return false;
    }
    if (Number(rrn.substr(7, 2)) % 2 != 0) {
        return false;
    }
    for (var i = 0; i < 12; i++) {
        sum += Number(rrn.substr(i, 1)) * ((i % 8) + 2);
    }
    if ((((11 - (sum % 11)) % 10 + 2) % 10) == Number(rrn.substr(12, 1))) {
        return true;
    }
    return false;
}


function input_cal_byte(input_name, max_byte){
    var input_name_str, byte_count=0, input_name_length=0, one_str, ext_byte, half_byte;
    input_name_str = new String(input_name.value);
    input_name_length = input_name_str.length;
    half_byte = parseInt(max_byte)/2;

    for (i=0;i<input_name_length;i++){
        one_str=input_name_str.charAt(i);
        if (escape(one_str).length > 4){
            byte_count+=2;
        }
        else if (one_str != '\r'){
            byte_count++;
        }
    }

    if (byte_count > max_byte){
        ext_byte = byte_count - max_byte;
        //alert('\n내용을 '+max_byte+'Byte 이상 입력하실수 없습니다.\n\n입력하신 내용 중 초과 '+ext_byte+'Byte는 자동 삭제 됩니다.\n');
        alert('\n한글 '+half_byte+'자 이상 입력하실수 없습니다.\n\n입력하신 내용 중 초과 내용은 자동 삭제 됩니다.\n');
        input_cut_text(input_name,max_byte);
    }
}

//입력창 byte대로 자르기

function input_cut_text(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 (escape(one_str).length > 4){
                byte_count+=2;
            }
            else if (one_str != '\r'){
                byte_count++;
            }
        }               
        else{
            input_name_str = input_name_str.substring(0,i);
            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;
    return input_name_str;
}


function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} 
		while 
			(obj = obj.offsetParent);
		}
	return [curleft,curtop];
}


// get offset position
function getoffsetpos(tg){
	var pos=[0,0];
	function addpos(left,top){
		pos[0]+=left;
		pos[1]+=top;
	}
	for(var i=0,cobj=tg; !cobj.tagName.toLowerCase().match(/body|html/); cobj=cobj.offsetParent,i++){
		addpos(cobj.offsetLeft,cobj.offsetTop);
		if(!isopera && i>0){
			if(isie) addpos(cobj.clientLeft,cobj.clientTop);
			else if(cobj.tagName.toLowerCase().match(/table|thead|tbody|tfoot|th|td/)){
				if(isapple) addpos(cobj.clientLeft,cobj.clientTop);
				else addpos(cobj.offsetWidth-cobj.clientWidth,cobj.offsetHeight-cobj.clientHeight);
			}
		}
	}
	return pos;
}



function HanGul(str) {    
	var pattern = /[^가-힣]/g;     
	if(pattern.test(str)==true)
	{
		return true;	
	}
	else
	{
		return false;		
	}
}

function enforceHanGul() {    
   if(window.event.type == "propertychange" ){    
      if ( window.event.propertyName == "value" ) {    
          //var pattern = /[^(ㄱ-힣)]|[-/\s]/g;     
            var pattern = /[^가-힣]/g;     
            if(pattern.test(window.event.srcElement.value)){    
                var v = window.event.srcElement.value.replace(pattern, "");    
                window.event.srcElement.value = window.event.srcElement.value.replace(pattern, "");    
            }    
      }    
   }    
}

function fngetZero(val,len)
{
	for(var i=val.toString().length; i<len; i++)
	{
		val = "0" + val;	
	}
	return val;
}

function fnphone(str)
{
    var pattern = /^(0[2-7][0-5]?|01[01346-9])-?([1-9]{1}[0-9]{2,3})-?([0-9]{4})$/; 
	if(pattern.test(str)==true)
	{
		var pnum = str.split('-')[1] + "-" + str.split('-')[2];
		if(fnValidphone(pnum))
			return true;
		else
			return false;
	}
	else
	{
		return false;		
	}
}


function fnDate(str) {
    var pattern= /[0-9]{4}[\.][0-9]{2}$/;
    if (pattern.test(str)) {
        return true;
    }
    else {
        return false;
    }
}

function RepAll(targetstr,oldstr, newstr)
{
	return targetstr.split(oldstr).join(newstr);	
}

function onlyNumber(msg,e)
	{
		if(isie){
			if (!ibNumberKeyCodeCheck(event.keyCode))
			{
				if (event.keyCode != 8 && event.keyCode != 13 && !(event.keyCode >= 35 && event.keyCode <= 40) && event.keyCode != 46)
				{
					//alert(msg);
					event.returnValue = false;
				}
			}
			else if (event.keyCode == 189)
			{
				//alert(msg);
				event.returnValue = false;
			}
		}else{
			if (!ibNumberKeyCodeCheck(e.which))
			{
				if (e.which!= 8 && e.which != 13 && !(e.which >= 35 && e.which <= 40) && e.which != 46)
					{
						//alert(msg);
						 return false;
					}
			}
			else if (e.which == 189)
			{
				//alert(msg);
				 return false;
			}
		}
	}
	
function ibNumberKeyCodeCheck(keyCode)
{

		return ((keyCode >= 48 && keyCode <= 57) || (keyCode == 46) || (keyCode >= 96 && keyCode <= 105) || (keyCode == 8) || (keyCode == 9) || (keyCode == 13) || (keyCode >= 35 && keyCode <= 40) || (keyCode == 189) || (keyCode == 188) || (keyCode == 109))

}


function getEl(xdoc,obj){
	try{
			var tmp = xdoc.getElementsByTagName(obj);
			if(tmp[0]!=null)
			{
				if(tmp[0].childNodes[0]!=null)
				{
				  return tmp[0].childNodes[0].nodeValue;
				}
				else
				{
					return "";
				}
			}
			else
			{
			 return "";
			}
		}
		catch(e)
		{
			return "";
		}
}

function fnNumberFormat(num){
	var rtn ;
	var _regExp = new RegExp("(-?[0-9]+)([0-9]{3})");
	if(_regExp.test(num)){
		rtn = num.replace(_regExp,"$1,$2");
	}
	return rtn;
}


function image_auto_resize(this_s,width,height){ 
 var ta_image = new Image(); 
 ta_image.src = this_s.src; 
  if(!width){this_s.removeAttribute('width'); 
  this_s.style.width='auto';} 
  else if(width < ta_image.width){ 
  this_s.width = width; 
  }else{ 
  this_s.width = ta_image.width; 
  } 
  if(!height){this_s.removeAttribute('height'); 
  this_s.style.height='auto';} 
  else if(height < ta_image.height){ 
  this_s.height = height; 
  }else{ 
  this_s.height = ta_image.height; 
  } 
} 
function showPicture(src) {
  var imgObj = new Image();
  imgObj.src = src;
  var wopt = "scrollbars=no,status=no,resizable=no";
  wopt += ",width=" + imgObj.width;
  wopt += ",height=" + imgObj.height;
  var wbody = "<head><title>사진 보기</title>";
  wbody += "<script language='javascript'>";
  wbody += "function finalResize(){";
  wbody += "  var oBody=document.body;";
  wbody += "  var oImg=document.images[0];";
  wbody += "  var xdiff=oImg.width-oBody.clientWidth;";
  wbody += "  var ydiff=oImg.height-oBody.clientHeight;";
  wbody += "  window.resizeBy(xdiff,ydiff);";
  wbody += "}";
  wbody += "</"+"script>";
  wbody += "</head>";
  wbody += "<body onLoad='finalResize()' style='margin:0'>";
  wbody += "<a href='javascript:window.close()'><img src='" + src + "' border=0></a>";
  wbody += "</body>";
  winResult = window.open("about:blank","",wopt);
  winResult.document.open("text/html", "replace");
  winResult.document.write(wbody);
  winResult.document.close();
  return;
}

function fnSoon()
{
	alert("준비중입니다.");
	return false;	
}


function sendSNS(media,message,locUrl) {
	

	var sendUrl;

	if(locUrl==undefined)
	{
		locUrl = window.location.href;
	}
	

	switch(media) {

		case "twitter":

		sendUrl = "http://twitter.com/home?status="+encodeURIComponent(message)+"+"+escape(locUrl);

		devutil.pop(sendUrl,1024,768,'yes');

		break;

		case "me2day":

		sendUrl = "http://me2day.net/posts/new?new_post[body]="+encodeURIComponent(message)+":"+escape(locUrl)+"&amp;new_post[tags]=%EB%8F%99%EC%95%84%EB%8B%B7%EC%BB%B4+%EB%89%B4%EC%8A%A4%EC%8A%A4%ED%81%AC%EB%9E%A9";

		devutil.pop(sendUrl,1024,768,'yes');

		break;

		case "naver":

		sendUrl = "http://bookmark.naver.com/post?ns=1&amp;title="+encodeURIComponent(message)+"&amp;url="+escape(locUrl);

		devutil.pop(sendUrl,1024,768,'yes');

		break;

		case "google":

		sendUrl = "http://www.google.com/bookmarks/mark?op=add&amp;title="+encodeURIComponent(message)+"&amp;bkmk="+escape(locUrl);

		devutil.pop(sendUrl,1024,768,'yes');

		break;

		case "facebook":

		sendUrl = "http://www.facebook.com/sharer.php?u="+encodeURIComponent(locUrl)+"&amp;t="+encodeURIComponent(message);

		devutil.pop(sendUrl,1024,768,'yes');

		break;

	}
}

function fnUrlcopy()
{
	var locUrl = window.location.href;
	window.clipboardData.setData('Text',locUrl);
	alert("URL이 복사되었습니다.");
}

function fnContentsPrint()
{
	devutil.pop('/include/print.php',700,768,'yes');
}

var Validate = {

	// 공백값 체크
	isNull : function(value) {
		//alert(value);
		if(value.length > 0) return false;
		else return true;
		//return value.blank() ? true : false;
	},

	//아이디 패턴검사 (영문소문자/숫자 조합 4~12자리면 "TRUE", 아니면 "FALSE")
	isId : function(value) {	
		if(Validate.isNull(value)) return true;			// 값이 공백일 경우에는 검사를 하지않고 "TRUE"를 리턴
		var filter = /^[a-z\d]{4,12}$/;	
		var filter2 = /[a-z]/;
		//var filter3 = /[\d]/;
		return ((filter.test(value) && filter2.test(value))) ?  true : false;
	},
	
	// 비밀번호 패턴검사 (영문소문자/숫자 조합 6~14자리면 "TRUE", 아니면 "FALSE")
	isPassword : function(value) {
		if(Validate.isNull(value)) return true;			// 값이 공백일 경우에는 검사를 하지않고 "TRUE"를 리턴
		var filter = /^[a-z\d]{6,14}$/;
		var filter2 = /[a-z]/;
		var filter3 = /[\d]/;
		return ((filter.test(value) && filter2.test(value) && filter3.test(value))) ?  true : false;
	},
	
	// 비밀번호 패턴검사 (4~12자리면 "TRUE", 아니면 "FALSE")
	isPasswordNum : function(value) {
		if(Validate.isNull(value)) return true;			// 값이 공백일 경우에는 검사를 하지않고 "TRUE"를 리턴
		var filter = /^[a-z\d]{4,12}$/;
		return filter.test(value) ?  true : false;
	},

	//이메일 패턴검사 (이메일주소면 "TRUE", 아니면 "FALSE")
	isEmail : function(value) {
		if(Validate.isNull(value)) return true;			// 값이 공백일 경우에는 검사를 하지않고 "TRUE"를 리턴
		//var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
		var filter = /^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i; 
		return (filter.test(value)) ?  true : false;
	},
	
	// 한글만 유효 검사 (한글만 포함되어 잇으면 "TRUE", 다른 문자가 폼함되어 있으면 "FALSE")
	isKor : function(value) {
		if(Validate.isNull(value)) return true;			// 값이 공백일 경우에는 검사를 하지않고 "TRUE"를 리턴
		var filter=/^[ㄱ-힣]+$/;
		return (filter.test(value)) ?  true : false;
	},
	
	// 알파벳만 유효 검사 (알파벳만 포함되어 잇으면 "TRUE", 다른 문자가 폼함되어 있으면 "FALSE")
	isAlpha : function(value) {
		if(Validate.isNull(value)) return true;			// 값이 공백일 경우에는 검사를 하지않고 "TRUE"를 리턴
		var filter=/^[a-zA-Z]+$/;
		return (filter.test(value)) ?  true : false;
	},
	
	// 숫자만 유효 검사 (숫자만 포함되어 잇으면 "TRUE", 다른 문자가 폼함되어 있으면 "FALSE")
	isNum : function(value) {
		if(Validate.isNull(value)) return true;			// 값이 공백일 경우에는 검사를 하지않고 "TRUE"를 리턴
		var filter=/^[\d]+$/;
		return (filter.test(value)) ?  true : false;
	},
	
	// 숫자만 유효 검사 (숫자와 ,만 포함되어 잇으면 "TRUE", 다른 문자가 폼함되어 있으면 "FALSE")
	isCurrencyNum : function(value) {
		if(Validate.isNull(value)) return true;			// 값이 공백일 경우에는 검사를 하지않고 "TRUE"를 리턴
		var filter=/^[\d,]+$/;
		return (filter.test(value)) ?  true : false;
	},


	// 날짜 유효 검사 (날짜형식(YYYY-MM-DD) "TRUE", 아니면 "FALSE")
	isDate : function(value) {
		if(Validate.isNull(value)) return true;			// 값이 공백일 경우에는 검사를 하지않고 "TRUE"를 리턴
		var filter=/^[\d]{4}\-[\d]{2}\-[\d]{2}$/;
		return (filter.test(value)) ?  true : false;
	},
	
	// 알파벳/숫자만 유효 검사 (알파벳과 숫자만 포함되어 잇으면 "TRUE", 다른 문자가 폼함되어 있으면 "FALSE")
	isAlphaNum : function(value) {
		if(Validate.isNull(value)) return true;			// 값이 공백일 경우에는 검사를 하지않고 "TRUE"를 리턴
		var filter=/^[\w]+$/;
		return (filter.test(value)) ?  true : false;
	},
	
	isNumHyphen : function(value){
		var filter= /^(\d|-)+$/;
		return (filter.test(value)) ?  true : false;
		
	},

	// 주민등록번호 유효 검사 (주민등록번호면 "TRUE", 아니면 "FALSE")
	isSSN : function(value) {
		try {
		if(Validate.isNull(value)) return true;			// 값이 공백일 경우에는 검사를 하지않고 "TRUE"를 리턴
		var ssn = value.replace("-","");
		var filter = /^[\d]{6}[1234][\d]{6}$/;
		if(!filter.test(ssn)) return false;

		var sex = parseInt(ssn.substr(6,1),10);
		var yy  = parseInt(sex > 2 ? "20"+ssn.substr(0,2) : "19"+ssn.substr(0,2),10);
		var mm  = parseInt(ssn.substr(2,2),10);
		var dd  = parseInt(ssn.substr(4,2),10);
		if(yy < 1900 || yy > 2100 || mm < 1 || mm > 12 || dd < 1 || dd > 31) return false;
		
		var chk = 0;
		for(var i = 0; i <=11; i++){
			chk = chk + (((i % 8) + 2) * parseInt(ssn.substring(i, i + 1),10));
		}
		
		return ((11 - (chk % 11)) % 10) == ssn.substr(12,1) ? true : false;
		} catch(e) {
			//alert(e.description);
			return false;
		}
	},

	// 외국인등록번호 유효 검사 (주민등록번호면 "TRUE", 아니면 "FALSE")
	isFGN : function(value) {
		if(Validate.isNull(value)) return true;			// 값이 공백일 경우에는 검사를 하지않고 "TRUE"를 리턴
		var ssn = value.replace("-","");
		var filter = /^[\d]{6}[5678][\d]{6}$/;
		if(!filter.test(ssn)) return false;

		var sum = 0;
		var odd = 0;
		var buf = new Array(13);

		for(i = 0; i < 13; i++) {
			buf[i] = parseInt(ssn.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;
		return (sum == buf[12]) ? true : false ;
	},
	
	// 동영상 파일만 유효 검사 (이미지면 "TRUE", 아니면 "FALSE")
	isMovieFile : function(value) {
		if(Validate.isNull(value)) return true;			// 값이 공백일 경우에는 검사를 하지않고 "TRUE"를 리턴
		value = value.substr(value.lastIndexOf("\\")+1);
		//var filter=/\.(asf|avi|wmv|mpg|mpeg)$/i;
		var filter=/\.(flv)$/i;
		return (filter.test(value) && Validate.checkSpecialChar(value)) ?  true : false;
	},

	// 이미지파일만 유효 검사 (이미지면 "TRUE", 아니면 "FALSE")
	isImageFile : function(value) {
		if(Validate.isNull(value)) return true;			// 값이 공백일 경우에는 검사를 하지않고 "TRUE"를 리턴
		value = value.substr(value.lastIndexOf("\\")+1);
		var filter=/\.(jpg|gif|png|bmp)$/i;
		return (filter.test(value) && Validate.checkSpecialChar(value)) ?  true : false;
	},

	// 파일확장자 검사 (실행파일이 아니면 "TRUE", 실행파일이면 "FALSE")
	checkFileName : function(value) {
		if(Validate.isNull(value)) return true;			// 값이 공백일 경우에는 검사를 하지않고 "TRUE"를 리턴
		value = value.substr(value.lastIndexOf("\\")+1);
		var filter=/\.(asp|jsp|php|cgi|exe|sh|class|java)$/i;
		return (!filter.test(value) && Validate.checkSpecialChar(value)) ?  true : false;
	},
	
	// 특수문자 입력 검사 (특수문자가 포함되어 있지 않으면 "TRUE", 포함되어 잇으면 "FALSE")
	checkSpecialChar : function(value) {
		if(Validate.isNull(value)) return true;			// 값이 공백일 경우에는 검사를 하지않고 "TRUE"를 리턴
		var filter=/[#/:;'\"]/;
		var filter2=/[\-]{2}/;
		return (!filter.test(value) && !filter2.test(value)) ?  true : false;
	},
	
	// 특수문자 입력 검사 (특수문자가 포함되어 있지 않으면 "TRUE", 포함되어 잇으면 "FALSE")
	checkSpecialChar2 : function(value) {
		if(Validate.isNull(value)) return true;			// 값이 공백일 경우에는 검사를 하지않고 "TRUE"를 리턴
		var filter=/[\"]/;
		var filter2=/[\-]{2}/;
		return (!filter.test(value) && !filter2.test(value)) ?  true : false;
	},

	// 문자열 길이 검사 (문자열의 길이가 넘지 않으면 "TRUE", 넘으면 "FALSE")
	checkLength : function(value, min, max) {
		if(Validate.isNull(value)) return true;			// 값이 공백일 경우에는 검사를 하지않고 "TRUE"를 리턴
		return (value.length >= min && value.length <= max);
	},

	// 숫자범위 검사 (숫자범위가 넘지 않으면 "TRUE", 넘으면 "FALSE")
	checkRange : function(value, min, max) {
		if(Validate.isNull(value)) return true;			// 값이 공백일 경우에는 검사를 하지않고 "TRUE"를 리턴
		return (parseInt(value,10) >= min && parseInt(value,10) <= max);
	}

};
    
    


var dom = {
	$ : function(emt) {
		emt = document.getElementById(emt);
		return emt;
	},
	$$ : function(par, tag, cnm) {
		var emt = par.getElementsByTagName(tag);
		if(arguments.length == 3) {
			var arr = new Array();
				for(var i = 0; i < emt.length; i++) {
					if(emt[i].className == cnm) {
						arr.push(emt[i]);
					}
				}
			return arr;
		}
		else if(arguments.length == 2) {
			return emt;
		}
	},
	rule : new Array("of", "on"),
	toggle : function(emt) {
		var src = emt.getAttribute("src");
		var typ = (src.indexOf("gif") != -1) ? ".gif" : ".jpg";
		var of = "", on = "";

		if(src.indexOf(this.rule[0]+typ) != -1) {
			of = this.rule[0]+typ;
			on = this.rule[1]+typ;
		} else {
			of = this.rule[1]+typ;
			on = this.rule[0]+typ;
		}
		emt.src = src.replace(of, on);
	},
	x : function(cmt, obj_id) {
		var emt = this.$(cmt);
		if(navigator.appName == "Microsoft Internet Explorer") {
			document.write(emt.text);
			emt.id = "";
		}
		if(obj_id)
			window[obj_id] = this.$(obj_id);
	},
	checkin : function(k1, k2) {
		var c = (k1.indexOf(k2) != -1) ? true : false;
		return c;
	},
	flashfunction : function(emt_id ,funcname) {
		var ie = navigator.appName.indexOf("Microsoft") != -1; 
		var emt = null;
		emt = (ie) ? dom.$(emt_id) : window.document.emt_id;
		emt[funcname]();
	}
};

// Attach Photo Resize
dom.autoresize = function() {
	this.limit = 680;
	this.list = dom.$$(dom.$("board_contents_area"), "img");
	
	this.contents = "";
	this.contents += "<html><head><title>큰 이미지 보기</title></head>"
	for(var i = 0; i < this.list.length; i++) {
		var w = this.list[i].width, h = this.list[i].height;
		if(parseInt(w)>this.limit) {
			with(this.list[i].style) {
				width = this.limit;
				height = parseInt(h/100) * parseInt(this.limit/w*100) + "px";
				cursor = "pointer";
				visibility = "visible";
			}
		} else {
			with(this.list[i].style) {
				width = w;
				height = h + "px";
				cursor = "pointer";
				visibility = "visible";
			}
		}
		this.list[i].ow = w;
		this.list[i].oh = h;
		this.list[i].call = this;
		devutil.add(this.list[i], "click", function(){ this.call.popup(this) });
	}
};


dom.autoresize.prototype = {
	create : function(w, h, path) {
		var contents = this.contents, win;
			contents += "<body style=\"margin: 0;\"><a href=\"#close\" onclick=\"window.close();\"><img src=\""+path+"\" border=\"0\" width=\""+w+"\" height=\""+h+"\" alt=\"이미지를 클릭하면 창이 닫힙니다.\" />";
			contents += "</a></body></html>";
		win = window.open("","bigimage","width="+w+",height="+h);
		win.document.open();
		win.document.write(contents);
		win.document.close();
	},
	popup : function(emt) {
		this.create(emt.ow, emt.oh, emt.getAttribute("src"));
	}
};

