1)
오랫동안 kTours 쪽 기능을 조정해왔는데요..
완성본..이라고 하기엔 아직도 미숙하지만,
코멘트라도 붙여볼까 합니다.
* 참고 *
http://ktours.cyworld.com - 현재 해당 스크립트를 열심히 쓰고있는 클럽입니다.
http://club.cyworld.com/5083224319/186180312 - 해당 스크립트를 보관/보조하고 있는 게시물입니다.
* 도움(?) *
- Internet Explorer -
: javascript 초안을 잡는데 사용했습니다.
- 싸이월드 클럽서비스 -
: 사진을 보관하는 데 사용하고 있습니다.
- FireFox -
: IE와 가장 대립하는 브라우져로 선택했습니다.
- Chrome 브라우져 -
: 속도가 빨라서 자주 쓰고 있습니다.
크롬확장프로그램 - JSBeautify for Google Chrome™ -
: 아래 표시되는 스크립트 내용들 정렬에 사용됐습니다.
- Safari -
: IE와 대비되는 브라우져로 선택했습니다.
- Opera -
: 역시 IE와 대비되는 브라우져로 선택했습니다.
...
2) 최적화 전..
var
linkImages=[]
, imageInit, waitHint, waitZoom
, waitSummery
, showSummery, showSummery2
, resizing, imageSet
, innerHTML
, readyScroll, moveMouse, moveScroll, endScroll, pressScroll, sizingSecond
, summeryImageBottom
, aniNv, aniFloorv, aniWv, aniTypev
, aniNvS, aniFloorvS, aniWvS, aniTypevS
, viWb
, viewOrder, viewOrderSet
// , viewOrder=0, viewOrderSet={}
, viewImageRecall
, autoScroll, clearAutoScroll, sendObjAttribValue // for send to new window
, autoScrollS
, temp=''
;
// -- help for var receiver
function argumentReceiver() {
// var ar=argument, i;
// for (i=0; i<ar.length; i++) temp+=typeof(ar[i]);
}
function scriptInit() {
var
is_j=0
, HintWait, ZoomWait, ZoomOrder, lastZoom=-1, iiH
, zGab, zWidth, zHeight
, saveOwidth=1024, saveOheight=768
, imageMaximum=16383, scrollBarHeight=22
, screenAlphaElementStyle, backStyleElement, returnSpaceElement, zoomSpaceElement
, receivedSummeryWidth, receivedSummeryHeight, receivedSummeryImageSrc
, receivedScreenOpacity, receivedSummeryImageBottom, receivedSummeryPadding
, receivedLinkImages
, receivedHintOrder
, stringgi='gi'
, MathElement=Math, floor='floor'
, rPattern=new RegExp('', stringgi)
, INT=parseInt
, functionS='function'
, showSummery, showSummery2
, length='length'
, substring='substring', substr='substr', write='write', charAt='charAt'
, filter='filter', opacity='opacity', position='position'
, height='height'
, moveTo='moveTo'
, compile='compile', replace='replace'
, lightgreen='lightgreen'
// for hash value
, timeHash='', propertyHash=''
, onpropertychange='onpropertychange', attachEvent='attachEvent', onhashchange='onhashchange'
, selection='selection', empty='empty'
, getSelection='getSelection', removeAllRanges='removeAllRanges'
, srcElement='srcElement'
, dataTransfer='dataTransfer', dropEffect='dropEffect', effectAllowed='effectAllowed'
, openerviWbS='opener.viWb'
, screenAlpha='screenAlpha', backStyle='backStyle', returnSpace='returnSpace', ZoomSpace='ZoomSpace'
, Left='Left', Top='Top', Width='Width', Height='Height'
, Owidth='Owidth', Oheight='Oheight', Hint='Hint', ZImage='ZImage'
, stringS='S', stringW='W', stringV='V', stringI='I'
, anied='anied', aniN='aniN', aniType='aniType', aniFloor='aniFloor', aniW='aniW'
, Src='Src'
, stringHanguel={}
, HLeft='HLeft', HTop='HTop', HWidth='HWidth', HHeight='HHeight'
, retitleS='retitle'
, readyScrollS='readyScroll', moveMouseS='moveMouse'
, moveScrollS='moveScroll', endScrollS='endScroll', pressScrollS='pressScroll'
, clearAutoScrollS='clearAutoScroll'
, resizingNewWindow, retitle, reValue
, reValueS='reValue'
, processHash='', processHint=-1, processZoom=-1, processMain='', waitHash
, lastHash='', lastHint=-1, lastZoom=-1
, elementZone='{elementZone}'
, brs=['<br>', '<br/>', '<BR>', '<BR/>', '</p>', '</P>']
// -- for new window replaying zone
, scrollPressed, movedPress
, eventS
, argueventS
, documentS, body, locationS, focusS
, setTimeoutS, clearTimeoutS
, indexOf
, resizeTo
, resizeBy
, style
, zIndex
, target
, cursor, pointer
, hash
, clientX, clientY
, scrollLeft, scrollTop
, readyState
, windowElement, documentElement, documentBodyElement, locationElement
, timeOut, timeOutClear
, onloadFunctionS
, sizingSecondS
, title
, scrollWidth, scrollHeight, clientWidth, clientHeight
, showElement, scrollbarElement, showScroll
, startAnimation
, pressedX, pressedY, pressedLeft
, autoScrollEventer
, stringAS, stringWV, stringA, stringASWV
, resizingS
, aniNvS, aniFloorvS, aniWvS, aniTypevS
;
reValue=function () {
innerHTML='innerHTML';
eventS='event';
argueventS='('+eventS+')';
documentS='document'; body='body'; locationS='location', focusS='focus'
setTimeoutS='setTimeout'; clearTimeoutS='clearTimeout'
indexOf='indexOf';
resizeTo='resizeTo';
resizeBy='resizeBy';
style='style';
zIndex='zIndex';
target='target';
pointer='pointer'; cursor='cursor';
hash='hash';
clientX='clientX'; clientY='clientY';
scrollLeft='scrollLeft'; scrollTop='scrollTop';
readyState='readyState';
windowElement=window;
documentElement=windowElement[documentS];
documentBodyElement=documentElement[body];
locationElement=windowElement[locationS];
timeOut=windowElement[setTimeoutS];
timeOutClear=windowElement[clearTimeoutS];
onloadFunctionS='onloadFunction';
sizingSecondS='sizingSecond';
title='title';
scrollWidth='scrollWidth'; scrollHeight='scrollHeight';
clientWidth='clientWidth'; clientHeight='clientHeight';
showElement='showElement'; scrollbarElement='scrollbarElement'; showScroll='showScroll';
startAnimation='startAnimation';
stringAS='AS'; stringWV='WV'; stringA='A'; stringASWV=stringAS+stringWV;
resizingS='resizing';
viewOrder=0; viewOrderSet={};
aniNvS='aniNv'; aniFloorvS='aniFloorv'; aniWvS='aniWv'; aniTypevS='aniTypev';
autoScrollS='autoScroll';
};
reValue();
// -- end of new window replaying zone
function ontimeHash() {
if (timeHash!=locationElement[hash]) { timeHash=locationElement[hash]; onpropertyHash(); }
timeOut(ontimeHash, 200);
}
function onpropertyHash() {
if (propertyHash!=locationElement[hash]) {
// set propertyReceived
processHash=propertyHash=locationElement[hash];
// process of hash
readyHashing();
}
// timeOut(ontimeHash, 200);
}
function breakHashing() { if (waitHash) timeOutClear(waitHash); waitHash=0; }
function readyHashing() { breakHashing(); waitHash=timeOut(hashing, 100); }
function hashing() {
var receivedHashNo, sh;
breakHashing(); // start by only one processHash
// process of hash
processHint=-1; processZoom=-1;
while (processHash[charAt](0)) {
receivedHashNo=-1;
// if (processHash[charAt](0)=='#') processHash=processHash[substr](1, processHash[length]);
switch(processHash[charAt](0)) {
case '#' : break;
case 'H' :
receivedHashNo=INT(processHash[substring](1, processHash[length]));
// if ((receivedHashNo<0)||(receivedHashNo>receivedLinkImages[length])) return; // receive just avable hints
// if ((receivedHashNo<0)||(receivedHashNo>receivedLinkImages[length])) break; // receive just avable hints
if (receivedHashNo>=0)
processHint=receivedHashNo;
// showHint();
// processHash=processHash[substring](processHash[indexOf](receivedHashNo+'', 1)+(receivedHashNo+'').length, processHash[length]);
// breakHint(); if (processHash) HintWait=timeOut(hashing, 100);
break;
case 'Z' :
receivedHashNo=INT(processHash[substring](1, processHash[length]));
// if (!(sh=receivedLinkImages[receivedHintOrder][ZImage])) return;
// if ((receivedHashNo<0)||(receivedHashNo>sh[length])) return;
if (receivedHashNo>=0)
processZoom=receivedHashNo; // sh=sh[receivedHashNo];
// showZoom();
// processHash=processHash[substring](processHash[indexOf](receivedHashNo+'', 1)+(receivedHashNo+'').length, processHash[length]);
// breakZoom(); if (processHash) ZoomWait=timeOut(hashing, 100);
break;
case stringI: case stringS: case stringA: case stringW: case stringV:
processMain=processHash[charAt](0);
break;
default :
break;
} // end of select
if (receivedHashNo>=0) processHash=processHash[substring](processHash[indexOf](receivedHashNo+'', 1)+(receivedHashNo+'')[length], processHash[length]);
else processHash=processHash[substring](1, processHash[length]);
} // end of while
if (!(sh=receivedLinkImages[processHint])) return;
if ((processHint)&&(lastZoom<0)&&(processZoom<0)
&&(lastHint==processHint)&&(!processMain)) { locationElement[hash]='#H0'; onpropertyHash(); return; }
if (processMain) { locationElement[hash]='#H'+processHint;
if (processMain==stringI) showSummery(processHint);
// else if (processMain) showSummery2(processHint);
else showSummery2(processHint);
processMain='';
onpropertyHash(); return; }
if (processZoom<0) processZoom=0;
if (processHint!=lastHint) { receivedHintOrder=processHint; showHint(); ZoomOrder=processZoom; showZoom(); }
else if (processZoom!=lastZoom) { ZoomOrder=processZoom; showZoom(); }
else { processHash=locationElement[hash]='#H'+processHint;
onpropertyHash(); return; }
lastHint=processHint; lastZoom=processZoom;
}
sendObjAttribValue=function () { var ar=arguments, obj=ar[0], i;
for (i=1; i<ar.length; i+=2)
obj[ar[i]]=ar[i+1];
}
function sendObjStringValue() { var ar=arguments, str=ar[0], obj=ar[1], i, ov='', rv, rc;
for (i=2; i<ar.length; i++) {
rv=obj[ar[i]]; rc=isNaN(rv)?'\'':'';
ov+=str+'[\''+ar[i]+'\']='+rc+rv+rc+';';
}
return ov;
}
sendObjAttribValue(stringHanguel, stringA, '영상', stringS, '페이지영상', stringW, '가로나열', stringV, '세로나열');
function replaceAppendAll() {
var ar=arguments, i, outv=ar[0];
for (i=1; (i+1)<ar[length]; i+=2) { rPattern[compile](ar[i], stringgi); outv=outv[replace](rPattern, ar[i+1]); }
return outv;
}
function setTagString(tagNameZone, tagStringZoneName) {
return '<'+tagNameZone+' '+tagStringZoneName+' >'
+elementZone+'</'+tagNameZone+'>'; }
function setTagCloseString(tagNameZone, tagStringZoneName) {
return '<'+tagNameZone+' '+tagStringZoneName+' />'; }
var
mapOriginalStringZone='{mapOriginalStringZone}'
, mapOriginalString=setTagString('map', mapOriginalStringZone)
, areaOriginalStringZone='{areaOriginalStringZone}'
, areaOriginalString=setTagCloseString('area', areaOriginalStringZone)
, aOriginalStringZone='{aOriginalStringZone}'
, aOriginalString=setTagString('a', aOriginalStringZone)
, imgOriginalStringZone='{imgOriginalStringZone}'
, imgOriginalString=setTagCloseString('img', imgOriginalStringZone)
, divOriginalStringZone='{divOriginalStringZone}'
, divOriginalString=setTagString('div', divOriginalStringZone)
, scriptString=setTagString('script', '')
, viewImageRecallSet='{viewImageRecallSet}'
, htmlString=setTagString('html', '')
, headString=setTagString('head', '')
, titleString=setTagString('title', '')
, bString=setTagString('b', '')
, marqueeOriginalStringZone='{marqueeOriginalStringZone}'
, marqueeOriginalString=setTagString('marquee', marqueeOriginalStringZone)
, bodyOriginalStringZone='{bodyOriginalStringZone}'
, bodyOriginalString=setTagString(body, bodyOriginalStringZone)
, tableOriginalStringZone='{tableOriginalStringZone}'
, tableOriginalString=setTagString('table', tableOriginalStringZone)
, trOriginalStringZone='{trOriginalStringZone}'
, trOriginalString=setTagString('tr', trOriginalStringZone)
, tdOriginalStringZone='{tdOriginalStringZone}'
, tdOriginalString=setTagString('td', tdOriginalStringZone)
, colspanStringZone='{colspanStringZone}'
, colspanString='colspan='+colspanStringZone+' '
, nameStringZone='{nameStringZone}'
, nameString='name="'+nameStringZone+'" '
, idStringZone='{idStringZone}'
, idString='id="'+idStringZone+'" '
, widthStringZone='{widthStringZone}'
, widthString='width='+widthStringZone+' '
, heightStringZone='{heightStringZone}'
, heightString=height+'='+heightStringZone+' '
, sizeString=widthString+heightString
, bgcolorStringZone='{bgcolorStringZone}'
, bgcolorString='bgcolor="'+bgcolorStringZone+'" '
, styleStringZone='{styleStringZone}'
, styleString=style+'="'+styleStringZone+'" '
, border0String='border=0 '
, srcStringZone='{srcStringZone}'
, srcString='src="'+srcStringZone+'" '
, imageWidth='{imageWidth}', imageHeight='{imageHeight}'
, imageSizeString=replaceAppendAll(sizeString
, widthStringZone, imageWidth, heightStringZone, imageHeight)
, imgDefaultStringZone='{imgDefaultStringZone}'
, imgDefaultString=replaceAppendAll(imgOriginalString
, imgOriginalStringZone, border0String+srcString+imageSizeString+imgDefaultStringZone)
, divStyleString=replaceAppendAll(divOriginalString
, divOriginalStringZone, styleString)
, divIdStyleString=replaceAppendAll(divOriginalString
, divOriginalStringZone, idString+styleString)
, trString=replaceAppendAll(trOriginalString, trOriginalStringZone, '')
, trHeightString=replaceAppendAll(trOriginalString, trOriginalStringZone, heightString)
, tdString=replaceAppendAll(tdOriginalString, tdOriginalStringZone, '')
, tdWidthStyleString=replaceAppendAll(tdOriginalString
, tdOriginalStringZone, widthString+styleString)
, tdWidthString=replaceAppendAll(tdOriginalString
, tdOriginalStringZone, widthString)
, cursorpointerStyle=cursor+':'+pointer+'; '
, widthStyleStringZone='{widthStyleStringZone}'
, widthStyleString='width:'+widthStyleStringZone+'px; '
, heightStyleStringZone='{heightStyleStringZone}'
, heightStyleString=height+':'+heightStyleStringZone+'px; '
, overflowStyleStringZone='{overflowStyleStringZone}'
, overflowStyleString='overflow:'+overflowStyleStringZone+'; '
, overflowHiddenStyleString=replaceAppendAll(
overflowStyleString+widthStyleString+heightStyleString
, overflowStyleStringZone, 'hidden')
, overflowAutoStyleString=replaceAppendAll(
overflowStyleString+widthStyleString+heightStyleString
, overflowStyleStringZone, 'auto')
, leftStyleStringZone='{leftStyleStringZone}'
, leftStyleString='left:'+leftStyleStringZone+'px; '
, topStyleStringZone='{topStyleStringZone}'
, topStyleString='top:'+topStyleStringZone+'px; '
, positionStyle=leftStyleString+topStyleString
, absoluteStyleString=position+':absolute; '+positionStyle
, absoluteLeftTopCornerStyleString=replaceAppendAll(
absoluteStyleString
, leftStyleStringZone, 0, topStyleStringZone, 0)
, relativeStyle=position+':relative; '
, relativeStyleString=relativeStyle+positionStyle
, zindexStyleZone='{zindexStyleZone}'
, zindexStyle='z-index:'+zindexStyleZone+'; '
, topClip='{topClip}', rightClip='{rightClip}', bottomClip='{bottommClip}', leftClip='{leftClip}', leftClipPoint='{leftClipPoint}', topClipPoint='{topClipPoint}'
, clipStyleString='clip:rect('+topClip+'px, '+rightClip+'px, '+bottomClip+'px, '+leftClip+'px); '+replaceAppendAll(absoluteStyleString, leftStyleStringZone, leftClipPoint, topStyleStringZone, topClipPoint)
, backgroundColorZone='{backgroundColorZone}'
, backgroundColor='background-color:'+backgroundColorZone+'; '
, colorStyleZone='{colorZone}'
, colorStyle='color:'+colorStyleZone+'; '
, font9pt='font-size:9pt; '
, fontDotum='font-family:돋움; '
, textUnderNone='text-underline:none; '
, onclickStringZone='{onclickStringZone}'
, onclickString='onclick="'+onclickStringZone+'" '
, onmousedownStringZone='{onmousedownStringZone}'
, onmousedownString='onmousedown="'+onmousedownStringZone+'" '
, ondragStringZone='{ondragStringZone}'
, ondragString='ondrag="'+ondragStringZone+'" '
+(documentElement.all?'':'ondragstart="return false;" ') // for firefox's drag clientX bug & IE's drag starting bug..
, ondragendStringZone='{ondragendStringZone}'
, ondragendString='ondragend="'+ondragendStringZone+'" '
, onmousemoveStringZone='{onmousemoveStringZone}'
, onmousemoveString='onmousemove="'+onmousemoveStringZone+'" '
, onmouseupStringZone='{onmouseupStringZone}'
, onmouseupString='onmouseup="'+onmouseupStringZone+'" '
, onscrollStringZone='{onscrollStringZone}'
, onscrollString='onscroll="'+onscrollStringZone+'"'
, hrefStringZone='{hrefStringZone}'
, hrefString='href="'+hrefStringZone+'" '
, areaLeft='{areaLeft}', areaRight='{areaRight}'
, areaTop='{areaTop}', areaBottom='{areaBottom}'
, coordsString='coords="'+areaLeft+','+areaTop+','+areaRight+','+areaBottom+'" '
, waitHintNo='{waitHintNo}'
, waitHintFunctionString='waitHint('+waitHintNo+');'
, waitZoomNo='{waitZoomNo}'
, waitZoomFunctionString='waitZoom('+waitZoomNo+');'
, showString='{showString}'
, shapeStringZone='{shapeStringZone}'
, shapeString='shape="'+shapeStringZone+'" '
, areaRect=replaceAppendAll(areaOriginalString,
areaOriginalStringZone, shapeString+coordsString+hrefString+onmouseupString
, shapeStringZone, 'rect'
, hrefStringZone, '#H'+waitHintNo
, onmouseupStringZone, waitHintFunctionString)
, imageURL='{imageURL}'
, imageString=
replaceAppendAll(imgDefaultString
, imgDefaultStringZone, ''
, srcStringZone, imageURL)
, imageClipTail=
replaceAppendAll(imgDefaultString
, imgDefaultStringZone, styleString
, styleStringZone, clipStyleString, srcStringZone, imageURL)
, aShapWaitHint=replaceAppendAll(aOriginalString
, aOriginalStringZone, hrefString+onclickString
, hrefStringZone, '#H'+waitHintNo
, onclickStringZone, waitHintFunctionString)
, aShapWaitZoom=replaceAppendAll(aOriginalString
, aOriginalStringZone, hrefString+onclickString
, hrefStringZone, '#H'+waitHintNo+'Z'+waitZoomNo
, onclickStringZone, waitZoomFunctionString)
, imageHintClickTail=
// replaceAppendAll(aShapWaitHint
// , waitHintNo, 0
// , elementZone, imgDefaultString
replaceAppendAll(imgDefaultString
, imgDefaultStringZone, styleString
, styleStringZone, clipStyleString, srcStringZone, imageURL)
, imageZoomClickTail=
replaceAppendAll(aShapWaitZoom
, waitZoomNo, 0
, elementZone, imgDefaultString
, imgDefaultStringZone, styleString
, styleStringZone, clipStyleString, srcStringZone, imageURL)
, overOpacity100='{overOpacity100}', overOpacity='{overOpacity}'
, alphaStyle=filter+':Alpha('+opacity+'='+overOpacity100+'); '+opacity+':'+overOpacity+'; '
// , imageZoomClickTail2=
// replaceAppendAll(aShapWaitZoom
// , waitZoomNo, 0
// , elementZone, imgDefaultString
// , imgDefaultStringZone, styleString
// , styleStringZone, clipStyleString+alphaStyle, srcStringZone, imageURL)
, usemapStringZone='{usemapStringZone}'
, usemapString='usemap="#'+usemapStringZone+'" '
, backTop='{backTop}', backSize='{backSize}'
, alphaStyleZone='{alphaStyleZone}'
, screenString=replaceAppendAll(divIdStyleString
, idStringZone, backStyle
, styleStringZone, backTop+backSize+backgroundColor
, backgroundColorZone, '#222222'
, elementZone
, replaceAppendAll(imgDefaultString
, imgDefaultStringZone, usemapString
, srcStringZone, imageURL
, usemapStringZone, 'summeryMap_1')
+ replaceAppendAll(divStyleString
, styleStringZone, backTop
, elementZone, divIdStyleString
, idStringZone, screenAlpha
, styleStringZone, overflowHiddenStyleString+alphaStyle+backgroundColor
, widthStyleStringZone, 1, heightStyleStringZone, 1, backgroundColorZone, 'black'
, elementZone, ''
)
+ replaceAppendAll(divIdStyleString
, idStringZone, returnSpace
, styleStringZone, backTop
, elementZone, '')
+ replaceAppendAll(divIdStyleString
, idStringZone, ZoomSpace
, styleStringZone, backTop+zindexStyle
, zindexStyleZone, 6
, elementZone, '')
)
, aStyleShapTag=replaceAppendAll(aOriginalString
, aOriginalStringZone, styleString+hrefString +onclickString
, hrefStringZone, '#'
)
// , aLightgreenTag=replaceAppendAll(aStyleShapTag
// , styleStringZone, colorStyle
// , colorStyleZone, lightgreen)
, aLightgreenShow=replaceAppendAll(aOriginalString
, aOriginalStringZone, hrefString+onclickString+styleString
, styleStringZone, colorStyle
, colorStyleZone, lightgreen
, hrefStringZone, '#H'+waitHintNo+showString)
, zoomtagOpen=replaceAppendAll(aOriginalString
, aOriginalStringZone, styleString+hrefString+onclickString
, hrefStringZone, '#H'+waitHintNo+'Z'+waitZoomNo
, styleStringZone, colorStyle
, colorStyleZone, lightgreen
, onclickStringZone, waitZoomFunctionString)
, numClickString=replaceAppendAll(aOriginalString
, aOriginalStringZone, hrefString+onclickString
, hrefStringZone, '#H'+waitHintNo+'Z'+waitZoomNo
, onclickStringZone, waitZoomFunctionString
, elementZone, waitZoomNo+')')
+' '
, aboutBlank='about:blank'
, openWindowName='_blank'
, openWindowWidth='{openWindowWidth}', openWindowHeight='{openWindowHeight}'
, openWindowOption=replaceAppendAll('directories,location,menubar,resizable/scrollbars/status,titlebar,toolbar,width=', ',', '=no,', '/', '=yes,')+openWindowWidth+','+height+'='+openWindowHeight
, imageName='{imageName}'
, defaultImageURLForm='http://club.cyworld.nate.com/club/board/image/imgbrd_viewurl.asp?image_url=' + imageName
, onloadStringZone='{onloadStringZone}'
, onloadString='onload="'+onloadStringZone+'" '
, onunloadStringZone='{onunloadStringZone}'
, onunloadString='onunload="'+onunloadStringZone+'" '
, cellpaddingStringZone='{cellpaddingStringZone}'
, cellpaddingString='cellpadding='+cellpaddingStringZone+' '
, cellspacingStringZone='{cellspacingStringZone}'
, cellspacingString='cellspacing='+cellspacingStringZone+' '
, tableDefaultStringZone='{tableDefaultStringZone}'
, tableDefaultString=replaceAppendAll(tableOriginalString
, tableOriginalStringZone, border0String+cellpaddingString+cellspacingString+tableDefaultStringZone)
, behaviorStringZone='{behaviorStringZone}'
, behaviorString='behavior="'+behaviorStringZone+'" '
, scrollamountStringZone='{scrollamountStringZone}'
, scrollamountString='scrollamount='+scrollamountStringZone+' '
, scrolldelayStringZone='{scrolldelayStringZone}'
, scrolldelayString='scrolldelay='+scrolldelayStringZone+' '
, directionStringZone='{directionStringZone}'
, directionString='direction="'+directionStringZone+'" '
, loopStringZone='{loopStringZone}'
, loopString='loop='+loopStringZone+' '
, animationOptions=behaviorString+scrollamountString+scrolldelayString+directionString+loopString
, animationScripts='{animationScripts}'
, titleStringZone='{titleStringZone}', imageZone='{imageZone}'
, htmlBODY
, imageElement='{imageElement}'
, imagePadding
=replaceAppendAll(tableDefaultString
, tableDefaultStringZone, styleString
, styleStringZone, absoluteLeftTopCornerStyleString
, cellpaddingStringZone, 5, cellspacingStringZone, 0
, elementZone, trString
, elementZone, tdOriginalString
, tdOriginalStringZone, idString
, idStringZone, 'woutput'
, elementZone, imageElement)
+replaceAppendAll(tableOriginalString
, tableOriginalStringZone, styleString+bgcolorString
, styleStringZone, absoluteStyleString+zindexStyle
, leftStyleStringZone, 5, topStyleStringZone, 5, zindexStyleZone, 5
, bgcolorStringZone, '#550000'
, elementZone, trHeightString
, heightStringZone, 20
, elementZone, tdWidthStyleString
, widthStringZone, 40
, styleStringZone, font9pt+fontDotum
, elementZone, bString
, elementZone, aStyleShapTag
, styleStringZone, colorStyle+textUnderNone
, colorStyleZone, '#ffffff'
// , hrefStringZone, 'javascript:setTimeout(function(){window.close();},100)'
, onclickStringZone, 'setTimeout(function(){window.close();},100)'
// , onclickStringZone, 'window.close();'
, elementZone, '[닫기]')
, animationWidth='{animationWidth}', animationHeight='{animationHeight}'
, animationAmount='{animationAmount}'
, animationZoneWidth='{animationZoneWidth}', animationZoneHeight='{animationZoneHeight}'
, animationTails='{animationTails}'
, tailDivString
=replaceAppendAll(divStyleString
, styleStringZone, overflowHiddenStyleString+relativeStyle)
, animationString
=replaceAppendAll(marqueeOriginalString
, marqueeOriginalStringZone, sizeString+animationOptions
, widthStringZone, animationWidth, heightStringZone, animationHeight
, behaviorStringZone, 'alternate', scrolldelayStringZone, 1000, scrollamountStringZone, animationAmount, directionStringZone, 'left', loopStringZone, -1
, elementZone, tailDivString
// , elementZone, divStyleString
// , styleStringZone, overflowHiddenStyleString+relativeStyle
, widthStyleStringZone, animationZoneWidth, heightStyleStringZone, animationZoneHeight
, elementZone, animationTails)
, imageClickString
=replaceAppendAll(aShapWaitHint, waitHintNo, 0, elementZone, imageElement)
;
imageSet=function () { var is_i, is_tt, is_zz, ar=arguments, arv, arv2, is_H, is_Hp, is_Hp1, is_Hp2, is_Hpi, is_Hc, is_Div, divP, divP2
;
receivedSummeryWidth=summeryWidth; receivedSummeryHeight=summeryHeight; receivedSummeryImageSrc=summeryImageSrc;
receivedScreenOpacity=screenOpacity; receivedSummeryImageBottom=summeryImageBottom; receivedSummeryPadding=summeryPadding;
receivedLinkImages=linkImages;
is_tt=receivedLinkImages[0]={};
is_tt[Left]=0; is_tt[Top]=0; is_tt[Width]=receivedSummeryWidth; is_tt[Height]=receivedSummeryHeight; is_tt[Hint]='';
is_tt[Owidth]=receivedSummeryWidth; is_tt[Oheight]=receivedSummeryHeight; is_tt[Hint]='';
is_tt[ZImage]=0;
if (receivedSummeryWidth<receivedSummeryHeight) zGab=INT(receivedSummeryWidth/40); else zGab=INT(receivedSummeryHeight/40);
zWidth=receivedSummeryWidth-zGab-zGab; zHeight=receivedSummeryHeight-zGab-zGab;
is_i=0; while (is_i<ar[length]) { is_j++;
is_tt=receivedLinkImages[is_j]={};
if (is_tt[anied]=(divP=ar[is_i][indexOf]('*'))>=0) {
arv=ar[is_i];
is_tt[aniN]=arv[substring](0, divP);
is_tt[Src]=arv[substring](divP+1, arv[length]);
arv=is_tt[aniN];
is_tt[aniFloor]=((divP2=arv[indexOf]('/'))>=0)?INT(arv[substring](divP2+1, divP)):1; // get floor count
divP2=divP2>0?divP2:arv[length];
arv=arv[substring](0, divP2);
if (stringASWV[indexOf](arv2=arv[substring](0,1))>=0) { // get etc parameter A(anim), S(slide), H(horizon scroll), V(vertical scroll)
is_tt[aniType]=arv[charAt](0); arv=arv[substring](1, arv.length);
} else is_tt[aniType]=stringA;
arv=is_tt[aniN]=INT(arv[substring](0, divP2)); // finishing from arv by get divided image count
is_tt[aniW]=INT(arv/is_tt[aniFloor]);
if (is_tt[aniW]*is_tt[aniFloor]<arv) is_tt[aniW]++;
}
else {
is_tt[aniN]=0;
is_tt[Src]=ar[is_i];
}
is_H=ar[is_i+1];
for (is_Hp=is_H[indexOf]('//'); is_Hp>0; is_Hp=is_H[indexOf]('//', is_Hp+2)) {
if (is_Hp>0)
if (is_H[substr](is_Hp-1, 1)!='>') continue;
is_Hp1=is_H[length];
for (is_Hpi=0; is_Hpi<brs[length]; is_Hpi++)
if ((is_Hp2=is_H[indexOf](brs[is_Hpi], is_Hp))>=0)
if (is_Hp2<is_Hp1) is_Hp1=is_Hp2;
// receiver of text's "//)"
is_Hp2=is_H[indexOf](')', is_Hp);
is_Hc=is_H[length]-is_Hp1;
is_H=is_H[substring](0, is_Hp)+replaceAppendAll(zoomtagOpen
, waitHintNo, is_j
, waitZoomNo, INT(is_H[substring](is_Hp+2, is_Hp2))
, elementZone, is_H[substring](is_Hp+2, is_Hp1))+is_H[substring](is_Hp1, is_H[length]);
is_Hp=is_H[length]-is_Hc;
}
is_tt[Hint]=is_H;
is_tt[Left]=ar[is_i+2]; is_tt[Top]=ar[is_i+3]; is_tt[Width]=ar[is_i+4]; is_tt[Height]=ar[is_i+5];
is_tt[Owidth]=saveOwidth; is_tt[Oheight]=saveOheight;
is_i+=6;
if (is_i<ar[length]) if (!isNaN(ar[is_i])) {
saveOwidth=is_tt[Owidth]=ar[is_i];
saveOheight=is_tt[Oheight]=ar[is_i+1];
is_i+=2;
}
is_tt[ZImage]=0;
while (!isNaN(ar[is_i])) { if (ar[is_i][length]>=0) break;
if (!(arv=is_tt[ZImage])) arv=is_tt[ZImage]=[]; is_zz=arv[arv[length]]={};
is_zz[HLeft]=ar[is_i]; is_zz[HTop]=ar[is_i+1]; is_zz[HWidth]=ar[is_i+2]; is_zz[HHeight]=ar[is_i+3];
is_i+=4;
}
}
};
function w() { var w_i; for (w_i=0; w_i<arguments[length]; w_i++) documentElement[write](arguments[w_i]); }
clearAutoScroll=function () {
if (autoScrollEventer) {
timeOutClear(autoScrollEventer);
autoScrollEventer=0;
}
};
function noneSelection() {
var e=documentElement[selection];
if (e) e[empty](); else windowElement[getSelection][removeAllRanges]();
}
pressScroll=function (evt) { var ev, jv, kv; // 스크롤바 눌렀을 때
clearAutoScroll();
scrollPressed=1; movedPress=0;
// if (!(ev=windowElement[eventS]))
ev=evt;
jv=documentElement.all[showElement];
kv=documentElement.all[scrollbarElement];
jv[style][zIndex]=1;
pressedX=ev[clientX]; pressedY=ev[clientY]; pressedLeft=kv[scrollLeft];
};
readyScroll=function (evt) { var ev, jv, kv; // 스크롤하려고 맘먹었을 때
clearAutoScroll();
scrollPressed=2; movedPress=0;
// if (!(ev=windowElement[eventS]))
ev=evt;
jv=documentElement.all[showElement];
kv=documentElement.all[scrollbarElement];
jv[style][zIndex]=1;
pressedX=ev[clientX]; pressedY=ev[clientY]; pressedLeft=kv[scrollLeft];
};
moveMouse=function (evt) {
// var ev, jv, sh, xv, medx, mousep; // 마우스 움직일 때
var ev, jv, xv, medx, mousep; // 마우스 움직일 때
if (!scrollPressed) return;
// if (!(ev=windowElement[eventS]))
ev=evt;
if (ev[target])
ev[target][style][cursor]=pointer;
// else {
// mousep=ev[dataTransfer];
// mousep[effectAllowed]='linkMove';
// mousep[dropEffect]='move';
// }
movedPress|=(pressedX!=(xv=ev[clientX]))||(pressedY!=ev[clientY]);
if (scrollPressed==1) { endScroll(evt); return; } // scrollbar Pressed
jv=documentElement.all[scrollbarElement];
// sh=receivedLinkImages[receivedHintOrder];
// if (stringAS[indexOf](sh[aniType])>=0)
if (stringAS[indexOf](aniTypev)>=0)
medx=pressedLeft+(pressedX-xv)/40*jv[clientWidth];
else
medx=pressedLeft+pressedX-xv;
if (medx<0) medx=0;
if (medx>(jv[scrollWidth]-jv[clientWidth])) medx=jv[scrollWidth]-jv[clientWidth];
jv[scrollLeft]=medx;
};
moveScroll=function (evt) {
//var ev, jv, kv, sh, shp; // 스크롤 됐을 때
var ev, jv, kv, shp; // 스크롤 됐을 때
movedPress=1;
if (!(ev=windowElement[eventS])) ev=evt;
jv=documentElement.all[showScroll];
kv=documentElement.all[scrollbarElement];
// sh=receivedLinkImages[receivedHintOrder];
// if (stringAS[indexOf](sh[aniType])>=0) {
if (stringAS[indexOf](aniTypev)>=0) {
// shp=INT(kv[scrollLeft]/kv[scrollWidth]*(sh[aniN]+1));
shp=INT(kv[scrollLeft]/kv[scrollWidth]*(aniNv+1));
// if (shp>=sh[aniN]) shp=sh[aniN]-1;
if (shp>=aniNv) shp=aniNv-1;
// jv[scrollLeft]=(shp%sh[aniW])*jv[scrollWidth]/sh[aniW];
jv[scrollLeft]=(shp%aniWv)*jv[scrollWidth]/aniWv;
// jv[scrollTop]=INT(shp/sh[aniW])*jv[scrollHeight]/sh[aniFloor];
jv[scrollTop]=INT(shp/aniWv)*jv[scrollHeight]/aniFloorv;
}
else
jv[scrollLeft]=kv[scrollLeft];
};
endScroll=function (evt) { var ev, jv;
// if (!(ev=windowElement[eventS]))
ev=evt;
jv=documentElement.all[showElement];
jv[style][zIndex]=3;
if ((!movedPress)&&(scrollPressed==2)) {
// waitHint(0); // escape to summery
// processHash=
locationElement[hash]='#H0';
// readyHashing();
}
autoScroll(startAnimation);
scrollPressed=0;
};
autoScroll=function (entvalue) {
//var jv, kv, sh;
var jv, kv, shp;
clearAutoScroll();
// if (entvalue==startAnimation)
if (entvalue!=startAnimation)
// else
{ // when not start message
// sh=receivedLinkImages[receivedHintOrder];
// if (sh[aniType]!=stringA) return;
if (aniTypev!=stringA) return;
if (!(kv=documentElement.all[scrollbarElement])) return;// for null control
// shp=INT(kv[scrollLeft]/kv[scrollWidth]*(sh[aniN]+1));
shp=INT(kv[scrollLeft]/kv[scrollWidth]*(aniNv+1));
// if (shp>=sh[aniN]) shp=sh[aniN]-1;
if (shp>=aniNv) shp=aniNv-1;
// shp++; if (shp==sh[aniN]) shp=0;
shp++; if (shp==aniNv) shp=0;
// kv[scrollLeft]=INT(shp*kv[scrollWidth]/(sh[aniN]+1))+1;
kv[scrollLeft]=INT(shp*kv[scrollWidth]/(aniNv+1))+1;
}
autoScrollEventer=timeOut(autoScroll, 1000);
};
// -- functions for send to new Window
// -- var receiver function
function animationVarReceiver() {
argumentReceiver(
scrollPressed, movedPress
, innerHTML
, sendObjAttribValue
, eventS
, argueventS
, documentS, body, locationS, focusS
, setTimeoutS, clearTimeoutS
, indexOf
, resizeTo
, resizeBy
, style
, zIndex
, target
, pointer, cursor
, hash
, clientX, clientY
, scrollLeft, scrollTop
, readyState
, windowElement, documentElement, documentBodyElement, locationElement
, timeOut, timeOutClear
, onloadFunctionS
, sizingSecondS
, title
, scrollWidth, scrollHeight, clientWidth, clientHeight
, showElement, scrollbarElement, showScroll
, startAnimation
, stringAS, stringWV, stringA, stringASWV
, resizingS
, pressedX, pressedY, pressedLeft
, clearAutoScroll, autoScrollEventer
, autoScrollS
, viewImageRecall
, viewOrder, viewOrderSet
);
}
// -- var receiver function to string, for set var
function animationVarString() {
var ov=animationVarReceiver+'', p1, p2;
p1=ov[indexOf]('{'); p1=ov[indexOf]('(', p1); p2=ov[indexOf](')', p1);
return (
// ','+
ov.substring(p1+1, p2)
);
}
sizingSecond=function () {
if(documentBodyElement[clientHeight])if(documentBodyElement[clientHeight]<documentBodyElement[scrollHeight])
windowElement[resizeBy](
documentBodyElement[scrollWidth]-documentBodyElement[clientWidth]
, documentBodyElement[scrollHeight]-documentBodyElement[clientHeight] );
};
resizingNewWindow=function(ww,hh) {
if ('interactiveloading'[indexOf](documentElement[readyState])>=0) {
timeOut(resizingS+'('+ww+','+hh+');', 200); return; } // for document's resizing timing
windowElement[resizeTo](ww,hh);
if (onloadFunction)
timeOut(onloadFunctionS+'();'+sizingSecondS+'();', 100);
else
timeOut(sizingSecond, 100);
};
retitle=function(v) { documentElement[title]=v; };
// -- end of functions for send to new Window
// -- set of htmlBODY
htmlBODY
=replaceAppendAll(htmlString
, elementZone,
replaceAppendAll(headString
, elementZone, titleString
, elementZone, titleStringZone)
+ replaceAppendAll(bodyOriginalString
, bodyOriginalStringZone, onunloadString +onloadString
, onunloadStringZone, 'try{if('+openerviWbS+')'+openerviWbS+'=null;}catch(err){}'
, onloadStringZone, 'if(!'+onloadFunctionS+')'+onloadFunctionS+'='+functionS+'(){};'
// , onloadStringZone, resizingS+'('+widthStringZone+','+heightStringZone+');'
, elementZone, imageZone+scriptString
, elementZone,
' var '+onloadFunctionS+'=0'
+','+ sizingSecondS+','+resizingS
+', '+readyScrollS+','+moveMouseS+','+moveScrollS+','+endScrollS+','+pressScrollS+','+autoScrollS
// +' , '+aniNvS+', '+aniFloorvS+', '+aniWvS+', '+aniTypevS
+' , waitHint=function(){} '
+';'
+'function initScript(){'
+'var '+ animationVarString()+';'
+'sendObjAttribValue='+sendObjAttribValue+';'
+reValueS+'='+reValue+';'
+reValueS+'();'
+readyScrollS+'='+readyScroll+';'
+moveMouseS+'='+moveMouse+';'
+moveScrollS+'='+moveScroll+';'
+endScrollS+'='+endScroll+';'
+pressScrollS+'='+pressScroll+';'
+clearAutoScrollS+'='+clearAutoScroll+';'
+autoScrollS+'='+autoScroll+';'
// for viewImageRecall
+ viewImageRecallSet
// need document.readyState ..?
+sizingSecondS+'='+sizingSecond+';'
+resizingS+'='+resizingNewWindow+';'
+retitleS+'='+retitle+';'
+'try{ if (!viewImageRecall) opener.viewImageRecall(window); else viewImageRecall(window); } catch(err) {alert(\'죄송합니다. 에러에요.\');}'
// +'try{if(!'+openerviWbS+')'+openerviWbS+'=window;}catch(err){}'
+'} initScript(); '
)
)
;
// -- end of set htmlBODY
function showHint() {
var
sh, ix, iy, iw, ih, iwI, ihI, lltd, rrtd, tttr, shopa, shopb, zi, zcount, I, ssim, ssim2, arv
, recomputedSummeryHeight
;
breakHint(); breakZoom();
// ZoomOrder=0;
lastZoom=0;
zoomSpaceElement[innerHTML]='';
sh=receivedLinkImages[receivedHintOrder];
recomputedSummeryHeight=receivedSummeryHeight
// -(sh[anied]?scrollBarHeight:0)
;
iw=receivedSummeryWidth; ih= sh[Oheight]/
(sh[Owidth]/(sh[anied]?sh[aniW]/sh[aniFloor]:1))
*receivedSummeryWidth ;
if (ih>recomputedSummeryHeight) { ih=recomputedSummeryHeight; iw=
(sh[Owidth]/(sh[anied]?sh[aniW]/sh[aniFloor]:1))
/sh[Oheight]*recomputedSummeryHeight ;
ix=(receivedSummeryWidth-iw)*sh[Left]/(receivedSummeryWidth-
(sh[Width]/(sh[anied]?sh[aniW]:1))
); iy=0; }
else { if (recomputedSummeryHeight==ih) iy=0; else iy=(recomputedSummeryHeight-ih)*sh[Top]/(recomputedSummeryHeight-sh[Height]); ix=0; }
shopa=iw/sh[Owidth]; shopb=iw/sh[Width];
if (shopa>1) shopa=1/shopa; if (shopb>1) shopb=1/shopb;
shopa=1-shopa; shopb=1-shopb;
if (sh[Width]>sh[Owidth]) { shopb*=shopb; shopb*=shopb; } else { shopa*=shopa; shopa*=shopa; }
if (shopb) {
shopb=INT(shopb/(shopa+shopb)*100);
} else shopb=0;
iwI=INT(iw); ihI=INT(ih);
lltd=ix?
replaceAppendAll(tdString
, elementZone, divStyleString
, styleStringZone, overflowHiddenStyleString
, widthStyleStringZone, ix, heightStyleStringZone, 0
, elementZone, ''
):'';
rrtd=ix?
replaceAppendAll(tdString
, elementZone, divStyleString
, styleStringZone, overflowHiddenStyleString
, widthStyleStringZone, receivedSummeryWidth-ix-iwI, heightStyleStringZone, 0
, elementZone, ''
):'';
tttr=iy?
replaceAppendAll(trHeightString
, heightStringZone, iy
, elementZone, tdOriginalString
, tdOriginalStringZone, colspanString
, colspanStringZone, 3
, elementZone, ''):'';
if (receivedHintOrder) {
if (sh[anied]) {
ssim2='';
if (stringWV[indexOf](sh[aniType])>=0)
for (i=0; i<sh[aniFloor]; i++) // for 'HV'
ssim2+=replaceAppendAll(imageHintClickTail
, topClip, INT(ih*i)
, rightClip, iw*((i+1)*sh[aniW]>sh[aniN]?(sh[aniN]-i*sh[aniW]):sh[aniW])
, bottomClip, ih*(i+1)
, leftClip, 0
, leftClipPoint, iw*i*sh[aniW]
, topClipPoint, -ih*i
);
else // for 'AS'
ssim2+=replaceAppendAll(imageHintClickTail
, topClip, 0
, rightClip, iw*sh[aniW]
, bottomClip, ih*sh[aniFloor]
, leftClip, 0
, leftClipPoint, 0
, topClipPoint, 0
);
}
ssim=tttr+
replaceAppendAll(trHeightString
, heightStringZone, ihI
, elementZone, lltd+tdWidthString+rrtd
, widthStringZone, iwI
, elementZone, tailDivString
// , elementZone, divStyleString
// , styleStringZone, overflowHiddenStyleString+relativeStyle
, widthStyleStringZone, iwI, heightStyleStringZone, ihI+(sh[anied]?scrollBarHeight:0) // outer Image Receiving Zone
, elementZone, replaceAppendAll(imageHintClickTail
, topClip, ih/sh[Height]*sh[Top]*(sh[anied]?sh[aniFloor]:1)
, rightClip, iw/(sh[Width]/(sh[anied]?sh[aniW]:1))*sh[Left] + iwI
, bottomClip, ih/sh[Height]*sh[Top]*(sh[anied]?sh[aniFloor]:1) + ihI
, leftClip, iw/(sh[Width]/(sh[anied]?sh[aniW]:1))*sh[Left]
, leftClipPoint, -iw/(sh[Width]/(sh[anied]?sh[aniW]:1))*sh[Left]
, topClipPoint, -ih/sh[Height]*sh[Top]*(sh[anied]?sh[aniFloor]:1)
, imageURL, receivedSummeryImageSrc
, imageWidth, INT(iw/(sh[Width]/(sh[anied]?sh[aniW]:1))*receivedSummeryWidth)
, imageHeight, INT(ih/sh[Height]*receivedSummeryHeight*(sh[anied]?sh[aniFloor]:1))
)
+ (sh[anied]?replaceAppendAll(
// divStyleString
divOriginalString
, divOriginalStringZone, styleString+onmousedownString+onmousemoveString+onmouseupString
, onmousedownStringZone, pressScrollS+argueventS+';'
, onmousemoveStringZone, moveMouseS+argueventS+';'
, onmouseupStringZone, endScrollS+argueventS+';'
// , styleStringZone, absoluteStyleString+zindexStyle
// , leftStyleStringZone, 0, topStyleStringZone, 0
, styleStringZone, absoluteLeftTopCornerStyleString+zindexStyle
// , elementZone, divStyleString
, elementZone, divOriginalString
, divOriginalStringZone, idString+onscrollString+styleString
, idStringZone, scrollbarElement
, onscrollStringZone, moveScrollS+argueventS+';'
, styleStringZone, overflowAutoStyleString
, zindexStyleZone, '2'
, widthStyleStringZone, iw, heightStyleStringZone, ih+(sh[anied]?scrollBarHeight:0) // scroll drop getter
, elementZone, tailDivString
, widthStyleStringZone, INT(iw*sh[aniN]), heightStyleStringZone, ihI
, elementZone, tableDefaultString
, cellpaddingStringZone, 0, cellspacingStringZone, 0, tableDefaultStringZone, sizeString
, widthStringZone, INT(iw*sh[aniN]), heightStringZone, ihI
, elementZone, ''
):'')
+ replaceAppendAll(
// divStyleString
divOriginalString
, divOriginalStringZone, styleString+idString+(sh[anied]?(onmousedownString+onmouseupString+ondragString+ondragendString):'')
, onmousedownStringZone, readyScrollS+argueventS+';'
, onmouseupStringZone, endScrollS+argueventS+';'
, ondragStringZone, moveMouseS+argueventS+';'
, ondragendStringZone, endScrollS+argueventS+';'
, idStringZone, showElement
, styleStringZone, absoluteLeftTopCornerStyleString+zindexStyle+cursorpointerStyle
// , elementZone, divStyleString
, elementZone, divOriginalString
, divOriginalStringZone, styleString+idString
, idStringZone, showScroll
, styleStringZone, overflowHiddenStyleString+alphaStyle
, zindexStyleZone, '3'
, widthStyleStringZone, iw, heightStyleStringZone, ih // showing zone
, overOpacity100, sh[anied]?'100':shopb, overOpacity, sh[anied]?'1':(shopb/100))
, elementZone,
(sh[anied]?
replaceAppendAll(tailDivString
, widthStyleStringZone, INT(iw*(stringWV[indexOf](sh[aniType])>=0?sh[aniN]:sh[aniW])), heightStyleStringZone, INT(ih*(stringWV[indexOf](sh[aniType])>=0?1:sh[aniFloor]))
, elementZone, ssim2
, imageWidth, INT(iw*sh[aniW]), imageHeight, ih*(sh[anied]?sh[aniFloor]:1)
// replaceAppendAll(animationString
// , animationWidth, iw, animationHeight, ih
// , animationAmount, iw
// , animationZoneWidth, INT(iw*sh[aniN]), animationZoneHeight, ihI
// , animationTails, ssim2
// , imageWidth, INT(iw*sh[aniW]), imageHeight, ih*(sh[anied]?sh[aniFloor]:1)
) // ani
:replaceAppendAll(imageClickString
, imageElement, imageString
, imageWidth, iwI, imageHeight, ihI
) // normal
) // anied
, imageURL, ((sh[Src][substr](0, 7)!='http://')?receivedSummeryImageBottom:'')+sh[Src]
);
}
else ssim='';
screenAlphaElementStyle[filter]=replaceAppendAll(alphaStyle[substring](alphaStyle[indexOf](filter+':')+(filter+':')[length], alphaStyle[indexOf](';')+1)
, overOpacity100, receivedHintOrder?receivedScreenOpacity:0
);
screenAlphaElementStyle[opacity]=receivedHintOrder?(receivedScreenOpacity/100):0;
if (receivedHintOrder) {
screenAlphaElementStyle.width=receivedSummeryWidth+'px';
screenAlphaElementStyle[height]=receivedSummeryHeight+'px';
} else { screenAlphaElementStyle.width=screenAlphaElementStyle[height]='1px'; }
zcount='';
if (arv=sh[ZImage]) {
for (zi=0; zi<arv[length]; zi++) {
zcount+=replaceAppendAll(numClickString
, waitHintNo, receivedHintOrder, waitZoomNo, zi+1);
}
}
// pre ani setting
if (sh[anied]) {
aniTypev=sh[aniType]; aniNv=sh[aniN]; aniWv=sh[aniW]; aniFloorv=sh[aniFloor];
}
// end of pre ani setting
returnSpaceElement[innerHTML]=replaceAppendAll(tableDefaultString
, tableDefaultStringZone, receivedHintOrder?'':replaceAppendAll(' '+styleString
, styleStringZone, absoluteStyleString
, leftStyleStringZone, 0, topStyleStringZone, receivedSummeryHeight)
, cellpaddingStringZone, 0, cellspacingStringZone, 0
, elementZone, ssim
+trString
, elementZone, tdOriginalString
, tdOriginalStringZone, colspanString
, colspanStringZone, 3
, elementZone, tableDefaultString
, tableDefaultStringZone, widthString
, cellpaddingStringZone, receivedSummeryPadding, cellspacingStringZone, 0, widthStringZone, receivedSummeryWidth
, elementZone, trString
, elementZone, tdOriginalString
, tdOriginalStringZone, styleString
, styleStringZone, font9pt+colorStyle
, colorStyleZone, 'white'
, elementZone, replaceAppendAll(divStyleString
, styleStringZone, 'float:right'
, elementZone
, (receivedHintOrder?
(
zcount+replaceAppendAll(aShapWaitHint
, waitHintNo, 0, elementZone, 'Summery')
+' '+replaceAppendAll(aLightgreenShow
, onclickStringZone, 'waitSummery('+receivedHintOrder+',\''+showString+'\');'
, waitHintNo, receivedHintOrder
, showString, stringI
, elementZone, '원본')
+(sh[anied]?(' '+replaceAppendAll(aLightgreenShow
, onclickStringZone, 'waitSummery('+receivedHintOrder+',\''+showString+'\');'
, waitHintNo, receivedHintOrder
, showString, sh[aniType]
// , elementZone, '영상')):
, elementZone, stringHanguel[sh[aniType]])):
'')
)
:'')
)
+sh[Hint]);
if (backStyleElement[scrollHeight]>iiH) { iiH=backStyleElement[scrollHeight]; backStyleElement[style][height]=iiH+'px'; /* resizing(); */ }
if (sh[aniType]==stringA) autoScroll(startAnimation);
}
imageInit=function () {
var
ii_i, ii_styleSize, ii_styleTop, ii_t, ov
, hashTemp=locationElement[hash]
;
if (!receivedSummeryImageBottom) {
ii_i=receivedSummeryImageSrc; receivedSummeryImageBottom=ii_i[substring](0, ii_i[indexOf]('=')+1);
}
iiH=receivedSummeryHeight>=300?(receivedSummeryHeight+200):500;
ii_styleSize=replaceAppendAll(overflowHiddenStyleString
, widthStyleStringZone, receivedSummeryWidth, heightStyleStringZone, iiH);
ii_styleTop=absoluteLeftTopCornerStyleString;
ov='';
for(ii_i=1; ii_i<receivedLinkImages[length]; ii_i++) { ii_t=receivedLinkImages[ii_i];
ov+=replaceAppendAll(areaRect
, areaLeft, ii_t[Left], areaTop, ii_t[Top]
, areaRight, ii_t[Left]+ii_t[Width], areaBottom
, ii_t[Top]+ii_t[Height], waitHintNo, ii_i);
}
// -- starting hash new window option
if ((hashTemp[indexOf](stringI)>=0)||(hashTemp[indexOf](stringA)>=0)||(hashTemp[indexOf](stringS)>=0)
||(hashTemp[indexOf](stringW)>=0)||(hashTemp[indexOf](stringV)>=0)) {
// for new window document
showHint=showZoom=argumentReceiver; // for no detail calling
ontimeHash();
}
else {
// -- normal option
w(replaceAppendAll(mapOriginalString
, mapOriginalStringZone, nameString
, nameStringZone, 'summeryMap_1'
, elementZone, ov));
w(replaceAppendAll(screenString
, backTop, ii_styleTop, backSize, ii_styleSize
, imageURL, receivedSummeryImageSrc
, imageWidth, receivedSummeryWidth, imageHeight, receivedSummeryHeight
, overOpacity100, receivedScreenOpacity, overOpacity, (receivedScreenOpacity/100)));
// get elements init
// screenAlphaElement=;documentElement.all[screenAlpha];
screenAlphaElementStyle=documentElement.all[screenAlpha][style];
backStyleElement=documentElement.all[backStyle];
returnSpaceElement=documentElement.all[returnSpace]
zoomSpaceElement=documentElement.all[ZoomSpace]
receivedHintOrder=0;
showHint();
// -- init ontimeHash
ontimeHash();
// for normal windowing
if (documentElement.all&&(attachEvent in documentElement)) documentElement[attachEvent](onpropertychange, onpropertyHash);
else windowElement[onhashchange]=onpropertyHash;
}
// -- end of init ontimeHash
};
function breakHint() { if (HintWait) timeOutClear(HintWait); HintWait=0; }
function breakZoom() { if (ZoomWait) timeOutClear(ZoomWait); ZoomWait=0; }
waitHint=function (v) {
// breakHint(); receivedHintOrder=v; HintWait=timeOut(showHint, 100);
processHash=
locationElement[hash]='#H'+v;
readyHashing();
};
waitZoom=function (v) {
//breakZoom(); ZoomOrder=v; ZoomWait=timeOut(showZoom, 100);
processHash=locationElement[hash]='#H'+receivedHintOrder+'Z'+v;
readyHashing();
};
function blankSelf(image_url, windowWidth, windowHeight) {
var viW1, viW1d, viar=arguments
;
if ((navigator.appName[indexOf]('Opera')>=0)||(!(viW1=viWb))) { // opera is can not open new window by _blank
viW1=windowElement; //.open(aboutBlank,openWindowName, replaceAppendAll(openWindowOption, openWindowWidth, windowWidth, openWindowHeight, windowHeight));
viW1d=viW1[documentS];
// viW1d.open();
viW1d[write](replaceAppendAll(htmlBODY
, titleStringZone, image_url
, imageZone, imagePadding
// , widthStringZone, windowWidth, heightStringZone, windowHeight
, viewImageRecallSet,
'viewImageRecall='+viewImageRecall+';viewOrder='+viewOrder+';'
+sendObjStringValue('viewOrderSet', viewOrderSet, aniNvS, aniFloorvS, aniWvS, aniTypevS, innerHTML)
));
// viW1d.close();
}
viW1[moveTo](0,0);
viW1[resizingS](windowWidth, windowHeight);
viW1[retitleS](image_url);
viW1[focusS]();
return viW1[documentS].all['woutput'];
}
function blankOpen(image_url, windowWidth, windowHeight) {
var viW1, viW1d, viar=arguments
;
if (!backStyleElement) return blankSelf(image_url, windowWidth, windowHeight); // for no blanks
if ((navigator.appName[indexOf]('Opera')>=0)||(!(viW1=viWb))) { // opera is can not open new window by _blank
viW1=windowElement.open(aboutBlank,openWindowName, replaceAppendAll(openWindowOption, openWindowWidth, windowWidth, openWindowHeight, windowHeight));
viW1d=viW1[documentS];
viW1d.open();
viW1d[write](replaceAppendAll(htmlBODY
, titleStringZone, image_url
, imageZone, imagePadding
// , widthStringZone, windowWidth, heightStringZone, windowHeight
, viewImageRecallSet, ''
));
viW1d.close();
}
viW1[moveTo](0,0);
viW1[resizingS](windowWidth, windowHeight);
viW1[retitleS](image_url);
viW1[focusS]();
return viW1[documentS].all['woutput'];
}
function viewImage(image_url) { var viar=arguments, viW1d;
if (viar[length]==1)
windowElement.open( replaceAppendAll(defaultImageURLForm, imageName, image_url), openWindowName, replaceAppendAll( openWindowOption, openWindowWidth, 310, openWindowHeight, 310));
else {
viW1d=blankOpen(image_url, viar[1], viar[2]);
viW1d[innerHTML]=replaceAppendAll(imageString
, imageURL, image_url
, imageWidth, viar[1], imageHeight, viar[2]);
}
}
viewImageRecall=function (openedWindow) {
viWb=openedWindow;
if (!viewOrder) return;
viewOrder=0;
sendObjAttribValue(viWb, aniNvS, viewOrderSet[aniNvS], aniFloorvS, viewOrderSet[aniFloorvS], aniWvS, viewOrderSet[aniWvS], aniTypevS, viewOrderSet[aniTypevS]);
// please patch error
viWb[documentS].all['woutput'][innerHTML]=viewOrderSet[innerHTML];
viWb[autoScrollS]();
};
function viewImage2(image_url, image_width, image_height, image_Wcount, image_floor, image_count, image_type) {
var
viW1d, i, fheight=INT(image_height/image_floor), imageString2
, iL, iT
, documentOutput='';
;
if ((fheight*image_floor)<image_height) fheight++;
imageString2='';
if (stringWV[indexOf](image_type)>=0)
{ // for 'WV' ( but, only use for 'W'..)
for (i=0; i<image_floor; i++) {
iL=i*image_width;
iT=INT(i*image_height/image_floor);
imageString2+=replaceAppendAll(imageClipTail
, topClip, iT
, rightClip, ((i+1)*image_Wcount)>image_count?INT(image_width*(image_count-i*image_Wcount)/image_Wcount):image_width
, bottomClip, iT + fheight
, leftClip, 0
, topClipPoint, -iT
, leftClipPoint, iL
);
}
viewOrderSet[innerHTML]=
replaceAppendAll(tailDivString
, widthStyleStringZone, INT(image_width/image_Wcount*(stringWV[indexOf](image_type)>=0?image_count:image_Wcount)), heightStyleStringZone, INT(fheight*(stringWV[indexOf](image_type)>=0?1:image_floor))
, elementZone, imageString2
, imageWidth, image_width, imageHeight, image_height
, imageURL, ((image_url[substr](0, 7)!='http://')?receivedSummeryImageBottom:'')+image_url
);
}
else
{// for 'AS'
imageString2+=replaceAppendAll(imageClipTail
, topClip, 0
, rightClip, image_width
, bottomClip, image_height
, leftClip, 0
, leftClipPoint, 0
, topClipPoint, 0
);
viewOrderSet[innerHTML]=
replaceAppendAll( tailDivString
, widthStyleStringZone, image_width/image_Wcount, heightStyleStringZone, fheight + scrollBarHeight
// -- print from images
, elementZone,
replaceAppendAll(
divOriginalString
, divOriginalStringZone, styleString+onmousedownString+onmousemoveString+onmouseupString
, onmousedownStringZone, pressScrollS+argueventS+';'
, onmousemoveStringZone, moveMouseS+argueventS+';'
, onmouseupStringZone, endScrollS+argueventS+';'
, styleStringZone, absoluteLeftTopCornerStyleString+zindexStyle
, elementZone, divOriginalString
, divOriginalStringZone, idString+onscrollString+styleString
, idStringZone, scrollbarElement
, onscrollStringZone, moveScrollS+argueventS+';'
, styleStringZone, overflowAutoStyleString
, zindexStyleZone, '2'
, widthStyleStringZone, INT(image_width/image_Wcount), heightStyleStringZone, fheight+scrollBarHeight // scroll drop getter
, elementZone, tailDivString
, widthStyleStringZone, INT(image_width/image_Wcount*image_count), heightStyleStringZone, fheight
, elementZone, tableDefaultString
, cellpaddingStringZone, 0, cellspacingStringZone, 0, tableDefaultStringZone, sizeString
, widthStringZone, INT(image_width/image_Wcount*image_count), heightStringZone, fheight
, elementZone, ''
)
+ replaceAppendAll(
divOriginalString
, divOriginalStringZone, styleString+idString+onmousedownString+onmouseupString+ondragString+ondragendString
, onmousedownStringZone, readyScrollS+argueventS+';'
, onmouseupStringZone, endScrollS+argueventS+';'
, ondragStringZone, moveMouseS+argueventS+';'
, ondragendStringZone, endScrollS+argueventS+';'
, idStringZone, showElement
, styleStringZone, absoluteLeftTopCornerStyleString+zindexStyle+cursorpointerStyle
, elementZone, divOriginalString
, divOriginalStringZone, styleString+idString
, idStringZone, showScroll
, styleStringZone, overflowHiddenStyleString //+alphaStyle
, zindexStyleZone, '3'
, widthStyleStringZone, image_width/image_Wcount, heightStyleStringZone, fheight // showing zone
, elementZone,
replaceAppendAll(tailDivString
, widthStyleStringZone, INT(image_width/image_Wcount*(stringWV[indexOf](image_type)>=0?image_count:image_Wcount)), heightStyleStringZone, INT(fheight*(stringWV[indexOf](image_type)>=0?1:image_floor))
, elementZone, imageString2
, imageWidth, image_width, imageHeight, image_height
)
, imageURL, ((image_url[substr](0, 7)!='http://')?receivedSummeryImageBottom:'')+image_url
)
// -- end of print from images
);
}
sendObjAttribValue(viewOrderSet, aniNvS, image_count, aniFloorvS, image_floor, aniWvS, image_Wcount, aniTypevS, image_type);
viewOrder=1;
viW1d=blankOpen(image_url, image_width/image_Wcount, fheight);
// script loading 용으로 처리가 필요함.
if (viWb) { // loading 완료됐다고 생각되는 시점
viewOrder=0;
sendObjAttribValue(viWb, aniNvS, image_count, aniFloorvS, image_floor, aniWvS, image_Wcount, aniTypevS, image_type);
viW1d[innerHTML]=viewOrderSet[innerHTML];
viWb[autoScrollS]();
}
// else
// { // 스크립트 아직 못 받았을거라 생각될 때 - viewImageRecall 이 해당 창에서 호출됨.
// }
}
waitSummery=function (v, o) {
// breakHint(); receivedHintOrder=v; HintWait=timeOut(showHint, 100);
processHash=
locationElement[hash]='#H'+v+o;
readyHashing();
};
showSummery=function (ss_i) { var lI=receivedLinkImages[ss_i]; viewImage(lI[Src], lI[Owidth], lI[Oheight]); };
showSummery2=function (ss_i) { var lI=receivedLinkImages[ss_i];
// try {
viewImage2(lI[Src], lI[Owidth], lI[Oheight], lI[aniW], lI[aniFloor], lI[aniN], lI[aniType]);
// }
// catch(e) { }
};
function showZoom() {
var
sh, zh, ix, iy, iw, ih, xw, xh, nw, nh, rv, r2, lltd, tttr, shopa, shopb
, sL, sT, sR, sB
, sLp, sTp, sW, sH, iLp, iTp, iW, iH
, sLv, sTv, sRv, sBv, iLv, iTv, iRv, iBv
, showZoomHTML='', showZoomHTML2=''
, x, y, i, j, pp, ii, jj
, wCount, hCount
;
breakZoom();
if (lastZoom==ZoomOrder) ZoomOrder=0;
lastZoom=ZoomOrder;
if (ZoomOrder) {
sh=receivedLinkImages[receivedHintOrder]; zh=sh[ZImage][ZoomOrder-1]; iw=zWidth; ih=INT(zh[HHeight]/zh[HWidth]*iw);
wCount=sh[anied]?sh[aniW]:1; hCount=sh[anied]?sh[aniFloor]:1;
if (ih>zHeight) { ih=zHeight; iw=zh[HWidth]/zh[HHeight]*ih; }
rv=1;
xw=receivedSummeryWidth*iw*sh[Owidth]/zh[HWidth]/sh[Width];
if (xw>imageMaximum) rv=imageMaximum/xw;
xh=receivedSummeryHeight*ih*sh[Oheight]/zh[HHeight]/sh[Height];
if (xh>imageMaximum) { r2=imageMaximum/xh; if (rv>r2) rv=r2; }
nw=sh[Owidth]*iw/zh[HWidth];
if (nw>imageMaximum) { r2=imageMaximum/nw; if (rv>r2) rv=r2; }
nh=sh[Oheight]*ih/zh[HHeight];
if (nh>imageMaximum) { r2=imageMaximum/nh; if (nh>r2) rv=r2; }
xw=INT(xw*rv); nw=INT(nw*rv); iw=INT(iw*rv);
xh=INT(xh*rv); nh=INT(nh*rv); ih=INT(ih*rv);
ix=(zWidth-iw)*zh[HLeft]/sh[Owidth]/(sh[aniType]=='W'?sh[aniN]:1)*(sh[aniType]=='H'?wCount:(sh[aniType]=='W'?wCount:1))+zGab;
iy=(zHeight-ih)*zh[HTop]/sh[Oheight]/(sh[aniType]=='H'?sh[aniN]:1)*(sh[aniType]=='W'?hCount:(sh[aniType]=='H'?hCount:1))+zGab;
shopa=iw/zh[HWidth]; shopb=iw/sh[Width]/zh[HWidth]*sh[Owidth];
if (shopa>1) shopa=1/shopa; if (shopb>1) shopb=1/shopb;
shopa=1-shopa; shopb=1-shopb;
if (zh[HWidth]>sh[Width]*sh[Owidth]) { shopb*=shopb; shopb*=shopb; } else { shopa*=shopa; shopa*=shopa; }
if (shopb) {
shopb=INT(shopb/(shopa+shopb)*100);
} else shopb=0;
sW=sh[Width]*xw/receivedSummeryWidth/wCount; // because, [Width]'s zone size
sH=sh[Height]*xh/receivedSummeryHeight/hCount; // because, [Height]'s zone size
sR=(sL=(sh[Left]+sh[Width]*zh[HLeft]/sh[Owidth])*xw/receivedSummeryWidth)
+iw;
sB=(sT=(sh[Top]+sh[Height]*zh[HTop]/sh[Oheight])*xh/receivedSummeryHeight)
+ih;
sLp=sh[Left]*xw/receivedSummeryWidth;
sTp=sh[Top]*xh/receivedSummeryHeight;
iW=nw/wCount;
iH=nh/hCount;
iRp=(iLp=INT(nw*zh[HLeft]/sh[Owidth]))
+iw;
iBp=(iTp=INT(nh*zh[HTop]/sh[Oheight]))
+ih;
// x, y, i, j 로 변환해야함.
//ov='';
for (j=MathElement[floor]((sT-sTp)/sH); j<=MathElement[floor]((sB-sTp)/sH); j++)
for (i=MathElement[floor]((sL-sLp)/sW); i<=MathElement[floor]((sR-sLp)/sW); i++) {
pp=i+j*wCount*hCount; while (pp<0) pp+=wCount*hCount*wCount*hCount;
ii=pp%(wCount*hCount);
jj=INT(pp/wCount/hCount)%(hCount*wCount);
pp=((ii+INT(jj/hCount))%wCount+(INT(ii/wCount)+jj)*wCount)%(wCount*hCount);
x=pp%wCount;
y=INT(pp/wCount);
//ov+=(i==MathElement[floor]((sL-sLp)/sH)?'\r':'')+pp+'/'+x+','+y+' - ';
sRv=(sLv=i*sW+sLp-sL)+sW; sBv=(sTv=j*sH+sTp-sT)+sH;
if (sLv<0) sLv=0; if (sRv>iw) sRv=iw; if (sTv<0) sTv=0; if (sBv>ih) sBv=ih;
sLv+=sL+(x-i)*sW; sRv+=sL+(x-i)*sW; sTv+=sT+(y-j)*sH; sBv+=sT+(y-j)*sH;
iRv=(iLv=i*iW-iLp)+iW; iBv=(iTv=j*iH-iTp)+iH;
// showZoomHTML+=i+' '+j+' '+iLv+' +'+iRv+' '+iTv+' '+iBv+'<br/> '+iW+' '+iH+' '+wCount+' '+hCount+' '+ih+' /<br/>';
if (iLv<0) iLv=0; if (iRv>iw) iRv=iw; if (iTv<0) iTv=0; if (iBv>ih) iBv=ih;
iLv+=iLp+(x-i)*iW; iRv+=iLp+(x-i)*iW; iTv+=iTp+(y-j)*iH; iBv+=iTp+(y-j)*iH;
showZoomHTML
+=
replaceAppendAll(imageZoomClickTail
, waitHintNo, receivedHintOrder
, topClip, sTv, rightClip, sRv, bottomClip, sBv, leftClip, sLv
, leftClipPoint, ix-sL-(x-i)*sW
, topClipPoint, iy-sT-(y-j)*sH
, imageWidth, xw, imageHeight, xh
, imageURL, receivedSummeryImageSrc)
;
showZoomHTML2
+=
replaceAppendAll(imageZoomClickTail
, waitHintNo, receivedHintOrder
, topClip, iTv, rightClip, iRv, bottomClip, iBv, leftClip, iLv
, leftClipPoint, ix-iLp-(x-i)*iW
, topClipPoint, iy-iTp-(y-j)*iH
, imageWidth, nw, imageHeight, nh
, imageURL, ((sh[Src][substr](0, 7)!='http://')?receivedSummeryImageBottom:'')+sh[Src])
;
}
zoomSpaceElement[innerHTML]=
replaceAppendAll(divStyleString
, styleStringZone, absoluteLeftTopCornerStyleString
// , elementZone, divStyleString
, elementZone, divOriginalString
, divOriginalStringZone, styleString+onclickString
, onclickStringZone, waitZoomFunctionString
, waitZoomNo, ZoomOrder
, styleStringZone, overflowHiddenStyleString+alphaStyle+backgroundColor
, widthStyleStringZone, receivedSummeryWidth, heightStyleStringZone, receivedSummeryHeight
, overOpacity100, 50, overOpacity, 0.5
, backgroundColorZone, 'gray'
, elementZone, '')
+replaceAppendAll(divStyleString
, styleStringZone, absoluteLeftTopCornerStyleString
, elementZone, tailDivString
, widthStyleStringZone, iw+ix, heightStyleStringZone, ih+iy
, elementZone, showZoomHTML
)
+replaceAppendAll(divStyleString
, styleStringZone, absoluteLeftTopCornerStyleString+alphaStyle
, elementZone, tailDivString
// , widthStyleStringZone, 1, heightStyleStringZone, 1
, widthStyleStringZone, iw+ix, heightStyleStringZone, ih+iy
, overOpacity100, shopb, overOpacity, shopb/100
, elementZone, showZoomHTML2
)
// +showZoomHTML
;
} else zoomSpaceElement[innerHTML]='';
}
resizing=function () {
var outerSam=documentBodyElement.outerHTML;
windowElement[resizeTo](documentBodyElement[scrollWidth], documentBodyElement[scrollHeight]); }
}
scriptInit();
...
3) 최적화 후..
var linkImages = [],
imageInit, waitHint, waitZoom, waitSummery, showSummery, showSummery2, resizing, imageSet, innerHTML, readyScroll, moveMouse, moveScroll, endScroll, pressScroll, sizingSecond, summeryImageBottom, aniNv, aniFloorv, aniWv, aniTypev, aniNvS, aniFloorvS, aniWvS, aniTypevS, viWb, viewOrder, viewOrderSet, viewImageRecall, autoScroll, clearAutoScroll, sendObjAttribValue, autoScrollS, temp = "";
function argumentReceiver() {}
function scriptInit() {
function Oc() {
if (Ad != M[N]) {
Ad = M[N];
eb()
}
ta(Oc, 200)
}
function eb() {
if (Bd != M[N]) {
A = Bd = M[N];
hc()
}
}
function hc() {
Qa && ua(Qa);
Qa = 0;
Qa = ta(le, 100)
}
function le() {
var a;
Qa && ua(Qa);
Qa = 0;
for (la = T = -1; A[ic](0);) {
a = -1;
switch (A[ic](0)) {
case "#":
break;
case "H":
a = parseInt(A[E](1, A[s]));
if (a >= 0) T = a;
break;
case "Z":
a = parseInt(A[E](1, A[s]));
if (a >= 0) la = a;
break;
case jc:
case Pc:
case va:
case Qc:
case Rc:
Bb = A[ic](0);
break;
default:
break
}
A = a >= 0 ? A[E](A[m](a + "", 1) + (a + "")[s], A[s]) : A[E](1, A[s])
}
if (da[T]) if (T && Ra < 0 && la < 0 && Sc == T && !Bb) {
M[N] = "#H0";
eb()
} else if (Bb) {
M[N] = "#H" + T;
Bb == jc ? Cd(T) : Dd(T);
Bb = "";
eb()
} else {
if (la < 0) la = 0;
if (T != Sc) {
B = T;
Tc();
Sa = la;
Uc()
} else if (la != Ra) {
Sa = la;
Uc()
} else {
A = M[N] = "#H" + T;
eb();
return
}
Sc = T;
Ra = la
}
}
function me() {
var a = arguments,
b = a[0],
c = a[1],
d, e = "",
h, l;
for (d = 2; d < a.length; d++) {
h = c[a[d]];
l = isNaN(h) ? "'" : "";
e += b + "['" + a[d] + "']=" + l + h + l + ";"
}
return e
}
function f() {
var a = arguments,
b, c = a[0];
for (b = 1; b + 1 < a[s]; b += 2) {
Ed[ne](a[b], Fd);
c = c[oe](Ed, a[b + 1])
}
return c
}
function O(a, b) {
return "<" + a + " " + b + " >" + g + "</" + a + ">"
}
function Gd() {
var a;
for (a = 0; a < arguments[s]; a++) q[Vc](arguments[a])
}
function pe() {
argumentReceiver(Ta, fb, innerHTML, sendObjAttribValue, Wc, C, wa, kc, Xc, lc, Yc, Zc, m, mc, $c, ma, Cb, nc, oc, pc, N, Db, Eb, Z, ad, bd, P, q, $, M, ta, ua, gb, Fb, cd, ea, xa, hb, Gb, Ua, na, Hb, Ib, Jb, aa, va, dd, Va, ib, qc, Kb, clearAutoScroll, Lb, autoScrollS, viewImageRecall, viewOrder, viewOrderSet)
}
function Tc() {
var a, b, c, d, e, h, l, o, j, r;
ed && ua(ed);
ed = 0;
jb && ua(jb);
Ra = jb = 0;
rc[innerHTML] = "";
a = da[B];
j = D;
d = u;
e = a[U] / (a[G] / (a[p] ? a[w] / a[H] : 1)) * u;
if (e > j) {
e =
j;
d = a[G] / (a[p] ? a[w] / a[H] : 1) / a[U] * j;
b = (u - d) * a[fa] / (u - a[L] / (a[p] ? a[w] : 1));
c = 0
} else {
c = j == e ? 0 : (j - e) * a[ga] / (j - a[ba]);
b = 0
}
h = d / a[G];
j = d / a[L];
if (h > 1) h = 1 / h;
if (j > 1) j = 1 / j;
h = 1 - h;
j = 1 - j;
if (a[L] > a[G]) {
j *= j;
j *= j
} else {
h *= h;
h *= h
}
j = j ? k(j / (h + j) * 100) : 0;
h = k(d);
l = k(e);
o = b ? f(Hd, g, ya, n, za, x, b, y, 0, g, "") : "";
b = b ? f(Hd, g, ya, n, za, x, u - b - h, y, 0, g, "") : "";
c = c ? f(fd, Aa, c, g, Wa, Ba, Id, gd, 3, g, "") : "";
if (B) {
if (a[p]) {
r = "";
if (aa[m](a[I]) >= 0) for (i = 0; i < a[H]; i++) r += f(hd, Ca, k(e * i), Da, d * ((i + 1) * a[w] > a[Q] ? a[Q] - i * a[w] : a[w]), Ea, e * (i + 1), Fa, 0, Ga, d * i * a[w], Ha, -e * i);
else r += f(hd, Ca, 0, Da, d * a[w], Ea, e * a[H], Fa, 0, Ga, 0, Ha, 0)
}
r = c + f(fd, Aa, l, g, o + qe + b, Ia, h, g, ha, x, h, y, l + (a[p] ? sc : 0), g, f(hd, Ca, e / a[ba] * a[ga] * (a[p] ? a[H] : 1), Da, d / (a[L] / (a[p] ? a[w] : 1)) * a[fa] + h, Ea, e / a[ba] * a[ga] * (a[p] ? a[H] : 1) + l, Fa, d / (a[L] / (a[p] ? a[w] : 1)) * a[fa], Ga, -d / (a[L] / (a[p] ? a[w] : 1)) * a[fa], Ha, -e / a[ba] * a[ga] * (a[p] ? a[H] : 1), R, Mb, ia, k(d / (a[L] / (a[p] ? a[w] : 1)) * u), ja, k(e / a[ba] * D * (a[p] ? a[H] : 1))) + (a[p] ? f(ca, V, t + tc + Jd + Nb, Ob, uc + C + ";", id, kb + C + ";", lb, Ja + C + ";", n, oa + mb, g, ca, V, Ka + Kd + t, W, na, jd, vc + C + ";", n, Ld, Xa, "2", x, d, y, e + (a[p] ? sc : 0), g, ha, x, k(d * a[Q]), y, l, g, Pb, nb, 0, ob, 0, pb, wc, Ia, k(d * a[Q]), Aa, l, g, "") : "") + f(ca, V, t + Ka + (a[p] ? tc + Nb + Md + Nd : ""), Ob, xc + C + ";", lb, Ja + C + ";", kd, kb + C + ";", ld, Ja + C + ";", W, Ua, n, oa + mb + Od, g, ca, V, t + Ka, W, Hb, n, za + Ya, Xa, "3", x, d, y, e, qb, a[p] ? "100" : j, Qb, a[p] ? "1" : j / 100), g, a[p] ? f(ha, x, k(d * (aa[m](a[I]) >= 0 ? a[Q] : a[w])), y, k(e * (aa[m](a[I]) >= 0 ? 1 : a[H])), g, r, ia, k(d * a[w]), ja, e * (a[p] ? a[H] : 1)) : f(re, md, Pd, ia, h, ja, l), R, (a[La][Rb](0, 7) != "http://" ? Za : "") + a[La])
} else r = "";
$a[yc] = f(Ya[E](Ya[m](yc + ":") + (yc + ":")[s], Ya[m](";") + 1), qb, B ? Sb : 0);
$a[nd] = B ? Sb / 100 : 0;
if (B) {
$a.width = u + "px";
$a[rb] = D + "px"
} else $a.width = $a[rb] = "1px";
e = "";
if (j = a[sb]) for (d = 0; d < j[s]; d++) e += f(se, J, B, pa, d + 1);
if (a[p]) {
aniTypev = a[I];
aniNv = a[Q];
aniWv = a[w];
aniFloorv = a[H]
}
Qd[innerHTML] = f(Pb, pb, B ? "" : f(" " + t, n, zc, Tb, 0, Ub, D), nb, 0, ob, 0, g, r + od, g, Wa, Ba, Id, gd, 3, g, Pb, pb, Ac, nb, Rd, ob, 0, Ia, u, g, od, g, Wa, Ba, t, n, Sd + Bc, Vb, "white", g, f(ya, n, "float:right", g, B ? e + f(Td, J, 0, g, "Summery") + " " + f(Ud, qa, "waitSummery(" + B + ",'" + Wb + "');", J, B, Wb, jc, g, "\uc6d0\ubcf8") + (a[p] ? " " + f(Ud, qa, "waitSummery(" + B + ",'" + Wb + "');", J, B, Wb, a[I], g, Vd[a[I]]) : "") : "") + a[Cc]);
if (Xb[xa] > Yb) {
Yb = Xb[xa];
Xb[ma][rb] = Yb + "px"
}
a[I] == va && autoScroll(Ib)
}
function Wd(a, b, c) {
var d, e;
if (!Xb) {
if (navigator.appName[m]("Opera") >= 0 || !(e = viWb)) {
e = P;
d = e[wa];
d[Vc](f(pd, qd, a, rd, Xd, sd, "viewImageRecall=" + viewImageRecall + ";viewOrder=" + viewOrder + ";" + me("viewOrderSet", viewOrderSet, tb, ub, vb, wb, innerHTML)))
}
e[Yd](0, 0);
e[Va](b, c);
e[td](a);
e[lc]();
return e[wa].all.woutput
}
if (navigator.appName[m]("Opera") >= 0 || !(d = viWb)) {
d = P.open(te, Zd, f($d, ud, b, vd, c));
e = d[wa];
e.open();
e[Vc](f(pd, qd, a, rd, Xd, sd, ""));
e.close()
}
d[Yd](0, 0);
d[Va](b, c);
d[td](a);
d[lc]();
return d[wa].all.woutput
}
function ue(a) {
var b = arguments,
c;
if (b[s] == 1) P.open(f(ve, ae, a), Zd, f($d, ud, 310, vd, 310));
else {
c = Wd(a, b[1], b[2]);
c[innerHTML] = f(Pd, R, a, ia, b[1], ja, b[2])
}
}
function Uc() {
var a, b, c, d, e, h, l, o, j, r, z, v, xb, be, ce, Dc, Ec, Ma, Na, Zb, yb, zb, K, $b, ac, bc, cc, dc, ec, fc, de = "",
ee = "",
ka, ab, X, Y, F, S;
jb && ua(jb);
jb = 0;
if (Ra == Sa) Sa = 0;
if (Ra = Sa) {
a = da[B];
b = a[sb][Sa - 1];
e = wd;
h = k(b[gc] / b[Oa] * e);
F = a[p] ? a[w] : 1;
S = a[p] ? a[H] : 1;
if (h > Fc) {
h = Fc;
e = b[Oa] / b[gc] * h
}
c = 1;
l = u * e * a[G] / b[Oa] / a[L];
if (l > Pa) c = Pa / l;
o = D * h * a[U] / b[gc] / a[ba];
if (o > Pa) {
d = Pa / o;
if (c > d) c = d
}
j = a[G] * e / b[Oa];
if (j > Pa) {
d = Pa / j;
if (c > d) c = d
}
r = a[U] * h / b[gc];
if (r > Pa) {
d = Pa / r;
if (r > d) c = d
}
l = k(l * c);
j = k(j * c);
e = k(e * c);
o = k(o * c);
r = k(r * c);
h = k(h * c);
c = (wd - e) * b[Gc] / a[G] / (a[I] == "W" ? a[Q] : 1) * (a[I] == "H" ? F : a[I] == "W" ? F : 1) + bb;
d = (Fc - h) * b[Hc] / a[U] / (a[I] == "H" ? a[Q] : 1) * (a[I] == "W" ? S : a[I] == "H" ? S : 1) + bb;
z = e / b[Oa];
v = e / a[L] / b[Oa] * a[G];
if (z > 1) z = 1 / z;
if (v > 1) v = 1 / v;
z = 1 - z;
v = 1 - v;
if (b[Oa] > a[L] * a[G]) {
v *= v;
v *= v
} else {
z *= z;
z *= z
}
v = v ? k(v / (z + v) * 100) : 0;
Ma = a[L] * l / u / F;
Na = a[ba] * o / D / S;
be = (z = (a[fa] + a[L] * b[Gc] / a[G]) * l / u) + e;
ce = (xb = (a[ga] + a[ba] * b[Hc] / a[U]) * o / D) + h;
Dc = a[fa] * l / u;
Ec = a[ga] * o / D;
yb = j / F;
zb = r / S;
iRp = (Zb = k(j * b[Gc] / a[G])) + e;
iBp = (b = k(r * b[Hc] / a[U])) + h;
for (Y = Ic[Jc]((xb - Ec) / Na); Y <= Ic[Jc]((ce - Ec) / Na); Y++) for (X = Ic[Jc]((z - Dc) / Ma); X <= Ic[Jc]((be - Dc) / Ma); X++) {
for (K = X + Y * F * S; K < 0;) K += F * S * F * S;
ka = K % (F * S);
K = parseInt(K / F / S) % (S * F);
K = ((ka + parseInt(K / S)) % F + (parseInt(ka / F) + K) * F) % (F * S);
ka = K % F;
ab = parseInt(K / F);
ac = (K = X * Ma + Dc - z) + Ma;
bc = ($b = Y * Na + Ec - xb) + Na;
if (K < 0) K = 0;
if (ac > e) ac = e;
if ($b < 0) $b = 0;
if (bc > h) bc = h;
K += z + (ka - X) * Ma;
ac += z + (ka - X) * Ma;
$b += xb + (ab - Y) * Na;
bc += xb + (ab - Y) * Na;
ec = (cc = X * yb - Zb) + yb;
fc = (dc = Y * zb - b) + zb;
if (cc < 0) cc = 0;
if (ec > e) ec = e;
if (dc < 0) dc = 0;
if (fc > h) fc = h;
cc += Zb + (ka - X) * yb;
ec += Zb + (ka - X) * yb;
dc += b + (ab - Y) * zb;
fc += b + (ab - Y) * zb;
de += f(fe, J, B, Ca, $b, Da, ac, Ea, bc, Fa, K, Ga, c - z - (ka - X) * Ma, Ha, d - xb - (ab - Y) * Na, ia, l, ja, o, R, Mb);
ee += f(fe, J, B, Ca, dc, Da, ec, Ea, fc, Fa, cc, Ga, c - Zb - (ka - X) * yb, Ha, d - b - (ab - Y) * zb, ia, j, ja, r, R, (a[La][Rb](0, 7) != "http://" ? Za : "") + a[La])
}
rc[innerHTML] =
f(ya, n, oa, g, ca, V, t + cb, qa, Kc, pa, Sa, n, za + Ya + xd, x, u, y, D, qb, 50, Qb, 0.5, Lc, "gray", g, "") + f(ya, n, oa, g, ha, x, e + c, y, h + d, g, de) + f(ya, n, oa + Ya, g, ha, x, e + c, y, h + d, qb, v, Qb, v / 100, g, ee)
} else rc[innerHTML] = ""
}
var yd = 0,
ed, jb, Sa, Ra = -1,
Yb, bb, wd, Fc, ge = 1024,
he = 768,
Pa = 16383,
sc = 22,
$a, Xb, Qd, rc, u, D, Mb, Sb, Za, Rd, da, B, Fd = "gi",
Ic = Math,
Jc = "floor",
Ed = RegExp("", Fd),
k = parseInt,
Cd, Dd, s = "length",
E = "substring",
Rb = "substr",
Vc = "write",
ic = "charAt",
yc = "filter",
nd = "opacity",
rb = "height",
Yd = "moveTo",
ne = "compile",
oe = "replace",
Ad = "",
Bd = "",
fa = "Left",
ga = "Top",
L = "Width",
ba = "Height",
G = "Owidth",
U = "Oheight",
Cc = "Hint",
sb = "ZImage",
Pc = "S",
Qc = "W",
Rc = "V",
jc = "I",
p = "anied",
Q = "aniN",
I = "aniType",
H = "aniFloor",
w = "aniW",
La = "Src",
Vd = {},
Gc = "HLeft",
Hc = "HTop",
Oa = "HWidth",
gc = "HHeight",
td = "retitle",
xc = "readyScroll",
kb = "moveMouse",
vc = "moveScroll",
Ja = "endScroll",
uc = "pressScroll",
zd, A = "",
T = -1,
la = -1,
Bb = "",
Qa, Sc = -1;
Ra = -1;
var g = "{ntZ}",
ie = ["<br>", "<br/>", "<BR>", "<BR/>", "</p>", "</P>"],
Ta, fb, Wc, C, wa, kc, Xc, lc, Yc, Zc, m, mc, $c, ma, Cb, nc, pc, oc, N, Db, Eb, Z, ad, bd, P, q, $, M, ta, ua, gb, Fb, cd, ea, xa, hb, Gb, Ua, na, Hb, Ib, ib, qc, Kb, Lb, Jb, aa, va, dd, Va, tb, ub, vb, wb;
zd = function() {
innerHTML = "innerHTML";
Wc = "event";
C = "(" + Wc + ")";
wa = "document";
kc = "body";
Xc = "location";
lc = "focus";
Yc = "setTimeout";
Zc = "clearTimeout";
m = "indexOf";
mc = "resizeTo";
$c = "resizeBy";
ma = "style";
Cb = "zIndex";
nc = "target";
oc = "pointer";
pc = "cursor";
N = "hash";
Db = "clientX";
Eb = "clientY";
Z = "scrollLeft";
ad = "scrollTop";
bd = "readyState";
P = window;
q = P[wa];
$ = q[kc];
M = P[Xc];
ta = P[Yc];
ua = P[Zc];
gb = "onloadFunction";
Fb = "sizingSecond";
cd = "title";
ea = "scrollWidth";
xa = "scrollHeight";
hb = "clientWidth";
Gb = "clientHeight";
Ua = "showElement";
na = "scrollbarElement";
Hb = "showScroll";
Ib = "startAnimation";
Jb = "AS";
aa = "WV";
va = "A";
dd = Jb + aa;
Va = "resizing";
viewOrder = 0;
viewOrderSet = {};
tb = "aniNv";
ub = "aniFloorv";
vb = "aniWv";
wb = "aniTypev";
autoScrollS = "autoScroll"
};
zd();
sendObjAttribValue = function() {
var a = arguments,
b = a[0],
c;
for (c = 1; c < a.length; c += 2) b[a[c]] = a[c + 1]
};
sendObjAttribValue(Vd, va, "\uc601\uc0c1", Pc, "\ud398\uc774\uc9c0\uc601\uc0c1", Qc, "\uac00\ub85c\ub098\uc5f4", Rc, "\uc138\ub85c\ub098\uc5f4");
var we = O("map", "{apO}"),
Ab = O("a", "{aO}"),
V = "{iv}",
ca = O("div", V),
xe = O("script", ""),
sd = "{viewImageRecallSet}",
ye = O("html", ""),
ze = O("head", ""),
Ae = O("title", ""),
Be = O("b", ""),
Ce = O("marquee", "{q}"),
De = O(kc, "{od}"),
je = O("table", "{leO}"),
Mc = O("tr", "{trO}"),
Ba = "{td}",
Wa = O("td", Ba),
gd = "{ols}",
Id = "colspan=" + gd + " ",
W = "{idS}",
Ka = 'id="' + W + '" ',
Ia = "{hStr}",
Ac = "width=" + Ia + " ",
Aa = "{htStr}",
ra = rb + "=" + Aa + " ",
wc = Ac + ra,
n = "{s}",
t = ma + '="' + n + '" ',
ia = "{geW}",
ja = "{geH}",
sa = f(wc, Ia, ia, Aa, ja);
sa = f("<img {gO} />", "{gO}", 'border=0 src="{sr}" ' + sa + "{gD}");
var ya = f(ca, V, t),
Nc = f(ca, V, Ka + t),
od = f(Mc, "{trO}", ""),
fd = f(Mc, "{trO}", ra),
Hd = f(Wa, Ba, "");
Mc = f(Wa, Ba, Ac + t);
var qe = f(Wa, Ba, Ac),
Od = pc + ":" + oc + "; ",
x = "{hSty}";
ra = "width:" + x + "px; ";
var y = "{htSty}",
db = rb + ":" + y + "px; ",
za = f("overflow:{rf}; " + ra + db, "{rf}", "hidden"),
Ld = f("overflow:{rf}; " + ra + db, "{rf}", "auto"),
Tb = "{ftS}",
Ub = "{pS}",
zc = "position:absolute; " + ("left:" + Tb + "px; " + ("top:" + Ub + "px; ")),
oa = f(zc, Tb, 0, Ub, 0),
Xa = "{x}",
mb = "z-index:" + Xa + "; ",
Ca = "{o}",
Da = "{htC}",
Ea = "{mm}",
Fa = "{l}",
Ga = "{tClipP}",
Ha = "{pClipP}";
ra = "clip:rect(" + Ca + "px, " + Da + "px, " + Ea + "px, " + Fa + "px); " + f(zc, Tb, Ga, Ub, Ha);
var Lc = "{kg}",
xd = "background-color:" + Lc + "; ",
Vb = "{co}",
Bc = "color:" + Vb + "; ",
Sd = "font-size:9pt; ",
qa = "{nc}",
cb = 'onclick="' + qa + '" ',
Ob = "{wn}",
tc = 'onmousedown="' + Ob + '" ',
kd = "{a}",
Md = 'ondrag="' + kd + '" ' + (q.all ? "" : 'ondragstart="return false;" '),
ld = "{end}",
Nd = 'ondragend="' + ld + '" ',
id = "{emo}",
Jd = 'onmousemove="' + id + '" ',
lb = "{up}",
Nb = 'onmouseup="' + lb + '" ',
jd = "{ns}",
Kd = 'onscroll="' + jd + '"',
J = "{Hi}";
db = "waitHint(" + J + ");";
var pa = "{mN}",
Kc = "waitZoom(" + pa + ");",
Wb = "{showString}",
Ee = f("<area {eaO} />", "{eaO}", 'shape="{sh}" coords="{eaL},{eaT},{eaR},{eaB}" href="{hr}" ' + Nb, "{sh}", "rect", "{hr}", "#H" + J, lb, db),
R = "{UR}",
Pd = f(sa, "{gD}", "", "{sr}", R),
ke = f(sa, "{gD}", t, n, ra, "{sr}", R),
Td = f(Ab, "{aO}", 'href="{hr}" ' + cb, "{hr}", "#H" + J, qa, db);
db = f(Ab, "{aO}", 'href="{hr}" ' + cb, "{hr}", "#H" + J + "Z" + pa, qa, Kc);
var hd = f(sa, "{gD}", t, n, ra, "{sr}", R),
fe = f(db, pa, 0, g, sa, "{gD}", t, n, ra, "{sr}", R),
qb = "{IL}",
Qb = "{v}",
Ya = yc + ":Alpha(" + nd + "=" + qb + "); " + nd + ":" + Qb + "; ",
Fe = f(Nc, W, "backStyle", n, "{kT}{Si}" + xd, Lc, "#222222", g, f(sa, "{gD}", 'usemap="#{ema}" ', "{sr}", R, "{ema}", "summeryMap_1") + f(ya, n, "{kT}", g, Nc, W, "screenAlpha", n, za + Ya + xd, x, 1, y, 1, Lc, "black", g, "") + f(Nc, W, "returnSpace", n, "{kT}", g, "") + f(Nc, W, "ZoomSpace", n, "{kT}" + mb, Xa, 6, g, ""));
sa = f(Ab, "{aO}", t + 'href="{hr}" ' + cb, "{hr}", "#");
var Ud = f(Ab, "{aO}", 'href="{hr}" ' + cb + t, n, Bc, Vb, "lightgreen", "{hr}", "#H" + J + Wb),
Ge = f(Ab, "{aO}", t + 'href="{hr}" ' + cb, "{hr}", "#H" + J + "Z" + pa, n, Bc, Vb, "lightgreen", qa, Kc),
se = f(Ab, "{aO}", 'href="{hr}" ' + cb, "{hr}", "#H" + J + "Z" + pa, qa, Kc, g, pa + ")") + " ",
te = "about:blank",
Zd = "_blank",
ud = "{wW}",
vd = "{wH}",
$d = f("directories,location,menubar,resizable/scrollbars/status,titlebar,toolbar,width=", ",", "=no,", "/", "=yes,") + ud + "," + rb + "=" + vd,
ae = "{eNa}",
ve = "http://club.cyworld.nate.com/club/board/image/imgbrd_viewurl.asp?image_url=" + ae,
nb = "{dd}",
ob = "{cin}",
pb = "{leD}",
Pb = f(je, "{leO}", "border=0 " + ("cellpadding=" + nb + " ") + ("cellspacing=" + ob + " ") + pb),
qd = "{tl}",
rd = "{geZ}",
pd, md = "{geE}",
Xd = f(Pb, pb, t, n, oa, nb, 5, ob, 0, g, od, g, Wa, Ba, Ka, W, "woutput", g, md) + f(je, "{leO}", t + 'bgcolor="{bg}" ', n, zc + mb, Tb, 5, Ub, 5, Xa, 5, "{bg}", "#550000", g, fd, Aa, 20, g, Mc, Ia, 40, n, Sd + "font-family:\ub3cb\uc6c0; ", g, Be, g, sa, n, Bc + "text-underline:none; ", Vb, "#ffffff", qa, "setTimeout(function(){window.close();},100)", g, "[\ub2eb\uae30]"),
ha = f(ya, n, za + "position:relative; ");
f(Ce, "{q}", wc + 'behavior="{be}" scrollamount={lla} scrolldelay={ld} direction="{ir}" loop={loo} ', Ia, "{onW}", Aa, "{nH}", "{be}", "alternate", "{ld}", 1E3, "{lla}", "{onA}", "{ir}", "left", "{loo}", -1, g, ha, x, "{neW}", y, "{neH}", g, "{il}");
var re = f(Td, J, 0, g, md);
imageSet = function() {
var a, b, c, d = arguments,
e, h, l, o, j;
u = summeryWidth;
D = summeryHeight;
Mb = summeryImageSrc;
Sb = screenOpacity;
Za = summeryImageBottom;
Rd = summeryPadding;
da = linkImages;
b = da[0] = {};
b[fa] = 0;
b[ga] = 0;
b[L] = u;
b[ba] = D;
b[Cc] = "";
b[G] = u;
b[U] = D;
b[Cc] = "";
b[sb] = 0;
bb = u < D ? k(u / 40) : k(D / 40);
wd = u - bb - bb;
Fc = D - bb - bb;
for (a = 0; a < d[s];) {
yd++;
b = da[yd] = {};
if (b[p] = (e = d[a][m]("*")) >= 0) {
c = d[a];
b[Q] = c[E](0, e);
b[La] = c[E](e + 1, c[s]);
c = b[Q];
b[H] = (j = c[m]("/")) >= 0 ? k(c[E](j + 1, e)) : 1;
j = j > 0 ? j : c[s];
c = c[E](0, j);
if (dd[m](c[E](0, 1)) >= 0) {
b[I] = c[ic](0);
c = c[E](1, c.length)
} else b[I] = va;
c = b[Q] = k(c[E](0, j));
b[w] = k(c / b[H]);
b[w] * b[H] < c && b[w]++
} else {
b[Q] = 0;
b[La] = d[a]
}
c = d[a + 1];
for (e = c[m]("//"); e > 0; e = c[m]("//", e + 2)) {
if (e > 0) if (c[Rb](e - 1, 1) != ">") continue;
h = c[s];
for (o = 0; o < ie[s]; o++) if ((l = c[m](ie[o], e)) >= 0) if (l < h) h = l;
l = c[m](")", e);
o = c[s] - h;
c = c[E](0, e) + f(Ge, J, yd, pa, k(c[E](e + 2, l)), g, c[E](e + 2, h)) + c[E](h, c[s]);
e = c[s] - o
}
b[Cc] = c;
b[fa] = d[a + 2];
b[ga] = d[a + 3];
b[L] = d[a + 4];
b[ba] = d[a + 5];
b[G] = ge;
b[U] = he;
a += 6;
if (a < d[s]) if (!isNaN(d[a])) {
ge = b[G] = d[a];
he = b[U] = d[a + 1];
a += 2
}
for (b[sb] = 0; !isNaN(d[a]);) {
if (d[a][s] >= 0) break;
if (!(c = b[sb])) c = b[sb] = [];
c = c[c[s]] = {};
c[Gc] = d[a];
c[Hc] = d[a + 1];
c[Oa] = d[a + 2];
c[gc] = d[a + 3];
a += 4
}
}
};
clearAutoScroll = function() {
if (Lb) {
ua(Lb);
Lb = 0
}
};
pressScroll = function(a) {
var b, c;
clearAutoScroll();
Ta = 1;
fb = 0;
b = q.all[Ua];
c = q.all[na];
b[ma][Cb] = 1;
ib = a[Db];
qc = a[Eb];
Kb = c[Z]
};
readyScroll = function(a) {
var b, c;
clearAutoScroll();
Ta = 2;
fb = 0;
b = q.all[Ua];
c = q.all[na];
b[ma][Cb] = 1;
ib = a[Db];
qc = a[Eb];
Kb = c[Z]
};
moveMouse = function(a) {
var b;
if (Ta) {
if (a[nc]) a[nc][ma][pc] = oc;
fb |= ib != (b = a[Db]) || qc != a[Eb];
if (Ta == 1) endScroll(a);
else {
a = q.all[na];
b = Jb[m](aniTypev) >= 0 ? Kb + (ib - b) / 40 * a[hb] : Kb + ib - b;
if (b < 0) b = 0;
if (b > a[ea] - a[hb]) b = a[ea] - a[hb];
a[Z] = b
}
}
};
moveScroll = function() {
var a, b;
fb = 1;
a = q.all[Hb];
b = q.all[na];
if (Jb[m](aniTypev) >= 0) {
b = parseInt(b[Z] / b[ea] * (aniNv + 1));
if (b >= aniNv) b = aniNv - 1;
a[Z] = b % aniWv * a[ea] / aniWv;
a[ad] = parseInt(b / aniWv) * a[xa] / aniFloorv
} else a[Z] = b[Z]
};
endScroll = function() {
q.all[Ua][ma][Cb] = 3;
if (!fb && Ta == 2) M[N] = "#H0";
autoScroll(Ib);
Ta = 0
};
autoScroll = function(a) {
var b;
clearAutoScroll();
if (a != Ib) {
if (aniTypev != va) return;
if (!(a = q.all[na])) return;
b = parseInt(a[Z] / a[ea] * (aniNv + 1));
if (b >= aniNv) b = aniNv - 1;
b++;
if (b == aniNv) b = 0;
a[Z] = parseInt(b * a[ea] / (aniNv + 1)) + 1
}
Lb = ta(autoScroll, 1E3)
};
sizingSecond = function() {
$[Gb] && $[Gb] < $[xa] && P[$c]($[ea] - $[hb], $[xa] - $[Gb])
};
pd = f(ye, g, f(ze, g, Ae, g, qd) + f(De, "{od}", 'onunload="{nu}" onload="{onl}" ', "{nu}", "try{if(opener.viWb)opener.viWb=null;}catch(err){}", "{onl}", "if(!" + gb + ")" + gb + "=function(){};", g, rd + xe, g, " var " + gb + "=0," + Fb + "," + Va + ", " + xc + "," + kb + "," + vc + "," + Ja + "," + uc + "," + autoScrollS + " , waitHint=function(){} ;function initScript(){var " +
function() {
var a = pe + "",
b, c;
b = a[m]("{");
b = a[m]("(", b);
c = a[m](")", b);
return a.substring(b + 1, c)
}() + ";sendObjAttribValue=" + sendObjAttribValue + ";reValue=" + zd + ";reValue();" + xc + "=" + readyScroll + ";" + kb + "=" + moveMouse + ";" + vc + "=" + moveScroll + ";" + Ja + "=" + endScroll + ";" + uc + "=" + pressScroll + ";clearAutoScroll=" + clearAutoScroll + ";" + autoScrollS + "=" + autoScroll + ";" + sd + Fb + "=" + sizingSecond + ";" + Va + "=" +
function(a, b) {
if ("interactiveloading" [m](q[bd]) >= 0) ta(Va + "(" + a + "," + b + ");", 200);
else {
P[mc](a, b);
onloadFunction ? ta(gb + "();" + Fb + "();", 100) : ta(sizingSecond, 100)
}
} + ";" + td + "=" +
function(a) {
q[cd] = a
} + ";try{ if (!viewImageRecall) opener.viewImageRecall(window); else viewImageRecall(window); } catch(err) {alert('\uc8c4\uc1a1\ud569\ub2c8\ub2e4. \uc5d0\ub7ec\uc5d0\uc694.');}} initScript(); "));
imageInit = function() {
var a, b, c, d, e, h = M[N];
if (!Za) {
a = Mb;
Za = a[E](0, a[m]("=") + 1)
}
Yb = D >= 300 ? D + 200 : 500;
b = f(za, x, u, y, Yb);
c = oa;
e = "";
for (a = 1; a < da[s]; a++) {
d = da[a];
e += f(Ee, "{eaL}", d[fa], "{eaT}", d[ga], "{eaR}", d[fa] + d[L], "{eaB}", d[ga] + d[ba], J, a)
}
if (h[m](jc) >= 0 || h[m](va) >= 0 || h[m](Pc) >= 0 || h[m](Qc) >= 0 || h[m](Rc) >= 0) {
Tc = Uc = argumentReceiver;
Oc()
} else {
Gd(f(we, "{apO}", 'name="{meS}" ', "{meS}", "summeryMap_1", g, e));
Gd(f(Fe, "{kT}", c, "{Si}", b, R, Mb, ia, u, ja, D, qb, Sb, Qb, Sb / 100));
$a = q.all.screenAlpha[ma];
Xb = q.all.backStyle;
Qd = q.all.returnSpace;
rc = q.all.ZoomSpace;
B = 0;
Tc();
Oc();
if (q.all && "attachEvent" in q) q.attachEvent("onpropertychange", eb);
else P.onhashchange = eb
}
};
waitHint = function(a) {
A = M[N] = "#H" + a;
hc()
};
waitZoom = function(a) {
A = M[N] = "#H" + B + "Z" + a;
hc()
};
viewImageRecall = function(a) {
viWb = a;
if (viewOrder) {
viewOrder = 0;
sendObjAttribValue(viWb, tb, viewOrderSet[tb], ub, viewOrderSet[ub], vb, viewOrderSet[vb], wb, viewOrderSet[wb]);
viWb[wa].all.woutput[innerHTML] = viewOrderSet[innerHTML];
viWb[autoScrollS]()
}
};
waitSummery = function(a, b) {
A = M[N] = "#H" + a + b;
hc()
};
Cd = function(a) {
a = da[a];
ue(a[La], a[G], a[U])
};
Dd = function(a) {
var b = da[a],
c = b[La],
d = b[G],
e = b[U];
a = b[w];
var h = b[H],
l = b[Q];
b = b[I];
var o, j = k(e / h),
r, z, v;
j * h < e && j++;
r = "";
if (aa[m](b) >= 0) {
for (o = 0; o < h; o++) {
z = o * d;
v = k(o * e / h);
r += f(ke, Ca, v, Da, (o + 1) * a > l ? k(d * (l - o * a) / a) : d, Ea, v + j, Fa, 0, Ha, -v, Ga, z)
}
viewOrderSet[innerHTML] = f(ha, x, k(d / a * (aa[m](b) >= 0 ? l : a)), y, k(j * (aa[m](b) >= 0 ? 1 : h)), g, r, ia, d, ja, e, R, (c[Rb](0, 7) != "http://" ? Za : "") + c)
} else {
r += f(ke, Ca, 0, Da, d, Ea, e, Fa, 0, Ga, 0, Ha, 0);
viewOrderSet[innerHTML] = f(ha, x, d / a, y, j + sc, g, f(ca, V, t + tc + Jd + Nb, Ob, uc + C + ";", id, kb + C + ";", lb, Ja + C + ";", n, oa + mb, g, ca, V, Ka + Kd + t, W, na, jd, vc + C + ";", n, Ld, Xa, "2", x, k(d / a), y, j + sc, g, ha, x, k(d / a * l), y, j, g, Pb, nb, 0, ob, 0, pb, wc, Ia, k(d / a * l), Aa, j, g, "") + f(ca, V, t + Ka + tc + Nb + Md + Nd, Ob, xc + C + ";", lb, Ja + C + ";", kd, kb + C + ";", ld, Ja + C + ";", W, Ua, n, oa + mb + Od, g, ca, V, t + Ka, W, Hb, n, za, Xa, "3", x, d / a, y, j, g, f(ha, x, k(d / a * (aa[m](b) >= 0 ? l : a)), y, k(j * (aa[m](b) >= 0 ? 1 : h)), g, r, ia, d, ja, e), R, (c[Rb](0, 7) != "http://" ? Za : "") + c))
}
sendObjAttribValue(viewOrderSet, tb, l, ub, h, vb, a, wb, b);
viewOrder = 1;
c = Wd(c, d / a, j);
if (viWb) {
viewOrder = 0;
sendObjAttribValue(viWb, tb, l, ub, h, vb, a, wb, b);
c[innerHTML] = viewOrderSet[innerHTML];
viWb[autoScrollS]()
}
};
resizing = function() {
P[mc]($[ea], $[xa])
}
}
scriptInit();
...
4)
.. 부분부분을 설명해보자면
function argumentReceiver()
참조(?)될 값들을 받을 널함수입니다.
var 변수로 넘기기 위한 도구(?)로만 사용되죠.
이 함수가 함수 내에 있으면 널함수로 인정되어 이 함수 자체가 사라지게 마련입니다만,
그걸 막기 위해 외부 함수로 아얘 빼돌렸(?)습니다.
function scriptInit()
전체적 초기화 함수입니다.
이 함수 이전에 var 부분이 있는 것은
외부에서 사용해야할 변수들이 많아서죠.
.. 줄이고 줄여서 간신히 저정도 남겨놓은 겁니다.
, imageMaximum=16383, scrollBarHeight=22
scrollBar 를 측정하는 것이 가능하긴 합니다만,
그냥 22px 로 고정했구요,
imageMaximum 부분은
이미지를 웹페이지에 표시할 때 표준(?)으로 할 최대값을 지정한겁니다.
참고로,
image 크기는 저 값을 한계로 잡는다고 하더라도,
저런 이미지가 브라우져 내에서는 여러개 표시 가능합니다.
, length='length'
, substring='substring', substr='substr', write='write', charAt='charAt'
이런 형태의 스트링은 좀 이상해보입니다만,
최적화를 대비한 스트링 변수입니다. (..라고는 하지만, 상수형태의 사용..)
코드 최적화하면 한자, 또는 두자까지 줄어들어
.연계변수명 -> .[명]
형식으로 적용이 가능해지죠. ( 그래서, 넉자 이상의 경우에만 적용시켰다고 보면 됩니다. )
reValue=function ()
새창.. 그러니까, 서브로 만들어(?)올려야 할 창에
함수나 변수값을 초기화하기위한 함수입니다.
내부에서도 쓰기 위해 지정을 하기도 합니다만,
일단 전달용 함수로 보시면 될겁니다.
function onpropertyHash()
hash 값의 변동(주소창에 # 이후 붙는 값이 바뀔 때..) 이벤트를 받는 함수입니다.
function hashing()
hash 변동을 처리할 부분입니다.
.. 살짝(?) 복잡하네요.
sendObjAttribValue=function ()
object 를 직접 선언해도 되긴 합니다만,
object 에 선언값을 부여하고 싶을 때라고 생각해 만들었습니다.
코드 길이를 줄이려고 만든건데,
.. 나름인 것 같습니다.
function replaceAppendAll()
스트링 내에 검색값과 치환값을 적용시키기 위한 함수입니다.
.. 뭐, .replace 함수가 자주 쓰이긴 하니까요.
치환값으로 {치환대표값} 씨리즈를 만들어서 많이 적용했습니다.
나중에 {치환대표값} 씨리즈들은 최종 최적화 이전에 글자수 줄이기를 실행했습니다.
function setTagString(tagNameZone, tagStringZoneName)
부분적으로, 따로(?) 태그 만들기 씨리즈입니다.
스트링에서 바로 전환해서 쓸 수 있다면 더 좋겠습니다만,
그정도의 여유는 갖지 못했습니다.
=function(evt)
Firefox 와 IE 가 공통적으로 받을 수 있는 이벤트 형식입니다.
on---=xxx(event)
이런 형식의 전송이 있으면 Firefox 든 IE 든 유사 방법으로 처리 가능하거든요.
(물론, 각각의 특성에 다시 맞춰줘야하긴 합니다..)
.. 뭐, 덕분에 태그 안쪽이 좀 지저분(?)해졌죠.
function animationVarReceiver()
function animationVarString()
새창에 변수 넘기기 위한 가상함수와 함수입니다.
초기에 나왔던 argumentReceiver() 와 연계되어있죠.
Regular Expression ( IE 기준 RegExp )를 알았다면 함수가 더 쉬웠을텐데요.. 좀 아쉽긴 하네요.
(뭐.. 언젠가(?) 고칠 생각은 하겟죠.)
resizingNewWindow = function(ww, hh)
창 크기를 조정하려는 함수입니다만,
될 때고 있고, 안될 때도 있더라구요..
.. 로딩 속도의 문제인가..라는 생각만 해봅니다.
htmlBODY
새창에 올릴 html 스트링입니다.
줄인다고 줄였는데, 많이 길군요..
function showHint()
이미지와 글귀를 보여줄 모듈입니다.
잡다한 걸 너무 쑤셔넣어서(?), 복잡하네요.
imageInit = function()
이미지 초기화 함수입니다.
summery 부분 빼고는 순서대로 들어가있습니다.
waitHint = function(v)
waitZoom = function(v)
hash 값만 바꾸는 함수들입니다.
그 이후(?)는 onpropertyHash() 가 알아서 하는거죠.
function blankSelf()
새창이 아닌, 현재창에 적용시키기 위한 함수입니다.
hash 값을 받으면 새창을 띄워야할 때도 있긴 한데요,
그걸 방지하려고 만든 함수이기도 하구요,
hash 포함한 복사값을 이중새창 띄우지 않기 위해 만든 함수이기도 합니다.
참고로,
싱글상태에서는 새창에 주소값(hash 포함)을 전송시키지 않습니다.
기존에 가지고 있던 창 내의 함수를 최대한 활용하고 싶어서요.
function blankOpen()
새창을 띄우는 함수입니다.
뭐.. 여러가지 부분을 포함하고 있죠.
viewImageRecall = function()
새창이 띄워졌다고 알렸을 때
callBack 될 함수입니다.
사실, 이 함수가 적용되어야할 부분이 하나 더 있는데
OTL.. 적용 못 시킨 것 같네요.
function viewImage()
function viewImage2()
이미지를 새창에 띄우는 함수 두가지입니다.
하나는 일반 이미지를,
또 하나는 파노라마( 또는 동영상화 )된 이미지를 보여줍니다.
function showZoom()
부분줌업에 대한 함수입니다.
여기에 좀 정성(?)이 들어간게요,
파노라마의 방향에 따라, 그리고 갯수에 따라
어떻게 보여줘야할지 순서 잡기가 힘들더라구요..
뭐, 나름 해결했습니다.
...
5)
.. 기술적으로는
hash 값 받는 방법,
이미지 zoom 처리에 관련해 순서배열,
hash 처리를 최대한 간략화,
새창에 html 기록하기,
새창에 함수내 함수 전송하면서 함수내 변수 전달하기,
최적화를 통해 자주 쓰는 string, object 내 값 이름 최적화하기,
tag 를 앞부터 적어서 기차놀이(트레일링?) 시키기,
최대크기 이미지를 지정해, 이미지를 확대할 때 안보이지 않도록 처리,
(CSS 의 zoom 을 사용하지 않았습니다 = =;.. )
..등등의 기법(?)을
검색도 하고
만들기도 해서 적용했습니다.
...
6)
간신히 코멘트를 달은 셈 칠 수 있는거군요.
내용이 길고,
일반적으로 사용할 만한 부분이 없는 게
이 코멘트들의 허점입니다만..
.. 뭐, 일단 적어는 놨으니
나중에 조금 더 최적화할 날이 오겠죠..
easyBow killofki@.
오랫동안 kTours 쪽 기능을 조정해왔는데요..
완성본..이라고 하기엔 아직도 미숙하지만,
코멘트라도 붙여볼까 합니다.
* 참고 *
http://ktours.cyworld.com - 현재 해당 스크립트를 열심히 쓰고있는 클럽입니다.
http://club.cyworld.com/5083224319/186180312 - 해당 스크립트를 보관/보조하고 있는 게시물입니다.
* 도움(?) *
- Internet Explorer -
: javascript 초안을 잡는데 사용했습니다.
- 싸이월드 클럽서비스 -
: 사진을 보관하는 데 사용하고 있습니다.
- FireFox -
: IE와 가장 대립하는 브라우져로 선택했습니다.
- Chrome 브라우져 -
: 속도가 빨라서 자주 쓰고 있습니다.
크롬확장프로그램 - JSBeautify for Google Chrome™ -
: 아래 표시되는 스크립트 내용들 정렬에 사용됐습니다.
- Safari -
: IE와 대비되는 브라우져로 선택했습니다.
- Opera -
: 역시 IE와 대비되는 브라우져로 선택했습니다.
...
2) 최적화 전..
var
linkImages=[]
, imageInit, waitHint, waitZoom
, waitSummery
, showSummery, showSummery2
, resizing, imageSet
, innerHTML
, readyScroll, moveMouse, moveScroll, endScroll, pressScroll, sizingSecond
, summeryImageBottom
, aniNv, aniFloorv, aniWv, aniTypev
, aniNvS, aniFloorvS, aniWvS, aniTypevS
, viWb
, viewOrder, viewOrderSet
// , viewOrder=0, viewOrderSet={}
, viewImageRecall
, autoScroll, clearAutoScroll, sendObjAttribValue // for send to new window
, autoScrollS
, temp=''
;
// -- help for var receiver
function argumentReceiver() {
// var ar=argument, i;
// for (i=0; i<ar.length; i++) temp+=typeof(ar[i]);
}
function scriptInit() {
var
is_j=0
, HintWait, ZoomWait, ZoomOrder, lastZoom=-1, iiH
, zGab, zWidth, zHeight
, saveOwidth=1024, saveOheight=768
, imageMaximum=16383, scrollBarHeight=22
, screenAlphaElementStyle, backStyleElement, returnSpaceElement, zoomSpaceElement
, receivedSummeryWidth, receivedSummeryHeight, receivedSummeryImageSrc
, receivedScreenOpacity, receivedSummeryImageBottom, receivedSummeryPadding
, receivedLinkImages
, receivedHintOrder
, stringgi='gi'
, MathElement=Math, floor='floor'
, rPattern=new RegExp('', stringgi)
, INT=parseInt
, functionS='function'
, showSummery, showSummery2
, length='length'
, substring='substring', substr='substr', write='write', charAt='charAt'
, filter='filter', opacity='opacity', position='position'
, height='height'
, moveTo='moveTo'
, compile='compile', replace='replace'
, lightgreen='lightgreen'
// for hash value
, timeHash='', propertyHash=''
, onpropertychange='onpropertychange', attachEvent='attachEvent', onhashchange='onhashchange'
, selection='selection', empty='empty'
, getSelection='getSelection', removeAllRanges='removeAllRanges'
, srcElement='srcElement'
, dataTransfer='dataTransfer', dropEffect='dropEffect', effectAllowed='effectAllowed'
, openerviWbS='opener.viWb'
, screenAlpha='screenAlpha', backStyle='backStyle', returnSpace='returnSpace', ZoomSpace='ZoomSpace'
, Left='Left', Top='Top', Width='Width', Height='Height'
, Owidth='Owidth', Oheight='Oheight', Hint='Hint', ZImage='ZImage'
, stringS='S', stringW='W', stringV='V', stringI='I'
, anied='anied', aniN='aniN', aniType='aniType', aniFloor='aniFloor', aniW='aniW'
, Src='Src'
, stringHanguel={}
, HLeft='HLeft', HTop='HTop', HWidth='HWidth', HHeight='HHeight'
, retitleS='retitle'
, readyScrollS='readyScroll', moveMouseS='moveMouse'
, moveScrollS='moveScroll', endScrollS='endScroll', pressScrollS='pressScroll'
, clearAutoScrollS='clearAutoScroll'
, resizingNewWindow, retitle, reValue
, reValueS='reValue'
, processHash='', processHint=-1, processZoom=-1, processMain='', waitHash
, lastHash='', lastHint=-1, lastZoom=-1
, elementZone='{elementZone}'
, brs=['<br>', '<br/>', '<BR>', '<BR/>', '</p>', '</P>']
// -- for new window replaying zone
, scrollPressed, movedPress
, eventS
, argueventS
, documentS, body, locationS, focusS
, setTimeoutS, clearTimeoutS
, indexOf
, resizeTo
, resizeBy
, style
, zIndex
, target
, cursor, pointer
, hash
, clientX, clientY
, scrollLeft, scrollTop
, readyState
, windowElement, documentElement, documentBodyElement, locationElement
, timeOut, timeOutClear
, onloadFunctionS
, sizingSecondS
, title
, scrollWidth, scrollHeight, clientWidth, clientHeight
, showElement, scrollbarElement, showScroll
, startAnimation
, pressedX, pressedY, pressedLeft
, autoScrollEventer
, stringAS, stringWV, stringA, stringASWV
, resizingS
, aniNvS, aniFloorvS, aniWvS, aniTypevS
;
reValue=function () {
innerHTML='innerHTML';
eventS='event';
argueventS='('+eventS+')';
documentS='document'; body='body'; locationS='location', focusS='focus'
setTimeoutS='setTimeout'; clearTimeoutS='clearTimeout'
indexOf='indexOf';
resizeTo='resizeTo';
resizeBy='resizeBy';
style='style';
zIndex='zIndex';
target='target';
pointer='pointer'; cursor='cursor';
hash='hash';
clientX='clientX'; clientY='clientY';
scrollLeft='scrollLeft'; scrollTop='scrollTop';
readyState='readyState';
windowElement=window;
documentElement=windowElement[documentS];
documentBodyElement=documentElement[body];
locationElement=windowElement[locationS];
timeOut=windowElement[setTimeoutS];
timeOutClear=windowElement[clearTimeoutS];
onloadFunctionS='onloadFunction';
sizingSecondS='sizingSecond';
title='title';
scrollWidth='scrollWidth'; scrollHeight='scrollHeight';
clientWidth='clientWidth'; clientHeight='clientHeight';
showElement='showElement'; scrollbarElement='scrollbarElement'; showScroll='showScroll';
startAnimation='startAnimation';
stringAS='AS'; stringWV='WV'; stringA='A'; stringASWV=stringAS+stringWV;
resizingS='resizing';
viewOrder=0; viewOrderSet={};
aniNvS='aniNv'; aniFloorvS='aniFloorv'; aniWvS='aniWv'; aniTypevS='aniTypev';
autoScrollS='autoScroll';
};
reValue();
// -- end of new window replaying zone
function ontimeHash() {
if (timeHash!=locationElement[hash]) { timeHash=locationElement[hash]; onpropertyHash(); }
timeOut(ontimeHash, 200);
}
function onpropertyHash() {
if (propertyHash!=locationElement[hash]) {
// set propertyReceived
processHash=propertyHash=locationElement[hash];
// process of hash
readyHashing();
}
// timeOut(ontimeHash, 200);
}
function breakHashing() { if (waitHash) timeOutClear(waitHash); waitHash=0; }
function readyHashing() { breakHashing(); waitHash=timeOut(hashing, 100); }
function hashing() {
var receivedHashNo, sh;
breakHashing(); // start by only one processHash
// process of hash
processHint=-1; processZoom=-1;
while (processHash[charAt](0)) {
receivedHashNo=-1;
// if (processHash[charAt](0)=='#') processHash=processHash[substr](1, processHash[length]);
switch(processHash[charAt](0)) {
case '#' : break;
case 'H' :
receivedHashNo=INT(processHash[substring](1, processHash[length]));
// if ((receivedHashNo<0)||(receivedHashNo>receivedLinkImages[length])) return; // receive just avable hints
// if ((receivedHashNo<0)||(receivedHashNo>receivedLinkImages[length])) break; // receive just avable hints
if (receivedHashNo>=0)
processHint=receivedHashNo;
// showHint();
// processHash=processHash[substring](processHash[indexOf](receivedHashNo+'', 1)+(receivedHashNo+'').length, processHash[length]);
// breakHint(); if (processHash) HintWait=timeOut(hashing, 100);
break;
case 'Z' :
receivedHashNo=INT(processHash[substring](1, processHash[length]));
// if (!(sh=receivedLinkImages[receivedHintOrder][ZImage])) return;
// if ((receivedHashNo<0)||(receivedHashNo>sh[length])) return;
if (receivedHashNo>=0)
processZoom=receivedHashNo; // sh=sh[receivedHashNo];
// showZoom();
// processHash=processHash[substring](processHash[indexOf](receivedHashNo+'', 1)+(receivedHashNo+'').length, processHash[length]);
// breakZoom(); if (processHash) ZoomWait=timeOut(hashing, 100);
break;
case stringI: case stringS: case stringA: case stringW: case stringV:
processMain=processHash[charAt](0);
break;
default :
break;
} // end of select
if (receivedHashNo>=0) processHash=processHash[substring](processHash[indexOf](receivedHashNo+'', 1)+(receivedHashNo+'')[length], processHash[length]);
else processHash=processHash[substring](1, processHash[length]);
} // end of while
if (!(sh=receivedLinkImages[processHint])) return;
if ((processHint)&&(lastZoom<0)&&(processZoom<0)
&&(lastHint==processHint)&&(!processMain)) { locationElement[hash]='#H0'; onpropertyHash(); return; }
if (processMain) { locationElement[hash]='#H'+processHint;
if (processMain==stringI) showSummery(processHint);
// else if (processMain) showSummery2(processHint);
else showSummery2(processHint);
processMain='';
onpropertyHash(); return; }
if (processZoom<0) processZoom=0;
if (processHint!=lastHint) { receivedHintOrder=processHint; showHint(); ZoomOrder=processZoom; showZoom(); }
else if (processZoom!=lastZoom) { ZoomOrder=processZoom; showZoom(); }
else { processHash=locationElement[hash]='#H'+processHint;
onpropertyHash(); return; }
lastHint=processHint; lastZoom=processZoom;
}
sendObjAttribValue=function () { var ar=arguments, obj=ar[0], i;
for (i=1; i<ar.length; i+=2)
obj[ar[i]]=ar[i+1];
}
function sendObjStringValue() { var ar=arguments, str=ar[0], obj=ar[1], i, ov='', rv, rc;
for (i=2; i<ar.length; i++) {
rv=obj[ar[i]]; rc=isNaN(rv)?'\'':'';
ov+=str+'[\''+ar[i]+'\']='+rc+rv+rc+';';
}
return ov;
}
sendObjAttribValue(stringHanguel, stringA, '영상', stringS, '페이지영상', stringW, '가로나열', stringV, '세로나열');
function replaceAppendAll() {
var ar=arguments, i, outv=ar[0];
for (i=1; (i+1)<ar[length]; i+=2) { rPattern[compile](ar[i], stringgi); outv=outv[replace](rPattern, ar[i+1]); }
return outv;
}
function setTagString(tagNameZone, tagStringZoneName) {
return '<'+tagNameZone+' '+tagStringZoneName+' >'
+elementZone+'</'+tagNameZone+'>'; }
function setTagCloseString(tagNameZone, tagStringZoneName) {
return '<'+tagNameZone+' '+tagStringZoneName+' />'; }
var
mapOriginalStringZone='{mapOriginalStringZone}'
, mapOriginalString=setTagString('map', mapOriginalStringZone)
, areaOriginalStringZone='{areaOriginalStringZone}'
, areaOriginalString=setTagCloseString('area', areaOriginalStringZone)
, aOriginalStringZone='{aOriginalStringZone}'
, aOriginalString=setTagString('a', aOriginalStringZone)
, imgOriginalStringZone='{imgOriginalStringZone}'
, imgOriginalString=setTagCloseString('img', imgOriginalStringZone)
, divOriginalStringZone='{divOriginalStringZone}'
, divOriginalString=setTagString('div', divOriginalStringZone)
, scriptString=setTagString('script', '')
, viewImageRecallSet='{viewImageRecallSet}'
, htmlString=setTagString('html', '')
, headString=setTagString('head', '')
, titleString=setTagString('title', '')
, bString=setTagString('b', '')
, marqueeOriginalStringZone='{marqueeOriginalStringZone}'
, marqueeOriginalString=setTagString('marquee', marqueeOriginalStringZone)
, bodyOriginalStringZone='{bodyOriginalStringZone}'
, bodyOriginalString=setTagString(body, bodyOriginalStringZone)
, tableOriginalStringZone='{tableOriginalStringZone}'
, tableOriginalString=setTagString('table', tableOriginalStringZone)
, trOriginalStringZone='{trOriginalStringZone}'
, trOriginalString=setTagString('tr', trOriginalStringZone)
, tdOriginalStringZone='{tdOriginalStringZone}'
, tdOriginalString=setTagString('td', tdOriginalStringZone)
, colspanStringZone='{colspanStringZone}'
, colspanString='colspan='+colspanStringZone+' '
, nameStringZone='{nameStringZone}'
, nameString='name="'+nameStringZone+'" '
, idStringZone='{idStringZone}'
, idString='id="'+idStringZone+'" '
, widthStringZone='{widthStringZone}'
, widthString='width='+widthStringZone+' '
, heightStringZone='{heightStringZone}'
, heightString=height+'='+heightStringZone+' '
, sizeString=widthString+heightString
, bgcolorStringZone='{bgcolorStringZone}'
, bgcolorString='bgcolor="'+bgcolorStringZone+'" '
, styleStringZone='{styleStringZone}'
, styleString=style+'="'+styleStringZone+'" '
, border0String='border=0 '
, srcStringZone='{srcStringZone}'
, srcString='src="'+srcStringZone+'" '
, imageWidth='{imageWidth}', imageHeight='{imageHeight}'
, imageSizeString=replaceAppendAll(sizeString
, widthStringZone, imageWidth, heightStringZone, imageHeight)
, imgDefaultStringZone='{imgDefaultStringZone}'
, imgDefaultString=replaceAppendAll(imgOriginalString
, imgOriginalStringZone, border0String+srcString+imageSizeString+imgDefaultStringZone)
, divStyleString=replaceAppendAll(divOriginalString
, divOriginalStringZone, styleString)
, divIdStyleString=replaceAppendAll(divOriginalString
, divOriginalStringZone, idString+styleString)
, trString=replaceAppendAll(trOriginalString, trOriginalStringZone, '')
, trHeightString=replaceAppendAll(trOriginalString, trOriginalStringZone, heightString)
, tdString=replaceAppendAll(tdOriginalString, tdOriginalStringZone, '')
, tdWidthStyleString=replaceAppendAll(tdOriginalString
, tdOriginalStringZone, widthString+styleString)
, tdWidthString=replaceAppendAll(tdOriginalString
, tdOriginalStringZone, widthString)
, cursorpointerStyle=cursor+':'+pointer+'; '
, widthStyleStringZone='{widthStyleStringZone}'
, widthStyleString='width:'+widthStyleStringZone+'px; '
, heightStyleStringZone='{heightStyleStringZone}'
, heightStyleString=height+':'+heightStyleStringZone+'px; '
, overflowStyleStringZone='{overflowStyleStringZone}'
, overflowStyleString='overflow:'+overflowStyleStringZone+'; '
, overflowHiddenStyleString=replaceAppendAll(
overflowStyleString+widthStyleString+heightStyleString
, overflowStyleStringZone, 'hidden')
, overflowAutoStyleString=replaceAppendAll(
overflowStyleString+widthStyleString+heightStyleString
, overflowStyleStringZone, 'auto')
, leftStyleStringZone='{leftStyleStringZone}'
, leftStyleString='left:'+leftStyleStringZone+'px; '
, topStyleStringZone='{topStyleStringZone}'
, topStyleString='top:'+topStyleStringZone+'px; '
, positionStyle=leftStyleString+topStyleString
, absoluteStyleString=position+':absolute; '+positionStyle
, absoluteLeftTopCornerStyleString=replaceAppendAll(
absoluteStyleString
, leftStyleStringZone, 0, topStyleStringZone, 0)
, relativeStyle=position+':relative; '
, relativeStyleString=relativeStyle+positionStyle
, zindexStyleZone='{zindexStyleZone}'
, zindexStyle='z-index:'+zindexStyleZone+'; '
, topClip='{topClip}', rightClip='{rightClip}', bottomClip='{bottommClip}', leftClip='{leftClip}', leftClipPoint='{leftClipPoint}', topClipPoint='{topClipPoint}'
, clipStyleString='clip:rect('+topClip+'px, '+rightClip+'px, '+bottomClip+'px, '+leftClip+'px); '+replaceAppendAll(absoluteStyleString, leftStyleStringZone, leftClipPoint, topStyleStringZone, topClipPoint)
, backgroundColorZone='{backgroundColorZone}'
, backgroundColor='background-color:'+backgroundColorZone+'; '
, colorStyleZone='{colorZone}'
, colorStyle='color:'+colorStyleZone+'; '
, font9pt='font-size:9pt; '
, fontDotum='font-family:돋움; '
, textUnderNone='text-underline:none; '
, onclickStringZone='{onclickStringZone}'
, onclickString='onclick="'+onclickStringZone+'" '
, onmousedownStringZone='{onmousedownStringZone}'
, onmousedownString='onmousedown="'+onmousedownStringZone+'" '
, ondragStringZone='{ondragStringZone}'
, ondragString='ondrag="'+ondragStringZone+'" '
+(documentElement.all?'':'ondragstart="return false;" ') // for firefox's drag clientX bug & IE's drag starting bug..
, ondragendStringZone='{ondragendStringZone}'
, ondragendString='ondragend="'+ondragendStringZone+'" '
, onmousemoveStringZone='{onmousemoveStringZone}'
, onmousemoveString='onmousemove="'+onmousemoveStringZone+'" '
, onmouseupStringZone='{onmouseupStringZone}'
, onmouseupString='onmouseup="'+onmouseupStringZone+'" '
, onscrollStringZone='{onscrollStringZone}'
, onscrollString='onscroll="'+onscrollStringZone+'"'
, hrefStringZone='{hrefStringZone}'
, hrefString='href="'+hrefStringZone+'" '
, areaLeft='{areaLeft}', areaRight='{areaRight}'
, areaTop='{areaTop}', areaBottom='{areaBottom}'
, coordsString='coords="'+areaLeft+','+areaTop+','+areaRight+','+areaBottom+'" '
, waitHintNo='{waitHintNo}'
, waitHintFunctionString='waitHint('+waitHintNo+');'
, waitZoomNo='{waitZoomNo}'
, waitZoomFunctionString='waitZoom('+waitZoomNo+');'
, showString='{showString}'
, shapeStringZone='{shapeStringZone}'
, shapeString='shape="'+shapeStringZone+'" '
, areaRect=replaceAppendAll(areaOriginalString,
areaOriginalStringZone, shapeString+coordsString+hrefString+onmouseupString
, shapeStringZone, 'rect'
, hrefStringZone, '#H'+waitHintNo
, onmouseupStringZone, waitHintFunctionString)
, imageURL='{imageURL}'
, imageString=
replaceAppendAll(imgDefaultString
, imgDefaultStringZone, ''
, srcStringZone, imageURL)
, imageClipTail=
replaceAppendAll(imgDefaultString
, imgDefaultStringZone, styleString
, styleStringZone, clipStyleString, srcStringZone, imageURL)
, aShapWaitHint=replaceAppendAll(aOriginalString
, aOriginalStringZone, hrefString+onclickString
, hrefStringZone, '#H'+waitHintNo
, onclickStringZone, waitHintFunctionString)
, aShapWaitZoom=replaceAppendAll(aOriginalString
, aOriginalStringZone, hrefString+onclickString
, hrefStringZone, '#H'+waitHintNo+'Z'+waitZoomNo
, onclickStringZone, waitZoomFunctionString)
, imageHintClickTail=
// replaceAppendAll(aShapWaitHint
// , waitHintNo, 0
// , elementZone, imgDefaultString
replaceAppendAll(imgDefaultString
, imgDefaultStringZone, styleString
, styleStringZone, clipStyleString, srcStringZone, imageURL)
, imageZoomClickTail=
replaceAppendAll(aShapWaitZoom
, waitZoomNo, 0
, elementZone, imgDefaultString
, imgDefaultStringZone, styleString
, styleStringZone, clipStyleString, srcStringZone, imageURL)
, overOpacity100='{overOpacity100}', overOpacity='{overOpacity}'
, alphaStyle=filter+':Alpha('+opacity+'='+overOpacity100+'); '+opacity+':'+overOpacity+'; '
// , imageZoomClickTail2=
// replaceAppendAll(aShapWaitZoom
// , waitZoomNo, 0
// , elementZone, imgDefaultString
// , imgDefaultStringZone, styleString
// , styleStringZone, clipStyleString+alphaStyle, srcStringZone, imageURL)
, usemapStringZone='{usemapStringZone}'
, usemapString='usemap="#'+usemapStringZone+'" '
, backTop='{backTop}', backSize='{backSize}'
, alphaStyleZone='{alphaStyleZone}'
, screenString=replaceAppendAll(divIdStyleString
, idStringZone, backStyle
, styleStringZone, backTop+backSize+backgroundColor
, backgroundColorZone, '#222222'
, elementZone
, replaceAppendAll(imgDefaultString
, imgDefaultStringZone, usemapString
, srcStringZone, imageURL
, usemapStringZone, 'summeryMap_1')
+ replaceAppendAll(divStyleString
, styleStringZone, backTop
, elementZone, divIdStyleString
, idStringZone, screenAlpha
, styleStringZone, overflowHiddenStyleString+alphaStyle+backgroundColor
, widthStyleStringZone, 1, heightStyleStringZone, 1, backgroundColorZone, 'black'
, elementZone, ''
)
+ replaceAppendAll(divIdStyleString
, idStringZone, returnSpace
, styleStringZone, backTop
, elementZone, '')
+ replaceAppendAll(divIdStyleString
, idStringZone, ZoomSpace
, styleStringZone, backTop+zindexStyle
, zindexStyleZone, 6
, elementZone, '')
)
, aStyleShapTag=replaceAppendAll(aOriginalString
, aOriginalStringZone, styleString+hrefString +onclickString
, hrefStringZone, '#'
)
// , aLightgreenTag=replaceAppendAll(aStyleShapTag
// , styleStringZone, colorStyle
// , colorStyleZone, lightgreen)
, aLightgreenShow=replaceAppendAll(aOriginalString
, aOriginalStringZone, hrefString+onclickString+styleString
, styleStringZone, colorStyle
, colorStyleZone, lightgreen
, hrefStringZone, '#H'+waitHintNo+showString)
, zoomtagOpen=replaceAppendAll(aOriginalString
, aOriginalStringZone, styleString+hrefString+onclickString
, hrefStringZone, '#H'+waitHintNo+'Z'+waitZoomNo
, styleStringZone, colorStyle
, colorStyleZone, lightgreen
, onclickStringZone, waitZoomFunctionString)
, numClickString=replaceAppendAll(aOriginalString
, aOriginalStringZone, hrefString+onclickString
, hrefStringZone, '#H'+waitHintNo+'Z'+waitZoomNo
, onclickStringZone, waitZoomFunctionString
, elementZone, waitZoomNo+')')
+' '
, aboutBlank='about:blank'
, openWindowName='_blank'
, openWindowWidth='{openWindowWidth}', openWindowHeight='{openWindowHeight}'
, openWindowOption=replaceAppendAll('directories,location,menubar,resizable/scrollbars/status,titlebar,toolbar,width=', ',', '=no,', '/', '=yes,')+openWindowWidth+','+height+'='+openWindowHeight
, imageName='{imageName}'
, defaultImageURLForm='http://club.cyworld.nate.com/club/board/image/imgbrd_viewurl.asp?image_url=' + imageName
, onloadStringZone='{onloadStringZone}'
, onloadString='onload="'+onloadStringZone+'" '
, onunloadStringZone='{onunloadStringZone}'
, onunloadString='onunload="'+onunloadStringZone+'" '
, cellpaddingStringZone='{cellpaddingStringZone}'
, cellpaddingString='cellpadding='+cellpaddingStringZone+' '
, cellspacingStringZone='{cellspacingStringZone}'
, cellspacingString='cellspacing='+cellspacingStringZone+' '
, tableDefaultStringZone='{tableDefaultStringZone}'
, tableDefaultString=replaceAppendAll(tableOriginalString
, tableOriginalStringZone, border0String+cellpaddingString+cellspacingString+tableDefaultStringZone)
, behaviorStringZone='{behaviorStringZone}'
, behaviorString='behavior="'+behaviorStringZone+'" '
, scrollamountStringZone='{scrollamountStringZone}'
, scrollamountString='scrollamount='+scrollamountStringZone+' '
, scrolldelayStringZone='{scrolldelayStringZone}'
, scrolldelayString='scrolldelay='+scrolldelayStringZone+' '
, directionStringZone='{directionStringZone}'
, directionString='direction="'+directionStringZone+'" '
, loopStringZone='{loopStringZone}'
, loopString='loop='+loopStringZone+' '
, animationOptions=behaviorString+scrollamountString+scrolldelayString+directionString+loopString
, animationScripts='{animationScripts}'
, titleStringZone='{titleStringZone}', imageZone='{imageZone}'
, htmlBODY
, imageElement='{imageElement}'
, imagePadding
=replaceAppendAll(tableDefaultString
, tableDefaultStringZone, styleString
, styleStringZone, absoluteLeftTopCornerStyleString
, cellpaddingStringZone, 5, cellspacingStringZone, 0
, elementZone, trString
, elementZone, tdOriginalString
, tdOriginalStringZone, idString
, idStringZone, 'woutput'
, elementZone, imageElement)
+replaceAppendAll(tableOriginalString
, tableOriginalStringZone, styleString+bgcolorString
, styleStringZone, absoluteStyleString+zindexStyle
, leftStyleStringZone, 5, topStyleStringZone, 5, zindexStyleZone, 5
, bgcolorStringZone, '#550000'
, elementZone, trHeightString
, heightStringZone, 20
, elementZone, tdWidthStyleString
, widthStringZone, 40
, styleStringZone, font9pt+fontDotum
, elementZone, bString
, elementZone, aStyleShapTag
, styleStringZone, colorStyle+textUnderNone
, colorStyleZone, '#ffffff'
// , hrefStringZone, 'javascript:setTimeout(function(){window.close();},100)'
, onclickStringZone, 'setTimeout(function(){window.close();},100)'
// , onclickStringZone, 'window.close();'
, elementZone, '[닫기]')
, animationWidth='{animationWidth}', animationHeight='{animationHeight}'
, animationAmount='{animationAmount}'
, animationZoneWidth='{animationZoneWidth}', animationZoneHeight='{animationZoneHeight}'
, animationTails='{animationTails}'
, tailDivString
=replaceAppendAll(divStyleString
, styleStringZone, overflowHiddenStyleString+relativeStyle)
, animationString
=replaceAppendAll(marqueeOriginalString
, marqueeOriginalStringZone, sizeString+animationOptions
, widthStringZone, animationWidth, heightStringZone, animationHeight
, behaviorStringZone, 'alternate', scrolldelayStringZone, 1000, scrollamountStringZone, animationAmount, directionStringZone, 'left', loopStringZone, -1
, elementZone, tailDivString
// , elementZone, divStyleString
// , styleStringZone, overflowHiddenStyleString+relativeStyle
, widthStyleStringZone, animationZoneWidth, heightStyleStringZone, animationZoneHeight
, elementZone, animationTails)
, imageClickString
=replaceAppendAll(aShapWaitHint, waitHintNo, 0, elementZone, imageElement)
;
imageSet=function () { var is_i, is_tt, is_zz, ar=arguments, arv, arv2, is_H, is_Hp, is_Hp1, is_Hp2, is_Hpi, is_Hc, is_Div, divP, divP2
;
receivedSummeryWidth=summeryWidth; receivedSummeryHeight=summeryHeight; receivedSummeryImageSrc=summeryImageSrc;
receivedScreenOpacity=screenOpacity; receivedSummeryImageBottom=summeryImageBottom; receivedSummeryPadding=summeryPadding;
receivedLinkImages=linkImages;
is_tt=receivedLinkImages[0]={};
is_tt[Left]=0; is_tt[Top]=0; is_tt[Width]=receivedSummeryWidth; is_tt[Height]=receivedSummeryHeight; is_tt[Hint]='';
is_tt[Owidth]=receivedSummeryWidth; is_tt[Oheight]=receivedSummeryHeight; is_tt[Hint]='';
is_tt[ZImage]=0;
if (receivedSummeryWidth<receivedSummeryHeight) zGab=INT(receivedSummeryWidth/40); else zGab=INT(receivedSummeryHeight/40);
zWidth=receivedSummeryWidth-zGab-zGab; zHeight=receivedSummeryHeight-zGab-zGab;
is_i=0; while (is_i<ar[length]) { is_j++;
is_tt=receivedLinkImages[is_j]={};
if (is_tt[anied]=(divP=ar[is_i][indexOf]('*'))>=0) {
arv=ar[is_i];
is_tt[aniN]=arv[substring](0, divP);
is_tt[Src]=arv[substring](divP+1, arv[length]);
arv=is_tt[aniN];
is_tt[aniFloor]=((divP2=arv[indexOf]('/'))>=0)?INT(arv[substring](divP2+1, divP)):1; // get floor count
divP2=divP2>0?divP2:arv[length];
arv=arv[substring](0, divP2);
if (stringASWV[indexOf](arv2=arv[substring](0,1))>=0) { // get etc parameter A(anim), S(slide), H(horizon scroll), V(vertical scroll)
is_tt[aniType]=arv[charAt](0); arv=arv[substring](1, arv.length);
} else is_tt[aniType]=stringA;
arv=is_tt[aniN]=INT(arv[substring](0, divP2)); // finishing from arv by get divided image count
is_tt[aniW]=INT(arv/is_tt[aniFloor]);
if (is_tt[aniW]*is_tt[aniFloor]<arv) is_tt[aniW]++;
}
else {
is_tt[aniN]=0;
is_tt[Src]=ar[is_i];
}
is_H=ar[is_i+1];
for (is_Hp=is_H[indexOf]('//'); is_Hp>0; is_Hp=is_H[indexOf]('//', is_Hp+2)) {
if (is_Hp>0)
if (is_H[substr](is_Hp-1, 1)!='>') continue;
is_Hp1=is_H[length];
for (is_Hpi=0; is_Hpi<brs[length]; is_Hpi++)
if ((is_Hp2=is_H[indexOf](brs[is_Hpi], is_Hp))>=0)
if (is_Hp2<is_Hp1) is_Hp1=is_Hp2;
// receiver of text's "//)"
is_Hp2=is_H[indexOf](')', is_Hp);
is_Hc=is_H[length]-is_Hp1;
is_H=is_H[substring](0, is_Hp)+replaceAppendAll(zoomtagOpen
, waitHintNo, is_j
, waitZoomNo, INT(is_H[substring](is_Hp+2, is_Hp2))
, elementZone, is_H[substring](is_Hp+2, is_Hp1))+is_H[substring](is_Hp1, is_H[length]);
is_Hp=is_H[length]-is_Hc;
}
is_tt[Hint]=is_H;
is_tt[Left]=ar[is_i+2]; is_tt[Top]=ar[is_i+3]; is_tt[Width]=ar[is_i+4]; is_tt[Height]=ar[is_i+5];
is_tt[Owidth]=saveOwidth; is_tt[Oheight]=saveOheight;
is_i+=6;
if (is_i<ar[length]) if (!isNaN(ar[is_i])) {
saveOwidth=is_tt[Owidth]=ar[is_i];
saveOheight=is_tt[Oheight]=ar[is_i+1];
is_i+=2;
}
is_tt[ZImage]=0;
while (!isNaN(ar[is_i])) { if (ar[is_i][length]>=0) break;
if (!(arv=is_tt[ZImage])) arv=is_tt[ZImage]=[]; is_zz=arv[arv[length]]={};
is_zz[HLeft]=ar[is_i]; is_zz[HTop]=ar[is_i+1]; is_zz[HWidth]=ar[is_i+2]; is_zz[HHeight]=ar[is_i+3];
is_i+=4;
}
}
};
function w() { var w_i; for (w_i=0; w_i<arguments[length]; w_i++) documentElement[write](arguments[w_i]); }
clearAutoScroll=function () {
if (autoScrollEventer) {
timeOutClear(autoScrollEventer);
autoScrollEventer=0;
}
};
function noneSelection() {
var e=documentElement[selection];
if (e) e[empty](); else windowElement[getSelection][removeAllRanges]();
}
pressScroll=function (evt) { var ev, jv, kv; // 스크롤바 눌렀을 때
clearAutoScroll();
scrollPressed=1; movedPress=0;
// if (!(ev=windowElement[eventS]))
ev=evt;
jv=documentElement.all[showElement];
kv=documentElement.all[scrollbarElement];
jv[style][zIndex]=1;
pressedX=ev[clientX]; pressedY=ev[clientY]; pressedLeft=kv[scrollLeft];
};
readyScroll=function (evt) { var ev, jv, kv; // 스크롤하려고 맘먹었을 때
clearAutoScroll();
scrollPressed=2; movedPress=0;
// if (!(ev=windowElement[eventS]))
ev=evt;
jv=documentElement.all[showElement];
kv=documentElement.all[scrollbarElement];
jv[style][zIndex]=1;
pressedX=ev[clientX]; pressedY=ev[clientY]; pressedLeft=kv[scrollLeft];
};
moveMouse=function (evt) {
// var ev, jv, sh, xv, medx, mousep; // 마우스 움직일 때
var ev, jv, xv, medx, mousep; // 마우스 움직일 때
if (!scrollPressed) return;
// if (!(ev=windowElement[eventS]))
ev=evt;
if (ev[target])
ev[target][style][cursor]=pointer;
// else {
// mousep=ev[dataTransfer];
// mousep[effectAllowed]='linkMove';
// mousep[dropEffect]='move';
// }
movedPress|=(pressedX!=(xv=ev[clientX]))||(pressedY!=ev[clientY]);
if (scrollPressed==1) { endScroll(evt); return; } // scrollbar Pressed
jv=documentElement.all[scrollbarElement];
// sh=receivedLinkImages[receivedHintOrder];
// if (stringAS[indexOf](sh[aniType])>=0)
if (stringAS[indexOf](aniTypev)>=0)
medx=pressedLeft+(pressedX-xv)/40*jv[clientWidth];
else
medx=pressedLeft+pressedX-xv;
if (medx<0) medx=0;
if (medx>(jv[scrollWidth]-jv[clientWidth])) medx=jv[scrollWidth]-jv[clientWidth];
jv[scrollLeft]=medx;
};
moveScroll=function (evt) {
//var ev, jv, kv, sh, shp; // 스크롤 됐을 때
var ev, jv, kv, shp; // 스크롤 됐을 때
movedPress=1;
if (!(ev=windowElement[eventS])) ev=evt;
jv=documentElement.all[showScroll];
kv=documentElement.all[scrollbarElement];
// sh=receivedLinkImages[receivedHintOrder];
// if (stringAS[indexOf](sh[aniType])>=0) {
if (stringAS[indexOf](aniTypev)>=0) {
// shp=INT(kv[scrollLeft]/kv[scrollWidth]*(sh[aniN]+1));
shp=INT(kv[scrollLeft]/kv[scrollWidth]*(aniNv+1));
// if (shp>=sh[aniN]) shp=sh[aniN]-1;
if (shp>=aniNv) shp=aniNv-1;
// jv[scrollLeft]=(shp%sh[aniW])*jv[scrollWidth]/sh[aniW];
jv[scrollLeft]=(shp%aniWv)*jv[scrollWidth]/aniWv;
// jv[scrollTop]=INT(shp/sh[aniW])*jv[scrollHeight]/sh[aniFloor];
jv[scrollTop]=INT(shp/aniWv)*jv[scrollHeight]/aniFloorv;
}
else
jv[scrollLeft]=kv[scrollLeft];
};
endScroll=function (evt) { var ev, jv;
// if (!(ev=windowElement[eventS]))
ev=evt;
jv=documentElement.all[showElement];
jv[style][zIndex]=3;
if ((!movedPress)&&(scrollPressed==2)) {
// waitHint(0); // escape to summery
// processHash=
locationElement[hash]='#H0';
// readyHashing();
}
autoScroll(startAnimation);
scrollPressed=0;
};
autoScroll=function (entvalue) {
//var jv, kv, sh;
var jv, kv, shp;
clearAutoScroll();
// if (entvalue==startAnimation)
if (entvalue!=startAnimation)
// else
{ // when not start message
// sh=receivedLinkImages[receivedHintOrder];
// if (sh[aniType]!=stringA) return;
if (aniTypev!=stringA) return;
if (!(kv=documentElement.all[scrollbarElement])) return;// for null control
// shp=INT(kv[scrollLeft]/kv[scrollWidth]*(sh[aniN]+1));
shp=INT(kv[scrollLeft]/kv[scrollWidth]*(aniNv+1));
// if (shp>=sh[aniN]) shp=sh[aniN]-1;
if (shp>=aniNv) shp=aniNv-1;
// shp++; if (shp==sh[aniN]) shp=0;
shp++; if (shp==aniNv) shp=0;
// kv[scrollLeft]=INT(shp*kv[scrollWidth]/(sh[aniN]+1))+1;
kv[scrollLeft]=INT(shp*kv[scrollWidth]/(aniNv+1))+1;
}
autoScrollEventer=timeOut(autoScroll, 1000);
};
// -- functions for send to new Window
// -- var receiver function
function animationVarReceiver() {
argumentReceiver(
scrollPressed, movedPress
, innerHTML
, sendObjAttribValue
, eventS
, argueventS
, documentS, body, locationS, focusS
, setTimeoutS, clearTimeoutS
, indexOf
, resizeTo
, resizeBy
, style
, zIndex
, target
, pointer, cursor
, hash
, clientX, clientY
, scrollLeft, scrollTop
, readyState
, windowElement, documentElement, documentBodyElement, locationElement
, timeOut, timeOutClear
, onloadFunctionS
, sizingSecondS
, title
, scrollWidth, scrollHeight, clientWidth, clientHeight
, showElement, scrollbarElement, showScroll
, startAnimation
, stringAS, stringWV, stringA, stringASWV
, resizingS
, pressedX, pressedY, pressedLeft
, clearAutoScroll, autoScrollEventer
, autoScrollS
, viewImageRecall
, viewOrder, viewOrderSet
);
}
// -- var receiver function to string, for set var
function animationVarString() {
var ov=animationVarReceiver+'', p1, p2;
p1=ov[indexOf]('{'); p1=ov[indexOf]('(', p1); p2=ov[indexOf](')', p1);
return (
// ','+
ov.substring(p1+1, p2)
);
}
sizingSecond=function () {
if(documentBodyElement[clientHeight])if(documentBodyElement[clientHeight]<documentBodyElement[scrollHeight])
windowElement[resizeBy](
documentBodyElement[scrollWidth]-documentBodyElement[clientWidth]
, documentBodyElement[scrollHeight]-documentBodyElement[clientHeight] );
};
resizingNewWindow=function(ww,hh) {
if ('interactiveloading'[indexOf](documentElement[readyState])>=0) {
timeOut(resizingS+'('+ww+','+hh+');', 200); return; } // for document's resizing timing
windowElement[resizeTo](ww,hh);
if (onloadFunction)
timeOut(onloadFunctionS+'();'+sizingSecondS+'();', 100);
else
timeOut(sizingSecond, 100);
};
retitle=function(v) { documentElement[title]=v; };
// -- end of functions for send to new Window
// -- set of htmlBODY
htmlBODY
=replaceAppendAll(htmlString
, elementZone,
replaceAppendAll(headString
, elementZone, titleString
, elementZone, titleStringZone)
+ replaceAppendAll(bodyOriginalString
, bodyOriginalStringZone, onunloadString +onloadString
, onunloadStringZone, 'try{if('+openerviWbS+')'+openerviWbS+'=null;}catch(err){}'
, onloadStringZone, 'if(!'+onloadFunctionS+')'+onloadFunctionS+'='+functionS+'(){};'
// , onloadStringZone, resizingS+'('+widthStringZone+','+heightStringZone+');'
, elementZone, imageZone+scriptString
, elementZone,
' var '+onloadFunctionS+'=0'
+','+ sizingSecondS+','+resizingS
+', '+readyScrollS+','+moveMouseS+','+moveScrollS+','+endScrollS+','+pressScrollS+','+autoScrollS
// +' , '+aniNvS+', '+aniFloorvS+', '+aniWvS+', '+aniTypevS
+' , waitHint=function(){} '
+';'
+'function initScript(){'
+'var '+ animationVarString()+';'
+'sendObjAttribValue='+sendObjAttribValue+';'
+reValueS+'='+reValue+';'
+reValueS+'();'
+readyScrollS+'='+readyScroll+';'
+moveMouseS+'='+moveMouse+';'
+moveScrollS+'='+moveScroll+';'
+endScrollS+'='+endScroll+';'
+pressScrollS+'='+pressScroll+';'
+clearAutoScrollS+'='+clearAutoScroll+';'
+autoScrollS+'='+autoScroll+';'
// for viewImageRecall
+ viewImageRecallSet
// need document.readyState ..?
+sizingSecondS+'='+sizingSecond+';'
+resizingS+'='+resizingNewWindow+';'
+retitleS+'='+retitle+';'
+'try{ if (!viewImageRecall) opener.viewImageRecall(window); else viewImageRecall(window); } catch(err) {alert(\'죄송합니다. 에러에요.\');}'
// +'try{if(!'+openerviWbS+')'+openerviWbS+'=window;}catch(err){}'
+'} initScript(); '
)
)
;
// -- end of set htmlBODY
function showHint() {
var
sh, ix, iy, iw, ih, iwI, ihI, lltd, rrtd, tttr, shopa, shopb, zi, zcount, I, ssim, ssim2, arv
, recomputedSummeryHeight
;
breakHint(); breakZoom();
// ZoomOrder=0;
lastZoom=0;
zoomSpaceElement[innerHTML]='';
sh=receivedLinkImages[receivedHintOrder];
recomputedSummeryHeight=receivedSummeryHeight
// -(sh[anied]?scrollBarHeight:0)
;
iw=receivedSummeryWidth; ih= sh[Oheight]/
(sh[Owidth]/(sh[anied]?sh[aniW]/sh[aniFloor]:1))
*receivedSummeryWidth ;
if (ih>recomputedSummeryHeight) { ih=recomputedSummeryHeight; iw=
(sh[Owidth]/(sh[anied]?sh[aniW]/sh[aniFloor]:1))
/sh[Oheight]*recomputedSummeryHeight ;
ix=(receivedSummeryWidth-iw)*sh[Left]/(receivedSummeryWidth-
(sh[Width]/(sh[anied]?sh[aniW]:1))
); iy=0; }
else { if (recomputedSummeryHeight==ih) iy=0; else iy=(recomputedSummeryHeight-ih)*sh[Top]/(recomputedSummeryHeight-sh[Height]); ix=0; }
shopa=iw/sh[Owidth]; shopb=iw/sh[Width];
if (shopa>1) shopa=1/shopa; if (shopb>1) shopb=1/shopb;
shopa=1-shopa; shopb=1-shopb;
if (sh[Width]>sh[Owidth]) { shopb*=shopb; shopb*=shopb; } else { shopa*=shopa; shopa*=shopa; }
if (shopb) {
shopb=INT(shopb/(shopa+shopb)*100);
} else shopb=0;
iwI=INT(iw); ihI=INT(ih);
lltd=ix?
replaceAppendAll(tdString
, elementZone, divStyleString
, styleStringZone, overflowHiddenStyleString
, widthStyleStringZone, ix, heightStyleStringZone, 0
, elementZone, ''
):'';
rrtd=ix?
replaceAppendAll(tdString
, elementZone, divStyleString
, styleStringZone, overflowHiddenStyleString
, widthStyleStringZone, receivedSummeryWidth-ix-iwI, heightStyleStringZone, 0
, elementZone, ''
):'';
tttr=iy?
replaceAppendAll(trHeightString
, heightStringZone, iy
, elementZone, tdOriginalString
, tdOriginalStringZone, colspanString
, colspanStringZone, 3
, elementZone, ''):'';
if (receivedHintOrder) {
if (sh[anied]) {
ssim2='';
if (stringWV[indexOf](sh[aniType])>=0)
for (i=0; i<sh[aniFloor]; i++) // for 'HV'
ssim2+=replaceAppendAll(imageHintClickTail
, topClip, INT(ih*i)
, rightClip, iw*((i+1)*sh[aniW]>sh[aniN]?(sh[aniN]-i*sh[aniW]):sh[aniW])
, bottomClip, ih*(i+1)
, leftClip, 0
, leftClipPoint, iw*i*sh[aniW]
, topClipPoint, -ih*i
);
else // for 'AS'
ssim2+=replaceAppendAll(imageHintClickTail
, topClip, 0
, rightClip, iw*sh[aniW]
, bottomClip, ih*sh[aniFloor]
, leftClip, 0
, leftClipPoint, 0
, topClipPoint, 0
);
}
ssim=tttr+
replaceAppendAll(trHeightString
, heightStringZone, ihI
, elementZone, lltd+tdWidthString+rrtd
, widthStringZone, iwI
, elementZone, tailDivString
// , elementZone, divStyleString
// , styleStringZone, overflowHiddenStyleString+relativeStyle
, widthStyleStringZone, iwI, heightStyleStringZone, ihI+(sh[anied]?scrollBarHeight:0) // outer Image Receiving Zone
, elementZone, replaceAppendAll(imageHintClickTail
, topClip, ih/sh[Height]*sh[Top]*(sh[anied]?sh[aniFloor]:1)
, rightClip, iw/(sh[Width]/(sh[anied]?sh[aniW]:1))*sh[Left] + iwI
, bottomClip, ih/sh[Height]*sh[Top]*(sh[anied]?sh[aniFloor]:1) + ihI
, leftClip, iw/(sh[Width]/(sh[anied]?sh[aniW]:1))*sh[Left]
, leftClipPoint, -iw/(sh[Width]/(sh[anied]?sh[aniW]:1))*sh[Left]
, topClipPoint, -ih/sh[Height]*sh[Top]*(sh[anied]?sh[aniFloor]:1)
, imageURL, receivedSummeryImageSrc
, imageWidth, INT(iw/(sh[Width]/(sh[anied]?sh[aniW]:1))*receivedSummeryWidth)
, imageHeight, INT(ih/sh[Height]*receivedSummeryHeight*(sh[anied]?sh[aniFloor]:1))
)
+ (sh[anied]?replaceAppendAll(
// divStyleString
divOriginalString
, divOriginalStringZone, styleString+onmousedownString+onmousemoveString+onmouseupString
, onmousedownStringZone, pressScrollS+argueventS+';'
, onmousemoveStringZone, moveMouseS+argueventS+';'
, onmouseupStringZone, endScrollS+argueventS+';'
// , styleStringZone, absoluteStyleString+zindexStyle
// , leftStyleStringZone, 0, topStyleStringZone, 0
, styleStringZone, absoluteLeftTopCornerStyleString+zindexStyle
// , elementZone, divStyleString
, elementZone, divOriginalString
, divOriginalStringZone, idString+onscrollString+styleString
, idStringZone, scrollbarElement
, onscrollStringZone, moveScrollS+argueventS+';'
, styleStringZone, overflowAutoStyleString
, zindexStyleZone, '2'
, widthStyleStringZone, iw, heightStyleStringZone, ih+(sh[anied]?scrollBarHeight:0) // scroll drop getter
, elementZone, tailDivString
, widthStyleStringZone, INT(iw*sh[aniN]), heightStyleStringZone, ihI
, elementZone, tableDefaultString
, cellpaddingStringZone, 0, cellspacingStringZone, 0, tableDefaultStringZone, sizeString
, widthStringZone, INT(iw*sh[aniN]), heightStringZone, ihI
, elementZone, ''
):'')
+ replaceAppendAll(
// divStyleString
divOriginalString
, divOriginalStringZone, styleString+idString+(sh[anied]?(onmousedownString+onmouseupString+ondragString+ondragendString):'')
, onmousedownStringZone, readyScrollS+argueventS+';'
, onmouseupStringZone, endScrollS+argueventS+';'
, ondragStringZone, moveMouseS+argueventS+';'
, ondragendStringZone, endScrollS+argueventS+';'
, idStringZone, showElement
, styleStringZone, absoluteLeftTopCornerStyleString+zindexStyle+cursorpointerStyle
// , elementZone, divStyleString
, elementZone, divOriginalString
, divOriginalStringZone, styleString+idString
, idStringZone, showScroll
, styleStringZone, overflowHiddenStyleString+alphaStyle
, zindexStyleZone, '3'
, widthStyleStringZone, iw, heightStyleStringZone, ih // showing zone
, overOpacity100, sh[anied]?'100':shopb, overOpacity, sh[anied]?'1':(shopb/100))
, elementZone,
(sh[anied]?
replaceAppendAll(tailDivString
, widthStyleStringZone, INT(iw*(stringWV[indexOf](sh[aniType])>=0?sh[aniN]:sh[aniW])), heightStyleStringZone, INT(ih*(stringWV[indexOf](sh[aniType])>=0?1:sh[aniFloor]))
, elementZone, ssim2
, imageWidth, INT(iw*sh[aniW]), imageHeight, ih*(sh[anied]?sh[aniFloor]:1)
// replaceAppendAll(animationString
// , animationWidth, iw, animationHeight, ih
// , animationAmount, iw
// , animationZoneWidth, INT(iw*sh[aniN]), animationZoneHeight, ihI
// , animationTails, ssim2
// , imageWidth, INT(iw*sh[aniW]), imageHeight, ih*(sh[anied]?sh[aniFloor]:1)
) // ani
:replaceAppendAll(imageClickString
, imageElement, imageString
, imageWidth, iwI, imageHeight, ihI
) // normal
) // anied
, imageURL, ((sh[Src][substr](0, 7)!='http://')?receivedSummeryImageBottom:'')+sh[Src]
);
}
else ssim='';
screenAlphaElementStyle[filter]=replaceAppendAll(alphaStyle[substring](alphaStyle[indexOf](filter+':')+(filter+':')[length], alphaStyle[indexOf](';')+1)
, overOpacity100, receivedHintOrder?receivedScreenOpacity:0
);
screenAlphaElementStyle[opacity]=receivedHintOrder?(receivedScreenOpacity/100):0;
if (receivedHintOrder) {
screenAlphaElementStyle.width=receivedSummeryWidth+'px';
screenAlphaElementStyle[height]=receivedSummeryHeight+'px';
} else { screenAlphaElementStyle.width=screenAlphaElementStyle[height]='1px'; }
zcount='';
if (arv=sh[ZImage]) {
for (zi=0; zi<arv[length]; zi++) {
zcount+=replaceAppendAll(numClickString
, waitHintNo, receivedHintOrder, waitZoomNo, zi+1);
}
}
// pre ani setting
if (sh[anied]) {
aniTypev=sh[aniType]; aniNv=sh[aniN]; aniWv=sh[aniW]; aniFloorv=sh[aniFloor];
}
// end of pre ani setting
returnSpaceElement[innerHTML]=replaceAppendAll(tableDefaultString
, tableDefaultStringZone, receivedHintOrder?'':replaceAppendAll(' '+styleString
, styleStringZone, absoluteStyleString
, leftStyleStringZone, 0, topStyleStringZone, receivedSummeryHeight)
, cellpaddingStringZone, 0, cellspacingStringZone, 0
, elementZone, ssim
+trString
, elementZone, tdOriginalString
, tdOriginalStringZone, colspanString
, colspanStringZone, 3
, elementZone, tableDefaultString
, tableDefaultStringZone, widthString
, cellpaddingStringZone, receivedSummeryPadding, cellspacingStringZone, 0, widthStringZone, receivedSummeryWidth
, elementZone, trString
, elementZone, tdOriginalString
, tdOriginalStringZone, styleString
, styleStringZone, font9pt+colorStyle
, colorStyleZone, 'white'
, elementZone, replaceAppendAll(divStyleString
, styleStringZone, 'float:right'
, elementZone
, (receivedHintOrder?
(
zcount+replaceAppendAll(aShapWaitHint
, waitHintNo, 0, elementZone, 'Summery')
+' '+replaceAppendAll(aLightgreenShow
, onclickStringZone, 'waitSummery('+receivedHintOrder+',\''+showString+'\');'
, waitHintNo, receivedHintOrder
, showString, stringI
, elementZone, '원본')
+(sh[anied]?(' '+replaceAppendAll(aLightgreenShow
, onclickStringZone, 'waitSummery('+receivedHintOrder+',\''+showString+'\');'
, waitHintNo, receivedHintOrder
, showString, sh[aniType]
// , elementZone, '영상')):
, elementZone, stringHanguel[sh[aniType]])):
'')
)
:'')
)
+sh[Hint]);
if (backStyleElement[scrollHeight]>iiH) { iiH=backStyleElement[scrollHeight]; backStyleElement[style][height]=iiH+'px'; /* resizing(); */ }
if (sh[aniType]==stringA) autoScroll(startAnimation);
}
imageInit=function () {
var
ii_i, ii_styleSize, ii_styleTop, ii_t, ov
, hashTemp=locationElement[hash]
;
if (!receivedSummeryImageBottom) {
ii_i=receivedSummeryImageSrc; receivedSummeryImageBottom=ii_i[substring](0, ii_i[indexOf]('=')+1);
}
iiH=receivedSummeryHeight>=300?(receivedSummeryHeight+200):500;
ii_styleSize=replaceAppendAll(overflowHiddenStyleString
, widthStyleStringZone, receivedSummeryWidth, heightStyleStringZone, iiH);
ii_styleTop=absoluteLeftTopCornerStyleString;
ov='';
for(ii_i=1; ii_i<receivedLinkImages[length]; ii_i++) { ii_t=receivedLinkImages[ii_i];
ov+=replaceAppendAll(areaRect
, areaLeft, ii_t[Left], areaTop, ii_t[Top]
, areaRight, ii_t[Left]+ii_t[Width], areaBottom
, ii_t[Top]+ii_t[Height], waitHintNo, ii_i);
}
// -- starting hash new window option
if ((hashTemp[indexOf](stringI)>=0)||(hashTemp[indexOf](stringA)>=0)||(hashTemp[indexOf](stringS)>=0)
||(hashTemp[indexOf](stringW)>=0)||(hashTemp[indexOf](stringV)>=0)) {
// for new window document
showHint=showZoom=argumentReceiver; // for no detail calling
ontimeHash();
}
else {
// -- normal option
w(replaceAppendAll(mapOriginalString
, mapOriginalStringZone, nameString
, nameStringZone, 'summeryMap_1'
, elementZone, ov));
w(replaceAppendAll(screenString
, backTop, ii_styleTop, backSize, ii_styleSize
, imageURL, receivedSummeryImageSrc
, imageWidth, receivedSummeryWidth, imageHeight, receivedSummeryHeight
, overOpacity100, receivedScreenOpacity, overOpacity, (receivedScreenOpacity/100)));
// get elements init
// screenAlphaElement=;documentElement.all[screenAlpha];
screenAlphaElementStyle=documentElement.all[screenAlpha][style];
backStyleElement=documentElement.all[backStyle];
returnSpaceElement=documentElement.all[returnSpace]
zoomSpaceElement=documentElement.all[ZoomSpace]
receivedHintOrder=0;
showHint();
// -- init ontimeHash
ontimeHash();
// for normal windowing
if (documentElement.all&&(attachEvent in documentElement)) documentElement[attachEvent](onpropertychange, onpropertyHash);
else windowElement[onhashchange]=onpropertyHash;
}
// -- end of init ontimeHash
};
function breakHint() { if (HintWait) timeOutClear(HintWait); HintWait=0; }
function breakZoom() { if (ZoomWait) timeOutClear(ZoomWait); ZoomWait=0; }
waitHint=function (v) {
// breakHint(); receivedHintOrder=v; HintWait=timeOut(showHint, 100);
processHash=
locationElement[hash]='#H'+v;
readyHashing();
};
waitZoom=function (v) {
//breakZoom(); ZoomOrder=v; ZoomWait=timeOut(showZoom, 100);
processHash=locationElement[hash]='#H'+receivedHintOrder+'Z'+v;
readyHashing();
};
function blankSelf(image_url, windowWidth, windowHeight) {
var viW1, viW1d, viar=arguments
;
if ((navigator.appName[indexOf]('Opera')>=0)||(!(viW1=viWb))) { // opera is can not open new window by _blank
viW1=windowElement; //.open(aboutBlank,openWindowName, replaceAppendAll(openWindowOption, openWindowWidth, windowWidth, openWindowHeight, windowHeight));
viW1d=viW1[documentS];
// viW1d.open();
viW1d[write](replaceAppendAll(htmlBODY
, titleStringZone, image_url
, imageZone, imagePadding
// , widthStringZone, windowWidth, heightStringZone, windowHeight
, viewImageRecallSet,
'viewImageRecall='+viewImageRecall+';viewOrder='+viewOrder+';'
+sendObjStringValue('viewOrderSet', viewOrderSet, aniNvS, aniFloorvS, aniWvS, aniTypevS, innerHTML)
));
// viW1d.close();
}
viW1[moveTo](0,0);
viW1[resizingS](windowWidth, windowHeight);
viW1[retitleS](image_url);
viW1[focusS]();
return viW1[documentS].all['woutput'];
}
function blankOpen(image_url, windowWidth, windowHeight) {
var viW1, viW1d, viar=arguments
;
if (!backStyleElement) return blankSelf(image_url, windowWidth, windowHeight); // for no blanks
if ((navigator.appName[indexOf]('Opera')>=0)||(!(viW1=viWb))) { // opera is can not open new window by _blank
viW1=windowElement.open(aboutBlank,openWindowName, replaceAppendAll(openWindowOption, openWindowWidth, windowWidth, openWindowHeight, windowHeight));
viW1d=viW1[documentS];
viW1d.open();
viW1d[write](replaceAppendAll(htmlBODY
, titleStringZone, image_url
, imageZone, imagePadding
// , widthStringZone, windowWidth, heightStringZone, windowHeight
, viewImageRecallSet, ''
));
viW1d.close();
}
viW1[moveTo](0,0);
viW1[resizingS](windowWidth, windowHeight);
viW1[retitleS](image_url);
viW1[focusS]();
return viW1[documentS].all['woutput'];
}
function viewImage(image_url) { var viar=arguments, viW1d;
if (viar[length]==1)
windowElement.open( replaceAppendAll(defaultImageURLForm, imageName, image_url), openWindowName, replaceAppendAll( openWindowOption, openWindowWidth, 310, openWindowHeight, 310));
else {
viW1d=blankOpen(image_url, viar[1], viar[2]);
viW1d[innerHTML]=replaceAppendAll(imageString
, imageURL, image_url
, imageWidth, viar[1], imageHeight, viar[2]);
}
}
viewImageRecall=function (openedWindow) {
viWb=openedWindow;
if (!viewOrder) return;
viewOrder=0;
sendObjAttribValue(viWb, aniNvS, viewOrderSet[aniNvS], aniFloorvS, viewOrderSet[aniFloorvS], aniWvS, viewOrderSet[aniWvS], aniTypevS, viewOrderSet[aniTypevS]);
// please patch error
viWb[documentS].all['woutput'][innerHTML]=viewOrderSet[innerHTML];
viWb[autoScrollS]();
};
function viewImage2(image_url, image_width, image_height, image_Wcount, image_floor, image_count, image_type) {
var
viW1d, i, fheight=INT(image_height/image_floor), imageString2
, iL, iT
, documentOutput='';
;
if ((fheight*image_floor)<image_height) fheight++;
imageString2='';
if (stringWV[indexOf](image_type)>=0)
{ // for 'WV' ( but, only use for 'W'..)
for (i=0; i<image_floor; i++) {
iL=i*image_width;
iT=INT(i*image_height/image_floor);
imageString2+=replaceAppendAll(imageClipTail
, topClip, iT
, rightClip, ((i+1)*image_Wcount)>image_count?INT(image_width*(image_count-i*image_Wcount)/image_Wcount):image_width
, bottomClip, iT + fheight
, leftClip, 0
, topClipPoint, -iT
, leftClipPoint, iL
);
}
viewOrderSet[innerHTML]=
replaceAppendAll(tailDivString
, widthStyleStringZone, INT(image_width/image_Wcount*(stringWV[indexOf](image_type)>=0?image_count:image_Wcount)), heightStyleStringZone, INT(fheight*(stringWV[indexOf](image_type)>=0?1:image_floor))
, elementZone, imageString2
, imageWidth, image_width, imageHeight, image_height
, imageURL, ((image_url[substr](0, 7)!='http://')?receivedSummeryImageBottom:'')+image_url
);
}
else
{// for 'AS'
imageString2+=replaceAppendAll(imageClipTail
, topClip, 0
, rightClip, image_width
, bottomClip, image_height
, leftClip, 0
, leftClipPoint, 0
, topClipPoint, 0
);
viewOrderSet[innerHTML]=
replaceAppendAll( tailDivString
, widthStyleStringZone, image_width/image_Wcount, heightStyleStringZone, fheight + scrollBarHeight
// -- print from images
, elementZone,
replaceAppendAll(
divOriginalString
, divOriginalStringZone, styleString+onmousedownString+onmousemoveString+onmouseupString
, onmousedownStringZone, pressScrollS+argueventS+';'
, onmousemoveStringZone, moveMouseS+argueventS+';'
, onmouseupStringZone, endScrollS+argueventS+';'
, styleStringZone, absoluteLeftTopCornerStyleString+zindexStyle
, elementZone, divOriginalString
, divOriginalStringZone, idString+onscrollString+styleString
, idStringZone, scrollbarElement
, onscrollStringZone, moveScrollS+argueventS+';'
, styleStringZone, overflowAutoStyleString
, zindexStyleZone, '2'
, widthStyleStringZone, INT(image_width/image_Wcount), heightStyleStringZone, fheight+scrollBarHeight // scroll drop getter
, elementZone, tailDivString
, widthStyleStringZone, INT(image_width/image_Wcount*image_count), heightStyleStringZone, fheight
, elementZone, tableDefaultString
, cellpaddingStringZone, 0, cellspacingStringZone, 0, tableDefaultStringZone, sizeString
, widthStringZone, INT(image_width/image_Wcount*image_count), heightStringZone, fheight
, elementZone, ''
)
+ replaceAppendAll(
divOriginalString
, divOriginalStringZone, styleString+idString+onmousedownString+onmouseupString+ondragString+ondragendString
, onmousedownStringZone, readyScrollS+argueventS+';'
, onmouseupStringZone, endScrollS+argueventS+';'
, ondragStringZone, moveMouseS+argueventS+';'
, ondragendStringZone, endScrollS+argueventS+';'
, idStringZone, showElement
, styleStringZone, absoluteLeftTopCornerStyleString+zindexStyle+cursorpointerStyle
, elementZone, divOriginalString
, divOriginalStringZone, styleString+idString
, idStringZone, showScroll
, styleStringZone, overflowHiddenStyleString //+alphaStyle
, zindexStyleZone, '3'
, widthStyleStringZone, image_width/image_Wcount, heightStyleStringZone, fheight // showing zone
, elementZone,
replaceAppendAll(tailDivString
, widthStyleStringZone, INT(image_width/image_Wcount*(stringWV[indexOf](image_type)>=0?image_count:image_Wcount)), heightStyleStringZone, INT(fheight*(stringWV[indexOf](image_type)>=0?1:image_floor))
, elementZone, imageString2
, imageWidth, image_width, imageHeight, image_height
)
, imageURL, ((image_url[substr](0, 7)!='http://')?receivedSummeryImageBottom:'')+image_url
)
// -- end of print from images
);
}
sendObjAttribValue(viewOrderSet, aniNvS, image_count, aniFloorvS, image_floor, aniWvS, image_Wcount, aniTypevS, image_type);
viewOrder=1;
viW1d=blankOpen(image_url, image_width/image_Wcount, fheight);
// script loading 용으로 처리가 필요함.
if (viWb) { // loading 완료됐다고 생각되는 시점
viewOrder=0;
sendObjAttribValue(viWb, aniNvS, image_count, aniFloorvS, image_floor, aniWvS, image_Wcount, aniTypevS, image_type);
viW1d[innerHTML]=viewOrderSet[innerHTML];
viWb[autoScrollS]();
}
// else
// { // 스크립트 아직 못 받았을거라 생각될 때 - viewImageRecall 이 해당 창에서 호출됨.
// }
}
waitSummery=function (v, o) {
// breakHint(); receivedHintOrder=v; HintWait=timeOut(showHint, 100);
processHash=
locationElement[hash]='#H'+v+o;
readyHashing();
};
showSummery=function (ss_i) { var lI=receivedLinkImages[ss_i]; viewImage(lI[Src], lI[Owidth], lI[Oheight]); };
showSummery2=function (ss_i) { var lI=receivedLinkImages[ss_i];
// try {
viewImage2(lI[Src], lI[Owidth], lI[Oheight], lI[aniW], lI[aniFloor], lI[aniN], lI[aniType]);
// }
// catch(e) { }
};
function showZoom() {
var
sh, zh, ix, iy, iw, ih, xw, xh, nw, nh, rv, r2, lltd, tttr, shopa, shopb
, sL, sT, sR, sB
, sLp, sTp, sW, sH, iLp, iTp, iW, iH
, sLv, sTv, sRv, sBv, iLv, iTv, iRv, iBv
, showZoomHTML='', showZoomHTML2=''
, x, y, i, j, pp, ii, jj
, wCount, hCount
;
breakZoom();
if (lastZoom==ZoomOrder) ZoomOrder=0;
lastZoom=ZoomOrder;
if (ZoomOrder) {
sh=receivedLinkImages[receivedHintOrder]; zh=sh[ZImage][ZoomOrder-1]; iw=zWidth; ih=INT(zh[HHeight]/zh[HWidth]*iw);
wCount=sh[anied]?sh[aniW]:1; hCount=sh[anied]?sh[aniFloor]:1;
if (ih>zHeight) { ih=zHeight; iw=zh[HWidth]/zh[HHeight]*ih; }
rv=1;
xw=receivedSummeryWidth*iw*sh[Owidth]/zh[HWidth]/sh[Width];
if (xw>imageMaximum) rv=imageMaximum/xw;
xh=receivedSummeryHeight*ih*sh[Oheight]/zh[HHeight]/sh[Height];
if (xh>imageMaximum) { r2=imageMaximum/xh; if (rv>r2) rv=r2; }
nw=sh[Owidth]*iw/zh[HWidth];
if (nw>imageMaximum) { r2=imageMaximum/nw; if (rv>r2) rv=r2; }
nh=sh[Oheight]*ih/zh[HHeight];
if (nh>imageMaximum) { r2=imageMaximum/nh; if (nh>r2) rv=r2; }
xw=INT(xw*rv); nw=INT(nw*rv); iw=INT(iw*rv);
xh=INT(xh*rv); nh=INT(nh*rv); ih=INT(ih*rv);
ix=(zWidth-iw)*zh[HLeft]/sh[Owidth]/(sh[aniType]=='W'?sh[aniN]:1)*(sh[aniType]=='H'?wCount:(sh[aniType]=='W'?wCount:1))+zGab;
iy=(zHeight-ih)*zh[HTop]/sh[Oheight]/(sh[aniType]=='H'?sh[aniN]:1)*(sh[aniType]=='W'?hCount:(sh[aniType]=='H'?hCount:1))+zGab;
shopa=iw/zh[HWidth]; shopb=iw/sh[Width]/zh[HWidth]*sh[Owidth];
if (shopa>1) shopa=1/shopa; if (shopb>1) shopb=1/shopb;
shopa=1-shopa; shopb=1-shopb;
if (zh[HWidth]>sh[Width]*sh[Owidth]) { shopb*=shopb; shopb*=shopb; } else { shopa*=shopa; shopa*=shopa; }
if (shopb) {
shopb=INT(shopb/(shopa+shopb)*100);
} else shopb=0;
sW=sh[Width]*xw/receivedSummeryWidth/wCount; // because, [Width]'s zone size
sH=sh[Height]*xh/receivedSummeryHeight/hCount; // because, [Height]'s zone size
sR=(sL=(sh[Left]+sh[Width]*zh[HLeft]/sh[Owidth])*xw/receivedSummeryWidth)
+iw;
sB=(sT=(sh[Top]+sh[Height]*zh[HTop]/sh[Oheight])*xh/receivedSummeryHeight)
+ih;
sLp=sh[Left]*xw/receivedSummeryWidth;
sTp=sh[Top]*xh/receivedSummeryHeight;
iW=nw/wCount;
iH=nh/hCount;
iRp=(iLp=INT(nw*zh[HLeft]/sh[Owidth]))
+iw;
iBp=(iTp=INT(nh*zh[HTop]/sh[Oheight]))
+ih;
// x, y, i, j 로 변환해야함.
//ov='';
for (j=MathElement[floor]((sT-sTp)/sH); j<=MathElement[floor]((sB-sTp)/sH); j++)
for (i=MathElement[floor]((sL-sLp)/sW); i<=MathElement[floor]((sR-sLp)/sW); i++) {
pp=i+j*wCount*hCount; while (pp<0) pp+=wCount*hCount*wCount*hCount;
ii=pp%(wCount*hCount);
jj=INT(pp/wCount/hCount)%(hCount*wCount);
pp=((ii+INT(jj/hCount))%wCount+(INT(ii/wCount)+jj)*wCount)%(wCount*hCount);
x=pp%wCount;
y=INT(pp/wCount);
//ov+=(i==MathElement[floor]((sL-sLp)/sH)?'\r':'')+pp+'/'+x+','+y+' - ';
sRv=(sLv=i*sW+sLp-sL)+sW; sBv=(sTv=j*sH+sTp-sT)+sH;
if (sLv<0) sLv=0; if (sRv>iw) sRv=iw; if (sTv<0) sTv=0; if (sBv>ih) sBv=ih;
sLv+=sL+(x-i)*sW; sRv+=sL+(x-i)*sW; sTv+=sT+(y-j)*sH; sBv+=sT+(y-j)*sH;
iRv=(iLv=i*iW-iLp)+iW; iBv=(iTv=j*iH-iTp)+iH;
// showZoomHTML+=i+' '+j+' '+iLv+' +'+iRv+' '+iTv+' '+iBv+'<br/> '+iW+' '+iH+' '+wCount+' '+hCount+' '+ih+' /<br/>';
if (iLv<0) iLv=0; if (iRv>iw) iRv=iw; if (iTv<0) iTv=0; if (iBv>ih) iBv=ih;
iLv+=iLp+(x-i)*iW; iRv+=iLp+(x-i)*iW; iTv+=iTp+(y-j)*iH; iBv+=iTp+(y-j)*iH;
showZoomHTML
+=
replaceAppendAll(imageZoomClickTail
, waitHintNo, receivedHintOrder
, topClip, sTv, rightClip, sRv, bottomClip, sBv, leftClip, sLv
, leftClipPoint, ix-sL-(x-i)*sW
, topClipPoint, iy-sT-(y-j)*sH
, imageWidth, xw, imageHeight, xh
, imageURL, receivedSummeryImageSrc)
;
showZoomHTML2
+=
replaceAppendAll(imageZoomClickTail
, waitHintNo, receivedHintOrder
, topClip, iTv, rightClip, iRv, bottomClip, iBv, leftClip, iLv
, leftClipPoint, ix-iLp-(x-i)*iW
, topClipPoint, iy-iTp-(y-j)*iH
, imageWidth, nw, imageHeight, nh
, imageURL, ((sh[Src][substr](0, 7)!='http://')?receivedSummeryImageBottom:'')+sh[Src])
;
}
zoomSpaceElement[innerHTML]=
replaceAppendAll(divStyleString
, styleStringZone, absoluteLeftTopCornerStyleString
// , elementZone, divStyleString
, elementZone, divOriginalString
, divOriginalStringZone, styleString+onclickString
, onclickStringZone, waitZoomFunctionString
, waitZoomNo, ZoomOrder
, styleStringZone, overflowHiddenStyleString+alphaStyle+backgroundColor
, widthStyleStringZone, receivedSummeryWidth, heightStyleStringZone, receivedSummeryHeight
, overOpacity100, 50, overOpacity, 0.5
, backgroundColorZone, 'gray'
, elementZone, '')
+replaceAppendAll(divStyleString
, styleStringZone, absoluteLeftTopCornerStyleString
, elementZone, tailDivString
, widthStyleStringZone, iw+ix, heightStyleStringZone, ih+iy
, elementZone, showZoomHTML
)
+replaceAppendAll(divStyleString
, styleStringZone, absoluteLeftTopCornerStyleString+alphaStyle
, elementZone, tailDivString
// , widthStyleStringZone, 1, heightStyleStringZone, 1
, widthStyleStringZone, iw+ix, heightStyleStringZone, ih+iy
, overOpacity100, shopb, overOpacity, shopb/100
, elementZone, showZoomHTML2
)
// +showZoomHTML
;
} else zoomSpaceElement[innerHTML]='';
}
resizing=function () {
var outerSam=documentBodyElement.outerHTML;
windowElement[resizeTo](documentBodyElement[scrollWidth], documentBodyElement[scrollHeight]); }
}
scriptInit();
...
3) 최적화 후..
var linkImages = [],
imageInit, waitHint, waitZoom, waitSummery, showSummery, showSummery2, resizing, imageSet, innerHTML, readyScroll, moveMouse, moveScroll, endScroll, pressScroll, sizingSecond, summeryImageBottom, aniNv, aniFloorv, aniWv, aniTypev, aniNvS, aniFloorvS, aniWvS, aniTypevS, viWb, viewOrder, viewOrderSet, viewImageRecall, autoScroll, clearAutoScroll, sendObjAttribValue, autoScrollS, temp = "";
function argumentReceiver() {}
function scriptInit() {
function Oc() {
if (Ad != M[N]) {
Ad = M[N];
eb()
}
ta(Oc, 200)
}
function eb() {
if (Bd != M[N]) {
A = Bd = M[N];
hc()
}
}
function hc() {
Qa && ua(Qa);
Qa = 0;
Qa = ta(le, 100)
}
function le() {
var a;
Qa && ua(Qa);
Qa = 0;
for (la = T = -1; A[ic](0);) {
a = -1;
switch (A[ic](0)) {
case "#":
break;
case "H":
a = parseInt(A[E](1, A[s]));
if (a >= 0) T = a;
break;
case "Z":
a = parseInt(A[E](1, A[s]));
if (a >= 0) la = a;
break;
case jc:
case Pc:
case va:
case Qc:
case Rc:
Bb = A[ic](0);
break;
default:
break
}
A = a >= 0 ? A[E](A[m](a + "", 1) + (a + "")[s], A[s]) : A[E](1, A[s])
}
if (da[T]) if (T && Ra < 0 && la < 0 && Sc == T && !Bb) {
M[N] = "#H0";
eb()
} else if (Bb) {
M[N] = "#H" + T;
Bb == jc ? Cd(T) : Dd(T);
Bb = "";
eb()
} else {
if (la < 0) la = 0;
if (T != Sc) {
B = T;
Tc();
Sa = la;
Uc()
} else if (la != Ra) {
Sa = la;
Uc()
} else {
A = M[N] = "#H" + T;
eb();
return
}
Sc = T;
Ra = la
}
}
function me() {
var a = arguments,
b = a[0],
c = a[1],
d, e = "",
h, l;
for (d = 2; d < a.length; d++) {
h = c[a[d]];
l = isNaN(h) ? "'" : "";
e += b + "['" + a[d] + "']=" + l + h + l + ";"
}
return e
}
function f() {
var a = arguments,
b, c = a[0];
for (b = 1; b + 1 < a[s]; b += 2) {
Ed[ne](a[b], Fd);
c = c[oe](Ed, a[b + 1])
}
return c
}
function O(a, b) {
return "<" + a + " " + b + " >" + g + "</" + a + ">"
}
function Gd() {
var a;
for (a = 0; a < arguments[s]; a++) q[Vc](arguments[a])
}
function pe() {
argumentReceiver(Ta, fb, innerHTML, sendObjAttribValue, Wc, C, wa, kc, Xc, lc, Yc, Zc, m, mc, $c, ma, Cb, nc, oc, pc, N, Db, Eb, Z, ad, bd, P, q, $, M, ta, ua, gb, Fb, cd, ea, xa, hb, Gb, Ua, na, Hb, Ib, Jb, aa, va, dd, Va, ib, qc, Kb, clearAutoScroll, Lb, autoScrollS, viewImageRecall, viewOrder, viewOrderSet)
}
function Tc() {
var a, b, c, d, e, h, l, o, j, r;
ed && ua(ed);
ed = 0;
jb && ua(jb);
Ra = jb = 0;
rc[innerHTML] = "";
a = da[B];
j = D;
d = u;
e = a[U] / (a[G] / (a[p] ? a[w] / a[H] : 1)) * u;
if (e > j) {
e =
j;
d = a[G] / (a[p] ? a[w] / a[H] : 1) / a[U] * j;
b = (u - d) * a[fa] / (u - a[L] / (a[p] ? a[w] : 1));
c = 0
} else {
c = j == e ? 0 : (j - e) * a[ga] / (j - a[ba]);
b = 0
}
h = d / a[G];
j = d / a[L];
if (h > 1) h = 1 / h;
if (j > 1) j = 1 / j;
h = 1 - h;
j = 1 - j;
if (a[L] > a[G]) {
j *= j;
j *= j
} else {
h *= h;
h *= h
}
j = j ? k(j / (h + j) * 100) : 0;
h = k(d);
l = k(e);
o = b ? f(Hd, g, ya, n, za, x, b, y, 0, g, "") : "";
b = b ? f(Hd, g, ya, n, za, x, u - b - h, y, 0, g, "") : "";
c = c ? f(fd, Aa, c, g, Wa, Ba, Id, gd, 3, g, "") : "";
if (B) {
if (a[p]) {
r = "";
if (aa[m](a[I]) >= 0) for (i = 0; i < a[H]; i++) r += f(hd, Ca, k(e * i), Da, d * ((i + 1) * a[w] > a[Q] ? a[Q] - i * a[w] : a[w]), Ea, e * (i + 1), Fa, 0, Ga, d * i * a[w], Ha, -e * i);
else r += f(hd, Ca, 0, Da, d * a[w], Ea, e * a[H], Fa, 0, Ga, 0, Ha, 0)
}
r = c + f(fd, Aa, l, g, o + qe + b, Ia, h, g, ha, x, h, y, l + (a[p] ? sc : 0), g, f(hd, Ca, e / a[ba] * a[ga] * (a[p] ? a[H] : 1), Da, d / (a[L] / (a[p] ? a[w] : 1)) * a[fa] + h, Ea, e / a[ba] * a[ga] * (a[p] ? a[H] : 1) + l, Fa, d / (a[L] / (a[p] ? a[w] : 1)) * a[fa], Ga, -d / (a[L] / (a[p] ? a[w] : 1)) * a[fa], Ha, -e / a[ba] * a[ga] * (a[p] ? a[H] : 1), R, Mb, ia, k(d / (a[L] / (a[p] ? a[w] : 1)) * u), ja, k(e / a[ba] * D * (a[p] ? a[H] : 1))) + (a[p] ? f(ca, V, t + tc + Jd + Nb, Ob, uc + C + ";", id, kb + C + ";", lb, Ja + C + ";", n, oa + mb, g, ca, V, Ka + Kd + t, W, na, jd, vc + C + ";", n, Ld, Xa, "2", x, d, y, e + (a[p] ? sc : 0), g, ha, x, k(d * a[Q]), y, l, g, Pb, nb, 0, ob, 0, pb, wc, Ia, k(d * a[Q]), Aa, l, g, "") : "") + f(ca, V, t + Ka + (a[p] ? tc + Nb + Md + Nd : ""), Ob, xc + C + ";", lb, Ja + C + ";", kd, kb + C + ";", ld, Ja + C + ";", W, Ua, n, oa + mb + Od, g, ca, V, t + Ka, W, Hb, n, za + Ya, Xa, "3", x, d, y, e, qb, a[p] ? "100" : j, Qb, a[p] ? "1" : j / 100), g, a[p] ? f(ha, x, k(d * (aa[m](a[I]) >= 0 ? a[Q] : a[w])), y, k(e * (aa[m](a[I]) >= 0 ? 1 : a[H])), g, r, ia, k(d * a[w]), ja, e * (a[p] ? a[H] : 1)) : f(re, md, Pd, ia, h, ja, l), R, (a[La][Rb](0, 7) != "http://" ? Za : "") + a[La])
} else r = "";
$a[yc] = f(Ya[E](Ya[m](yc + ":") + (yc + ":")[s], Ya[m](";") + 1), qb, B ? Sb : 0);
$a[nd] = B ? Sb / 100 : 0;
if (B) {
$a.width = u + "px";
$a[rb] = D + "px"
} else $a.width = $a[rb] = "1px";
e = "";
if (j = a[sb]) for (d = 0; d < j[s]; d++) e += f(se, J, B, pa, d + 1);
if (a[p]) {
aniTypev = a[I];
aniNv = a[Q];
aniWv = a[w];
aniFloorv = a[H]
}
Qd[innerHTML] = f(Pb, pb, B ? "" : f(" " + t, n, zc, Tb, 0, Ub, D), nb, 0, ob, 0, g, r + od, g, Wa, Ba, Id, gd, 3, g, Pb, pb, Ac, nb, Rd, ob, 0, Ia, u, g, od, g, Wa, Ba, t, n, Sd + Bc, Vb, "white", g, f(ya, n, "float:right", g, B ? e + f(Td, J, 0, g, "Summery") + " " + f(Ud, qa, "waitSummery(" + B + ",'" + Wb + "');", J, B, Wb, jc, g, "\uc6d0\ubcf8") + (a[p] ? " " + f(Ud, qa, "waitSummery(" + B + ",'" + Wb + "');", J, B, Wb, a[I], g, Vd[a[I]]) : "") : "") + a[Cc]);
if (Xb[xa] > Yb) {
Yb = Xb[xa];
Xb[ma][rb] = Yb + "px"
}
a[I] == va && autoScroll(Ib)
}
function Wd(a, b, c) {
var d, e;
if (!Xb) {
if (navigator.appName[m]("Opera") >= 0 || !(e = viWb)) {
e = P;
d = e[wa];
d[Vc](f(pd, qd, a, rd, Xd, sd, "viewImageRecall=" + viewImageRecall + ";viewOrder=" + viewOrder + ";" + me("viewOrderSet", viewOrderSet, tb, ub, vb, wb, innerHTML)))
}
e[Yd](0, 0);
e[Va](b, c);
e[td](a);
e[lc]();
return e[wa].all.woutput
}
if (navigator.appName[m]("Opera") >= 0 || !(d = viWb)) {
d = P.open(te, Zd, f($d, ud, b, vd, c));
e = d[wa];
e.open();
e[Vc](f(pd, qd, a, rd, Xd, sd, ""));
e.close()
}
d[Yd](0, 0);
d[Va](b, c);
d[td](a);
d[lc]();
return d[wa].all.woutput
}
function ue(a) {
var b = arguments,
c;
if (b[s] == 1) P.open(f(ve, ae, a), Zd, f($d, ud, 310, vd, 310));
else {
c = Wd(a, b[1], b[2]);
c[innerHTML] = f(Pd, R, a, ia, b[1], ja, b[2])
}
}
function Uc() {
var a, b, c, d, e, h, l, o, j, r, z, v, xb, be, ce, Dc, Ec, Ma, Na, Zb, yb, zb, K, $b, ac, bc, cc, dc, ec, fc, de = "",
ee = "",
ka, ab, X, Y, F, S;
jb && ua(jb);
jb = 0;
if (Ra == Sa) Sa = 0;
if (Ra = Sa) {
a = da[B];
b = a[sb][Sa - 1];
e = wd;
h = k(b[gc] / b[Oa] * e);
F = a[p] ? a[w] : 1;
S = a[p] ? a[H] : 1;
if (h > Fc) {
h = Fc;
e = b[Oa] / b[gc] * h
}
c = 1;
l = u * e * a[G] / b[Oa] / a[L];
if (l > Pa) c = Pa / l;
o = D * h * a[U] / b[gc] / a[ba];
if (o > Pa) {
d = Pa / o;
if (c > d) c = d
}
j = a[G] * e / b[Oa];
if (j > Pa) {
d = Pa / j;
if (c > d) c = d
}
r = a[U] * h / b[gc];
if (r > Pa) {
d = Pa / r;
if (r > d) c = d
}
l = k(l * c);
j = k(j * c);
e = k(e * c);
o = k(o * c);
r = k(r * c);
h = k(h * c);
c = (wd - e) * b[Gc] / a[G] / (a[I] == "W" ? a[Q] : 1) * (a[I] == "H" ? F : a[I] == "W" ? F : 1) + bb;
d = (Fc - h) * b[Hc] / a[U] / (a[I] == "H" ? a[Q] : 1) * (a[I] == "W" ? S : a[I] == "H" ? S : 1) + bb;
z = e / b[Oa];
v = e / a[L] / b[Oa] * a[G];
if (z > 1) z = 1 / z;
if (v > 1) v = 1 / v;
z = 1 - z;
v = 1 - v;
if (b[Oa] > a[L] * a[G]) {
v *= v;
v *= v
} else {
z *= z;
z *= z
}
v = v ? k(v / (z + v) * 100) : 0;
Ma = a[L] * l / u / F;
Na = a[ba] * o / D / S;
be = (z = (a[fa] + a[L] * b[Gc] / a[G]) * l / u) + e;
ce = (xb = (a[ga] + a[ba] * b[Hc] / a[U]) * o / D) + h;
Dc = a[fa] * l / u;
Ec = a[ga] * o / D;
yb = j / F;
zb = r / S;
iRp = (Zb = k(j * b[Gc] / a[G])) + e;
iBp = (b = k(r * b[Hc] / a[U])) + h;
for (Y = Ic[Jc]((xb - Ec) / Na); Y <= Ic[Jc]((ce - Ec) / Na); Y++) for (X = Ic[Jc]((z - Dc) / Ma); X <= Ic[Jc]((be - Dc) / Ma); X++) {
for (K = X + Y * F * S; K < 0;) K += F * S * F * S;
ka = K % (F * S);
K = parseInt(K / F / S) % (S * F);
K = ((ka + parseInt(K / S)) % F + (parseInt(ka / F) + K) * F) % (F * S);
ka = K % F;
ab = parseInt(K / F);
ac = (K = X * Ma + Dc - z) + Ma;
bc = ($b = Y * Na + Ec - xb) + Na;
if (K < 0) K = 0;
if (ac > e) ac = e;
if ($b < 0) $b = 0;
if (bc > h) bc = h;
K += z + (ka - X) * Ma;
ac += z + (ka - X) * Ma;
$b += xb + (ab - Y) * Na;
bc += xb + (ab - Y) * Na;
ec = (cc = X * yb - Zb) + yb;
fc = (dc = Y * zb - b) + zb;
if (cc < 0) cc = 0;
if (ec > e) ec = e;
if (dc < 0) dc = 0;
if (fc > h) fc = h;
cc += Zb + (ka - X) * yb;
ec += Zb + (ka - X) * yb;
dc += b + (ab - Y) * zb;
fc += b + (ab - Y) * zb;
de += f(fe, J, B, Ca, $b, Da, ac, Ea, bc, Fa, K, Ga, c - z - (ka - X) * Ma, Ha, d - xb - (ab - Y) * Na, ia, l, ja, o, R, Mb);
ee += f(fe, J, B, Ca, dc, Da, ec, Ea, fc, Fa, cc, Ga, c - Zb - (ka - X) * yb, Ha, d - b - (ab - Y) * zb, ia, j, ja, r, R, (a[La][Rb](0, 7) != "http://" ? Za : "") + a[La])
}
rc[innerHTML] =
f(ya, n, oa, g, ca, V, t + cb, qa, Kc, pa, Sa, n, za + Ya + xd, x, u, y, D, qb, 50, Qb, 0.5, Lc, "gray", g, "") + f(ya, n, oa, g, ha, x, e + c, y, h + d, g, de) + f(ya, n, oa + Ya, g, ha, x, e + c, y, h + d, qb, v, Qb, v / 100, g, ee)
} else rc[innerHTML] = ""
}
var yd = 0,
ed, jb, Sa, Ra = -1,
Yb, bb, wd, Fc, ge = 1024,
he = 768,
Pa = 16383,
sc = 22,
$a, Xb, Qd, rc, u, D, Mb, Sb, Za, Rd, da, B, Fd = "gi",
Ic = Math,
Jc = "floor",
Ed = RegExp("", Fd),
k = parseInt,
Cd, Dd, s = "length",
E = "substring",
Rb = "substr",
Vc = "write",
ic = "charAt",
yc = "filter",
nd = "opacity",
rb = "height",
Yd = "moveTo",
ne = "compile",
oe = "replace",
Ad = "",
Bd = "",
fa = "Left",
ga = "Top",
L = "Width",
ba = "Height",
G = "Owidth",
U = "Oheight",
Cc = "Hint",
sb = "ZImage",
Pc = "S",
Qc = "W",
Rc = "V",
jc = "I",
p = "anied",
Q = "aniN",
I = "aniType",
H = "aniFloor",
w = "aniW",
La = "Src",
Vd = {},
Gc = "HLeft",
Hc = "HTop",
Oa = "HWidth",
gc = "HHeight",
td = "retitle",
xc = "readyScroll",
kb = "moveMouse",
vc = "moveScroll",
Ja = "endScroll",
uc = "pressScroll",
zd, A = "",
T = -1,
la = -1,
Bb = "",
Qa, Sc = -1;
Ra = -1;
var g = "{ntZ}",
ie = ["<br>", "<br/>", "<BR>", "<BR/>", "</p>", "</P>"],
Ta, fb, Wc, C, wa, kc, Xc, lc, Yc, Zc, m, mc, $c, ma, Cb, nc, pc, oc, N, Db, Eb, Z, ad, bd, P, q, $, M, ta, ua, gb, Fb, cd, ea, xa, hb, Gb, Ua, na, Hb, Ib, ib, qc, Kb, Lb, Jb, aa, va, dd, Va, tb, ub, vb, wb;
zd = function() {
innerHTML = "innerHTML";
Wc = "event";
C = "(" + Wc + ")";
wa = "document";
kc = "body";
Xc = "location";
lc = "focus";
Yc = "setTimeout";
Zc = "clearTimeout";
m = "indexOf";
mc = "resizeTo";
$c = "resizeBy";
ma = "style";
Cb = "zIndex";
nc = "target";
oc = "pointer";
pc = "cursor";
N = "hash";
Db = "clientX";
Eb = "clientY";
Z = "scrollLeft";
ad = "scrollTop";
bd = "readyState";
P = window;
q = P[wa];
$ = q[kc];
M = P[Xc];
ta = P[Yc];
ua = P[Zc];
gb = "onloadFunction";
Fb = "sizingSecond";
cd = "title";
ea = "scrollWidth";
xa = "scrollHeight";
hb = "clientWidth";
Gb = "clientHeight";
Ua = "showElement";
na = "scrollbarElement";
Hb = "showScroll";
Ib = "startAnimation";
Jb = "AS";
aa = "WV";
va = "A";
dd = Jb + aa;
Va = "resizing";
viewOrder = 0;
viewOrderSet = {};
tb = "aniNv";
ub = "aniFloorv";
vb = "aniWv";
wb = "aniTypev";
autoScrollS = "autoScroll"
};
zd();
sendObjAttribValue = function() {
var a = arguments,
b = a[0],
c;
for (c = 1; c < a.length; c += 2) b[a[c]] = a[c + 1]
};
sendObjAttribValue(Vd, va, "\uc601\uc0c1", Pc, "\ud398\uc774\uc9c0\uc601\uc0c1", Qc, "\uac00\ub85c\ub098\uc5f4", Rc, "\uc138\ub85c\ub098\uc5f4");
var we = O("map", "{apO}"),
Ab = O("a", "{aO}"),
V = "{iv}",
ca = O("div", V),
xe = O("script", ""),
sd = "{viewImageRecallSet}",
ye = O("html", ""),
ze = O("head", ""),
Ae = O("title", ""),
Be = O("b", ""),
Ce = O("marquee", "{q}"),
De = O(kc, "{od}"),
je = O("table", "{leO}"),
Mc = O("tr", "{trO}"),
Ba = "{td}",
Wa = O("td", Ba),
gd = "{ols}",
Id = "colspan=" + gd + " ",
W = "{idS}",
Ka = 'id="' + W + '" ',
Ia = "{hStr}",
Ac = "width=" + Ia + " ",
Aa = "{htStr}",
ra = rb + "=" + Aa + " ",
wc = Ac + ra,
n = "{s}",
t = ma + '="' + n + '" ',
ia = "{geW}",
ja = "{geH}",
sa = f(wc, Ia, ia, Aa, ja);
sa = f("<img {gO} />", "{gO}", 'border=0 src="{sr}" ' + sa + "{gD}");
var ya = f(ca, V, t),
Nc = f(ca, V, Ka + t),
od = f(Mc, "{trO}", ""),
fd = f(Mc, "{trO}", ra),
Hd = f(Wa, Ba, "");
Mc = f(Wa, Ba, Ac + t);
var qe = f(Wa, Ba, Ac),
Od = pc + ":" + oc + "; ",
x = "{hSty}";
ra = "width:" + x + "px; ";
var y = "{htSty}",
db = rb + ":" + y + "px; ",
za = f("overflow:{rf}; " + ra + db, "{rf}", "hidden"),
Ld = f("overflow:{rf}; " + ra + db, "{rf}", "auto"),
Tb = "{ftS}",
Ub = "{pS}",
zc = "position:absolute; " + ("left:" + Tb + "px; " + ("top:" + Ub + "px; ")),
oa = f(zc, Tb, 0, Ub, 0),
Xa = "{x}",
mb = "z-index:" + Xa + "; ",
Ca = "{o}",
Da = "{htC}",
Ea = "{mm}",
Fa = "{l}",
Ga = "{tClipP}",
Ha = "{pClipP}";
ra = "clip:rect(" + Ca + "px, " + Da + "px, " + Ea + "px, " + Fa + "px); " + f(zc, Tb, Ga, Ub, Ha);
var Lc = "{kg}",
xd = "background-color:" + Lc + "; ",
Vb = "{co}",
Bc = "color:" + Vb + "; ",
Sd = "font-size:9pt; ",
qa = "{nc}",
cb = 'onclick="' + qa + '" ',
Ob = "{wn}",
tc = 'onmousedown="' + Ob + '" ',
kd = "{a}",
Md = 'ondrag="' + kd + '" ' + (q.all ? "" : 'ondragstart="return false;" '),
ld = "{end}",
Nd = 'ondragend="' + ld + '" ',
id = "{emo}",
Jd = 'onmousemove="' + id + '" ',
lb = "{up}",
Nb = 'onmouseup="' + lb + '" ',
jd = "{ns}",
Kd = 'onscroll="' + jd + '"',
J = "{Hi}";
db = "waitHint(" + J + ");";
var pa = "{mN}",
Kc = "waitZoom(" + pa + ");",
Wb = "{showString}",
Ee = f("<area {eaO} />", "{eaO}", 'shape="{sh}" coords="{eaL},{eaT},{eaR},{eaB}" href="{hr}" ' + Nb, "{sh}", "rect", "{hr}", "#H" + J, lb, db),
R = "{UR}",
Pd = f(sa, "{gD}", "", "{sr}", R),
ke = f(sa, "{gD}", t, n, ra, "{sr}", R),
Td = f(Ab, "{aO}", 'href="{hr}" ' + cb, "{hr}", "#H" + J, qa, db);
db = f(Ab, "{aO}", 'href="{hr}" ' + cb, "{hr}", "#H" + J + "Z" + pa, qa, Kc);
var hd = f(sa, "{gD}", t, n, ra, "{sr}", R),
fe = f(db, pa, 0, g, sa, "{gD}", t, n, ra, "{sr}", R),
qb = "{IL}",
Qb = "{v}",
Ya = yc + ":Alpha(" + nd + "=" + qb + "); " + nd + ":" + Qb + "; ",
Fe = f(Nc, W, "backStyle", n, "{kT}{Si}" + xd, Lc, "#222222", g, f(sa, "{gD}", 'usemap="#{ema}" ', "{sr}", R, "{ema}", "summeryMap_1") + f(ya, n, "{kT}", g, Nc, W, "screenAlpha", n, za + Ya + xd, x, 1, y, 1, Lc, "black", g, "") + f(Nc, W, "returnSpace", n, "{kT}", g, "") + f(Nc, W, "ZoomSpace", n, "{kT}" + mb, Xa, 6, g, ""));
sa = f(Ab, "{aO}", t + 'href="{hr}" ' + cb, "{hr}", "#");
var Ud = f(Ab, "{aO}", 'href="{hr}" ' + cb + t, n, Bc, Vb, "lightgreen", "{hr}", "#H" + J + Wb),
Ge = f(Ab, "{aO}", t + 'href="{hr}" ' + cb, "{hr}", "#H" + J + "Z" + pa, n, Bc, Vb, "lightgreen", qa, Kc),
se = f(Ab, "{aO}", 'href="{hr}" ' + cb, "{hr}", "#H" + J + "Z" + pa, qa, Kc, g, pa + ")") + " ",
te = "about:blank",
Zd = "_blank",
ud = "{wW}",
vd = "{wH}",
$d = f("directories,location,menubar,resizable/scrollbars/status,titlebar,toolbar,width=", ",", "=no,", "/", "=yes,") + ud + "," + rb + "=" + vd,
ae = "{eNa}",
ve = "http://club.cyworld.nate.com/club/board/image/imgbrd_viewurl.asp?image_url=" + ae,
nb = "{dd}",
ob = "{cin}",
pb = "{leD}",
Pb = f(je, "{leO}", "border=0 " + ("cellpadding=" + nb + " ") + ("cellspacing=" + ob + " ") + pb),
qd = "{tl}",
rd = "{geZ}",
pd, md = "{geE}",
Xd = f(Pb, pb, t, n, oa, nb, 5, ob, 0, g, od, g, Wa, Ba, Ka, W, "woutput", g, md) + f(je, "{leO}", t + 'bgcolor="{bg}" ', n, zc + mb, Tb, 5, Ub, 5, Xa, 5, "{bg}", "#550000", g, fd, Aa, 20, g, Mc, Ia, 40, n, Sd + "font-family:\ub3cb\uc6c0; ", g, Be, g, sa, n, Bc + "text-underline:none; ", Vb, "#ffffff", qa, "setTimeout(function(){window.close();},100)", g, "[\ub2eb\uae30]"),
ha = f(ya, n, za + "position:relative; ");
f(Ce, "{q}", wc + 'behavior="{be}" scrollamount={lla} scrolldelay={ld} direction="{ir}" loop={loo} ', Ia, "{onW}", Aa, "{nH}", "{be}", "alternate", "{ld}", 1E3, "{lla}", "{onA}", "{ir}", "left", "{loo}", -1, g, ha, x, "{neW}", y, "{neH}", g, "{il}");
var re = f(Td, J, 0, g, md);
imageSet = function() {
var a, b, c, d = arguments,
e, h, l, o, j;
u = summeryWidth;
D = summeryHeight;
Mb = summeryImageSrc;
Sb = screenOpacity;
Za = summeryImageBottom;
Rd = summeryPadding;
da = linkImages;
b = da[0] = {};
b[fa] = 0;
b[ga] = 0;
b[L] = u;
b[ba] = D;
b[Cc] = "";
b[G] = u;
b[U] = D;
b[Cc] = "";
b[sb] = 0;
bb = u < D ? k(u / 40) : k(D / 40);
wd = u - bb - bb;
Fc = D - bb - bb;
for (a = 0; a < d[s];) {
yd++;
b = da[yd] = {};
if (b[p] = (e = d[a][m]("*")) >= 0) {
c = d[a];
b[Q] = c[E](0, e);
b[La] = c[E](e + 1, c[s]);
c = b[Q];
b[H] = (j = c[m]("/")) >= 0 ? k(c[E](j + 1, e)) : 1;
j = j > 0 ? j : c[s];
c = c[E](0, j);
if (dd[m](c[E](0, 1)) >= 0) {
b[I] = c[ic](0);
c = c[E](1, c.length)
} else b[I] = va;
c = b[Q] = k(c[E](0, j));
b[w] = k(c / b[H]);
b[w] * b[H] < c && b[w]++
} else {
b[Q] = 0;
b[La] = d[a]
}
c = d[a + 1];
for (e = c[m]("//"); e > 0; e = c[m]("//", e + 2)) {
if (e > 0) if (c[Rb](e - 1, 1) != ">") continue;
h = c[s];
for (o = 0; o < ie[s]; o++) if ((l = c[m](ie[o], e)) >= 0) if (l < h) h = l;
l = c[m](")", e);
o = c[s] - h;
c = c[E](0, e) + f(Ge, J, yd, pa, k(c[E](e + 2, l)), g, c[E](e + 2, h)) + c[E](h, c[s]);
e = c[s] - o
}
b[Cc] = c;
b[fa] = d[a + 2];
b[ga] = d[a + 3];
b[L] = d[a + 4];
b[ba] = d[a + 5];
b[G] = ge;
b[U] = he;
a += 6;
if (a < d[s]) if (!isNaN(d[a])) {
ge = b[G] = d[a];
he = b[U] = d[a + 1];
a += 2
}
for (b[sb] = 0; !isNaN(d[a]);) {
if (d[a][s] >= 0) break;
if (!(c = b[sb])) c = b[sb] = [];
c = c[c[s]] = {};
c[Gc] = d[a];
c[Hc] = d[a + 1];
c[Oa] = d[a + 2];
c[gc] = d[a + 3];
a += 4
}
}
};
clearAutoScroll = function() {
if (Lb) {
ua(Lb);
Lb = 0
}
};
pressScroll = function(a) {
var b, c;
clearAutoScroll();
Ta = 1;
fb = 0;
b = q.all[Ua];
c = q.all[na];
b[ma][Cb] = 1;
ib = a[Db];
qc = a[Eb];
Kb = c[Z]
};
readyScroll = function(a) {
var b, c;
clearAutoScroll();
Ta = 2;
fb = 0;
b = q.all[Ua];
c = q.all[na];
b[ma][Cb] = 1;
ib = a[Db];
qc = a[Eb];
Kb = c[Z]
};
moveMouse = function(a) {
var b;
if (Ta) {
if (a[nc]) a[nc][ma][pc] = oc;
fb |= ib != (b = a[Db]) || qc != a[Eb];
if (Ta == 1) endScroll(a);
else {
a = q.all[na];
b = Jb[m](aniTypev) >= 0 ? Kb + (ib - b) / 40 * a[hb] : Kb + ib - b;
if (b < 0) b = 0;
if (b > a[ea] - a[hb]) b = a[ea] - a[hb];
a[Z] = b
}
}
};
moveScroll = function() {
var a, b;
fb = 1;
a = q.all[Hb];
b = q.all[na];
if (Jb[m](aniTypev) >= 0) {
b = parseInt(b[Z] / b[ea] * (aniNv + 1));
if (b >= aniNv) b = aniNv - 1;
a[Z] = b % aniWv * a[ea] / aniWv;
a[ad] = parseInt(b / aniWv) * a[xa] / aniFloorv
} else a[Z] = b[Z]
};
endScroll = function() {
q.all[Ua][ma][Cb] = 3;
if (!fb && Ta == 2) M[N] = "#H0";
autoScroll(Ib);
Ta = 0
};
autoScroll = function(a) {
var b;
clearAutoScroll();
if (a != Ib) {
if (aniTypev != va) return;
if (!(a = q.all[na])) return;
b = parseInt(a[Z] / a[ea] * (aniNv + 1));
if (b >= aniNv) b = aniNv - 1;
b++;
if (b == aniNv) b = 0;
a[Z] = parseInt(b * a[ea] / (aniNv + 1)) + 1
}
Lb = ta(autoScroll, 1E3)
};
sizingSecond = function() {
$[Gb] && $[Gb] < $[xa] && P[$c]($[ea] - $[hb], $[xa] - $[Gb])
};
pd = f(ye, g, f(ze, g, Ae, g, qd) + f(De, "{od}", 'onunload="{nu}" onload="{onl}" ', "{nu}", "try{if(opener.viWb)opener.viWb=null;}catch(err){}", "{onl}", "if(!" + gb + ")" + gb + "=function(){};", g, rd + xe, g, " var " + gb + "=0," + Fb + "," + Va + ", " + xc + "," + kb + "," + vc + "," + Ja + "," + uc + "," + autoScrollS + " , waitHint=function(){} ;function initScript(){var " +
function() {
var a = pe + "",
b, c;
b = a[m]("{");
b = a[m]("(", b);
c = a[m](")", b);
return a.substring(b + 1, c)
}() + ";sendObjAttribValue=" + sendObjAttribValue + ";reValue=" + zd + ";reValue();" + xc + "=" + readyScroll + ";" + kb + "=" + moveMouse + ";" + vc + "=" + moveScroll + ";" + Ja + "=" + endScroll + ";" + uc + "=" + pressScroll + ";clearAutoScroll=" + clearAutoScroll + ";" + autoScrollS + "=" + autoScroll + ";" + sd + Fb + "=" + sizingSecond + ";" + Va + "=" +
function(a, b) {
if ("interactiveloading" [m](q[bd]) >= 0) ta(Va + "(" + a + "," + b + ");", 200);
else {
P[mc](a, b);
onloadFunction ? ta(gb + "();" + Fb + "();", 100) : ta(sizingSecond, 100)
}
} + ";" + td + "=" +
function(a) {
q[cd] = a
} + ";try{ if (!viewImageRecall) opener.viewImageRecall(window); else viewImageRecall(window); } catch(err) {alert('\uc8c4\uc1a1\ud569\ub2c8\ub2e4. \uc5d0\ub7ec\uc5d0\uc694.');}} initScript(); "));
imageInit = function() {
var a, b, c, d, e, h = M[N];
if (!Za) {
a = Mb;
Za = a[E](0, a[m]("=") + 1)
}
Yb = D >= 300 ? D + 200 : 500;
b = f(za, x, u, y, Yb);
c = oa;
e = "";
for (a = 1; a < da[s]; a++) {
d = da[a];
e += f(Ee, "{eaL}", d[fa], "{eaT}", d[ga], "{eaR}", d[fa] + d[L], "{eaB}", d[ga] + d[ba], J, a)
}
if (h[m](jc) >= 0 || h[m](va) >= 0 || h[m](Pc) >= 0 || h[m](Qc) >= 0 || h[m](Rc) >= 0) {
Tc = Uc = argumentReceiver;
Oc()
} else {
Gd(f(we, "{apO}", 'name="{meS}" ', "{meS}", "summeryMap_1", g, e));
Gd(f(Fe, "{kT}", c, "{Si}", b, R, Mb, ia, u, ja, D, qb, Sb, Qb, Sb / 100));
$a = q.all.screenAlpha[ma];
Xb = q.all.backStyle;
Qd = q.all.returnSpace;
rc = q.all.ZoomSpace;
B = 0;
Tc();
Oc();
if (q.all && "attachEvent" in q) q.attachEvent("onpropertychange", eb);
else P.onhashchange = eb
}
};
waitHint = function(a) {
A = M[N] = "#H" + a;
hc()
};
waitZoom = function(a) {
A = M[N] = "#H" + B + "Z" + a;
hc()
};
viewImageRecall = function(a) {
viWb = a;
if (viewOrder) {
viewOrder = 0;
sendObjAttribValue(viWb, tb, viewOrderSet[tb], ub, viewOrderSet[ub], vb, viewOrderSet[vb], wb, viewOrderSet[wb]);
viWb[wa].all.woutput[innerHTML] = viewOrderSet[innerHTML];
viWb[autoScrollS]()
}
};
waitSummery = function(a, b) {
A = M[N] = "#H" + a + b;
hc()
};
Cd = function(a) {
a = da[a];
ue(a[La], a[G], a[U])
};
Dd = function(a) {
var b = da[a],
c = b[La],
d = b[G],
e = b[U];
a = b[w];
var h = b[H],
l = b[Q];
b = b[I];
var o, j = k(e / h),
r, z, v;
j * h < e && j++;
r = "";
if (aa[m](b) >= 0) {
for (o = 0; o < h; o++) {
z = o * d;
v = k(o * e / h);
r += f(ke, Ca, v, Da, (o + 1) * a > l ? k(d * (l - o * a) / a) : d, Ea, v + j, Fa, 0, Ha, -v, Ga, z)
}
viewOrderSet[innerHTML] = f(ha, x, k(d / a * (aa[m](b) >= 0 ? l : a)), y, k(j * (aa[m](b) >= 0 ? 1 : h)), g, r, ia, d, ja, e, R, (c[Rb](0, 7) != "http://" ? Za : "") + c)
} else {
r += f(ke, Ca, 0, Da, d, Ea, e, Fa, 0, Ga, 0, Ha, 0);
viewOrderSet[innerHTML] = f(ha, x, d / a, y, j + sc, g, f(ca, V, t + tc + Jd + Nb, Ob, uc + C + ";", id, kb + C + ";", lb, Ja + C + ";", n, oa + mb, g, ca, V, Ka + Kd + t, W, na, jd, vc + C + ";", n, Ld, Xa, "2", x, k(d / a), y, j + sc, g, ha, x, k(d / a * l), y, j, g, Pb, nb, 0, ob, 0, pb, wc, Ia, k(d / a * l), Aa, j, g, "") + f(ca, V, t + Ka + tc + Nb + Md + Nd, Ob, xc + C + ";", lb, Ja + C + ";", kd, kb + C + ";", ld, Ja + C + ";", W, Ua, n, oa + mb + Od, g, ca, V, t + Ka, W, Hb, n, za, Xa, "3", x, d / a, y, j, g, f(ha, x, k(d / a * (aa[m](b) >= 0 ? l : a)), y, k(j * (aa[m](b) >= 0 ? 1 : h)), g, r, ia, d, ja, e), R, (c[Rb](0, 7) != "http://" ? Za : "") + c))
}
sendObjAttribValue(viewOrderSet, tb, l, ub, h, vb, a, wb, b);
viewOrder = 1;
c = Wd(c, d / a, j);
if (viWb) {
viewOrder = 0;
sendObjAttribValue(viWb, tb, l, ub, h, vb, a, wb, b);
c[innerHTML] = viewOrderSet[innerHTML];
viWb[autoScrollS]()
}
};
resizing = function() {
P[mc]($[ea], $[xa])
}
}
scriptInit();
...
4)
.. 부분부분을 설명해보자면
function argumentReceiver()
참조(?)될 값들을 받을 널함수입니다.
var 변수로 넘기기 위한 도구(?)로만 사용되죠.
이 함수가 함수 내에 있으면 널함수로 인정되어 이 함수 자체가 사라지게 마련입니다만,
그걸 막기 위해 외부 함수로 아얘 빼돌렸(?)습니다.
function scriptInit()
전체적 초기화 함수입니다.
이 함수 이전에 var 부분이 있는 것은
외부에서 사용해야할 변수들이 많아서죠.
.. 줄이고 줄여서 간신히 저정도 남겨놓은 겁니다.
, imageMaximum=16383, scrollBarHeight=22
scrollBar 를 측정하는 것이 가능하긴 합니다만,
그냥 22px 로 고정했구요,
imageMaximum 부분은
이미지를 웹페이지에 표시할 때 표준(?)으로 할 최대값을 지정한겁니다.
참고로,
image 크기는 저 값을 한계로 잡는다고 하더라도,
저런 이미지가 브라우져 내에서는 여러개 표시 가능합니다.
, length='length'
, substring='substring', substr='substr', write='write', charAt='charAt'
이런 형태의 스트링은 좀 이상해보입니다만,
최적화를 대비한 스트링 변수입니다. (..라고는 하지만, 상수형태의 사용..)
코드 최적화하면 한자, 또는 두자까지 줄어들어
.연계변수명 -> .[명]
형식으로 적용이 가능해지죠. ( 그래서, 넉자 이상의 경우에만 적용시켰다고 보면 됩니다. )
reValue=function ()
새창.. 그러니까, 서브로 만들어(?)올려야 할 창에
함수나 변수값을 초기화하기위한 함수입니다.
내부에서도 쓰기 위해 지정을 하기도 합니다만,
일단 전달용 함수로 보시면 될겁니다.
function onpropertyHash()
hash 값의 변동(주소창에 # 이후 붙는 값이 바뀔 때..) 이벤트를 받는 함수입니다.
function hashing()
hash 변동을 처리할 부분입니다.
.. 살짝(?) 복잡하네요.
sendObjAttribValue=function ()
object 를 직접 선언해도 되긴 합니다만,
object 에 선언값을 부여하고 싶을 때라고 생각해 만들었습니다.
코드 길이를 줄이려고 만든건데,
.. 나름인 것 같습니다.
function replaceAppendAll()
스트링 내에 검색값과 치환값을 적용시키기 위한 함수입니다.
.. 뭐, .replace 함수가 자주 쓰이긴 하니까요.
치환값으로 {치환대표값} 씨리즈를 만들어서 많이 적용했습니다.
나중에 {치환대표값} 씨리즈들은 최종 최적화 이전에 글자수 줄이기를 실행했습니다.
function setTagString(tagNameZone, tagStringZoneName)
부분적으로, 따로(?) 태그 만들기 씨리즈입니다.
스트링에서 바로 전환해서 쓸 수 있다면 더 좋겠습니다만,
그정도의 여유는 갖지 못했습니다.
=function(evt)
Firefox 와 IE 가 공통적으로 받을 수 있는 이벤트 형식입니다.
on---=xxx(event)
이런 형식의 전송이 있으면 Firefox 든 IE 든 유사 방법으로 처리 가능하거든요.
(물론, 각각의 특성에 다시 맞춰줘야하긴 합니다..)
.. 뭐, 덕분에 태그 안쪽이 좀 지저분(?)해졌죠.
function animationVarReceiver()
function animationVarString()
새창에 변수 넘기기 위한 가상함수와 함수입니다.
초기에 나왔던 argumentReceiver() 와 연계되어있죠.
Regular Expression ( IE 기준 RegExp )를 알았다면 함수가 더 쉬웠을텐데요.. 좀 아쉽긴 하네요.
(뭐.. 언젠가(?) 고칠 생각은 하겟죠.)
resizingNewWindow = function(ww, hh)
창 크기를 조정하려는 함수입니다만,
될 때고 있고, 안될 때도 있더라구요..
.. 로딩 속도의 문제인가..라는 생각만 해봅니다.
htmlBODY
새창에 올릴 html 스트링입니다.
줄인다고 줄였는데, 많이 길군요..
function showHint()
이미지와 글귀를 보여줄 모듈입니다.
잡다한 걸 너무 쑤셔넣어서(?), 복잡하네요.
imageInit = function()
이미지 초기화 함수입니다.
summery 부분 빼고는 순서대로 들어가있습니다.
waitHint = function(v)
waitZoom = function(v)
hash 값만 바꾸는 함수들입니다.
그 이후(?)는 onpropertyHash() 가 알아서 하는거죠.
function blankSelf()
새창이 아닌, 현재창에 적용시키기 위한 함수입니다.
hash 값을 받으면 새창을 띄워야할 때도 있긴 한데요,
그걸 방지하려고 만든 함수이기도 하구요,
hash 포함한 복사값을 이중새창 띄우지 않기 위해 만든 함수이기도 합니다.
참고로,
싱글상태에서는 새창에 주소값(hash 포함)을 전송시키지 않습니다.
기존에 가지고 있던 창 내의 함수를 최대한 활용하고 싶어서요.
function blankOpen()
새창을 띄우는 함수입니다.
뭐.. 여러가지 부분을 포함하고 있죠.
viewImageRecall = function()
새창이 띄워졌다고 알렸을 때
callBack 될 함수입니다.
사실, 이 함수가 적용되어야할 부분이 하나 더 있는데
OTL.. 적용 못 시킨 것 같네요.
function viewImage()
function viewImage2()
이미지를 새창에 띄우는 함수 두가지입니다.
하나는 일반 이미지를,
또 하나는 파노라마( 또는 동영상화 )된 이미지를 보여줍니다.
function showZoom()
부분줌업에 대한 함수입니다.
여기에 좀 정성(?)이 들어간게요,
파노라마의 방향에 따라, 그리고 갯수에 따라
어떻게 보여줘야할지 순서 잡기가 힘들더라구요..
뭐, 나름 해결했습니다.
...
5)
.. 기술적으로는
hash 값 받는 방법,
이미지 zoom 처리에 관련해 순서배열,
hash 처리를 최대한 간략화,
새창에 html 기록하기,
새창에 함수내 함수 전송하면서 함수내 변수 전달하기,
최적화를 통해 자주 쓰는 string, object 내 값 이름 최적화하기,
tag 를 앞부터 적어서 기차놀이(트레일링?) 시키기,
최대크기 이미지를 지정해, 이미지를 확대할 때 안보이지 않도록 처리,
(CSS 의 zoom 을 사용하지 않았습니다 = =;.. )
..등등의 기법(?)을
검색도 하고
만들기도 해서 적용했습니다.
...
6)
간신히 코멘트를 달은 셈 칠 수 있는거군요.
내용이 길고,
일반적으로 사용할 만한 부분이 없는 게
이 코멘트들의 허점입니다만..
.. 뭐, 일단 적어는 놨으니
나중에 조금 더 최적화할 날이 오겠죠..
easyBow killofki@.
'image area' 카테고리의 다른 글
CSS] 0.1% zoom 적용될까.. (transform-scale 제외) (0) | 2012.07.06 |
---|---|
overflow:visible] div 의 크기가 영향을 받을지 궁금했어요. (0) | 2012.06.21 |
지도 살짝구현] 만우절 RPG 맵의 이미지를 스크랩했습니다.. 1편. (0) | 2012.06.06 |
scrollBar]..의 두께 측정하기.. (0) | 2012.06.03 |
clip] style="clip:rect(); position:absolute;" 를 이용했을 때.. (0) | 2012.03.30 |