
function MultiSelectImageMenu(outer, mnuImgcssName, contentDivcssName, imgBasePath, onFiles, offFiles)
{
    this.OuterElem = outer;
    this.onImage = onFiles;
    this.offImage = offFiles;
    this.ImageBase = imgBasePath;
    
    this.menus = GUtil.ElemSByClass(mnuImgcssName, outer, 'img' ); //¸Þ´ºµé..
    
    if(contentDivcssName == null)
        this.contents = null;
    else
        this.contents = GUtil.ElemSByClass(contentDivcssName, outer, 'div' ); //¸Þ´º¼±ÅÃ½Ã º¸¿©Áö´Â ÄÁÅÙÃ÷°¡ µé¾îÀÖ´Â divµé...    
}

MultiSelectImageMenu.prototype.Init = function(holdLastOver, initialSelectBy)
{
    if(this.menus.length==0) return;
    
    for(k=0 ; k<this.menus.length; k++) //¸Þ´º¿¡ mouseover ÀÌº¥Æ® Ãß°¡..
    {
        this.menus[k].onmouseover = this.SelectMenu;
        
        if(holdLastOver == false)
        {//¸¶Áö¸· OnµÈ ¸Þ´º¸¦ À¯Áö½ÃÅ³ÇÊ¿ä°¡ ¾ø´Ù: ¸ÞÀÎ¸Þ´ºµî...
            this.menus[k].onmouseout = this.DeSelectMenu;
        }
        else
        {//¸¶¿ì½º°¡ ºüÁ®³ª°¡´õ¶óµµ ¸¶Áö¸· ¼±ÅÃµÈ°ÍÀÌ ¼±ÅÃµÈ »óÅÂ·Î ÀÖ°Ô ÇÑ´Ù.:(»óÇ°Áø¿­ ÅÇ µî¿¡ »ç¿ëµÈ´Ù.)
        }
        
        this.menus[k].mnObj = this;
    }
    
    //¸ðµç ¸Þ´º¸¦ off·Î ÃÊ±âÈ­ ½ÃÅ²´Ù.    
    for(k=0 ; k<this.menus.length; k++)
    {
        //menu OFF
        this.menus[k].setAttribute('src', this.ImageBase + this.offImage[k]);
        if(this.contents!=null && this.contents != 'undefined') this.contents[k].style.display = 'none';
    }    
    
    if(typeof initialSelectBy == 'undefined' || initialSelectBy == null || initialSelectBy == 'first') //ÃÖÃÊ¿¡´Â 1¹ø ¸Þ´º°¡ ¼±ÅÃµÇµµ·Ï ÇÑ´Ù.
        this.SelectMenu(null, this.menus[0]); 
    else if(initialSelectBy == 'url') //ÃÖÃÊ¿¡¿¡ url¿¡ ¸Â´Â ¸Þ´º¸¦ ¼±ÅÃÇÑ´Ù.
    {
        var curl = window.location.href.toLowerCase();
        
        for(k=0 ; k<this.menus.length; k++)
        {
            var atagurl = GUtil.FindOuterElementByTagName(this.menus[k], 'a');
            atagurl = atagurl.getAttribute('href');
            if(atagurl!= null) atagurl = atagurl.toLowerCase();
            if(curl.indexOf(atagurl)>=0)
            {
                this.offImage[k] = this.onImage[k];
                this.SelectMenu(null, this.menus[k]);
                break;
            }
        }
    }
}

MultiSelectImageMenu.prototype.DeSelectMenu = function DeSelectMenu(evt, src)
{
    if(src == null) //Ã³À½¿¡ ÇÑ¹ø¸¸ src°¡ ÀÖ°í mouser over ÀÏ¶§´Â src´Â Ç×»ó nullÀÌ´Ù.
    {
        evt = (evt) ? evt : ((window.event) ? window.event : "")
        if (evt)
            src = (evt.target) ? evt.target : evt.srcElement;// mouseoverÀÏ¶§ evt ¼Ò½º¸¦ Ã£´Â´Ù.
    }
    
    if(src.mnObj==null) return;
    
    mn = src.mnObj;
    
    if(src==null || typeof mn.menus == 'undefined' || mn.menus == null) return;
    for(k=0 ; k<mn.menus.length; k++)
    {
        if(src == mn.menus[k]) //menu On
        {
            mn.menus[k].setAttribute('src', mn.ImageBase + mn.offImage[k]);
            if(mn.contents!=null && mn.contents != 'undefined') mn.contents[k].style.display = 'none';
        }
    }
}

MultiSelectImageMenu.prototype.SelectMenu = function SelectMenu(evt, src)
{
    if(src == null) //Ã³À½¿¡ ÇÑ¹ø¸¸ src°¡ ÀÖ°í mouser over ÀÏ¶§´Â src´Â Ç×»ó nullÀÌ´Ù.
    {
        evt = (evt) ? evt : ((window.event) ? window.event : "")
        if (evt)
            src = (evt.target) ? evt.target : evt.srcElement;// mouseoverÀÏ¶§ evt ¼Ò½º¸¦ Ã£´Â´Ù.
    }
    
    if(src.mnObj==null) return;
    
    mn = src.mnObj;
    
    if(src==null || typeof mn.menus == 'undefined' || mn.menus == null) return;
    for(k=0 ; k<mn.menus.length; k++)
    {
        if(src == mn.menus[k]) //menu On
        {
            mn.menus[k].setAttribute('src',mn.ImageBase + mn.onImage[k]);
            if(mn.contents != null && mn.contents != 'undefined') mn.contents[k].style.display = 'inline';
        }
        else  //menu OFF
        {
            mn.menus[k].setAttribute('src', mn.ImageBase + mn.offImage[k]);
            if(mn.contents!=null && mn.contents != 'undefined') mn.contents[k].style.display = 'none';
        }
    }
}