KEY_ENTER = 13;
KEY_LEFTARROW = 37;
KEY_UPARROW = 38;
KEY_RIGHTARROW = 39;
KEY_DOWNARROW = 40;
KEY_TAB = 9;
KEY_INSERT = 45;
KEY_DELETE = 46;
KEY_BS = 8;
KEY_SPACE = 20;
KEY_HOME = 36;
KEY_END = 35;
KEY_PGUP = 33;
KEY_PGDN = 34;
KEY_F2 = 113;
KEY_F3 = 114;
KEY_F4 = 115;
KEY_F5 = 116;
KEY_F6 = 117;
KEY_F7 = 118;
KEY_F8 = 119;
KEY_F9 = 120;
KEY_F10 = 121;
KEY_F11 = 122;
KEY_F12 = 123;



function checkData(form){	
  var len = form.elements.length;
  var o = null;

  for(var i=0; i<len; i++) {
    o = form.elements[i];
    if(o.getAttribute('datatype') == 'date')
    {
    	if (o.value == '0000-00-00' || o.value == '0000/00/00') o.value = '';
    	if ( o.getAttribute('check') == 'N' )
    	{
    		if(o.value.replace(' ','') == '')
    		{
	        return o;
      	}
      }
    	else 
    	{
    		if (o.value.replace(' ','') != '')
    		{
		      if (!checkDate1(o)){
		        return o;
		      }
    		}
	    }
	  }
    if(o.getAttribute('check') == 'N'){
      if(o.type == "checkbox" || o.type == "radio"){
        if(!isChecked(form,o.name)){
          return o;
        }
      }else if(o.value.replace(' ','') == ''){
        return o;
      }
    }
  }
  return true;
}

function isnumKey(keycode){
    if ((keycode >= 48 && keycode <= 57) || (keycode >= 96 && keycode <= 105)){
        return true;
    }else{
        return false;
    }
}

function isMinusKey(keycode){
    if (keycode == 109 || keycode==189) return true;
    else return false;
}

function isSlashKey(keycode){
    if (keycode == 111 || keycode==191) return true;
    else return false;
}

function isDotKey(keycode){
    if (keycode == 110 || keycode==190) return true;
    else return false;
}

function isSpecialKey(keycode){
    switch(keycode){
        case KEY_ENTER:
            return true;
        case KEY_LEFTARROW:
            return true;
        case KEY_UPARROW:
            return true;
        case KEY_RIGHTARROW:
            return true;
        case KEY_DOWNARROW:
            return true;
        case KEY_TAB:
            return true;
        case KEY_INSERT:
            return true;
        case KEY_DELETE:
            return true;
        case KEY_BS:
            return true;
        case KEY_SPACE:
            return true;
        case KEY_HOME:
            return true;
        case KEY_END:
            return true;
        case KEY_PGUP:
            return true;
        case KEY_PGDN:
            return true;
        default:
            return false;
    }
}

function isAvailChar(val) {
    var chars = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    return containsCharsOnly(val,chars);
}

function setNumberFormat(o){
  var i,j,value1,str;

  if(o.value.length == 0 || o.value == o.oldValue ) return;

  for(i=0;i<o.value.length;i++)
  {
    //alert (o.value.charCodeAt(i));
    if((o.value.charCodeAt(i) < 48 ||o.value.charCodeAt(i) > 57) && o.value.charAt(i) != ',' && o.value.charAt(i) != '-')
    {
       o.value = o.value.substr(0,i);
    }
  }
  j = 0;
  var sign = '';
  if (o.value.charAt(0) == '-'){
      sign = '-';
  }

  var value1 = replaceAll(o.value,',','');

  value1 = Number(replaceAll(value1,'-',''));
  value1 = value1.toString();
  var str = '';
  for(i=value1.length;i >= 0;i--){
      str = value1.charAt(i)+str;
      if ((j%3) == 0 && i > 0){
          str = ','+str;
      }
      j++;
  }
  if (str.charAt(str.length-1)==','){
      str = str.substr(0,(str.length-1));
  }
  o.value = sign+str;
  if(o.value == '0')
  {
    o.value == '';
  }
}

function replaceAll(s,c1,c2){
    var i = 0;
    var str = '';
    
    if (s==''||s==null||s==undefined) return s;
    
    for(i=0;i<s.length;i++){
        if (s.charAt(i) == c1)
            str = str + c2;
        else
            str = str + s.charAt(i);
    }
    return str;
}

function checkDate(o,n){	
	if(!checkDate1(o)) {
		alert("¿Ã¹Ù¸¥ ³¯Â¥·Î ÀÔ·ÂÇØ ÁÖ¼¼¿ä !");
		return false;
	}
}



function checkDate1(o){
  o.value = replaceAll(o.value,' ','');
  if(o.value == '') {
    return;
  }
  o.value = replaceAll(o.value,'.','/');
  o.value = replaceAll(o.value,'-','/');

  var aYmd = o.value.split('/');

  if(aYmd.length < 2) {
    o.value = replaceAll(o.value,' ','');
    o.value = replaceAll(o.value,'/','');
    o.value = replaceAll(o.value,'.','');
  
    if(o.value == "") return true;
  
    var aYmd = new Array();
  
    aYmd[0] = o.value.substr(0,4);
    aYmd[1] = o.value.substr(4,2);
    aYmd[2] = o.value.substr(6,2);
  }
  
  var d = new Date(parseInt(aYmd[0],10),parseInt(aYmd[1],10)-1,parseInt(aYmd[2],10));

  if(parseInt(aYmd[0],10) == d.getFullYear() &&parseInt(aYmd[1],10) == (d.getMonth()+1) && parseInt(aYmd[2],10) == d.getDate()){
    var s1 = ('0000'+aYmd[0].replace(' ',''));
    s1 = s1.substr(s1.length-4,4);

    var s2 = '00'+aYmd[1].replace(' ','');
    s2 = s2.substr(s2.length-2,2);

    var s3 = '00'+aYmd[2].replace(' ','');
    s3 = s3.substr(s3.length-2,2);

    o.value = s1+'/'+s2+'/'+s3;
    return true;
  }else{
    return false;
  }
}

bChkAll = false;

function checkAll(form)
{
  var len = form.elements.length;
  var i=0;

  if(bChkAll) {
    for(i=0; i<len; i++){
      if(form.elements[i].type == "checkbox")
        form.elements[i].checked = false;
    }
    bChkAll = false;
  } else if(!bChkAll) {
    for(i=0; i<len; i++){
      if(form.elements[i].type == "checkbox")
        form.elements[i].checked = true;
    }
    bChkAll = true;
  }
}

//Ã¼Å©¹Ú½ºÁß¿¡ ÇÏ³ªµµ Ã¼Å©°¡ ¾ÈµÈ °æ¿ì¸¦ È®ÀÎ
function isNoneChecked(form)
{
  var len = form.elements.length;

  for(var i=0; i<len; i++) {
    if(form.elements[i].type == "checkbox" && form.elements[i].checked) {
      return false;
    }
  }

  return true;  //ÇÏ³ªµµ ¼±ÅÃÀÌ ¾È µÈ °æ¿ì
}

//ÁöÁ¤µÈ Ã¼Å©¹Ú½º³ª ¶óµð¿À¹öÆ° Áß¿¡ ÇÏ³ª¶óµµ Ã¼Å©°¡ µÈ °æ¿ì¸¦ È®ÀÎ
function isChecked(form,oname)
{
  var len = form.elements.length;

  for(var i=0; i<len; i++) {
    if(form.elements[i].name == oname){
      if(form.elements[i].type == "checkbox" || form.elements[i].type == "radio"){
        if(form.elements[i].checked){
          return true;
        }
      }
      else{
      	alert(oname);
        alert("°Ë»çÇÒ Ç×¸ñÀÌ Ã¼Å©¹Ú½º³ª ¶óµð¿À°¡ ¾Æ´Õ´Ï´Ù.");
      }
    }
  }
  return false;

}

function checkedCount(form)
{
  var len = form.elements.length;
  var cnt = 0;

  for(var i=0; i<len; i++) {
    if(form.elements[i].type == "checkbox" && form.elements[i].checked) {
      cnt++;
    }
  }
  return cnt;
}

function containsCharsOnly(inval,chars) {
  if(inval == null || inval == "")
    return false;
    for (var idx = 0; idx < inval.length; idx++) {
       if (chars.indexOf(inval.charAt(idx)) == -1)
           return false;
    }
    return true;
}

function isNum(val) {
    var chars = "0123456789";
    return containsCharsOnly(val,chars);
}

function checkNum(val){
  if(!isNum(val)) {
        alert("¼ýÀÚ·Î¸¸ ÀÔ·ÂÇØ ÁÖ¼¼¿ä !");
        return false;
    } return true;
}

//¿ìÆí¹øÈ£ Ã£±â
function searchzip(F,A,B,C,D,E){
  window.open("/cgi-bin/CgiZipCode2.cgi?Form="+F+"&Fcode1="+A+"&Fcode2="+B+"&Faddr="+C+"&Fnext="+D+"&keyword"+E,"¿ìÆí¹øÈ£°Ë»ö",
    "width=440,height=400,scrollbars=yes,resizable=yes,status=yes");

}

//Æ÷Ä¿½º ÀÚµ¿ÀÌµ¿
function focus_move(o,len,next){
 if(o.value.length==len)
     next.focus();
}

//ÁÖ¹Îµî·Ï¹øÈ£ ¿À·ùÃ¼Å©
function checkPNO(pno1, pno2){

  var a1 = pno1/100000;
  var a2 = (pno1%100000)/10000;
  var a3 = (pno1%10000)/1000;
  var a4 = (pno1%1000)/100;
  var a5 = (pno1%100)/10;
  var a6 = pno1%10;

  var A1 = pno2/1000000;
  var A2 = (pno2%1000000)/100000;
  var A3 = (pno2%100000)/10000;
  var A4 = (pno2%10000)/1000;
  var A5 = (pno2%1000)/100;
  var A6 = (pno2%100)/10;
  var A7 = pno2%10

  with(Math) {
    var b1 = floor(a1);
    var b2 = floor(a2);
    var b3 = floor(a3);
    var b4 = floor(a4);
    var b5 = floor(a5);
    var b6 = floor(a6);
    var B1 = floor(A1);
    var B2 = floor(A2);
    var B3 = floor(A3);
    var B4 = floor(A4);
    var B5 = floor(A5);
    var B6 = floor(A6);
    var B7 = floor(A7);
  }
  var sum =(b1*2)+(b2*3)+(b3*4)+(b4*5)+(b5*6)+(b6*7)+(B1*8)+(B2*9)+(B3*2)+(B4*3)+(B5*4)+(B6*5);
  var key = sum%11;
  var check = key + B7;

  if((1 != check) && (11 != check)) {
    return false;
  } else
  	return true;
   
}



//----------------------------------------------------------------------------------------------

function Key_Down(o){    
    if (o.datatype == 'number'){
        if(!(isnumKey(event.keyCode) || isSpecialKey(event.keyCode) || isMinusKey(event.keyCode))){
            return false;
        }
    }
    if (o.datatype == 'date'){	
        if(!(isnumKey(event.keyCode) || isSpecialKey(event.keyCode) || isSlashKey(event.keyCode) || isMinusKey(event.keyCode) || isDotKey(event.keyCode))){					
            return false;
        }
    }	  
	if (event.keyCode == KEY_ENTER) {      		
        event.keyCode = KEY_TAB;            
    }
    return true;
}

function Key_Press(o){	 
    return true;
}

function Key_Up(o){
	return true;
}

function Key_Up_J(o, obj){
	if(o.value.length == 6)
		obj.focus();
	return true;
}

function checkNumber(obj){
	if(obj.value != "" && !isNum(obj.value)) {	
        alert("¼ýÀÚ·Î¸¸ ÀÔ·ÂÇØ ÁÖ¼¼¿ä !");
        obj.value = "";
        obj.focus();
        return false;
    } else
    	return true;    
}

function isDateChar(val) {
    var chars = "0123456789/-.";
    return containsCharsOnly(val,chars);
}

function checkMaxLen(obj, len, txt) {
	if(obj.value.length > len) {
		alert(txt+" "+len+"ÀÚ ÀÌ³»·Î ÀÔ·ÂÇØ ÁÖ¼¼¿ä !");
		obj.value = obj.value.substring(0,len);
		obj.focus();
	}
}


function appendRow(o,setClear)
{
  var tr = null;
  var retObj = null;

  if(setClear == undefined) setClear = true;

  if (o.tagName.toLowerCase() == 'tr')
    tr = o;
  else
    tr = getClosestTag(o,'tr');

  if(tr == null)
  {
    alert("Ãß°¡ÇÒ ¼ö ÀÖ´Â ÇàÀÇ ¿ä¼Ò°¡ ¾Æ´Õ´Ï´Ù");
    return null;
  }
  else
  {
    var otr = tr.cloneNode(true);
    var otr = tr.parentNode.insertBefore(otr,tr.nextSibling);
    if(setClear){
      var n = otr.getElementsByTagName('input');
      for(var i=0;i<n.length;i++)
      {
        var tp = n[i].type.toLowerCase();
        switch(tp)
        {
          case 'button':
            break;
          case 'checkbox':
            n[i].checked = false;
            break;
          case 'radio':
            n[i].checked = false;
            break;
          default:
            n[i].value = "";
            break;
        }
      }
    }

    var n1 = otr.getElementsByTagName('select');
    for(var i=0;i<n1.length;i++)
    {
      n1[i].selectedIndex = -1;
    }
//    tr.parentNode.insertBefore(otr,tr.nextSibling);
//    return tr.parentNode.insertBefore(otr,tr.nextSibling);
    return otr;
  }
}
function getClosestTag(o,tag)
{
  var po = o.parentNode;

  if (po.tagName.toLowerCase() == tag.toLowerCase())
  {
    return po;
  }
  else if(po.tagName.toLowerCase() == 'body')
  {
    return null;
  }
  else
  {
    return getClosestTag(po,tag);
  }
}

function createArr2hidden(frm)
{
  var aObjNames = new Array();
  var aCnt = new Array();
  var k = 0;

  aObjNames[0] = "";

  var hdvs = document.getElementById('_hiddenValues');
  if(hdvs != null)
  {
    hdvs.parentNode.removeChild(hdvs);
  }

  var frmlen = frm.elements.length;

  var hdvs = document.createElement("<div id='_hiddenValues'></div>");
  for (var i=0 ;i<frmlen;i++)
  {
    if(findArray(aObjNames,frm.elements[i].name) == -1 && frm.elements[i].name != 'undefined' && frm.elements[i].name != undefined)
    {
      var tn = frm.elements[i].tagName.toLowerCase();
      if((tn == 'input' || tn == 'select' || tn == 'textarea') && (frm.elements[i].type != 'radio'))
      {
        var cmd = "frm."+frm.elements[i].name+".length;";

        len = eval(cmd);
        var o = eval("frm."+frm.elements[i].name);
        if((tn != 'select' && len != undefined)||(tn=='select' && o[0].name != undefined))
        {
          var on = o[0].name;
          for(var j=0;j<o.length;j++)
          {
            if(!o[j].disabled)
            {
              if(o[j].type.toLowerCase() != 'checkbox' && o[j].type.toLowerCase() != 'radio')
              {
                var rno = o[j].getAttribute('RowNo');
                if (rno == null)
                {
                  rno = j;
                }
                var em = "<input type=hidden name='"+o[j].name+"["+rno+"]' value='"+o[j].value + "'>";
                v=document.createElement(em);
                hdvs.appendChild(v);

                aCnt[k] = "<input type=hidden name=RowCount["+on+"] value='" + j + "'>";
                k++;
              }
              else
              {
                var rno = o[j].getAttribute('RowNo');
                if (rno == null)
                {
                  rno = j;
                }
                if (o[j].checked)
                  var em = "<input type=hidden name='"+o[j].name+"["+rno+"]' value='"+o[j].value + "'>";
                else
                  var em = "<input type=hidden name='"+o[j].name+"["+rno+"]' value=''>";

                v=document.createElement(em);
                hdvs.appendChild(v);

                aCnt[k] = "<input type=hidden name=RowCount["+on+"] value='" + j + "'>";
                k++;
              }
            }
          }
        }
        else
        {
          var rno = o.getAttribute('RowNo');
          if(!o.disabled && rno != null)
          {
            if(o.type.toLowerCase() != 'checkbox' && o.type.toLowerCase() != 'radio')
            {
              var em = "<input type=hidden name='"+o.name+"["+rno+"]' value='"+o.value + "'>";
              v=document.createElement(em);
              hdvs.appendChild(v);
            }
            else
            {
              if (o.checked)
                var em = "<input type=hidden name='"+o.name+"["+rno+"]' value='"+o.value + "'>";
              else
                var em = "<input type=hidden name='"+o.name+"["+rno+"]' value=''>";

              v=document.createElement(em);
              hdvs.appendChild(v);

            }
          }
/*
          o = frm.elements[i];
          var rno = o.getAttribute('RowNo');
          if (rno != null)
          {
            var em = "<input type=hidden name="+o.name+"["+rno+"]  value='"+o.value + "'>";
            v=document.createElement(em);
            hdvs.appendChild(v);
          }
*/
        }
      }
      aObjNames[aObjNames.length] = frm.elements[i].name;
    }
  }
  if(aCnt.length != undefined)
  {
    for(i=0;i<aCnt.length;i++)
    {
      v=document.createElement(aCnt[i]);
      hdvs.appendChild(v);
    }
  }
//  testWin(hdvs.innerHTML);
  frm.appendChild(hdvs);
}
function goUp(o){
  var tr=getClosestTag(o,'tr');
  var prevtr = tr.previousSibling;

  if(prevtr != null)
  {
    var prevobjlist = prevtr.getElementsByTagName('input');
    for(var i=0;i<prevobjlist.length;i++)
    {
      if(prevobjlist[i].name==o.name)
      {
        prevobjlist[i].focus();
        prevobjlist[i].select();
        break;
      }
    }
  }
}

function goDown(o){
  var tr=getClosestTag(o,'tr');
  var nexttr = tr.nextSibling;

  if(nexttr != null)
  {
    var nextobjlist = nexttr.getElementsByTagName('input');
    for(var i=0;i<nextobjlist.length;i++)
    {
      if(nextobjlist[i].name==o.name)
      {
        nextobjlist[i].focus();
        nextobjlist[i].select();
        break;
      }
    }
  }
}
function getIndex(o){
  if(o != undefined)
  {
    var olen = eval('document.'+o.form.name+"."+o.name);
    if(olen.length != undefined)
    {
      for(var i=0;i<olen.length;i++)
      {
        if(olen[i]==o)
        {
          return i;
        }
      }
    }
  }
  return null;
}

function getName(o){

    var start = -1;
    var nm = null;

    if (o != null)
//        start = o.name.search('[');
        start = findchr(o.name,'[');

    if (start >= 0){
        nm = o.name.substr(0,start);
    }else{
        nm = o.name;
    }

    return nm;
}

function findchr(o,c){
    var start = -1;
    var i = 0;

    if (o != null){
        for (i=0;i<o.length;i++){
            if (o.charAt(i)==c){
                start=i;
                break;
            }
        }
    }
    return start;
}
function findArray(Ar,v)
{
  for(var i=0; i<Ar.length;i++)
  {
    if(Ar[i] == v)
    {
      return i;
    }
  }
  return -1;
}

function getVisib(obj){
  var value = obj.style.visibility;
  if (!value) {
    if (document.defaultView && typeof (document.defaultView.getComputedStyle) == "function") { // Gecko, W3C
      if (!is_khtml)
        value = document.defaultView.
          getComputedStyle(obj, "").getPropertyValue("visibility");
      else
        value = '';
    } else if (obj.currentStyle) { // IE
      value = obj.currentStyle.visibility;
    } else
      value = '';
  }
  return value;
}

function getAbsolutePos(el) {
  var SL = 0, ST = 0;
  var is_div = /^div$/i.test(el.tagName);
  if (is_div && el.scrollLeft)
    SL = el.scrollLeft;
  if (is_div && el.scrollTop)
    ST = el.scrollTop;
  var r = { x: el.offsetLeft - SL, y: el.offsetTop - ST };
  if (el.offsetParent) {
    var tmp = getAbsolutePos(el.offsetParent);
    r.x += tmp.x;
    r.y += tmp.y;
  }
  return r;
}

function showPopup(lyr){

  var tags = new Array("applet", "iframe", "select");
  var el = document.getElementById(lyr);
  document.getElementById(lyr).style.display='block';

  var p = getAbsolutePos(el);
  var EX1 = p.x;
  var EX2 = el.offsetWidth + EX1;
  var EY1 = p.y;
  var EY2 = el.offsetHeight + EY1;

  for (var k = tags.length; k > 0; ) {
    var ar = document.getElementsByTagName(tags[--k]);
    var cc = null;

    for (var i = ar.length; i > 0;) {
      cc = ar[--i];

      p = getAbsolutePos(cc);
      var CX1 = p.x;
      var CX2 = cc.offsetWidth + CX1;
      var CY1 = p.y;
      var CY2 = cc.offsetHeight + CY1;

      if ((CX1 > EX2) || (CX2 < EX1) || (CY1 > EY2) || (CY2 < EY1)) {
        if (!cc.__msh_save_visibility) {
          cc.__msh_save_visibility = getVisib(cc);
        }
        cc.style.visibility = cc.__msh_save_visibility;
      } else {
        if (!cc.__msh_save_visibility) {
          cc.__msh_save_visibility = getVisib(cc);
        }
        cc.style.visibility = "hidden";
      }
    }
  }
}

function hidePopup(lyr){

  var tags = new Array("applet", "iframe", "select");
  var el = document.getElementById(lyr);

  var p = getAbsolutePos(el);
  var EX1 = p.x;
  var EX2 = el.offsetWidth + EX1;
  var EY1 = p.y;
  var EY2 = el.offsetHeight + EY1;

  for (var k = tags.length; k > 0; ) {
    var ar = document.getElementsByTagName(tags[--k]);
    var cc = null;

    for (var i = ar.length; i > 0;) {
      cc = ar[--i];

      cc.style.visibility = cc.__msh_save_visibility;
    }
  }
  
  document.getElementById(lyr).style.display='none';
}

function togglePopup(lyr){
  if(document.getElementById(lyr).style.display=='none') showPopup(lyr);
  else hidePopup(lyr);
}
