﻿function _ID(obj){ 
	return document.getElementById(obj);
}
/** 중복검색 **/

var xmldatatype = "";  
var xmlHttp;

function createXMLHttpRequest() {
    if (window.ActiveXObject) {
	    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }else if (window.XMLHttpRequest) {
	    xmlHttp = new XMLHttpRequest();     
    }
}

var temp1="";
var temp2="";

function unique_id(form,tg) {
    var pattern = /^[a-zA-Z0-9_-]+$/;
	var patternword = /(root|admin|manager|member|master)/;
	var XML_CBIS;
	var rst;

	obj = document.forms[form].elements[tg].value;

	if (arguments.length>2)
	{
		minbyte = arguments[2];
		_len = obj.length;
		for (j=0; j<obj.length; j++) {
			if (obj.charCodeAt(j) > 128) _len++;
		}
		if (minbyte>0 && _len<minbyte)
		{
			alert('パスワードは'+minbyte+'字、以上です。');
			document.forms[form].elements[tg].value = '';
			document.forms[form].elements[tg].readOnly = false;
			document.forms[form].elements[tg].focus();
			return false;
		}
	}


	if (obj!="" && obj!=null)
	{

		if (!pattern.test(obj))
		{
			alert("必ず数字またはロマー字で入力してください。\n공백은 포함될수 없습니다.");
			document.forms[form].elements[tg].value = "";
			document.forms[form].elements[tg+'chk'].value = "";
			document.forms[form].elements[tg].focus();
			return;
		}

		if (patternword.exec(obj))
		{
			alert("使用できないIDです。\nまた入力ください。");
			document.forms[form].elements[tg].value = "";
			document.forms[form].elements[tg+'chk'].value = "";
			document.forms[form].elements[tg].focus();
			return;
		}
		
        temp1 = form;
        temp2 = tg ;
        
		xmlhttp = createXMLHttpRequest();

        var url = "/mypage/unique_id.asp";
        var param = "id=" + encodeURIComponent(obj)
        xmlHttp.open("POST", url, true);
        xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        xmlHttp.onreadystatechange = callback; 
        xmlHttp.send(param);		
		
    }else {
		alert("IDを入力してください.");
		document.forms[form].elements[tg+'chk'].value = "";
		document.forms[form].elements[tg].readOnly = false;
		document.forms[form].elements[tg].focus();
	}
}
function callback() {
	if (xmlHttp.readyState == 4) {
		if (xmlHttp.status == 200) {

		    var xmlDoc = xmlHttp.responseText;
		    if (xmlDoc=="0"){
			    alert("이미 사용중인 아이디 입니다.\n다른아이디를 입력해주세요.");
			    document.forms[temp1].elements[temp2].value = "";
			    document.forms[temp1].elements[temp2+'chk'].value = "";
			    document.forms[temp1].elements[temp2].focus();
		    }else {
			    alert("使用可能なIDです.");
			    document.forms[temp1].elements[temp2].readOnly = true;
			    document.forms[temp1].elements[temp2+'chk'].value = "1";
		    }

		}
	}
}		


/*** 레이어 팝업창 띄우기 ***/
function popupLayer(s,w,h)
{

	if (!w) w = 600;
	if (!h) h = 400;

	var pixelBorder = 3;
	var titleHeight = 12;
	w += pixelBorder * 2;
	h += pixelBorder * 2 + titleHeight;

	var bodyW = document.body.clientWidth;
	var bodyH = document.body.clientHeight;

	var posX = (bodyW - w) / 2;
	var posY = (bodyH - h) / 2;

	hiddenSelectBox('hidden');

	/*** 백그라운드 레이어 ***/
	var obj = document.createElement("div");
	with (obj.style){
		position = "absolute";
		left = 0;
		top = 0;
		width = "100%";
		//height = "100%";
		height = document.body.scrollHeight;
		backgroundColor = "#000000";
		filter = "Alpha(Opacity=50)";
		opacity = "0.5";
	}
	obj.id = "objPopupLayerBg";
	document.body.appendChild(obj);

	/*** 내용프레임 레이어 ***/
	var obj = document.createElement("div");
	with (obj.style){
		position = "absolute";
		left = posX + document.body.scrollLeft;
		top = posY + document.body.scrollTop;
		width = w-7;
		height = h-14;
		backgroundColor = "#FFFFFF";
		border = "3px solid #FFFFFF";
	}
	obj.id = "objPopupLayer";
	document.body.appendChild(obj);

	/*** 타이틀바 레이어 ***/
	var bottom = document.createElement("div");
	with (bottom.style){
		position = "absolute";
		width = w - pixelBorder * 2 ;
		height = 14;//titleHeight;
		left = 0;
		top = h - titleHeight - pixelBorder * 3 +5;
		padding = "2px 0 0 0";
		textAlign = "right";
		backgroundColor = "#EEEEEE";
		color = "#FFFFFF";
		font = "bold 11px tahoma";
	}
	//bottom.innerHTML = "<a href='javascript:closeLayer()' class=white>close</a>&nbsp;&nbsp;&nbsp;";
	//obj.appendChild(bottom);

	/*** 아이프레임 ***/
	var ifrm = document.createElement("iframe");
	with (ifrm.style){
		width = w - 6;
		height = h - pixelBorder * 2 - titleHeight - 3;
		//border = "3 solid #000000";
	}
	ifrm.frameBorder = 0;
	ifrm.src = s;
	ifrm.id = "Lypop";
	//ifrm.className = "scroll";
	obj.appendChild(ifrm);	
}

function closeLayer()
{
	hiddenSelectBox('visible');
	_ID('objPopupLayer').parentNode.removeChild( _ID('objPopupLayer') );
	_ID('objPopupLayerBg').parentNode.removeChild( _ID('objPopupLayerBg') );
}
function hiddenSelectBox(mode)
{
	var obj = document.getElementsByTagName('select');
	for (i=0;i<obj.length;i++){
		obj[i].style.visibility = mode;
	}
}

/** MB단위를 KB로 변환  **/
function fsizeconv(form,e,t){
	obj = document.forms[form].elements[e];
	tg = document.forms[form].elements[t];
	if (obj.value>0)
	{
		tg.value = 1048576 * obj.value;
	}
}

/** 숫자에 콤마를 찍는다. **/
function SetComma(numstr) { 
    numstr = String(numstr); 
    var re0 = /^(-?\d+)(\d{3})($|\..*$)/; 
    if (re0.test(numstr)) 
        return numstr.replace(re0, 
            function(str,p1,p2,p3) { 
                return SetComma(p1) + ',' + p2 + p3; 
            } 
        ); 
    else 
        return numstr; 
} 

/** TEXTAREA 크기변경 **/
function txtsize(id,m,row)
{
	if (m=='d')
	{
		if (document.getElementById(id).rows - row > 0)	document.getElementById(id).rows -= row;
	}else if (m=='o')
	{
		document.getElementById(id).rows = row;
	}else if (m=='i')
	{
		document.getElementById(id).rows += row;
	}
}


function pic_preview() {
	obj = arguments[0];
	id = arguments[1];
	w = (arguments[2])? " width='" + arguments[2] + "'" : "";
	h = (arguments[3])? " height='" + arguments[3] + "'" : "";
	if (w=='' && h=='')
	{
		w = " width='22'";
		h = " height='22'";
	}
	el = document.getElementById(id);
	el.innerHTML = "<img src='" + obj.value + "'"+w+h+" align='absmiddle'>";
}

function chkLength(obj,out){
	str = obj.value;
	document.getElementsByName('msgLength')(0).value = chkByte(str);
	
	if (chkByte(str)>80){
		alert("80byte까지만 입력이 가능합니다");
		obj.value = strCut(str,80);
		document.getElementsByName('msgLength')(0).value = 80;
	}
}

/** 문자열 Byte 체크 (한글 2byte) **/
function chkByte(str)
{
	var length = 0;
	for(var i = 0; i < str.length; i++)
	{
		if(escape(str.charAt(i)).length >= 4)
			length += 2;
		else
			if(escape(str.charAt(i)) != "%0D")
				length++;
	}
	return length;
}

/** 문자열 자르기 (한글 2byte) **/
function strCut(str, max_length)
{
	var str, msg;
	var length = 0;
	var tmp;
	var count = 0;
	length = str.length;

	for (var i = 0; i < length; i++){
		tmp = str.charAt(i);
		if(escape(tmp).length > 4) count += 2;
		else if(escape(tmp) != "%0D") count++;
		if(count > max_length) break;
	}
	return str.substring(0, i);
}

/** 레이어 display **/

function openLayer(obj,mode)
{
	obj = _ID(obj);
	if (mode) obj.style.display = mode;
	else obj.style.display = (obj.style.display!="none") ? "none" : "";
}


/** 캘린더 : onclick="calendar()" format="%Y-%m-%d" **/

var calObjdoc;
var calInput;
var calValue;
var calFunction;

function calendar_init()
{
	var date = new Date;
	var year = date.getYear();
	var month = date.getMonth();

	var calStyle = "\
	<style>\
	body {margin:0}\
	select {font:8pt tahoma}\
	a {text-decoration:none;color:#000000}\
	.tahoma {font:8pt tahoma}\
	.white {color:#ffffff}\
	.dgray {color:#323232}\
	.today {font-weight:bold;color:#ff0000}\
	</style>\
	";

	var calLayout = "\
	<form name=frmCalendar style='display:inline'>\
	<table width=200 cellpadding=0 cellspacing=0><tr><td style='border:2 solid #dcd5c3'>\
	<table width=196 cellpadding=0 cellspacing=0>\
	<tr>\
		<td bgcolor=#f3f1eb style='padding:0 9;border-bottom:2 solid #dcd5c3'>\
		<table width=100% cellpadding=0 cellspacing=0 class=tahoma>\
		<tr>\
			<td width=30><font class='dgray' onClick='parent.calendar_move(-1)' style='cursor:pointer'>◀</font></td>\
			<td align=center>\
			<select name=year onChange=parent.calendar_update()></select>\
			<select name=month onChange=parent.calendar_update()></select>\
			</td>\
			<td width=30 align=right><font class='dgray' onClick='parent.calendar_move(1)' style='cursor:pointer'>▶</font></td>\
		</tr>\
		</table>\
		</td>\
	</tr>\
	<tr>\
		<td height=122 valign=top>\
		<table width=100% id=calInner class=tahoma>\
		<tr><th style='color:red'>S</th><th>M</th><th>T</th><th>W</th><th>T</th><th>F</th><th style='color:blue'>S</th></tr>\
		<col align=center span=7>\
		</table>\
		</td>\
	</tr>\
	<tr>\
		<td bgcolor=#f3f1eb>\
		<table width=100% class=tahoma>\
		<tr>\
			<td><a href='javascript:parent.calendar_update(" + year + "," + month + ")' onfocus=blur() class=dgray>\
			<b>now</b> (" + year + "-" + parent.calendar_addZero(month+1) + ")\
			</a></td>\
			<td align=right><a href='javascript:parent.calendar_clear();' class=dgray>Clear</a> <a href='javascript:parent.calendar_close()' class=dgray>Close</a></td>\
		</tr>\
		</table>\
		</td>\
	</tr>\
	</table>\
	</td></tr></table>\
	</form>\
	";


	var ifrm = document.createElement("iframe");
	ifrm.id = "calObj";
	ifrm.frameBorder = 0;
	with (ifrm.style){
		position	= "absolute";
		left		= "-999px";
		background	= "#ffffff";
		filter = "Alpha(Opacity=95)";
		width		= "200px";
		height		= "166px";
		//z-index	= "999";
	}
	document.body.appendChild(ifrm);

	calObjdoc = document.getElementById('calObj').contentWindow.document;
	calObjdoc.open();
	calObjdoc.write(calStyle);
	calObjdoc.write(calLayout);
	calObjdoc.close();

	calendar_setup();
}

function calendar_setup()
{
	var objMonth = calObjdoc.frmCalendar.month;
	for (i=0;i<12;i++) objMonth.options[i] = new Option(i+1+"월",i);

	var date = new Date;
	var year = date.getYear();
	var month = date.getMonth();
	calendar_update(year,month);
}

function calendar_update(year,month)
{
	if (isNaN(year)){
		year = calObjdoc.frmCalendar.year.value;
		month = calObjdoc.frmCalendar.month.value;
	}

	year = parseInt(year);

	var objYear = calObjdoc.frmCalendar.year;
	var objMonth = calObjdoc.frmCalendar.month;

	for (i=0;i<5;i++) objYear.options[i] = new Option(year+i-2+"년",year+i-2);
	objYear.selectedIndex = 2;
	objMonth.selectedIndex = month;

	calendar_inner(year,month);
}

function calendar_inner(year,month)
{
	var date = new Date;
	var Y = date.getYear();
	var m = date.getMonth();
	var d = date.getDate();

	var firstDay = new Date(year,month);
	firstDay = firstDay.getDay();
	var lastDay = calendar_lastDay(year,month);

	var obj = calObjdoc.getElementById('calInner');

	for (i=obj.rows.length;i>1;i--) obj.deleteRow(i-1);

	oTr = obj.insertRow();
	for (i=0;i<firstDay;i++) oTr.insertCell();
	cnt = i;

	for (i=1;i<=lastDay;i++){
		if (cnt++%7==0) oTr = obj.insertRow();
		oTd = oTr.insertCell();
		oTd.style.cursor = "pointer";
		oTd.style.backgroundColor = "#f7f7f7";
		oTd.color = "#000000";
		if (Y==year && m==month && d==i){
			oTd.color = "#ff0000";
			oTd.style.fontWeight = "bold";
		}
		oTd.innerText = i;
		oTd.style.color = oTd.color;
		oTd.onmouseover = function(){this.style.backgroundColor = "#316AC5"; this.style.color = "#ffffff"}
		oTd.onmouseout = function(){this.style.backgroundColor = "#f7f7f7"; this.style.color = this.color}
		oTd.onclick = function(){parent.calendar_print(this.innerText)}
	}
	//document.getElementById('calObj').height = calObjdoc.body.scrollHeight;
}

function calendar_move(idx)
{
	var year = calObjdoc.frmCalendar.year.value;
	var month = parseInt(calObjdoc.frmCalendar.month.value) + idx;

	if (month<0){ year--; month=11; }
	if (month==12){ year++; month=0; }

	calendar_update(year,month);
}

function calendar()
{
	//추가 : 특정함수실행
	arg = calendar.arguments;
	if (arg[0])
	{
		calFunction = arg[0];
	}

	if (!_ID('calObj')) calendar_init();

	calInput = event.srcElement;
	//추가 : 기존값 임시저장
	calValue = calInput.value;

	var xpos = calendar_get_objectLeft(calInput);
	var ypos = calendar_get_objectTop(calInput) + calInput.offsetHeight + 2;

	var calObj = document.getElementById('calObj');
	calObj.style.pixelLeft = xpos;
	calObj.style.pixelTop = ypos;
	calObj.style.display = "block";
}

function calendar_print(day)
{
	var year = calObjdoc.frmCalendar.year.value;
	var month = calObjdoc.frmCalendar.month.value;

	calInput.value = calendar_format(year,month,day,0);

	if (calInput.getAttribute("sub")!=null)
	{
		tg=calInput.getAttribute("sub");
		document.getElementsByName(tg)[0].value = calendar_format(year,month,day,1);	
	}

	//추가 : 특정함수실행
	if (calFunction)
	{
		eval(calFunction+"\(calInput,calValue\);");
	}

	calendar_close();
}


function calendar_clear() {
	calInput.value = "";
	calendar_close();
}


function calendar_format(year,month,day,sub)
{
	month++;
	if (sub)
	{
		tg=calInput.getAttribute("sub");
		var format = (document.getElementsByName(tg)[0].format!=null) ? document.getElementsByName(tg)[0].format : "%Y%m%d";
	}else {
		var format = (calInput.getAttribute("format")!=null) ? calInput.format : "%Y%m%d";
	}

	var Y = year;
	var y = year.substr(2,2);
	var m = calendar_addZero(month);
	var d = calendar_addZero(day);

	format = format.replace(/%Y/g, Y);
	format = format.replace(/%y/g, y);
	format = format.replace(/%m/g, m);
	format = format.replace(/%d/g, d);

	return format;
}

function calendar_close()
{
	var calObj = document.getElementById('calObj');
	calObj.style.display = "none";
}

function calendar_addZero(str){
	return ((str < 10) ? "0" : "") + str;
}

function calendar_lastDay(year,month){
	var leap;
	var last = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	if (year%4==0)		leap = true;
	if (year%100==0)	leap = false;
	if (year%400==0)	leap = true;
	if (leap) last[1] = 29;
	return last[month];
}

function calendar_get_objectTop(obj){
	if (obj.offsetParent == document.body) return obj.offsetTop;
	else return obj.offsetTop + get_objectTop(obj.offsetParent);
}

function calendar_get_objectLeft(obj){
	if (obj.offsetParent == document.body) return obj.offsetLeft;
	else return obj.offsetLeft + get_objectLeft(obj.offsetParent);
}

function get_objectTop(obj){
	if (obj.offsetParent == document.body) return obj.offsetTop;
	else return obj.offsetTop + get_objectTop(obj.offsetParent);
}

function get_objectLeft(obj){
	if (obj.offsetParent == document.body) return obj.offsetLeft;
	else return obj.offsetLeft + get_objectLeft(obj.offsetParent);
}


//-- 화면 확대 축소 --//
//	+, - 키를 입력하면 화면 확대, 축소를 한다.
document.onkeypress = getKey;
var tgs = new Array( 'div','td','tr','a');
var szs = new Array( '6px','8px','10px','12px','14px','16px','18px' );
var startSz = 3;

function getKey(keyStroke) {
	isNetscape=(document.layers);
	eventChooser = (isNetscape) ? keyStroke.which : event.keyCode;
	which = String.fromCharCode(eventChooser).toLowerCase();
	which2 = eventChooser;

	var el=event.srcElement;

	if ((el.tagName != "INPUT") && (el.tagName != "TEXTAREA"))
	{			
		if(which == "+" )
			ts('body',1);
			//zoomInOut('zoom', 'in');
		else if(which == "-" )
			ts('body',-1);
			//zoomInOut('zoom', 'out');
	}
}

function ts( trgt,inc ) {
    if (!document.getElementById) return
	if(GetCookie("zoomVal") != null && GetCookie("zoomVal") != ""){			
		startSz = GetCookie("zoomVal");
	}
    var d = document,cEl = null,sz = startSz,i,j,cTags;

	
    sz = (inc!='')? parseInt(sz) + parseInt(inc) : 3;

    if ( sz < 0 ) sz = 0;
    if ( sz > 6 ) sz = 6;
    startSz = sz;

    if ( !( cEl = d.getElementById( trgt ) ) ) cEl = d.getElementsByTagName( trgt )[ 0 ];

    cEl.style.fontSize = szs[sz];

    for ( i = 0 ; i < tgs.length ; i++ ) {
        cTags = cEl.getElementsByTagName( tgs[ i ] );
        for ( j = 0 ; j < cTags.length ; j++ ) cTags[ j ].style.fontSize = szs[ sz ];
    }
	SetCookie("zoomVal",startSz);
}


function gts() {
    if (!document.getElementById) return
    var d = document,cEl = null,sz = startSz,i,j,cTags;
    //sz += inc;
	if(GetCookie("zoomVal") != null && GetCookie("zoomVal") != ""){			
		sz = GetCookie("zoomVal");
	}
	trgt = 'body';
	sz = parseInt(sz);
    if ( sz < 0 ) sz = 0;
    if ( sz > 6 ) sz = 6;
    startSz = sz;
        
    if ( !( cEl = d.getElementById( trgt ) ) ) cEl = d.getElementsByTagName( trgt )[ 0 ];

    cEl.style.fontSize = szs[ sz ];

    for ( i = 0 ; i < tgs.length ; i++ ) {
        cTags = cEl.getElementsByTagName( tgs[ i ] );
        for ( j = 0 ; j < cTags.length ; j++ ) cTags[ j ].style.fontSize = szs[ sz ];
    }
}

function SetCookie(name, value){
	document.cookie = Trim(name) + "=" + escape (Trim(value)) + ";path=/;";	//domain=.itall.or.kr
}

function GetCookie(name){
	if (document.cookie != "") {
		chips = document.cookie.split("; ");
		for (var i=0; i < chips.length; i++) {
			crumb = chips[i].split("="); 
			if (crumb[0] == name) {
				return  unescape(crumb[1]);
			}
		}        
	}else{
		return "";
	}
}

function Trim ( strValue ) {
	strValue = lTrim(rTrim(strValue));
	return strValue;
}

// 문자 뒤의 공백문자를 제거하는 함수
function rTrim ( str ) {
	str = str + "";
	var len = str.length;

	for(var i = (len - 1); (str.charAt(i) == ' '); i--);
		str = str.substring(0, i + 1);
	return str;
}

// 문자 맨 앞의 공백문자를 제거하는 함수
function lTrim ( str ) {
	var len = str.length;
	var i = 0;

	for(i = 0; str.charAt(i) == ' '; i++);
		str = str.substring(i, len);
	return str;
}

//-- 화면 확대 축소 End --//
