/*****************************************************
* topmenu
* 3/04/2001
*
* a nice little script to create exclusive, slide-out
* menus for ns4, ns6, mozilla, opera, ie4, ie5 on 
* mac and win32. I've got no linux or unix to test on but 
* it should(?) work... 
*
* Revised:
* - 08/29/2002 : added .hideAll()
*
* --youngpup--
*****************************************************/
topmenu.Registry = []
topmenu.aniLen = 300
topmenu.hideDelay = 300
topmenu.minCPUResolution = 10
// constructor
function topmenu(id, dir, left, top, width, height)
{
this.ie = document.all ? 1 : 0
this.ns4 = document.layers ? 1 : 0
this.dom = document.getElementById ? 1 : 0
if (this.ie || this.ns4 || this.dom) {
this.id = id
this.dir = dir
this.orientation = dir == "left" || dir == "right" ? "h" : "v"
this.dirType = dir == "right" || dir == "down" ? "-" : "+"
this.dim = this.orientation == "h" ? width : height
this.hideTimer = false
this.aniTimer = false
this.open = false
this.over = false
this.startTime = 0
this.gRef = "topmenu_"+id
eval(this.gRef+"=this")
topmenu.Registry[id] = this
var d = document
d.write('<style type="text/css">')
d.write('#' + this.id + 'Container { visibility:hidden; ')
//d.write('left:' + left + 'px; ')
d.write('top:' + top + 'px; ')
d.write('overflow:hidden; }')
d.write('#' + this.id + 'Container, #' + this.id + 'Content { position:absolute; ')
d.write('width:' + width + 'px; ')
d.write('height:' + height + 'px; ')
d.write('z-index:1; ')
d.write('clip:rect(0 ' + width + ' ' + height + ' 0); ')
d.write('}')
d.write('</style>')
this.load()
}
}
topmenu.prototype.load = function() {
var d = document
var lyrId1 = this.id + "Container"
var lyrId2 = this.id + "Content"
var obj1 = this.dom ? d.getElementById(lyrId1) : this.ie ? d.all[lyrId1] : d.layers[lyrId1]
if (obj1) var obj2 = this.ns4 ? obj1.layers[lyrId2] : this.ie ? d.all[lyrId2] : d.getElementById(lyrId2)
var temp
if (!obj1 || !obj2) window.setTimeout(this.gRef + ".load()", 100)
else {
this.container = obj1
this.menu = obj2
this.style = this.ns4 ? this.menu : this.menu.style
this.homePos = eval("0" + this.dirType + this.dim)
this.outPos = 0
this.accelConst = (this.outPos - this.homePos) / topmenu.aniLen / topmenu.aniLen 

// set event handlers.
if (this.ns4) this.menu.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT);
this.menu.onmouseover = new Function("topmenu.showMenu('" + this.id + "')")
this.menu.onmouseout = new Function("topmenu.hideMenu('" + this.id + "')")

//set initial state
this.endSlide()
}
}
topmenu.showMenu = function(id)
{
var reg = topmenu.Registry
var obj = topmenu.Registry[id]
if (obj.container) {
obj.over = true
for (menu in reg) if (id != menu) topmenu.hide(menu)
if (obj.hideTimer) { reg[id].hideTimer = window.clearTimeout(reg[id].hideTimer) }
if (!obj.open && !obj.aniTimer) reg[id].startSlide(true)
}
}
topmenu.hideMenu = function(id)
{
var obj = topmenu.Registry[id]
if (obj.container) {
if (obj.hideTimer) window.clearTimeout(obj.hideTimer)
obj.hideTimer = window.setTimeout("topmenu.hide('" + id + "')", topmenu.hideDelay);
}
}
topmenu.hideAll = function()
{
var reg = topmenu.Registry
for (menu in reg) {
topmenu.hide(menu);
if (menu.hideTimer) window.clearTimeout(menu.hideTimer);
}
}

//메뉴 hidden 시킬때 select 메뉴 다시 보이게 하는 코드 삽입부분
topmenu.hide = function(id)
{
var obj = topmenu.Registry[id]
obj.over = false
if (obj.hideTimer) window.clearTimeout(obj.hideTimer)
obj.hideTimer = 0
if (obj.open && !obj.aniTimer) obj.startSlide(false)
var BPselects = document.getElementsByTagName("select");
   for (BPfu=0;BPfu<BPselects.length;BPfu++) {
    BPselects[BPfu].style.visibility="visible";
}
}
topmenu.prototype.startSlide = function(open) {
this[open ? "onactivate" : "ondeactivate"]()
this.open = open
if (open) this.setVisibility(true)
this.startTime = (new Date()).getTime() 
this.aniTimer = window.setInterval(this.gRef + ".slide()", topmenu.minCPUResolution)
}
topmenu.prototype.slide = function() {
var elapsed = (new Date()).getTime() - this.startTime
if (elapsed > topmenu.aniLen) this.endSlide()
else {
var d = Math.round(Math.pow(topmenu.aniLen-elapsed, 2) * this.accelConst)
if (this.open && this.dirType == "-") d = -d
else if (this.open && this.dirType == "+") d = -d
//else if (!this.open && this.dirType == "-") d = -this.dim + d
else d = this.dim + d
this.moveTo(d)
}
}
topmenu.prototype.endSlide = function() {
this.aniTimer = window.clearTimeout(this.aniTimer)
this.moveTo(this.open ? this.outPos : this.homePos)
if (!this.open) this.setVisibility(false)
if ((this.open && !this.over) || (!this.open && this.over)) {
this.startSlide(this.over)
}
}
topmenu.prototype.setVisibility = function(bShow) { 
var s = this.ns4 ? this.container : this.container.style
s.visibility = bShow ? "visible" : "hidden"
}
topmenu.prototype.moveTo = function(p) { 
this.style[this.orientation == "h" ? "left" : "top"] = this.ns4 ? p : p + "px"
}
topmenu.prototype.getPos = function(c) {
return parseInt(this.style[c])
}
topmenu.prototype.onactivate = function() { }
topmenu.prototype.ondeactivate = function() { }

//select 메뉴 감추기
var CAselects = document.getElementsByName("category");
var PRselects = document.getElementsByName("price");
var SCselects = document.getElementsByName("scategory");

function CaSelect() {
  for (CAfu=0;CAfu<CAselects.length;CAfu++) {
   CAselects[CAfu].style.visibility="hidden";
  }
}

function PrSelect() {
  for (PRfu=0;PRfu<PRselects.length;PRfu++) {
   PRselects[PRfu].style.visibility="hidden";
  }
}

function ScSelect() {
  for (SCfu=0;SCfu<SCselects.length;SCfu++) {
   SCselects[SCfu].style.visibility="hidden";
  }
}

//layer 속성값 지정
//레이어가 나올 기준점, 높이시작포인트, 레이어 가로길이, 레이어세로높이
	var menus = [
		new topmenu("menu01", "down", 0, 75, 554, 33),
		new topmenu("menu02", "down", 0, 75, 554, 33),
		new topmenu("menu03", "down", 0, 75, 554, 33),
		new topmenu("menu04", "down", 0, 75, 554, 33),
		new topmenu("menu05", "down", 0, 75, 554, 33),
		new topmenu("menu06", "down", 0, 75, 554, 33)
	]

	for (var i = 0; i < menus.length; i++) {
		menus[i].onactivate = new Function("document.getElementById('act" + i + "').className='active';");
		menus[i].ondeactivate = new Function("document.getElementById('act" + i + "').className='';");
	}