/*
작성자: 황정철
작성일: 2003-03-10
수정일: 2003-08-06

ver:1.1
bufform을 아예 포함시켰다. 
*/


//팝업창 띄워서 날리기
function popup_send(theForm, page){
	var name = (window.name == 'dms')?'dms2':'dms';
	new_win = window.open('',name, "resizable=no,width=5,height=5,status=no,scrollbars=no");
	theForm.action =  page;
	theForm.target = name;
	theForm.submit();
	new_win.focus();
}
//팝업창 띄워서 날리기-스크롤바 있게.
function popup_send_scroll(theForm, page){
	var name = (window.name == 'dms')?'dms2':'dms';
	new_win = window.open('',name, "resizable=no,width=5,height=5,status=no,scrollbars=yes");
	theForm.action =  page;
	theForm.target = name;
	theForm.submit();
	new_win.focus();
}

//page이동하기.
function go_page(page){
	document.form1.page.value = page;
	document.form1.submit();
}

//필드를 팝업으로 넘겨주는 경우.
// (필드이름1, 필드값1, 필드이름2, 필드값2, .... , 넘길 페이지);
//ex> action_popup('member', 'fadedmem', 'check_member.php');
function action_popup(){
	var field_name, value, i;
	var data1 = "";
	var inter = "'";
	var args = action_popup.arguments;
	var num_args = args.length;
	if (! num_args%2){
		alert("필드 갯수가 짝수개입니다.");
		return ;
	}
	var num_vars = num_args/2;
	var action_page = args[num_args-1];
	for (i=1; i<num_vars; i++){
		field_name = args[2*i-2];
		value = args[2*i-1];
		data1 += "<input type=hidden name="+inter+field_name+inter+" value="+inter+value+inter+">";
	}
	if (document.layers) {
		document.layers.Iurl.document.write(data1);
		document.layers.Iurl.document.close();
	} else {
		if (document.all) {
			Iurl.innerHTML = data1;
		}
	}
	popup_send(document.bufform, action_page);
}


//컨펌 후에 필드를 팝업으로 넘겨주는 경우.
//ex> (필드이름1, 필드값1, 필드이름2, 필드값2, .... , 넘길 페이지);
function conf_action_popup(){
	var field_name, value, i;
	var data1 = "";
	var inter = "'";
	var args = conf_action_popup.arguments;
	var num_args = args.length;
	if (num_args%2){
		alert("필드 갯수가 홀수개입니다.");
		return ;
	}
	if(!confirm(args[num_args-1])){
		return ;
	}
	var num_vars = (num_args-1)/2;
	var action_page = args[num_args-2];
	for (i=1; i<num_vars; i++){
		field_name = args[2*i-2];
		value = args[2*i-1];
		data1 += "<input type=hidden name="+inter+field_name+inter+" value="+inter+value+inter+">";
	}
	if (document.layers) {
		document.layers.Iurl.document.write(data1);
		document.layers.Iurl.document.close();
	} else {
		if (document.all) {
			Iurl.innerHTML = data1;
		}
	}
	popup_send(document.bufform, action_page);
}


//팝업말구, 걍 쏘는거
function action(){
	var field_name, value, i;
	var data1 = "";
	var inter = "'";
	var args = action.arguments;
	var num_args = args.length;
	if (! num_args%2){
		alert("필드 갯수가 짝수개입니다.");
		return ;
	}
	var num_vars = num_args/2;
	var action_page = args[num_args-1];
	for (i=1; i<num_vars; i++){
		field_name = args[2*i-2];
		value = args[2*i-1];
		data1 += "<input type=hidden name="+inter+field_name+inter+" value="+inter+value+inter+">";
	}
	if (document.layers) {
		document.layers.Iurl.document.write(data1);
		document.layers.Iurl.document.close();
	} else {
		if (document.all) {
			Iurl.innerHTML = data1;
		}
	}

	document.bufform.action = action_page;
	document.bufform.target = "_self";
	document.bufform.submit();
}


//팝업말구, 걍 쏘는거
function action2(){
	var field_name, value, i;
	var data1 = "";
	var inter = "'";
	var args = action2.arguments;
	var num_args = args.length;
	if (! num_args%2){
		alert("필드 갯수가 짝수개입니다.");
		return ;
	}
	var num_vars = num_args/2;
	var action_page = args[num_args-1];
	for (i=1; i<num_vars; i++){
		field_name = args[2*i-2];
		value = args[2*i-1];
		data1 += "<input type=hidden name="+inter+field_name+inter+" value="+inter+value+inter+">";
	}
	if (document.layers) {
		document.layers.Iurl.document.write(data1);
		document.layers.Iurl.document.close();
	} else {
		if (document.all) {
			Iurl.innerHTML = data1;
		}
	}

	document.bufform.action = action_page;
	document.bufform.target = "_self";
	document.bufform.submit();
}

//컨펌 후에 액션 거는 거
//ex> (필드이름1, 필드값1, 필드이름2, 필드값2, .... , 넘길 페이지);
function conf_action(){
	var field_name, value, i;
	var data1 = "";
	var inter = "'";
	var args = conf_action.arguments;
	var num_args = args.length;

	if(!confirm(args[num_args-1])){
		return ;
	}

	var num_vars = (num_args-1)/2;
	var action_page = args[num_args-2];
	for (i=1; i<num_vars; i++){
		field_name = args[2*i-2];
		value = args[2*i-1];
		data1 += "<input type=hidden name="+inter+field_name+inter+" value="+inter+value+inter+">";
	}
	
	if (document.layers) {
		document.layers.Iurl.document.write(data1);
		document.layers.Iurl.document.close();
	} else {
		if (document.all) {
			document.all['Iurl'].innerHTML = data1;
		}
	}
		//alert(args[3]);

	document.f.mode.value = args[1];
	document.f.remove_domain.value = args[3];
	document.f.action = action_page;
	document.f.target = "_self";
	document.f.submit();
}

//팝업말구 iframe에 쏘는 거. 팝업을 안띄우고 php를 돌릴 수 있다.
//hdomain.co.kr 에서 회원가입시 아이디 중복 확인을 해보면 안다.
function action_iframe(){
	var field_name, value, i;
	var data1 = "";
	var inter = "'";
	var args = action_iframe.arguments;
	var num_args = args.length;
	if (! num_args%2){
		alert("필드 갯수가 짝수개입니다.");
		return 0;
	}
	var num_vars = num_args/2;
	var action_page = args[num_args-1];
	for (i=1; i<num_vars; i++){
		field_name = args[2*i-2];
		value = args[2*i-1];
		data1 += "<input type=hidden name="+inter+field_name+inter+" value="+inter+value+inter+">";
	}
	if (document.layers) {
		document.layers.Iurl.document.write(data1);
		document.layers.Iurl.document.close();
	} else {
		if (document.all) {
			Iurl.innerHTML = data1;
		}
	}
	document.bufform.action = action_page;
	document.bufform.target = "inner_frame";
	document.bufform.submit();
}

//컨펌 후에 필드를 팝업으로 넘겨주는 경우.
//ex> (필드이름1, 필드값1, 필드이름2, 필드값2, .... , 넘길 페이지);
function conf_action_iframe(){
	var field_name, value, i;
	var data1 = "";
	var inter = "'";
	var args = conf_action_iframe.arguments;
	var num_args = args.length;
	if (num_args%2){
		alert("필드 갯수가 홀수개입니다.");
		return 0;
	}
	if(!confirm(args[num_args-1])){
		return false;
	}
	var num_vars = (num_args-1)/2;
	var action_page = args[num_args-2];
	for (i=1; i<num_vars; i++){
		field_name = args[2*i-2];
		value = args[2*i-1];
		data1 += "<input type=hidden name="+inter+field_name+inter+" value="+inter+value+inter+">";
	}
	if (document.layers) {
		document.layers.Iurl.document.write(data1);
		document.layers.Iurl.document.close();
	} else {
		if (document.all) {
			Iurl.innerHTML = data1;
		}
	}
	document.bufform.action = action_page;
	document.bufform.target = "inner_frame";
	document.bufform.submit();
}

//컨폼 후에 페이지 바꾸기.
function conf_to_page(msg,page){
	var conf = confirm(msg);
	if (conf){
		location.href=page;
	}
}
//str이 array 들어있는지..
function in_array(str, arr){
	var length = arr.length ;
	var i=0;
	for(i=0; i<length; i++){
		if(str == arr[i])
			return true;
	}
	return false;
}
//날짜 형식이 올바른지 체크
function check_date(input_array, focus_element){
	//값이 없이 온거 없는지 확인.
	for(var i=0; i<3;i++){
		if(input_array[i].trim() == ""){
			alert("값을 입력하세요.");
			focus_element.focus();
			return false;
		}
	}
	var start_Year = input_array[0];
	var start_Month = input_array[1];
	var start_Date = input_array[2];
	var start_dt = new Date(start_Year, start_Month-1, start_Date); 
	if (start_Year > -1){
		if (start_Month != start_dt.getMonth()+1){
			alert("날짜 형식이 올바르지 않습니다.");
			focus_element.focus();
			return false;
		}
	}else{
		alert("날짜 형식이 올바르지 않습니다.");
		focus_element.focus();
		return false;
	}
	return true;
}
function check_all(input_form, element_name){
	for(var i=0; i<input_form.elements.length; i++){
		if (input_form.elements[i].name == element_name && input_form.elements[i].type == "checkbox" && !input_form.elements[i].disabled ){
			input_form.elements[i].checked = true;
		}
	}
}
function uncheck_all(input_form, element_name){
	for(var i=0; i<input_form.elements.length; i++){
		if (input_form.elements[i].name == element_name && input_form.elements[i].type == "checkbox" && !input_form.elements[i].disabled){
			input_form.elements[i].checked = false;
		}
	}
}


function number_format(numstr) {//콤마 붙이기
	var numstr = String(numstr);
	var re0 = /(\d+)(\d{3})($|\..*)/;
	if (re0.test(numstr))
		return numstr.replace(
		re0,
			function(str,p1,p2,p3) { return number_format(p1) + "," + p2 + p3; }
		);
	else
		return numstr;
}

function removeNoneNum(input){
	ret = input.replace(/[^0-9]/, "");
	if(ret == input){
		return ret;
	}else{
		return removeNoneNum(ret);
	}
}


function isValidEmailFormat(input) {
	var pattern = /^[_a-zA-Z0-9-\.]+@[\.a-zA-Z0-9-]+\.[a-zA-Z]+$/;
	return pattern.test(input);
}
function isValidTelFormat(input){
	var pattern = /^([0]{1}[0-9]{1,2})-([1-9]{1}[0-9]{2,3})-([0-9]{4})$/;
	return pattern.test(input);
}
function isValidHostFormat(input){
	var pattern = /^[a-zA-Z0-9-\.]+$/;
	return pattern.test(input);
}

function isValidIPFormat(input){
	var pattern = /^[0-9\.]{7,15}$/;
	if(!pattern.test(input)){
		return false;
	}
	var splited = input.split(".");
	if(splited.length != 4){
		return false;
	}
	var buf = 0;
	for (arg in splited){
		buf = parseInt(splited[arg]);
		if (buf < 0 || buf > 255){
			return false;
		}
	}
	return true;
}

//아직 확실치가 않은 게 있는 거 같어서...
//showfail_msg가 있다.. 걔를 true로 바꾸면 왜 삑사린지 알켜준다.
function isValidIPV6Format(arg){	
	var showfail_mst = false;
	var cnt_empty = 0;
	arg = arg.toLowerCase();
	buf = arg.split(":");
	var pattern = /^[0-9a-f]{1,4}$/;
	for(arg in buf){
		if(buf[arg] == ""){
			cnt_empty++;
			continue;
		}
		if(!pattern.test(buf[arg])){
			if(showfail_mst){
				document.write(buf[arg] + "에 이상한글자 또는 자리수");
			}
			return false;
		} 
	}
	if(buf.length > 8){
		if(showfail_mst){
			document.write("8자리이상");
		}
		return false;
	}
	
	if(cnt_empty > 2){
		if(showfail_mst){
			document.write("cnt_empty:"+cnt_empty);
		}
		return false;
	}

	if(cnt_empty == 0){
		if(buf.length ==8){
			return true;
		}else{
			if(showfail_mst){
				document.write("cnt_empty:"+cnt_empty);
			}
			return false;
		}
	}
	
	return true;
}
function error(msg, object){
	alert(msg);
	try{
		object.focus();
	}catch(e){}
}


/// 스트링 객체에 메소드 추가 ///
String.prototype.trim = function(str) { 
	str = this != window ? this : str; 
	return str.replace(/^\s+/g,'').replace(/\s+$/g,''); 
}

// in_array method
String.prototype.in_array = function(array) { 
	str = this != window ? this : str; 
	for(arg in array){
		if(array[arg] == str){
			return true;
		}
	}
	return false;
}
//action 등에서 쓰는 form을 맹근다.
document.write("<table border='0' cellpadding='0' cellspacing='0' style='display:none'><tr height=0><td width=0><form name=bufform method=post><span id=Iurl></span></td></form>");
//iframe 만들기
document.write("<td width=0><iframe name='inner_frame' src='http://yesnic.com/hwang/blank_inner.htm' height=0 width=0></iframe></td></tr></table>");
