/*
	Developer by.LH [Kim Kyu 맨]
	XSelectbox 2.3.1

*/
/*기본 변수선언*/
var XselectArrowSrc;	//오른쪽 화살표이미지
var XselectArrowSrcWidth;	//오른쪽 화살표이미지 width
var XselectArrowSrcheight;	//오른쪽 화살표이미지 height

var XselectOptionLayerCss; // 셀렉트 옵션 레이어 css
var XselectOptionsCss; //셀렉트 옵션 Css
var XselectTopBoxCss; //셀렉트박스 선택 Css
var XselectTopBoxLeftCss;  //상단 셀렉트 레이어 css
var XselectTopBoxArrowCss; // 상단 셀렉트 텍스트 css

var XselectBoxOverColor; // 셀렉트 마우스오버시 배경색
var XselectBoxOutColor; // 셀렉트 마우스아웃시 배경색
var Xspace; // 셀렉트 영역 투명이미지
var XselectBorder; //셀렉트 Border
var XselectOptionsHeight; //셀렉트 옵션들 Height
var XselectOptionHeight; //셀렉트 옵션 Height
var XselectOptionBorderColor; //셀렉트 Option Border color
var XselectTabIndex = 1; //셀렉트 Tabindex
var XselectOptionLinkCss; //셀렉트 옵션 링크 Css

var XselectTextOverColor; // 셀렉트 마우스오버시 글자색
var XselectTextOutColor; // 셀렉트 마우스아웃시 글자색

/*아이디별 타입 설정*/
function XselectBoxType(thisId){
  //기본설정
  Xspace = "/images/common/space.gif"; //셀렉트 영역 투명이미지 경로
  XselectOptionsHeight = 150; //셀렉트 옵션 Height
  XselectOptionHeight = 20; //셀렉트 옵션 박스 Height
  XselectBorder = 5; //셀렉트 Border

  switch (thisId) {
      case 'Type1': 
		XselectBorder = 2;
        XselectOptionBorderColor = "#DCDCDC";
        XselectOptionHeight = 20; //셀렉트 옵션 박스 Height
        XselectArrowSrc = "/images/common/btn_select.jpg";	//오른쪽 화살표이미지
        XselectArrowSrcWidth = 14;	//오른쪽 화살표이미지 width
        XselectArrowSrcheight = 17;	//오른쪽 화살표이미지 height
        XselectTopBoxArrowCss = "background-color:#ffffff;"; //상단 셀렉트 화살표 css
        XselectBoxOverColor = "#999999"; // 셀렉트 마우스오버시 배경색
        XselectBoxOutColor = "#ffffff"; // 셀렉트 마우스아웃시 배경색

        XselectOptionLinkCss = "text-decoration: none;color:#767676;font-size:8pt;font-weight:normal;"; //셀렉트 옵션 링크 Css
        XselectOptionLayerCss = "border:"+XselectBorder+"px solid "+XselectOptionBorderColor+";"; // 셀렉트 옵션 레이어 css (옵션 보더색조정)
        XselectOptionsCss = "background-color:#ffffff;padding:4px 0 0 15px;"; // 셀렉트 옵션 css
        XselectTopBoxCss = "border:"+XselectBorder+"px solid #DCDCDC;background-color:#ffffff;"; // 상단 셀렉트 레이어 css (bg는 공백확인용)
        XselectTopBoxLeftCss = "padding:4px 0 0 5px;_height:15px;color:#767676;vertical-align:middle;font-size:8pt;font-weight:normal;"; // 상단 셀렉트 텍스트 css

		XselectTextOverColor = "#ffffff"; // 셀렉트 마우스오버시 글자색
		XselectTextOutColor = "#767676"; // 셀렉트 마우스아웃시 글자색

      break;
	  case 'Type2': 
		XselectBorder = 2;
        XselectOptionBorderColor = "#DCDCDC";
        XselectOptionHeight = 20; //셀렉트 옵션 박스 Height
        XselectArrowSrc = "/images/common/btn_select.jpg";	//오른쪽 화살표이미지
        XselectArrowSrcWidth = 14;	//오른쪽 화살표이미지 width
        XselectArrowSrcheight = 17;	//오른쪽 화살표이미지 height
        XselectTopBoxArrowCss = "background-color:#ffffff;"; //상단 셀렉트 화살표 css
        XselectBoxOverColor = "#999999"; // 셀렉트 마우스오버시 배경색
        XselectBoxOutColor = "#ffffff"; // 셀렉트 마우스아웃시 배경색

        XselectOptionLinkCss = "text-decoration: none;color:#767676;font-size:8pt;font-weight:normal;"; //셀렉트 옵션 링크 Css
        XselectOptionLayerCss = "border:"+XselectBorder+"px solid "+XselectOptionBorderColor+";"; // 셀렉트 옵션 레이어 css (옵션 보더색조정)
        XselectOptionsCss = "background-color:#ffffff;padding:4px 0 0 15px;"; // 셀렉트 옵션 css
        XselectTopBoxCss = "border:"+XselectBorder+"px solid #DCDCDC;background-color:#ffffff;"; // 상단 셀렉트 레이어 css (bg는 공백확인용)
        XselectTopBoxLeftCss = "padding:4px 0 0 5px;_height:15px;color:#767676;vertical-align:middle;font-size:8pt;font-weight:normal;"; // 상단 셀렉트 텍스트 css

		XselectTextOverColor = "#ffffff"; // 셀렉트 마우스오버시 글자색
		XselectTextOutColor = "#767676"; // 셀렉트 마우스아웃시 글자색

      break;
      default:
        XselectBorder = 1;
        XselectOptionBorderColor = "#DCDCDC";
        XselectOptionHeight = 17; //셀렉트 옵션 박스 Height
        XselectArrowSrc = "/images/common/btn_select.jpg";	//오른쪽 화살표이미지
        XselectArrowSrcWidth = 14;	//오른쪽 화살표이미지 width
        XselectArrowSrcheight = 17;	//오른쪽 화살표이미지 height
        XselectTopBoxArrowCss = "background-color:#ffffff;"; //상단 셀렉트 화살표 css
        XselectBoxOverColor = "#999999"; // 셀렉트 마우스오버시 배경색
        XselectBoxOutColor = "#ffffff"; // 셀렉트 마우스아웃시 배경색

        XselectOptionLinkCss = "text-decoration: none;color:#767676;font-size:8pt;font-weight:normal;"; //셀렉트 옵션 링크 Css
        XselectOptionLayerCss = "border:"+XselectBorder+"px solid "+XselectOptionBorderColor+";"; // 셀렉트 옵션 레이어 css (옵션 보더색조정)
        XselectOptionsCss = "background-color:#ffffff;padding:4px 0 0 15px;"; // 셀렉트 옵션 css
        XselectTopBoxCss = "border:"+XselectBorder+"px solid #DCDCDC;background-color:#ffffff;"; // 상단 셀렉트 레이어 css (bg는 공백확인용)
        XselectTopBoxLeftCss = "padding:4px 0 0 5px;_height:15px;color:#767676;vertical-align:middle;font-size:8pt;font-weight:normal;"; // 상단 셀렉트 텍스트 css

		XselectTextOverColor = "#ffffff"; // 셀렉트 마우스오버시 글자색
		XselectTextOutColor = "#767676"; // 셀렉트 마우스아웃시 글자색
      break;
  }
}

function selectThisValue(thisId,thisIndex,thisValue,thisString,thismode) {
	var objId = thisId;
	var nowIndex = thisIndex;
	var valueString = thisString;
	var optionLayer = document.getElementById(objId+"selectBoxOptionLayer");
	var sourceObj = document.getElementById(objId);
	var nowSelectedValue = document.getElementById(objId+"SelectBoxOptionValue"+nowIndex).value;
 	if (optionLayer&&thismode=="off") optionLayer.style.visibility = "hidden"; //셀렉트 옵션 View 여부
	if (sourceObj) sourceObj.value = nowSelectedValue;
	if (sourceObj) sourceObj.text = thisString; //텍스트값 추가.10.11.23.김규민.
  if (sourceObj) sourceObj.options[thisIndex].selected == true;  //선택활성화추가
	obj = document.getElementById(thisId);
  fireEvent(obj,'change');
	settingValue(objId,valueString);
}

function settingValue(thisId,thisString) {
	var objId = thisId;
	var valueString = thisString;
	var selectedArea = document.getElementById(objId+"selectBoxSelectedValue");
	if (selectedArea) selectedArea.innerHTML = valueString;
}

function viewOptionLayer(thisId) {
	var objId = thisId;
	var optionLayer = document.getElementById(objId+"selectBoxOptionLayer");
  if (optionLayer) optionLayer.style.display = ""; // 처음에만 diplay로 작동
  if (optionLayer) optionLayer.style.visibility = "visible";
  //setTimeout('hideOptionLayerAgain("'+thisId+'")',3000);
  document.getElementById(objId+"selectBoxSelectedTopCover1").style.display = "";
  document.getElementById(objId+"selectBoxSelectedTopCover2").style.display = "none";
}

function hideOptionLayer(thisId) {
	var objId = thisId;
	var optionLayer = document.getElementById(objId+"selectBoxOptionLayer");
 	if (optionLayer) optionLayer.style.visibility = "hidden";
  document.getElementById(objId+"selectBoxSelectedTopCover1").style.display = "none";
  document.getElementById(objId+"selectBoxSelectedTopCover2").style.display = "";
  return false;
}


function viewOptionLayerClick(thisId) {
	var objId = thisId;
	var optionLayer = document.getElementById(objId+"selectBoxOptionLayer");
  if (optionLayer) optionLayer.style.display = ""; // 처음에만 diplay로 작동
  if (optionLayer) optionLayer.style.visibility = "visible";
  document.getElementById(objId+"selectBoxSelectedTopCover1").style.display = "";
  document.getElementById(objId+"selectBoxSelectedTopCover2").style.display = "none";
}

function XselectBoxOver(obj,cor,num){
    obj.style.background = cor;
	eval(document.getElementById("sel"+num)).style.color = XselectTextOverColor;
//obj.style.className= "Type1selectBoxOptionsOver";//obj.id+"Over";
}

function XselectBoxOut(obj,cor,num){
    obj.style.background = cor;
	eval(document.getElementById("sel"+num)).style.color = XselectTextOutColor;
//obj.style.className= obj.id+"Out";
}

function XselectBoxArrow(e,objId,emode){
//    alert(emode);
    var obj = document.getElementById(objId);
    if(e==38){
        var sidx = obj.options.selectedIndex;
        if(sidx+1>1){
          var nowValue = obj.options[sidx-1].value;
          var nowText = obj.options[sidx-1].text;
          //obj.options[sidx+1].selected == true;   
          selectThisValue(objId,sidx-1,nowValue,nowText,emode);
        }
    }
    else if(e==40){
        var sidx = obj.options.selectedIndex;
        if(sidx+1<obj.options.length){
          var nowValue = obj.options[sidx+1].value;
          var nowText = obj.options[sidx+1].text;
          //obj.options[sidx+1].selected == true;   
          selectThisValue(objId,sidx+1,nowValue,nowText,emode);
        }
    } 
}

function makeSelectBox(thisId) {
  XselectBoxType(thisId); // Type 고르기
	var downArrowSrc = XselectArrowSrc;	//오른쪽 화살표이미지
	var downArrowSrcWidth = XselectArrowSrcWidth;	//오른쪽 화살표이미지 width
	var downArrowSrcheight = XselectArrowSrcheight;	//오른쪽 화살표이미지 height
	var objId = thisId;
	var obj = document.getElementById(objId);
	var selectBoxWidth = parseInt(obj.style.width);
	var selectBoxHeight = Number(obj.style.height)||XselectOptionHeight;

  var selHeight = ((obj.options.length * XselectOptionHeight) > XselectOptionsHeight ? XselectOptionsHeight : obj.options.length * XselectOptionHeight); //셀렉트 옵션 Height
  if(document.getElementById("Xselect_"+objId)==null){
    newSelect = "<div id=\"Xselect_"+objId+"\" style='float:left;margin-right:"+(XselectBorder*2)+"px;'  ></div>"; // 최초에만 DIV 생성
    document.write(newSelect);
  }

	newSelect = "";
  newSelect += "<div id='" + objId + "selectBoxOptionLayer' style='position:absolute; z-index:100; display:none;width:"+(selectBoxWidth)+"px;"+XselectOptionLayerCss+"' onMouseOver=\"viewOptionLayer('"+ objId + "')\" onMouseOut=\"hideOptionLayer('"+ objId + "')\" >";
  newSelect += "  <div style='height:"+(selectBoxHeight+XselectBorder)+"px;' >"; //상단과 옵션 사이 Border 두께
  newSelect += "  </div>";
	newSelect += "	<div id='" + objId + "selectBoxOptionLayerDIV' style='width:" + (selectBoxWidth) + "px;overflow-y:auto; overflow-x:hidden;height:"+(selHeight + 12)+"px;background:#ffffff;' >";
	for (var i=0 ; i < obj.options.length ; i++) {
		var nowValue = obj.options[i].value;
		var nowText = obj.options[i].text.replace(/\"/gi,"&#34;"); //"문자열 치환
  newSelect += "    <div id='"+objId+"selectBoxOptions' style='height:"+(selectBoxHeight-1)+"px;cursor:pointer;"+XselectOptionsCss+"' onMouseOver=\"XselectBoxOver(this,'"+XselectBoxOverColor+"', '"+i+"');\" onMouseOut=\"XselectBoxOut(this,'"+XselectBoxOutColor+"', '"+i+"');\" onClick=\"selectThisValue('"+ objId + "'," + i + ",'" + nowValue + "','" + nowText + "','off');return false;\">";
  newSelect += "      <a href=\"javascript:selectThisValue('"+ objId + "'," + i + ",'" + nowValue + "','" + nowText + "','off')\" id='sel"+i+"' onfocus='this.blur()' style='"+XselectOptionLinkCss+"'>" + nowText + "</a>";
	newSelect += "				<input type='hidden' id='"+ objId + "SelectBoxOptionValue" + i + "' value='" + nowValue + "'>";
  newSelect += "    </div>";
	}
  newSelect += "  </div>";
  newSelect += "</div>";

  newSelect += "<div id='"+objId+"selectBoxSelected' style='width:"+selectBoxWidth+"px;height:"+selectBoxHeight+"px;position:absolute;z-index:0;"+XselectTopBoxCss+"'  onKeyUp='XselectBoxArrow(event.keyCode,\""+objId+"\",\"off\");'>";
  newSelect += "  <div  id='" + objId + "selectBoxSelectedValue' style='float:left;width:" + (selectBoxWidth - downArrowSrcWidth - 5) + "px;height:" + (selectBoxHeight - XselectBorder) + "px;cursor:pointer;"+XselectTopBoxLeftCss+"' onClick=\"viewOptionLayer('"+ objId + "');\" >";  //수정
  newSelect += "  </div>";
  newSelect += "  <div id='"+objId+"selectBoxArrow' style='float:left;width:" + (downArrowSrcWidth) + "px;height:" + (selectBoxHeight) + "px;"+XselectTopBoxArrowCss+"' >";
  newSelect += "    <img src='" + downArrowSrc + "' width='" + downArrowSrcWidth + "' height='"+(downArrowSrcheight)+"px' border='0' style='vertical-align:middle;' onClick=\"viewOptionLayer('"+ objId + "');\" />";
  newSelect += "  </div>";
  newSelect += "</div>";
  newSelect += "<div id='"+objId + "selectBoxSelectedTop' onfocus='this.blur()' onClick=\"viewOptionLayerClick('"+ objId + "');\" style='width:"+selectBoxWidth+"px;height:"+(selectBoxHeight+2)+"px;border:0px solid #DCDCDC;position:relative;z-index:1;cursor:pointer;'  onKeyUp='XselectBoxArrow(event.keyCode,\""+objId+"\",\"on\");' tabindex='"+XselectTabIndex+"' >";
  newSelect += "  <img src='"+Xspace+"' width='"+selectBoxWidth+"px' height='"+(selectBoxHeight+(XselectBorder*2))+"px' border='0' style='vertical-align:middle;cursor:pointer;postion:absolute;display:none;' onClick=\"viewOptionLayer('"+ objId + "');\" id='"+objId+"selectBoxSelectedTopCover1' onMouseOver=\"viewOptionLayer('"+ objId + "')\" onMouseOut=\"hideOptionLayer('"+ objId + "')\" />";
  newSelect += "  <img src='"+Xspace+"' width='"+selectBoxWidth+"px' height='"+(selectBoxHeight+(XselectBorder*2))+"px' border='0' style='vertical-align:middle;cursor:pointer;' onClick=\"viewOptionLayer('"+ objId + "');\" id='"+objId+"selectBoxSelectedTopCover2'/>";
  newSelect += "</div>";

  document.getElementById("Xselect_"+objId).innerHTML = newSelect; // Xselect InnerHTML

//  if(obj.options.length > 10){
    //document.getElementById(objId + "selectBoxOptionLayerDIV").style.height="200px";
    //document.getElementById(objId + "selectBoxOptionLayerDIV").style.overflow="auto";
//  }

	var haveSelectedValue = false;
	for (var i=0 ; i < obj.options.length ; i++) {
		if (obj.options[i].selected == true) {
			haveSelectedValue = true;
			settingValue(objId,obj.options[i].text);
		}
	}
	if (!haveSelectedValue) settingValue(objId,obj.options[0].text);
  XselectTabIndex =+ 1; //탭인덱스 증가
}

function fireEvent(element,event){
      if (document.createEventObject){
        var evt = document.createEventObject();
        return element.fireEvent('on'+event,evt)
    }
    else{
        var evt = document.createEvent("HTMLEvents");
        evt.initEvent(event, true, true ); // event type,bubbling,cancelable
        return !element.dispatchEvent(evt);
    }
}
