/* vim: set tabstop=4 shiftwidth=4 syntax=javascript: */

var iebase				= (navigator.userAgent.indexOf("MSIE") > -1)  ? true : false;

function openWin(uri, target, width, height, scrollbars, resize, pos)
{
	var xy_pos = "";
	if (pos)
	{
		xy_pos  = ",left=" + (Math.round(screen.width/2) - Math.round(width/2));
		xy_pos += ",top="  + (Math.round(screen.height/3) - Math.round(height/3));
	}
	var remote = window.open(uri, target, "width=" + width +
				",height=" + height +
				",scrollbars=" + scrollbars +
				",resizable=" + resize +
				xy_pos +
				",toolbar=no,location=no" +
				",directories=no,mebar=no");
	remote.focus();
	return remote;
}

function alertWindow (form, title, message)
{
	var url = "./tools/alert.php";

	// ÀÔ·Â ¿À·ù½Ã º¸¿©ÁÙ °æ°íÃ¢
	if (form != false)
	{
		form.focus();
	}
//	alert(title + message);	return;
	var new_message = "";
	for (var i = 0; i < message.length; i++)
	{
		// "\n" -> "<BR />"
		if (message.charAt(i) == "\n") new_message = new_message + "<BR />";
		else if (message.charAt(i) == " ") new_message = new_message + "+";
		else if (message.charAt(i) == "%") new_message = new_message + "%25";
		else if (message.charAt(i) == "&") new_message = new_message + "%26";
		else if (message.charAt(i) == "?") new_message = new_message + "%3F";
		else if (message.charAt(i) == "+") new_message = new_message + "%2B";
		else
		{
			new_message = new_message + message.charAt(i);
		}
	}
	new_message	= (title != '') ? title + " : "  + new_message : new_message;
	var alert_window = openWin(url + "?" + "&title=" + title +
								"&message=" + new_message,
								"", 100, 50, "no", "yes", true);
}

function openWinPOST(post_array, uri, target, width, height, scrollbars, resize, pos)
{
	var win = openWin('', target, width, height, scrollbars, resize, pos);
	win.document.open('text/html', 'replace');
	win.document.charset='euc-kr';
	win.document.writeln('<HTML>');
	win.document.writeln('<HEAD>');
	win.document.writeln('<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=euc-kr" />');
	win.document.writeln('</HEAD>');
	win.document.writeln('<BODY>');
	win.document.writeln('<FORM NAME="auto_post" METHOD="POST" ACTION="' + uri + '">');
	for (key in post_array) win.document.writeln('<INPUT TYPE="HIDDEN" NAME="' + key + '" VALUE="" />');
	win.document.writeln('</FORM>');
	win.document.writeln('</BODY>');
	win.document.writeln('</HTML>');
	win.document.close();
	var form = win.document.auto_post;
	for (key in post_array) form[key].value = post_array[key];
	form.submit();
	return win;
}

function lengthByte (str)
{
	// IE, ±ÛÀÚ¼ö ÃøÁ¤½Ã 2byte ¹®ÀÚ °¨¾È
	var len = str.length;
	for (var i=0; i<str.length; i++)
	{
		if (str.charCodeAt(i) > 255) len++;
	}
	return len;
}

function substringByte (str, byte)
{
	// IE, 2byte ¹®ÀÚ¸¦ °¨¾ÈÇÏ¿© ¹®ÀÚ¿­ ºÎºÐ ÃßÃâ
	var len = 0;
	var new_str = "";
	for (var i=0; i<str.length; i++)
	{
		len++;
		if (str.charCodeAt(i) > 255) len++;
		if (byte < len) return new_str;
		else new_str += str.charAt(i);
	}
	return new_str;
}
function firstFieldFocus (form)
{
	// ÇØ´ç ÀÔ·Â¾ç½ÄÀÇ Ã¹¹øÂ° TEXT Ç×¸ñ ¶Ç´Â PASSWORD Ç×¸ñ¿¡
	// ÀÚµ¿À¸·Î Æ÷Ä¿½º¸¦ ³Ö¾îÁÖ´Â ÇÔ¼ö
	if (typeof(form) == 'undefined') return;
	var count = form.elements.length;
	for (var i=0; i<count; i++)
	{
    	if (form.elements[i].type == "text" || form.elements[i].type == "password")
		{
			if (form.elements[i].value.length == 0) form.elements[i].focus();
			return;
		}
	}
}

function getSelected (select, mode)
{
	// ÇöÀç ¼±ÅÃµÈ SELECT Ç×¸ñÀÇ ¼±ÅÃ°ªÀ» ¾ò´Â ÇÔ¼ö
	if (select == null) return null;
	if (mode == "index") return select.selectedIndex;
	else if (mode == "value") return select.options[select.selectedIndex].value;
	else if (mode == "text") return select.options[select.selectedIndex].text;
}
function getSelectedValue (select) { return getSelected(select, "value"); }
function getSelectedText (select) { return getSelected(select, "text"); }
function getSelectedIndex (select) { return getSelected(select, "index"); }

function setSelected (select, mode, value)
{
	// SELECT Ç×¸ñÁß Æ¯Á¤ OPTION Ç×¸ñÀ» ±âº»ÀûÀ¸·Î ¼±ÅÃ(SELECTED)µÇµµ·Ï ÇÏ´Â ÇÔ¼ö
	if (select == null) return false;
	if (mode == "index")
	{
		select.selectedIndex = value;
		return true;
	}
	else
	{
		for (var i=0; i<select.options.length; i++)
		{
			if ((mode == "value" && select.options[i].value == value) || (mode == "text" && select.options[i].text == value))
			{
				select.selectedIndex = i;
				return true;
			}
		}
	}
	return false
}
function setSelectedByValue (select, value) { return setSelected(select, "value", value); }
function setSelectedByText (select, value) { return setSelected(select, "text", value); }
function setSelectedByIndex (select, value) { return setSelected(select, "index", value); }

function checkboxCheck(form, mode)
{
	for (var i=0; i<form.elements.length; i++)
	{
		var e = form.elements[i];
		if (e.type == "checkbox")
		{
			if (mode == 1) e.checked = true;
			if (mode == 2) e.checked = false;
			if (mode == 3) e.checked = !e.checked;
		}
	}
}
function checkboxAllCheck(form) { checkboxCheck(form, 1); }
function checkboxAllUnCheck(form) { checkboxCheck(form, 2); }
function checkboxReverseCheck(form) { checkboxCheck(form, 3); }

/* select ¿¡¼­ option Ãß°¡ 
 * form		=> document.FORM_NAME.SELECT_NAME
 * getTexts	=> option TEXT
 * getVals	=> option VALUE
*/
function addSelectOption (form, getVals, getTexts)
{
	var len = form.options.length;
    form.options[len]    = new Option(getTexts, getVals);
}
/* select ¿¡¼­ option Á¦°Å
 * form		=> document.FORM_NAME.SELECT_NAME
 * getFlag	=> ÃÖ¼Ò ´ÜÀ§¸¦ »èÁ¦ ÇÒ°ÍÀÎ°¡? °ªÀÌ ÀÖÀ¸¸é ºÒ°¡´É
*/
function removeSelectOption (form, getFlag)
{
	var Lens = form.length;
	if (getFlag)
	{
		if (Lens < 2)
		{
			alertWindow("", "", "ÃÖ¼Ò °ªÀº »èÁ¦ ÇÒ¼ö ¾ø½À´Ï´Ù.");
			return false;
		}
	}
    if (form.selectedIndex >= 0) form.options[form.selectedIndex] = null;
    if (form.options.length > 0) form.selectedIndex = 0;
}
function removeSelectOptionAll (form, minIndex)
{
	for (var i=form.options.length-1; i>=minIndex; i--)
	{
		form.options[i] = null;
	}
}
function removeSelectOptionByValue (form, value)
{
	for (var i=form.options.length-1; i>=0; i--)
	{
		if (form.options[i].value == value)
		{
			form.options[i] = null;
			if (form.options.length > 0) form.selectedIndex = 0;
		}
	}
}

/**
 *	»õÃ¢À¸·Î ½ÇÇà ÇÏ°íÀÚ ÇÒ¶§ ¹Ì¸® »õÃ¢ ¶ç¿ì´Â function 
 *	---------------------------------------------------
 *	@param			windowName		new window name
 *					newWidth		new window width value
 *					newHeight		new window height value
 *	@return			boolean
 *	DATE			2003/12/30
 *	made			CHRIS
 */
function openNewWindow (windowName, newWidth, newHeight)
{
	var win = openWin("", windowName, newWidth, newHeight, "NO", "NO", true);
	if (typeof(win) != "object") return false;
	return true;
}

/**
 *	added input element
 *	-------------------------------------
 *	@param			type		tag type
 *					name		tag name
 *					value		tag value
 *	@return			Object
 *	DATE			2004/01/08
 *	made			CHRIS
 */
function makeInputElement (type, name, value)
{
	if (type == null || name == null) alertWindow("", "", "makeInputElement call error");

	var type = type;
	var name = name;
	var value = value;

	var tmp_object = document.createElement("INPUT");
	tmp_object.setAttribute("type", type);
	tmp_object.setAttribute("name", name);
	tmp_object.setAttribute("id", name);
	tmp_object.setAttribute("value", value);
	return tmp_object;
}

/**
 *	IMAGE CHANGE
 *	-----------------------------------------------
 *	@param			imgCode			img code number
 *					imgName			img name
 *	@return			void
 *	DATE			2004/04/28
 *	made			GARAM
 */
function getImgChange (imgCode, imgName)
{	
	if (imgCode == null || imgName == null) return;
	eval("document." + imgCode + ".src = '/img/" + imgName + ".gif'");
}

/**
 *	Next Element
 *	-----------------------------------------------------
 *	@param			thisNode		target Node
 *	@return			object
 *	DATE			2004/04/28
 *	made			CHRIS
 *	TODO : ÀÎµ¦½º¿Í ½ºÅÜÀ» Áà¼­ ¾ÕµÚ·Î °Ë»ö °¡´É ÇÏ°Ô ¸¸µéÀÚ..^^;;
 */
function getNextElement (thisNode)
{
	if (typeof(thisNode) != "object") return;

	var pNode = thisNode.parentNode;

	for (var i=0; i<pNode.length; i++)
	{
		if (pNode.elements[i].name == thisNode.name && i < (pNode.length - 1))
		{
			return pNode.elements[i+1];
		}
	}
}

/**
 * INPUT BOX BACKGROUND CLEAR AND CHANGE
 * ---------------------------------------------------
 * @param			getName			INPUT NAME
 *					getNextImg		INPUT BACKGROUND
 * @return			void
 * DATE				2004/04/30
 * made				GARAM
 */
function bgClear(getName, getNextImg)
{	
	var urlBackground;

	//if (getNextImg == null) urlBackground = "url('')";
	if (typeof(getNextImg) == 'undefined') urlBackground = "url('')";
	else urlBackground = "url('" + getNextImg + "')";

	document.getElementById(getName).style.backgroundImage = urlBackground;	
}

/**
 *	VALUE °ª¿¡ COMMA(,) Ãß°¡ÇÏ±â
 *	--------------------------------
 *	@param			object			º¯°æÇÒ INPUT TYPE
 *	@return			object			º¯°æµÈ INPUT TYPE
 *	@date			2004/05/13
 *	@made			CHRIS
 */
function addComma (obj)
{
	var input_str	= obj.getAttribute("value");
	if (input_str == "") return;

	var tmp_array	= new Array();
	tmp_array	= input_str.split(",");
	input_str	= tmp_array.join("");
	input_str	= parseInt(input_str);
	input_str	= input_str.toString();

	var sliceChar	= ",";
	var step		= 3;

	var step_increment	= -1;
	var tmp		= "";
	var retval	= "";
	var str_len	= input_str.length;
	for (var i=str_len; i>=0; i--)
	{
		tmp = input_str.charAt(i);
		//if (tmp == sliceChar) continue;
		if (step_increment%step == 0 && step_increment != 0) retval = tmp + sliceChar + retval;
		else retval = tmp + retval;
		step_increment++;
	}

	obj.setAttribute("value", retval);
}

