// JavaScript Document

/*
TIPSTER v3.1 RC (c) 2001-2004 Angus Turnbull
Altering this notice or redistributing this file is prohibited.
*/

var isDOM=document.getElementById?1:0,
isIE=document.all?1:0,
isNS4=navigator.appName=='Netscape'&&!isDOM?1:0,
isOp=self.opera?1:0,
isDyn=isDOM||isIE||isNS4;

function getRef(i, p)
{
p=!p?document:p.navigator?p.document:p;
return isIE ? p.all[i] :
  isDOM ? (p.getElementById?p:p.ownerDocument).getElementById(i) :
  isNS4 ? p.layers[i] : null;
};

function getSty(i, p)
{
var r=getRef(i, p);
return r?isNS4?r:r.style:null;
};

if (!self.LayerObj) var LayerObj = new Function('i', 'p',
'this.ref=getRef(i, p); this.sty=getSty(i, p); return this');
function getLyr(i, p) { return new LayerObj(i, p) };

function LyrFn(n, f)
{
LayerObj.prototype[n] = new Function('var a=arguments,p=a[0],px=isNS4||isOp?0:"px"; ' +
  'with (this) { '+f+' }');
};
LyrFn('x','if (!isNaN(p)) sty.left=p+px; else return parseInt(sty.left)');
LyrFn('y','if (!isNaN(p)) sty.top=p+px; else return parseInt(sty.top)');
LyrFn('w','if (p) (isNS4?sty.clip:sty).width=p+px; ' +
'else return (isNS4?ref.document.width:ref.offsetWidth)');
LyrFn('h','if (p) (isNS4?sty.clip:sty).height=p+px; ' +
'else return (isNS4?ref.document.height:ref.offsetHeight)');
LyrFn('vis','sty.visibility=p');
LyrFn('write','if (isNS4) with (ref.document){write(p);close()} else ref.innerHTML=p');
LyrFn('alpha','var f=ref.filters,d=(p==null),o=d?"inherit":p/100; if (f) {' +
'if (!d&&sty.filter.indexOf("alpha")==-1) sty.filter+=" alpha(opacity="+p+")"; ' +
'else if (f.length&&f.alpha) with(f.alpha){if(d)enabled=false;else{opacity=p;enabled=true}} }' +
'else if (isDOM)sty.opacity=sty.MozOpacity=o');

if (!self.page) var page = { win:self, minW:0, minH:0, MS:isIE&&!isOp };

page.db = function(p) { with (this.win.document) return (isDOM?documentElement[p]:0)||body[p]||0 };

page.winW=function() { with (this) return Math.max(minW, MS ? db('clientWidth')-32 : win.innerWidth-32) };
page.winH=function() { with (this) return Math.max(minH, MS ? db('clientHeight') : win.innerHeight) };

page.scrollX=function() { with (this) return MS ? db('scrollLeft')-180 : win.pageXOffset-180 };
page.scrollY=function() { with (this) return MS ? db('scrollTop')+20 : win.pageYOffset+20 };


function TipObj(myName)
{
// Holds the properties the functions above use.
this.myName = myName;
this.template = '';
this.tips = new Array();

this.parentObj = null;
this.div = null;
this.actTip = '';
this.showTip = false;
this.xPos = this.yPos = this.sX = this.sY = this.mX = this.mY = 0;

this.trackTimer = this.fadeTimer = 0;
this.alpha = 0;
this.doFades = true;
this.minAlpha = 0;
this.maxAlpha = 100;
this.fadeInSpeed = 30;
this.fadeOutSpeed = 30;
this.tipStick = 1;
this.showDelay = 50;
this.hideDelay = 250;
this.IESelectBoxFix = 0;

// Add to list of tip objects.
TipObj.list[myName] = this;
};

// List of created tip objects.
TipObj.list = [];

// A quick reference to speed things up.
var ToPt = TipObj.prototype;



// Track and record the mouse positiong and page scroll co-ordinates.
ToPt.track = function(evt) { with (this)
{
// A quick patch to stop IE dying with the script in the <head>.
if (!isIE || document.body)
{
  // Reference the correct event object.
  evt=evt||window.event;

  // Figure out the mouse co-ordinates and call the position function.
  // Also set sX and sY as the scroll position of the document.
  sX = page.scrollX();
  sY = page.scrollY();
  mX = isNS4 ? evt.pageX : sX + evt.clientX;
  mY = isNS4 ? evt.pageY : sY + evt.clientY;

  // If we've set tip tracking, call the position function.
  if (tipStick == 1) position();
}
}};

// Called onmousemove by track() and also by show() to reposition the active tip.
// Passing 'true' forces a complete reposition regardless of tip type.
ToPt.position = function(forcePos) { with (this)
{
// Can't position a tip if there isn't one available...
if (!actTip) return;

// Pull the window sizes from the page object.
// In NS we size down the window a little as it includes scrollbars.
var wW = page.winW(), wH = page.winH();
if (!isIE||isOp) { wW-=16; wH-=16 }

// Pull the compulsory information out of the tip array.
var t=tips[actTip], tipX=eval(t[0]), tipY=eval(t[1]), tipW=div.w(), tipH=div.h(), adjY = 1;

// Add mouse position onto relatively positioned tips.
if (typeof(t[0])=='number') tipX += mX;
if (typeof(t[1])=='number') tipY += mY;

// Check the tip is not within 5px of the screen boundaries.
if (tipX + tipW + 5 > sX + wW) tipX = sX + wW - tipW - 5;
if (tipY + tipH + 5 > sY + wH) tipY = sY + wH - tipH - 5;
if (tipX < sX + 5) tipX = sX + 5;
if (tipY < sY + 5) tipY = sY + 5;

// If the tip is currently invisible, show at the calculated position.
// Also do this if we're passed the 'forcePos' parameter.
if ((!showTip && (doFades ? !alpha : true)) || forcePos)
{
  xPos = tipX;
  yPos = tipY;
}

// Otherwise move the tip towards the calculated position by the stickiness factor.
// Low stickinesses will result in slower catchup times.
xPos += (tipX - xPos) * tipStick;
yPos += (tipY - yPos) * tipStick;

div.x(xPos);
div.y(yPos);
return;
}};


// Called by the show() function when a new tip is being shown.
ToPt.replaceContent = function(tipN) { with (this)
{
// Remember this tip number as active, for the other functions.
actTip = tipN;

// Set tip's onmouseover and onmouseout handlers for non-floating tips.
if (tipStick == parseInt(tipStick))
{
  var rE = '';
  if (isNS4)
  {
   div.ref.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT);
   rE = '; return this.routeEvent(evt)';
  }
  // Remember to pass parent reference if needed, to maintain nesting rules.
  div.ref.onmouseover = new Function('evt', myName+'.show("' + tipN + '"' +
   (parentObj ? ','+parentObj.myName : '') + ')' + rE);
  div.ref.onmouseout = new Function('evt', myName + '.hide()' + rE);
}

// Go through and replace %0% with the array's 0 index, %1% with tips[tipN][1] etc...
var str = template;
for (var i = 0; i < tips[tipN].length; i++)
  str = str.replace(new RegExp('%'+i+'%', 'g'), tips[tipN][i]);

// Optional IE5.5+ SELECT box fix. Ouch. This is really dirty. IE does deserve it, though...
if (window.createPopup && IESelectBoxFix)
{
  // In case you're wondering, expression() is a great IE hack that I'm using to auto-set the
  // IFRAME's height equal to its parent. And the content is in there twice -- once to set the
  // div's dimensions, and again to actually show it within a filter.
  var filt = 'filter: progid:DXImageTransform.Microsoft.Alpha(opacity=';
  str += '<iframe src="about:blank" style="position: absolute; left: 0px; top: 0px; ' +
   'height: expression(' + myName + '.div.h()); z-index: 1; border: none; ' + filt + '0)"></iframe>' +
   '<div style="position: absolute; left: 0px; top: 0px; z-index: 2; ' + filt + '100)">' +
   str + '</div>';
}

// Write the proper content... the last <br> strangely helps IE5/Mac...?
// IE4 requires a small width set otherwise tip divs expand to full body size.
// We've hardcoded that inline, for decent browsers reset it to 'auto' like we should.
// However 'decent' does not include Opera 7, which is quite buggy in this regard.
if (isDOM&&!isOp) div.sty.width = 'auto';
div.write(str + (isIE&&!isOp&&!window.external ? '<small><br /></small>' : ''));

// Place it somewhere onscreen - pass true to force a complete reposition.
position(true);
}};


// Called inline to show tips and cancel pending hides, passed a tip name (compulsory)
// and an optional parent tip object reference for nesting tips.
ToPt.show = function(tipN, par) { with (this)
{
if (!isDyn) return;

// Clear any pending hides.
clearTimeout(fadeTimer);

// If this tip is nested, record (or reset) the parent and call its show() function.
// This will recurse back up the tip tree until it reaches the top.
parentObj = par;
if (par) par.show(par.actTip, par.parentObj);

// My layer object we use.
if (!div) div = getLyr(myName + 'Layer');
if (!div) return;

// For non-integer stickiness values, we need to use setInterval to animate the tip,
// if it's 0 or 1 we can just use onmousemove to position it.
clearInterval(trackTimer);
if (tipStick != parseInt(tipStick)) trackTimer = setInterval(myName+'.position()', 50);

// An executable string, to set the tip visibility as true, write new content if needed,
// and then call the fade() function (which reads the showTip value).
var showStr = 'with ('+myName+') { showTip = true; ' +
  (actTip!=tipN ? 'replaceContent("'+tipN+'"); ' : '') + 'fade() }';

// Call that after a short delay or immediately.
// If we have an active tip, just do the content swap now.
if (showDelay && !actTip) fadeTimer = setTimeout(showStr, showDelay);
else eval(showStr);
}};


// Inline tip creation support. Takes a tip name and then tips[] array parameters.
ToPt.newTip = function(tName) { with (this)
{
// Create a new array in the tip object...
if (!tips[tName]) tips[tName] = [];
// ...and then sling the argument data into it, and show the tip.
for (var i = 1; i < arguments.length; i++) tips[tName][i-1] = arguments[i];
show(tName);
return;
}};


// Called onmouseout inline to hide the active tip.
ToPt.hide = function() { with (this)
{
// Cancel any pending timer activity.
clearTimeout(fadeTimer);

// We've got to be a DHTML-capable browser that has a tip currently active.
if (!isDyn || !actTip || !div) return;

// If the mouse position is within the tip boundaries, we know NS4 is telling us stories
// as often it makes hide events unaccompanied by overs or in a weird order.
// Only applies to static tips that we want the user to mouseover...
if (isNS4 && tipStick==0 && xPos<=mX && mX<=xPos+div.w() && yPos<=mY && mY<=yPos+div.h())
  return;

// If this tip is nested, call the 'hide' function of its parent too.
// This will recurse the hide event up the tip hierarchy.
with (tips[actTip]) if (parentObj) parentObj.hide();

// Fade out after a delay so another mouseover can cancel this fade.
// This allows the user to mouseover a static tip before its hides.
fadeTimer = setTimeout('with (' + myName + ') { showTip=false; fade() }', hideDelay);
return;
}};


// Called recursively to manage opacity fading and visibility settings.
ToPt.fade = function() { with (this)
{
// Clear to stop existing fades.
clearTimeout(fadeTimer);

// Show it and optionally increment alpha from minAlpha to maxAlpha or back again.
if (showTip)
{
  div.vis('visible');
  if (doFades)
  {
   alpha += fadeInSpeed;
   if (alpha > maxAlpha) alpha = maxAlpha;
   div.alpha(alpha);
   // Call this function again shortly, fading tip in further.
   if (alpha < maxAlpha) fadeTimer = setTimeout(myName + '.fade()', 75);
  }
}
else
{
  // Similar to before but counting down and hiding at the end.
  if (doFades && alpha > minAlpha)
  {
   alpha -= fadeOutSpeed;
   if (alpha < minAlpha) alpha = minAlpha;
   div.alpha(alpha);
   fadeTimer = setTimeout(myName + '.fade()', 75);
   return;
  }
  div.vis('hidden');
  // Clear the active tip flag so it is repositioned next time.
  actTip = '';
  // Stop any sticky-tip tracking if it's invisible.
  clearInterval(trackTimer);
}
}};

var tipOR=window.onresize, nsWinW=window.innerWidth, nsWinH=window.innerHeight;
document.tipMM = document.onmousemove;

if (isNS4) document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = function(evt)
{
for (var t in TipObj.list) TipObj.list[t].track(evt);
return document.tipMM?document.tipMM(evt):(isNS4?document.routeEvent(evt):true);
};

// Handle NS4 resizing error, don't worry about Opera 5/6 as they can't run this anyway.
window.onresize = function()
{
if (tipOR) tipOR();
if (isNS4 && (nsWinW!=innerWidth || nsWinH!=innerHeight)) location.reload();
};






var docTips = new TipObj('docTips');
with (docTips) {
template = '<table bgcolor="#003366" cellpadding="1" cellspacing="0" width="%2%" border="0">' +
  '<tr><td><table bgcolor="#6699CC" cellpadding="3" cellspacing="0" width="100%" border="0">' +
  '<tr><td class="tipClass">%3%</td></tr></table></td></tr></table>';
tips.mysite = new Array(-75, 15, 150, 'Visit this for updates, help and more info');
tips.welcome = new Array(5, 5, 100, 'Hope you like it...');
tips.useful = new Array(5, 5, 150, 'This can add important context information to any link...');
// This next tip uses a formula to position the tip 110 pixels from the right edge of the screen.
tips.formulae = new Array('page.scrollX() + page.winW() - 110', -20, 100,
  'This tip is always on the right edge...');
tips.format = new Array(5, 5, 150, 'That means <i>italics</i>...<br /><hr />...etc');
}

var staticTip = new TipObj('staticTip');
with (staticTip)
{

// I'm using tables here for legacy NS4 support, but feel free to use styled DIVs.
template = '<table bgcolor="#000000" cellpadding="0" cellspacing="0" width="%2%" border="0">' +
  '<tr><td><table cellpadding="3" cellspacing="1" width="100%" border="0">' +
  '<tr><td bgcolor="#336666" align="center" height="18" class="tipClass">%3%</td></tr>' +
  '<tr><td bgcolor="#009999" align="center" height="*" class="tipClass">%4%</td></tr>' +
  '</table></td></tr></table>';

// HIERARCHIAL TIPS: To call one tip object from within another tip object, make sure you
// pass the a reference to the current object as the second parameter to the show() function.
tips.links = new Array(5, 5, 100, 'Extra Links',
  '- <a href="javascript:alert(\'Useful indeed...\')">Section 1</a> -<br />' +
  '- <a href="#" name="nest1trig" onmouseover="nestTip.show(\'nest1\', staticTip)" ' +
   'onmouseout="nestTip.hide()">NESTED TIP 1 &gt;</a> -<br />' +
  '- <a href="#" name="nest2trig" onmouseover="nestTip.show(\'nest2\', staticTip)" ' +
   'onmouseout="nestTip.hide()">NESTED TIP 2 &gt;</a> -<br />');

tipStick = 0;
}

// Here's the other tip object called by the one above, for hierarchial tips.
var nestTip = new TipObj('nestTip');
with (nestTip)
{
template = '<table bgcolor="#000000" cellpadding="1" cellspacing="0" width="%2%" border="0">' +
  '<tr><td><table bgcolor="#009999" cellpadding="3" cellspacing="0" width="100%" border="0">' +
  '<tr><td class="tipClass">%3%</td></tr></table></td></tr></table>';

tips.nest1 = new Array(10, 0, 90,
  '<a href="javascript:alert(\'A regular popup menu...\')">Relative Position</a>');

// This tip is positioned via formulae based on its parent tip's position...
tips.nest2 = new Array('staticTip.xPos + 95', 'staticTip.yPos + 50', 120,
  '<a href="javascript:alert(\'Nested tip 2\')">Absolutely positioned static tip...</a>');

tipStick = 0;
}

// Here's one illustrating a decimal tipStick value so it floats along behind the cursor.
var stickyTip = new TipObj('stickyTip');
with (stickyTip)
{
template = '<div style="background-color:#FFFFFF; padding:5px; width:%2%px; border:1px solid #667788; text-align:justify; filter:alpha(opacity=90);" class="tipClass">%3%</div>';

tips.s119 = new Array(5, 5, 380, '<p>▶ 119 보수제(119 금속보수제 외 8종) / DIY 에폭시 만능접착제 ◀</p><p>119 보수제는 손으로 반죽이 가능하고 경화가 신속한 에폭시 퍼티로서 1분내에 혼합하여 금속/구리/청동/황동/알루미늄/플라스틱/목재/콘크리트/PVC/CPVC/ABS 등 모든 재질의 보수와 수리를 신속하게 할 수 있습니다.</p>');
tips.lenspia = new Array(5, 5, 360, '<p>♤콘텍트렌즈세척기 렌즈피아Ⅱ♤</p><p>2002년 7월 렌즈피아 업그레이드 렌즈피아Ⅱ</p><p>※ 기존 렌즈피아와 차이점은 세척통1, 바스켓1, 렌즈전용 핀셋이 추가되었으며 고급포장으로 바뀌었습니다.<br />렌즈에 무리를 주지 않는 저주파 측면와류식으로 하드렌즈/소프트렌즈 겸용의 최소형 휴대용 렌즈세척기로 자동세정 후 스포이드를 사용하여 렌즈를 눈에 장착할 수 있는 방식의 위생과 편의성이 돋보이는 획기적인 아이디어 상품! </p>');
tips.etotalbio = new Array(5, 5, 300, '<p>☞ 향기마케팅 바이오미스트(BIOMIST) <br />향분사기/향기분사기 셀프향기관리 에코아로마(토탈21)</p><p>120여종의 천연향기 마케팅향기,인테리어향기,아로마-테라피(AROMA THERAPY),천연허브를 이용한 천연항균제,천연살충제 및 악취제거제 소개 </p>');
tips.pipes = new Array(5, 5, 300, '<p>☞배관보수테이프/배관보수제/파이프보수시스템</p><p>경제적인 배관보수테이프는 빠르고도(5초 안에 활성화되어 10분이내에 문제를 해결) 손쉽게 최고압력 31.6kg/cm2에 달하는 어떤 파이프 누설도 수리할 수 있으며 내구성 또한 탁월합니다.</p>');
tips.elmaels = new Array(5, 5, 300, '<p>▶ELMA 360˚ 전자파차단기&amp;차폐보안기&amp;측정기◀</p><p>엘마 360˚ 입체 전자파 차단기&amp;차폐 보안기&amp;측정기는 연세대학교 의대 의용공학과 연구진과 국내 최고의 전자파 산업체인 Mooil Electronic이 산학협동 연구로 세계 최초의 전자파 완전 차폐 장치를 개발하여 제품화한 상품으로 한국뿐 아니라 미국, 일본의 국제 특허 등록을 마쳤을 분 아니라, 일본 KEC, 한국표준과학연구소, 연세대학교 의과대로부터 제품 인증을 받은 최고의 모니터와 키보드, 마우스, 스피커, 프린터, 본체 등 일체 기기의 전자파를 99.99%에 가깝게 차폐 시키는 세계 유일의 전자파 완전 차폐 기술이 도입된 제 4세대 제품입니다.</p>');
tips.robosol = new Array(5, 5, 400, '<p>♧ 바이오미스트(BIOMIST) 천연살충제 로보졸 분사기SET ♧</p><p>천연살충제와 자동분사시스템이 결합된 신개념 해충퇴치 시스템</p><p>▶SET구성:로보졸 분사기 1대+천연살충제 520ml캔 1개</p><p>▶디스펜서(로보졸캡)특징 </p><ul><li>대용량컴퓨터자동분사시스템</li><li>자동연속 분사기능</li><li>표준 및 강력모드선택(3.5분,7분)</li><li>일정분사량(30ml)</li><li>520ml바이오미스트 에어로졸캔 사용</li><li>휴대용,취급용이</li><li>AAA건전지 3개로 6개월 사용가능</li><li>표준모드로 1일 12시간 작동시 약4개월사용</li><li>표준모드로 1일 24시간 작동시 약2개월사용</li><li>시스템 한대로 약 15-25평 정도를 커버하므로 경제성이 탁월함.</li><li>일반 가정은 1 대의 시스템이면 적당함. </li></ul><p>■ 제조원 : BIOMIST(한국) / ■ 공급원 : 토탈21</p>');
tips.biosonic = new Array(5, 5, 450, '<p>☞바이오소닉(BIOSONIC) 초음파전용젤/아미티에(AMITIE) 피부관리/스킨케어 초음파미용기 전용젤/초음파미용젤/초음파젤</p><p>▶상품 사양</p><p>1) 상품명 : 바이오소닉 초음파전용젤 <br />2) 용량 : 일반형-250ml, 튜브형-200ml, 혼합형, 리필용-200ml, 대용량 펌프형 1,000ml <br />3) 초음파젤 종류 : 5종 </p><p>▶상품 설명</p><p>1) 맛사지가 진행될수록 더욱 부드러워 지며 습기 유지 시간이 매우 길어 중간에 다시 젤을 바를 필요가 없다. <br />2) 초음파 전용젤은 초음파 미용기 사용시 그 효과를 극대화하는데 필수적인 소모품이다 <br />3) 젤은 순수한 물이 주요 성분이므로 부작용이 전혀 없다. <br />4) 초음파는 일반적으로 공기 중에는 잘 전달되지 않으며 물에서 잘 전달되므로 초음파전용젤이 필요하다. <br />5) 젤은 초음파의 진동을 피부속까지 잘 전달해 주기 위한 매개체이다. <br />6) 초음파전용젤이 아닌 다른 젤을 사용할 때는 초음파 전달이 미비하여 초음파 미용 효과가 떨어질 가능성이 있다. </p><p>▷제조원:AMITIE(한국) 공급원:토탈21 </p>');
tips.punk = new Array(5, 5, 300, '<p>♠타이어펑크 수리제 펑크119 ♠ </p><p>≫한글주소2 : 우수상품/이색상품 </p>');
tips.etotalpr = new Array(5, 5, 300, '<p>♧ 압축휴지통/압축쓰레기통 매직파워 ♧ </p><p>압축쓰레기통의 차별화 선언! </p><p>1.쓰레기의 양을 3분의 1이하로 줄일 수 있습니다. </p><p>2.봉투의 찢어짐을 방지합니다. </p><p>3.냄새가 나지않는 쾌적환경 </p><p>날마다 겪게되는 쓰레기 악취와 압축시 찢어지기 쉬운 쓰레기봉투! <br />압축쓰레기통 매직파워로 한꺼번에 해결하세요. </p>');
tips.airrex = new Array(5, 5, 300, '<p>♠헵시바디지텍 AIRREX 차량용 가습기♠</p>');
tips.puppy = new Array(5, 5, 300, '<p>♡애견용품 아이퍼피즈 애완견 목욕장치(애견 목욕욕조) 퍼피배스-</p><p>≫http://아이디어상품.kr≪ </p><p>퍼피배스(PUPPY BATH)는 국내 유일의 애견 목욕장치로써 애견과 애견인을 동시에 만족 시킬 수 있는 실용성과 디자인을 강조한 제품입니다. 혼자서 애완견을 목욕시킬 경우, 애완견을 잡고 기존의 샤워기를 한 손으로 잡아야 하는 등 두 손이 자유롭지 못한 관계로 인하여 어려움이 많습니다. 퍼피배스(Puppy Bath)는 이러한 애완견의 몸동작을 방지하고 기존 샤워기 호스에 쉽게 연결하여 두 손을 사용하여 손쉬운 애완견 목욕이 가능하도록 개발된 애견목욕장치입니다.</p><p>≫한글도메인:아이디어상품.KR / 한글주소2:우수상품 / 이색상품≪ </p>');
tips.finemedi = new Array(5, 5, 300, '<p>♠아이디어상품 다인헬몬 화인메디 자동건강침 금침구♠</p><p>세계 최초 회전하는 자동건강침 </p><p>화인메디 금침구는 현대과학이 탄생시킨 자동건강침으로 손과 발의 경락과 경혈을 자극시켜 주는 금침구입니다. </p><p>400개의 뾰족한 침이 손안에서 막힌 기(氣)를 풀어드립니다!! <br />언제 어느곳이던지 파인메디 금침구로 손에 기(氣)를 풀어 활기찬 삶을 누리세요...!! </p><p>▷금침구 특징 <br />-언제 어느곳에서라도 사용할 수 있는 손쉬운 건강기구 <br />-업무 중 작은 여유시, 공부에 싫증이 날 때, 하루의 업무를 끝내고, 어느 장소를 막론하고 손쉽게 사용할 수 있는 기구 <br />-포켓 속의 건강기구 <br />-각종 운동 전후, 피로감 뒤에, 피로회복에 도움을 줄 수 있는 기구 <br />-부모님의 건강을 배려하는 효도선물 및 판촉물로 좋습니다. </p><p>≫제조원:DAIN MEDICAL(한국) / 공급원:토탈21≪</p>');
tips.hori = new Array(5, 5, 500, '<p>≫호리호리 발광 다이어트 운동기/체조기(DIET GYMNASTIC)≪ </p><p>≫본 제품의 특징 <br />본 제품은 어느 운동기구보다도 운동량이 많으며 사용자가 재미있게 운동할 수 있습니다. <br />본 제품은 2개 1조로 되어있으며 처음에는 1개로 운동하다 차차 적응되면 2개 1조를 이용, 효과적으로 운동할 수 있습니다. <br />본 기구는 유산소 운동기구이기 때문에 심장과 폐기능 강화에 좋으며 특히 팔뚝, 복부, 허벅지, 허리부위를 집중적으로 운동할 수 있어 비만방지 다이어트에 매우 효과적입니다. <br />화인메디 다이어트 체조기는 남녀노소 누구나 쉽고 즐겁게 운동할 수 있도록 개발되었습니다. <br />이 다이어트 체조기는 간단한 동작으로 운동량이 무척 많도록 개발되었습니다. <br />이 다이어트 체조기는 실시 대상에 따라 운동량을 조절할 수 있도록 하였습니다. <br />본인의 나이와 신체조건에 맞춰 동작횟수를 정하십시오. <br />본 다이어트 체조기는 잘 소모되지 않는 지방을 분해하여 탄력있고 균형있는 몸매를 만들어줍니다. </p><p>≫한글인터넷주소1 : 토탈21 <br />≫한글인터넷주소2 : 우수상품 </p>');
tips.dino = new Array(5, 5, 300, '<p>♠3D 공룡모형 조립퍼즐완구♠ </p><p>▷직접 다듬어가며 조립하는 과정에서 실제 고고학자가 된 듯한 발굴체험을 가능하게 해주는 교육적인 장난감! </p>');
tips.gamro = new Array(5, 5, 500, '<p>▷감로수 정수연수기/감로수 플러스 연수기/스윗듀 주방용정수기 </p><p>집에서 온천욕을 즐겨요 ~~<br />피부가 먼저알아요 감로수 정수연수기 좋은 줄 ~~ </p><p>▣ 경수를 연수로 만들어 여성분에게는 화장을 잘 받게 해주며 모공의 노폐물까지 제거해 줌으로써 피부미용에 아주 좋습니다. </p><p>▣ 민감한 영.유아 아이들에게 좋으며, 피부 진무름,알레르기 체질의 피부에도 좋습니다. </p><p>▣ 아토피성 피부염환자에게 더없이 좋으며, 천식이나 알러지등으로 고생하시는 분에게도 좋습니다. </p><p>▣ 비듬 제거도 해줍니다. 탈모현상 예방에 좋습니다. </p><p>▣ 고품격의 디자인과 화려한 디자인, 콤팩트한 모양, 소형화로 욕실의 새로운 분위기를 추구합니다. </p><p>▣ 인체에 유해한 잔류염소를 제거하는데 탁월하며, 녹,납,크롬등 중금속을 제거합니다. </p><p>▣ 설치가 간편하여 누구나 쉽게 설치할 수 있어 설치 A/S를 따로 받을 필요가 없습니다. </p>');
tips.gymnic = new Array(5, 5, 300, '<p>♤ITALY 짐닉볼(다이어트볼/휘트니스볼)!!♤ </p><p>300kg까지 버틸 수 있는 튼튼하고 부드러운 특수 재질로 TV홈쇼핑 히트상품 </p><ul><li>제품구성 : 짐닉플러스볼(지름 65cm), 에어펌프, 제품메뉴얼 <br />* 짐닉플러스볼SET는 BOX에 포장되어 있으며 에어펌프와 제품메뉴얼이 첨부됩니다. </li><li>제 조 원 : 이탈리아 레드라플라스틱 </li><li>원 산 지 : MADE IN ITALY </li><li>재 질 : 특수처리 PVC화합물 </li><li>색 상 : 그린(Green) </li><li>적용분야 : 다이어트, 산모체조, 헬스, 에어로빅, 스포츠클리닉, 재활, 의자대용, 유아체능 등. </li></ul>');
tips.greasecup = new Array(5, 5, 300, '<p>☞펄사루브 자동급유기 및 OPTIMOL 특수윤활유</p>');
tips.idea21 = new Array(5, 5, 300, '<p>≫한글인터넷주소1 : 토탈21 <br />≫한글인터넷주소2 : 우수상품 </p>');
tips.biomist = new Array(5, 5, 300, '<p>☞향기마케팅 바이오미스트(BIOMIST) <br />향분사기/향기분사기 셀프향기관리 에코아로마(토탈21)</p>');
tipStick = 0.2;
}

/*
본문에 집어 넣습니다.
<div id="stickyTipLayer" style="Z-INDEX: 10000; LEFT: 0px; VISIBILITY: hidden; WIDTH: 10px; POSITION: absolute; TOP: 0px"></div>
<a href="#" onMouseOver="stickyTip.show('floating1')" onfocus="blur()" 
onmouseout="stickyTip.hide()">Text</a>
*/
