﻿/************************************************************
공통 자바스크립트
V1.0 BARN.CORP
*************************************************************/

// ============================================================ 
// 작성자       : 박기순

// 작성일       : 2009.06.30
// Description  : 엔터키 눌렀을때 Submit 하지 못하도록 한다.
// ============================================================		
function checkCR(evt) {
//debugger;
var evt = (evt) ? evt : ((event) ? event : null);

var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);

if ((evt.keyCode == 13) && (node.type=="text" || (node.type=="radio") || node.type == "checkbox" || node.type == "password" || node.id == "FpSpread1_view" || node.tagName == "TD" )) 
{return false;}

}

document.onkeypress = checkCR;


// ============================================================
// 문자열의 앞뒤 space를 제거한다.
// ============================================================ 
String.prototype.trim = function trim(){
	var value = this;
	if (value == null) value =  "";
	value = value.replace(/^\s+/,  ""); // remove leading  white spaces
	value = value.replace(/\s+$/g, ""); // remove trailing while spaces
	return value;
}

//-----------------------------------------------------------------------------
// 문자의 좌 공백 제거
// @return : String
//-----------------------------------------------------------------------------
String.prototype.ltrim = function() {
	return this.replace(/(^\s*)/, "");
};

//-----------------------------------------------------------------------------
// 문자의 우 공백 제거
// @return : String
//-----------------------------------------------------------------------------
String.prototype.rtrim = function() {
	return this.replace(/(\s*$)/, "");  
};

//-----------------------------------------------------------------------------
// 왼쪽자리수 채우기

// arguments[0] : 전체자리수

// arguments[1] : 채울 문자(default "0")
// @return : String
//-----------------------------------------------------------------------------
String.prototype.lpad = function() {
	if(this != null && this != ""){
		var cnt    = arguments[0];
		var padStr = arguments[1] ? arguments[1] : "0";
		var digit = "";
		if (this.length < cnt) {
			for(var i = 0; i < cnt - this.length; i++) {
				digit += padStr;
			}
		}
		return digit + this;
	}
	else {
		return this;
	}
};
//-----------------------------------------------------------------------------
// 오른쪽자리수 채우기

// arguments[0] : 전체자리수

// arguments[1] : 채울 문자(default "0")
// @return : String
//-----------------------------------------------------------------------------
String.prototype.rpad = function() {
	if(this != null && this != ""){
		var cnt    = arguments[0];
		var padStr = arguments[1] ? arguments[1] : "0";
		var digit = "";
		if (this.length < cnt) {
			for(var i = 0; i < cnt - this.length; i++) {
				digit += padStr;
			}
		}
		return this + digit;
	}
	else {
		return this;
	}
};

//-----------------------------------------------------------------------------
// 문자열내의 _findValue를 모두 _replaceValue로 바꾸어 준다

// ex : str.replaceAll("xx","bb");
// @return : String
//-----------------------------------------------------------------------------
String.prototype.replaceAll = function(_findValue, _replaceValue) {
	return this.replace(new RegExp(_findValue,"g"), _replaceValue);
};

//-----------------------------------------------------------------------------
// " → &#34;   ' → &#39;로 바꾸어서 반환
// @return : String
//-----------------------------------------------------------------------------
String.prototype.quota = function() {
	return this.replace(/"/g, "&#34;").replace(/'/g, "&#39;");
};


//-----------------------------------------------------------------------------
// 숫자에 3자리마다 , 를 찍어서 반환
// @return : String
//-----------------------------------------------------------------------------
String.prototype.fmtMoney = function() {
	var num = this;
	while((/(-?[0-9]+)([0-9]{3})/).test(num)) {
		num = num.replace((/(-?[0-9]+)([0-9]{3})/), "$1,$2");
	}
	return num;
};
//-----------------------------------------------------------------------------
// 우편번호 형태의 문자열 반환
// @return : String
//-----------------------------------------------------------------------------
String.prototype.fmtZip = function() {
	var val = this.replaceAll('-','');
	if (val.length >= 6) 
		return val.substring(0,3) + '-' + val.substring(3,6) ; 
	else
		return val;
};

//-----------------------------------------------------------------------------
// 사업자 번호 형태의 문자열 반환
// @return : String
//-----------------------------------------------------------------------------
String.prototype.fmtSaupjaNo = function() {
	var val = this.replaceAll('-','');
	if (val.length == 10) 
		return val.substring(0,3) + '-' + val.substring(3,5) + '-' + val.substring(5,10);     
	else
		return val;
};

//-----------------------------------------------------------------------------
// 법인 번호 형태의 문자열 반환
// @return : String
//-----------------------------------------------------------------------------
String.prototype.fmtCorpNo = function() {
	var val = this.replaceAll('-','');
	if (val.length == 13) 
		return val.substring(0,6) + '-' + val.substring(6,13);     
	else
		return val;
};  

//-----------------------------------------------------------------------------
// 주민등록 번호 형태의 문자열 반환
// @return : String
//-----------------------------------------------------------------------------
String.prototype.fmtJuminNo = function() {
	var val = this.replaceAll('-','');
	if (val.length == 13) 
		return val.substring(0,6) + '-' + val.substring(6,13);     
	else
		return val;
};  


//-----------------------------------------------------------------------------
// 숫자만 가져 오기
// @return : String
//-----------------------------------------------------------------------------
String.prototype.num = function() {
	return (this.trim().replace(/[^0-9]/g, ""));
};

//-----------------------------------------------------------------------------
// 정규식에 쓰이는 특수문자를 찾아서 이스케이프 한다.
// @return : String
//-----------------------------------------------------------------------------
String.prototype.meta = function() {
	var str = this;
	var result = ""
	for(var i = 0; i < str.length; i++) {
		if((/([\$\(\)\*\+\.\[\]\?\\\^\{\}\|]{1})/).test(str.charAt(i))) {
			result += str.charAt(i).replace((/([\$\(\)\*\+\.\[\]\?\\\^\{\}\|]{1})/), "\\$1");
		}
		else {
			result += str.charAt(i);
		}
	}
	return result;
}

//-----------------------------------------------------------------------------
// 정규식에 쓰이는 특수문자를 찾아서 이스케이프 한다.
// @return : String
//-----------------------------------------------------------------------------
String.prototype.remove = function(pattern) {
	return (pattern == null) ? this : eval　("this.replace(/[" + pattern.meta() + "]/g, \"\")");
}

//-----------------------------------------------------------------------------
// 문자열의 byte 길이 반환
// @return : int
//-----------------------------------------------------------------------------
String.prototype.byte = function() {
	if(this != null && this != ""){
		var cnt = 0;
		for (var i = 0; i < this.length; i++) {
			if (this.charCodeAt(i) > 127)
				cnt += 2;
			else
				cnt++;
		}
		return cnt;
	}
	else {
		return 0;
	}
};

//-----------------------------------------------------------------------------
// 최소 최대 길이인지 검증

// str.isLength(min [,max])
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isLength = function() {
	var min = arguments[0];
	var max = arguments[1] ? arguments[1] : null;
	var success = true;
	if(this.length < min) {
		success = false;
	}
	if(max && this.length > max) {
		success = false;
	}
	return success;
}

//-----------------------------------------------------------------------------
// 최소 최대 바이트길이인지 검증

// str.isByteLength(min [,max])
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isByteLength = function() {
	var min = arguments[0];
	var max = arguments[1] ? arguments[1] : null;
	var success = true;
	if(this.byte() < min) {
		success = false;
	}
	if(max && this.byte() > max) {
		success = false;
	}
	return success;
}

//-----------------------------------------------------------------------------
// 한글만 허용 - arguments[0] : 추가 허용할 문자들

// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isKor = function() {
	return (/^[ㄱ-힣]+$/).test(this.remove(arguments[0])) ? true : false;
}

//-----------------------------------------------------------------------------
// 영어만 허용 - arguments[0] : 추가 허용할 문자들

// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isEng = function() {
	return (/^[a-zA-Z]+$/).test(this.remove(arguments[0])) ? true : false;
}

//-----------------------------------------------------------------------------
// 숫자로 구성되어 있는지 학인
// arguments[0] : 허용할 문자셋

// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isNum = function() {
	return (/^[0-9]+$/).test(this.remove(arguments[0])) ? true : false;
}

//-----------------------------------------------------------------------------
// 소수점이 있는 숫자체크
// arguments[0] : 허용할 문자셋
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isFloat = function() {
	return (/^\d*(\.?\d*)$/).test(this.remove(arguments[0])) ? true : false;
}

//-----------------------------------------------------------------------------
// 입력값이 원화기준에 맞는지 체크(소수점 없고 숫자)
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isKRW = function() {
	return (/^\d*$/).test(this) ? true : false;
}

//-----------------------------------------------------------------------------
// 입력값이 엔화기준에 맞는지 체크(소수점 3자리까지 허용하고 숫자)
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isJPY = function() {
	return (/^\d*(\.?\d{0,3})$/).test(this) ? true : false;
}

//-----------------------------------------------------------------------------
// 입력값이 USD와 기타 기준에 맞는지 체크(소수점 2자리까지 허용하고 숫자)
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isUSD = function() {
	return (/^\d*(\.?\d{0,2})$/).test(this) ? true : false;
}

//-----------------------------------------------------------------------------
// 주민번호 체크 - arguments[0] : 주민번호 구분자

// XXXXXX-XXXXXXX
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isJumin = function() {
	var arg = arguments[0] ? arguments[0] : "";
	var jumin = eval　("this.match(/[0-9]{2}[01]{1}[0-9]{1}[0123]{1}[0-9]{1}" + arg + "[1234]{1}[0-9]{6}$/)");
	if(jumin == null) {
		return false;
	}
	else {
		jumin = jumin.toString().num().toString();
	}

	// 생년월일 체크
	var birthYY = (parseInt(jumin.charAt(6)) == (1 ||2)) ? "19" : "20";
	birthYY += jumin.substr(0, 2);
	var birthMM = jumin.substr(2, 2) - 1;
	var birthDD = jumin.substr(4, 2);
	var birthDay = new Date(birthYY, birthMM, birthDD);
	if(birthDay.getYear() % 100 != jumin.substr(0,2) || birthDay.getMonth() != birthMM || birthDay.getDate() != birthDD) {
		return false;
	}      

	var sum = 0;
	var num = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5]
	var last = parseInt(jumin.charAt(12));
	for(var i = 0; i < 12; i++) {
		sum += parseInt(jumin.charAt(i)) * num[i];
	}
	return ((11 - sum % 11) % 10 == last) ? true : false;
}

//-----------------------------------------------------------------------------
// 외국인 등록번호 체크 - arguments[0] : 등록번호 구분자

// XXXXXX-XXXXXXX
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isForeign = function() {
	var arg = arguments[0] ? arguments[0] : "";
	var jumin = eval　("this.match(/[0-9]{2}[01]{1}[0-9]{1}[0123]{1}[0-9]{1}" + arg + "[5678]{1}[0-9]{1}[02468]{1}[0-9]{2}[6789]{1}[0-9]{1}$/)");
	if(jumin == null) {
		return false;
	}
	else {		
		jumin = jumin.toString().num().toString();
	}
	// 생년월일 체크
	var birthYY = (parseInt(jumin.charAt(6)) == (5 || 6)) ? "19" : "20";
	birthYY += jumin.substr(0, 2);
	var birthMM = jumin.substr(2, 2) - 1;
	var birthDD = jumin.substr(4, 2);
	var birthDay = new Date(birthYY, birthMM, birthDD);
	if(birthDay.getYear() % 100 != jumin.substr(0,2) || birthDay.getMonth() != birthMM || birthDay.getDate() != birthDD) {
		return false;
	}
	if((parseInt(jumin.charAt(7)) * 10 + parseInt(jumin.charAt(8))) % 2 != 0) {
		return false;
	}
	var sum = 0;
	var num = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5]
	var last = parseInt(jumin.charAt(12));
	for(var i = 0; i < 12; i++) {
		sum += parseInt(jumin.charAt(i)) * num[i];
	}
	return (((11 - sum % 11) % 10) + 2 == last) ? true : false;
}  

//-----------------------------------------------------------------------------
// 사업자번호 체크 - arguments[0] : 등록번호 구분자

// XX-XXX-XXXXX
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isBiznum = function() {
	var arg = arguments[0] ? arguments[0] : "";
	var biznum = eval　("this.match(/[0-9]{3}" + arg + "[0-9]{2}" + arg + "[0-9]{5}$/)");
	if(biznum == null) {
		return false;
	}
	else {
		biznum = biznum.toString().num().toString();
	}

	var sum = parseInt(biznum.charAt(0));
	var num = [0, 3, 7, 1, 3, 7, 1, 3];
	for(var i = 1; i < 8; i++) sum += (parseInt(biznum.charAt(i)) * num[i]) % 10;
	sum += Math.floor(parseInt(parseInt(biznum.charAt(8))) * 5 / 10);
	sum += (parseInt(biznum.charAt(8)) * 5) % 10 + parseInt(biznum.charAt(9));
	return (sum % 10 == 0) ? true : false;
}

//-----------------------------------------------------------------------------
// 법인 등록번호 체크 - arguments[0] : 등록번호 구분자

// XXXXXX-XXXXXXX
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isCorpnum = function() {
	var arg = arguments[0] ? arguments[0] : "";
	var corpnum = eval　("this.match(/[0-9]{6}" + arg + "[0-9]{7}$/)");
	if(corpnum == null) {
		return false;
	}
	else {
		corpnum = corpnum.toString().num().toString();
	}
	var sum = 0;
	var num = [1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2]
	var last = parseInt(corpnum.charAt(12));
	for(var i = 0; i < 12; i++) {
		sum += parseInt(corpnum.charAt(i)) * num[i];
	}
	return ((10 - sum % 10) % 10 == last) ? true : false;
}

//-----------------------------------------------------------------------------
// 이메일의 유효성을 체크
// @return : boolean
// 사용방법 : <input type="text" onblur="if(this.value!='' && !this.value.isEmail()) {alert('잘못된이메일');this.focus();}">
//-----------------------------------------------------------------------------
String.prototype.isEmail = function() {
	return (/\w+([-+.]\w+)*@\w+([-.]\w+)*\.[a-zA-Z]{2,4}$/).test(this);
}

//-----------------------------------------------------------------------------
// 전화번호 체크 - arguments[0] : 전화번호 구분자

// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isPhone = function() {
	var arg = arguments[0] ? arguments[0] : "";
	return eval　("(/(02|0[3-9]{1}[0-9]{1})" + arg + "[1-9]{1}[0-9]{2,3}" + arg + "[0-9]{4}$/).test(this)");
}

//-----------------------------------------------------------------------------
// 핸드폰번호 체크 - arguments[0] : 핸드폰 구분자

// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isMobile = function() {
	var arg = arguments[0] ? arguments[0] : "";
	return eval　("(/01[016789]" + arg + "[1-9]{1}[0-9]{2,3}" + arg + "[0-9]{4}$/).test(this)");
}

//-----------------------------------------------------------------------------
// 공백이나 널인지 확인
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isBlank = function() {
	var str = this.trim();
	for(var i = 0; i < str.length; i++) {
		if ((str.charAt(i) != "\t") && (str.charAt(i) != "\n") && (str.charAt(i)!="\r")) {
			return false;
		}
	}
	return true;
}

//-----------------------------------------------------------------------------
// 특수문자가 포함되었는지 체크
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isMeta = function() {
	var str = this;
	var result = ""
	for(var i = 0; i < str.length; i++) {
		if((/([\$\(\)\*\+\.\[\]\?\\\^\{\}\|]{1})/).test(str.charAt(i))) {
			return false;
		}
		
	}
	return true;

}

//-----------------------------------------------------------------------------
// Injection 공격 문자 체크
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isInject = function() {
	if((/\-{2,}/).test(this)) {
		return false;
	}
	return true;

}

//-----------------------------------------------------------------------------
// 소수점 포함 여부체크
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isDecimal = function() {
	return (/[0-9]\.[0-9]/g).test(this) ? true : false;
}

//-----------------------------------------------------------------------------
// 소수점 . 하나이상포함 여부체크
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isCheckDecimal = function() {
	return (/\.+/g).test(this) ? true : false;
}


//-----------------------------------------------------------------------------
// 날짜형식 유효성검사
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isDate = function() {
    
    //길이체크
	if( !(this.length==10 || this.length==8) ){ return false;}

    //숫자만인지
    if( (/^[0-9]+$/).test(this.replace(/\-|\/|\./g,"")) == false ) return false;
    
	var tmp = this.replace(/\-|\/|\./g,"");

	//주의 : getMonth() => 0~11
	var iYY = tmp.substr(0,4);
	var iMM = tmp.substr(4,2)-1;
	var iDD = tmp.substr(6,2);

	var vDate = new Date(iYY,iMM,iDD);

	if( vDate.getFullYear() != iYY || vDate.getMonth() != iMM || vDate.getDate() != iDD ){
		return false;
	}
	return true;
}

//-----------------------------------------------------------------------------
// 두날짜의 기간 비교 
// arguments[0] : from date,  ex)2009.11.01 or 20091101
// arguments[1] : to date,    ex)2009.11.30 or 20091130
// arguments[2] : 비교 날짜수, ex) 30, 60, 90
// @return : boolean
//-----------------------------------------------------------------------------
function fnDateDiff(from, to, diff) {
    
	from = from.replace(/\-|\/|\./g,"");
	to = to.replace(/\-|\/|\./g,"");
	
	//주의 : getMonth() => 0~11
	var fYY = from.substr(0,4);
	var fMM = from.substr(4,2)-1;
	var fDD = from.substr(6,2);
	
	var tYY = to.substr(0,4);
	var tMM = to.substr(4,2)-1;
	var tDD = to.substr(6,2);

	var fromDate = new Date(fYY,fMM,fDD);
	var toDate = new Date(tYY,tMM,tDD);
    
    //alert( Math.ceil((toDate - fromDate) / 1000 / 24 / 60 / 60) ); 
    
    var compare = Math.ceil((toDate - fromDate) / 1000 / 24 / 60 / 60);
    
    //초과시 False
    if (parseInt(compare) > diff) {
        return false;
    }


	return true;
}

//-----------------------------------------------------------------------------
// Cross-Site Script 보안 적용 스크립트
// < → &lt;	> → &gt; 로 바꾸어서 반환
// @return : String 예) name.value.quota().xss();
//-----------------------------------------------------------------------------
String.prototype.xss = function() {
	return this.replace(/</g, "&lt;").replace(/>/g, "&gt;");
};

//----------------------------------------------------------
//document.getElementById();
//----------------------------------------------------------
function id(name){
	return document.getElementById(name);
}

//----------------------------------------------------------
//document.getElementsByTagName();
//----------------------------------------------------------
function tag(name, elem){
	return (elem || document).getElementsByTagName(name);
}

//---------------------------------
//자식노드의 Text값 읽기
//---------------------------------
function text(elem){
	var t = "";

	elem = elem.childNodes || elem;

	//모든자식노드에 대해 반복
	for (var j=0; j < elem.length; j++)
	{
		t += elem[j].nodeType != 1 ? 
			elem[j].nodeValue : text(elem[j].childNodes);
	}

	return t;

}

//-----------------------------------------------------------------------------
// 엔터키(enter)클릭 시 다음 필드로 이동
// arguments[0] : String - object Name
// @return : 
//-----------------------------------------------------------------------------
function nextFocus(objName){
	if(event.keyCode==13){
		document.getElementById(objName).focus();
	}
}

//-----------------------------------------------------------------------------
// round 함수 ( val = 값, precision= 소수점 자릿수) 
// arguments[0] : double 값

// arguments[1] : int 소수점 자리수

// @return : Double
//-----------------------------------------------------------------------------
function round(val,precision) { 
	if(val != null && val != ""){
		val = val * Math.pow(10,precision); 
		val = Math.round(val); 
		return val/Math.pow(10,precision); 
	}
	else{
		return val;
	}
} 

// ============================================================ 
// 작성자       : 김창태
// 작성일       : 
// Description  : 입력방지
// arguments[0] : event
// ============================================================	
function fnRonly(e)
{
	(e||event).returnValue = false;
    
}

// ============================================================ 
// 작성자       : 박기순
// 작성일       : 2009.06.25
// Description  : 숫자만 입력가능하게
// arguments[0] : 허용문자
// ============================================================			
function onlyNumber()
{
	var ex = arguments[0]?arguments[0]:"";
	var exCode = 0;
	if(ex != "")
	{
		exCode = ex.charCodeAt(0);
	}
	
	if((event.keyCode<48)||(event.keyCode>57)) {
	    if ( event.keyCode == 13 || event.keyCode == exCode ) {
			event.returnValue=true;
		}
		else{
	        event.returnValue=false;
	    }
	    return;
	}
}

// ============================================================ 
// 작성자       : 김창태
// 작성일       : 2009.06.15
// Description  : Modal팝업 띄우기 
// arguments[0] : window 명

// arguments[1] : Array Arguments
// ============================================================	 	
function fnWinModalOpen(winName, objArgs) { 
	var theURL = "";
	var features = "";
	var top = "";
	var left = "";
	var position = "";
	var heightAdd = 0;
	
    var NavigatorApplicationVersion = navigator.appVersion;
    var bv = NavigatorApplicationVersion.indexOf('MSIE 6.0');
    if(bv != -1)
    {
        heightAdd = 45;
    }
    else
    {
        heightAdd = 0;
    }	
	
	
	if(winName != "") {
		switch (winName.toUpperCase()) {
			//자재팝업
			case "WIN_MATERIAL" :
				theURL = "/pop/WPOP010.aspx";
	            top = screen.height/2 - 600/2 - 35;
	            left = screen.width/2 - 610/2;				
	            position = 'dialogTop='+top +';dialogLeft='+left;
	            heightAdd = 600 + heightAdd;
				features = "dialogWidth=610px;dialogHeight="+heightAdd+"px;scroll=no;resizable=no;status=no;"+position;
				break;
				/*
				Return Parameter
				arrRet[0] = new Array("자재");
				arrRet[1] = 코드
				arrRet[2] = 명칭
				예)사용방법 : 공통자바스크립트호출 -> getArrVal(arrTmp, "자재", 1) -> Return : 코드 
				              공통자바스크립트호출 -> getArrVal(arrTmp, "자재", 2) -> Return : 명 
				*/
				
			//고객팝업
			case "WIN_CUSTOMER" :
				theURL = "/pop/WPOP020.aspx";
	            top = screen.height/2 - 600/2 - 35;
	            left = screen.width/2 - 610/2;				
	            position = 'dialogTop='+top +';dialogLeft='+left;
	            heightAdd = 600 + heightAdd;				
				features = "dialogWidth=610px;dialogHeight="+heightAdd+"px;scroll=no;resizable=no;status=no;"+position;
				break;
				/*
				Return Parameter
				arrRet[0] = new Array("고객");
				arrRet[1] = 코드
				arrRet[2] = 명칭
				예)사용방법 : 공통자바스크립트호출 -> getArrVal(arrTmp, "고객", 1) -> Return : 고객코드 
				              공통자바스크립트호출 -> getArrVal(arrTmp, "고객", 2) -> Return : 고객명 
				*/
				
				
			//우편번호
			case "WIN_POST" :
				theURL = "/pop/WPOP040.aspx";
	            top = screen.height/2 - 600/2 - 35;
	            left = screen.width/2 - 610/2;				
	            position = 'dialogTop='+top +';dialogLeft='+left;	
	            heightAdd = 600 + heightAdd;			
				features = "dialogWidth=610px;dialogHeight="+heightAdd+"px;scroll=no;resizable=no;status=no;"+position;
				break;
				/*
				Return Parameter
				arrRet[0] = new Array("회사", "성명", "직급", "사번", "소속부서", "회원코드");
				arrRet[1] = 코드
				arrRet[2] = 명칭
				예)사용방법 : 공통자바스크립트호출 -> getArrVal(arrTmp, "회사", 1) -> Return : 회사코드 
				              공통자바스크립트호출 -> getArrVal(arrTmp, "회사", 2) -> Return : 회사명 
				*/				
				
			//플랜트팝업
			case "WIN_PLANT" :
				theURL = "/pop/WPOP050.aspx";
	            top = screen.height/2 - 600/2 - 35;
	            left = screen.width/2 - 610/2;				
	            position = 'dialogTop='+top +';dialogLeft='+left;
	            heightAdd = 600 + heightAdd;	            				
				features = "dialogWidth=610px;dialogHeight="+heightAdd+"px;scroll=no;resizable=no;status=no;"+position;
				break;
				/*
				Return Parameter
				arrRet[0] = new Array("플랜트");
				arrRet[1] = 코드
				arrRet[2] = 명칭
				예)사용방법 : 공통자바스크립트호출 -> getArrVal(arrTmp, "플랜트", 1) -> Return : 코드 
				              공통자바스크립트호출 -> getArrVal(arrTmp, "플랜트", 2) -> Return : 명 
				*/
				
			//플랜트팝업 - 재고조회용
			case "WIN_PLANT2" :
				theURL = "/pop/WPOP220.aspx";
	            top = screen.height/2 - 600/2 - 35;
	            left = screen.width/2 - 610/2;				
	            position = 'dialogTop='+top +';dialogLeft='+left;
	            heightAdd = 600 + heightAdd;	            				
				features = "dialogWidth=610px;dialogHeight="+heightAdd+"px;scroll=no;resizable=no;status=no;"+position;
				break;
				/*
				Return Parameter
				arrRet[0] = new Array("플랜트");
				arrRet[1] = 코드
				arrRet[2] = 명칭
				예)사용방법 : 공통자바스크립트호출 -> getArrVal(arrTmp, "플랜트", 1) -> Return : 코드 
				              공통자바스크립트호출 -> getArrVal(arrTmp, "플랜트", 2) -> Return : 명 
				*/

			//저장위치팝업
			case "WIN_PLACE" :
				theURL = "/pop/WPOP060.aspx";
	            top = screen.height/2 - 600/2 - 35;
	            left = screen.width/2 - 610/2;				
	            position = 'dialogTop='+top +';dialogLeft='+left;
	            heightAdd = 600 + heightAdd;	            				
				features = "dialogWidth=610px;dialogHeight="+heightAdd+"px;scroll=no;resizable=no;status=no;"+position;
				break;
				/*
				Return Parameter
				arrRet[0] = new Array("저장위치");
				arrRet[1] = 코드
				arrRet[2] = 명칭
				예)사용방법 : 공통자바스크립트호출 -> getArrVal(arrTmp, "저장위치", 1) -> Return : 코드 
				              공통자바스크립트호출 -> getArrVal(arrTmp, "저장위치", 2) -> Return : 명 
				*/

			//납품처조회팝업
			case "WIN_SUPPLY" :
			    theURL = "/pop/WPOP070.aspx";
	            top = screen.height/2 - 600/2 - 35;
	            left = screen.width/2 - 610/2;				
	            position = 'dialogTop='+top +';dialogLeft='+left;
	            heightAdd = 600 + heightAdd;	            			    
			    features = "dialogWidth=610px;dialogHeight="+heightAdd+"px;scroll=no;resizable=no;status=no;"+position;
			    break;
			    /*
				Return Parameter
				arrRet[0] = new Array("고객");
				arrRet[1] = 코드
				arrRet[2] = 명칭
				예)사용방법 : 공통자바스크립트호출 -> getArrVal(arrTmp, "고객", 1) -> Return : 코드 
				              공통자바스크립트호출 -> getArrVal(arrTmp, "고객", 2) -> Return : 명 
				*/
								
			//사용자팝업
			case "WIN_USER" :
				theURL = "/pop/WPOP080.aspx";
	            top = screen.height/2 - 600/2 - 35;
	            left = screen.width/2 - 490/2;				
	            position = 'dialogTop='+top +';dialogLeft='+left;
	            heightAdd = 600 + heightAdd;
				features = "dialogWidth=480px;dialogHeight="+heightAdd+"px;scroll=no;resizable=no;status=no;"+position;
				break;
				/*
				Return Parameter
				arrRet[0] = new Array("회사", "성명", "직급", "사번", "소속부서", "회원코드");
				arrRet[1] = 코드
				arrRet[2] = 명칭
				예)사용방법 : 공통자바스크립트호출 -> getArrVal(arrTmp, "회사", 1) -> Return : 회사코드 
				              공통자바스크립트호출 -> getArrVal(arrTmp, "회사", 2) -> Return : 회사명 
				*/	
				
			//코드팝업
			case "WIN_CODE" :
				theURL = "/pop/WPOP090.aspx";
	            top = screen.height/2 - 600/2 - 35;
	            left = screen.width/2 - 610/2;				
	            position = 'dialogTop='+top +';dialogLeft='+left;
	            heightAdd = 600 + heightAdd;	            				
				features = "dialogWidth=600px;dialogHeight="+heightAdd+"px;scroll=no;resizable=no;status=no;"+position;
				break;
				/*
				Return Parameter
				arrRet[0] = new Array("회사", "성명", "직급", "사번", "소속부서", "회원코드");
				arrRet[1] = 코드
				arrRet[2] = 명칭
				예)사용방법 : 공통자바스크립트호출 -> getArrVal(arrTmp, "회사", 1) -> Return : 회사코드 
				              공통자바스크립트호출 -> getArrVal(arrTmp, "회사", 2) -> Return : 회사명 
				*/				
			
			//납품처등록팝업
			case "WIN_CREATE_SHIP" :
			    theURL = "/pop/WPOP100.aspx";
	            top = screen.height/2 - 600/2 - 35;
	            left = screen.width/2 - 350/2;				
	            position = 'dialogTop='+top +';dialogLeft='+left;
	            heightAdd = 350 + heightAdd;	            			    
			    features = "dialogWidth=600px;dialogHeight="+heightAdd+"px;scroll=no;resizable=no;status=no;"+position;
			    break;
			    /*
				Return Parameter
				arrRet[0] = new Array("회사", "성명", "직급", "사번", "소속부서", "회원코드");
				arrRet[1] = 코드
				arrRet[2] = 명칭
				예)사용방법 : 공통자바스크립트호출 -> getArrVal(arrTmp, "회사", 1) -> Return : 회사코드 
				              공통자바스크립트호출 -> getArrVal(arrTmp, "회사", 2) -> Return : 회사명 
				*/
				
			//제품군조회팝업
			case "WIN_GOODS_PART" :
				theURL = "/pop/WPOP110.aspx";
	            top = screen.height/2 - 600/2 - 35;
	            left = screen.width/2 - 610/2;				
	            position = 'dialogTop='+top +';dialogLeft='+left;
	            heightAdd = 600 + heightAdd;	            				
				features = "dialogWidth=610px;dialogHeight="+heightAdd+"px;scroll=no;resizable=no;status=no;"+position;
				break;
				/*
				Return Parameter
				arrRet[0] = new Array("제품군");
				arrRet[1] = 코드
				arrRet[2] = 명칭
				예)사용방법 : 공통자바스크립트호출 -> getArrVal(arrTmp, "제품군", 1) -> Return : 코드 
				              공통자바스크립트호출 -> getArrVal(arrTmp, "제품군", 2) -> Return : 명 
				*/
					
            //납품처 조회팝업
			case "WIN_SUPPLIER" :
			    theURL = "/pop/WPOP070.aspx";
	            top = screen.height/2 - 600/2 - 35;
	            left = screen.width/2 - 610/2;				
	            position = 'dialogTop='+top +';dialogLeft='+left;
	            heightAdd = 600 + heightAdd;	            			    
			    features = "dialogWidth=600px;dialogHeight="+heightAdd+"px;scroll=no;resizable=no;status=no;"+position;
			    break;
			    /*
				Return Parameter
				arrRet[0] = new Array("제품군");
				arrRet[1] = 코드
				arrRet[2] = 명칭
				예)사용방법 : 공통자바스크립트호출 -> getArrVal(arrTmp, "제품군", 1) -> Return : 코드 
				              공통자바스크립트호출 -> getArrVal(arrTmp, "제품군", 2) -> Return : 명 
				*/
				
            //특성내역 조회팝업
            case "WIN_ATNAM" :
                theURL = "/pop/WPOP150.aspx";
	            top = screen.height/2 - 600/2 - 35;
	            left = screen.width/2 - 610/2;				
	            position = 'dialogTop='+top +';dialogLeft='+left;
	            heightAdd = 600 + heightAdd;	                            
                features = "dialogWidth=610px;dialogHeight="+heightAdd+"px;scroll=no;resizable=no;status=no;"+position;
                break;
                /*
				Return Parameter
				arrRet[0] = new Array("특성");
				arrRet[1] = 코드
				arrRet[2] = 명칭
				예)사용방법 : 공통자바스크립트호출 -> getArrVal(arrTmp, "특성", 1) -> Return : 코드 
				              공통자바스크립트호출 -> getArrVal(arrTmp, "특성", 2) -> Return : 명 
				*/
				
			//영업팀 조회팝업
			case "WIN_SALESTEAM" :
			    theURL = "/pop/WPOP160.aspx";
	            top = screen.height/2 - 600/2 - 35;
	            left = screen.width/2 - 610/2;				
	            position = 'dialogTop='+top +';dialogLeft='+left;
	            heightAdd = 600 + heightAdd;	            			    
                features = "dialogWidth=610px;dialogHeight="+heightAdd+"px;scroll=no;resizable=no;status=no;"+position;
                break;
                /*
				Return Parameter
				arrRet[0] = new Array("영업팀");
				arrRet[1] = 코드
				arrRet[2] = 명칭
				예)사용방법 : 공통자바스크립트호출 -> getArrVal(arrTmp, "특성", 1) -> Return : 코드 
				              공통자바스크립트호출 -> getArrVal(arrTmp, "특성", 2) -> Return : 명 
				*/
				
			//공통코드 조회팝업
			case "WIN_COMMONCODE" :
			    theURL = "/pop/WPOP180.aspx";
	            top = screen.height/2 - 600/2 - 35;
	            left = screen.width/2 - 610/2;				
	            position = 'dialogTop='+top +';dialogLeft='+left;
	            heightAdd = 600 + heightAdd;	            			    
                features = "dialogWidth=610px;dialogHeight="+heightAdd+"px;scroll=no;resizable=no;status=no;"+position;
                break;
                /*
				Return Parameter
				arrRet[0] = new Array("코드");
				arrRet[1] = 코드
				arrRet[2] = 명칭
				예)사용방법 : 공통자바스크립트호출 -> getArrVal(arrTmp, "코드", 1) -> Return : 코드 
				              공통자바스크립트호출 -> getArrVal(arrTmp, "코드", 2) -> Return : 명 
				*/
		    
		    //영업사원(MEMBER) 조회팝업
			case "WIN_MEMBER" :
			    theURL = "/pop/WPOP170.aspx";
	            top = screen.height/2 - 600/2 - 35;
	            left = screen.width/2 - 610/2;				
	            position = 'dialogTop='+top +';dialogLeft='+left;
	            heightAdd = 600 + heightAdd;	            			    
				features = "dialogWidth=610px;dialogHeight="+heightAdd+"px;scroll=no;resizable=no;status=no;"+position;
				break;
				/*
				Return Parameter
				arrRet[0] = new Array("사원");
				arrRet[1] = 코드
				arrRet[2] = 명칭
				예)사용방법 : 공통자바스크립트호출 -> getArrVal(arrTmp, "사원", 1) -> Return : 사번
				              공통자바스크립트호출 -> getArrVal(arrTmp, "사원", 2) -> Return : 성명 
				*/
				
			//기사용 자재 검색팝업
			case "WIN_RETRIEVE_MTRL" :
			    theURL = "/pop/WPOP190.aspx";
	            top = screen.height/2 - 600/2 - 35;
	            left = screen.width/2 - 760/2;				
	            position = 'dialogTop='+top +';dialogLeft='+left;	
	            heightAdd = 600 + heightAdd;	            		    
			    features = "dialogWidth=760px;dialogHeight="+heightAdd+"px;scroll=no;resizable=no;status=no;"+position;
			    break;
			    /*
				Return Parameter
				arrRet[][0] = new Array("자재", "플랜트");
				arrRet[][1] = 코드
				arrRet[][2] = 명칭
				예)사용방법 : 공통자바스크립트호출 -> getArrVal(arrTmp[], "사원", 1) -> Return : 사번
				              공통자바스크립트호출 -> getArrVal(arrTmp[], "사원", 2) -> Return : 성명 
				*/
				
			//특성별 자재 검색팝업
			case "WIN_SPEC_MTRL" :
			    theURL = "/pop/WPOP140.aspx";
	            top = screen.height/2 - 600/2 - 35;
	            left = screen.width/2 - 760/2;				
	            position = 'dialogTop='+top +';dialogLeft='+left;
	            heightAdd = 600 + heightAdd;	            			    
			    features = "dialogWidth=760px;dialogHeight="+heightAdd+"px;scroll=no;resizable=no;status=no;"+position;
			    break;
			    /*
				Return Parameter
				arrRet[][0] = new Array("자재", "플랜트");
				arrRet[][1] = 코드
				arrRet[][2] = 명칭
				예)사용방법 : 공통자바스크립트호출 -> getArrVal(arrTmp[], "사원", 1) -> Return : 사번
				              공통자바스크립트호출 -> getArrVal(arrTmp[], "사원", 2) -> Return : 성명 
				*/
				
            //납품처 검색팝업2
			case "WIN_SUPPLIER2" :
			    theURL = "/pop/WPOP071.aspx";
	            top = screen.height/2 - 600/2 - 35;
	            left = screen.width/2 - 610/2;				
	            position = 'dialogTop='+top +';dialogLeft='+left;
	            heightAdd = 610 + heightAdd;	            			    
			    features = "dialogWidth=600px;dialogHeight="+heightAdd+"px;scroll=no;resizable=no;status=no;"+position;
			    break;
			    /*
				Return Parameter
				arrRet[][0] = new Array("납품처"");
				arrRet[][1] = 코드
				arrRet[][2] = 명칭
				예)사용방법 : 공통자바스크립트호출 -> getArrVal(arrTmp[], "사원", 1) -> Return : 사번
				              공통자바스크립트호출 -> getArrVal(arrTmp[], "사원", 2) -> Return : 성명 
				*/
				
		    //영업사원 검색팝업2
			case "WIN_MEMBER2" :
			    theURL = "/pop/WPOP171.aspx";
	            top = screen.height/2 - 500/2 - 35;
	            left = screen.width/2 - 510/2;				
	            position = 'dialogTop='+top +';dialogLeft='+left;
	            heightAdd = 500 + heightAdd;	            			    
			    features = "dialogWidth=510px;dialogHeight="+heightAdd+"px;scroll=no;resizable=no;status=no;"+position;
			    break;
			    /*
				Return Parameter
				arrRet[][0] = new Array("사원"");
				arrRet[][1] = 코드
				arrRet[][2] = 명칭
				예)사용방법 : 공통자바스크립트호출 -> getArrVal(arrTmp[], "사원", 1) -> Return : 사번
				              공통자바스크립트호출 -> getArrVal(arrTmp[], "사원", 2) -> Return : 성명 
				*/
				
			//견적불러오기 팝업
			case "WIN_EST_MTRL" :
			    theURL = "/pop/WPOP300.aspx";
	            top = screen.height/2 - 600/2 - 35;
	            left = screen.width/2 - 760/2;				
	            position = 'dialogTop='+top +';dialogLeft='+left;	
	            heightAdd = 600 + heightAdd;	            		    
			    features = "dialogWidth=760px;dialogHeight="+heightAdd+"px;scroll=no;resizable=no;status=no;"+position;
			    break;
			    /*
				Return Parameter
				arrRet[][0] = new Array("자재", "플랜트");
				arrRet[][1] = 코드
				arrRet[][2] = 명칭
				예)사용방법 : 공통자바스크립트호출 -> getArrVal(arrTmp[], "사원", 1) -> Return : 사번
				              공통자바스크립트호출 -> getArrVal(arrTmp[], "사원", 2) -> Return : 성명 
				*/
				
			 //인쇄사양 팝업
			case "WIN_PRINT" :
				theURL = "/pop/WPOP320.aspx";
	            top = screen.height/2 - 600/2 - 35;
	            left = screen.width/2 - 610/2;				
	            position = 'dialogTop='+top +';dialogLeft='+left;
	            heightAdd = 300 + heightAdd;
				features = "dialogWidth=310px;dialogHeight="+heightAdd+"px;scroll=no;resizable=no;status=no;"+position;
				break;
				/*
				Return Parameter
				arrRet[0] = new Array("자재");
				arrRet[1] = 코드
				arrRet[2] = 명칭
				예)사용방법 : 공통자바스크립트호출 -> getArrVal(arrTmp, "자재", 1) -> Return : 코드 
				              공통자바스크립트호출 -> getArrVal(arrTmp, "자재", 2) -> Return : 명 
				*/
		}
		var arrTmp = window.showModalDialog(theURL, objArgs, features);
		//window.open(theURL, "", features);

		return arrTmp;
	}
}

// ============================================================ 
// 작성자       : 김창태
// 작성일       : 2009.06.15
// Description  : Modal팝업에서 넘겨온 배열(2차원배열)의 Value 찾기 
// arguments[0] : 배열Ojbect
// arguments[1] : 찾고자하는 값의 타이틀명(예:"사번", "직급" 등등)
// arguments[2] : 코드 or 명칭 (1:코드, 2:명칭)
// ============================================================	
function fnGetArrVal(obj, val, key){
	var i;
	if(obj != null && obj[0] != null){
		for(i=0;i<obj[0].length;i++){
			if(obj[0][i] == val.toUpperCase()){				
				return obj[key][i];
				break;
			}			
		}
	}
	else{
		return "";
	}
}

// ============================================================ 
// 작성자       : 김창태
// 작성일       : 2009.06.17
// Description  : 컨트롤value 초기화

// arguments    : 컨트롤명칭문자열 
// 예시)        : fnCtrlValueReset('txtCrsCd','ddl1',.......,'ddl2')
// ============================================================	
function fnCtrlValueReset(){
	var len = arguments.length;
	for(var i=0; i<len; i++){														//arguments length만큼 루프
		if(typeof(arguments[i]) == "string"){										//arguments가 문자열이면			
			if(document.getElementById(arguments[i]).nodeType==1 ){					//document.getElementById(arguments) 가 엘리먼트면

				if(document.getElementById(arguments[i]).nodeName=="INPUT"){		//태그명이 input 이면
					if(document.getElementById(arguments[i]).value!=""){
						document.getElementById(arguments[i]).value="";
					}				
				}
				else if(document.getElementById(arguments[i]).nodeName=="SELECT"){	//태그명이 select면

					if(document.getElementById(arguments[i]).selectedIndex > 0){
						document.getElementById(arguments[i]).options[0].selected=true;
						document.getElementById(arguments[i]).onchange();
					}
				}				
			}
		}
	}
}

// ============================================================ 
// 작성자       : 김창태
// 작성일       : 2009.11.13
// Description  : 컨트롤value 초기화

// arguments    : 컨트롤명칭문자열 
// 예시)        : fnCtrlValueReset('txtCrsCd','ddl1',.......,'ddl2')
// ============================================================	
function fnTagValueReset(){
	var len = arguments.length;
	for(var i=0; i<len; i++){														//arguments length만큼 루프
		if(typeof(arguments[i]) == "string"){										//arguments가 문자열이면			
		    var tmpObj = document.getElementsByName(arguments[i]);
		    
		    for(var j=0; j<tmpObj.length; j++)
		    {
		        if(tmpObj[j].nodeType==1 ){					//document.getElementById(arguments) 가 엘리먼트면

				    if(tmpObj[j].nodeName=="INPUT"){		//태그명이 input 이면
			    
					    if(tmpObj[j].value!=""){
						    tmpObj[j].value="";
					    }				
				    }
				    else if(tmpObj[j].nodeName=="SELECT"){	//태그명이 select면

					    if(tmpObj[j].selectedIndex > 0){
						    tmpObj[j].options[0].selected=true;
						    tmpObj[j].onchange();
					    }
				    }				
			    }
		    }//end for			
		}//end if
	}//end for
}

// ============================================================ 
// 작성자       : 
// 작성일       : 
// Description  : 페이지를 이동시키는 함수
// ============================================================
function fnMovePage(pageUrl) {
	document.location.href = pageUrl;
}


// ============================================================ 
// 작성자       : 
// 작성일       : 
// Description  : 목록 화면에 있는 CheckBox를 전체 선택, 전체 해제시켜주는 함수
// ============================================================
function fnAllCheck(chkObjectID) {
	var chkObject = document.getElementById(chkObjectID);

	for (var i = 0; i < document.forms[0].elements.length; i++) {
		if (document.forms[0].elements[i].type == "checkbox") {
			if (document.forms[0].elements[i].id != chkObjectID) {
				document.getElementById(document.forms[0].elements[i].id).checked = chkObject.checked;
			}
		}
	}
}


// ============================================================ 
// 작성자       : 
// 작성일       : 
// Description  : 삭제시에 CheckBox에 대한 체크 여부를 검사하는 함수
// ============================================================

function fnConfirmCheck(chkObjectID) {
	var chkObject = document.getElementById(chkObjectID);
	var isChecked = false;
	
	for (var i = 0; i < document.forms[0].elements.length; i++) {
		if (document.forms[0].elements[i].type == "checkbox") {
			if (document.forms[0].elements[i].id != chkObjectID && document.forms[0].elements[i].checked == true) {
				isChecked = true;
				break;
			}
		}
	}

	return isChecked;
}

// ============================================================ 
// 작성자       : 
// 작성일       : 
// Description  : popup함수
// ============================================================
/* popup함수 사용법

	예) onclick="return popup(this.href, 'popup1', 500, 500, 'nocenter', 'noscroll');"
	center로 놓으면 화면 중앙에 띄우고 nocenter 왼쪽 상단에 띄운다.
	scroll 놓으면 스크롤이 생기고 noscroll는 스크롤이 안생김.
	기본적으로 팝업은 리사이즈가 됨.
*/
function popup(url,name,w,h, pos, scrll) {
	var position = ',top=0, left=0';
	if(pos=="center"){ // 스크린 가운데 창띄우기
		var top = screen.height/2 - h/2 - 35;
		var left = screen.width/2 - w/2;
		if(top<0) top=0;
		position = ',top='+top +',left='+left;
	}
	(scrll=="scroll") ? sOp = ",scrollbars=yes" :  sOp = ""; // 창스크롤
	
	winOptions = 'width='+w +',height='+h +position +sOp +', resizable=yes';
	// top, left, width, height, location, menubar, resizable, scrollbar, status
	window.open(url,name,winOptions);
	return false;
}

// ============================================================ 
// 작성자       : 
// 작성일       : 
// Description  : 팝업 띠운후 팝업의 window를 반환하는 팝업함수
// ============================================================
function popupReturnDoc(url,name,w,h, pos, scrll){
	var position = ',top=0, left=0';
	if(pos=="center"){ // 스크린 가운데 창띄우기
		var top = screen.height/2 - h/2 - 35;
		var left = screen.width/2 - w/2;
		if(top<0) top=0;
		position = ',top='+top +',left='+left;
	}
	(scrll=="scroll") ? sOp = ",scrollbars=yes" :  sOp = ""; // 창스크롤
	
	winOptions = 'width='+w +',height='+h +position +sOp +', resizable=yes';
	// top, left, width, height, location, menubar, resizable, scrollbar, status
	return window.open(url,name,winOptions);
}


// ============================================================ 
// 작성자       : 
// 작성일       : 
// Description  : 쿠키 호출
// ============================================================
function getCookie(name){
	var allCookies = decodeURIComponent(document.cookie);
	var strCnt = name.length;
	var pos = allCookies.indexOf(name+"=");

	if(pos == -1) return undefined;

	var start = pos + strCnt+1;
	var end = allCookies.indexOf(";", start);
	if(end == -1) end = allCookies.length;
	var value = allCookies.substring(start, end);
	return value = decodeURIComponent(value);
}


// ============================================================ 
// 작성자       : 
// 작성일       : 
// Description  : 쿠키 세팅
// ============================================================
function setCookie(name,value,max_age,cPath,cDomain){
	var pathStr = (cPath) ? ";path=" + cPath : "";
	var domainStr = (cDomain) ? ";domain=" + cDomain : "";
	document.cookie = encodeURIComponent(name) + "=" + encodeURIComponent(value) +
							 pathStr + domainStr + ";max-age=" + (60*60*24*max_age);
}


// ============================================================ 
// 작성자       : 
// 작성일       : 
// Description  : 쿠키 삭제
// ============================================================
function removeCookie(name){
	document.cookie = encodeURIComponent(name)+'=;max-age='+0;
}


// ============================================================ 
// 작성자       : 
// 작성일       : 
// Description  : 메뉴얼 팝업
// ============================================================
function fnManualView(manual_url) {
    if (manual_url != "")
    {
        window.open('/fileupload/manual/' + manual_url, '_manual', 'width=1000 height=600 menubars=no');
    }
    else
    {
        alert("메뉴얼이 존재하지 않습니다.");
    }
}


//************************************************************
// 리포트(UbiReport) 출력관련 스크립트 시작
// 작성자       : changs
// 작성일       : 2009.11.19
// *주의        : 임의로 스크립트를 수정할 수 없다.
//------------------------------------------------------------

//실제 리포트뷰어 호출하는 부분
function fnOpenReport(arr){
	var svrIP, svrDir;
	var iframeNm,ifrm;
	var elem;
	var parameters="";
	
	//svrIP = "165.244.44.176";		                    //Print Server : real IP로 변경함

	svrIP = "tools.lscable.com";		            //Print Server : real IP로 변경함

	iframeId = "ReportPreviewFrame";

	if(arr==null) {
		alert("Data Not Found!");
		return;
	}

	//Test 및 확인
//	for(var i=0; i < arr.length; i++){
//		alert(arr[i].nm + "::::" + arr[i].val);	
//	}
//	return;


	//리포트가 사용할 Iframe 생성, 이미있으면 만들지 않는다.
	if(document.getElementById(iframeId) == null){
		//Parent Node찾기 
		elem = document.getElementsByTagName("BODY")[0];

		//Element 생성
		ifrm = document.createElement("iframe");
		//Element 속성지정
		ifrm.setAttribute("id", iframeId);
		ifrm.setAttribute("width", "40px");
		ifrm.setAttribute("height", "0px");
		ifrm.setAttribute("frameborder", "0px");
		//body의 자식으로 생성한다. 마지막에 추가된다
		elem.appendChild(ifrm);
	}

    //파라미터 설정
    for(var i=2; i < arr.length; i++)
    {
        parameters += (arr[i].nm + "#" + arr[i].val + "#");
    }
    //alert(parameters);

    eval(iframeId).document.writeln('<script type="text/javascript">');
    eval(iframeId).document.writeln('function getArg() {');
    eval(iframeId).document.writeln('   return "'+parameters+'"');
    eval(iframeId).document.writeln('}');
    eval(iframeId).document.writeln('</script>');

    eval(iframeId).document.writeln('<br><br>');
    eval(iframeId).document.writeln('<form name="ReportForm" method="POST" action="javascript:refresh(getArg())"></form>');
    eval(iframeId).document.writeln('<object id="UbiViewer" classid="CLSID:CCE578F0-6DFC-4649-8D30-82682A583E05"');
    eval(iframeId).document.writeln('    codebase="http://'+svrIP+'/UbiGateway/RPT/UbiViewerX.cab#version=2,502,905,2801" width="100%" height="99%">');
    eval(iframeId).document.writeln('    <param name="fileURL" value="http://'+svrIP+'/UbiGateway/RPT/">');
    eval(iframeId).document.writeln('    <param name="servletURL1" value="http://'+svrIP+'/UbiGateway/UbiGateway.dll?Form">');
    eval(iframeId).document.writeln('    <param name="servletURL2" value="http://'+svrIP+'/UbiGateway/UbiGateway.dll?Result">');
    //eval(iframeId).document.writeln('    <param name="jrfFileDir" value="http://'+svrIP+'/UbiGateway/RPT/">');
    eval(iframeId).document.writeln('    <param name="jrfFileDir" value="C:/inetpub/UbiGateway/RPT/">');
    eval(iframeId).document.writeln('    <param name="Progress" value="true">');
    eval(iframeId).document.writeln('    <param name="toolbar" value="true">');
    eval(iframeId).document.writeln('    <param name="margin" value="false">');
    eval(iframeId).document.writeln('    <param name="execType" value="TYPE2">');
    eval(iframeId).document.writeln('    <param name="scale" value="120">');
    eval(iframeId).document.writeln('    <param name="jrfFileName" value="'+arr[0].val+'">'); //리포트파일설정
    eval(iframeId).document.writeln('    <param name="dataSource" value="'+arr[1].val+'">'); //리포트Datasource
    eval(iframeId).document.writeln('</object>');

    eval(iframeId).document.close();

	
}

//배열에 값추가
function fnAppendReportParam(arr, obj){
	arr.push(obj);
	return arr;
}
//리포트파라미터 객체선언
function objReportParam(nm, val, arr){
	this.nm = nm;
	this.val = val;	
}
//리포트파라미터 객체 Setting
function fnReportParamSetData(aTmp){
	var i,j;
	var obj;
	//생성한 오브젝트 배열을 담을 변수
	var arrObj = new Array();

	if(aTmp[0].length>0){
		for(i=0; i<aTmp[0].length; i++){
			obj = new objReportParam(aTmp[0][i],aTmp[1][i]);
			arrObj	= fnAppendReportParam(arrObj, obj);
		}
	}
	fnOpenReport(arrObj);
}

// 리포트 출력관련 스크립트 끝
//************************************************************
