/***************************************************
 * [ Social Enterprise 자바스크립트 공통합수 ]
 *
 * [공지] 자바스크립트 공통함수 생성시 공통팀에 요청하십시요
 *
 * MODIFICATION HISTORY
 * DATE				Version			DEVELOPER		DESORIPTION
 * 2008-09-29		1.0				name				최초생성
 * 2010-04-02		1.1				권유진				글자수 관련 함수 추가(re_chk_MaxLength_byte, re_chk_MaxLength_char)
***************************************************/

/***********************************************
				1. 문자열 관련 함수
***********************************************/
/***********************************************
* name		: chk_MaxLength_byte(obj,maxLen)
* parameter	: obj => 해당객체 
*			: maxLen => 최대글자수
* sample	: onkeyup="chk_MaxLength_byte(this,80);" 
* return	: 
* 설명		: 글자수를 체크하여 입력제한을 구현하는 함수(byte 기준)
  				(한글, 영문 동일함)
***********************************************/
function chk_MaxLength_byte(obj,maxLen) {

	var ls_str     = obj.value; 		// 이벤트가 일어난 컨트롤의 value 값
	var li_str_len = ls_str.length;  // 전체길이

	// 변수초기화
	var li_max      = maxLen; // 제한할 글자수 크기
	var i           = 0;  // for문에 사용
	var li_byte     = 0;  // 한글일경우는 2 그밗에는 1을 더함
	var li_len      = 0;  // substring하기 위해서 사용
	var ls_one_char = ""; // 한글자씩 검사한다
	var ls_str2     = ""; // 글자수를 초과하면 제한할수 글자전까지만 보여준다.

	for(i=0; i< li_str_len; i++) {
		// 한글자추출
		ls_one_char = ls_str.charAt(i);

		// 한글이면 2를 더한다.
		if(escape(ls_one_char).length > 4) {
			li_byte += 2;
		}
		// 그밗의 경우는 1을 더한다.
		else {
			li_byte++;
		}

		// 전체 크기가 li_max를 넘지않으면
		if(li_byte <= li_max) {
			li_len = i + 1;
		}
	}
   
	// 전체길이를 초과하면
	if(li_byte > li_max) {
		alert( li_max + " 글자를 초과 입력할수 없습니다. \n 초과된 내용은 자동으로 삭제 됩니다. ");
		ls_str2 = ls_str.substr(0, li_len);
		obj.value = ls_str2;
	}
	obj.focus();   
}

/***********************************************
* name		: re_chk_MaxLength_byte(obj,maxLen,veiwObj)
* parameter	: obj => 해당객체 
*			: maxLen => 최대글자수
*			: veiwObj => 입력되고 있는 byte 수를 보여줄 객체 아이디
* sample	: onkeyup="re_chk_MaxLength_byte(this,80,view);" 
* return	: 
* 설명		: 글자수를 체크하여 입력제한을 구현하고 입력되고 있는 글자수를 객체에 보여주는 함수(byte 기준)
  				(한글, 영문 동일함)
***********************************************/
function re_chk_MaxLength_byte(obj,maxLen,veiwObj) {

	var ls_str     = obj.value; 		// 이벤트가 일어난 컨트롤의 value 값
	var li_str_len = ls_str.length;  // 전체길이

	// 변수초기화
	var li_max      = maxLen; // 제한할 글자수 크기
	var i           = 0;  // for문에 사용
	var li_byte     = 0;  // 한글일경우는 2 그밗에는 1을 더함
	var li_len      = 0;  // substring하기 위해서 사용
	var ls_one_char = ""; // 한글자씩 검사한다
	var ls_str2     = ""; // 글자수를 초과하면 제한할수 글자전까지만 보여준다.

	for(i=0; i< li_str_len; i++) {
		// 한글자추출
		ls_one_char = ls_str.charAt(i);

		// 한글이면 2를 더한다.
		if(escape(ls_one_char).length > 4) {
			li_byte += 2;
		}
		// 그밗의 경우는 1을 더한다.
		else {
			li_byte++;
		}

		// 전체 크기가 li_max를 넘지않으면
		if(li_byte <= li_max) {
			li_len = i + 1;
		}
	}

	document.getElementById(veiwObj).innerText = li_byte;	
   
	// 전체길이를 초과하면
	if(li_byte > li_max) {
		alert( li_max + " Byte를 초과 입력할수 없습니다. \n 초과된 내용은 자동으로 삭제 됩니다. ");
		ls_str2 = ls_str.substr(0, li_len);
		obj.value = ls_str2;
	}
	obj.focus();   
}

/***********************************************
* name		: re_chk_MaxLength_char(obj,maxLen,veiwObj)
* parameter	: obj => 해당객체 
*			: maxLen => 최대글자수
*			: veiwObj => 입력되고 있는 글자수를 보여줄 객체 아이디
* sample	: onkeyup="re_chk_MaxLength_char(this,80,view);" 
* return	: 
* 설명		: 글자수를 체크하여 입력제한을 구현하고 입력되고 있는 글자수를 객체에 보여주는 함수(글자 기준)
  				(한글, 영문 동일함)
***********************************************/
function re_chk_MaxLength_char(obj,maxLen,veiwObj) {
	var ls_str     = obj.value; 		// 이벤트가 일어난 컨트롤의 value 값
	var li_str_len = ls_str.length;  // 전체길이

	// 변수초기화
	var li_max      = maxLen; // 제한할 글자수 크기
	var i           = 0;  // for문에 사용
	var li_byte     = 0;  // 한글일경우는 2 그밗에는 1을 더함
	var li_len      = 0;  // substring하기 위해서 사용
	var ls_one_char = ""; // 한글자씩 검사한다
	var ls_str2     = ""; // 글자수를 초과하면 제한할수 글자전까지만 보여준다.

	for(i=0; i< li_str_len; i++) {
		// 한글자추출
		ls_one_char = ls_str.charAt(i);

		li_byte++;
		
		// 전체 크기가 li_max를 넘지않으면
		if(li_byte <= li_max) {
			li_len = i + 1;
		}
	}
	
	document.getElementById(veiwObj).innerText = li_byte;
   
	// 전체길이를 초과하면
	if(li_byte > li_max) {
		alert( li_max + " 글자를 초과 입력할수 없습니다. \n 초과된 내용은 자동으로 삭제 됩니다. ");
		ls_str2 = ls_str.substr(0, li_len);
		obj.value = ls_str2;
	}
	obj.focus();   
}

/***********************************************
* name		: chk_MinLength_byte(obj,maxLen)
* parameter	: obj => 해당객체 
*			: maxLen => 최소글자수
* sample	: onkeyup="chk_MinLength_byte(this,4);" 
* return	: 
* 설명		: 글자수를 체크하여 입력최소제한을 구현하는 함수
  				(한글, 영문 동일함)
***********************************************/
function chk_MinLength_byte(obj,minLen) {

	var success = false;
	var ls_str     = obj.value; 		// 이벤트가 일어난 컨트롤의 value 값
	var li_str_len = ls_str.length;  // 전체길이

	// 변수초기화
	var li_min      = minLen; // 제한할 글자수 크기
	var i           = 0;  // for문에 사용
	var li_byte     = 0;  // 한글일경우는 2 그밗에는 1을 더함
	var li_len      = 0;  // substring하기 위해서 사용
	var ls_one_char = ""; // 한글자씩 검사한다

	for(i=0; i< li_str_len; i++) {
		// 한글자추출
		ls_one_char = ls_str.charAt(i);

		// 한글이면 2를 더한다.
		if(escape(ls_one_char).length > 4) {
			li_byte += 2;
		}
		// 그밗의 경우는 1을 더한다.
		else {
			li_byte++;
		}

		// 전체 크기가 li_min를 넘지않으면
		if(li_byte <= li_min) {
			li_len = i + 1;
		}
	}
   
	// 전체길이 이하면
	if(li_byte < li_min) {
		success = true;
	}
	
	return (success);   
}

/***********************************************
* name		: replace(str,regular_expression,replacement_string)
* parameter	: str => String 
*			: regular_expression => 표현식 ex) /a/gi
*			: replacement_string => 바꾸고 싶은 문자 ex) s
* sample	: var str = replace(str,'a',"s");
* return	: string
* 설명		: String Change(문자열 바꾸기)
***********************************************/
function replace(str,regular_expression,replacement_string){
	var re = new RegExp(regular_expression,"ig");
	
	return str.replace(re,replacement_string);
	return str;
}

/**************************************************************************
* name		: chk_Number(str)
* parameter	: str	=> String
* sample	: chk_Number("12126761");
* return	: true/false
* 설명		: 숫자만으로 구성되어 있는지 검사
**************************************************************************/
function chk_Number(str) {
	RefString = "-1234567890";
	DecimalPoints = 0;
	for(var i=0; i<str.length; i++) {
		TempChar = str.substring(i, i+1);
		if(RefString.indexOf(TempChar,0) == -1) { 
			return false;
		}
	}
	
	return true;
}

/**************************************************************************
* name		: chk_AlphaNumber(str)
* parameter : str	=> String
* sample	: chk_AlphaNumber("121267asvx61");
* return	: true/false
* 설명		: 숫자와 영문으로만  구성되어 있는지 검사
**************************************************************************/
function chk_AlphaNumber(str) {
	var success = true;
	var valid = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
	str = str.toUpperCase();
	
	if(chk_Blank(str)) {
		return (false);
	}
	str = trim(str);
	for(var i = 0; i < str.length; i++) {
		var number = (valid.indexOf(str.substring(i, i+1)) != -1);
		if(!(number)) {
			success = false;
			break;
		}
	}
	return (success);
}


/**************************************************************************
* name		: chk_AlphaPlusNumber(str)
* parameter : str	=> String
* sample	: chk_AlphaPlusNumber("121267asvx61");
* return	: true/false
* 설명		: 숫자+영문으로 구성되어 있는지 검사(숫자 혹은 영문 단독 허용 안됨)
**************************************************************************/
function chk_AlphaPlusNumber(str) {

	var success = true;
	
	r0=/[A-z]/gi;
	r1=/[0-9]/gi;
	t0=str.search(r0);
	t1=str.search(r1);
	if(t0!=-1&&t1!=-1){}
	else {success = false}
	
	return (success);
}

/**************************************************************************
* name		: chk_Blank(str)
* parameter	: str	=> String
* sample	: chk_Blank("");
* return	: true/false
* 설명		: 공백인지 검사
**************************************************************************/
function chk_Blank(str) {
	var rV = false;

	if((str == "") || (str == null) || (str == "null")) {
		rV = true;
	}
	return rV;
}

/**************************************************************************
* name		: rtrim(str)
* parameter	: str	=> String
* sample	: rtrim("121323    ");
* return	: String
* 설명		: str의 오른쪽 공백을 소거한다.
**************************************************************************/
function rtrim(str) {
	var index;
	var ch = " ";

	if(chk_Blank(str)) {
		return (str);
	}
	for(index = str.length - 1; index >= 0; index--) {
		if(str.charAt(index) != ch) {
			break;
		}
	}	
	return (str.substring(0, index + 1));
}

/**************************************************************************
* name		: ltrim(str)
* parameter	: str	=> String
* sample	: trim("   121323");
* return	: String
* 설명		: str의 왼쪽 공백을 소거한다.
**************************************************************************/
function ltrim(str) {
	var index;
	var len;
	var ch = " ";

	if(chk_Blank(str)) {
		return (str);
	}
	len = str.length;
	for(index = 0; index < str.length; index++, len--) {
		if(str.charAt(index) != ch) {
			break;
		}
	}
	return (str.substring(index, index + len));
}

/**************************************************************************
* name		: trim(str)
* parameter	: str	=> String
* sample	: trim("   121323   ");
* return	: String
* 설명		: str의 양쪽 공백을 소거한다.
**************************************************************************/
function trim(str) {
	var rV;

	rV = ltrim(str);
	rV = rtrim(rV);
	return (rV);
}

/**************************************************************************
* name		: fullZero(str,icount)
* parameter	: str => String
*			: icount => 전체 문자 갯수
* sample	: fullZero("123",5);
* return	: String
* 설명		: 전체 문자 만큼 앞에 0을 채워준다
**************************************************************************/
function fullZero(str,icount) {
	var slength = (""+str).length;
	var s="";
	for(i=0; i < icount - slength; i++) {
		s = s + "0";
	}
	return s + str;
}

/**************************************************************************
* name		: chk_Hangle(str)
* parameter	: str => String
* sample	: chk_Hangle("가나다라마바사");
* return	: true/false
* 설명		: 한글인지 아닌지 를 검사
**************************************************************************/
function chk_Hangle(str) {
	var rV = false;

	if(chk_Blank(str)) {
		return (rV);
	}
	str = trim(str);
	for(var i = 0; i < str.length; i++) {
		if(str.charCodeAt(i) >= 123) {
			rV = true;
			break;
		}
	}  
	return (rV);
}

/**************************************************************************
* name		: get_ByteLength(str)
* parameter	: str => String
* sample	: get_ByteLength("가나다라마바사");
* return	: byte length
* 설명		: 한글을 2byte 로 해서 나온 byte 길이
**************************************************************************/
function get_ByteLength(str) {
	var byteLength = 0;
	for(inx = 0; inx < str.length; inx++) {
		var oneChar = escape(str.charAt(inx));
		if(oneChar.length == 1) { 
			byteLength ++;
		} else if(oneChar.indexOf("%u") != -1) {
			byteLength += 2;
		} else if(oneChar.indexOf("%") != -1) {
			byteLength += oneChar.length/3; 
		}
	}
	return byteLength;
}


/**************************************************************************
* name		: set_ImeModeHangle(obj,state)
* parameter	: obj => 객체
*			: state => 객체상태
* sample	: <input type ="text" name ="han">
*			: <input type="button" onclick= "set_ImeModeHangle(han,true)" value="한글">
*			: <input type="button" onclick= "set_ImeModeHangle(han,false)" value="영문">
* return	: style.imeMode
* 설명		: 한글,숫자만 입력가능/영문,숫자만 입력가능
**************************************************************************/
function set_ImeModeHangle(obj,state) {
	if(state) {	//한글+숫자
		obj.style.imeMode = "active";
	} else {	//영문+숫자
		obj.style.imeMode = "disabled";
	}
}

/***********************************************
				2. modal창 관련 함수
***********************************************/
/***********************************************
* name		: popup_Modal(pfilename, pargs, pwidth, pheight, pleft, ptop )
* parameter	: pfilename => 파일명 
*			: pargs => argument
* 			: pwidth, pheight, pleft, ptop -> 위치및 크기
* sample	: 
* return	: 
* 설명		: modal창 띄우는 함수
***********************************************/
function popup_Modal(pfilename, pargs, pwidth, pheight, pleft, ptop ) {
	try {
		if(pleft == "-1" && ptop == "-1") {
			ptop = window.screenTop + event.clientY + 10;
			pleft =	window.screenLeft + event.clientX - 70;
	
			param = "dialogWidth:" + pwidth + "px; dialogHeight:" + pheight + "px; status:no; toolbar:no; menubar:no; location:no; resizable:no; help:no; scroll:no;unadorned:yes";
		} else {
			param = "dialogLeft:"+pleft+"; dialogTop:"+ptop+"; dialogWidth:" + pwidth + "px; dialogHeight:" + pheight + "px; status:no; toolbar:no; menubar:no; location:no; resizable:no; help:no; scroll:no ";
		}
		
		window.showModalDialog(pfilename,pargs, param);
	
	} catch(E) { 
		alert(	
			"Error : " + E.number + "\n" +
			"Description : " + E.description
		);
	}	
}

/***********************************************
* name		: popup_Modeless(pfilename, pargs, pwidth, pheight, pleft, ptop )
* parameter	: pfilename => 파일명 
*			: pargs => arument
* 			: pwidth, pheight, pleft, ptop -> 위치및 크기
* sample	: 
* return	: 
* 설명		: 팝업창 띄우는 함수
***********************************************/
function popup_Modeless(pfilename, pargs, pwidth, pheight, pleft, ptop ) {
	try {
		
		if(pleft == "-1" && ptop == "-1") {
			param = "width=" + pwidth + "; height=" + pheight + ";toolbar=no,menubar=no,status=no,scrollbars=no,resizable=no";
		} else {
			param = "left="+pleft+"; top="+ptop+"; width=" + pwidth + "; height=" + pheight + ";toolbar=no,menubar=no,status=no,scrollbars=no,resizable=no";
		}
		
		window.open(pfilename,"", param);
		//window.showModelessDialog(pfilename,pargs, param);
		
	} catch(E) { 
		alert(	
			"Error : " + E.number + "\n" +
			"Description : " + E.description
		);
	}	
}


/***********************************************
								3. 날짜 관련 함수
***********************************************/
/**************************************************************************
* name		: convert_Date2(obj)
* parameter	: obj => 객체
* sample	: <input type="text" name="date" onblur="convert_Date2(this)" onfocus="delete_Char(this,'-')" value='2008-09'>
* return	: true/false
* 설명		: 날짜를 검사 하여 보여주기 
**************************************************************************/
function convert_Date2(obj) {
	obj.value = delete_Char(obj.value,'-');
	if(obj.value.length != 6) {
		obj.focus();
		return;
	}
	
	var str = trim(obj.value);
	
	if(!chk_Number(str) || !chk_Year(str) || !chk_Month(str)) {
		obj.focus();
		return;
	}
	
	str = str.substring(0,4) + "-" + str.substring(4);
	obj.value = str;
	
	return true;
}


/**************************************************************************
* name		: convert_Date(obj)
* parameter	: obj => 객체
* sample	: <input type="text" name="date" onblur="convert_Date(this)" onfocus="delete_Char(this,'-')" value='2008-09-30'>
* return	: true/false
* 설명		: 날짜를 검사 하여 보여주기 
**************************************************************************/
function convert_Date(obj) {
	obj.value = delete_Char(obj.value,'-');
	
	switch(obj.value.length) {
		case 0 :
			return;
			break;
		case 6 :
			if(parseInt(obj.value.substring(0,2),10)  > 80 ) {
				obj.value = "19"+obj.value;
			} else {
				obj.value = "20"+obj.value;
			}
			break;
		case 8 :
			break;
		default :
			obj.focus();
			return;
			break;
	}
	var realDate = chk_Date(obj.value);
	if(!realDate) {		
		obj.focus();
		return false;
	}
	
	str = obj.value;
	str = str.substring(0,4) + "-" + str.substring(4,6) + "-" + str.substring(6);
	obj.value = str;
	return true;
	
}

/**************************************************************************
* name		: chk_Date(str)
* parameter	: str => 날짜 
* sample	: chk_Date("2003-01-01");
* return	: true/false
* 설명		: 날짜가 유효한지 검사
**************************************************************************/
function chk_Date(str) {
	str = delete_Char(str,'-');
	str = trim(str);
	if(!chk_Number(str)) {
		return (false);
	}
	if(str.length != 8) {
		return (false);
	}
	if(!chk_Year(str)) {
		return (false);
	}
	if(!chk_Month(str)) {
		return (false);
	}
	if(!chk_Day(str)) {
		return (false);
	}
	return (true);
}

/**************************************************************************
* name		: chk_Time(str)
* parameter	: str	=> 시간 
* sample	: chk_Time("12:12:12");chk_Time("12:12");
* return	: true/false
* 설명		: 시간이 유효한지 검사
**************************************************************************/
function chk_Time(str) {
	str = delete_Char(str,':');
	str = trim(str);
	if(!chk_Number(str)) {
		return (false);
	}
	if(str.length != 6) {
		return (false);
	}
	hh = str.substring(0,2);
	mm = str.substring(2,4);
	ss = str.substring(4);
	
	if(!chk_Between(hh,"00","23")) {
		return (false);
	}
	if(!chk_Between(mm,"00","59")) {
		return (false);
	}
	if(!chk_Between(ss,"00","59")) {
		return (false);
	}
	return (true);
}

/**************************************************************************
* name		: chk_Year(str)
* parameter	: str	=> 날짜 
* sample	: chk_Year("2005-01-01");
* return	: true/false
* 설명		: 년도가 유효한지 검사
**************************************************************************/
function chk_Year(str) {
	var year;
	var to;
	today = new Date();
	to    = today.getYear() + 100;
	to    += "";
	if(to.length == 2) {
		to = (parseInt(to, 10) + 1900) + "";
	}
	
	str   = trim(str);
	year  = get_Year(str);
	return (chk_Between(year, "1901", to));
}

/**************************************************************************
* name		: chk_Month(str)
* parameter	: str	=> 날짜 
* sample	: chk_Month("2005-01-01");
* return	: true/false
* 설명		: 월이 유효한지 검사
**************************************************************************/
function chk_Month(str) {
	var month;
	str   = trim(str);
	month = get_Month(str);
	return (chk_Between(month, "01", "12"));
}

/**************************************************************************
* name		: chk_Day(str)
* parameter	: str	=> 날짜 
* sample	: chk_Day("2005-01-01");
* return	: true/false
* 설명		: 날이 유효한지 검사
**************************************************************************/
function chk_Day(str) {
	var day;
	str      = trim(str);
	last_day = get_LastDay(str);
	day      = get_Day(str);
	return (chk_Between(day, "01", last_day));
}


/**************************************************************************
* name		: get_Year(str)
* parameter	: str	=> 날짜
* sample	: get_Year("2005-01-01"); get_Year("20050101");
* return	: string 년도
* 설명		: str에서 연도를 구함
**************************************************************************/
function get_Year(str) {
	str = delete_Char(str,'-');
	str = trim(str);
	return (str.substr(0, 4));
}

/**************************************************************************
* name		: get_Month(str)
* parameter	: str	=> 날짜
* sample	: get_Month("2003-01-01"); get_Month("20030101");
* return	: string 월
* 설명		: str에서 월을 구함
**************************************************************************/
function get_Month(str) {
	str = delete_Char(str,'-');
	str = trim(str);
	return (str.substr(4, 2));
}

/**************************************************************************
* name		: get_Day(str)
* parameter	: str	=> 날짜
* sample	: get_Day(("2005-01-01"); get_Day(("20050101");
* return	: string 날짜
* 설명		: str에서 날짜를 구함
**************************************************************************/
function get_Day(str) {
	str = delete_Char(str,'-');
	str = trim(str);
	return (str.substr(6, 2));
}

/**************************************************************************
* name		: chk_Between(str, from, to)
* parameter	: str	=> String 
*			: from  => 시작
*			: to   => 끝
* sample	: chk_Between("1999","1900","2003");
* return	: true/false
* 설명		: 2문자 사이에 속하는 값인지 검사
**************************************************************************/
function chk_Between(str, from, to) {
	if((str < from) || (str > to)) {
		return (false);
	}
	return (true);
}

/**************************************************************************
* name		: get_LastDay(str)
* parameter	: str	=> 날짜
* sample	: get_LastDay(("2005-01-01"); get_LastDay(("20050101");
* return	: string 날짜
* 설명		: 달의 마지막 일자를 구함
**************************************************************************/
function get_LastDay(str) {
	var maxday = new Array("31", "28", "31", "30", "31", "30",
							"31", "31", "30", "31", "30", "31");
	var month = get_Month(str);
	var day   = maxday[parseInt(month, 10) - 1];

	if(chk_LeapYear(str)) {
		if(month == "02") {
			day = "29";
		}
	}
	return (day);
}

/**************************************************************************
* name		: chk_LeapYear(str)
* parameter	: str	=> 날짜
* sample	: chk_LeapYear(("2005-01-01"); chk_LeapYear(("20050101");
* return	: true/false
* 설명		: 윤년인지 아닌지 check
**************************************************************************/
function chk_LeapYear(str) {
	var year;

	str = trim(str);
	year = parseInt(get_Year(str), 10);
	if( (year%4   == 0) && ((year%100 != 0) || (year%400 == 0))) {
		return (true);
	}
	return (false);
}

/**************************************************************************
* name		: get_NowDate()
* parameter : 
* sample	: get_NowDate('-');get_NowDate('/');
* return	: date
* 설명		: 현재 년월일 가지고 오기
**************************************************************************/
function get_NowDate() {
	var delimiter ="";
	
	if(arguments[0] == null) {
		delimiter = "-";
	} else {
		delimiter = arguments[0];
	}
	year1	= get_NowYear();
	month2	= get_NowMonth();
	day2 	= get_NowDay();
	
	return year1+delimiter+fullZero(month2,2)+delimiter+fullZero(day2,2);
}

/**************************************************************************
* name		: get_NowYymm()
* parameter : 
* sample	: get_NowYymm('-');get_Yymm('/');
* return	: string 현재 년월(YYYY-MM)
* 설명		: 현재 년월 가지고 오기
**************************************************************************/
function get_NowYymm() {
	var delimiter ="";

	if(arguments[0] == null) {
		delimiter = "-";
	} else {
		delimiter = arguments[0];
	}
	year1	= get_NowYear();
	month2	= get_NowMonth();

	return year1+delimiter+fullZero(month2,2);
}

/**************************************************************************
* name		: get_NowYear()
* parameter : 
* sample	: get_NowYear();
* return	: string 현재 년도
* 설명		: 현재 년도 가지고 오기
**************************************************************************/
function get_NowYear() {
	today 	= new Date()
	
	return 	""+today.getFullYear();
}
/**************************************************************************
* name		: get_NowMonth()
* parameter : 
* sample	: get_NowMonth();
* return	: string 현재 월
* 설명		: 현재 월 가지고 오기
**************************************************************************/
function get_NowMonth() {
	today 	= new Date()
	month1 	= today.getMonth()+1;
	
	return 	month1.toString();
}
/**************************************************************************
* name		: get_NowDay()
* parameter : 
* sample	: get_NowDay();
* return	: string 현재 일자
* 설명		: 현재 일자 가지고 오기
**************************************************************************/
function get_NowDay() {
	today 	= new Date()
	day1 	= today.getDate();
	
	return 	day1.toString();
}
/**************************************************************************
* name		: get_NowTime()
* parameter : 
* sample	: get_NowTime(':');get_NowTime("-");
* return	: string 현재 시간
* 설명		: 현재 시간 가지고 오기
**************************************************************************/
function get_NowTime() {
	var delimiter ="";
	
	if(arguments[0] == null) {
		delimiter = ":";
	} else {
		delimiter = arguments[0];
	}
	today = new Date()
	H = today.getHours().toString();
	M = today.getMinutes().toString();
	S = today.getSeconds().toString();
	
	return fullZero(H,2)+delimiter+fullZero(M,2)+delimiter+fullZero(S,2);
}

/**************************************************************************
* name		: calc_Age(str)
* parameter	: str=> 만으로 나이 계산
* sample	: calc_Age("1974-01-01");
* return	: string 
* 설명		: 만으로된  나이값
**************************************************************************/
function calc_Age(str) {
	str = delete_Char(str,'-');
	
    if(str.length != 8) {
       	return;
    }
    var mm = str.substring(4,6);
    var day = eval(str.substring(6,8));
    var year = eval(str.substring(0,4));
	
	yy2	= get_NowYear();
	mm2	= eval(get_NowMonth());
	dd2 = eval(get_NowDay());
	yourage = yy2 - year; 
	if(mm2 < mm) {
		yourage--; 
	}
	if((mm2 == mm) && (dd2 < day)) {
		yourage--; 
	}
	
	return yourage;
}

/**************************************************************************
* name		: calc_Month(std_ymd, number, is_after)
* parameter	: std_ymd --> 계산 기준일
*		    : number  --> 계산할 월 수(3이면 3개월 전 또는 후)
*           : is_after--> 이후 날짜를 얻을 것인지 이전 날짜를 얻을 것인지 true=> +, false=> -.
* sample	: calc_Month("20040101",3, true); ==> 20040401
* return	: String
* 설명		: number값을 더하거나 뺀 날짜를 리턴
**************************************************************************/
function calc_Month(std_ymd, number, is_after) {
	std_ymd = delete_Char(std_ymd, "-");
	number = Number(number);

	var std_yyyy = Number(std_ymd.substr(0,4));
	var std_MM = Number(std_ymd.substr(4,2));
	var std_dd = Number(std_ymd.substr(6,2));

	var target_yyyy;
	var target_MM;
	var target_dd;
	
	target_yyyy = std_yyyy;
	if(is_after) {
		// 이후 날짜이면 
		target_MM = std_MM+number;
		if(target_MM > 12) {
			target_MM = target_MM % 12;
			target_yyyy = target_yyyy + 1;
		}
	} else {
		target_MM = std_MM-number;
		if(target_MM < 1) {
			target_MM = target_MM + 12;
			target_yyyy = std_yyyy - 1;
		}
	}
	var temp_MM;
	if(target_MM < 10) {
		temp_MM = "0"+target_MM;
	} else {
		temp_MM = target_MM;
	}
	var std_last_day = get_LastDay(std_ymd);
	var temp_ymd = target_yyyy+""+temp_MM+"01";
	var temp_last_day = get_LastDay(temp_ymd);	
	if(std_dd <= temp_last_day) {
		//return target_yyyy+"-"+temp_MM+"-"+std_dd;
		return target_yyyy+"-"+temp_MM+"-"+std_ymd.substr(6,2);
	} else {
		return target_yyyy+"-"+temp_MM+"-"+temp_last_day;
	}
}

/**************************************************************************
* name		: calc_Date(str,thedate,flag)
* parameter	: str=> 기준일자
*			: thedate => N일수 
*			: flag => true/false (+/-)일수
* sample	: calc_Date("1974-01-01","5",true); calc_Date("1974-01-01","5",false);
* return	: string 
* 설명		: 기준일자의 이후/이전 날짜
**************************************************************************/
function calc_Date(str,thedate,flag) {
	arg = delete_Char(str,'-');
	
	if(arg.length != 8) {
		return 
	}
	var mm = arg.substring(4,6);
    var day = arg.substring(6,8);
    var year = arg.substring(0,4);
	
	plann=eval(thedate);         //+ 몇일
	
	var dayStr = mm+"-"+day+"-"+year;
	var Meet = new Date(dayStr);
	
	if(flag == true) {
		//annitime = Meet.getTime()+plann*1000*3600*24-1	
		annitime = Meet.getTime()+plann*1000*3600*24;
	} else {
		//annitime = Meet.getTime()-plann*1000*3600*24-1
		annitime = Meet.getTime()-plann*1000*3600*24;
	}
	var anniday = new Date();
	anniday.setTime(annitime);
	
	var plusmonth = anniday.getMonth()+1;
	var plusyear  = (anniday.getYear()<100)?"19"+anniday.getYear():anniday.getYear();
	var plusday   = anniday.getDate();
	
	return plusyear+"-"+fullZero(plusmonth.toString(),2)+"-"+fullZero(plusday.toString(),2);
	
}

/**************************************************************************
* name		: get_IntervalDay(fromtime, totime)
* parameter	: fromtime=> 시작일자
*			: totime => 끝일자
* sample	: get_IntervalDay("1974-01-01", "2003-01-01");
* return	: string 
* 설명		: 시작일자와 끝일자 사이의 날짜 차이
**************************************************************************/
function get_IntervalDay(fromtime, totime) {
	fromtime = delete_Char(fromtime,'-');
	totime = delete_Char(totime,'-');

	if( fromtime.length != 8 || totime.length != 8 ) {
		return false;
	}
  
	var year = fromtime.substring(0,4);
	var month = fromtime.substring(4,6);
	var day = fromtime.substring(6,8);
	
	var year2 = totime.substring(0,4);
	var month2 = totime.substring(4,6);
	var day2 = totime.substring(6,8);
  	
	if(isNaN(year) || isNaN(month) || isNaN(day)) {
		return false;
	}
	if(isNaN(year2) || isNaN(month2) || isNaN(day2)) {
		return false;
	}
	if((year <= 0) || (year2 <= 0)) {
		return false;
	}
	if((month <= 0  || month > 12) || (month2 <= 0  || month2 > 12)) {
		return false;
	}
	var from_time = new Date(year,month,day);
	var to_time = new Date(year2,month2,day2);
	
	var fmillsec = from_time.getTime();
	var tmillsec = to_time.getTime();
	var resultday = (tmillsec - fmillsec)/(1000*60*60*24);
	
	return resultday;
}


/**************************************************************************
* name		: format_Date(str,type)
* parameter	: str => string
*			: type => 날짜타입 
* sample	: format_Date(20030101,'YYYY-MM-DD')  => 2003-01-01
* 			: format_Date(20030101,'YY-MM-DD')  => 03-01-01
* 			: format_Date(20030101,'MM-DD')  => 01-01
* 			: format_Date(20030101,'YYYY-MM')  => 2003-01
* return	: string
* 설명		: 날짜포맷
**************************************************************************/
function format_Date(str,type) {
	str = delete_Char(str,'-');
	delimeter = "-";
	switch(type) {
		case "YYYY-MM-DD" :
			if( str.length == 8 ) {
				return str.substring(0,4) + delimeter + str.substring(4,6)+ delimeter + str.substring(6);
			} else if( str.length == 6 ) {
				if( str.substring(0,2) > 80 ) {
					str = "19" + str;
				} else {
					str = "20" + str;
				}
				return str.substring(0,4) + delimeter + str.substring(4,6)+ delimeter + str.substring(6);
					
			} else {
				return "";
			}
			break;
		case "YY-MM-DD" :
			if( str.length == 6 ) {
				return str.substring(0,2) + delimeter + str.substring(2,4)+ delimeter + str.substring(4);
			} else if( str.length == 8 ) {
				return str.substring(2,4) + delimeter + str.substring(4,6)+ delimeter + str.substring(6);
			} else {
				return "";
			}
				break;
		case "MM-DD" :
			if( str.length == 6 ) {
				return str.substring(2,4)+ delimeter + str.substring(4);
			} else if( str.length == 8 ) {
				return str.substring(4,6)+ delimeter + str.substring(6);
			} else {
				return "";
			}
			break;
		case "YYYY-MM"	:
			if( str.length >= 6 ) {
				return str.substring(0,4) + delimeter + str.substring(4,6);
			} else {
				return "";
			}
			break;
		default	:
			
	}
}

/**************************************************************************
* name		: format_Time(str,type)
* parameter	: str => string
*			: type => 시간타입 
* sample	: format_Time(121314,'hh:nn:ss')  => 12:13:14
* 			: format_Time(1213,'hh:nn')  => 12:13
* return	: string
* 설명		: 시간포맷
**************************************************************************/
function format_Time(str,type) {
	str = delete_Char(str,':');
	delimeter = ":";
	switch(type) {
		case "hh:nn:ss" :
			if(str.length != 6) {
				return "";
			}
			return str.substring(0,2) + delimeter + str.substring(2,4)+ delimeter + str.substring(4);
			break;
		case "hh:nn" :
			if(!(str.length == 4||str.length == 6)) {
				return "";
			}
			return str.substring(0,2) + delimeter + str.substring(2,4);
			break;
		default	:
	}
}

function format(str,type) {
	str = delete_Char(str,',');
	switch(type) {
		case "#,###" :
			return display_Money(str);
			break;
		case "#,###.0" :
			p = str.split(".");
			p[0] = display_Money(p[0]);
			if(p.length == 1 ) {
				return p[0]+"."+"0";
			} else if(p.length ==2 ) {
				return p[0]+"."+p[1];
			} else {
				return "";
			}
		case "#,###.00" :
	        p = str.split(".");
			p[0] = display_Money(p[0]);
			if(p.length == 1 ) {
				return p[0]+"."+"00";
			} else if(p.length ==2 ) {
				return p[0]+"."+p[1];
			} else {
				return "";
			}
			break;
	}
}

/***********************************************
				4. 숫자 관련 함수
***********************************************/
/**************************************************************************
* name		: convert_Money(obj)
* parameter	: obj => 객체
* sample	: <input type ="text" name ="money" onblur="convert_Money(this);" onfocus="delete_Char(this,',')" >
* return	: true/false
* 설명		: 숫자인지를 검사 하여 금액으로 보여주기 
**************************************************************************/
function convert_Money(obj) {
	var flag =false;
	if(obj.value.substring(0,1) == "-") {
		minus = "-";
		obj.value = delete_Char(obj.value,'-');
		flag = true;
	}
				
	if(!chk_Number(obj.value)) {
		obj.focus();
		return;
	}
	
	str = obj.value;
	s_str = display_Money(str);
	
	if(flag == true) {
		obj.value = minus +s_str;
	} else {
		obj.value = s_str;
	}
	flag = false;
}

/**************************************************************************
* name		: display_Money(str)
* parameter	: str => String 
* sample	: <input type ="text" name ="money" onblur="display_Money(this.value);" onfocus="delete_Char(this,',')">
* return	:
* 설명		: 금액 3자리 마다 콤마(,)를 찍어주는 함수 ex) 1000 => 1,000
* 수정		: 금액이 - 일경우에대한 처리 추가
**************************************************************************/
function display_Money(str) {
	var minus = "";
	if(str.charAt(0) == "-") {
	   minus = str.charAt(0); 
	   str = delete_Char(str,'-');
	}
	var div = str.length % 3;
	var s_str="";
	if(div == 0 ) {
		count = (str.length/3)-1;
	} else {
		count = (str.length-div) /3;
	}
	for(i=1;i<=count;i++) {
		s_str =str.substr(str.length-3,3)+s_str;
		str = str.substr(0,str.length-3);
		if(str.length>0) {
			s_str =","+s_str;
		}
	}
	s_str = str + s_str;
	return minus+s_str;
}

/**************************************************************************
* name		: IptOnlyNumber(obj, tfComma)
* parameter	: obj => window
* sample	: <input type ="text" name ="number" style="ime-mode:disabled"  onkeydown="IptOnlyNumber(window)"  >
* return	: 
* 설명		: 리얼타임으로 숫자만 입력할때
**************************************************************************/
function IptOnlyNumber(obj, tfComma) {
	key =obj.event.keyCode;
	//alert('key  '+key);
	if(key == 13 || key == 9) {   // 엔터,TAB
		return true;
	}
	if(obj.event.shiftKey == true) { 
		obj.event.returnValue = false;
		return true;
	}
  
	if(key == 91 || key == 92 || key == 93 || key == 229 || key == 21 || key == 25 || key == 19 ) {
		return true;
	}
	//소숫점이 가능한지 여부에 따라 입력
	if((tfComma!=undefined) && (tfComma==true) && (key == 190)) {
		obj.event.returnValue = true;
		return true;
	}
	
	if(key >= 112 && key <= 123) {       // function key
		obj.event.returnValue = true;
		return true;
	}

	if((key == 40) || (key == 38 )) {    // 위, 아래 화살표
		obj.event.returnValue = true;
		return true;
	}

	if(( key > 95) && ( key < 106 )) {   // 우측 키패드 숫자 key
		obj.event.returnValue = true;
		return true;
	}

	if(( key > 47) && ( key < 58 )) {    // 키보드 상단 숫자 key
		obj.event.returnValue = true;
		return true;
	}
	if(( key == 37)||( key == 39 )||( key == 46)||( key == 8 )) {  // 좌,우 화살표,DEL,BACKS,-
		obj.event.returnValue = true;
		return true;
	}
	if(obj.event.altKey || obj.event.shiftKey || obj.event.ctrlKey) { 
		obj.event.returnValue = true;
		return true;
	}
	if(( key > 36) && ( key < 41 )) {    // 좌,상,우,하 화살표
		obj.event.returnValue = true;
		return true;
	}
	if(( key > 32) && ( key < 37 )) {    // Page-Up, Page-Down, End, Home
		obj.event.returnValue = true;
		return true;
	}
	if(( key == 45) || ( key == 46 ) || ( key == 144 )) {    // Insert,Delete,NumLock
		obj.event.returnValue = true;
		return true;
	}
	if(( key == 46)||( key == 8 )||( key == 17)||( key == 18 )||( key == 20)||( key == 27 )) {  // DEL,BACKS,Ctrl,Alt,CapsLock,Esc
		obj.event.returnValue = true;
		return true;
	}
	obj.event.returnValue=false;
	//alert('숫자만 입력 가능합니다.');
	return false;
}

/***********************************************
								5. 기타(테이블, 폼) 관련 함수
***********************************************/
/**************************************************************************
* name		: set_TextReadonly(obj,state)
* parameter	: obj => 객체
*			: state => 객체상태
* sample	: <input name="readonly1" type="text" />
*			: <input type="button" onclick="javascript:set_TextReadonly(readonly1,!(readonly1.readOnly))" value=""/>
* return	: readonly
* 설명		: 객체를 readonly만들고  배경색 바꿈
**************************************************************************/
function set_TextReadonly(obj,state) {
	if(state) {
		obj.style.background ='#EEEEEE';
	} else {
		obj.style.background ='#FFFFFF';
	}
	obj.readOnly = state;
}
function upper(obj)
{
	str = obj.value;
	str = str.toUpperCase();
	obj.value = str;
}

/**************************************************************************
* name		: format_Jumin_No(str)
* parameter	: str => string 
* sample	:  
* return	: string
* 설명		: 주민번호 automasking 
**************************************************************************/
function format_Jumin_No(str) {
	str = delete_Char(str,'-');
	str = str.substring(0,6) + "-" + str.substring(6);
	return str;
}

/**************************************************************************
* name		: delete_Char(source,char)
* parameter	: source => string 또는 obj 둘다 지원
*			: char => 없애고 싶은 단어나 문장
* sample	: delete_Char(this,',')   => this.value 가 3,3,3, 일때 이함수를 이용하면 333으로 나옴
* return	: string/alert
* 설명		: 문자를 없앨때 쓰는 함수 
**************************************************************************/
function delete_Char(source,char) {
	if(typeof(source) == "string") {
		return replace(source,char,'');
	} else if(typeof(source) == "object") {
		source.value = replace(source.value,char,'');
	} else {
		alert("지원하지 않는 형태입니다.");
	}
	
}

/**************************************************************************
* name		: showTip(element, flag)
* parameter	: element
*           : flag		f => field (text,textarea)     
*			:			t => <td>등의 테이블데이터성일때 사용  
* sample	: showTip(td, t)
* return	: 
* 설명		: 풍선 도움말로 안보이는 부분의 내용을 보여줌.
**************************************************************************/
function showTip(element, flag) {
	if(flag == 't') {
		element.title = element.innerText;
	} else {
		element.title = element.value;
	}
}

/**************************************************************************
* name		: changeCss(obj, css, css2)
* parameter	: obj  => object
* 			: css  => 바꿔주고자 하는 css의 Class명 
*			: css2 => 클릭시 선택된 row를 보여줄때 사용
* sample	: CSS 를 적용시킬 Object, Css의 Class명, 선택된 row Css의 Class명
*			:	(ex) changeCss(this, 'css','css2');
* return	: 
* 설명		: onMouseOver or Out Event를 발생시킬때 자동으로 Css를 바꾼다.
*			:	css2, 추가사항-> 해당 row를 클릭하여 현재 선택된 row를 보여주고 싶을때 사용한다.
**************************************************************************/
function changeCss(obj, css, css2) {
	if(!((css2 =='') || (css2 == null))) {
	  	changeCss_clear(obj,css);
	  	obj.className = css2;
	} else {
		if(!(obj.className == 'tr3' || obj.className == 'tr3_long')) {
			obj.className = css;
		}
	}
}

/***************************************************************************************
* name		: changeCss_clear(obj,chClass)
* parameter	: obj  => object
* 			: chClass  => 바꿔주고자 하는 css의 Class명
* sample	: changeCss_clear(obj, text1)
* return	: 
* 설명		: 해당 table내의 모든 row를 해당 class로 바꾼다.
***************************************************************************************/
function changeCss_clear(obj,chClass) {
	var pobj = document.all ? obj.parentElement : obj.parentNode;
	//var pobj = obj.parentNode;
	for(var i=0;i<pobj.rows.length;i++) {
		pobj.childNodes[i].className = chClass;
	}
}

/**************************************************************************
* name		: clear_Combo(obj)
* parameter	: obj  => object
* sample	: clear_Combo(test38)
* return	: 
* 설명		: 콤보안에 값을 모두 없앤다. 초기화 
**************************************************************************/
function clear_Combo(obj) {
    if(obj == null) {
        return;
    } else {
	    for(var index = obj.length-1; index >= 0; index--) {
	        obj.options[index] = null;
	    }
    }
}

/**************************************************************************
* name		: copy_Combo(obj, dest_obj, defaultSelect)
* parameter	: obj  => object
* 			: dest_obj  => 선택할 object
* 			: defaultSelect  => 기본값
* sample	: copy_Combo(obj, dest_obj, defaultSelect)
* return	: 
* 설명		: 다른 combobox의 아이템을 copy한다.
**************************************************************************/
function copy_Combo(obj, dest_obj, defaultSelect) {
	var otype;  //OBJECT TYPE명을 가지는 변수 
    
	if(obj == null) {
		return;
	}
	otype = (obj.type).substring(0,6);
	if(otype != "select") {
		return;
    }
	if(dest_obj == null) {
		return;
	}	
	otype = (dest_obj.type).substring(0,6);
	if(otype != "select") {
		return;
	}	
    
	//clear
	clear_Combo(dest_obj);
    
	//copy
	var sOption;
	var sText;
	var sValue;
	var isWord = !chk_Blank(defaultSelect);
    for(var index = 0; index < obj.length; index++) {
        //sOption = new Option(text, value, true);
        //sOption = obj.options[index];
        sText = obj.options[index].text;
        sValue = obj.options[index].value;
        if(index==0) {
        	sOption = new Option(sText, sValue, true);
        } else {
        	sOption = new Option(sText, sValue);
        }
        dest_obj.options[index] = sOption;
    }
}

/**************************************************************************
* name		: add_Combo(obj, text, value)
* parameter	: obj  => object
* sample	: add_Combo(test39,"가나다라","10")
* return	: 
* 설명		: combobox의 아이템을 추가한다 
**************************************************************************/
function add_Combo(obj, text, value) {
    if(obj == null) {
        return;
    } else {
	    var len = obj.length;
        if(len == 0) {
            option1 = new Option(text, value, true);
        } else {
            option1 = new Option(text, value);
        }
        obj.options[len] = option1;
   }
}

/**************************************************************************
* name		: sel_Combo(obj, str)
* parameter	: obj  => object
*			: str  => 선택할 콤보값의 text
* sample	: select_Combo_value(obj, str)
* return	: 
* 설명		: combobox에 str값의 아이템을 선택한다.
**************************************************************************/
function sel_Combo(obj, str) {
    var otype;  //OBJECT TYPE명을 가지는 변수 
    
    if(obj == null) {
    	return;
    }	
    if(chk_Blank(str)) {
    	return;
    }
    otype = (obj.type).substring(0,6);
    
    if(otype != "select") {
    	return;
    }
    
    for(var index = 0; index < obj.length; index++) {
        if(obj.options[index].value != '') {
            if(trim(obj.options[index].value) == trim(str)) {
                obj.options[index].selected = true;
            }
        } else {
            if(trim(obj.options[index].text) == trim(str)) {
                obj.options[index].selected = true;
            }
        }
    }
    
}

/**************************************************************************
* name		: get_Combo(obj)
* parameter	: obj  => object
* 			: text_only  => 가져올 콤보값의 text
* sample	: f_get_combo_value(obj, text_only)
* return	: string
* 설명		: combobox에 str값의 선택된값을 구함
**************************************************************************/
function get_Combo(obj) {
	var rV = "";
	var len   = obj.length;
	var otype = "";

	if(obj == null) {
		return;
	}
	otype = (obj.type).substring(0, 6);
	if(otype != "select") {
		return;
	}		  
	for(var index = 0; index < len; index++) {
		if(obj.options[index].selected) {
			rV = trim(obj.options[index].text);
		}
	}
	
	return (rV);
}

/**************************************************************************
* name		: get_ComboValue(obj)
* parameter	: obj  => object
* 			: text_only  => 가져올 콤보값의 text
* sample	: f_get_combo_value(obj, text_only)
* return	: string
* 설명		: combobox에 str값의 선택된값을 구함
**************************************************************************/
function get_ComboValue(obj) {
	var rV;
	var len   = obj.length;
	var otype = "";

	if(obj == null) {
		return;
	}
	otype = (obj.type).substring(0, 6);
	if(otype != "select") {
		return;
	}
	for(var index = 0; index < len; index++) {
		if(obj.options[index].selected) {
			rV = trim(obj.options[index].value);
		}
	}
  
  return (rV);
}

/**************************************************************************
* name		: fnDateForm(obj)
* parameter	: obj  => object
* sample	: fnDateForm(this)
* return	: 
* 설명		: 날짜 형식을 자동적으로 지정 ("yyyy-MM-dd")
**************************************************************************/
    function fnDateForm(obj){
    	obj.value = obj.value.replace(/(\d{4})\-*(\d{0,2})\-*(\d{0,2})/,function($0,$1,$2,$3){
    		buf = $1
    		if($2) buf += "-"+$2;
    		if($3) buf += "-"+$3;
    		if(buf.length>=10){try {
    			var nDate = new Date($1, $2-1, $3);
    			buf = nDate.getYear() +"-"+ ("0"+(nDate.getMonth()+1)).slice(-2) +"-"+ (("0"+nDate.getDate()).slice(-2));
    		} catch(e){ alert('날짜 범위를 벗어납니다.') } }
    		return buf;
    	})
    }

/**************************************************************************
* name		: checkFileSize(path)
* parameter	: path  => path
* sample	: checkFileSize('c:\people.jsp')
* return	: 
* 설명		: file size return
**************************************************************************/
    
   	function checkFileSize(path){ 
   		
   		var fSize
	   	if(navigator.userAgent.indexOf('MSIE') > 0 && navigator.appVersion.indexOf('MSIE 7.') > 0){
	   		var fso = new ActiveXObject("Scripting.FileSystemObject");
			  var f = fso.GetFile(path);
			  var fileSize = f.size;
			  f = null;
			  fso = null;
	   	}else{
	   		var obj = new Image(); 
	        obj.dynsrc = path; 
	        fSize = obj.fileSize;
	   	}
        return fSize;
    }
    