function Letter() { this.AddFavor = function() { var Title = document.title; var Url = location.href; if(window.external) window.external.AddFavorite(Url, Title); else if (window.sidebar) { try { window.sidebar.addPanel(Title, Url, ""); } catch (e) { alert(e.message); } } else return true; return false; } this.Repeat = function(Str, Len) { var Return = ''; Len = Format.Int(Len); Str = Format.Str(Str); while (Len--) Return += Str; return Return; } this.Count = function(Value, Type, Len) { Value = Format.Int(Value); if (Type == 'Up') Value++; else if (Type == 'Down') Value--; return this.NumChar(Value, Len); } this.DCount = function(Len, DateFormat, This, Event) { if (!Event) Event = window.event; var Type = ''; if (Event.keyCode == 38) Type = 'Up'; else if (Event.keyCode == 40) Type = 'Down'; else return false; var Value = Let.Count(This.value, Type, Len); This.value = Let.DateLimit(Value, DateFormat); } this.AutoDate = function(DateSet, MonUpdate) { var AddDate = new Date(); var Year = DateSet.replace(/.{4}$/, ''); var Month = DateSet.replace(/^.{4}|.{2}$/g, ''); var Day = DateSet.replace(/^.{6}/, ''); Year = Format.Int(Year); Month = Format.Int(Month) - 1; Day = Format.Int(Day); MonUpdate = Format.Int(MonUpdate); AddDate.setYear(Year); AddDate.setMonth(Month + MonUpdate); AddDate.setDate(Day); var Return = { Year: this.NumChar(AddDate.getYear(), 4), Month: this.NumChar(AddDate.getMonth() + 1, 2), Day: this.NumChar(AddDate.getDate(), 2) }; return Return.Year +''+ Return.Month +''+ Return.Day; } this.DateLimit = function(Value, DateFormat) { if (Value == '0000') Value = '0001'; else if (DateFormat == 'm') { if (Value >= '13') Value = '01'; else if (Value == '00') Value = '12'; } else if (DateFormat == 'd') { if (Value >= '32') Value = '01'; else if (Value == '00') Value = '31'; } else if (DateFormat == 'H') { if (Value >= '24') Value = '00'; else if (Value <= -1) Value = '23'; } else if (DateFormat == 'i' || DateFormat == 's') { if (Value >= '60') Value = '00'; else if (Value <= -1) Value = '59'; } return Value; } this.NumChar = function(Number, FullSize) { var Num = Format.Str(Number); var Siz = Format.Int(FullSize); var Len = Num.length; var HeadLen = Siz - Len; if (HeadLen <= 0) return Number; else return this.Repeat(0, HeadLen) + Num; } this.NumKr = function(Number) { Number = Format.Int(Number); switch (Number) { case 1: return 'ÀÏ'; case 2: return 'ÀÌ'; case 3: return '»ï'; case 4: return '»ç'; case 5: return '¿À'; case 6: return 'À°'; case 7: return 'Ä¥'; case 8: return 'ÆÈ'; case 9: return '±¸'; } return ''; } this.NumClassLow = function(Class) { switch (Class) { case 1: return '½Ê'; case 2: return '¹é'; case 3: return 'õ'; } return ''; } this.NumClassHeigh = function(Class) { switch (Class) { case 1: return '¸¸'; case 2: return '¾ï'; case 3: return 'Á¶'; } return ''; } this.NumToKr = function(Number) { Number = Format.Str(Number); var Char = ''; var Len = Number.length; var Buff = 4; var Tail = Len % Buff; var Loop = parseInt(Len / Buff) + (Tail ? 1 : 0); var Return = ''; var Cnt = 0; while (Loop--) { Len = Len - Buff; if (Tail) Char = Number.substr(Len, Loop == 0 ? Tail : Buff); else Char = Number.substr(Len, Buff); var LoopChar = new Array( Char.substr(3, 1), Char.substr(2, 1), Char.substr(1, 1), Char.substr(0, 1) ); if (Char != '0000') { Return = this.NumClassHeigh(Cnt) + Return; } var inCnt = 0; for (var Index in LoopChar) { if (LoopChar[Index]) { if (LoopChar[Index] != '0') { Return = this.NumClassLow(inCnt) + Return; } Return = this.NumKr(LoopChar[Index]) + Return; inCnt++; } } Cnt++; } return Return; } this.NumToKrIO = function(Number, Output) { Em.All(Output).innerHTML = this.NumToKr(Number); } /**************************************************************************** ±ÛÀÚ ±æÀ̸¦ ¾Æ½ºÅ° ´ÜÀ§·Î ÃøÁ¤ [2008.04.25 / ±è¹Î¿µ] ****************************************************************************/ this.AbsLen = function(Msg) { return escape(Msg).replace(/%(.{5})/g, '11').replace(/%(.{2})/g, '1').length; } /**************************************************************************** ÁֹιøÈ£ üũÇÔ¼ö [2008.04.25 / ±è¹Î¿µ] ****************************************************************************/ this.CheckKssn = function(Number) { var NumberArr = new Array(); var CheckArr = new Array(2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5); var CheckedNum = 0; Number = Number.replace(/[^0-9]/, ''); if (Number.length != 13) return false; Number = Number.replace(/[^0-9]/, ''); Number = Number.replace(/([0-9])/g, "$1,"); Number = Number.replace(/([^0-9])$/, ""); NumberArr = Number.split(/,/); for (var i = 0; i <= 11; i++) CheckedNum = CheckedNum + NumberArr[i] * CheckArr[i]; if ((11 - (CheckedNum % 11)) % 10 != NumberArr[12]) return false; else return true; } /**************************************************************************** ¼ýÀÚ ÅØ½ºÆ® Çü½Ä [2008.04.28 / ±è¹Î¿µ] ****************************************************************************/ this.NumberFormat = function(Num) { Num += ""; var RepeatStr = ""; var RepeatStrTo = ""; var NumLength = Num.length; var NumRepeat = parseInt(NumLength / 3); for (var i = 0; i < NumRepeat; i++) { RepeatStr += "(\\d{3})"; RepeatStrTo += ",$" + (i + 1) + ""; } var RegObj = new RegExp(RepeatStr + "$"); Num = Num.replace(RegObj, RepeatStrTo).replace(/^,/, ''); return Num; } /**************************************************************************** ½ºÆ®¸µ ¾ÈÀÇ ½ºÅ©¸³Æ® ½ÇÇà [2008.07.31 / ±è¹Î¿µ] ****************************************************************************/ this.UseScript = function(Content) { Content = Content.replace(/\r\n|\r|\n/g, '__NewLine;'); var Script = Content.match(//gi); var Css = Content.match(//gi); var ScriptCode = ''; var CssCode = ''; if (Script) { for (var i = 0; i < Script.length; i++) { Script[i] = Script[i].replace(//gi, ''); Script[i] = Script[i].replace(/<\/script>/gi, ''); Script[i] = Script[i].replace(/document.write(.*?);/gi, ''); Script[i] = Script[i].replace(/var ([A-Z])/gi, '$1'); ScriptCode += Script[i]; } ScriptCode = ScriptCode.replace(/__NewLine;/g, '\r\n'); try { eval(ScriptCode); } catch(Err) { return false; } } if (Css) { for (var i = 0; i < Css.length; i++) { Css[i] = Css[i].replace(//gi, ''); Css[i] = Css[i].replace(/<\/style>/gi, ''); CssCode += Css[i]; } CssCode = CssCode.replace(/__NewLine;/g, '\r\n'); try { this.AddCss(CssCode); } catch(Err) { return false; } } } this.AddCss = function(CssText) { var Css = document.styleSheets[0]; if (navigator.appName == 'Microsoft Internet Explorer') { Css.cssText += CssText; } else if (Css.cssRules) { var CssTexts = CssText.split('\}'); for (var i = 0; i < CssTexts.length; i++) { if (CssTexts[i]) Css.insertRule(CssTexts[i] + '}\n', 0); } } } /**************************************************************************** ½ºÆ®¸µ ¾ÈÀÇ flash½ºÅ©¸³Æ® Embed·Î º¯°æ [2008.07.31 / ±è¹Î¿µ] ****************************************************************************/ this.ParseEmbed = function(Content) { Content = Content.replace(/\r|\n/g, ''); var Match = Content.match(/flash\((.*?)\)/gi); if (Match) { for (var i = 0; i < Match.length; i++) { var Embed = Match[i].replace(/\s|\"|\'/g, '').replace(/flash\((.*)\)/gi, '$1').split(/,/); Embed[4] = 'transparent'; var EmbTag = ""; var Exp = new RegExp(Match[i].replace(/(\/|\(|\))/g, '\\$1'), "gi"); Content = Content.replace(Exp, '<\/SCRIPT>' +EmbTag+ '