/*********************************************** Á¦ÀÛ : ÃÖ¿µ±Ô (2003. 4. 18) ¹®ÀÇ : http://hooriza.com/ ÆÄÀÏ : HoorizaSelectbox.js ¼³¸í : ¸ð¾çÀ» ¹Ù²Ü¼ö ÀÖ´Â ¼¿·ºÆ® ¹Ú½º ¹«´Ü À̵¿, Àç¹èÆ÷¸¦ ±ÝÇÕ´Ï´Ù ***********************************************/ /* »ç¿ë¹ý : 1) º» ÀÚ¹Ù½ºÅ©¸³Æ® ÆÄÀÏÀ» ¹®¼­¿¡ Æ÷ÇÔ½ÃŲ´Ù ¿¹) 2) body ű×ÀÇ onload, onresize ¼Ó¼º¿¡ ´ÙÀ½°ú °°Àº ³»¿ëÀ» ³Ö¾îÁØ´Ù ¿¹) 3) SELECT ű״ ¹Ýµå½Ã FORM ű׷Π°¨½ÎÀÖ¾î¾ß ÇÑ´Ù ¿¹)
4) ¹Ù²ï ¸ð¾çÀÇ »õ·Î¿î ¼¿·ºÆ® ¹Ú½º°¡ »ý±æ°÷¿¡
½ÄÀ¸·Î DIV ű׸¦ ³Ö¾îÁØ´Ù ¿¹)
5) ¿ø·¡ÀÇ ¼¿·ºÆ® ¹Ú½º¿¡ uselayer="·¹À̾îÀ̸§" ½ÄÀ¸·Î »ç¿ëÇÒ ·¹À̾î À̸§À» ³Ö¾îÁØ´Ù ¿¹) ¼Ó¼º ¼³¸í : ÀÌ ÀÚ¹Ù½ºÅ©¸³Æ®·Î ¸¸µé¾îÁö´Â ¼¿·ºÆ® ¹Ú½ºÀÇ ¸ð¾çÀº ±âº»ÀûÀ¸·Î XP ½ºÅ¸ÀÏÀÇ ¸ð¾çÀ» °¡Áö¸ç, »õ·Î¿î ÇüÅÂÀÇ »ç¿ëÀÚ Á¤ÀÇ ½ºÅ¸ÀÏÀ» °¡Áöµµ·Ï Çϴ°ÍÀº SELECT ű׿¡ Ư¼öÇÑ ¼Ó¼ºÀ» ÁÜÀ¸·Î½á °¡´ÉÇÏ´Ù. ¼Ó¼ºÀº ´ë¼Ò¹®ÀÚ ¸¦ ±¸º°ÇÏÁö ¾Ê´Â´Ù. width : ¼¿·ºÆ® ¹Ú½ºÀÇ °¡·ÎÅ©±â¸¦ ¼³Á¤ height : ¼¿·ºÆ® ¹Ú½º¸¦ Ŭ¸¯ÇßÀ»¶§ µå·Ó´Ù¿îµÇ´Â ¾ÆÀÌÅÛ ¸®½ºÆ® ¹Ú½ºÀÇ ¼¼·ÎÅ©±â¸¦ ¼³Á¤ rollupimage : ¼¿·ºÆ® ¹Ú½º°¡ Roll up µÇ¾úÀ»¶§ÀÇ ÀϹÝÀûÀÎ ¹öư À̹ÌÁö rollupoverimage : ¼¿·ºÆ® ¹Ú½º°¡ Roll up µÇ¾ú°í ¸¶¿ì½º¸¦ ¿Ã·ÈÀ»¶§ ¹öư À̹ÌÁö rolluppushimage : ¼¿·ºÆ® ¹Ú½º°¡ Roll up µÇ¾ú°í ¹öưÀ» ´­·¶À»¶§ À̹ÌÁö dropdownimage : ¼¿·ºÆ® ¹Ú½º°¡ Drop down µÇ¾úÀ»¶§ÀÇ ÀϹÝÀûÀÎ ¹öư À̹ÌÁö dropdownoverimage : ¼¿·ºÆ® ¹Ú½º°¡ Drop down µÇ¾ú°í ¸¶¿ì½º¸¦ ¿Ã·ÈÀ»¶§ ¹öư À̹ÌÁö dropdownpushimage : ¼¿·ºÆ® ¹Ú½º°¡ Drop down µÇ¾ú°í ¹öưÀ» ´­·¶À»¶§ À̹ÌÁö boxstyle : ¼¿·ºÆ® ¹Ú½ºÀÇ ½ºÅ¸ÀÏ boxclass : ¼¿·ºÆ® ¹Ú½ºÀÇ ½ºÅ¸ÀÏÀ» ´ã°í ÀÖ´Â CSS Ŭ·¡½º ÁöÁ¤ liststyle : ¾ÆÀÌÅÛ ¸®½ºÆ® ¹Ú½ºÀÇ ½ºÅ¸ÀÏ listclass : ¾ÆÀÌÅÛ ¸®½ºÆ® ¹Ú½ºÀÇ ½ºÅ¸ÀÏÀ» ´ã°í ÀÖ´Â CSS Ŭ·¡½º ÁöÁ¤ itemstyle : ¾ÆÀÌÅÛÀÇ ½ºÅ¸ÀÏ itemclass : ¾ÆÀÌÅÛÀÇ ½ºÅ¸ÀÏÀ» ´ã°í ÀÖ´Â CSS Ŭ·¡½º ÁöÁ¤ fontstyle : ÆùÆ®ÀÇ ½ºÅ¸ÀÏ fontclass : ÆùÆ®ÀÇ ½ºÅ¸ÀÏÀ» ´ã°í ÀÖ´Â CSS Ŭ·¡½º ÁöÁ¤ buttonstyle : ¹öưÀÇ ½ºÅ¸ÀÏ buttonclass : ¹öưÀÇ ½ºÅ¸ÀÏÀ» ´ã°í ÀÖ´Â CSS Ŭ·¡½º ÁöÁ¤ color : ¾ÆÀÌÅÛÀÇ ±ÛÀÚ»ö bgcolor : ¾ÆÀÌÅÛÀÇ ¹è°æ»ö selcolor : ¾ÆÀÌÅÛÀÌ ¼±ÅõǾúÀ»¶§ ±ÛÀÚ»ö selbgcolor : ¾ÆÀÌÅÛÀÌ ¼±ÅõǾúÀ»¶§ ¹è°æ»ö ÀÌÀü ¹öÁ¯¿¡ ºñÇØ ¹Ù²ï ³»¿ë : 1) itemstyle °ú itemclass ¼Ó¼ºÀÌ °¢°¢ itemstyle, fontstyle °ú itemclass, fontclass ¼Ó¼ºÀ¸·Î ³ª´µ¾ú½À´Ï´Ù. »ç¿ë¿¡ ±¸ºÐÀ» ÇØÁÖ¼Å¾ß ÇÕ´Ï´Ù. 2) ½ºÅ©¸³Æ®¸¦ »ç¿ëÇϴµ¥¿¡ ÇÊ¿äÇÑ ±×¸²ÆÄÀÏ spacer.gif °¡ Ãß°¡µÇ¾ú½À´Ï´Ù. 3) ¸®½ºÆ®°¡ ¿­·ÁÀÖÀ»¶§ ´Ù¸¥ °÷À» Ŭ¸¯ÇÏ¸é ¸®½ºÆ®°¡ ´ÝÈü´Ï´Ù. 4) ¼¿·ºÆ®¹Ú½º¿¡ Æ÷Ä¿½º¸¦ ÁÙ ¼ö ÀÖ°Ô µÇ¾ú°í Æ÷Ä¿½º°¡ ÁÖ¾îÁø »óÅ¿¡¼­ À§, ¾Æ·¡¹æÇâŰ·Î Ç׸ñÀ» ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù. */ var sbarray = new Array; var defaultitemstyle = "padding:3 3 1 3px; cursor:default;"; var defaultfontstyle = "font-family:±¼¸²; font-size:12px;"; var defaultchooseboxstyle = "border:1px solid #7F9DB9; border-width:0 1 1 1;"; var defaultselectedboxstyle = "border:1 solid #7F9DB9; padding:1px;"; function loadSelectBox() { for (var i = 0; i < document.forms.length; i++) { var theform = document.forms[i]; for (var j = 0; j < document.forms[i].length; j++) { var control = document.forms[i][j]; if (control.type == "select-one" && control.getAttribute("USELAYER") && control.getAttribute("NAME")) { control.style.visibility = "hidden"; control.style.display = "none"; addSelectBox(control.getAttribute("USELAYER"), "document.forms["+i+"]."+control.getAttribute("NAME")); } } } for (var i = 0; i < sbarray.length; i++) loadObject(i); } function moveSelectBox() { for (var i = 0; i < sbarray.length; i++) moveObject(i); } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function document.onclick() { var eventobj = window.event.srcElement; if (!eventobj.getAttribute("hooriza")) // ´Ù¸¥°÷À» Ŭ¸¯ÇßÀ»¶§ { closeSelectBoxes(); } } function addSelectBox(sboxtext, sseltext) { sbarray[sbarray.length] = new Array(sboxtext, sseltext); } function initProperties() { var properties = new Array; properties["itemstyle"] = ""; properties["fontstyle"] = ""; properties["boxstyle"] = ""; properties["buttonstyle"] = ""; properties["liststyle"] = ""; properties["itemclass"] = ""; properties["itemfontclass"] = ""; properties["boxclass"] = ""; properties["buttonclass"] = ""; properties["listclass"] = ""; properties["rollimg"] = "/admin/images/xproll.gif"; properties["rolloverimg"] = "/admin/images/xproll_.gif"; properties["rollpushimg"] = "/admin/images/xproll__.gif"; properties["dropimg"] = "/admin/images/xpdrop.gif"; properties["dropoverimg"] = "/admin/images/xpdrop_.gif"; properties["droppushimg"] = "/admin/images/xpdrop__.gif"; properties["fgcolor"] = "windowtext"; properties["bgcolor"] = "window"; properties["fgselcolor"] = "highlighttext"; properties["bgselcolor"] = "highlight"; return properties; } function getProperties(objindex) { var properties = initProperties(); properties["sboxtext"] = sbarray[objindex][0]; properties["sseltext"] = sbarray[objindex][1]; eval("var ssel = "+properties["sseltext"]+";"); properties["itemstyle"] = (ssel.getAttribute("ITEMSTYLE") ? ssel.getAttribute("ITEMSTYLE") : properties["itemstyle"]); properties["fontstyle"] = (ssel.getAttribute("FONTSTYLE") ? ssel.getAttribute("FONTSTYLE") : properties["fontstyle"]); properties["boxstyle"] = (ssel.getAttribute("BOXSTYLE") ? ssel.getAttribute("BOXSTYLE") : properties["boxstyle"]); properties["buttonstyle"] = (ssel.getAttribute("BUTTONSTYLE") ? ssel.getAttribute("BUTTONSTYLE") : properties["buttonstyle"]); properties["liststyle"] = (ssel.getAttribute("LISTSTYLE") ? ssel.getAttribute("LISTSTYLE") : properties["liststyle"]); properties["itemclass"] = (ssel.getAttribute("ITEMCLASS") ? ssel.getAttribute("ITEMCLASS") : properties["itemclass"]); properties["itemfontclass"] = (ssel.getAttribute("ITEMFONTCLASS") ? ssel.getAttribute("ITEMFONTCLASS") : properties["itemfontclass"]); properties["boxclass"] = (ssel.getAttribute("BOXCLASS") ? ssel.getAttribute("BOXCLASS") : properties["boxclass"]); properties["buttonclass"] = (ssel.getAttribute("BUTTONCLASS") ? ssel.getAttribute("BUTTONCLASS") : properties["buttonclass"]); properties["listclass"] = (ssel.getAttribute("LISTCLASS") ? ssel.getAttribute("LISTCLASS") : properties["listclass"]); if (ssel.getAttribute("ROLLUPIMAGE")) { properties["rollimg"] = ssel.getAttribute("ROLLUPIMAGE"); properties["rolloverimg"] = ssel.getAttribute("ROLLUPIMAGE"); properties["rollpushimg"] = ssel.getAttribute("ROLLUPIMAGE"); } if (ssel.getAttribute("ROLLUPOVERIMAGE")) { properties["rolloverimg"] = ssel.getAttribute("ROLLUPOVERIMAGE"); properties["rollpushimg"] = ssel.getAttribute("ROLLUPOVERIMAGE"); } properties["rollpushimg"] = (ssel.getAttribute("ROLLUPPUSHIMAGE") ? ssel.getAttribute("ROLLUPPUSHIMAGE") : properties["rollpushimg"]); if (ssel.getAttribute("DROPDOWNIMAGE")) { properties["dropimg"] = ssel.getAttribute("DROPDOWNIMAGE"); properties["dropoverimg"] = ssel.getAttribute("DROPDOWNIMAGE"); properties["droppushimg"] = ssel.getAttribute("DROPDOWNIMAGE"); } if (ssel.getAttribute("DROPDOWNOVERIMAGE")) { properties["dropoverimg"] = ssel.getAttribute("DROPDOWNOVERIMAGE"); properties["droppushimg"] = ssel.getAttribute("DROPDOWNOVERIMAGE"); } properties["droppushimg"] = (ssel.getAttribute("DROPDOWNPUSHIMAGE") ? ssel.getAttribute("DROPDOWNPUSHIMAGE") : properties["droppushimg"]); properties["fgcolor"] = (ssel.getAttribute("COLOR") ? ssel.getAttribute("COLOR") : properties["fgcolor"]); properties["bgcolor"] = (ssel.getAttribute("BGCOLOR") ? ssel.getAttribute("BGCOLOR") : properties["bgcolor"]); properties["fgselcolor"] = (ssel.getAttribute("SELCOLOR") ? ssel.getAttribute("SELCOLOR") : properties["fgselcolor"]); properties["bgselcolor"] = (ssel.getAttribute("SELBGCOLOR") ? ssel.getAttribute("SELBGCOLOR") : properties["bgselcolor"]); return properties; } function loadObject(objindex) { var sboxdata = ""; var property = getProperties(objindex); eval("var ssel = "+property["sseltext"]+";"); eval("var sbox = "+property["sboxtext"]+";"); var sbwidth = (ssel.width ? parseInt(ssel.width) : 0); var selectedindex = (ssel.selectedIndex < 0 ? 0 : ssel.selectedIndex); var innertext = ssel.options[selectedindex].text; var sselname = ssel.getAttribute("name"); sboxdata += ""; sboxdata += ""; sboxdata += "
"; sboxdata += ""; sboxdata += "
"; sboxdata += ""; sboxdata += "
"; sboxdata += "
"; sboxdata += ""; sboxdata += "
"; sbox.innerHTML = sboxdata; setCaption(objindex, innertext); setItems(objindex); } function moveObject(objindex) { var property = getProperties(objindex); eval("var sboxlayer = "+property["sboxtext"]+"_layer;"); if (sboxlayer.style.visibility == "visible") { sboxlayer.style.display = "none"; sboxlayer.style.display = "block"; } } function setSelectBoxColor(objindex, fgcolor, bgcolor) { var property = getProperties(objindex); eval("var sselcaption = "+property["sseltext"]+"_caption;"); eval("var sselcaptionbg = "+property["sboxtext"]+"_captionbg;"); sselcaption.style.backgroundColor = bgcolor; sselcaption.style.color = fgcolor; sselcaptionbg.style.backgroundColor = bgcolor; sselcaptionbg.style.color = fgcolor; } function pressKey(objindex) { var property = getProperties(objindex); eval("var ssel = "+property["sseltext"]+";"); eval("var sboxlayer = "+property["sboxtext"]+"_layer;"); if (event.keyCode != 38 && event.keyCode != 40) return true; if (event.keyCode == 38) // À­ ¹æÇâŰ { if (ssel.selectedIndex > 0) ssel.selectedIndex -= 1; } else if (event.keyCode = 40) // ¾Æ·¡ ¹æÇâŰ { if (ssel.selectedIndex < ssel.length - 1) ssel.selectedIndex += 1; } if (sboxlayer.style.visibility == "visible") mouseOverItem(objindex, ssel.selectedIndex) setCaption(objindex, ssel.options[ssel.selectedIndex].text); return false; } function setItems(objindex) { var sboxlayerdata = ""; var property = getProperties(objindex); eval("var ssel = "+property["sseltext"]+";"); eval("var sboxlayer = "+property["sboxtext"]+"_layer;"); var itemlength = ssel.length; var sbwidth = (ssel.width ? parseInt(ssel.width) : 0); var sbheight = (ssel.height ? parseInt(ssel.height) : 0); for (var i = 0; i < itemlength; i++) { sboxlayerdata += "
"+ssel.options[i].text+"
"; } sboxlayer.style.width = sbwidth; sboxlayer.style.height = sbheight; sboxlayer.innerHTML = sboxlayerdata; } function mouseOverItem(objindex, itemindex) { var property = getProperties(objindex); eval("var howmany = "+property["sseltext"]+".length;"); for (var i = 0; i < howmany; i++) { eval("var layeritem = "+property["sboxtext"]+"_layer_item"+i+";"); layeritem.style.backgroundColor = property["bgcolor"]; layeritem.style.color = property["fgcolor"]; } eval("var layeritem = "+property["sboxtext"]+"_layer_item"+itemindex+";"); layeritem.style.backgroundColor = property["bgselcolor"]; layeritem.style.color = property["fgselcolor"]; layeritem.focus(); } function buttonOver(objindex, over) { var property = getProperties(objindex); eval("var sboxlayer = "+property["sboxtext"]+"_layer;"); eval("var sselbutton = document."+property["sboxtext"]+"button;"); if (sboxlayer.style.visibility == "visible") { if (over == true) sselbutton.src = property["dropoverimg"]; else sselbutton.src = property["dropimg"]; } else { if (over == true) sselbutton.src = property["rolloverimg"]; else sselbutton.src = property["rollimg"]; } } function buttonDown(objindex, down) { var property = getProperties(objindex); eval("var sboxlayer = "+property["sboxtext"]+"_layer;"); eval("var sselbutton = document."+property["sboxtext"]+"button;"); if (sboxlayer.style.visibility == "visible") { if (down == true) sselbutton.src = property["droppushimg"]; else sselbutton.src = property["dropimg"]; } else { if (down == true) sselbutton.src = property["rollpushimg"]; else sselbutton.src = property["rollimg"]; } } function giveFocus(objindex) { var property = getProperties(objindex); eval("var sselcaption = "+property["sseltext"]+"_caption;"); sselcaption.focus(); } function clickButton(objindex) { var property = getProperties(objindex); eval("var ssel = "+property["sseltext"]+";"); eval("var sboxlayer = "+property["sboxtext"]+"_layer;"); eval("var sselcaption = "+property["sseltext"]+"_caption;"); eval("var sselbutton = document."+property["sboxtext"]+"button;"); if (sboxlayer.style.visibility != "visible") { closeSelectBoxes(); sboxlayer.style.display = "block"; if (typeof(swipe) == "function") { sboxlayer.filters.alpha.opacity = 0 sboxlayer.style.visibility = "visible"; mouseOverItem(objindex, ssel.selectedIndex); setTimeout("swipe("+property["sboxtext"]+"_layer, 2);",1); // The span must be rendered before } else { sboxlayer.filters.alpha.opacity = 100; sboxlayer.style.visibility = "visible"; mouseOverItem(objindex, ssel.selectedIndex); } sselbutton.src = property["dropoverimg"]; } else { sboxlayer.style.display = "none"; sboxlayer.style.visibility = "hidden"; sselbutton.src = property["rolloverimg"]; giveFocus(objindex); } } function closeSelectBoxes() { for (var i = 0; i < sbarray.length; i++) { var property = getProperties(i); eval("var sboxlayer = "+property["sboxtext"]+"_layer;"); eval("var sselbutton = document."+property["sboxtext"]+"button;"); if (sboxlayer.style.visibility == "visible") { sboxlayer.style.display = "none"; sboxlayer.style.visibility = "hidden"; sselbutton.src = property["rolloverimg"]; } } } function selectItem(objindex, index) { var property = getProperties(objindex); eval("var ssel = "+property["sseltext"]+";"); eval("var sbox = "+property["sboxtext"]+";"); ssel.selectedIndex = index; clickButton(objindex); setCaption(objindex, ssel.options[ssel.selectedIndex].text); } function setCaption(objindex, text) { var property = getProperties(objindex); eval("var sselcaption = "+property["sseltext"]+"_caption;"); eval("var sselrealcaption = "+property["sboxtext"]+"_realcaption;"); sselrealcaption.innerHTML = text+""; sselcaption.style.height = sselrealcaption.offsetHeight; }