function togglelang(lang) {
  setcookie("lang", lang, 36000);
  if (document.location.href.indexOf("#") > 0) {
    window.location.reload();
  } else {
    document.location.href = document.location.href;
  }
}
function setcookie(name, value, expiredays) {
  var today = new Date();
  today.setDate( today.getDate() + expiredays );
  document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + today.toGMTString() + ";";
}
function getobject(id, d) {
	var i,x;  if(!d) d=document;
	if(!(x=d[id])&&d.all) x=d.all[id];
	for(i=0;!x&&i<d.forms.length;i++) x=d.forms[i][id];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=getobject(id,d.layers[i].document);
	if(!x && document.getElementById) x=document.getElementById(id);
	return x;
}
function getintval(val) {
	val = val.replace(/[^\d]/g, '');
	if(val < 1) {
		val = 0;
	}
	val = +val;
	return val;
}
function newwin(url, winname, width, height, options) {
	var l = (screen.availWidth - width) / 2;
	var t = (screen.availHeight - height) / 2;
	if(!options) options = 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no';
	var winspec = "width=" + width + ",height=" + height + ",left=" + l + ",top=" + t + "," + options;
	win = window.open(url, winname, winspec);
	win.focus();
}
function getobj(name) {
	this.obj = document.getElementById(name);
	this.style = document.getElementById(name).style;
}
function findposx(obj) {
	var curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	} else if (obj.x) curleft += obj.x;
	return curleft;
}
function findposy(obj) {
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	} else if (obj.y) curtop += obj.y;
	return curtop;
}
function centerobj(obj) {
	var X = document.body.clientWidth;
	if(!X) {
		X = window.innerWidth;
		var Y = window.innerHeight;
	} else {
		var Y = document.body.clientHeight;
	}
	obj.style.display = '';
	X = (X - obj.offsetWidth) / 2;
	Y = (Y - obj.offsetHeight) / 2;
	obj.style.left = X + 'px';
	obj.style.top = Y + 'px';
}
function getkeycode(e) {
	if(window.event) var code = window.event.keyCode;
	else var code = e.keyCode;
	return code;
}
function getmouse(e) {
	var posx = 0;
	var posy = 0;
	if(!e) var e = window.event;
	if(e.pageX || e.pageY) {
		posx = e.pageX;
		posy = e.pageY;
	} else if(e.clientX || e.clientY) {
		posx = e.clientX + document.body.scrollLeft;
		posy = e.clientY + document.body.scrollTop;
	}
	return new Array(posx, posy, e.which);
}
function validateemail(s) {
	var atom = "[-a-z0-9!#$%&\'*+/=?^_`{|}~]";
	var dname = "([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)";
	var isvalid = "^" + atom + "+" + "(\." + atom + "+)*" + "@" + "(" + dname + "{1,63}\.)+" + dname + "{2,63}" + "$";
	if(s.search(isvalid) == -1) return false;
	else return true;
}
function checkboxtogglebyname(objname) {
	var chkbox = document.getElementsByName(objname);
	for(i=0; i < chkbox.length; i++) {
		chkbox[i].checked = !chkbox[i].checked;
	}
}
function checkboxtogglebyid(objid) {
	var chkbox = document.getElementById(objid);
	chkbox.checked = !chkbox.checked;
}
function toggle_endisable(obj) {
	obj.disabled = 1 - obj.disabled;
}
function toggledisplay(id) {
	var obj = document.getElementById(id);
	if(obj.style.display == 'none') {
		obj.style.display = '';
	} else {
		obj.style.display = 'none';
	}
}
function trim(str) {
	if(str) return str.replace(/^\s*|\s*$/g,"");
}
function number_format(a, b, c, d) {
	// number_format(number, decimals, comma, formatSeparator)
	a = Math.round(a * Math.pow(10, b)) / Math.pow(10, b);
	e = a + '';
	f = e.split('.');
	if(!f[0]) f[0] = '0';
	if(!f[1]) f[1] = '';
	if(f[1].length < b){
		g = f[1];
		for(i = f[1].length + 1; i <= b; i++) {
			g += '0';
		}
		f[1] = g;
	}
	if(d != '' && f[0].length > 3) {
		h = f[0];
		f[0] = '';
		for(j = 3; j < h.length; j += 3) {
			i = h.slice(h.length - j, h.length - j + 3);
			f[0] = d + i +  f[0] + '';
		}
		j = h.substr(0, (h.length % 3 == 0) ? 3 : (h.length % 3));
		f[0] = j + f[0];
	}
	c = (b <= 0) ? '': c;
	return f[0] + c + f[1];
}
function hide(id) {
	var obj = document.getElementById(id);
	if(obj) obj.style.display = 'none';
}
function hideall() {
	var divs = document.getElementsByTagName('div');
	for(i=0; i<divs.length; i++) {
		if(divs[i].style.zIndex && !divs[i].style.display) divs[i].style.display = 'none';
	}
}
var warning = 0;
function checktextlen(obj, maxlen) {
  var len = gettextlen(obj.value);
	if(len > maxlen) {
		obj.value = obj.value.replace(/\r\n$/, "");
		obj.value = subtext(obj.value, maxlen);
		if(!warning) {
			alert('입력한 내용이 ' + maxlen + '자가 넘습니다.');
			warning = -1;
		}
	} else {
		if(warning) warning = 0;
	}
	return false;
}
function gettextlen(txt) {
	var c, bytes = 0;
	for(i=0; i<txt.length; i++) {
		c = txt.charAt(i);
		if(escape(c).length > 4) {
			bytes += 2;
		} else if(c == '\n') {
			if(txt.charAt(i-1) != '\r') bytes += 1;
		} else if(c == '<' || c == '>') {
			bytes += 4;
		} else {
			bytes += 1;
		}
	}
	return bytes;
}
function subtext(txt, maxlen) {
	var inc = 0;
	var bytes = 0;
	var c, t = "";
	var l = txt.length;

	for(i=0; i<l; i++) {
		var c = txt.charAt(i);
		if(escape(c).length > 4) {
			inc = 2;
		} else if(c == '\n') {
			if(txt.charAt(i-1) != '\r') {
				inc = 1;
			}
		} else if(c == '<' || c == '>') {
			inc = 4;
		} else {
			inc = 1;
		}
		if((bytes + inc) > maxlen) {
			break;
		}
		bytes += inc;
		t += c;
	}
	return t;
}
function getradiovalue(obj) {
	for(var i = 0; i < obj.length; i++) {
		if(obj[i].checked) return obj[i].value;
	}
}
function setradiovalue(obj, val) {
	for(var i = 0; i < obj.length; i++) {
		if(obj[i].value == val) obj[i].checked = true;
		else obj[i].checked = false;
	}
}
function setradio(rname, val) {
	var obj = document.getElementsByName(rname);
	for(var i = 0; i < obj.length; i++) {
		if(obj[i].value == val) obj[i].checked = true;
		else obj[i].checked = false;
	}
}
var rowcolor = '';
function highlightrow(tr, warning) {
	if(warning) {
		var c = '#fb9715';
	} else {
		var c = '#fbca15';
	}
	rowcolor = tr.childNodes[0].bgColor;
	for(var i=0; i < tr.childNodes.length; i++) tr.childNodes[i].bgColor = c;
}
function resetrow(tr) {
	for(var i=0; i < tr.childNodes.length; i++) tr.childNodes[i].bgColor = rowcolor;
}
function zerofill(txt, len) {
	txt = txt.toString();
	var zerofill = parseInt(len, 10) - txt.length;
	for(var i=0; i<zerofill; i++) txt = '0' + txt;
	return txt;
}
function placeflashmovie(swf, width, Height) {
	if(!swf || !width || !Height) return;
	document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="' + width + '" height="' + Height + '">');
	document.write('<param name=movie value="' + swf + '">');
	document.write('<param name=quality value=high>');
	document.write('<PARAM NAME=menu VALUE=false>');
	document.write('<embed src="' + swf + '" quality=high menu=false  pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="' + width + '" height="' + Height + '">');
	document.write('</embed>');
	document.write('</object>');
}
function urlencode(str) {
	str = str.toString();
	str = encodeURIComponent(str).replace(/%20/g, '+');
	return str;
}
function fancytopmenu(obj, flag) {
//alert(obj.childNodes[0].tagName);
	if(flag) {
		obj.childNodes[0].childNodes[0].style.borderBottom = '#fbca15 5px solid';
	} else {
		obj.childNodes[0].childNodes[0].style.borderBottom = '';
	}
}
function hideme(obj, event) {
	if(mouseLeaves(obj, event)) {
		obj.style.left = '-2000px';
		obj.style.top = '-2000px';
	}
}
function mouseLeaves(element, evt) {
	if(typeof evt.toElement != 'undefined' && evt.toElement && typeof element.contains != 'undefined') {
		return !element.contains(evt.toElement);
	} else if (typeof evt.relatedTarget != 'undefined' && evt.relatedTarget) {
		return !contains(element, evt.relatedTarget);
	}
}
function contains(container, containee) {
	while(containee) {
		if(container == containee) {
			return true;
		}
		containee = containee.parentNode;
	}
	return false;
}
function checksearch(f) {
	if(!trim(f.search.value)) {
		return false;
	}
}
function mcheck(f) {
	if(!f.mname.value || !f.mword.value) {
		toggledisplay('mtbody');
		return false;
	}
}
function showtab(tid) {
	var tabs = document.getElementsByTagName('tbody');
	var i, img, iheader, theader = 'tab_';
	tid = theader + tid;
	for(i = 0; i < tabs.length; i++) {
		if(tabs[i].id.substr(0, 4) == theader) {
			iheader = tabs[i].id.substr(4);
			if(tabs[i].id == tid) {
				img = document.getElementById('tabimg_' + iheader);
				img.src = '/images/tab_' + iheader + '_on.gif';
				tabs[i].style.display = '';
			} else {
				img = document.getElementById('tabimg_' + iheader);
				img.src = '/images/tab_' + iheader + '_off.gif';
				tabs[i].style.display = 'none';
			}
		}
	}
}
function showart(idx) {
	if(idx < 0 || idx >= arts.length) {
		return;
	}
	var aid = arts[idx];
	document.getElementById('artcaption').innerHTML = captions[aid];
	var img = document.getElementById('artimage');
	img.src = '/scripts/art.html?id=' + aid + '&cat=2'
	img.className = classnames[aid];
	img.onload = function() { 
		sethotzones(img, idx);
	}
}
function sethotzones(img, idx) {
	var l = idx - 1;
	var r = idx + 1;
	lz.height = img.offsetHeight;
	lz.onclick = function() { showart(l); }
	rz.height = img.offsetHeight;
	rz.onclick = function() { showart(r); }
}
var cpg = 0;
function thumbnav(dir) {
	var i, tpp = 10;
	var pgs = Math.floor(arts.length / tpp);
	var pg = cpg + dir;
	if((pg < 0) || (pg > pgs)) {
		return;
	}
	var s = pg * tpp;
	var e = s + tpp;
	if(e >= arts.length) {
		e = arts.length;
	}
	var td = document.getElementById('thumbstd');
	var html = '';
	var cap;
	for(i = s; i < e; i++) {
		cap = captions[arts[i]].replace(/<span class=seq>/ig, '');
		cap = cap.replace(/<\/span>/ig, '');
		html += '<img src="/scripts/art.html?id=' + arts[i] + '&cat=1" width=64 height=64 border=0 hspace=2 onclick="showart(' + i + ');" alt="' + cap + '" title="' + cap + '" class=' + classnames[arts[i]] + ' style=\"cursor:pointer;\">';
	}
	td.innerHTML = html;
	cpg = pg;
}
function openurl(url) {
	document.location = url;
}
function outback(id) {
	var obj = document.getElementById(id);
	obj.style.left = '-4000px';
	obj.style.top = '-4000px';
}
function openfamsite(sel) {
	var s = document.getElementById(sel);
	var url = s.options[s.selectedIndex].value;
	if(url) {
		window.open(url);
	}
}

