/**
 * 클래스명 : MyLib()
 * 기    능 : Use function/method
 * 작 성 일 : 2007.05.08, 이지미디어, 정원광
 *
 */
MyLib = function () {
	this.TopDir = "";
	this.IsChecked = false;
	this.Language = "";
	this.ReNewTime = 30000;

	// Language Set up
	if (location.host.substr(0, location.host.indexOf("tour.") - 1).length == 2) {
		this.Language = location.host.substr(0, location.host.indexOf("tour.") - 1).toUpperCase();
	} else {
		this.Language = "EN";
	}

	// Get object
	this.Object = function (id) {
		if (document.getElementById && document.getElementById(id)) {
			return document.getElementById(id);
		} else if (document.getElementByName && document.getElementByName(id)) {
			return document.getElementByName(id);
		} else if (document.all && document.all(id)) {
			return document.all(id);
		} else if (document.layers && document.layers[id]) {
			return document.layers[id];
		} else {
			return false;
		}
	}

	// All checkbox checked
	this.All = function (frm, isobj) {
		if (isobj == true) {
			if (this.IsChecked == false) {
				for (var i = 0; i <= frm; i++) {
					if (this.Object("A_" + i).checked == true) {
						continue;
					} else {
						this.Object("A_" + i).checked = true;
					}
				}

				this.IsChecked = true;
			} else {
				for (var i = 0; i <= frm; i++) {
					if (this.Object("A_" + i).checked == true) {
						this.Object("A_" + i).checked = false;
					} else {
						continue;
					}
				}

				this.IsChecked = false;
			}
			return false;
		} else {
			if (this.IsChecked == false) {
				for (i = 0; i < frm.length; i++) {
					if (frm[i].type == "checkbox") {
						if (frm[i].checked == true) {
							continue;
						} else {
							frm[i].checked = true;
						}
					}
				}

				this.IsChecked = true;
			} else {
				for (i = 0; i < frm.length; i++) {
					if (frm[i].type == "checkbox") {
						if (frm[i].checked == true) {
							frm[i].checked = false;
						} else {
							continue;
						}
					}
				}

				this.IsChecked = false;
			}
		}
	}

	// new window open
	this.WinOpen = function (url, wname, width, height, scrl) {
		var winl = (screen.width - width) / 2;
		var wint = (screen.height - height) / 2;

		if (typeof scrl == "undefined") {
			var scroll = "no";
		} else {
			var scroll = scrl;
		}

		return window.open(url, wname, "left=" + winl + ", top=" + wint + ", scrollbars=" + scroll + ", status=yes, resizable=no, width=" + width + ", height=" + height);
	}

	// move focus
	this.MoveFocus = function (num, fromform, toform) {
		var str = fromform.value.length;

		if (str == num) {
			toform.focus();
		}
	}

	// check email
	this.Email = function (input) {
		var format = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/;

		if (input.value.search(format) == -1) {
			return true;
		} else if (input.value.charAt(input.value.indexOf('@') + 1) == '.') {
			return true;
		} else {
			return false;
		}
	}

		/*		
		*		IdChk
		*		param	: v (검사값)
		*		return	: var
		*/
		this.IdPwdChk = function (v) {
			
			filterStr = "'--/*!@#$%^&/.,+=_'";		// filtering , date input

			var i;
			var rtnVal = "";
				
			if (v == "") {
					return false;
			}
						
				for (i = 0; i < v.length; i++) {
					var strV = v.charAt(i);
					if (filterStr.indexOf(strV) != -1) {
							return false;
					}
					//rtnVal += strV;
				}

				return true;
		}

	// number input ','
	this.Number = function (n) {
		var num = n.replace(/,/gi, "");
		var sgn = parseInt(num) < 0 ? "-" : "";
		var len = num.length;
		var pos = 3;
		var tmp = "";

		if (isNaN(num)) {
			window.alert("Only number it will be able to input.");
			return 0;
		} else if (parseInt(num) == 0) {
			return num;
		}

		while (len > 0) {
			len -= pos;

			if (len < 0) {
				pos = len + pos;
				len = 0;
			}

			tmp = "," + num.substr(len, pos) + tmp;
		}

		return sgn + tmp.substr(1);
	}

	// letters length
	this.Length = function (str) {
		var len = 0;
		var tmp = null;
		var i = 0;

		while (i < str.length) {
			tmp = str.charAt(i);

			if (escape(tmp).length > 4) {
				len += 2;
			} else if (tmp != "\r") {
				len++;
			}

			i++;
		}

		return len;
	}

	// not null 
	this.PressBlank = function () {
		if (event.keyCode == 32) {
			event.returnValue = false;
		}
	}

	// only number
	this.PressNumber = function () {
		if (event.keyCode < 48 || event.keyCode > 57) {
			event.returnValue = false;
		}
	}

	// change lowercase 
	this.ToLower = function (str) {
		return str.toLowerCase();
	}

	// change uppercase
	this.ToUpper = function (str) {
		return str.toUpperCase();
	}

	// in array value check
	this.InArray = function (val, arr) {
		for (var i = 0; i < arr.length; i++) {
			if (arr[i] == val) {
				return true;
			}
		}

		return false;
	}

	// radio button check 
	this.Radio = function (frm, act, val) {
		switch (act) {
			// values check
			case 1 :
				if (frm.length > 0) {
					for (var i = 0; i < frm.length; i++) {
						if (frm[i].checked == true) {
							return frm[i].value;
						}
					}
				} else {
					if (frm.checked == true) {
						return frm.value;
					}
				}

			// position focus
			case 2 :
				if (frm.length > 0) {
					for (var i = 0; i < frm.length; i++) {
						if (frm[i].value == val) {
							frm[i].checked = true;
							break;
						}
					}
				} else {
					if (frm.value == val) {
						frm.checked = true;
					}
				}

			// checked o,x
			default :
				if (frm.length > 0) {
					for (var i = 0; i < frm.length; i++) {
						if (frm[i].checked == true) {
							return true;
						}
					}
				} else {
					if (frm.checked == true) {
						return true;
					}
				}

				return false;
		}
	}

	// Msg Code[0073]
	this.Round = function (num, pos) { 
		var posV = Math.pow(10, (pos ? pos : 2));

		return Math.round(num * posV) / posV;
	}

	// str repetition check
	this.Repetition = function (str, lmt) {
		if (str.length < 1) {
			return;
		}

		for (var i = 0; i < str.length; i++) {
			var rpt = str.substr(i, 1);
			var key = "";
			for (var j = 0; j < lmt; j++) {
				key += rpt;
			}
			var chk = str.indexOf(key);
			if (chk < 0) {
				continue;
			} else {
				return true;
				break;
			}
		}

		return false;
	}

	// cookies check
	this.Cookies = function (name, value, expire) {
		if (typeof value != "undefined" && typeof expire != "undefined") {
			var day = new Date();
			day.setDate(day.getDate() + expire);
			document.cookie = name + "=" + escape(value) + "; path=/; expires=" + day.toGMTString() + ";";
		} else {
			var org = document.cookie;
			var dlm = name + "=";
			var x = 0;
			var y = 0;
			var z = 0;

			while (x <= org.length) {
				y = x + dlm.length;

				if (org.substring(x, y) == dlm) {
					if ((z = org.indexOf(";", y)) == -1) {
						z = org.length;
					}

					return org.substring(y, z);
				}

				x = org.indexOf(" ", x) + 1;

				if (x == 0) {
					break;
				}
			}

			return "";
		}
	}

	// Yearlist (Year)
	this.YearList = function(y,type) {
		var type;
		var startYear;
		var lastYear;
		var todayDate;
			
		todayDate = new Date();

			//Msg Code[0074]
			if (type == null)  {
					type = "";
			}

		startYear		= 1950;
		lastYear		= todayDate.getFullYear() + 1;

		//past date output
		if (type == "past") {
				lastYear = todayDate.getFullYear();
		} else if (type == "future") {
				startYear = todayDate.getFullYear();
				lastYear = todayDate.getFullYear()+10;
		}

			if (y == null) {
				//var nowYear = todayDate.getFullYear();
				var nowYear = "";
			} else {
				var nowYear = y;
			}

			for (var i = lastYear; i >= startYear; i--) {
				document.write("<option value='" + i + "'");
				if (i == nowYear) {
					document.write(" selected");
				}
				document.write(">" + i + " year</option>");
			}
		}

	// momthlist(month)
	this.MonthList = function (m) {
		day = new Date();

		if (typeof m == "undefined") {
			var mm = day.getMonth() + 1;
		} else if (m == "") {
			var mm = 0;
		} else {
			var mm = (m.substr(0, 1) == "0") ? parseInt(m.substr(1, m.length)) : parseInt(m);
		}

		for (var i = 1; i <= 12; i++) {
			var n = (i < 10 ? "0" : "") + i;

			document.write("<option value='" + n + "'" + (i == mm ? " selected" : "") + ">" + n + "</option>");
		}
	}

	// DayList (Day)
	this.DayList = function (y, m, d) {
		day = new Date();

		if (typeof y == "undefined") {
			var yy = day.getFullYear();
		} else if (y == "") {
			var yy = 0;
		} else {
			var yy = parseInt(y);
		}

		if (typeof m == "undefined") {
			var mm = day.getMonth() + 1;
		} else if (m == "") {
			var mm = 0;
		} else {
			var mm = (m.substr(0, 1) == "0") ? parseInt(m.substr(1, m.length)) : parseInt(m);
		}

		if (typeof d == "undefined") {
			var dd = day.getDate();
		} else if (d == "") {
			var dd = 0;
		} else {
			var dd = (d.substr(0, 1) == "0") ? parseInt(d.substr(1, d.length)) : parseInt(d);
		}

		for (var i = 1; i <= this.EndDate(yy, mm); i++) {
			var n = (i < 10 ? "0" : "") + i;

			document.write("<option value='" + n + "'" + (i == dd ? " selected" : "") + ">" + n + "</option>");
		}
	}

	// LeapYear Check
	this.LeapYear = function (y) {
		if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0 && y % 4000 != 0)) {
			return true;
		} else {
			return false;
		}
	}

	// End Date 
	this.EndDate = function (y, m) {
		var edate = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];

		if (m == 2) {
			if (this.LeapYear(y) == true) {
				return 29;
			} else {
				return 28;
			}
		} else {
			return edate[m];
		}
	}

	// Change Date
	this.ChgDate = function (sel, y, m) {
		if (typeof y == "undefined" && typeof m == "undefined") {
			for (var i = 1; i <= 12; i++) {
				var n = (i < 10 ? "0" : "") + i;

				sel.options[i] = new Option(n, n);
			}
		} else {
			var mm = (m.substr(0, 1) == "0") ? parseInt(m.substr(1, m.length)) : parseInt(m);
			var ed = this.EndDate(y, mm);

			for (var i = sel.length - 1; i > 0; i--) {
				sel.options[i] = null;
			}

			for (var i = 1; i <= ed; i++) {
				var n = (i < 10 ? "0" : "") + i;

				sel.options[i] = new Option(n, n);
			}
		}
	}

	// Left/Right null delete
	this.Trim = function (str) {
		return str.replace(/(^\s*)|(\s*$)/gi, "");
	}

		/**
		 * Title : StrArrange 
		 * Msg Code[0075]
		 *
		 * @author gggl.ko 2007-07-10
		 *
		 *	@param v
		 *
		 * @return ture or false
		 */

		 this.StrArrange = function (v) {

			 if (isNaN(v)) {
				
				if (v == undefined || v == "") {
						return false;
				} else {
						v = this.Trim(v);
						
						if (this.Length(v) == false) {
								return false;
						} else {
								return true;
						}
				}

			} else {
					
					if (v > 0) {
						return true;
					} else {
						return false;
					}
			}
		 }

	/**
	 * Title : ChkBlank
	 * Description : Check Blank Value
	 *
	 * @param v - check value , msg - alert msg
	 * 
	 * @return Boolean
	 * 
	 */
	this.ChkBlank = function (v,MsgCode, Obj) {

		if (this.StrArrange(v) == false) {
						this.ObjPrint(MsgCode, Obj);
						return true;
		} else {
						
						return false;
		}
	}

	/**
	 * Title : ObjPrint
	 * Description : 
	 *
	 * @param
	 * 
	 * @return 
	 * 
	 */
	this.ObjPrint = function (MsgCode, Obj) {

						if(Obj != undefined && Obj != "") {
								this.Object(Obj).style.display = "";
								this.Object(Obj).innerHTML = getMsg(MsgCode);
								return true;
						} else {
								alert(getMsg(MsgCode));
						}
	}

		/**
		 * Title : ObjDisplay
		 * Msg Code[0076]
		 *
		 * @author gggl.ko
		 *
		 * @param 
		 * 
		 * @return Obj Display
		 * 
		 */


		this.ObjDisplay = function (ObjId) {
				
				if (this.Object(ObjId) != false) {
								
						if (this.Object(ObjId).style.display == "") {
										this.Object(ObjId).style.display = "none";
						} else {

										this.Object(ObjId).style.display = "";
						}
				}

		}

		/**
		 * Title : SyncIframe
		 * Msg Code[0076]
		 *
		 * @author gggl.ko
		 *
		 * @param frameId - ( frameId )
		 * 
		 * @return event
		 * 
		 */
		this.SyncIframe = function(frameId) {
			try{
				
				var iframe = this.Object(frameId);

				//var iHeight	= iframe.document.body.scrollHeight;
				//var oBody		= iframe.document.body;
				var iHeight = iframe.contentWindow.document.body.scrollHeight;	
				var oBody	= iframe.contentWindow.document.body;

				if(iHeight==0){
					iHeight = oBody.scrollHeight;			
				}
				var pFrame = document.getElementById(frameId)
				pFrame.style.height = iHeight + 10;
				
			}catch(e){
				//SyncIframe(frameId)
			}
		}


		/**
		 * 	Msg Code[0077]
		 *
		 * @param radioObj		
		 * 
		 * @return String
		 * 
		 */

		this.SelVal = function (radioObj) {
				
				var rtnV = "";
				var radioObjLength = radioObj.length;

				for (i = 0; i < radioObjLength; i ++) {
					if (radioObj[i].checked == true) {
						rtnV = radioObj[i].value;
						
						break;
					}
				}
				return rtnV;
		}

	// checkBox check o,x
	this.Check = function (frm) {
		var tmp = "";
		var idk = false;

		for (var i = 0; i < frm.length; i++) {
			if (frm[i].type != "checkbox") {
				continue;
			}

			if (frm[i].checked) {
				tmp += frm[i].value + " ";
				idk = true;
			}
		}

		if (idk == true) {
			return true;
		} else {
			return false;
		}
	}


		/**
		 * select selectBox value return. , 2007-06-18 gggl.ko
		 *
		 * @param selectObj
		 * 
		 * @return String
		 * 
		 */

		this.Select = function (selectObj) {
				
				var rtnV = "";
				var selectObjLength = selectObj.length;
			
				for (i = 0; i < selectObjLength; i ++) {
					if (selectObj[i].selected == true) {
						rtnV = selectObj[i].value;
						
						break;
					}
				}
				return rtnV;
		}


	// Msg Code[0078]
	this.GetCheckboxObject = function (frm, mod, cnt, message) {
		var tmp = "";
		var idk = false;

		for (var i = 0; i <= cnt; i++) {
			if (MyLib.Object("A_" + i).checked) {
				tmp += MyLib.Object("A_" + i).value + " ";
				idk = true;
			}
		}

		if (idk == true) {
			if (mod.substr(0, 3) == "DEL") {
				var cfm = confirm("Delete select Field?");
			} else {
				if (typeof message != "undefined") {
					var cfm = confirm("Select status Field '" + message + "'modify?");
				} else {
					var cfm = confirm("Select status Field modify?");
				}
			}

			if (cfm == true) {
				frm.n.value = tmp.substr(0, tmp.length - 1);
				frm.m.value = mod;
				frm.submit();
			} else {
				return;
			}
		} else {
			window.alert("Select contents action .");
			return;
		}
	}

	// Get Checkbox New Window
	this.GetCheckboxNewWin = function (frm, mod, url, width, height) {
		var tmp = "";
		var idk = false;

		for (var i = 0; i < frm.length; i++) {
			if (frm[i].type != "checkbox") {
				continue;
			}

			if (frm[i].checked) {
				tmp += frm[i].value + " ";
				idk = true;
			}
		}

		if (idk == true) {
			url += url.indexOf("?") != -1 ? "&" : "?";
			url += "n=" + tmp.substr(0, tmp.length - 1) + "&m=" + mod;
			MyLib.WinOpen(url, mod, width, height);
			return;
		} else {
			window.alert("Select contents action .");
			return;
		}
	}

		//get Cooke

		this.GetCookie = function (name ){

		var nameOfCookie = name + "=";
		var x = 0;
		
				while ( x <= document.cookie.length )	{

						var y = (x+nameOfCookie.length);

						if ( document.cookie.substring( x, y ) == nameOfCookie ) {
								if ( (endOfCookie=document.cookie.indexOf( ";", y )) == -1 ) endOfCookie = document.cookie.length;
								return unescape( document.cookie.substring( y, endOfCookie ) );
						}

						x = document.cookie.indexOf( " ", x ) + 1;
						if ( x == 0 )
						break;
				}

				return "";
		}


		this.Reload = function (iframe) {
				if (iframe != undefined) {		
					//document.frames[iframe].location.reload();
					this.Object(iframe).contentWindow.location.reload();					
				}else {
						history.go(0);
				}				
		}


}

var MyLib = new MyLib();
