var gDebug = false;

Array.prototype.has = function (s)
{
	for (var i = 0; i < this.length ; i++ )
	{
		if (this[i] == s)
		{
			return true;
		}
	}
	return false;
}

String.prototype.trim = function ()
{
	var ret = this.replace (/(^\s*)|(\s*$)/g, "");
	return ret;
}

String.prototype.cntWord = function()
{
	return this.split(/\w+/).length;
}

function selectedValue(obj)
{
	if (obj.selectedIndex < 0)
		return null;

	return obj.options[obj.selectedIndex].value;
}

function isChecked(obj)
{
	return obj.checked;	
}

function isKorean(sTarget)
{
	return /^[가-힣]+$/.test(sTarget);
}

function isEnglish(sTarget)
{
	return /^[a-zA-Z0-9\.,~!\?\$%@&'\"\\\- ]+$/.test(sTarget);
}

function isPureEnglishWord(sTarget)
{
	return /^[a-zA-Z0-9\.,~!\?\$%@&'\"\\\-]+$/.test(sTarget);
}

function isEmail(sTarget)
{ 
	return /^[0-9a-z]([-_\.]?[0-9a-z])*@[0-9a-z]([-_\.]?[0-9a-z])*\.[a-z]{2,4}$/i.test(sTarget); 
}

function isNumber(sTarget)
{
	return /^[0-9]+$/.test(sTarget);
}

function g(s)
{
	return (document.getElementById ) ? document.getElementById(s) : document.all[s];
}

function $(s)
{
	return (document.getElementById ) ? document.getElementById(s) : document.all[s];
}

function checkedValue(name)
{
	var obj = null;

	for (var i = 0; i < 10 ; i++ )
	{
		var obj = $(name + "[" + i + "]");

		if (obj == undefined)
			break;
		
		if (isChecked(obj))
			return $(name + "[" + i + "]").value;
	}

	return null;
}

function setFocus(objName)
{
	$(objName).focus();
}

function getCheckboxValue(s)
{
	var inputs = document.getElementsByTagName("input");

	for (var i = 0; i < inputs.length; i++)
	{
		var dat = inputs[i];
		if (dat.type.toLowerCase() == 'checkbox' &&
			dat.id.indexOf(s + "[") > -1 &&
			dat.checked == true)
		{
			return dat.value;
		}
	}

	return -1;
}

function getCheckboxValues(s)
{
	var inputs = document.getElementsByTagName("input");
	var arr = [];

	for (var i = 0; i < inputs.length; i++)
	{
		var dat = inputs[i];
		if (dat.type.toLowerCase() == 'checkbox' &&
			dat.id.indexOf(s + "[") > -1 &&
			dat.checked == true)
		{
			arr.push(dat.value);
		}
	}

	return arr;
}

function setCheckboxValue(s, v)
{
	var inputs = document.getElementsByTagName("input");

	for (var i = 0; i < inputs.length; i++)
	{
		var dat = inputs[i];
		if (dat.type.toLowerCase() == 'checkbox' &&
			dat.id.indexOf(s + "[") > -1)
		{
			dat.checked = dat.value == v ? true : false;
		}
	}
}

function multipleChecked(prefix, arrData, startIdx, endIdx)
{
	for (var i = startIdx; i <= endIdx; i++ )
	{
		var obj = $(prefix + i);
		if (obj != undefined && obj.type == "checkbox")
		{
			obj.checked = in_array(i, arrData);
		}
	}
}

function printFlash(objParm, parm, output)
{
	var flaVer = '8,0,0,0';
	var htmls = [];
	htmls.push('<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"');
	htmls.push(' codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=' + flaVer + '"');
	for (var key in objParm)
	{
		if(key == "name") continue;
		
		htmls.push(' ' + key + '="' + objParm[key] + '"');
	}
	htmls.push('>');
	htmls.push('<PARAM name="quality" value="high">');
	for (var key in parm)
	{
		htmls.push('<PARAM name="' + key + '" value="' + parm[key] + '">');
	}
	htmls.push('<embed');
	for (var key in objParm)
	{
		if (key == "movie" || key == "id")
		{
			continue;
		}
		htmls.push(' ' + key + '="' + objParm[key] + '"');
	}
	for (var key in parm)
	{
		htmls.push(' ' + key + '="' + parm[key] + '"');
	}
	htmls.push(' quality="high"');
	htmls.push(' pluginspage="http://www.macromedia.com/go/getflashplayer"');
	htmls.push(' type="application/x-shockwave-flash"');
	htmls.push('></OBJECT>');

	if (typeof(output) == "undefined" || output == "")
		document.write(htmls.join(''));
	else
		return htmls.join('');
}

function showFlash(id, width, height, movie, flashvars, style)
{
	var objParm = {id:null,width:null,height:null,movie:null,style:null};
	var parm = {flashvars:null};

	objParm.id = id;
	objParm.name = id;
	objParm.width = width;
	objParm.height = height;
	objParm.movie = movie;
	objParm.style = style;
	parm.menu = "false";
	parm.allowScriptAccess = "sameDomain";
	parm.swLiveConnect = "true";
	parm.wmode = "transparent";
	parm.bgcolor = "#FFFFFF";
	parm.scale = "exactfit";
	parm.src = movie;
	parm.flashvars = flashvars;
	printFlash(objParm, parm);
}

function outputFlash(id, width, height, movie, flashvars, style)
{
	var objParm = {id:null,width:null,height:null,movie:null,style:null};
	var parm = {flashvars:null};

	objParm.id = id;
	objParm.name = id;
	objParm.width = width;
	objParm.height = height;
	objParm.movie = movie;
	objParm.style = style;
	parm.menu = "false";
	parm.allowScriptAccess = "sameDomain";
	parm.swLiveConnect = "true";
	parm.wmode = "transparent";
	parm.bgcolor = "#FFFFFF";
	parm.scale = "exactfit";
	parm.src = movie;
	parm.flashvars = flashvars;
	return printFlash(objParm, parm, "output");
}

function toggle(obj)
{
	if (obj==null)
		return;

	if (obj.style.display != 'none')
		hide(obj);
	else
		show(obj);
}

function show(obj)
{
	try
	{
		if(obj.style.display == '') return;
		obj.style.display = "";
	}
	catch(e){}
}


function hide(obj)
{
	try
	{
		if(obj.style.display == 'none') return;
		obj.style.display = "none";
	}
	catch(e){}
}

function fx(nNewPadding,el)
{
	try
	{
		while (el.tagName!="TD")
			el = el.parentNode;
		var nPadding = parseInt(el.getAttribute("nPadding"));
		if (!nPadding)
		{
			var nPadding = parseInt(el.currentStyle.paddingTop);
			el.setAttribute("nPadding",nPadding);
		}

		el.style.paddingTop=nPadding+nNewPadding;
	}
	catch(e){}
}

function defx(el)
{
	try
	{
		while (el.tagName!="TD")
			el = el.parentNode;
		var nPadding = parseInt(el.getAttribute("nPadding"));
		el.style.paddingTop = nPadding;
	}
	catch(e){}
}

function addSelectOptionList(object, text, value)
{
	lObjLength=object.length;
	object.options[lObjLength] = new Option(text,value);
}

function strrpos(haystack, needle)
{
	var dat = haystack.split(needle);
	var n = 0;

	for (var i = 0; i < dat.length - 1 ; i++ )
	{
		n = n + dat[i].length;
	}

	return n;
}

function in_array(needle, haystack)
{
	for (var i in haystack)
	{
		if (haystack[i] == needle)
		{
			return true;
		}
	}

	return false;
}

function index_search(needle, haystack)
{
	for (var i in haystack)
	{
		if (haystack[i] == needle)
		{
			return i;
		}
	}

	return -1;
}

function array_search_delete(needle, haystack)
{
	for (var i in haystack)
	{
		if (haystack[i] == needle)
		{
			delete haystack[i];
		}
	}

	return haystack;
}

function attachEvent_(obj, evt, fuc, useCapture)
{	
	if(!useCapture) 
	{
		useCapture=false;
	}

	if(obj.addEventListener) // W3C DOM 지원 브라우저
	{ 
		return obj.addEventListener(evt,fuc,useCapture);
	} 
	else if(obj.attachEvent) // MSDOM 지원 브라우저
	{
		return obj.attachEvent(evt, fuc);
	} 
	else // NN4 나 IE5mac 등 비 호환 브라우저
	{ 
		MyAttachEvent(obj, evt, fuc);
		obj[evt]=function() { MyFireEvent(obj,evt) };
	}
}

function detachEvent_(obj, evt, fuc, useCapture) 
{
	if(!useCapture) 
	{
		useCapture=false;
	}

	if(obj.removeEventListener) 
	{
		return obj.removeEventListener(evt,fuc,useCapture);
	} 
	else if(obj.detachEvent) 
	{
		return obj.detachEvent(evt, fuc);
	} 
	else 
	{
		MyDetachEvent(obj, evt, fuc);
		obj[evt]=function() { MyFireEvent(obj,evt) };
	}
}

// ***** //

function IsValidLoginID(s)
{
	if (s.trim() == "")
	{
		return false;
	}

	if (s.length < 4 || s.length > 16)
	{
		return false;
	}

	var pattern = eval("/[a-zA-Z0-9\-]+/g");

	if (s.replace(pattern,"") != "")
	{
		return false;
	}

	return true;
}

function IsValidPassword(s1, s2)
{
	if (s1 == "")
	{
		return 0; // 값이 없음
	}

	if (s2 == "")
	{
		return 1; // 값이 없음
	}

	if (s1.length < 4 || s1.length > 12)
	{
		return 2; // 길이 제한에 위배됨
	}

	if (s1 != s2)
	{
		return 3; // 값이 일치되지 않음
	}

	return -1; // 정상임
}

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');"
	obj.src=''; 
	return '';
}

function autoNext(formObj, obj, prevFormName, nextFormName, len)
{
	if (nextFormName != "" && obj.value.length >= len && event.keyCode != 8 && event.keyCode != 46)
	{
		formObj[nextFormName].focus();
	}
	else if (prevFormName != "" && obj.value == "" && event.keyCode == 8)
	{
		formObj[prevFormName].focus();
	}
	else if (event.keyCode == 8)
	{
		obj.value = obj.value;
	}
}

function getPosOffset(overlay, offsettype)
{
    var totaloffset=(offsettype=="left")? overlay.offsetLeft : overlay.offsetTop;
    var parentEl=overlay.offsetParent;
    while (parentEl!=null)
	{
        totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
        parentEl=parentEl.offsetParent;
    }
    return totaloffset;
}


