
var NSWGallery=new Object;NSWGallery._sSortKey='';NSWGallery._sContainer='item_thumbs';NSWGallery.selectListItem=function(o,n)
{var aLinks=o.parentNode.getElementsByTagName('a');for(var i=0;i<aLinks.length;i++)
aLinks[i].className=i+1==n?'selected':'';}
NSWGallery.getlist=function(nP,sO)
{this._sSortKey=sO||(this._sSortKey?this._sSortKey:'Idx');var func=function(res)
{_gel(NSWGallery._sContainer).update(res.responseText);}
Parameter.clear();Parameter.push('page',nP);Parameter.push('ord',this._sSortKey);_NS_FetchUrl('/preview/asyncs/load_widget_list.async.php',Parameter.toString(),func);}
NSWGallery.makePaging=function(nTotalPage,nPageSize,nCurPage,sCallback,sParam)
{sParam=sParam||'';var nPgTerm=parseInt(nPageSize/2);var nStartPg=nTotalPage<=nPageSize||nCurPage-nPgTerm<1?1:nCurPage-nPgTerm;var nEndPg=nCurPage+nPgTerm>=nTotalPage?nTotalPage:(nCurPage+nPgTerm<nPageSize?(nPageSize>nTotalPage?nTotalPage:nPageSize):nCurPage+nPgTerm);nStartPg=nEndPg-nStartPg<nPageSize&&nStartPg>1?nStartPg-((nPageSize-1)-(nEndPg-nStartPg)):nStartPg;var sPaging='';for(i=nStartPg;i<=nEndPg;i++){if(nCurPage==i){sPaging+=' <strong>'+i+'</strong>';}
else{sPaging+=' <a onclick="'+sCallback+'('+i+', \''+sParam+'\');">'+i+'</a>';}}
sPaging='<a onclick="'+sCallback+'('+(nCurPage-1>0?nCurPage-1:1)+', \''+sParam+'\');" class="pre">이전</a> '+sPaging;sPaging=sPaging+' <a onclick="'+sCallback+'('+(nCurPage+1>nTotalPage?nTotalPage:nCurPage+1)+', \''+sParam+'\');" class="next">다음</a>';return sPaging;}
var NSRender=new Object;NSRender._nContainerType=0;NSRender.sPerfFormId='';NSRender.sPreviewId='';NSRender._sSelectedModuleID='';NSRender._oCustomParam={};NSRender._sRenderDrag='_ns_ifrmcontainer';NSRender._sRenderMsgBox='_ns_ifrmcontainer_msg';NSRender._sUseLayerId='_ns_layer_js';NSRender._sWidgetNameFId='widget_namef';NSRender._sWidgetSkinFId='widget_skinf';NSRender._sUnloadMsgBox='_ns_unload_message';NSRender._sWSourceBox='_ns_wsource';NSRender._sHost='helizet.com';NSRender._sChangedModuleCode='';NSRender._oLimitSize={minW:110,maxW:811,minH:100,maxH:811};NSRender._aContainerPaths=['/gadget/ifr','http://gadget.helizet.com/gadgets/ifr'];NSRender._bRenderRatioChk=true;NSRender._oStarP={};NSRender._oStarD={};NSRender._bStartD=false;NSRender._bModifiedDimensions=false;NSRender._bChanged=false;NSRender.cPrefs='';NSRender.getContainerPath=function()
{return this._aContainerPaths[0];}
NSRender.isOSC=function()
{return(this._nContainerType==1?true:false);}
NSRender.setContainerType=function(n)
{this._nContainerType=n;var frm=_gel(this.sPerfFormId);frm.cont.value=n;}
NSRender.setFormId=function(s)
{NSRender.sPerfFormId=s;}
NSRender.setPreviewId=function(s)
{NSRender.sPreviewId=s;}
NSRender.setPrefs=function(c)
{NSRender.cPrefs=c;}
NSRender.fireClose=function()
{if(document.referrer.indexOf(this._sHost)>-1)
_NS_F.show(false);else
{if(!this._bChanged)
{NSRender.reloadParent();return;}
var oU=_gel(this._sUnloadMsgBox);oU.style.position='absolute';oU.style.top='10px';oU.style.right='5px';oU.style.zIndex='1002';oU.show();}}
NSRender.reloadParent=function()
{var _sRef=document.referrer;top.location=_sRef.replace(/_ns_rmc=[0-9a-z]+[\?|\&]*/g,'')
+(NSRender._sChangedModuleCode?(document.referrer.indexOf('?')>-1?'&':'?')+'_ns_rmc='+NSRender._sChangedModuleCode:'');}
NSRender.execChange=function(sWC)
{if(!NSRender._sSelectedModuleID)
{alert('교체하실 위젯을 선택하셔야 합니다.');return;}
if(!NSUser.isLogin())
{NSUser.login();NSUser.afterLogin("NSRender.execChange('"+sWC+"','"+NSRender._sSelectedModuleID+"');");return;}
if(!NSRender._checkFields())return;if(!confirm('선택하신 위젯으로 교체하기를 원하십니까?'))return;var func=function(res)
{if(_trim(res.responseText)=='false')
alert('고객님께서 설치하신 위젯이 아닙니다.');else
{NSRender._sChangedModuleCode=_trim(res.responseText);alert('교체 되었습니다.\n실제 페이지에는 약 1~5분정도 후에 적용됩니다.');if(document.referrer.indexOf(NSRender._sHost)>-1)
NSRender.fireClose();else
NSRender.reloadParent();}}
Parameter.clear();Parameter.push('wc',sWC);Parameter.push('mid',NSRender._sSelectedModuleID);Parameter.push('param',_esc(_NS_GetModuleParam(NSRender.sPerfFormId)));_NS_FetchUrl('/mypage/asyncs/widget_changer.async.php',Parameter.toString(),func);}
NSRender.movePreviewTab=function(n)
{for(var i=0;i<4;i++)
{if((i+1)==n)
{_gel('option'+(i+1)).show();_gel('tab'+(i+1)).className='tab_over';_gel('tab'+(i+1)).show();}
else
{_gel('option'+(i+1)).hide();_gel('tab'+(i+1)).className='tab';}}}
NSRender.adjustDimensionsEvent=function(nStep,sN,bPrp,oW,oH)
{if(this.cPrefs.isReadOnly('w')||this.cPrefs.isReadOnly('h'))
{alert('크기를 조절할 수 없는 위젯입니다.');return;}
_gel(sN).value=parseInt(_gel(sN).value)+(nStep);this.adjustDimensions(sN,bPrp,oW,oH);this._bModifiedDimensions=true;}
NSRender._adjustDimEvent=function()
{if(this._bModifiedDimensions)
{this.preview();this._bModifiedDimensions=false;}}
NSRender.adjustDimensions=function(sN,bPrp,oW,oH)
{if(this.cPrefs.isReadOnly('w')||this.cPrefs.isReadOnly('h'))
return;var nW=parseInt(NSRender._oCustomParam.w||this.cPrefs.getInt('w'));var nH=parseInt(NSRender._oCustomParam.h||this.cPrefs.getInt('h'));var nW_=parseInt(oW.value),nH_=parseInt(oH.value);var nRatio=1;if(nH_<NSRender._oLimitSize.minH)
{oH.value=NSRender._oLimitSize.minH;this.adjustDimensions(sN,bPrp,oW,oH);return;}
if(nW_<NSRender._oLimitSize.minW)
{oW.value=NSRender._oLimitSize.minW;this.adjustDimensions(sN,bPrp,oW,oH);return;}
if(bPrp)
{if(sN=='w')
nH_=Math.ceil(nW_*(nH/nW));else
nW_=Math.ceil(nH_*(nW/nH));}
if(sN=='h')
oW.value=nW_;if(sN=='w')
oH.value=nH_;}
NSRender.selectSkin=function(sC)
{if(NSRender.cPrefs.getString('skin')=='noframe'||NSRender.cPrefs.getString('skin')=='noborderframe')
return;var oP=_gel(NSRender.sPerfFormId);oP.skin.value=sC;NSRender.preview();}
NSRender.previewToChange=function(s,nCont)
{nCont=nCont||0;this.setContainerType(nCont);var func=function(res)
{(new String(res.responseText)).evalScripts();NSRender.preview();}
NSRender._sSelectedModuleID=s;Parameter.clear();Parameter.push('mi',s);_NS_FetchUrl('/preview/asyncs/load_module_config.async.php',Parameter.toString(),func);}
NSRender._wrapSource=function()
{var aPrefs=_NS_Prefs._aPrefs[_NS_Prefs._MODULE_ID];var frm=_gel(NSRender.sPerfFormId);for(var i=0,iMax=aPrefs.length;i<iMax;i++)
{if(frm[aPrefs[i].name]&&aPrefs[i].util=='wrapcode')
{var s=frm[aPrefs[i].name].value;var _nLimitLength=1000;if(frm[aPrefs[i].name].value.indexOf('\n')>-1)
{s=s.replace(/^\/\/.*\n/gi,'').replace(/;[ ]*\/\/.*\n/gi,'').replace(/\n/g,' ').replace(/\/\*.*\*\//gi,'').replace(/[\s]{2,}/g,'');_nLimitLength=1500;}
if(s.indexOf('ensight.co.kr')>-1||s.indexOf('helizet.com')>-1)
{alert('제공되는 서비스의 태그를 넣을 수는 없습니다.');return false;}
if(s.length>_nLimitLength)
{alert('입력하실 태그는 1000자를 넘을 수 없습니다. 현재:'+s.length);frm[aPrefs[i].name].value='';return false;}
frm[aPrefs[i].name].value=s.indexOf('<')>-1?_esc(s):s;return true;}}
return true;}
NSRender.preview=function(b)
{if(!b)
NSRender._bChanged=true;_gel(NSRender._sWSourceBox).update('');if(!NSRender._wrapSource())return;var sModule=this.getContainerPath()
+'?'+_NS_GetModuleParam(NSRender.sPerfFormId)+'&nocache=1&_dg=1&output=js';_NS_FetchUrl(sModule,'',NSRender._previewLayout,'get');}
NSRender._previewLayout=function(res)
{var oP=_gel(NSRender.sPerfFormId);var nW=parseInt(oP.w.value),nH=parseInt(oP.h.value);sHtml=res.responseText.replace(/document\.write\(\'/g,'').replace(/\'\) \;/g,'');_gel(NSRender.sPreviewId).update('');_gel(NSRender.sPreviewId).style.position='relative';var oDragBox=document.createElement('div');oDragBox.id=oDragBox.className=NSRender._sRenderDrag;oDragBox.style.position='relative';oDragBox.style.marginTop=((440-nH)>0?(440-nH)/2:0)+'px';oDragBox.style.width=nW+'px';oDragBox.style.height=nH+38+'px';oDragBox.style.textAlign='right';oDragBox.style.verticalAlign='middle';oDragBox.innerHTML=sHtml;_gel(NSRender.sPreviewId).appendChild(oDragBox);if(NSRender.cPrefs.isReadOnly('w')||NSRender.cPrefs.isReadOnly('h'))
return;var oDragRun=document.createElement('div');oDragRun.style.position='absolute';oDragRun.style.cursor='se-resize';oDragRun.style.right='-20px';oDragRun.style.bottom='26px';oDragRun.innerHTML='<img src="/images/resize.gif" />';oDragBox.appendChild(oDragRun);oDragRun.onmousedown=function(evt)
{NSRender._setStartPos((evt?evt:window.event));NSRender._readyForDrag();}
if(oP.bUseLayer&&!_gel(NSRender._sUseLayerId))
_NS_loadJS('http://widget.ensight.co.kr/gadget/ifr/templates/dynamic_call_js.template.php','',NSRender._sUseLayerId);}
NSRender._setStartPos=function(evt)
{var oP=_gel(NSRender.sPerfFormId);var nW=parseInt(oP.w.value),nH=parseInt(oP.h.value);var evt=evt?evt:window.event;NSRender._oStarP={x:Event.pointerX(evt),y:Event.pointerY(evt)};NSRender._oStarD={width:nW,height:nH};}
NSRender._readyForDrag=function()
{var oCon=_gel(NSRender._sRenderDrag);var oDm=oCon.getDimensions();NSRender._bStartD=true;oCon.style.height=oDm.height+'px';oCon.style.padding='5px';oCon.style.border="2px dotted #5e5e5e";oCon.style.cursor='se-resize';document.body.style.cursor=oCon.style.cursor;_gel(NSRender.sPreviewId).style.position='static';oCon.update('');document.onmouseup=function(evt)
{if(!NSRender._bStartD)return;NSRender._bStartD=false;var oP=_gel(NSRender.sPerfFormId);oP.w.value=parseInt(_gel(NSRender._sRenderDrag).style.width);oP.h.value=parseInt(_gel(NSRender._sRenderDrag).style.height);NSRender.preview();document.body.style.cursor='';_gel(NSRender.sPreviewId).style.position='relative';}
document.onmousemove=function(evt)
{if(!NSRender._bStartD)return;var evt=evt?evt:window.event;var nX=parseInt(Event.pointerX(evt)-NSRender._oStarP.x);var nY=parseInt(Event.pointerY(evt)-NSRender._oStarP.y);var nW=(NSRender._oStarD.width+nX);var nH=(NSRender._oStarD.height+nY);if(NSRender._bRenderRatioChk)
{if(nW>nH)
nH=Math.ceil(nW*(NSRender._oStarD.height/NSRender._oStarD.width));else
nW=Math.ceil(nH*(NSRender._oStarD.width/NSRender._oStarD.height));}
if(nW>NSRender._oLimitSize.maxW||nW<NSRender._oLimitSize.minW||nH>NSRender._oLimitSize.maxH||nH<NSRender._oLimitSize.minW)
return;var oDM=_gel(NSRender._sRenderMsgBox);if(!oDM)
{var oDM=document.createElement('div');oDM.style.textAlign='center';oDM.id=NSRender._sRenderMsgBox;_gel(NSRender._sRenderDrag).appendChild(oDM);}
oDM.style.width=nW+'px';oDM.style.marginTop=(nH/2)-5+'px';_gel(oDM).update(nW+' X '+nH+' (픽셀)'+(NSRender._bRenderRatioChk?'<br />같은비율 조절중..':''));NSRender._scale(nW,nH);}}
NSRender._scale=function(nW,nH)
{_gel(NSRender._sRenderDrag).style.width=nW+'px';_gel(NSRender._sRenderDrag).style.height=nH+'px';}
NSRender._checkFields=function()
{var aPrefs=_NS_Prefs._aPrefs[_NS_Prefs._MODULE_ID];for(var i=0,iMax=aPrefs.length;i<iMax;i++)
{if(aPrefs[i].required&&_gel(NSRender.sPerfFormId)[aPrefs[i].name].value=='')
{alert(aPrefs[i].display_name+'을 반드시 입력해 주세요.');this.movePreviewTab(2);return false;}
if(aPrefs[i].valid&&!NSRender._validate(aPrefs[i].valid,aPrefs[i].display_name,_gel(NSRender.sPerfFormId)[aPrefs[i].name]))
return false;}
return true;}
NSRender.modifyBeforeLogin=function(sWCode,nWIdx)
{if(!NSUser.isLogin())
{NSUser.login();NSUser.afterLogin("NSRender.modify('"+sWCode+"','"+(nWIdx||'')+"');");}
else
NSRender.modify(sWCode,nWIdx);}
NSRender.modify=function(sWCode,nWIdx)
{if(!confirm('설정정보를 최종 저장 하시겠습니까?'))return;if(!NSRender._checkFields())return;var func=function(res)
{if(_trim(res.responseText)=='false')
alert('변경에 실패 하였습니다.\n잠시 후에 다시한번 시도해 보세요.');else
{NSRender._sChangedModuleCode=_trim(res.responseText);alert('변경되었습니다.\n실제 페이지에는 약 1~5분정도 후에 적용됩니다.');if(document.referrer.indexOf(NSRender._sHost)>-1)
location.href='/mypage/?q=1&u=/gadget/load/'+res.responseText+'.js';else
NSRender.reloadParent();}}
Parameter.clear();Parameter.push('wc',sWCode);Parameter.push('wi',(nWIdx?nWIdx:''));_NS_FetchUrl('/preview/asyncs/make_copycode.async.php?'+_NS_GetModuleParam(NSRender.sPerfFormId),Parameter.toString(),func);return;}
NSRender.copy=function(nWIdx)
{if(!NSRender._checkFields())return;if(!NSUser.isLogin())
{if(confirm('로그인을 하시고 퍼가기를 하시면 마이페이지를 통하여 \n설치된 위젯을 자유롭게 교체할 수 있습니다.\n\n로그인을 하시겠습니까?'))
{NSUser.login();return;}}else
{var func=function(res)
{if(_trim(res.responseText)=='false')
alert('코드 등록에 실패하였습니다.\n다시한번 시도하여 주십시요.');else
{var _sCode=_NS_GetCodeForMgmt(_trim(res.responseText));_NS_Copy(_sCode);NSRender.movePreviewTab(4);_gel(NSRender._sWSourceBox).update(_sCode.replace(/</g,'&lt;').replace(/>/g,'&gt;'));_gel(NSRender._sWSourceBox).select();alert('복사가 완료 되었습니다.\n키보드 Ctrl + v를 이용하여 붙여넣기를 하십시요.');}}
Parameter.clear();Parameter.push('wi',nWIdx);_NS_FetchUrl('/preview/asyncs/make_copycode.async.php?'+_NS_GetModuleParam(NSRender.sPerfFormId),Parameter.toString(),func);return;}
var _sCode=_NS_GetCode(_NS_GetModuleParam(NSRender.sPerfFormId));_NS_Copy(_sCode);NSRender.movePreviewTab(4);_gel(NSRender._sWSourceBox).update(_sCode.replace(/</g,'&lt;').replace(/>/g,'&gt;'));_gel(NSRender._sWSourceBox).select();alert('복사가 완료 되었습니다.\n키보드 Ctrl + v를 이용하여 붙여넣기를 하십시요.');}
NSRender._validate=function(sT,sTN,oIn)
{switch(sT)
{case'url':if(!_validate_url(oIn.value))
{alert(sTN+'의 URL형식이 올바르지 않습니다.');oIn.focus();return false;}
break;}
return true;}
NSRender.setPrefParam=function(s)
{if(!s)return;NSRender._oCustomParam=s.toQueryParams();}
NSRender.findDimPattern=function(s)
{if(!s)return;try
{s=decodeURIComponent(decodeURIComponent(s));}catch(e){return;}
var nW=0,nH=0;if(s.match(/width[ ]*.[ ]*[0-9]+/gi)&&s.match(/height[ ]*.[ ]*[0-9]+/gi))
{nW=parseInt(new RegExp("width[ ]*.[ ]*([0-9]+)","gi").exec(s)[1])||0;nH=parseInt(new RegExp("height[ ]*.[ ]*([0-9]+)","gi").exec(s)[1])||0;}
else if(s.match(/\;w[ ]*.[ ]*[0-9]+/gi)&&s.match(/\;h[ ]*.[ ]*[0-9]+/gi))
{nW=parseInt(new RegExp(";w[ ]*.[ ]*([0-9]+)","gi").exec(s)[1])||0;nH=parseInt(new RegExp(";h[ ]*.[ ]*([0-9]+)","gi").exec(s)[1])||0;}
if(nW&&nH)
{var oP=_gel(NSRender.sPerfFormId);oP.w.value=nW||oP.w.value;oP.h.value=nH||oP.h.value;NSRender.preview();}}
NSRender.initializePrefValue=function()
{var sParam='';var aPrefs=this.cPrefs.getAll();for(var i=0,iMax=aPrefs.length;i<iMax;i++)
sParam+=(sParam?'&':'')+aPrefs[i].name+'='+aPrefs[i].default_value;NSRender.setPrefValue(sParam+(!this.cPrefs.getString('skin')?'&skin='+(this.isOSC()?'noframe':'skin01'):''));}
NSRender.setPrefValue=function(s)
{if(s)NSRender.setPrefParam(s);var afrms=$(NSRender.sPerfFormId).getElements();var oQry=NSRender._oCustomParam;for(var i=0;i<afrms.length;i++)
{if(!oQry[afrms[i].name])continue;switch(afrms[i].tagName)
{case'INPUT':afrms[i].value=oQry[afrms[i].name];if(afrms[i].type=='checkbox')
afrms[i].checked=true;break;case'TEXTAREA':afrms[i].value=oQry[afrms[i].name];break;case'SELECT':for(var j=0;j<afrms[i].options.length;j++)
afrms[i].options[j].selected=afrms[i].options[j].value==oQry[afrms[i].name]?true:false;break;}}}
NSRender.makePref=function(sPId)
{var sHtml='';var aPrefs=_NS_Prefs._aPrefs[_NS_Prefs._MODULE_ID];var frm=_gel(NSRender.sPerfFormId);var sOnChange='onchange="NSRender.preview();"';var sOnClick='onclick="NSRender.preview();"';var _sPrefixForName=this.isOSC()?'up_':'';Element.update(sPId,'');for(var i=0,nApp=0,iMax=aPrefs.length;i<iMax;i++)
{if(frm[aPrefs[i].name]&&!aPrefs[i].util)
{frm[aPrefs[i].name].value=aPrefs[i].default_value;frm[aPrefs[i].name].readOnly=aPrefs[i].readonly=='true'?true:false;continue;}
if(aPrefs[i].datatype=='hidden')
{sHtml+='<input type="hidden" name="'+_sPrefixForName+aPrefs[i].name+'" value="'+aPrefs[i].default_value+'" />';continue;}
nApp++;sHtml+='<tr>';sHtml+='<td class="field'+(nApp==1?' line_top':'')+'">'+aPrefs[i].display_name+'</td>';sHtml+='<td class="item'+(nApp==1?' line_top':'')+'"><table><tr><td>';switch(aPrefs[i].datatype)
{case'string':var nSize=aPrefs[i].default_value.length;nSize=nSize?nSize*15:200;nSize=nSize>300?300:nSize;sHtml+='<input class="content_input" name="'+_sPrefixForName+aPrefs[i].name+'" value="'
+(aPrefs[i].valid=='url'&&!aPrefs[i].default_value?'http://':aPrefs[i].default_value)+'" '
+'style="width:'+nSize+'px;" '+sOnChange+' required="'+aPrefs[i].required+'" />'
+(aPrefs[i].util=='colorpicker'?' <button class="palette" id="up_'+aPrefs[i].name+'_palette" />':'');break;case'text':sHtml+='<textarea name="'+_sPrefixForName+aPrefs[i].name+'" style="width: 300px; height: 50px;" value="'+aPrefs[i].default_value+'"'+sOnChange
+' util="'+aPrefs[i].util+'"'+(aPrefs[i].util=='wrapcode'?' onblur="NSRender.findDimPattern(this.value);"':'')
+'>'+aPrefs[i].default_value+'</textarea>';break;case'bool':sHtml+='<input type="checkbox" name="'+_sPrefixForName+aPrefs[i].name+'" value="1"'+(aPrefs[i].default_value=='true'?' checked':'')+' '+sOnClick+' />';break;case'enum':sHtml+='<select name="'+_sPrefixForName+aPrefs[i].name+'" '+sOnChange+'>';for(var j=0,jMax=aPrefs[i].enums.length;j<jMax;j++)
sHtml+='<option value="'+aPrefs[i].enums[j].value+'"'+(aPrefs[i].default_value==aPrefs[i].enums[j].value?' selected':'')+'>'+aPrefs[i].enums[j].display_value+'<\/option>';sHtml+='<\/select>';break;}
sHtml+='</tr></table></td></tr>';}
Element.update(sPId,sHtml);NSRender._loadUtilModule(aPrefs);if(NSRender.cPrefs.getString('skin')=='noframe'||NSRender.cPrefs.getString('skin')=='noborderframe')
{_gel(NSRender._sWidgetNameFId).hide();_gel(NSRender._sWidgetSkinFId).hide();}
else
{_gel(NSRender._sWidgetNameFId).show();_gel(NSRender._sWidgetSkinFId).show();}}
NSRender._loadColorPicker=function(sN)
{var sF='(new Control.ColorPicker(_gel("'+NSRender.sPerfFormId+'")["'+sN+'"],{onClose : NSRender.preview,"swatch": "'+sN+'_palette"}))';_NS_loadCSS('http://widget.ensight.co.kr/colorpicker/styles/colorpicker.css');_NS_loadJS('http://widget.ensight.co.kr/colorpicker/scripts/colorpicker.js',sF);return;}
NSRender._loadUtilModule=function(aPrefs)
{for(var i=0;i<aPrefs.length;i++)
{if(!aPrefs[i].util)continue;switch(aPrefs[i].util)
{case'colorpicker':NSRender._loadColorPicker(aPrefs[i].name);break;default:}}}