function div2html(divid, html) {
  if(Prototype.Browser.Gecko) {
    $(divid).innerHTML = "";
    var dummydiv = document.createElement('dummydiv');
    dummydiv.innerHTML = html;
    var children = dummydiv.childNodes;
    for(var i=0;i<children.length;i++) {
      $(divid).appendChild(children[i]);
    }
  }else {
    $(divid).innerHTML = html;
  }
}


function show_dialog(dialog, requestUrl, pars, dialogWidth, dialogHeight, dialogHeader, callback_func) {
  var params = "dialogWidth="+dialogWidth+"&dialogHeight="+dialogHeight+"&dialogHeader="+dialogHeader;
  if (pars){
    params = pars+"&"+params;
  }
  
  var req = new Object;
  req.url = requestUrl;
  req.pars = params;
  req.method = 'post';
  req.callback = function (req) {
    var json = getJsonResult(req);
    var dialogPannel = dialog;
    dialogPannel.body.style.width = json.dialogWidth;
    dialogPannel.body.style.height = json.dialogHeight;
    dialogPannel.setHeader(json.dialogHeader);
    dialogPannel.cfg.setProperty("underlay","none");
    try {
      div2html("dialog_content", json.content);
    }catch(e) {
      div2html("scroll_dialog_content", json.content);
    }
    dialogPannel.show();

    if (callback_func) {
      callback_func(req);
    }else {
      try{
        show_dialog_callback(req);
      }catch(e) {}
    }
  }
  request(req);
}


function create_button(button_id, button_script) {
  var btn = new YAHOO.widget.Button(button_id);
  btn.on("click", button_script);
}

function fc_chk_byte(memo,ari_max) { 
  var ls_str = memo.value; // 이벤트가 일어난 컨트롤의 value 값 
  var li_str_len = ls_str.length; // 전체길이 

  // 변수초기화 
  var li_max = ari_max; // 제한할 글자수 크기 
  var i = 0; // for문에 사용 
  var li_byte = 0; // 한글일경우는 2 그밗에는 1을 더함 
  var li_len = 0; // substring하기 위해서 사용 
  var ls_one_char = ""; // 한글자씩 검사한다 
  var ls_str2 = ""; // 글자수를 초과하면 제한할수 글자전까지만 보여준다. 

  for(i=0; i< li_str_len; i++) 
  { 
  // 한글자추출 
  ls_one_char = ls_str.charAt(i); 

  // 한글이면 2를 더한다. 
  if (escape(ls_one_char).length > 4) 
  { 
  li_byte += 2; 
  } 
  // 그밗의 경우는 1을 더한다. 
  else 
  { 
  li_byte++; 
  } 

  // 전체 크기가 li_max를 넘지않으면 
  if(li_byte <= li_max) 
  { 
  li_len = i + 1; 
  } 
  } 

  // 전체길이를 초과하면 
  if(li_byte > li_max) 
  { 
  alert( li_max + " 글자를 초과 입력할수 없습니다. \n 초과된 내용은 자동으로 삭제 됩니다. "); 
  ls_str2 = ls_str.substr(0, li_len); 
  memo.value = ls_str2; 

  } 
  memo.focus(); 
} 


function show1(event) {
  var cal1Container = $("cal1Container");
  cal1Container.style.left=event.clientX+"px";
  cal1Container.style.top=event.clientY+"px";
  YAHOO.todo.calendar.cal1.show();
}

function show2(event) {
  var cal2Container = $("cal2Container");
  cal2Container.style.left=event.clientX+"px";
  cal2Container.style.top=event.clientY+"px";
  YAHOO.todo.calendar.cal2.show();
}

function handleSelect1(type,args,obj) {
  var dates = args[0];
  var date = dates[0];
  var year = date[0], month = date[1], day = date[2];
  if (month <10) {
    month = "0"+month;
  }
  if (day < 10) {
    day = "0"+day;
  }
  var txtDate1 = $("sdate");
  txtDate1.value = year+""+month+""+day;

  YAHOO.todo.calendar.cal1.hide();

  try {
    show1end();
  }catch(e) {
  }
}

function handleSelect2(type,args,obj) {
  var dates = args[0];
  var date = dates[0];
  var year = date[0], month = date[1], day = date[2];
  if (month < 10) {
    month = "0"+month;
  }
  if (day < 10) {
    day = "0"+day;
  }

  var txtDate1 = $("edate");
  txtDate1.value = year+""+month+""+day;
  YAHOO.todo.calendar.cal2.hide();
  try {
    show2end();
  }catch(e) {
  }
}


function showCreateCalendar(event) {


  var cal1Container = $("cal1Container");
  cal1Container.style.left="120px";
  cal1Container.style.top="20px";
  //cal1Container.style.width = "30px";
  //cal1Container.style.height = "30px";
  //cal1Container.style.zIndex = 300;

  YAHOO.todo.calendar.cal1.render();
  YAHOO.todo.calendar.cal1.show();
}

function showModifyCalendar(event) {
  var cal2Container = $("cal2Container");
  cal2Container.style.left="120px";
  cal2Container.style.top="10px";
  YAHOO.todo.calendar.cal2.show();
}

function showAlarmCalendar(event) {
  var cal3Container = $("cal3Container");
  cal3Container.style.left="120px";
  cal3Container.style.top="10px";
  YAHOO.todo.calendar.cal3.show();
}

function showModifyAlarmCalendar(event) {
  var cal4Container = $("cal4Container");
  cal4Container.style.left="120px";
  cal4Container.style.top="10px";
  YAHOO.todo.calendar.cal4.show();
}

function showGoogleCalendar(event) {
  var cal5Container = $("cal5Container");
  cal5Container.style.left="120px";
  cal5Container.style.top="10px";
  YAHOO.todo.calendar.cal5.show();
}

function handleCreateCalendar(type,args,obj) {
  var dates = args[0];
  var date = dates[0];
  var year = date[0], month = date[1], day = date[2];
  if (month <10) {
    month = "0"+month;
  }
  if (day < 10) {
    day = "0"+day;
  }
  var txtDate1 = $("expire_date");
  txtDate1.value = year+""+month+""+day;

  YAHOO.todo.calendar.cal1.hide();
}

function handleModifyCalendar(type,args,obj) {
  var dates = args[0];
  var date = dates[0];
  var year = date[0], month = date[1], day = date[2];
  if (month <10) {
    month = "0"+month;
  }
  if (day < 10) {
    day = "0"+day;
  }
  var txtDate1 = $("mod_expire_date");
  txtDate1.value = year+""+month+""+day;

  YAHOO.todo.calendar.cal2.hide();
}

function handleAlarmCalendar(type,args,obj) {
  var dates = args[0];
  var date = dates[0];
  var year = date[0], month = date[1], day = date[2];
  if (month <10) {
    month = "0"+month;
  }
  if (day < 10) {
    day = "0"+day;
  }
  var txtDate1 = $("alarm_date");
  txtDate1.value = year+""+month+""+day;

  YAHOO.todo.calendar.cal3.hide();
}

function handleModifyAlarmCalendar(type,args,obj) {
  var dates = args[0];
  var date = dates[0];
  var year = date[0], month = date[1], day = date[2];
  if (month <10) {
    month = "0"+month;
  }
  if (day < 10) {
    day = "0"+day;
  }
  var txtDate1 = $("mod_alarm_date");
  txtDate1.value = year+""+month+""+day;

  YAHOO.todo.calendar.cal4.hide();
}


function handleGoogleCalendar(type,args,obj) {
  var dates = args[0];
  var date = dates[0];
  var year = date[0], month = date[1], day = date[2];
  if (month <10) {
    month = "0"+month;
  }
  if (day < 10) {
    day = "0"+day;
  }
  var txtDate1 = $("dialog_gdate");
  txtDate1.value = year+""+month+""+day;

  YAHOO.todo.calendar.cal5.hide();
}



function checkall(formname, chkid, isCheck) {
  var oform = $(formname);
  var form_count=oform.length;
  for (var i=0;i<form_count;i++) {
    var ele_id=oform.elements[i].name;
    if (ele_id==chkid) {
      oform.elements[i].checked=isCheck;
    }
  }
}


function getScrollTop() {
  var theTop = 0;
  if (document.documentElement && document.documentElement.scrollTop) {
    theTop = document.documentElement.scrollTop;
  } else if (document.body) {
    theTop = document.body.scrollTop;
  }
  return theTop;
}

function email_chk(email) {
  var invalidChars = "\"|&;<>!*\'\\"   ;
  for (var i = 0; i < invalidChars.length; i++) {
    if (email.indexOf(invalidChars.charAt ) != -1) {
      return;
    }
  }
  if (email.indexOf("@")==-1){
    return;
  }
  if (email.indexOf(" ") != -1){
    return;
  }
  if (window.RegExp) {
    var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
    var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";
    var reg1 = new RegExp (reg1str);
    var reg2 = new RegExp (reg2str);
 
    if (reg1.test(email) || !reg2.test(email)) {
    //alert("잘못된 이메일 주소입니다.");
      return;
    }
  }
  return true;
} 


/* Date
==============================================*/
function isValidDate(yyyymmdd) {
  var yyyymmdd = ""+yyyymmdd;
  if(!yyyymmdd || yyyymmdd.length != 8) {
    return false;
  }
  var yyyy = yyyymmdd.substring(0,4);
  var mm = yyyymmdd.substring(4,6);
  var dd = yyyymmdd.substring(6,8);
  return isValidDay(yyyy, mm, dd);
}

function isValidDateHour(yyyymmddhhmm) {
  var date = yyyymmddhhmm.substring(0,8);
  var hour = yyyymmddhhmm.substring(8,10);
  var min = yyyymmddhhmm.substring(10,12);

  if(!isValidDate(date)) return false;
  if(!/^[0-9]{1,}$/.test(hour) || 
    !/^[0-9]{1,}$/.test(min)) {  
    return false;
  }
  return true;
}

function isValidDateHourSec(yyyymmddhhmmss) {
  var date = yyyymmddhhmmss.substring(0,12);
  var ss = yyyymmddhhmmss.substring(12,14);
  
  if(!isValidDateHour(date)) return false;
  if(!/^[0-9]{1,}$/.test(ss)) {
    return false;
  }
  return true;
}

function isValidDay(yyyy, mm, dd) {
  if(!/^[0-9]{1,}$/.test(yyyy) || 
    !/^[0-9]{1,}$/.test(mm) || 
    !/^[0-9]{1,}$/.test(dd)) {
    
    return false;
  }

  var yyyy = parseInt(yyyy);
  var m = parseInt(mm,10) - 1;
  var d = parseInt(dd,10);
  var end = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
  if ((yyyy % 4 == 0 && yyyy % 100 != 0) || yyyy % 400 == 0) {
    end[1] = 29;
  }
  return (d >= 1 && d <= end[m]);
}

function zfill(s, len) {
  var target = ""+s;
  var zerocnt = len-target.length;
  var result = "";
  for(var i=0; i<zerocnt;i++) {
    result += "0";
  }
  return result+target;
}

function now() {
  var d = new Date();
  var y = d.getYear();
  if (!document.all) { y += 1900 }
  var year = zfill(y, 4);
  var month = zfill(d.getMonth()+1, 2);
  var day = zfill(d.getDate(), 2);
  var hour = zfill(d.getHours(), 2);
  var min = zfill(d.getMinutes(), 2);
  return year+month+day+hour+min;
}

function gt(a, b) {
  return a>b;
}

function lt(a, b) {
  return a<b;
}
