var admin_path = "/backoffice";
var image_path = "/backoffice/images";

String.prototype.trim = function()
{
	return this.replace(/(^\s*)|(\s*$)/g, "");
}
//-------------------------------------------------------------------------
// FORM CHECK
//------------------------------------------------------------------------- 
function f_CheckForm(form){

	for (i=0;i<form.elements.length;i++){
		obj = form.elements[i];
		if (obj.disabled) continue;
		if (obj.getAttribute("required")!=null){
			if (obj.type=="checkbox" || obj.type=="radio"){
				if (!f_CheckSelect(form,obj,obj.getAttribute("msgR"))) return false;
			}else if(obj.type=="textarea") {
				if (!f_CheckText(obj,obj.value,obj.getAttribute("msgR"))) return false;
			}else {
				if (!f_CheckText(obj,obj.value,obj.getAttribute("msgR"))) return false;
			}
		}

		if (obj.getAttribute("option")!=null && obj.value.length>0){
			if (!f_CheckPatten(obj,obj.getAttribute("option"),obj.getAttribute("msgO"))) return false;
		}

		if (obj.getAttribute("minlen")!=null && obj.value.length>0){
			if (!f_CheckLength(obj,obj.getAttribute("minlen"))) return false;
		}
		if (obj.getAttribute("maxlen")!=null){
			if(!f_CheckMaxLength(obj,obj.getAttribute("maxlen"))) return false;
		}
		if (obj.getAttribute("maxlength")!=null){
			if(!f_CheckMaxLength(obj,obj.getAttribute("maxlength"))) return false;
		}

	}
	return true;
}


//-------------------------------------------------------------------------
// 더블클릭방지
//------------------------------------------------------------------------- 
function f_AvoidDblClick(){
	if(document.getElementById('objAvoidDblClick')){
		document.getElementById('objAvoidDblClick').innerHTML = "------- データ処理中です。 -------";
	}
}

//-------------------------------------------------------------------------
// FORM OBJECT PATTERN
//-------------------------------------------------------------------------
function f_CheckPatten(field, patten, msg){
	var optNum			= /^[0-9]+$/;
	var optEmail			= /^[_a-zA-Z0-9-]+@[._a-zA-Z0-9-]+\.[a-zA-Z]+$/;
	var optUrl			= /^(http\:\/\/)*[.a-zA-Z0-9-]+\.[a-zA-Z]+$/;
	var optEng  		= /^[a-zA-Z]+$/;
	var optKor  		= /[가-힣]/;
	var optText       	= /[가-힣a-zA-Z]/;
	var optKorOnly	    = /^[가-힣]*$/;
	var optId			= /^[a-zA-Z0-9]{1}[a-zA-Z0-9_-]{3,9}$/;
	var optPassword  	= /^[a-zA-Z0-9_-]{4,12}$/;
    var optDate         = /[1-9][0-9]{3}[0-9]{1,2}[0-9]{1,2}/;
    var optImage        = /\.(gif|jpg|jpeg|png)$/;                   //이미지 허용 확장자
    var optCsv          = /\.(csv)$/;                   			 //CSV파일 허용 확장자
    var optSwf          = /\.(swf)$/;                   			 //SWF파일 허용 확장자
    var optFile         = /\.(gif|jpg|jpeg|png|bmp|zip|alz|doc|hwp|xls|csv|ppt|pdf|txt)$/; //파일업로드 허용확장자
  
	patten = eval(patten);
	
	//if(patten != "optFile"){
		if (!patten.test(field.value.toLowerCase())){
			if (!field.getAttribute("label")) field.setAttribute("label", field.name);
			if (!msg) msg = "[" + field.getAttribute("label") + "] 入力形式エラーです。";
			alert(msg);
			field.focus();
			return false;
		}
	//}else{
	//	if (patten.test(field.value == true)){
	//		if (!field.getAttribute("label")) field.setAttribute("label", field.name);
	//		if (!msg) msg = "[" + field.getAttribute("label") + "] 入力形式エラーです。";
	//		alert(msg);
	//		field.focus();
	//		return false;
	//	}
	//}
	return true;
}

//-------------------------------------------------------------------------
// FORM OBJECT LENTH CHECK
//-------------------------------------------------------------------------
function f_CheckLength(field,len){
	text = field.value;
	if (text.trim().length < len){
		alert(len + "字以上入力してください。");
		field.focus();
		return false;
	}
	return true;
}

function f_CheckMaxLength(field,len){
	if (f_CheckByte(field.value) > len){
		if (!field.getAttribute("label")) field.setAttribute("label", field.name);
		alert("["+field.getAttribute("label") + "]は "+ len +"Byte 以下にしてください。");
		return false;
	}
	return true;
}

function f_CheckByte(str)
{
	var length = 0;
	for(var i = 0; i < str.length; i++)
	{
		if(escape(str.charAt(i)).length >= 4)
			length += 2;
		else
			if(escape(str.charAt(i)) != "%0D")
				length++;
	}
	return length;
}


//-------------------------------------------------------------------------
// FORM TEXT OBJECT CHECK
//-------------------------------------------------------------------------
function f_CheckText(field,text,msg){
	text = text.replace("　", "");
	text = text.replace(/\s*/, "");
	if (text==""){
		var caption = field.parentNode.parentNode.firstChild.innerText;
		if (!field.getAttribute("label")) field.setAttribute("label",(caption)?caption:field.name);
		if (!msg) msg = "[" + field.getAttribute("label") + "] 必須入力事項です。";
		alert(msg);
		if (field.tagName!="SELECT") field.value = "";
		if (field.type!="hidden") field.focus();
		return false;
	}
	return true;
}

//-------------------------------------------------------------------------
// FORM TEXT SELECT CHECK
//-------------------------------------------------------------------------
function f_CheckSelect(form,field,msg){
	var ret = false;
	fieldname = eval("form.elements['"+field.name+"']");
	if (fieldname.length){
		for (j=0;j<fieldname.length;j++) if (fieldname[j].checked) ret = true;
	} else {
		if (fieldname.checked) ret = true;
	}
	if (!ret){
		if (!field.getAttribute("label")) field.setAttribute("label", field.name);
		if (!msg) msg = "[" + field.getAttribute("label") + "] 必須選択事項です。";
		alert(msg);
		
		field.focus();
		return false;
	}
	return true;
}

//-------------------------------------------------------------------------
// Required Image Setting
//------------------------------------------------------------------------- 
function f_RequiredImage(){
	for (var i = 0; i < document.forms.length; i++) 
	{

		for (var j = 0; j < document.forms[i].elements.length; j++) 
		{
			// 필수 입력일 경우는 * 배경이미지를 준다.
			if (document.forms[i].elements[j].getAttribute("required") != null) 
			{
				if (document.forms[i].elements[j].type!="checkbox" && document.forms[i].elements[j].type!="radio"){
				
					document.forms[i].elements[j].style.backgroundImage = "url("+image_path+"/required.gif)";
					document.forms[i].elements[j].style.backgroundPosition = "top right";
					document.forms[i].elements[j].style.backgroundRepeat = "no-repeat";
				}
			}
		}
	}
}

//-------------------------------------------------------------------------
// 숫자형식
//------------------------------------------------------------------------- 
function f_OnlyNumber(){
	var e = event.keyCode;
	window.status = e;
	if (e>=48 && e<=57) return;
	if (e>=96 && e<=105) return;
	if (e>=37 && e<=40) return;
	if (e==8 || e==9 || e==13 || e==46) return;
	event.returnValue = false;
}

//-------------------------------------------------------------------------
// 주민등록번호 체크
//------------------------------------------------------------------------- 
function f_CheckJumin(jumin1,jumin2){

	var jumin = jumin1 + jumin2;

	fmt = /^\d{6}[1234]\d{6}$/;
	if (!fmt.test(jumin)) {
		alert('誤った住民登録番号です。'); return false;
	}

	birthYear  = (jumin.charAt(6) <= '2') ? '19' : '20';
	birthYear += jumin.substr(0, 2);
	birthMonth = jumin.substr(2, 2) - 1;
	birthDate  = jumin.substr(4, 2);
	birth      = new Date(birthYear, birthMonth, birthDate);

	if ( birth.getYear()%100 != jumin.substr(0, 2) || birth.getMonth() != birthMonth || birth.getDate() != birthDate) {
		alert('誤った住民登録番号です。');
		return false;
	}

	buf = new Array(13);
	for (i = 0; i < 13; i++) buf[i] = parseInt(jumin.charAt(i));

	multipliers = [2,3,4,5,6,7,8,9,2,3,4,5];
	for (i = 0, sum = 0; i < 12; i++) sum += (buf[i] *= multipliers[i]);

	if ((11 - (sum % 11)) % 10 != buf[12]) {
		alert('誤った住民登録番号です。');
		return false;
	}
	return true;
}




//-------------------------------------------------------------------------
// 날짜형식검색
//------------------------------------------------------------------------- 
function f_SetDate(from_date,to_date, from_obj, to_obj){
	document.getElementById(from_obj).value	= (from_date) ? from_date : "";
	document.getElementById(to_obj).value	= (to_date) ? to_date : "";
}


//-------------------------------------------------------------------------
// 주소복사
//------------------------------------------------------------------------- 
function f_UrlCopy(urlObj){
	window.clipboardData.setData('Text', urlObj); 
    alert( '住所がコピーされました。\n住所ウィンドウにCtrl+Vすればコピーされた住所が張り付きます。' );
}


//-------------------------------------------------------------------------
// 숫자형식 3자리 콤마
//------------------------------------------------------------------------- 
function f_Comma(x){
	var temp = "";
	var x = String(f_UnComma(x));

	num_len = x.length;
	co = 3;
	while (num_len>0){
		num_len = num_len - co;
		if (num_len<0){
			co = num_len + co;
			num_len = 0;
		}
		temp = ","+x.substr(num_len,co)+temp;
	}
	return temp.substr(1);
}

//-------------------------------------------------------------------------
// 숫자형식 3자리 콤마 해제
//------------------------------------------------------------------------- 
function f_UnComma(x){
	var reg = /(,)*/g;
	x = parseInt(String(x).replace(reg,""));
	return (isNaN(x)) ? 0 : x;
}


//-------------------------------------------------------------------------
// 레이어 팝업창 띄우기
// 사용법 : 
//------------------------------------------------------------------------- 
function f_ObjectId(obj){
	return document.getElementById(obj);
}

function f_OpenLayer(obj,mode)
{
	obj = f_ObjectId(obj);
	if (mode) obj.style.display = mode;
	else obj.style.display = (obj.style.display!="none") ? "none" : "block";
}

function f_PopupLayer(s,w,h)
{
	if (!w) w = 600;
	if (!h) h = 400;

	var pixelBorder = 3;
	var titleHeight = 12;
	w += pixelBorder * 2;
	h += pixelBorder * 2 + titleHeight;

	var bodyW = document.body.clientWidth;
	var bodyH = document.body.clientHeight;

	var posX = (bodyW - w) / 2;
	var posY = (bodyH - h) / 2;

	f_HiddenSelectBox('hidden');

	/*** 백그라운드 레이어(백그라운드 회색으로변경) ***/
	var obj = document.createElement("div");
	with (obj.style){
		position = "absolute";
		left = 0;
		top = 0;
		width = "100%";
		height = document.body.scrollHeight;
		backgroundColor = "#000000";
		filter = "Alpha(Opacity=50)";
		opacity = "0.5";
	}
	obj.id = "objPopupLayerBg";
	document.body.appendChild(obj);

	/*** 내용프레임 레이어 ***/
	var obj = document.createElement("div");
	with (obj.style){
		position = "absolute";
		left = posX + document.body.scrollLeft;
		top = posY + document.body.scrollTop;
		width = w;
		height = h;
		backgroundColor = "#FFFFFF";
		border = "3px solid #000000";
		padding = "10 0 0 10";
	}
	obj.id = "objPopupLayer";
	document.body.appendChild(obj);


	/*** 타이틀바 레이어 ***/
	var bottom = document.createElement("div");
	with (bottom.style){
		position = "absolute";
		width = w + pixelBorder * 2;
		height = titleHeight;
		left = 0;
		top = h - titleHeight - pixelBorder * 3;
		padding = "0 0 0 0";
		textAlign = "right";
		backgroundColor = "#000000";
		color = "#ffffff";
		font = "bold 11px tahoma";
	}
	bottom.innerHTML = "<a href='javascript:f_CloseLayer()' onfocus='blur()'><span class=white font8>ウィンドウを閉じる</span></a>&nbsp;&nbsp;&nbsp;&nbsp;";
	obj.appendChild(bottom);

	/*** 아이프레임 ***/
	var ifrm = document.createElement("iframe");
	with (ifrm.style){
		width = w - 6;
		height = h - pixelBorder * 2 - titleHeight - 3;
		//border = "3 solid #000000";
	}
	ifrm.frameBorder = 0;
	ifrm.src = s;
	//ifrm.className = "scroll";
	obj.appendChild(ifrm);
}
function f_CloseLayer()
{
	f_HiddenSelectBox('visible');
	f_ObjectId('objPopupLayer').parentNode.removeChild( f_ObjectId('objPopupLayer') );
	f_ObjectId('objPopupLayerBg').parentNode.removeChild( f_ObjectId('objPopupLayerBg') );
}

function f_HiddenSelectBox(mode)
{
	var obj = document.getElementsByTagName('select');
	for (i=0;i<obj.length;i++){
		obj[i].style.visibility = mode;
	}
}


/*-------------------------------------
 CSS 라운드 테이블
 ------------------------------------*/
function f_TableRound(id,color,bg)
{
	if (!bg) bg = '#ffffff';
	var obj = f_ObjectId(id);
	obj.style.backgroundColor = color;
	with (obj.style){
		margin = "5px 0";
		color = "#4c4c4c";
		font = "8pt dotum";
	}
	obj.innerHTML = "<div style='padding:8px 13px;'><img src='"+image_path+"/icon_helpdesk.gif'><br>" + obj.innerHTML + "</div>";

	f_TableRoundTop(obj,bg,color);
	f_TableRoundBottom(obj,bg,color);
}

function f_TableRoundTop(el,bg,color)
{
	var d=document.createElement("b");
	d.className="rOut";
	d.style.fontSize = 0;
	d.style.backgroundColor=bg;
	for(i=1;i<=4;i++){
		var x=document.createElement("b");
		x.className="r" + i;
		x.style.backgroundColor=color;
		d.appendChild(x);
	}
	el.style.paddingTop=0;
	el.insertBefore(d,el.firstChild);
}

function f_TableRoundBottom(el,bg,color){
	var d=document.createElement("b");
	d.className="rOut";
	d.style.fontSize = 0;
	d.style.backgroundColor=bg;
	for(i=4;i>0;i--){
		var x=document.createElement("b");
		x.className="r" + i;
		x.style.backgroundColor=color;
		d.appendChild(x);
	}
	el.style.paddingBottom=0;
	el.appendChild(d);
}


/*-------------------------------------
 입력폼 테이블
 ------------------------------------*/
function f_TableLoad(){
	var tb = document.getElementsByTagName('table');
	for (i=0;i<tb.length;i++){
		if (tb[i].className=="objTable"){
			with (tb[i]){
				setAttribute('border', 1);
				setAttribute('borderColor', "#EBEBEB");
				//frame = "hsides";
				//rules = "rows";
				//cellPadding = "4";
			}
			with (tb[i].style){
				width = "100%";
				borderCollapse = "collapse";
			}
		}
	}
}


//--------------------------------------------------------------------
//	관리자 LEFT메뉴감추기/보이기
//--------------------------------------------------------------------
function f_HiddenLeft(){
	f_ObjectId('objLeftTopTD1').style.display = (f_ObjectId('objLeftTopTD1').style.display!="none") ? "none" : "block";
	f_ObjectId('objLeftTopTD2').style.display = (f_ObjectId('objLeftTopTD1').style.display=="none") ? "block" : "none";
	
    f_ObjectId('objLeftBottomTD1').style.display = (f_ObjectId('objLeftTopTD1').style.display=="none") ? "none" : "block";
    f_ObjectId('objLeftBottomTD2').style.display = (f_ObjectId('objLeftTopTD1').style.display=="none") ? "block" : "none";
    	
	f_ObjectId('objMenuOn').style.display = (f_ObjectId('objLeftTopTD1').style.display=="none") ? "block" : "none";
}


//--------------------------------------------------------------------
//	우편번호찾기 함수
//--------------------------------------------------------------------
function f_ZipSearch(form, zipcode1, zipcode2, address){
	var condition = "?";
	condition += "form="+form;
	condition += "&zipcode1="+zipcode1;
	condition += "&zipcode2="+zipcode2;
	condition += "&address="+address;
	pop_url = "/kor/common/zipcode.jsp"+condition;
	
	zipSearch = window.open( pop_url , "zip" ,"width=390,height=375,scrollbars=no");
	zipSearch.focus();
}


//--------------------------------------------------------------------
//	INPUT,TEXTAREA 포커스색상
//--------------------------------------------------------------------
function f_AddEvent(obj, evType, fn){
	if (obj.addEventListener) {
		obj.addEventListener(evType, fn, false);
		return true;
	} else if (obj.attachEvent) {
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	} else {
		return false;
	}
}

function f_DelEvent(obj, evType, fn){
	if (obj.removeEventListener) {
		obj.removeEventListener(evType, fn, false);
		return true;
	} else if (obj.detachEvent) {
		var r = obj.detachEvent("on"+evType, fn);
		return r;
	} else {
		return false;
	}
}

function f_GetTargetElement(evt)
{
	if ( evt.srcElement ) return target_Element = evt.srcElement; // 익스
	else return target_Element = evt.target; // 익스외
}



function f_InArray( needle, haystack )
{
	for ( i = 0; i < haystack.length; i++ )
		if ( haystack[i] == needle ) return true;
	return false;
}


function f_InFocus(i) {
	(i).style.border='2px solid #627dce';
}

function f_OutFocus(i) {
	(i).style.border='1px solid #cccccc';
}


//-------------------------------------------------------------------------
// 폼객체 테두리CSS
//------------------------------------------------------------------------- 
function f_FocusLineCss(){
	var obj = document.getElementsByTagName('input');
	var obj_txa = document.getElementsByTagName('textarea');
	for( e =0; e < obj.length; e++ ){
		var type = obj[e].getAttribute('type');
		if( type == 'text' || type == 'password' || type == 'file'){
			var isClsnm = false;
			var clsnm = obj[e].className.toString().split(' ');
			for (c = 0; c < clsnm.length; c++){
				if (f_InArray(clsnm[c], Array('input'))) isClsnm = true;
			}
			if (isClsnm === true){
				f_AddEvent(obj[e], 'focus', function(e) { f_InFocus(f_GetTargetElement(e)); });
				f_AddEvent(obj[e], 'blur', function(e) { f_OutFocus(f_GetTargetElement(e)); });
			}
		}
	}

	for( t =0; t < obj_txa.length; t++ ){
		var clsnm = obj_txa[t].className.toString().split(' ');
		if (f_InArray("input", clsnm)){
			f_AddEvent(obj_txa[t], 'focus', function(e) { f_InFocus(f_GetTargetElement(e)); });
			f_AddEvent(obj_txa[t], 'blur', function(e) { f_OutFocus(f_GetTargetElement(e)); });
		}
	}
}

//-------------------------------------------------------------------------
// 관리자모드 컨텐츠 높이지정
//------------------------------------------------------------------------- 

function f_ContentHeight(){
	document.getElementById('objMainContent').style.height = document.body.scrollHeight - 200;
}
//-------------------------------------------------------------------------
// 이미지 팝업
//------------------------------------------------------------------------- 
function f_PopupImg(img_name){
	popupImg = window.open("/common/popup_img.jsp?img_name="+img_name,'','width=1,height=1');
	popupImg.focus();
}

//--------------------------------------------------------------------
//	파일다운로드
//--------------------------------------------------------------------
function f_FileDown(file_path,file_name,org_file_name){
	location.href = "/common/file_down.jsp?file_path="+file_path+"&file_name="+file_name+"&org_file_name="+org_file_name;
}


//-------------------------------------------------------------------------
// 의료기관 GIS
//------------------------------------------------------------------------- 
function f_GIS(gis_code){
	gis = window.open("http://gis.go.kr/multi/gis/gis.jsp?path=0&lm=JK001&user_lan_id=1&user_lan_suffix=en&li="+gis_code,'',"width=1280,height=732");
	gis.focus();	
}
//-------------------------------------------------------------------------
// 의료기관 GIS
//------------------------------------------------------------------------- 
function f_GIS1(gis_code){
	gis = window.open("http://gis.go.kr/multi/gis/gis.jsp?path=0&lm=AAA008&user_lan_id=1&user_lan_suffix=en&li="+gis_code,'',"width=1280,height=732");
	gis.focus();	
}

//-------------------------------------------------------------------------
// 팝업
//-------------------------------------------------------------------------
function f_Popup(url,w,h,sc)
{
 var position ="width="+w+",height="+h+",left=" + ((screen.width-w)/2) + ",top=" + ((screen.height-h)/2) + ",toolbar=no,directories=no,status=no,menubar=no,scrollbars="+sc+",resizable=no";
 window.open( url, '', position);
}

//-------------------------------------------------------------------------
// 새창으로 이미지 뜨기
//-------------------------------------------------------------------------
function imgResize(img){ 
  img1= new Image(); 
  img1.src=(img); 
  imgControll(img); 
} 

function imgControll(img){ 
  if((img1.width!=0)&&(img1.height!=0)){ 
    viewImage(img); 
  } 
  else{ 
    controller="imgControll('"+img+"')"; 
    intervalID=setTimeout(controller,20); 
  } 
} 

function viewImage(img){ 
	W=img1.width; 
	H=img1.height; 
	O="width="+W+",height="+H; 
	imgWin=window.open("","",O); 
	imgWin.document.write("<html><head><title>[The data is not ready]</title></head>");
	imgWin.document.write("<body topmargin=0 leftmargin=0>");
	imgWin.document.write("<img src="+img+" onclick='self.close()'>");
	imgWin.document.close();
} 
