;(function(jQuery,window){var Violet={regularExpression:{PROTOCOL:/^(HTTPS?|FTPS?|FILE|TELNET|NEWS|GOPHER|MMS|SVN)(?:\:\/\/|%3A%2F%2F)?$/i,IP:/^[0-9]{2,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/,DOMAIN:/^(?:[a-z0-9]{1}[a-z0-9\_\-]*\.)*(?:[a-z0-9]{1}[a-z0-9\_\-]{1,62})\.(?:[a-z]{2}\.)?(?:[a-z]{2,4})$/i,PORT:/^(?:\:|%3A)([0-9]{1,5})$/,URI:/^((?:(?:[\%|\/|\?|\#|\&|\~|\!|\@]{1}|\%[a-f0-9]{2})(?:[0-9a-z가-힝\%|\/|\?|\#|\&|\~|\!|\@\$\(\)\*\+\-\,\.\_\:\,\=\[\]\^])+)*)+$/i,URL:/^(?:(HTTPS?|FTPS?|FILE|TELNET|NEWS|GOPHER|MMS|SVN)(?:\:\/\/|%3A%2F%2F))?([0-9]{2,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}|(?:[a-z0-9]{1}[a-z0-9\_\-]*\.)*(?:[a-z0-9]{1}[a-z0-9\_\-]{1,62})\.(?:[a-z]{2}\.)?(?:[a-z]{2,4}))(?:(?:\:|%3A)([0-9]{1,5}))?((?:(?:[\%|\/|\?|\#|\&|\~|\!|\@]{1}|\%[a-f0-9]{2})(?:[0-9a-z가-힝\%|\/|\?|\#|\&|\~|\!|\@\$\(\)\*\+\-\,\.\_\:\;\=\[\]\^])+)*)?$/i,EMAIL:/^([a-z0-9_\-]+)@((?:[a-z0-9]{1}[a-z0-9\_\-]*\.)*(?:[a-z0-9]{1}[a-z0-9\_\-]{1,62})\.(?:[a-z]{2}\.)?(?:[a-z]{2,4}))$/i,TEL:/^(?:(?:(0[0-9]{1,2})\-(?:[1-9]{1}[0-9]{1,3})|(?:15|16)[0-9]{2}))\-(?:[0-9]{4})(?:[\-|~]?[0-9]{1,5})?$/,FAX:/^(?:(?:(0[0-9]{1,2})\-(?:[1-9]{1}[0-9]{1,3})|(?:15|16)[0-9]{2}))\-(?:[0-9]{4})$/,PHONE:/^(?:010|011|016|017|018|019)\-(?:[1-9]{1}[0-9]{2,4})\-(?:[0-9]{4})$/,ID:/^[a-z]{1}[a-zA-Z0-9_\-]{4,19}$/,PASSWORD:/^[a-zA-Z0-9_\-\!\@\#\$\%\^\&\*\(\)\=>\+\,\.\/\:]{5,19}$/,PID:/^([0-9]{2}[0-1]{1}[0-9]{1}[0-3]{1}[0-9]{1})\-?([1-4]{1}[0-9]{6})$/,BID:/^([0-9]{3})-?([0-9]{2})-?([0-9]{5})$/,CID:/^([0-9]{6})\-([0-9]{7})$/,POSTAL:/^([0-9]{3})\-([0-9]{3})$/,DATE:/^([0-9]{4})\-([0-9]{1,2})\-([0-9]{1,2})$/,NUMBER:/^([0-9]+)$/,DECIMAL:/^(\+|\-)?([0-9\,\~]+)$/,FLOAT:/^(\+|\-)?([0-9\,\~]+)(?:\.([0-9]+))$/,MONEY:/^([\\\|\$|￦|＄|￡|￥|€]?)(\+|\-)?([0-9\,]+)(?:\.([0-9]+))?$/,HANGULE:/^[가-힝ㄱ-ㅎㅏ-ㅣ]+$/,ENGLISH:/^[a-zA-Z]+$/,SPECIAL:/^[\~\`\!\@\#\$\%\^\&\*\(\)\-\_\=\+\{\}\[\]\|\\\;\:\'\"\,\.\<\>\/\?]+$/,STRING:/^[가-힝ㄱ-ㅎㅏ-ㅣa-zA-Z0-9]+$/},regularExpressionFalse:{PROTOCOL:'[name][is:2] 형식에 맞지 않습니다.\n\n알려지지 않은 [name][is:0] 지원하지 않습니다.',IP:'[name][is:2] 형식에 맞지 않습니다.\n\n[name][is:1] 확인 후, 다시 시도하여 주십시오.',DOMAIN:'[name][is:2] 형식 ( HTTP:// 제외 ) 에 맞지 않습니다.\n\n[name][is:1] 확인 후, 다시 시도하여 주십시오.',PORT:'[name][is:2] 형식에 맞지 않습니다.\n\n[name][is:1] 확인 후, 다시 시도하여 주십시오.',URI:'[name][is:2] 형식에 맞지 않습니다.\n\n[name][is:1] 확인 후, 다시 시도하여 주십시오.',EMAIL:'[name][is:2] 형식에 맞지 않습니다.\n\n영문자와 숫자로 구성된 [name][is:1] 입력하여 주십시오.',URL:'[name][is:2] 형식에 맞지 않습니다.\n\n알려지지 않은 [name][is:0] 지원하지 않습니다.',TEL:'[name][is:0] 숫자와 특수문자 ( - ~ 공백 불가 ) 만으로 입력해야 합니다.\n\n형식 ( 123-1234-1234~1 ) 에 맞게 [name][is:1] 입력하여 주십시요.',FAX:'[name][is:0] 숫자와 특수문자 ( - 공백 불가 ) 만으로 입력해야 합니다.\n\n형식에 맞게 [name][is:1] 입력하여 주십시요.',PHONE:'[name][is:0] 숫자와 특수문자 ( - 공백 불가 ) 만으로 입력해야 합니다.\n\n형식에 맞게 [name][is:1] 입력하여 주십시요.',ID:'[name][is:0] 영문자와 숫자, 그리고 특수문자 ( - _ ) 만 사용이 가능합니다.\n\n첫 시작 글자는 영문자이어야 하며 한글은 사용하실 수 없습니다.\n\n최소 5글자 이상, 최대 20글자 이내로 입력하여 주십시오.',PASSWORD:'[name][is:0] 영문자와 숫자, 그리고 특수문자 ( - _ 외 다수 ) 만 사용이 가능합니다.\n\n최소 5글자 이상, 최대 20글자 이내로 입력하여 주십시오.',PID:'[name][is:0] 숫자와 특수문자 ( - ) 만으로 입력해야 합니다.\n\n형식 ( 예 : 123456-1234567 ) 에 맞게 입력하여 주십시오.',BID:'[name][is:0] 숫자와 특수문자 ( - ) 만으로 입력해야 합니다.\n\n형식 ( 예 : 123-12-12345 ) 에 맞게 입력하여 주십시오.',CID:'[name][is:0] 숫자와 특수문자 ( - ) 만으로 입력해야 합니다.\n\n형식 ( 예 : 123456-1234567 ) 에 맞게 입력하여 주십시오.',POSTAL:'[name][is:0] 숫자와 특수문자 ( - ) 만으로 입력해야 합니다.\n\n형식 ( 예 123-123 ) 에 맞게 입력하여 주십시오.',DATE:'[name][is:0] 숫자와 특수문자 ( - ) 만으로 입력해야 합니다.\n\n형식 ( 예 : 1234-12-12 ) 에 맞게 입력하여 주십시오.',NUMBER:'[name][is:0] 숫자만 입력이 가능합니다.',DECIMAL:'[name][is:0] 숫자와 특수문자 ( + - , ) 만 입력이 가능합니다.',FLOAT:'[name][is:0] 숫자와 특수문자 ( + - , . ) 만 입력이 가능합니다.',MONEY:'[name][is:0] 금액을 표기하기 위하여 숫자와 특수문자 ( + - , . ) 만으로 입력하셔야 합니다.',HANGULE:'[name][is:0] 한글만 입력 하실 수 있습니다.\n\n공백도 허용되지 않으므로, 입력 사항을 확인하여 주십시오.',ENGLISH:'[name][is:0] 영문만 입력 하실 수 있습니다.\n\n공백도 허용되지 않으므로, 입력 사항을 확인하여 주십시오.',SPECIAL:'[name][is:0] 특수문자 ( 예 : % & ^ # : ; { } [ ] - _ + = 등 )에 한하여 입력이 가능합니다.\n\n공백도 허용되지 않으므로, 입력 사항을 확인하여 주십시오.',STRING:'[name][is:0] 특수문자 ( 예 : @ # . - 등 ) 를 제외한 한글, 영어, 숫자만 입력이 가능합니다.\n\n공백도 허용되지 않으므로, 입력 사항을 확인하여 주십시오.'},isHangule:[['는','를','가','와'],['은','을','이','과']],telephoneCode:['070','080','02','031','032','033','041','042','043','051','052','053','054','055','061','062','063','064'],matches:{},message:{success:'입력 내용이 조건에 일치합니다.',failure:null},result:true,depend:[],target:'process'};Violet.error=function(description,url,line)
{if(url!=undefined&&line!=undefined&&url.match(/jquery\-1\.4\.2\.(min\.js|js)$/)&&line==1919)
return false;if(description=='Script error.')
return false;jQuery.ajax({type:'POST',async:false,url:'/_error/script.php',data:'line='+(line==undefined?'':line)+'&url='+encodeURIComponent(url==undefined?location.href:url)+'&description='+encodeURIComponent(description)});alert
((!description?'오류 메세지가 존재하지 않습니다.':description)
+(url!=undefined?'\n\nFile: '+url:'')
+(line!=undefined?'\n\nLine: '+line:''));}
Violet.getInner=function()
{if(device.name=='PC')
return{height:$document.height(),margin:0};return{height:window.innerHeight,margin:$document.scrollTop()==0?0:60};}
Violet.limitString=function(string,length,suffix)
{return(string.length>length)?string.substring(0,length)+(suffix==undefined?'‥':suffix):string;}
Violet.refineStringHidden=function(string,start,hidden)
{if(string.length==0)
return'';return Violet.getPadRight(start==0?'':string.substring(0,start),string.length-start,hidden==undefined?'*':hidden,false);}
Violet.getQueryName=function(name)
{var index=name.lastIndexOf("[]");return(index>=0)?'^='+name.substr(0,index):'='+name;}
Violet.refineMethodName=function(prefix,name)
{return prefix+Violet.getUpperFirst(name.toLowerCase());}
Violet.getRandomNumber=function(start,end)
{var result;start=parseInt(start,10);end=parseInt(end,10);if(start<0||end<0||start>end)
return alert('랜덤 생성을 위한 시작 값 ( '+start+' ) 과 종료 값 ( '+end+' ) 이 비 정상적입니다.');result=Math.round(Math.random()*(end-start));return result+start;}
Violet.getArrayLeft=function(array,random,roll,untie)
{var max,slice,value;if(array.length==0)
return alert('배열의 수가 0 이므로, 값을 반환 할 수 없습니다.');max=array.length-1;random=typeof(random)=='string'?random.toUpperCase():random;if(array.loop==undefined)
array.loop=0;if(array.index==undefined)
array.index=max;slice=(random=='Y')?Violet.getRandomNumber(0,array.index):(random=='N')?0:random;value=array.splice(slice,1);array.index--;if(roll==true)
array.push(value[0]);if(array.index<0)
{array.loop++;array.index=max;}
return(untie==true)?value[0]:value;}
Violet.getArrayRight=function(array,random,roll,untie)
{var max,slice,value;if(array.length==0)
return alert('배열의 수가 0 이므로, 값을 반환 할 수 없습니다.');max=array.length-1;random=typeof(random)=='string'?random.toUpperCase():random;if(array.loop==undefined)
array.loop=0;if(array.index==undefined)
array.index=0;slice=(random=='Y')?Violet.getRandomNumber(array.index,max):(random=='N')?max:random;value=array.splice(slice,1);array.index++;if(roll==true)
array.unshift(value[0]);if(array.index>max)
{array.loop--;array.index=0;}
return(untie==true)?value[0]:value;}
Violet.getToggleString=function(string,yes,no)
{return string==yes?no:yes;}
Violet.getBetween=function(number,min,max)
{number=parseInt(number,10);min=parseInt(min,10);max=parseInt(max,10);if(min>max)
return alert('최소 값이 최대 값 보다 클 수 없습니다.');return number<min?min:(number>max?max:number);}
Violet.getByte=function(string)
{var bytes=0;string=string.toString();for(i=0;i<string.length;i++)
bytes+=(string.charAt(i).charCodeAt()>128)?2:1;return bytes;}
Violet.getUpperFirst=function(string)
{string=string.toString();return string.substr(0,1).toUpperCase()+string.substring(1,string.length);}
Violet.getPadLeft=function(string,cipher,pad,just)
{var length,mod;pad=(pad==undefined)?'0':pad.toString();string=string.toString();cipher=parseInt(cipher,10);length=parseInt(string.length,10);if(cipher>length)
{mod=cipher-length;for(i=0;i<mod;i++)
string=pad+string;return string;}
else if(cipher<length)
return just==true?string.substring(length,length-cipher):string;else
return string;}
Violet.getPadRight=function(string,cipher,pad,just)
{var length,mod;pad=(pad==undefined)?'0':pad.toString();string=string.toString();cipher=parseInt(cipher,10);length=parseInt(string.length,10);if(cipher>length)
{mod=cipher-length;for(i=0;i<mod;i++)
string+=pad;return string;}
else if(cipher<length)
return just==true?string.substring(0,cipher):string;else
return string;}
Violet.getNumberFormat=function(number)
{if(number==undefined)
number='0';number=number.toString().split('.');var pattern=new Array();pattern["not"]=/[^0-9\+\-\.]/g;pattern["won"]=/([0-9]+)([0-9]{3})/;number[0]=number[0].replace(pattern['not'],'');while(pattern["won"].test(number[0]))
number[0]=number[0].replace(pattern["won"],"$1,$2");return number.join('.');}
Violet.getTimeToSecond=function(time,division)
{var i;if(division==undefined)
division=':';timeSplit=time.split(division);if(timeSplit.length<=1)return time;for(i in timeSplit)
timeSplit[i]=parseInt(timeSplit[i],10);return timeSplit[2]+(timeSplit[1]*60)+(timeSplit[0]*3600);}
Violet.getSecondToTime=function(second)
{var i,time=new Array();second=parseInt(second,10);time["h"]=Math.floor(second/3600);time["m"]=Math.floor((second-3600*time["h"])/60);time["s"]=second%60;for(i in time)
time[Violet.getUpperFirst(i)]=Violet.getPadLeft(time[i],2);time["HMS"]=time["H"]+":"+time["M"]+":"+time["S"];time["hms"]=time["h"]+":"+time["m"]+":"+time["s"];return time;}
Violet.setCookie=function(name,value,second,path,domain,secure)
{var date;if(second==undefined)
second='Thu, 01 Jan 1970 00:00:01 GMT';else
{date=new Date();date.setTime(date.getTime()+(second*1000));second=date.toGMTString();}
document.cookie=name+'='+value
+'; expires='+second
+'; path='+(path==undefined?'/':path)
+'; domain='+(domain==undefined?location.host:domain)
+(secure==undefined||secure==false?'':'; secure=true');}
Violet.getCookie=function(name)
{var i,cookies,c;name=name+'=';cookies=document.cookie.split(';');for(i=0;i<cookies.length;i++)
{while(cookies[i].charAt(0)==' ')
cookies[i]=cookies[i].substring(1,cookies[i].length);if(cookies[i].indexOf(name)==0)
return cookies[i].substring(name.length,cookies[i].length);}
return null;}
Violet.showCurtain=function(message)
{if(message==undefined)
message='고객님의 소중한 정보를 전송 중 입니다.<br>잠시만 기다려 주십시오.<br>감사합니다.';if(jQuery('#oneCurtain').size()==1)
return jQuery('#oneCurtain').show().find('p:first').html(message);var body=jQuery('body').append('<div id="oneCurtain"></div>');var curtain=jQuery('#oneCurtain').append('<p style="margin-top:'+(jQuery('#oneCurtain').height()/2)+'px">'+message+'</p>');if(body.height()>curtain.height())
curtain.height(body.height());}
Violet.hideCurtain=function()
{jQuery('#oneCurtain').hide();}
Violet._popupCalculate=function(obj,side)
{var mod;obj.scroll=false;obj.value=parseInt(obj.value,10);if(obj.position==undefined)
{mod=screen["avail"+side]-obj.value;if(mod>0)
obj.position=parseInt(mod/2,10);else
{obj.scroll=true;obj.value=screen["avail"+side];obj.position=0;}}
else
{mod=screen["avail"+side]-obj.position;if(mod<obj.value)
{obj.scroll=true;obj.value=mod;}}
return obj;}
Violet.popup=function(url,width,height,name,left,top,scroll)
{if(scroll==undefined)
scroll='';if(name==undefined)
name='windowPopup'+Math.round(Math.random()*100000);width=Violet._popupCalculate({position:left,value:width},'Width');height=Violet._popupCalculate({position:top,value:height},'Height');if(width.scroll&&height.scroll)
scroll=1;else if(width.scroll)
{height.value+=16;scroll=1;}
else if(height.scroll)
{width.value+=16;scroll=1;}
return window.open
(url,name,'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars='+scroll
+',resizable=0,width='+width.value+',height='+height.value
+',top='+height["position"]+',left='+width["position"]);}
Violet.reload=function()
{location.href=location.pathname+location.search+location.hash;}
Violet.addFavorites=function(url,title)
{if(!confirm(title+' ( '+url+' ) 을 즐겨찾기에 추가하시겠습니까?'))
return false;if(document.all)
return window.external.AddFavorite(url,title);else if(window.sidebar)
window.sidebar.addPanel(title,url,'');}
Violet.startWebPage=function(url)
{if(!document.all)
return false;document.body.style.behavior='url(#default#homepage)';document.body.setHomePage(url);}
Violet.validate=function(type,string)
{var method,count=Violet.regularMatch(type,string);if(count!=false)
{method=Violet.refineMethodName('justness',type);if(Violet[method]==undefined||typeof(Violet[method])!='function')
return count;if(Violet[method](Violet.matches))
return count;}
return false;}
Violet.regularMatch=function(type,string)
{Violet.matches=string.match(Violet.getRegularExpression(type));return Violet.matches==null?false:Violet.matches.length;}
Violet.setMessageSuccess=function(message)
{Violet.message.success=message;}
Violet.setMessageFailure=function(message)
{Violet.message.failure=message;}
Violet.setRegularExpression=function(type,expression)
{type=type.toUpperCase();if(Violet.regularExpression[type]!=undefined)
Violet.error('이미 할당되어 있는 정규식 조건 ( '+type+' / '+expression+' )입니다.');Violet.regularExpression[type]=expression;return true;}
Violet.getRegularExpression=function(type)
{type=type.toUpperCase();if(Violet.regularExpression[type]==undefined)
Violet.error('정의되지 않은 정규식 ( '+type+' ) 검사 방법입니다! 확인 후 다시 시도하여 주십시오.');return Violet.regularExpression[type];}
Violet.getRegularMatchFalse=function(type,name,is)
{var i,message,regexp;type=type.toUpperCase();if(Violet.regularExpressionFalse[type]==undefined)
Violet.error('정규식 검사 실패 안내 문구 ( '+name+' : '+type+' ) 가 존재하지 않습니다.');message=Violet.regularExpressionFalse[type];if(is==undefined)
is=0;if(Violet.isHangule[is]==undefined)
Violet.error('정규식 실패 안내 문구 조사 ( '+name+' : '+is+' ) 가 존재하지 않습니다.');for(i in Violet.isHangule[is])
{regexp=new RegExp('\\[is\\:'+i+'\\]','g');message=message.replace(regexp,Violet.isHangule[is][i]);}
return message.replace(/\[name\]/g,name);}
Violet.getIsHangule=function(parentKey,childKey)
{if(parentKey==undefined)
parentKey=0;if(Violet.isHangule[parentKey][childKey]!=undefined)
return Violet.isHangule[parentKey][childKey];Violet.error('지정되지 않은 한글 보조사입니다.');}
Violet.justnessFax=function(matches)
{if(matches.length==1)
return true;return jQuery.inArray(matches[1],Violet.telephoneCode)>=0?true:false;}
Violet.justnessPid=function(matches)
{var i,pid,sum=0,multiply=new Array(2,3,4,5,6,7,8,9,2,3,4,5);pid=matches[1]+matches[2];if(pid=='1111111111118')
return false;for(i=0;i<12;i++)
{if(typeof(parseInt(pid[i],10))!='number')
return false;sum+=(pid[i]*multiply[i]);}
if((11-(sum%11))%10!=pid[12])
return false;return true;}
Violet.justnessBid=function(matches)
{var i,bid,sum=0,multiply=new Array(1,3,7,1,3,7,1,3,5);bid=matches[1]+matches[2]+matches[3];if(bid=='1231212345')
return false;for(i=0;i<9;i++)
{if(typeof(parseInt(bid[i],10))!='number')
return false;sum+=(bid[i]*multiply[i]);}
sum=(10-Math.round(Math.floor((parseInt(bid[8],10)/2)+sum)%10))%10;if(bid[9]!=sum)
return false;return true;}
Violet.justnessCid=function(matches)
{var i,j=0,cid,sum=0;cid=matches[1]+matches[2];for(i=0;i<12;i++)
{if(j<1||j>2)
j=1;sum=sum+(cid[i]*j);j++;}
sum=(10-(sum%10))%10;if(cid[12]!=sum)
return false;return true;}
Violet.justnessDate=function(matches)
{var i,temp;for(i=1;i<=3;i++)
{matches[i]=parseInt(matches[i],10);if(matches[i]<=0)
return false;}
if(matches[1]>9999)
return false;if(matches[2]>12)
return false;if(matches[3]>31)
return false;return true;}
Violet.setTarget=function(target)
{Violet.target=target;}
Violet.failure=function(message)
{Violet.result=false;jQuery(':input[type=submit],:input[type=image]').attr('disabled',false);Violet.hideCurtain();if(message!=undefined&&message!='')
alert(message);return false;}
Violet.leave=function(input,message)
{var leave=jQuery(input).attr('leave');if(jQuery(input).attr('failure')!=undefined)
message=jQuery(input).attr('failure');Violet.failure(message);if(leave==undefined)
jQuery.inArray(jQuery(input).attr('type'),['text','password'])>=0?jQuery(input).select():jQuery(input).focus();else
{var obj=jQuery(':input[name'+Violet.getQueryName(leave)+']:eq(0)',jQuery(input).parents('form'));if(jQuery.inArray(obj.attr('type'),['hidden'])<0&&obj.attr('disabled')==false)
jQuery.inArray(obj.attr('type'),['text','password'])>=0?obj.select():obj.focus();}
return false;}
Violet.isJust=function(input)
{if(jQuery(input).attr('just')!=undefined)
return true;input=jQuery(input);var depend=input.attr('depend')
if(depend==undefined||depend=='')
return false;if(jQuery.inArray(depend,Violet.depend)>=0)
return Violet.depend[depend];var query=depend.split(':');query[0]=':input[name'+Violet.getQueryName(query[0])+']';query[1]=(query.length==1)?'[value!=]':'[value='+query[1]+']';var form=input.parents('form');var jObj=jQuery(query[0]+':eq(0)',form);if(jQuery.inArray(jObj.attr('type'),['select-one','select-multiple'])>=0)
query[1]=' option'+query[1]+':selected';else if(jQuery.inArray(jObj.attr('type'),['radio','checkbox'])>=0)
query[1]=(query[1]=='[value!=]')?':checked':query[1]+':checked';return Violet.depend[depend]=jQuery(query[0]+query[1],form).size()==0?false:true;}
Violet.check=function(form,config)
{Violet.result=true;Violet.depend=[];jQuery(':input:not([type=submit],[type="button"])',form).each(function(){var jObj=jQuery(this);var just=Violet.isJust(this);var min=jObj.attr('min')==undefined?0:parseInt(jObj.attr('min'),10);var max=jObj.attr('max')==undefined?0:parseInt(jObj.attr('max'),10);var small=jObj.attr('small')==undefined?0:parseInt(jObj.attr('small'),10);var large=jObj.attr('large')==undefined?0:parseInt(jObj.attr('large'),10);var value,count;switch(jObj.attr('type'))
{case'tel':case'email':case'text':case'hidden':case'password':case'textarea':case'file':value=jQuery.trim(jObj.val());count=value.length>0?Violet.getByte(value):0;if((small||large)&&jObj.attr('regular')==undefined)
jObj.attr('regular','decimal');if(just==true&&value=='')
return Violet.leave(this,jObj.attr('nick')+Violet.getIsHangule(jObj.attr('is'),0)+' 필수 입력 항목입니다.');if(min!=0&&value!=''&&count<min)
return Violet.leave(this,jObj.attr('nick')+Violet.getIsHangule(jObj.attr('is'),0)+' 최소 '+min+' 글자 ( 한글 1자는 2자로 취급 ) 이상 입력해야 합니다.');if(max!=0&&value!=''&&count>max)
return Violet.leave(this,jObj.attr('nick')+Violet.getIsHangule(jObj.attr('is'),0)+' 최대 '+max+' 글자 ( 한글 1자는 2자로 취급 ) 이내로 입력해야 합니다.');if(small!=0&&value!=''&&parseInt(value,10)<small)
return Violet.leave(this,jObj.attr('nick')+Violet.getIsHangule(jObj.attr('is'),0)+' 최소 '+small+' 이하로 입력 될 수 없습니다.');if(large!=0&&value!=''&&parseInt(value,10)>large)
return Violet.leave(this,jObj.attr('nick')+Violet.getIsHangule(jObj.attr('is'),0)+' 최대 '+large+' 이상 입력 될 수 없습니다.');if(value!=''&&jObj.attr('regular')!=undefined)
{if(Violet.validate(jObj.attr('regular'),value))
jObj.showMessageSuccess();else
{jObj.showMessageFailure();return Violet.leave(this,jObj.getMessageFailure());}}
break;case'checkbox':count=jQuery(':input[name'+Violet.getQueryName(jObj.attr('name'))+']'+':checked',form).size();if(just==true&&count==0)
return Violet.leave(this,jObj.attr('nick')+Violet.getIsHangule(jObj.attr('is'),1)+' 선택하여 주십시요.');if(min!=0&&count!=0&&count<min)
return Violet.leave(this,jObj.attr('nick')+Violet.getIsHangule(jObj.attr('is'),0)+' 최소 '+min+' 개 이상 선택해야 합니다.');if(max!=0&&count!=0&&count>max)
return Violet.leave(this,jObj.attr('nick')+Violet.getIsHangule(jObj.attr('is'),0)+' 최대 '+max+' 개 이내로 선택해야 합니다.');break;case'radio':count=jQuery(':input[name'+Violet.getQueryName(jObj.attr('name'))+']'+':checked',form).size();if(just==true&&count==0)
return Violet.leave(this,jObj.attr('nick')+Violet.getIsHangule(jObj.attr('is'),1)+' 선택하여 주십시요.');break;case'select-one':value=jQuery.trim(jObj.val());if(just==true&&value=='')
return Violet.leave(this,jObj.attr('nick')+Violet.getIsHangule(jObj.attr('is'),1)+' 선택하여 주십시요.');break;case'select-multiple':value=jObj.val()||[];if(just==true&&value.length==0)
return Violet.leave(this,jObj.attr('nick')+Violet.getIsHangule(jObj.attr('is'),1)+' 선택하여 주십시요.');if(min!=0&&value.length!=0&&value.length<min)
return Violet.leave(this,jObj.attr('nick')+Violet.getIsHangule(jObj.attr('is'),0)+' 최소 '+min+' 개 이상 선택해야 합니다.');if(max!=0&&value.length!=0&&value.length>max)
return Violet.leave(this,jObj.attr('nick')+Violet.getIsHangule(jObj.attr('is'),0)+' 최대 '+max+' 개 이내로 선택해야 합니다.');break;}});return Violet.result;}
jQuery.extend(jQuery.fn,{_applyElements:function(fun)
{this.each(function(){if(jQuery.inArray(this.nodeName,['INPUT','TEXTAREA','SELECT'])>=0)
jQuery(this).val(fun(jQuery(this).val()));else
jQuery(this).text(fun(jQuery(this).text()));});return this;},toggleString:function(yes,no)
{this._applyElements(function(value){return Violet.getToggleString(value,yes,no);})
return this;},hasEvent:function(name)
{var events=this.data('events');return(events&&events[name]);},set:function(value)
{if(jQuery.inArray(this.attr('type'),['radio','checkbox','select-multiple'])>=0)
this.val([value]);else
this.val(value);},numberFormat:function()
{var i;for(i=0;i<this.length;i++)
{if(jQuery.inArray(this[i].nodeName,['INPUT','TEXTAREA'])<0)
continue;this.eq(i).keyup(function(e){if((e.which>=48&&e.which<=57)||(e.which>=96&&e.which<=105)||jQuery.inArray(e.which,[8,46])>=0)
{var offset=jQuery(this).getSelection();var before=(jQuery(this).val().match(/,/gi)||[]).length;jQuery(this).val(Violet.getNumberFormat(jQuery(this).val()));var after=(jQuery(this).val().match(/,/gi)||[]).length;jQuery(this).setCursorPosition(offset.start+(after-before));}});}
return this;},setCursorPosition:function(position)
{var obj=jQuery(this).get(0);if(this[0].setSelectionRange)
this[0].setSelectionRange(position,position);else if(this[0].createTextRange)
{var range=this[0].createTextRange();range.collapse(true);range.moveEnd('character',position);range.moveStart('character',position);range.select();}},getSelection:function()
{var e=this.jquery?this[0]:this;return(('selectionStart'in e&&function(){var l=e.selectionEnd-e.selectionStart;return{start:e.selectionStart,end:e.selectionEnd,length:l,text:e.value.substr(e.selectionStart,l)};})||(document.selection&&function(){e.focus();var r=document.selection.createRange();if(r==null)
return{start:0,end:e.value.length,length:0};var re=e.createTextRange();var rc=re.duplicate();re.moveToBookmark(r.getBookmark());rc.setEndPoint('EndToStart',re);return{start:rc.text.length,end:rc.text.length+r.text.length,length:r.text.length,text:r.text};})||function(){return{start:0,end:e.value.length,length:0};})();},replaceSelection:function(){var e=this.jquery?this[0]:this;var text=arguments[0]||'';return(('selectionStart'in e&&function(){e.value=e.value.substr(0,e.selectionStart)+text+e.value.substr(e.selectionEnd,e.value.length);return this;})||(document.selection&&function(){e.focus();document.selection.createRange().text=text;return this;})||function(){e.value+=text;return this;})();},getMessageFailure:function(other)
{var message=this.attr('failure');if(message!=undefined)
return message;if(Violet.message.failure!=null)
return Violet.message.failure;var regular=this.attr('regular');var nick=this.attr('nick');if(regular!=undefined&&nick!=undefined)
return Violet.getRegularMatchFalse(regular,nick,this.attr('is'));},getMessageSuccess:function()
{var message=this.attr('success');return message==undefined?Violet.message.success:message;},showMessageFailure:function()
{jQuery('#'+this.attr('name')+'_message').css('color','red').text(this.getMessageFailure());return this;},showMessageSuccess:function()
{jQuery('#'+this.attr('name')+'_message').css('color','green').text(this.getMessageSuccess());return this;},validate:function(config)
{this.each(function(){var jObj=jQuery(this);if(jObj.attr('regular')==undefined||jObj.attr('nick')==undefined)
return;jObj.keyup(function(){if(jQuery.trim(jObj.val())=='')
return;if(Violet.validate(jObj.attr('regular'),jObj.val()))
{jObj.showMessageSuccess();if(config!=undefined&&config.success!=undefined&&typeof(config.success)=='function')
config.success(jObj,Violet.matches);}
else
{jObj.showMessageFailure();if(config!=undefined&&config.failure!=undefined&&typeof(config.failure)=='function')
config.failure(jObj);}});});return this;},regularMatch:function(config)
{this.each(function(){var jObj=jQuery(this);if(jObj.attr('regular')==undefined||jObj.attr('nick')==undefined)
return;jObj.keyup(function(){if(jQuery.trim(jObj.val())=='')
return;if(Violet.regularMatch(jObj.attr('regular'),jObj.val()))
{jObj.showMessageSuccess();if(config!=undefined&&config.success!=undefined&&typeof(config.success)=='function')
config.success(jObj,Violet.matches);}
else
{jObj.showMessageFailure();if(config!=undefined&&config.failure!=undefined&&typeof(config.failure)=='function')
config.failure(jObj);}});});return this;},check:function(config)
{this.each(function(){if(this.nodeName!='FORM')
return;var jObj=jQuery(this);var events=jObj.data('events');if(events!=null&&events.submit!=undefined)
{var i;for(i=0;i<events.submit.length;i++)
if(events.submit[i].namespace=='form.violet')
events.submit.splice(i,1);i=null;}
jObj.bind('submit.violet',function(){if(typeof(tinymce)=='object')
for(i=0;i<tinymce.editors.length;i++)
$('#'+tinymce.editors[i].id).val(tinymce.editors[i].save());jObj=jQuery(this);if(config.disabled!=false)
jObj.find(':input[type=submit],:input[type=image]').attr('disabled',true);jObj.find('select[multiple]').each(function(){var name=jQuery(this).attr('name');if(name.substr(name.length-2,2)!='[]')
jQuery(this).attr('name',name+'[]');});if(config.before!=undefined&&typeof(config.before)=='function')
if(!config.before(this))
return Violet.failure();if(Violet.check(this,config)==false)
return Violet.failure();if(config.after!=undefined&&typeof(config.after)=='function')
if(!config.after(this))
return Violet.failure();if(typeof(tinymce)=='object')
jObj.trigger('custom.tinymce');if(jObj.attr('target')==undefined||!jObj.attr('target'))
jObj.attr('target',config.target==undefined?Violet.target:config.target);if(config.curtain!=false)
Violet.showCurtain();if(config.ajax==undefined||config.ajax==false)
return true;ajax=jQuery.extend({},config);if(ajax.url==undefined)
ajax.url=jObj.attr('action')==undefined?location.pathname+location.search+location.hash:jObj.attr('action');if(ajax.type==undefined)
ajax.type=jObj.attr('method');if(ajax.complete==undefined)
ajax.complete=function(){Violet.failure();};if(ajax.data==undefined)
ajax.data=jQuery.param(jObj.serializeArray());else
ajax.data+='&'+jQuery.param(jObj.serializeArray());jQuery.ajax(ajax);return false;});});return this;}});window.Violet=Violet;var domain={};if(location.hostname.replace(/(\.[a-z]{2})?(\.[a-z]{2,4})$/i).indexOf('.')<0)
{domain.sub='www';domain.root=location.hostname;}
else
{var dot=location.hostname.indexOf('.');domain.sub=location.hostname.substr(0,dot);domain.root=location.hostname.substr(dot+1);dot=null;}
domain.full=domain.sub+'.'+domain.root;document.domain=domain.root;window.domain=domain;var device={};if(/iPhone/.test(navigator.userAgent))
device.name='iPhone';else if(/Android/.test(navigator.userAgent))
device.name='Android';else
device.name='PC';window.device=device;var special=jQuery.event.special,uid1='D'+(+new Date()),uid2='D'+(+new Date()+1);special.scrollstart={setup:function(){var timer,handler=function(evt){var _self=this,_args=arguments;if(timer)
clearTimeout(timer);else
{evt.type='scrollstart';jQuery.event.handle.apply(_self,_args);}
timer=setTimeout(function(){timer=null;},special.scrollstop.latency);};jQuery(this).bind('scroll',handler).data(uid1,handler);},teardown:function(){jQuery(this).unbind('scroll',jQuery(this).data(uid1));}};special.scrollstop={latency:100,setup:function(){var timer,handler=function(evt){var _self=this,_args=arguments;if(timer)
clearTimeout(timer);timer=setTimeout(function(){timer=null;evt.type='scrollstop';jQuery.event.handle.apply(_self,_args);},special.scrollstop.latency);};jQuery(this).bind('scroll',handler).data(uid2,handler);},teardown:function(){jQuery(this).unbind('scroll',jQuery(this).data(uid2));}};jQuery(document).ready(function(){if(jQuery('iframe[name=process]').size()!=0)
return;jQuery('body').append('<iframe name="process" width="0" height="0" frameborder="0" class="hidden"></iframe>');window.$document=device.name=='PC'?$('#inner'):$(document);});})(jQuery,window);
