
var TimeReserv=function(){};TimeReserv._RESERV_HOUR_LIMIT=2;TimeReserv._RESERV_STEPS=3;TimeReserv._sProcDate=new Date().getFullYear()+'-'+(new Date().getMonth()+1)+'-'+new Date().getDate();TimeReserv._nComplatedStep=0;TimeReserv._bLocked=false;TimeReserv._aStylesForCont={'normal':'hour_rev','over':'hour_rev_over','click':'hour_rev_over'};TimeReserv._aIDs={'frmReserv':'frmReserv','timeChk':'reserv_checks','preContainer':'profile_img','prefixForLyr':'talk_step_','step2_stitle':'step2_stitle','step2_slink':'step2_slink','step3_stitle':'step3_stitle','preview':'preview_talk'}
TimeReserv._aAsyncs={'reserve':'/reserve/asyncs/reserve_input.async.php','save':'/reserve/asyncs/reserve.async.php','update':'/reserve/asyncs/update_state.async.php'};TimeReserv.report=function(sMsg,bErr)
{bErr=bErr||false;var sCode='헬리젯 서비스';if(sMsg.indexOf('[')>-1){var cRegEx=new RegExp(".([A-Z0-9]+)\](.+)","gi");var a=cRegEx.exec(sMsg);sCode='코드 : '+a[1];sMsg=a[2];}
if(!_gel(_NS_F.sContainer)){_NS_F.show(true,420,200);_NS_F.setHTML(['<div class="msgbox">','<h2>',sCode,'</h2>','<a onclick="_NS_F.show(false);" title="닫기" class="btn_close">닫기</a>','<div class="bg">','<ul class="msgarea">',sMsg,'<a onclick="_NS_F.show(false);" title="확인" class="btn_msg_ok">확인</a>','</ul></div></div>'].join(''));}
else{alert(sMsg);}}
TimeReserv.clearSelection=function()
{if(document.selection){document.selection.empty();}
else if(window.getSelection){window.getSelection().removeAllRanges();}}
TimeReserv.previewInput=function()
{var frm=_gel(this._aIDs.frmReserv);var sFlash='http://images2.ensight.co.kr/widgets/ranker/ranker_v3.swf';var sFlashVars=['customtalk=1','&link=',encodeURI(frm.slink.value),'&title=',encodeURI(frm.stitle.value),'&nick=',NSUser.getLoginInfo('nick'),'&profile=http://images.ensight.co.kr/profiles/',NSUser.getLoginInfo('idx'),'_50','&click=70&dest=100'].join('');var sEmbedCode=['<object id="preview_input_flash" type="application/x-shockwave-flash" data="',sFlash,'" width="166" height="105" class="swfupload">','<param name="wmode" value="transparent" />','<param name="movie" value="',sFlash,'" />','<param name="quality" value="high" />','<param name="menu" value="false" />','<param name="allowScriptAccess" value="always" />','<param name="flashvars" value="',sFlashVars,'" />','</object>'].join("");_gel(this._aIDs.preview).update(sEmbedCode);}
TimeReserv.replaceSpecialChars=function(s,sR)
{return s.replace(/[`()\\~!@^&*+$\"|=,<>#ㆍ]/g,(sR||''));};TimeReserv.cancelStep=function()
{if(confirm('입력을 취소 하시겠습니까?')){_NS_F.show(false);}}
TimeReserv.validateLiveLink=function(sUrl,nStep)
{if(this._bLocked){return;}
var func=function(res)
{TimeReserv._bLocked=false;var bValid=false;try{bValid=res!='undefined'&&_trim(res.responseText);}catch(e){}
if(!bValid){TimeReserv.report(['입력하신 URL이 올바른 컨텐츠를 갖고 있는 주소가 아닙니다.','\n다시한번 확인해 주시기 바랍니다.'].join(''));}
else{TimeReserv.previewInput();TimeReserv._nComplatedStep=nStep;TimeReserv.step(TimeReserv._nComplatedStep+1);}}
this._bLocked=true;_NS_FetchContent(sUrl,func);}
TimeReserv.complateStep=function(n)
{var frm=_gel(this._aIDs.frmReserv);switch(n){case 1:frm.stitle.value=this.replaceSpecialChars(frm.stitle.value,' ');if(frm.stitle.value.length<2){this.report('제목을 올바르게 입력해 주세요.');frm.stitle.focus();return false;}
else if(!_validate_url(frm.slink.value)){this.report('링크가 올바르게 입력되지 않았습니다.');frm.slink.focus();return false;}
_gel(this._aIDs.step2_stitle).update(frm.stitle.value);_gel(this._aIDs.step2_slink).update(frm.slink.value);_gel(this._aIDs.step3_stitle).update(frm.stitle.value);this.validateLiveLink(frm.slink.value,n);return;break;case 2:break;case 3:}
this._nComplatedStep=n;this.step(this._nComplatedStep+1);}
TimeReserv.step=function(n)
{if(!this._nComplatedStep||n>this._nComplatedStep+1){this.report('먼저 Step'+(this._nComplatedStep+1)+' 단계를 완료하셔야 합니다.');return;}
for(var i=1,iMax=this._RESERV_STEPS;i<=iMax;i++){if(i==n){_gel(this._aIDs.prefixForLyr+i).show();}
else{_gel(this._aIDs.prefixForLyr+i).hide();}}}
TimeReserv.previewProfileImage=function(s)
{_gel(this._aIDs.preContainer).update('<img src="'+s+"?"+new Date().getTime()+'" width=34 height=34 alt="프로필" />');}
TimeReserv.setProcDate=function(s)
{this._sProcDate=s;}
TimeReserv.spotCont=function(o,bOut,bClick)
{bOut=bOut||false;bClick=bClick||false;var oChk=o.getElementsByTagName('input')[0];if(!oChk){return;}
else if(oChk.checked){if(bClick){oChk.checked=false;o.className=this._aStylesForCont.normal;}else
{o.className=this._aStylesForCont.over;}
return;}
if(bOut){o.className=this._aStylesForCont.normal;}
else if(bClick){if(this.calculateCheckedHours()+1>this._RESERV_HOUR_LIMIT){this.report('하루에 '+this._RESERV_HOUR_LIMIT+'시간을 초과하여 신청하실 수 없습니다.');return;}
o.className=this._aStylesForCont.click;oChk.checked=true;}
else
{o.className=this._aStylesForCont.over;}}
TimeReserv.selectAsChildInput=function(o)
{var oChk=o.parentNode.getElementsByTagName('input')[0];if(!oChk){return;}
oChk.checked=oChk.checked?false:true;this.spotCont(o.parentNode);}
TimeReserv.limitHourDaily=function(n)
{this._RESERV_HOUR_LIMIT=n;}
TimeReserv.getCheckedReservArray=function()
{var a=[];var aChks=document.getElementsByName(this._aIDs.timeChk);for(var i=0,iMax=aChks.length;i<iMax;i++){if(aChks[i].checked){a.push(aChks[i].value);}}
return a;}
TimeReserv.calculateCheckedHours=function()
{var nUsedHours=0;var aChks=document.getElementsByName(this._aIDs.timeChk);for(var i=0,iMax=aChks.length;i<iMax;i++){if(aChks[i].checked){nUsedHours++;}}
return nUsedHours;}
TimeReserv.showReserve=function(nReservIdx)
{nReservIdx=nReservIdx||false;if(!nReservIdx&&!this.calculateCheckedHours()){this.report('신청하실 시간대를 선택해 주세요.');return;}
else if(!nReservIdx&&this.calculateCheckedHours()>this._RESERV_HOUR_LIMIT){this.report('하루에 '+this._RESERV_HOUR_LIMIT+'시간을 초과하여 신청하실 수 없습니다.');return;}
if(!NSUser.isLogin()){NSUser.afterLogin("TimeReserv.showReserve()");NSUser.login();return;}
var func=function(res){if(res.responseText.match(/[[A-Z0-9]+\].+/)){TimeReserv.report(res.responseText);}
else{_NS_F.show(true,960,498);_NS_F.setHTML(res.responseText);SWFU.success=function(o,serverData){TimeReserv.previewProfileImage(serverData)};SWFU.load({holder:'btnHolder'});}};Parameter.clear();Parameter.push('dt',this._sProcDate);Parameter.push('rtimes',this.getCheckedReservArray().join('|'));if(nReservIdx){Parameter.push('ridx',nReservIdx);}
_NS_FetchUrl(this._aAsyncs.reserve,Parameter.toString(),func);}
TimeReserv.reserve=function()
{if(this._bLocked){this.report('현재 이전작업이 진행중입니다. 잠시만 기다려 주세요.');}
if(!confirm('등록신청을 최종적으로 하시겠습니까?')){return;}
var func=function(res){TimeReserv._bLocked=false;if(res.responseText.indexOf('TRUE;')==-1)
{TimeReserv.report(_trim(res.responseText)+'\n잠시 후 다시한번 시도해 주시기 바랍니다.');}
else{TimeReserv.complateStep(2);}};var frm=_gel(this._aIDs.frmReserv);this._bLocked=true;_NS_FetchUrl(this._aAsyncs.save,frm.serialize(),func);}
TimeReserv.updateState=function(nIdx,nSt)
{if(!confirm('해당 예약정보에 적용 하시겠습니까?')){return;}
var func=function(res){if(res.responseText.indexOf('TRUE;')==-1)
{TimeReserv.report(_trim(res.responseText)+'\n잠시 후 다시한번 시도해 주시기 바랍니다.');}
else{TimeReserv.report('변경 되었습니다.');location.reload();}};Parameter.clear();Parameter.push('idx',nIdx);Parameter.push('st',nSt);_NS_FetchUrl(this._aAsyncs.update,Parameter.toString(),func);}