var getJSONErrorMsg = "Ã³¸®Áß¿¡ ¿À·ù°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù.\n°ü¸®ÀÚ¿¡ ¹®ÀÇ ÇÏ¼¼¿ä.\nÀÎÅÍ³Ý ÀÍ½ºÇÃ·Î¾î6ÀÎ °æ¿ì 8¹øÀüÀÌ»óÀ¸·Î ¾÷µ¥ÀÌÆ® ÇØ º¸¼¼¿ä.";

function MakeHttpObject() {
	try { return new XMLHttpRequest(); } catch(e) {}
	try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
	try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
	return false;
}

function responseTextAjax(url, param, method, syncType, doit) {
	var objHTTP = MakeHttpObject();
	if (!objHTTP) { return false; }
	if ( syncType == "ASYNC" ) {
		objHTTP.onreadystatechange = function()	{
			if( objHTTP.readyState == 4 ) {
				if ( objHTTP.status == 200 ) {
					doit.doit(objHTTP.responseText);
				} else {
					doit.doit(objHTTP.responseText);
				}
			}
		};
		var syncValue = true;
	} else {
		var syncValue = false;
	}
	switch ( method ) {
	case "POST":
		objHTTP.open("POST", url, syncValue);
		objHTTP.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8');
		objHTTP.setRequestHeader("Content-length", param.length);
		objHTTP.send(param);
	break;
	default:
		param = ( param.length > 0 ) ? "?"+param : param;
		objHTTP.open("GET", url+param, syncValue);
		objHTTP.setRequestHeader('Content-Type', 'text/html;charset=utf-8');
		objHTTP.send(null);
	}
	if ( syncType == "SYNC" ) {
		return doit.doit(objHTTP.responseText);
	} else {
		return true;
	}
}

/*
ex)
function formCheck(form, id) {
	var url = form.action;
	var param = formNameToParam(form);
	var doit = {
		doit:function(x) {
			try {
				x = eval(x);
			} catch (e) {
				alert(getJSONErrorMsg);
				//alert(e);
			}
			switch (x) {
			case "1":
				form["id"].value=x;
				alert("¼º°ø ÇÏ¿´½À´Ï´Ù.");
			break;
			default:
				alert("½ÇÆÐ ÇÏ¿´½À´Ï´Ù.");
			}
		}
	};
	return responseTextAjax(url, param, "GET", "SYNC", doit);
}
*/

//parameter
function formNameToParam(form) {
	var param = "", obj;
	var input = form.getElementsByTagName("input");
	for (var i=0; i<input.length; i++) {
		obj = input[i];
		if (obj.name && obj.value) {
			if (obj.type == "text" || obj.type == "hidden" || obj.type == "password") {
				param += obj.name + "=" + encodeURIComponent(obj.value) + "&";
			} else if ( obj.type == "radio" || obj.type == "checkbox" ) {
				if (obj.checked) {
					param += obj.name + "=" + encodeURIComponent(obj.value) + "&";
				}
			}
		}
	}
	var select = form.getElementsByTagName("select");
	for(var i=0; i<select.length; i++) {
		var obj = select[i];
		if (obj.name && obj.value) {
			param += obj.name + "=" + encodeURIComponent(obj.value) + "&";
		}
	}
	var textArea = form.getElementsByTagName("textarea");
	for(var i=0;i<textArea.length;i++) {
		obj = textArea[i];
		if (obj.name && obj.value) {
			param += obj.name + "=" + encodeURIComponent(obj.value) + "&";
		}
	}
	return param += "1=1";
}

//radio, checkbox
//»ç¿ë¹ý : if ( formRadioChecked(radio) ) {} else {}
function formRadioChecked(radio) {
	var value;
	if ( radio ) {
		if ( radio.length ) {
			for (var i = 0; i < radio.length; i++) {
				if ( radio[i].checked ) {
					value = radio[i].value;
					break;
				}
			}
			return value;
		} else {
			if ( radio.checked ) {
				return radio.value;
			} else {
				return false;
			}
		}
	}
}

//»ç¿ë¹ý : formRadioCheck(form['depth'], 1);
function formRadioCheck(radio, value) {
	if ( radio ) {
		if ( radio.length ) {
			for (var i = 0; i < radio.length; i++) {
				if ( radio[i].value == value ) {
					if ( radio[i].onclick ) { radio[i].onclick(); }
					radio[i].checked = true;
					break;
				}
			}
		} else if ( radio.value == value ) {
			if ( radio.onclick ) { radio.onclick(); }
			radio.checked = true;
		}
	}
}

//»ç¿ë¹ý : formRadioFocus(form['depth']);
function formRadioFocus(radio) {
	if ( radio ) {
		if ( radio.length ) {
			radio[0].focus();
		} else {
			radio.focus();
		}
	}
}
//»ç¿ë¹ý : formRadioDisabled(form['depth'], true);
function formRadioDisabled(radio, value) {
	if ( radio ) {
		if ( radio.length ) {
			for (var i = 0; i < radio.length; i++) {
				radio[i].disabled = value;
			}
		} else {
			radio.disabled = value;
		}
	}
}
//»ç¿ë¹ý : formRadioUnCheck(form['depth']);
function formRadioUnCheck(radio) {
	if ( radio ) {
		if ( radio.length ) {
			for (var i = 0; i < radio.length; i++) {
				radio[i].checked = false;
			}
		} else {
			radio.checked = false;
		}
	}
}
//»ç¿ë¹ý: formRadioDefaultChecked(form[me.name]);
function formRadioDefaultChecked(select) {
	for (var i = 0; i < select.length; i++) {
		if ( select[i].defaultChecked ) {
			select[i].checked = true;
			break;
		}
	}
}
//»ç¿ë¹ý : if ( formCheckboxCount(form['depth[]']) > 3 ) {} else {}
function formCheckboxCount(checkbox) {
	var count = 0;
	if ( checkbox ) {
		if ( checkbox.length ) {
			for (var i = 0; i < checkbox.length; i++) {
				if ( checkbox[i].checked ) {
					count++;
				}
			}
			return count;
		} else {
			if ( checkbox.checked ) {
				return count++;
			} else {
				return count;
			}
		}
	}
}
//»ç¿ë¹ý : formSelectSelected(me, 'abc');
function formSelectSelected(select, value) {
	for (var i = 0; i < select.options.length; i++) {
		if ( select.options[i].value == value ) {
			select.options[i].selected = true;
			break;
		}
	}
}
//»ç¿ë¹ý : if ( !confirm('Çü½ÄÀ» º¯°æ ÇÏ½Ã°Ú½À´Ï±î?') ) { formSelectDefaultSelected(me); return; }
function formSelectDefaultSelected(select) {
	for (var i = 0; i < select.length; i++) {
		if ( select.options[i].defaultSelected ) {
			select.options[i].selected = true;
			break;
		}
	}
}

function checkAll(me,name) {
	var form = me.form;
	if ( form[name] ) {
		if ( form[name].length ) {
			for (var i = 0; i < form[name].length; i++) {
				form[name][i].checked = me.checked;
			}
		} else {
			form[name].checked = me.checked;
		}
	}
}

//¼ýÀÚ È®ÀÎ. »ç¿ë¹ý : <input type="text" maxlength="4" onkeyup="formInputCheckNumber(this)">
function formInputCheckNumber(me) {
	if( isNaN(me.value) ) {
		alert("¼ýÀÚ¸¸ ÀÔ·ÂÇÏ¼¼¿ä");
		me.value = "";
		me.focus();
	}
}

//»ç¿ë¹ý : <a href="javascript:void(formOnsubmit(document.forms['form_id']));">
function formOnsubmit(form) {
	if ( form.onsubmit() ) {
		form.submit();
	}
}

function parentForm(me) {
	while ( me.parentNode ) {
		if ( me.parentNode.tagName.toLowerCase() == "form" ) {
			return me.parentNode;
		}
		me = me.parentNode;
	}
}

//debug
function dbgObj(obj,opt) {
	var innerHTML = "";
	for (var key in obj) {
		if ( key == "innerHTML" || key == "outerHTML" ) { continue; }
		if ( opt == "html" ) {
			try {
				innerHTML += "<br><b>&nbsp;" + key + "</b><br>&nbsp;" + obj[key] + "<p>";
			} catch(e) {
				innerHTML += "<b>&nbsp;" + key + "</b><br>&nbsp;Error<p>";
			}
		} else {
			try {
				innerHTML += key + " : " + obj[key] + "\n";
			} catch(e) {
				innerHTML += key + " : Error";
			}
		}
	}
	return innerHTML;
}
