
var NSWidget=new Object;NSWidget._bCapture=false;NSWidget._sCaptureCont='';NSWidget._nMarkedStar=5;NSWidget.removeComment=function(nIdx)
{if(!confirm('해당 댓글을 삭제 하시겠어요?'))
return false;var func=function(res)
{if(_trim(res.responseText)=='true')
location.reload();else
alert('댓글 삭제에 실패하였습니다. 다시한번 시도해 주세요.');}
Parameter.clear();Parameter.push('ci',nIdx);_NS_FetchUrl('/preview/asyncs/remove_comment.async.php',Parameter.toString(),func);}
NSWidget.submitComment=function()
{var ofrm=_gel('frmComm');ofrm.star.value=NSWidget._nMarkedStar;var func=function(res)
{if(_trim(res.responseText)=='true')
location.reload();else
alert('댓글 등록에 실패하였습니다. 다시한번 시도해 주세요.');}
_NS_FetchUrl('/preview/asyncs/insert_comment.async.php',Form.serialize(ofrm),func);}
NSWidget.checkComment=function(o,nLimit,sDisp)
{var nLenth=o.value.length;if(nLenth>nLimit)
{o.value=o.value.substr(0,nLimit);alert(nLimit+'자 이하만 입력 가능 합니다.');}
_gel(sDisp).update(nLenth);}
NSWidget.makeStarPoint=function(sContId,n)
{var sStars='';for(var i=1;i<6;i++)
sStars+='<img src="/images/icon_star_'+(n>=i?'y':'g')+'.gif" />';_gel(sContId).update(sStars);}
NSWidget.getMarkedStar=function()
{return NSWidget._nMarkedStar;}
NSWidget.makeCaptureStar=function(s)
{NSWidget._sCaptureCont=s;var sStars='';for(var i=1;i<6;i++)
sStars+='<img src="/images/staron.gif" onmouseover="NSWidget.markStar('+i+');" />';_gel(s).update(sStars);}
NSWidget.markStar=function(n)
{var aImgs=_gel(NSWidget._sCaptureCont).getElementsByTagName('img');for(var i=0;i<aImgs.length;i++)
aImgs[i].src=i<n?'/images/staron.gif':'/images/staroff.gif';NSWidget._nMarkedStar=n;}
NSWidget.selectStar=function(e)
{alert(NSWidget._nCaptureLeft);}
var NSRender=new Object;NSRender.sPerfFormId='';NSRender.sPreviewId='';NSRender._sRenderDrag='_ns_ifrmcontainer';NSRender._sRenderMsgBox='_ns_ifrmcontainer_msg';NSRender._sUseLayerId='_ns_layer_js';NSRender._sWidgetNameFId='widget_namef';NSRender._sWidgetSkinFId='widget_skinf';NSRender._oLimitSize={minW:110,maxW:811,minH:100,maxH:811};NSRender._bRenderRatioChk=true;NSRender._oStarP={};NSRender._oStarD={};NSRender._bStartD=false;NSRender.cPrefs='';NSRender.setFormId=function(s)
{NSRender.sPerfFormId=s;}
NSRender.setPreviewId=function(s)
{NSRender.sPreviewId=s;}
NSRender.setPrefs=function(c)
{NSRender.cPrefs=c;}
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.preview=function()
{var sModule=_NS_GetDefModuleUrl()+'?'+_NS_GetModuleParam(NSRender.sPerfFormId)+'&_dg=1&output=js';_NS_FetchXmlContent(sModule,NSRender._previewLayout);}
NSRender._previewLayout=function(res)
{var oP=_gel(NSRender.sPerfFormId);var nW=parseInt(oP.w.value),nH=parseInt(oP.h.value);var sHtml='';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 oDragChk=document.createElement('div');oDragChk.style.position='absolute';oDragChk.style.right='-24px';oDragChk.style.width='70px';oDragChk.style.bottom='0px';oDragChk.innerHTML='<label for="_ns_render_ratio" style="color: #999; font-size: 12px; letter-spacing:-1; ">같은비율</label>'+'<input type="checkbox" id="_ns_render_ratio" '+(NSRender._bRenderRatioChk?'checked':'')+' onclick="javascript: NSRender._bRenderRatioChk=this.checked;">';oDragBox.appendChild(oDragChk);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+'을 반드시 입력해 주세요.');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.modify=function(sWCode,nWIdx)
{if(!confirm('설정정보를 최종 저장 하시겠습니까?'))return;if(!NSRender._checkFields())return;var func=function(res)
{if(_trim(res.responseText)=='false')
alert('변경에 실패 하였습니다.\n잠시 후에 다시한번 시도해 보세요.');else
{alert('변경되었습니다.\n실제 페이지에는 약 1~5분정도 후에 적용됩니다.');location.href='/mypage/?q=1&u=/gadget/load/'+res.responseText+'.js';}}
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();NSUser.afterLogin((function(){NSRender.copy(nWIdx)}));return;}}else
{var func=function(res)
{if(_trim(res.responseText)=='false')
alert('코드 등록에 실패하였습니다.\n다시한번 시도하여 주십시요.');else
{_NS_Copy(_NS_GetCodeForMgmt(_trim(res.responseText)));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;}
_NS_Copy(_NS_GetCode(_NS_GetModuleParam(NSRender.sPerfFormId)));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.setValuePref=function(s)
{if(!s)return;var afrms=$(NSRender.sPerfFormId).getElements();var oQry=s.toQueryParams();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'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=$(NSRender.sPerfFormId);var sOnChange='onchange="NSRender.preview();"';var sOnClick='onclick="NSRender.preview();"';Element.update(sPId,'');for(var i=0,iMax=aPrefs.length;i<iMax;i++)
{if(frm[aPrefs[i].name])
{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="'+aPrefs[i].name+'" />';continue;}
sHtml+='<tr>';sHtml+='<td class="nsPrefF">'+aPrefs[i].display_name+'</td>';sHtml+='<td class="nsPrefL">';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 name="'+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="'+aPrefs[i].name+'_palette" />':'');break;case'bool':sHtml+='<input type="checkbox" name="'+aPrefs[i].name+'" value="1"'+(aPrefs[i].default_value=='true'?' checked':'')+' '+sOnClick+' />';break;case'enum':sHtml+='<select name="'+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>';}
Element.update(sPId,sHtml);NSRender._loadUtilModule(aPrefs);if(NSRender.cPrefs.getString('skin')=='noframe'||NSRender.cPrefs.getString('skin')=='noborderframe')
{_gel(NSRender._sWidgetNameFId).update('위젯명 기능이 지원되지 않는 위젯입니다.<input type="hidden" name="_ns_wt" /><input type="hidden" name="_ns_wtn" />');_gel(NSRender._sWidgetSkinFId).update('스킨 기능이 지원되지 않는 위젯입니다.');return;}}
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);}
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:}}}